From eaa595958c15f958cb248fb9287672e201cbd369 Mon Sep 17 00:00:00 2001 From: Dean Lee Date: Sun, 11 May 2025 05:22:06 +0800 Subject: [PATCH] system/ui: prevent duplicate WiFi connections when retrying with new password (#35174) Prevent duplicate WiFi connections when retrying with new password --- system/ui/lib/wifi_manager.py | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/system/ui/lib/wifi_manager.py b/system/ui/lib/wifi_manager.py index d3d9bb4414..29d3231d5f 100644 --- a/system/ui/lib/wifi_manager.py +++ b/system/ui/lib/wifi_manager.py @@ -136,7 +136,10 @@ class WifiManager: await nm_iface.call_delete() if self._current_connection_ssid == ssid: self._current_connection_ssid = None - del self.saved_connections[ssid] + + if ssid in self.saved_connections: + del self.saved_connections[ssid] + return True except DBusError as e: cloudlog.error(f"Failed to delete connection for SSID: {ssid}. Error: {e}") @@ -158,6 +161,17 @@ class WifiManager: """Connect to a selected Wi-Fi network.""" try: self._current_connection_ssid = ssid + + if ssid in self.saved_connections: + # Forget old connection if new password provided + if password: + await self.forget_connection(ssid) + await asyncio.sleep(0.2) # NetworkManager delay + else: + # Just activate existing connection + await self.activate_connection(ssid) + return + connection = { 'connection': { 'type': Variant('s', '802-11-wireless'),