summaryrefslogtreecommitdiff
path: root/src/nm-manager.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/nm-manager.c')
-rw-r--r--src/nm-manager.c17
1 files changed, 5 insertions, 12 deletions
diff --git a/src/nm-manager.c b/src/nm-manager.c
index a1e4fb4f17..26e2127354 100644
--- a/src/nm-manager.c
+++ b/src/nm-manager.c
@@ -717,6 +717,7 @@ manager_device_state_changed (NMDevice *device,
gpointer user_data)
{
NMManager *self = NM_MANAGER (user_data);
+ NMManagerPrivate *priv = NM_MANAGER_GET_PRIVATE (self);
switch (new_state) {
case NM_DEVICE_STATE_UNMANAGED:
@@ -729,6 +730,10 @@ manager_device_state_changed (NMDevice *device,
default:
break;
}
+
+ if ( new_state == NM_DEVICE_STATE_UNAVAILABLE
+ || new_state == NM_DEVICE_STATE_DISCONNECTED)
+ nm_settings_device_added (priv->settings, device);
}
static void device_has_pending_action_changed (NMDevice *device,
@@ -853,14 +858,6 @@ device_removed_cb (NMDevice *device, gpointer user_data)
}
static void
-device_link_initialized_cb (NMDevice *device, gpointer user_data)
-{
- NMManagerPrivate *priv = NM_MANAGER_GET_PRIVATE (user_data);
-
- nm_settings_device_added (priv->settings, device);
-}
-
-static void
aipd_handle_event (DBusGProxy *proxy,
const char *event,
const char *iface,
@@ -1821,10 +1818,6 @@ add_device (NMManager *self, NMDevice *device, gboolean try_assume)
G_CALLBACK (device_removed_cb),
self);
- g_signal_connect (device, NM_DEVICE_LINK_INITIALIZED,
- G_CALLBACK (device_link_initialized_cb),
- self);
-
g_signal_connect (device, "notify::" NM_DEVICE_IP_IFACE,
G_CALLBACK (device_ip_iface_changed),
self);