diff options
author | Qt Continuous Integration System <qt-info@nokia.com> | 2010-07-27 22:33:26 (GMT) |
---|---|---|
committer | Qt Continuous Integration System <qt-info@nokia.com> | 2010-07-27 22:33:26 (GMT) |
commit | b65e9811968ec2e122b0e7f6b9a58dce50e3c01c (patch) | |
tree | 5c394813841d5172e3430f20b0500ffc10fc594e /src/plugins/bearer | |
parent | 7795c14a574fcee67c840ce996602d61e66683f5 (diff) | |
parent | 7f9205aa572c60085c9e9f38749bb48e707fea95 (diff) | |
download | Qt-b65e9811968ec2e122b0e7f6b9a58dce50e3c01c.zip Qt-b65e9811968ec2e122b0e7f6b9a58dce50e3c01c.tar.gz Qt-b65e9811968ec2e122b0e7f6b9a58dce50e3c01c.tar.bz2 |
Merge branch '4.7' of scm.dev.nokia.troll.no:qt/oslo-staging-1 into 4.7-integration
* '4.7' of scm.dev.nokia.troll.no:qt/oslo-staging-1:
Adding missing image
Fix QT_NO_DATESTRING
Check the gesturemanager pointer before accessing it.
Added files that had been renamed.
Modified file/directory names and text to remove disallowed terminology.
Cherry pick fix for MOBILITY-1077 from Qt Mobility.
Fix typo in docs.
Cherry pick fix for MOBILITY-1145 from Qt Mobility.
Cherry pick fix for MOBILITY-1144 from Qt Mobility.
Fixed the following sub-tasks for QTBUG-12192
Diffstat (limited to 'src/plugins/bearer')
-rw-r--r-- | src/plugins/bearer/symbian/qnetworksession_impl.cpp | 21 |
1 files changed, 18 insertions, 3 deletions
diff --git a/src/plugins/bearer/symbian/qnetworksession_impl.cpp b/src/plugins/bearer/symbian/qnetworksession_impl.cpp index f89ed0a..d6b4975 100644 --- a/src/plugins/bearer/symbian/qnetworksession_impl.cpp +++ b/src/plugins/bearer/symbian/qnetworksession_impl.cpp @@ -1044,6 +1044,11 @@ void QNetworkSessionPrivateImpl::RunL() TInt error = KErrNone; QNetworkConfiguration newActiveConfig = activeConfiguration(); if (!newActiveConfig.isValid()) { + // RConnection startup was successfull but no configuration + // was found. That indicates that user has chosen to create a + // new WLAN configuration (from scan results), but that new + // configuration does not have access to Internet (Internet + // Connectivity Test, ICT, failed). error = KErrGeneral; } else { // Use name of the IAP to open global 'Open C' RConnection @@ -1053,16 +1058,24 @@ void QNetworkSessionPrivateImpl::RunL() strcpy(ifr.ifr_name, nameAsByteArray.constData()); error = setdefaultif(&ifr); } - if (error != KErrNone) { isOpen = false; isOpening = false; iError = QNetworkSession::UnknownSessionError; QT_TRYCATCH_LEAVING(emit QNetworkSessionPrivate::error(iError)); - Cancel(); if (ipConnectionNotifier) { ipConnectionNotifier->StopNotifications(); } + if (!newActiveConfig.isValid()) { + // No valid configuration, bail out. + // Status updates from QNCM won't be received correctly + // because there is no configuration to associate them with so transit here. + iConnection.Close(); + newState(QNetworkSession::Closing); + newState(QNetworkSession::Disconnected); + } else { + Cancel(); + } QT_TRYCATCH_LEAVING(syncStateWithInterface()); return; } @@ -1117,7 +1130,9 @@ void QNetworkSessionPrivateImpl::RunL() isOpening = false; activeConfig = QNetworkConfiguration(); serviceConfig = QNetworkConfiguration(); - if (publicConfig.state() == QNetworkConfiguration::Undefined || + if (statusCode == KErrCancel) { + iError = QNetworkSession::SessionAbortedError; + } else if (publicConfig.state() == QNetworkConfiguration::Undefined || publicConfig.state() == QNetworkConfiguration::Defined) { iError = QNetworkSession::InvalidConfigurationError; } else { |