diff options
Diffstat (limited to 'src/plugins')
-rw-r--r-- | src/plugins/bearer/symbian/qnetworksession_impl.cpp | 9 | ||||
-rw-r--r-- | src/plugins/bearer/symbian/symbianengine.cpp | 14 |
2 files changed, 19 insertions, 4 deletions
diff --git a/src/plugins/bearer/symbian/qnetworksession_impl.cpp b/src/plugins/bearer/symbian/qnetworksession_impl.cpp index 791ebf2..5639c4f 100644 --- a/src/plugins/bearer/symbian/qnetworksession_impl.cpp +++ b/src/plugins/bearer/symbian/qnetworksession_impl.cpp @@ -476,6 +476,8 @@ TUint QNetworkSessionPrivateImpl::iapClientCount(TUint aIAPId) const { TRequestStatus status; TUint connectionCount; + if (!iConnectionMonitor.Handle()) + return 0; iConnectionMonitor.GetConnectionCount(connectionCount, status); User::WaitForRequest(status); if (status.Int() == KErrNone) { @@ -573,7 +575,8 @@ void QNetworkSessionPrivateImpl::stop() #endif if (!isOpen && publicConfig.isValid() && - publicConfig.type() == QNetworkConfiguration::InternetAccessPoint) { + publicConfig.type() == QNetworkConfiguration::InternetAccessPoint && + iConnectionMonitor.Handle()) { #ifdef QT_BEARERMGMT_SYMBIAN_DEBUG qDebug() << "QNS this : " << QString::number((uint)this) << " - " << "since session is not open, using RConnectionMonitor to stop() the interface"; @@ -855,6 +858,8 @@ quint64 QNetworkSessionPrivateImpl::transferredData(TUint dataType) const return 0; } + if (!iConnectionMonitor.Handle()) + return 0; TUint count; TRequestStatus status; iConnectionMonitor.GetConnectionCount(count, status); @@ -1497,6 +1502,8 @@ bool QNetworkSessionPrivateImpl::easyWlanTrueIapId(TUint32 &trueIapId) const // Loop through all connections that connection monitor is aware // and check for IAPs based on easy WLAN + if (!iConnectionMonitor.Handle()) + return false; TRequestStatus status; TUint connectionCount; iConnectionMonitor.GetConnectionCount(connectionCount, status); diff --git a/src/plugins/bearer/symbian/symbianengine.cpp b/src/plugins/bearer/symbian/symbianengine.cpp index 71687dd..04edbb7 100644 --- a/src/plugins/bearer/symbian/symbianengine.cpp +++ b/src/plugins/bearer/symbian/symbianengine.cpp @@ -104,11 +104,19 @@ void SymbianEngine::initialize() return; } - TRAP_IGNORE(iConnectionMonitor.ConnectL()); + TRAP(error, { + iConnectionMonitor.ConnectL(); + CleanupClosePushL(iConnectionMonitor); #ifdef SNAP_FUNCTIONALITY_AVAILABLE - TRAP_IGNORE(iConnectionMonitor.SetUintAttribute(EBearerIdAll, 0, KBearerGroupThreshold, 1)); + User::LeaveIfError(iConnectionMonitor.SetUintAttribute(EBearerIdAll, 0, KBearerGroupThreshold, 1)); #endif - TRAP_IGNORE(iConnectionMonitor.NotifyEventL(*this)); + iConnectionMonitor.NotifyEventL(*this); + CleanupStack::Pop(); + }); + if (error != KErrNone) { + iInitOk = false; + return; + } #ifdef SNAP_FUNCTIONALITY_AVAILABLE TRAP(error, iCmManager.OpenL()); |