summaryrefslogtreecommitdiffstats
path: root/src/plugins/bearer/networkmanager
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/bearer/networkmanager')
-rw-r--r--src/plugins/bearer/networkmanager/qnetworkmanagerengine.cpp9
-rw-r--r--src/plugins/bearer/networkmanager/qnetworkmanagerservice.cpp7
-rw-r--r--src/plugins/bearer/networkmanager/qnetworkmanagerservice.h1
3 files changed, 17 insertions, 0 deletions
diff --git a/src/plugins/bearer/networkmanager/qnetworkmanagerengine.cpp b/src/plugins/bearer/networkmanager/qnetworkmanagerengine.cpp
index 6be682878d..a8244f05cf 100644
--- a/src/plugins/bearer/networkmanager/qnetworkmanagerengine.cpp
+++ b/src/plugins/bearer/networkmanager/qnetworkmanagerengine.cpp
@@ -953,6 +953,15 @@ QNetworkSessionPrivate *QNetworkManagerEngine::createSessionBackend()
QNetworkConfigurationPrivatePointer QNetworkManagerEngine::defaultConfiguration()
{
+ QHashIterator<QString, QNetworkManagerConnectionActive*> i(activeConnectionsList);
+ while (i.hasNext()) {
+ i.next();
+ QNetworkManagerConnectionActive *activeConnection = i.value();
+ if ((activeConnection->defaultRoute() || activeConnection->default6Route())) {
+ return accessPointConfigurations.value(activeConnection->connection().path());
+ }
+ }
+
return QNetworkConfigurationPrivatePointer();
}
diff --git a/src/plugins/bearer/networkmanager/qnetworkmanagerservice.cpp b/src/plugins/bearer/networkmanager/qnetworkmanagerservice.cpp
index dd7000bfb8..dc3b71ec8e 100644
--- a/src/plugins/bearer/networkmanager/qnetworkmanagerservice.cpp
+++ b/src/plugins/bearer/networkmanager/qnetworkmanagerservice.cpp
@@ -1282,6 +1282,13 @@ bool QNetworkManagerConnectionActive::defaultRoute() const
return false;
}
+bool QNetworkManagerConnectionActive::default6Route() const
+{
+ if (propertyMap.contains("Default6"))
+ return propertyMap.value("Default6").toBool();
+ return false;
+}
+
void QNetworkManagerConnectionActive::propertiesSwap(QMap<QString,QVariant> map)
{
QMapIterator<QString, QVariant> i(map);
diff --git a/src/plugins/bearer/networkmanager/qnetworkmanagerservice.h b/src/plugins/bearer/networkmanager/qnetworkmanagerservice.h
index 5e3c1c85f1..da909c443a 100644
--- a/src/plugins/bearer/networkmanager/qnetworkmanagerservice.h
+++ b/src/plugins/bearer/networkmanager/qnetworkmanagerservice.h
@@ -499,6 +499,7 @@ public:
QStringList devices() const;
quint32 state() const;
bool defaultRoute() const;
+ bool default6Route() const;
bool setConnections();
bool isValid();