summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorQt Continuous Integration System <qt-info@nokia.com>2011-06-28 13:33:45 (GMT)
committerQt Continuous Integration System <qt-info@nokia.com>2011-06-28 13:33:45 (GMT)
commit993caa169260dadf08e98824bf851628d05c739b (patch)
tree160cd6be80b59a2b9d26d62e92132f7813fbef23
parent705b0f958a6071341b10cbd51917e1378356491b (diff)
parent9ceac782c62e889852bfc1f72840d838ba98ebff (diff)
downloadQt-993caa169260dadf08e98824bf851628d05c739b.zip
Qt-993caa169260dadf08e98824bf851628d05c739b.tar.gz
Qt-993caa169260dadf08e98824bf851628d05c739b.tar.bz2
Merge branch '4.7' of scm.dev.nokia.troll.no:qt/qt-s60-public into 4.7-integration
* '4.7' of scm.dev.nokia.troll.no:qt/qt-s60-public: Fix KERN-EXEC 0 errors in symbian bearer plugin
-rw-r--r--src/plugins/bearer/symbian/qnetworksession_impl.cpp9
-rw-r--r--src/plugins/bearer/symbian/symbianengine.cpp14
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());