Nothing logs when and why devices get removed, if they never change from the UNMANAGED state.
--- src/nm-manager.c | 23 +++++++++++++++++------ 1 file changed, 17 insertions(+), 6 deletions(-) diff --git a/src/nm-manager.c b/src/nm-manager.c index 9d08b89..255113c 100644 --- a/src/nm-manager.c +++ b/src/nm-manager.c @@ -127,15 +127,18 @@ static void impl_manager_get_logging (NMManager *manager, static void impl_manager_check_connectivity (NMManager *manager, DBusGMethodInvocation *context); #include "nm-manager-glue.h" static void add_device (NMManager *self, NMDevice *device, gboolean generate_con); -static void remove_device (NMManager *self, NMDevice *device, gboolean quitting); +static void remove_device (NMManager *self, + NMDevice *device, + gboolean quitting, + const char *reason); static void hostname_provider_init (NMHostnameProvider *provider_class); static NMActiveConnection *_new_active_connection (NMManager *self, NMConnection *connection, const char *specific_object, NMDevice *device, @@ -737,18 +740,26 @@ device_has_pending_action_changed (NMDevice *device, GParamSpec *pspec, NMManager *self) { check_if_startup_complete (self); } static void -remove_device (NMManager *manager, NMDevice *device, gboolean quitting) +remove_device (NMManager *manager, + NMDevice *device, + gboolean quitting, + const char *reason) { NMManagerPrivate *priv = NM_MANAGER_GET_PRIVATE (manager); + nm_log_info (LOGD_DEVICE, + "(%s): removing device (%s)", + nm_device_get_iface (device), + reason); + if (nm_device_get_managed (device)) { /* Leave configured interfaces up when quitting so they can be * taken over again if NM starts up, and to ensure connectivity while * NM is gone. Assumed connections don't get taken down even if they * haven't been fully activated. */ @@ -774,15 +785,15 @@ remove_device (NMManager *manager, NMDevice *device, gboolean quitting) if (priv->startup) check_if_startup_complete (manager); } static void device_removed_cb (NMDevice *device, gpointer user_data) { - remove_device (NM_MANAGER (user_data), device, FALSE); + remove_device (NM_MANAGER (user_data), device, FALSE, "device request"); } static void aipd_handle_event (DBusGProxy *proxy, const char *event, const char *iface, const char *address, @@ -1772,15 +1783,15 @@ add_device (NMManager *self, NMDevice *device, gboolean generate_con) */ for (iter = priv->devices; iter; iter = iter->next) { iface = nm_device_get_ip_iface (iter->data); if (nm_device_owns_iface (device, iface)) remove = g_slist_prepend (remove, iter->data); } for (iter = remove; iter; iter = iter->next) - remove_device (self, NM_DEVICE (iter->data), FALSE); + remove_device (self, NM_DEVICE (iter->data), FALSE, "parent request"); g_slist_free (remove); priv->devices = g_slist_append (priv->devices, g_object_ref (device)); g_signal_connect (device, "state-changed", G_CALLBACK (manager_device_state_changed), self); @@ -2203,15 +2214,15 @@ platform_link_removed_cb (NMPlatform *platform, gpointer user_data) { NMManager *self = NM_MANAGER (user_data); NMDevice *device; device = find_device_by_ifindex (self, ifindex); if (device) - remove_device (self, device, FALSE); + remove_device (self, device, FALSE, "link removed"); } static void rfkill_manager_rfkill_changed_cb (NMRfkillManager *rfkill_mgr, RfKillType rtype, RfKillState udev_state, gpointer user_data) @@ -4969,15 +4980,15 @@ dispose (GObject *object) g_slist_free_full (priv->auth_chains, (GDestroyNotify) nm_auth_chain_unref); priv->auth_chains = NULL; nm_auth_changed_func_unregister (authority_changed_cb, manager); /* Remove all devices */ while (priv->devices) - remove_device (manager, NM_DEVICE (priv->devices->data), TRUE); + remove_device (manager, NM_DEVICE (priv->devices->data), TRUE, "quitting"); if (priv->ac_cleanup_id) { g_source_remove (priv->ac_cleanup_id); priv->ac_cleanup_id = 0; } while (priv->active_connections) -- 1.9.0 _______________________________________________ networkmanager-list mailing list networkmanager-list@gnome.org https://mail.gnome.org/mailman/listinfo/networkmanager-list