about summary refs log tree commit diff
path: root/src/nm-checkpoint.c
diff options
context:
space:
mode:
authorMichael Biebl <biebl@debian.org>2017-07-12 17:58:09 +0200
committerMichael Biebl <biebl@debian.org>2017-07-12 17:58:09 +0200
commit1c106aa806930113c6773992fa4ddce13e295ead (patch)
tree2242b717e4060d33794b94d9c45f81e4007e3a3f /src/nm-checkpoint.c
parenteb2473a843f46fae54f981c822fcace18d8f6fdf (diff)
parentb9f0451fa35393ceedf6d9d20b78c43578ebea5d (diff)
Updated version 1.8.2 from 'upstream/1.8.2'
with Debian dir 0d04ce142632bf08356d8d906289b6fc2de9e7c1
Diffstat (limited to 'src/nm-checkpoint.c')
-rw-r--r--src/nm-checkpoint.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/src/nm-checkpoint.c b/src/nm-checkpoint.c
index 3f2f0eaa..d59bc574 100644
--- a/src/nm-checkpoint.c
+++ b/src/nm-checkpoint.c
@@ -275,6 +275,17 @@ activate:
 				_LOGD ("rollback: reactivating connection %s",
 				       nm_settings_connection_get_uuid (connection));
 				subject = nm_auth_subject_new_internal ();
+
+				/* Disconnect the device if needed. This necessary because now
+				 * the manager prevents the reactivation of the same connection by
+				 * an internal subject. */
+				if (   nm_device_get_state (device) > NM_DEVICE_STATE_DISCONNECTED
+				    && nm_device_get_state (device) < NM_DEVICE_STATE_DEACTIVATING) {
+					nm_device_state_changed (device,
+					                         NM_DEVICE_STATE_DEACTIVATING,
+					                         NM_DEVICE_STATE_REASON_NEW_ACTIVATION);
+				}
+
 				if (!nm_manager_activate_connection (priv->manager,
 				                                     connection,
 				                                     dev_checkpoint->applied_connection,