device: trigger a connectivity check when device disconnects
https://gitlab.freedesktop.org/NetworkManager/NetworkManager/issues/219
https://gitlab.freedesktop.org/NetworkManager/NetworkManager/merge_requests/225
(cherry picked from commit 88bcf87ad9
)
This commit is contained in:
@@ -3186,14 +3186,11 @@ nm_device_check_connectivity (NMDevice *self,
|
|||||||
NMDeviceConnectivityCallback callback,
|
NMDeviceConnectivityCallback callback,
|
||||||
gpointer user_data)
|
gpointer user_data)
|
||||||
{
|
{
|
||||||
NMDeviceConnectivityHandle *handle;
|
|
||||||
|
|
||||||
if (!concheck_is_possible (self))
|
if (!concheck_is_possible (self))
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
concheck_periodic_schedule_set (self, addr_family, CONCHECK_SCHEDULE_CHECK_EXTERNAL);
|
concheck_periodic_schedule_set (self, addr_family, CONCHECK_SCHEDULE_CHECK_EXTERNAL);
|
||||||
handle = concheck_start (self, addr_family, callback, user_data, FALSE);
|
return concheck_start (self, addr_family, callback, user_data, FALSE);
|
||||||
return handle;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
@@ -15117,6 +15114,7 @@ _set_state_full (NMDevice *self,
|
|||||||
gboolean no_firmware = FALSE;
|
gboolean no_firmware = FALSE;
|
||||||
NMSettingsConnection *sett_conn;
|
NMSettingsConnection *sett_conn;
|
||||||
NMSettingSriov *s_sriov;
|
NMSettingSriov *s_sriov;
|
||||||
|
gboolean concheck_now;
|
||||||
|
|
||||||
g_return_if_fail (NM_IS_DEVICE (self));
|
g_return_if_fail (NM_IS_DEVICE (self));
|
||||||
|
|
||||||
@@ -15452,8 +15450,11 @@ _set_state_full (NMDevice *self,
|
|||||||
if (ip_config_valid (old_state) && !ip_config_valid (state))
|
if (ip_config_valid (old_state) && !ip_config_valid (state))
|
||||||
notify_ip_properties (self);
|
notify_ip_properties (self);
|
||||||
|
|
||||||
concheck_update_interval (self, AF_INET, state == NM_DEVICE_STATE_ACTIVATED);
|
concheck_now = NM_IN_SET (state, NM_DEVICE_STATE_ACTIVATED,
|
||||||
concheck_update_interval (self, AF_INET6, state == NM_DEVICE_STATE_ACTIVATED);
|
NM_DEVICE_STATE_DISCONNECTED)
|
||||||
|
|| old_state >= NM_DEVICE_STATE_ACTIVATED;
|
||||||
|
concheck_update_interval (self, AF_INET, concheck_now);
|
||||||
|
concheck_update_interval (self, AF_INET6, concheck_now);
|
||||||
|
|
||||||
/* Dispose of the cached activation request */
|
/* Dispose of the cached activation request */
|
||||||
if (req)
|
if (req)
|
||||||
|
Reference in New Issue
Block a user