summaryrefslogtreecommitdiffstats
path: root/src/plugins/bearer/connman/qconnmanengine.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/bearer/connman/qconnmanengine.cpp')
-rw-r--r--src/plugins/bearer/connman/qconnmanengine.cpp45
1 files changed, 13 insertions, 32 deletions
diff --git a/src/plugins/bearer/connman/qconnmanengine.cpp b/src/plugins/bearer/connman/qconnmanengine.cpp
index e85949afb6..6ea34b17f5 100644
--- a/src/plugins/bearer/connman/qconnmanengine.cpp
+++ b/src/plugins/bearer/connman/qconnmanengine.cpp
@@ -150,20 +150,7 @@ void QConnmanEngine::connectToId(const QString &id)
if(!serv.isValid()) {
emit connectionError(id, QBearerEngineImpl::InterfaceLookupError);
} else {
- if(serv.getType() != "cellular") {
-
- serv.connect();
- } else {
- QOfonoManagerInterface ofonoManager(0);
- QString modemPath = ofonoManager.currentModem().path();
- QOfonoDataConnectionManagerInterface dc(modemPath,0);
- foreach (const QDBusObjectPath &dcPath,dc.getPrimaryContexts()) {
- if(dcPath.path().contains(servicePath.section("_",-1))) {
- QOfonoConnectionContextInterface primaryContext(dcPath.path(),0);
- primaryContext.setActive(true);
- }
- }
- }
+ serv.connect();
}
}
@@ -175,19 +162,7 @@ void QConnmanEngine::disconnectFromId(const QString &id)
if(!serv.isValid()) {
emit connectionError(id, DisconnectionError);
} else {
- if(serv.getType() != "cellular") {
- serv.disconnect();
- } else {
- QOfonoManagerInterface ofonoManager(0);
- QString modemPath = ofonoManager.currentModem().path();
- QOfonoDataConnectionManagerInterface dc(modemPath,0);
- foreach (const QDBusObjectPath &dcPath,dc.getPrimaryContexts()) {
- if(dcPath.path().contains(servicePath.section("_",-1))) {
- QOfonoConnectionContextInterface primaryContext(dcPath.path(),0);
- primaryContext.setActive(false);
- }
- }
- }
+ serv.disconnect();
}
}
@@ -292,7 +267,8 @@ QNetworkConfigurationManager::Capabilities QConnmanEngine::capabilities() const
{
return QNetworkConfigurationManager::ForcedRoaming |
QNetworkConfigurationManager::DataStatistics |
- QNetworkConfigurationManager::CanStartAndStopInterfaces;
+ QNetworkConfigurationManager::CanStartAndStopInterfaces |
+ QNetworkConfigurationManager::NetworkSessionRequired;
}
QNetworkSessionPrivate *QConnmanEngine::createSessionBackend()
@@ -374,7 +350,7 @@ void QConnmanEngine::configurationChange(const QString &id)
QMutexLocker locker(&mutex);
if (accessPointConfigurations.contains(id)) {
-
+ bool changed = false;
QNetworkConfigurationPrivatePointer ptr = accessPointConfigurations.value(id);
QString servicePath = serviceFromId(id);
@@ -392,17 +368,21 @@ void QConnmanEngine::configurationChange(const QString &id)
if (ptr->name != networkName) {
ptr->name = networkName;
+ changed = true;
}
if (ptr->state != curState) {
ptr->state = curState;
+ changed = true;
}
ptr->mutex.unlock();
- locker.unlock();
- emit configurationChanged(ptr);
- locker.relock();
+ if (changed) {
+ locker.unlock();
+ emit configurationChanged(ptr);
+ locker.relock();
+ }
}
locker.unlock();
@@ -515,6 +495,7 @@ void QConnmanEngine::removeConfiguration(const QString &id)
serviceNetworks.removeOne(service);
QNetworkConfigurationPrivatePointer ptr = accessPointConfigurations.take(id);
+ foundConfigurations.removeOne(ptr.data());
locker.unlock();
emit configurationRemoved(ptr);
locker.relock();