diff options
author | Lorn Potter <lorn.potter@nokia.com> | 2010-06-30 02:20:14 (GMT) |
---|---|---|
committer | Lorn Potter <lorn.potter@nokia.com> | 2010-06-30 02:20:14 (GMT) |
commit | 5a6d8c40791da2e8751965d05ae2d5ef69bed301 (patch) | |
tree | a0e214468531cf18793f98cc51c3360c809b12a5 /src/plugins/bearer/connman/qconnmanengine.cpp | |
parent | 676ef3a5ffd7aa1c8f85bce6010205e2d101b8d5 (diff) | |
download | Qt-5a6d8c40791da2e8751965d05ae2d5ef69bed301.zip Qt-5a6d8c40791da2e8751965d05ae2d5ef69bed301.tar.gz Qt-5a6d8c40791da2e8751965d05ae2d5ef69bed301.tar.bz2 |
make sure ap's are removed when the device is removed
Diffstat (limited to 'src/plugins/bearer/connman/qconnmanengine.cpp')
-rw-r--r-- | src/plugins/bearer/connman/qconnmanengine.cpp | 24 |
1 files changed, 16 insertions, 8 deletions
diff --git a/src/plugins/bearer/connman/qconnmanengine.cpp b/src/plugins/bearer/connman/qconnmanengine.cpp index bdff815..8775623 100644 --- a/src/plugins/bearer/connman/qconnmanengine.cpp +++ b/src/plugins/bearer/connman/qconnmanengine.cpp @@ -250,7 +250,7 @@ QNetworkSession::State QConnmanEngine::sessionStateForId(const QString &id) QConnmanServiceInterface serv(service); QString servState = serv.getState(); - if(serv.isFavorite() && servState == "idle" || servState == "failure") { + if(serv.isFavorite() && (servState == "idle" || servState == "failure")) { return QNetworkSession::Disconnected; } @@ -285,6 +285,7 @@ quint64 QConnmanEngine::bytesWritten(const QString &id) in >> result; tx.close(); } + return result; } @@ -347,6 +348,9 @@ QString QConnmanEngine::getServiceForNetwork(const QString &netPath) void QConnmanEngine::propertyChangedContext(const QString &path,const QString &item, const QDBusVariant &value) { + Q_UNUSED(path); +// qDebug() << __FUNCTION__ << path << item << value.variant(); + QMutexLocker locker(&mutex); if(item == "Services") { QDBusArgument arg = qvariant_cast<QDBusArgument>(value.variant()); @@ -421,11 +425,10 @@ void QConnmanEngine::devicePropertyChangedContext(const QString &devpath,const Q while(i.hasNext()) { i.next(); if(i.value().contains(devpath)) { - devicetype = i.key(); + devicetype = i.key().section("/",-1); } } - QStringList oldnetworks = knownNetworks[devicetype]; if(remainingNetworks.count() > oldnetworks.count()) { @@ -593,14 +596,16 @@ void QConnmanEngine::addServiceConfiguration(const QString &servicePath) QConnmanNetworkInterface *network; network = new QConnmanNetworkInterface(netPath, this); - serviceNetworks.insert(servicePath,netPath); const QString id = QString::number(qHash(servicePath)); if (!accessPointConfigurations.contains(id)) { - QConnmanDeviceInterface device(netPath.section("/",0,5),this); - knownNetworks[device.getType()]<< netPath; + + serviceNetworks.insert(servicePath,netPath); + + knownNetworks[device.getType()].append(netPath); + connect(serv,SIGNAL(propertyChangedContext(QString,QString,QDBusVariant)), this,SLOT(servicePropertyChangedContext(QString,QString, QDBusVariant))); QNetworkConfigurationPrivate* cpPriv = new QNetworkConfigurationPrivate(); @@ -661,10 +666,13 @@ void QConnmanEngine::addNetworkConfiguration(const QString &networkPath) connect(serv,SIGNAL(propertyChangedContext(QString,QString,QDBusVariant)), this,SLOT(servicePropertyChangedContext(QString,QString, QDBusVariant))); } - knownNetworks[device.getType()]<< networkPath; - serviceNetworks.insert(servicePath,networkPath); if (!accessPointConfigurations.contains(id)) { + + knownNetworks[device.getType()].append(networkPath); + + serviceNetworks.insert(servicePath,networkPath); + connect(network,SIGNAL(propertyChangedContext(QString,QString,QDBusVariant)), this,SLOT(networkPropertyChangedContext(QString,QString, QDBusVariant))); |