mirror of
https://gitlab.freedesktop.org/NetworkManager/NetworkManager.git
synced 2026-02-27 23:20:31 +01:00
dhcp: merge branch 'bg/restart-dhcp-on-mac-change'
https://bugzilla.redhat.com/show_bug.cgi?id=2110000 https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/merge_requests/1343 (cherry picked from commit7f40eb1b04) (cherry picked from commit14633422e2) (cherry picked from commitc8341aa3f2) (cherry picked from commit8b9a12e109) (cherry picked from commit693d835c05)
This commit is contained in:
commit
dc39b9a364
5 changed files with 20 additions and 15 deletions
|
|
@ -447,7 +447,7 @@ supplicant_auth_state_changed(NMSupplicantInterface *iface,
|
|||
|
||||
if (state == NM_SUPPLICANT_AUTH_STATE_SUCCESS) {
|
||||
nm_clear_g_signal_handler(priv->supplicant.iface, &priv->supplicant.iface_state_id);
|
||||
nm_device_update_dynamic_ip_setup(NM_DEVICE(self));
|
||||
nm_device_update_dynamic_ip_setup(NM_DEVICE(self), "supplicant auth state changed");
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -4934,7 +4934,7 @@ set_unmanaged_external_down(NMDevice *self, gboolean only_if_unmanaged)
|
|||
}
|
||||
|
||||
void
|
||||
nm_device_update_dynamic_ip_setup(NMDevice *self)
|
||||
nm_device_update_dynamic_ip_setup(NMDevice *self, const char *reason)
|
||||
{
|
||||
NMDevicePrivate *priv;
|
||||
|
||||
|
|
@ -4945,6 +4945,8 @@ nm_device_update_dynamic_ip_setup(NMDevice *self)
|
|||
if (priv->state < NM_DEVICE_STATE_IP_CONFIG || priv->state > NM_DEVICE_STATE_ACTIVATED)
|
||||
return;
|
||||
|
||||
_LOGD(LOGD_DEVICE, "restarting dynamic IP configuration (%s)", reason);
|
||||
|
||||
g_hash_table_remove_all(priv->ip6_saved_properties);
|
||||
|
||||
if (priv->dhcp_data_4.client) {
|
||||
|
|
@ -4998,7 +5000,7 @@ carrier_changed(NMDevice *self, gboolean carrier)
|
|||
/* Force master to retry getting ip addresses when carrier
|
||||
* is restored. */
|
||||
if (priv->state == NM_DEVICE_STATE_ACTIVATED)
|
||||
nm_device_update_dynamic_ip_setup(self);
|
||||
nm_device_update_dynamic_ip_setup(self, "interface got carrier");
|
||||
/* If needed, also resume IP configuration that is
|
||||
* waiting for carrier. */
|
||||
if (nm_device_activate_ip4_state_in_wait(self))
|
||||
|
|
@ -5033,7 +5035,7 @@ carrier_changed(NMDevice *self, gboolean carrier)
|
|||
* tagged for carrier ignore) ensure that when the carrier appears we
|
||||
* renew DHCP leases and such.
|
||||
*/
|
||||
nm_device_update_dynamic_ip_setup(self);
|
||||
nm_device_update_dynamic_ip_setup(self, "interface got carrier");
|
||||
}
|
||||
} else {
|
||||
if (priv->state == NM_DEVICE_STATE_UNAVAILABLE) {
|
||||
|
|
@ -5348,9 +5350,10 @@ device_update_interface_flags(NMDevice *self, const NMPlatformLink *plink)
|
|||
static gboolean
|
||||
device_link_changed(NMDevice *self)
|
||||
{
|
||||
NMDeviceClass * klass = NM_DEVICE_GET_CLASS(self);
|
||||
NMDevicePrivate * priv = NM_DEVICE_GET_PRIVATE(self);
|
||||
gboolean ip_ifname_changed = FALSE;
|
||||
NMDeviceClass * klass = NM_DEVICE_GET_CLASS(self);
|
||||
NMDevicePrivate * priv = NM_DEVICE_GET_PRIVATE(self);
|
||||
gboolean ip_ifname_changed = FALSE;
|
||||
gboolean hw_addr_changed;
|
||||
nm_auto_nmpobj const NMPObject *pllink_keep_alive = NULL;
|
||||
const NMPlatformLink * pllink;
|
||||
const char * str;
|
||||
|
|
@ -5397,9 +5400,9 @@ device_link_changed(NMDevice *self)
|
|||
if (ifindex == nm_device_get_ip_ifindex(self))
|
||||
_stats_update_counters_from_pllink(self, pllink);
|
||||
|
||||
had_hw_addr = (priv->hw_addr != NULL);
|
||||
nm_device_update_hw_address(self);
|
||||
got_hw_addr = (!had_hw_addr && priv->hw_addr);
|
||||
had_hw_addr = (priv->hw_addr != NULL);
|
||||
hw_addr_changed = nm_device_update_hw_address(self);
|
||||
got_hw_addr = (!had_hw_addr && priv->hw_addr);
|
||||
nm_device_update_permanent_hw_address(self, FALSE);
|
||||
|
||||
if (pllink->name[0] && !nm_streq(priv->iface, pllink->name)) {
|
||||
|
|
@ -5448,7 +5451,9 @@ device_link_changed(NMDevice *self)
|
|||
|
||||
/* Update DHCP, etc, if needed */
|
||||
if (ip_ifname_changed)
|
||||
nm_device_update_dynamic_ip_setup(self);
|
||||
nm_device_update_dynamic_ip_setup(self, "IP interface changed");
|
||||
else if (hw_addr_changed)
|
||||
nm_device_update_dynamic_ip_setup(self, "hw-address changed");
|
||||
|
||||
was_up = priv->up;
|
||||
priv->up = NM_FLAGS_HAS(pllink->n_ifi_flags, IFF_UP);
|
||||
|
|
@ -5556,7 +5561,7 @@ device_ip_link_changed(NMDevice *self)
|
|||
priv->ip_iface_ = g_strdup(ip_iface);
|
||||
_notify(self, PROP_IP_IFACE);
|
||||
|
||||
nm_device_update_dynamic_ip_setup(self);
|
||||
nm_device_update_dynamic_ip_setup(self, "interface renamed");
|
||||
}
|
||||
|
||||
return G_SOURCE_REMOVE;
|
||||
|
|
|
|||
|
|
@ -768,7 +768,7 @@ void nm_device_reactivate_ip_config(NMDevice * device,
|
|||
gboolean nm_device_update_hw_address(NMDevice *self);
|
||||
void nm_device_update_initial_hw_address(NMDevice *self);
|
||||
void nm_device_update_permanent_hw_address(NMDevice *self, gboolean force_freeze);
|
||||
void nm_device_update_dynamic_ip_setup(NMDevice *self);
|
||||
void nm_device_update_dynamic_ip_setup(NMDevice *self, const char *reason);
|
||||
guint nm_device_get_supplicant_timeout(NMDevice *self);
|
||||
|
||||
gboolean nm_device_auth_retries_try_next(NMDevice *self);
|
||||
|
|
|
|||
|
|
@ -2610,7 +2610,7 @@ supplicant_iface_notify_current_bss(NMSupplicantInterface *iface,
|
|||
* 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));
|
||||
nm_device_update_dynamic_ip_setup(NM_DEVICE(self), "roamed to a different AP");
|
||||
}
|
||||
|
||||
set_current_ap(self, new_ap, TRUE);
|
||||
|
|
|
|||
|
|
@ -6329,7 +6329,7 @@ do_sleep_wake(NMManager *self, gboolean sleeping_changed)
|
|||
&& !nm_device_get_unmanaged_flags(device, NM_UNMANAGED_SLEEPING)) {
|
||||
/* DHCP leases of software devices could have gone stale
|
||||
* so we need to renew them. */
|
||||
nm_device_update_dynamic_ip_setup(device);
|
||||
nm_device_update_dynamic_ip_setup(device, "wake up");
|
||||
continue;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue