diff --git a/src/client/engine/engine/networkdetectionmanager/networkdetectionmanager_mac.cpp b/src/client/engine/engine/networkdetectionmanager/networkdetectionmanager_mac.cpp index 962cb0c8..770d244c 100644 --- a/src/client/engine/engine/networkdetectionmanager/networkdetectionmanager_mac.cpp +++ b/src/client/engine/engine/networkdetectionmanager/networkdetectionmanager_mac.cpp @@ -42,8 +42,11 @@ void NetworkDetectionManager_mac::onNetworkStateChanged() if (networkInterface != lastNetworkInterface_) { + bool significantChange = false; + if (networkInterface.interfaceName != lastNetworkInterface_.interfaceName) { + significantChange = true; if (networkInterface.interfaceIndex == -1) { qCInfo(LOG_BASIC) << "Primary Adapter down: " << lastNetworkInterface_.interfaceName; @@ -62,6 +65,7 @@ void NetworkDetectionManager_mac::onNetworkStateChanged() } else if (networkInterface.networkOrSsid != lastNetworkInterface_.networkOrSsid) { + significantChange = true; qCInfo(LOG_BASIC) << "Primary Network Changed: " << networkInterface.interfaceName << " : " << networkInterface.networkOrSsid; @@ -75,12 +79,14 @@ void NetworkDetectionManager_mac::onNetworkStateChanged() } else { - qCInfo(LOG_BASIC) << "Unidentified interface change"; - // Can happen when changing interfaces + qCInfo(LOG_BASIC) << "Minor interface change on" << networkInterface.interfaceName + << "(e.g. same-SSID AP roam), skipping reconnect"; } lastNetworkInterface_ = networkInterface; - emit networkChanged(networkInterface); + if (significantChange) { + emit networkChanged(networkInterface); + } } else if (wifiAdapterUp != lastWifiAdapterUp_) {