NM_DEVICE_STATE_REASON_CONNECTION_ASSUMED);
}
-static void
-update_dynamic_ip_setup (NMDevice *self)
+void
+nm_device_update_dynamic_ip_setup (NMDevice *self)
{
- NMDevicePrivate *priv = NM_DEVICE_GET_PRIVATE (self);
+ NMDevicePrivate *priv;
GError *error;
gconstpointer addr;
size_t addr_length;
+ g_return_if_fail (NM_IS_DEVICE (self));
+
+ priv = NM_DEVICE_GET_PRIVATE (self);
+
g_hash_table_remove_all (priv->ip6_saved_properties);
if (priv->dhcp4_client) {
* tagged for carrier ignore) ensure that when the carrier appears we
* renew DHCP leases and such.
*/
- update_dynamic_ip_setup (self);
+ nm_device_update_dynamic_ip_setup (self);
}
} else {
if (priv->state == NM_DEVICE_STATE_UNAVAILABLE) {
/* Update DHCP, etc, if needed */
if (ip_ifname_changed)
- update_dynamic_ip_setup (self);
+ nm_device_update_dynamic_ip_setup (self);
priv->up = NM_FLAGS_HAS (info.n_ifi_flags, IFF_UP);
priv->ip_iface = g_strdup (pllink->name);
_notify (self, PROP_IP_IFACE);
- update_dynamic_ip_setup (self);
+ nm_device_update_dynamic_ip_setup (self);
}
return G_SOURCE_REMOVE;
}
NMDevice *device = NM_DEVICE (iter->data);
guint i;
- if (nm_device_is_software (device))
+ if (nm_device_is_software (device)) {
+ /* We do not manage/unmanage software devices but
+ * their dhcp leases could have gone stale so we need
+ * to renew them */
+ nm_device_update_dynamic_ip_setup (device);
continue;
+ }
/* enable/disable wireless devices since that we don't respond
* to killswitch changes during sleep.