From 954b1f484e8cde8dca3b2f51a9dbbed865991cd6 Mon Sep 17 00:00:00 2001 From: jzxc95 <907297917@qq.com> Date: Mon, 17 Jan 2022 15:53:04 +0800 Subject: [PATCH] when set auto, clear iip info --- .../kylinwiredconnectoperation.cpp | 24 ++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/src/backend/dbus-interface/kylinwiredconnectoperation.cpp b/src/backend/dbus-interface/kylinwiredconnectoperation.cpp index f224cc95..af51822a 100644 --- a/src/backend/dbus-interface/kylinwiredconnectoperation.cpp +++ b/src/backend/dbus-interface/kylinwiredconnectoperation.cpp @@ -81,7 +81,29 @@ void KyWiredConnectOperation::updateWiredConnect(const QString &connectUuid, con NetworkManager::ConnectionSettings::Ptr connectSettingPtr = connectPtr->settings(); updateConnect(connectSettingPtr, connectSettingsInfo); - connectPtr->update(connectSettingPtr->toMap()); + NMVariantMapMap mapmap1 = connectSettingPtr->toMap(); + if (mapmap1.contains("ipv4")) { + QVariantMap map1 = mapmap1.value(QLatin1String("ipv4")); + bool isAuto = false; + if (map1.contains("method") && map1["method"] == "auto") { + qDebug() << "[KyWiredConnectOperation] set ipv4 method auto, clear address-data && addresses && gateway"; + isAuto = true; + } + if (isAuto) { + if (map1.contains("address-data")) { + map1.remove("address-data"); + } + if (map1.contains("addresses")) { + map1.remove("addresses"); + } + if (map1.contains("gateway")) { + map1.remove("gateway"); + } + } + mapmap1["ipv4"] = map1; + } + + connectPtr->update(mapmap1); return ; }