diff options
author | Lubomir Rintel <lkundrak@v3.sk> | 2017-03-11 14:28:32 +0100 |
---|---|---|
committer | Lubomir Rintel <lkundrak@v3.sk> | 2017-03-17 10:21:19 +0100 |
commit | c61c16513e6ae55b4d3cd88a3459ab42ba231712 (patch) | |
tree | 830efeb31cef1750d6221392efd4ee7c26913ebb | |
parent | 57a26fd2aae9c38e56a05f1994feff6774eeba37 (diff) | |
download | NetworkManager-c61c16513e6ae55b4d3cd88a3459ab42ba231712.tar.gz |
fixup! libnm/active-connection: track reason for state changes
-rw-r--r-- | libnm/nm-active-connection.c | 7 | ||||
-rw-r--r-- | libnm/nm-object.c | 7 |
2 files changed, 13 insertions, 1 deletions
diff --git a/libnm/nm-active-connection.c b/libnm/nm-active-connection.c index 3cd87b0356..f21fd10495 100644 --- a/libnm/nm-active-connection.c +++ b/libnm/nm-active-connection.c @@ -408,6 +408,7 @@ static void dispose (GObject *object) { NMActiveConnectionPrivate *priv = NM_ACTIVE_CONNECTION_GET_PRIVATE (object); + GDBusProxy *proxy; g_clear_pointer (&priv->devices, g_ptr_array_unref); @@ -418,6 +419,12 @@ dispose (GObject *object) g_clear_object (&priv->ip6_config); g_clear_object (&priv->dhcp6_config); + proxy = _nm_object_get_proxy (NM_OBJECT (object), NM_DBUS_INTERFACE_ACTIVE_CONNECTION); + if (proxy) { + g_signal_handlers_disconnect_by_data (proxy, object); + g_object_unref (proxy); + } + G_OBJECT_CLASS (nm_active_connection_parent_class)->dispose (object); } diff --git a/libnm/nm-object.c b/libnm/nm-object.c index 048905fd69..95346e06e9 100644 --- a/libnm/nm-object.c +++ b/libnm/nm-object.c @@ -129,11 +129,16 @@ GDBusProxy * _nm_object_get_proxy (NMObject *object, const char *interface) { + NMObjectPrivate *priv; GDBusInterface *proxy; g_return_val_if_fail (NM_IS_OBJECT (object), NULL); - proxy = g_dbus_object_get_interface (NM_OBJECT_GET_PRIVATE (object)->object, interface); + priv = NM_OBJECT_GET_PRIVATE (object); + if (priv->object == NULL) + return NULL; + + proxy = g_dbus_object_get_interface (priv->object, interface); g_return_val_if_fail (proxy != NULL, NULL); return G_DBUS_PROXY (proxy); |