summary refs log tree commit diff
path: root/src/nm-manager.c
diff options
context:
space:
mode:
authorMichael Biebl <biebl@debian.org>2015-12-24 00:24:58 +0100
committerMichael Biebl <biebl@debian.org>2015-12-24 00:24:58 +0100
commit54f6333410ffd570e62717d9e77c5c987175e397 (patch)
treed0698cc29d0f53c0b6d2c68d35ee2e9d72153948 /src/nm-manager.c
parenta6ece1a2aa19a6268335c87d4fdef20123dd04a5 (diff)
Imported Upstream version 1.0.10 upstream/1.0.10
Diffstat (limited to 'src/nm-manager.c')
-rw-r--r--src/nm-manager.c14
1 files changed, 9 insertions, 5 deletions
diff --git a/src/nm-manager.c b/src/nm-manager.c
index cc52ea78..a1e4fb4f 100644
--- a/src/nm-manager.c
+++ b/src/nm-manager.c
@@ -4880,7 +4880,7 @@ nm_manager_init (NMManager *manager)
 	                  G_CALLBACK (dbus_connection_changed_cb),
 	                  manager);
 
-	priv->vpn_manager = nm_vpn_manager_get ();
+	priv->vpn_manager = g_object_ref (nm_vpn_manager_get ());
 
 	g_connection = nm_dbus_manager_get_connection (priv->dbus_mgr);
 
@@ -4908,10 +4908,10 @@ nm_manager_init (NMManager *manager)
 		nm_log_warn (LOGD_AUTOIP4, "could not initialize avahi-autoipd D-Bus proxy");
 
 	/* sleep/wake handling */
-	priv->sleep_monitor = nm_sleep_monitor_get ();
-	g_signal_connect (priv->sleep_monitor, "sleeping",
+	priv->sleep_monitor = g_object_ref (nm_sleep_monitor_get ());
+	g_signal_connect (priv->sleep_monitor, NM_SLEEP_MONITOR_SLEEPING,
 	                  G_CALLBACK (sleeping_cb), manager);
-	g_signal_connect (priv->sleep_monitor, "resuming",
+	g_signal_connect (priv->sleep_monitor, NM_SLEEP_MONITOR_RESUMING,
 	                  G_CALLBACK (resuming_cb), manager);
 
 	/* Listen for authorization changes */
@@ -5142,7 +5142,11 @@ dispose (GObject *object)
 	}
 
 	g_clear_object (&priv->aipd_proxy);
-	g_clear_object (&priv->sleep_monitor);
+	if (priv->sleep_monitor) {
+		g_signal_handlers_disconnect_by_func (priv->sleep_monitor, sleeping_cb, manager);
+		g_signal_handlers_disconnect_by_func (priv->sleep_monitor, resuming_cb, manager);
+		g_clear_object (&priv->sleep_monitor);
+	}
 
 	if (priv->fw_monitor) {
 		g_signal_handlers_disconnect_by_func (priv->fw_monitor, firmware_dir_changed, manager);