summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLubomir Rintel <lkundrak@v3.sk>2017-03-11 14:28:32 +0100
committerLubomir Rintel <lkundrak@v3.sk>2017-03-17 10:21:19 +0100
commitc61c16513e6ae55b4d3cd88a3459ab42ba231712 (patch)
tree830efeb31cef1750d6221392efd4ee7c26913ebb
parent57a26fd2aae9c38e56a05f1994feff6774eeba37 (diff)
downloadNetworkManager-c61c16513e6ae55b4d3cd88a3459ab42ba231712.tar.gz
fixup! libnm/active-connection: track reason for state changes
-rw-r--r--libnm/nm-active-connection.c7
-rw-r--r--libnm/nm-object.c7
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);