summaryrefslogtreecommitdiff
path: root/src/devices/wifi/nm-device-wifi.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/devices/wifi/nm-device-wifi.c')
-rw-r--r--src/devices/wifi/nm-device-wifi.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/devices/wifi/nm-device-wifi.c b/src/devices/wifi/nm-device-wifi.c
index 2d97f9b117..cf849bcdc8 100644
--- a/src/devices/wifi/nm-device-wifi.c
+++ b/src/devices/wifi/nm-device-wifi.c
@@ -2564,6 +2564,15 @@ supplicant_iface_notify_current_bss (NMSupplicantInterface *iface,
new_bssid ?: "(none)",
(new_ssid_s = _nm_utils_ssid_to_string (new_ssid)));
+ if (new_bssid) {
+ /* The new AP could be in a different layer 3 network
+ * and so the old DHCP lease could be no longer valid.
+ * Also, some APs (e.g. Cisco) can be configured to drop
+ * all traffic until DHCP completes. To support such
+ * cases, renew the lease when roaming to a new AP. */
+ nm_device_update_dynamic_ip_setup (NM_DEVICE (self));
+ }
+
set_current_ap (self, new_ap, TRUE);
}
}