From c61c16513e6ae55b4d3cd88a3459ab42ba231712 Mon Sep 17 00:00:00 2001 From: Lubomir Rintel Date: Sat, 11 Mar 2017 14:28:32 +0100 Subject: fixup! libnm/active-connection: track reason for state changes --- libnm/nm-active-connection.c | 7 +++++++ libnm/nm-object.c | 7 ++++++- 2 files changed, 13 insertions(+), 1 deletion(-) (limited to 'libnm') 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); -- cgit v1.2.1