diff --git a/src/devices/nm-device-ethernet.c b/src/devices/nm-device-ethernet.c index 8b9ae1d8ba..bb71cf6222 100644 --- a/src/devices/nm-device-ethernet.c +++ b/src/devices/nm-device-ethernet.c @@ -667,16 +667,12 @@ handle_auth_or_fail (NMDeviceEthernet *self, const char *setting_name; NMConnection *applied_connection; NMSettingsConnection *settings_connection; - int tries_left; applied_connection = nm_act_request_get_applied_connection (req); settings_connection = nm_act_request_get_settings_connection (req); - tries_left = nm_settings_connection_autoconnect_retries_get (settings_connection); - if (tries_left == 0) + if (!nm_settings_connection_autoconnect_retries_try_next (settings_connection)) return NM_ACT_STAGE_RETURN_FAILURE; - if (tries_left > 0) - nm_settings_connection_autoconnect_retries_set (settings_connection, tries_left - 1); nm_device_state_changed (NM_DEVICE (self), NM_DEVICE_STATE_NEED_AUTH, NM_DEVICE_STATE_REASON_NONE); diff --git a/src/devices/nm-device-macsec.c b/src/devices/nm-device-macsec.c index e5df99bd39..bd081a9108 100644 --- a/src/devices/nm-device-macsec.c +++ b/src/devices/nm-device-macsec.c @@ -478,18 +478,14 @@ handle_auth_or_fail (NMDeviceMacsec *self, gboolean new_secrets) { const char *setting_name; - int tries_left; NMConnection *applied_connection; NMSettingsConnection *settings_connection; applied_connection = nm_act_request_get_applied_connection (req); settings_connection = nm_act_request_get_settings_connection (req); - tries_left = nm_settings_connection_autoconnect_retries_get (settings_connection); - if (tries_left == 0) + if (!nm_settings_connection_autoconnect_retries_try_next (settings_connection)) return NM_ACT_STAGE_RETURN_FAILURE; - if (tries_left > 0) - nm_settings_connection_autoconnect_retries_set (settings_connection, tries_left - 1); nm_device_state_changed (NM_DEVICE (self), NM_DEVICE_STATE_NEED_AUTH, NM_DEVICE_STATE_REASON_NONE); diff --git a/src/settings/nm-settings-connection.c b/src/settings/nm-settings-connection.c index a7b28792b2..4ed69e16a2 100644 --- a/src/settings/nm-settings-connection.c +++ b/src/settings/nm-settings-connection.c @@ -2599,6 +2599,19 @@ nm_settings_connection_autoconnect_retries_reset (NMSettingsConnection *self) nm_settings_connection_autoconnect_retries_set (self, AUTOCONNECT_RETRIES_UNSET); } +gboolean +nm_settings_connection_autoconnect_retries_try_next (NMSettingsConnection *self) +{ + int tries; + + tries = nm_settings_connection_autoconnect_retries_get (self); + if (tries == 0) + return FALSE; + if (tries > 0) + nm_settings_connection_autoconnect_retries_set (self, tries - 1); + return TRUE; +} + gint32 nm_settings_connection_autoconnect_blocked_until_get (NMSettingsConnection *self) { diff --git a/src/settings/nm-settings-connection.h b/src/settings/nm-settings-connection.h index a983bddd3d..69aa792305 100644 --- a/src/settings/nm-settings-connection.h +++ b/src/settings/nm-settings-connection.h @@ -217,6 +217,7 @@ int nm_settings_connection_autoconnect_retries_get (NMSettingsConnection *self); void nm_settings_connection_autoconnect_retries_set (NMSettingsConnection *self, int retries); void nm_settings_connection_autoconnect_retries_reset (NMSettingsConnection *self); +gboolean nm_settings_connection_autoconnect_retries_try_next (NMSettingsConnection *self); gint32 nm_settings_connection_autoconnect_blocked_until_get (NMSettingsConnection *self);