summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDan Williams <dcbw@redhat.com>2014-04-09 12:31:08 -0500
committerDan Williams <dcbw@redhat.com>2014-04-09 12:33:26 -0500
commit79a7e46bfd2c26ab29d7f59b29a4de80e39635aa (patch)
tree4f0774e65af67fcf2582e7e650b4e8700d1469a0
parent88fcf17ce05ba67073ebdd3d3816f3ee3da9e6b3 (diff)
downloadNetworkManager-79a7e46bfd2c26ab29d7f59b29a4de80e39635aa.tar.gz
core: unregister removed devices from D-Bus
Instead of waiting until the device is disposed and dbus-glib does it for us, remove them when the Manager is done with them. If something (like pending D-Bus calls) holds a reference to the device when the Manager removes it, the device would previously still service method calls until all references are released. When the device is removed, it's dead, and it shouldn't be exported anymore.
-rw-r--r--src/nm-manager.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/src/nm-manager.c b/src/nm-manager.c
index ea0663f5be..d3d660cd70 100644
--- a/src/nm-manager.c
+++ b/src/nm-manager.c
@@ -769,6 +769,8 @@ remove_device (NMManager *manager, NMDevice *device, gboolean quitting)
g_signal_emit (manager, signals[DEVICE_REMOVED], 0, device);
g_object_notify (G_OBJECT (manager), NM_MANAGER_DEVICES);
+
+ nm_dbus_manager_unregister_object (priv->dbus_mgr, device);
g_object_unref (device);
if (priv->startup)