summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBeniamino Galvani <bgalvani@redhat.com>2017-03-15 16:22:55 +0100
committerBeniamino Galvani <bgalvani@redhat.com>2017-03-15 16:45:49 +0100
commitb278b2cd72ca176af2c4d56c65508ef3c862013c (patch)
treec3dd5bb1e17acfd11bd2783bc7a88930a673edf1
parent4987ec408a2e800de2278cd74e9f012dc69b8ed3 (diff)
downloadNetworkManager-b278b2cd72ca176af2c4d56c65508ef3c862013c.tar.gz
device: ethernet: fix handling of autoconnect retries for non-802.1x
Commit 4a6fd0e83ec0 ("device: honor the connection.autoconnect-retries for 802.1X") added a reset of the autoconnect retries when the device changes state, because the retry logic for 802.1x is implemented in NMDeviceEthernet. For other connections, we should not reset the retries as NMPolicy handles them. Fixes: 4a6fd0e83ec0d83547b1f3a1a916f85e9f450d8c
-rw-r--r--src/devices/nm-device-ethernet.c16
1 files changed, 9 insertions, 7 deletions
diff --git a/src/devices/nm-device-ethernet.c b/src/devices/nm-device-ethernet.c
index 55867516f2..9b39e2ad11 100644
--- a/src/devices/nm-device-ethernet.c
+++ b/src/devices/nm-device-ethernet.c
@@ -256,13 +256,14 @@ _update_s390_subchannels (NMDeviceEthernet *self)
}
static void
-reset_autoconnect_retries (NMDevice *device)
+reset_8021x_autoconnect_retries (NMDevice *device)
{
NMActRequest *req;
NMSettingsConnection *connection;
req = nm_device_get_act_request (device);
- if (req) {
+ if ( req
+ && nm_device_get_applied_setting (device, NM_TYPE_SETTING_802_1X)) {
connection = nm_act_request_get_settings_connection (req);
g_return_if_fail (connection);
/* Reset autoconnect retries on success, failure, or when deactivating */
@@ -279,10 +280,11 @@ device_state_changed (NMDevice *device,
if (new_state > NM_DEVICE_STATE_ACTIVATED)
wired_secrets_cancel (NM_DEVICE_ETHERNET (device));
- if ( new_state == NM_DEVICE_STATE_ACTIVATED
- || new_state == NM_DEVICE_STATE_FAILED
- || new_state == NM_DEVICE_STATE_DISCONNECTED)
- reset_autoconnect_retries (device);
+ if (NM_IN_SET (new_state,
+ NM_DEVICE_STATE_ACTIVATED,
+ NM_DEVICE_STATE_FAILED,
+ NM_DEVICE_STATE_DISCONNECTED))
+ reset_8021x_autoconnect_retries (device);
}
static void
@@ -1367,7 +1369,7 @@ deactivate (NMDevice *device)
GError *error = NULL;
/* Clear wired secrets tries when deactivating */
- reset_autoconnect_retries (device);
+ reset_8021x_autoconnect_retries (device);
nm_clear_g_source (&priv->pppoe_wait_id);