summaryrefslogtreecommitdiffstats
path: root/src/plugins/bearer/connman/qconnmanengine.cpp
diff options
context:
space:
mode:
authorLorn Potter <lorn.potter@nokia.com>2010-06-30 02:20:14 (GMT)
committerLorn Potter <lorn.potter@nokia.com>2010-06-30 02:20:14 (GMT)
commit5a6d8c40791da2e8751965d05ae2d5ef69bed301 (patch)
treea0e214468531cf18793f98cc51c3360c809b12a5 /src/plugins/bearer/connman/qconnmanengine.cpp
parent676ef3a5ffd7aa1c8f85bce6010205e2d101b8d5 (diff)
downloadQt-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.cpp24
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)));