about summary refs log tree commit diff
path: root/src/nm-sleep-monitor-upower.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/nm-sleep-monitor-upower.c')
-rw-r--r--src/nm-sleep-monitor-upower.c124
1 files changed, 60 insertions, 64 deletions
diff --git a/src/nm-sleep-monitor-upower.c b/src/nm-sleep-monitor-upower.c
index 0c46ae10..c65609cf 100644
--- a/src/nm-sleep-monitor-upower.c
+++ b/src/nm-sleep-monitor-upower.c
@@ -22,33 +22,31 @@
 #include <errno.h>
 #include <string.h>
 #include <sys/stat.h>
-#include <dbus/dbus-glib.h>
-#include <gio/gio.h>
-#include "nm-logging.h"
-#include "nm-dbus-manager.h"
+#include "nm-default.h"
+#include "nm-core-internal.h"
 
 #include "nm-sleep-monitor.h"
 
 #define UPOWER_DBUS_SERVICE "org.freedesktop.UPower"
 
 struct _NMSleepMonitor {
-        GObject parent_instance;
+	GObject parent_instance;
 
-        DBusGProxy *upower_proxy;
+	GDBusProxy *upower_proxy;
 };
 
 struct _NMSleepMonitorClass {
-        GObjectClass parent_class;
+	GObjectClass parent_class;
 
-        void (*sleeping) (NMSleepMonitor *monitor);
-        void (*resuming) (NMSleepMonitor *monitor);
+	void (*sleeping) (NMSleepMonitor *monitor);
+	void (*resuming) (NMSleepMonitor *monitor);
 };
 
 
 enum {
-        SLEEPING,
-        RESUMING,
-        LAST_SIGNAL,
+	SLEEPING,
+	RESUMING,
+	LAST_SIGNAL,
 };
 static guint signals[LAST_SIGNAL] = {0};
 
@@ -57,80 +55,78 @@ G_DEFINE_TYPE (NMSleepMonitor, nm_sleep_monitor, G_TYPE_OBJECT);
 /********************************************************************/
 
 static void
-upower_sleeping_cb (DBusGProxy *proxy, gpointer user_data)
+upower_sleeping_cb (GDBusProxy *proxy, gpointer user_data)
 {
-        nm_log_dbg (LOGD_SUSPEND, "Received UPower sleeping signal");
-        g_signal_emit (user_data, signals[SLEEPING], 0);
+	nm_log_dbg (LOGD_SUSPEND, "Received UPower sleeping signal");
+	g_signal_emit (user_data, signals[SLEEPING], 0);
 }
 
 static void
-upower_resuming_cb (DBusGProxy *proxy, gpointer user_data)
+upower_resuming_cb (GDBusProxy *proxy, gpointer user_data)
 {
-        nm_log_dbg (LOGD_SUSPEND, "Received UPower resuming signal");
-        g_signal_emit (user_data, signals[RESUMING], 0);
+	nm_log_dbg (LOGD_SUSPEND, "Received UPower resuming signal");
+	g_signal_emit (user_data, signals[RESUMING], 0);
 }
 
 static void
 nm_sleep_monitor_init (NMSleepMonitor *self)
 {
-        DBusGConnection *bus;
-
-        bus = nm_dbus_manager_get_connection (nm_dbus_manager_get ());
-        self->upower_proxy = dbus_g_proxy_new_for_name (bus,
-                                                        UPOWER_DBUS_SERVICE,
-                                                        "/org/freedesktop/UPower",
-                                                        "org.freedesktop.UPower");
-        if (self->upower_proxy) {
-                dbus_g_proxy_add_signal (self->upower_proxy, "Sleeping", G_TYPE_INVALID);
-                dbus_g_proxy_connect_signal (self->upower_proxy, "Sleeping",
-                                             G_CALLBACK (upower_sleeping_cb),
-                                             self, NULL);
-
-                dbus_g_proxy_add_signal (self->upower_proxy, "Resuming", G_TYPE_INVALID);
-                dbus_g_proxy_connect_signal (self->upower_proxy, "Resuming",
-                                             G_CALLBACK (upower_resuming_cb),
-                                             self, NULL);
-        } else
-                nm_log_warn (LOGD_SUSPEND, "could not initialize UPower D-Bus proxy");
+	GError *error = NULL;
+
+	self->upower_proxy = g_dbus_proxy_new_for_bus_sync (G_BUS_TYPE_SYSTEM,
+	                                                    G_DBUS_PROXY_FLAGS_DO_NOT_AUTO_START |
+	                                                        G_DBUS_PROXY_FLAGS_DO_NOT_LOAD_PROPERTIES,
+	                                                    NULL,
+	                                                    UPOWER_DBUS_SERVICE,
+	                                                    "/org/freedesktop/UPower",
+	                                                    "org.freedesktop.UPower",
+	                                                    NULL, &error);
+	if (self->upower_proxy) {
+		_nm_dbus_signal_connect (self->upower_proxy, "Sleeping", NULL,
+		                         G_CALLBACK (upower_sleeping_cb), self);
+		_nm_dbus_signal_connect (self->upower_proxy, "Resuming", NULL,
+		                         G_CALLBACK (upower_resuming_cb), self);
+	} else {
+		nm_log_warn (LOGD_SUSPEND, "could not initialize UPower D-Bus proxy: %s", error->message);
+		g_error_free (error);
+	}
 }
 
 static void
 finalize (GObject *object)
 {
-        NMSleepMonitor *self = NM_SLEEP_MONITOR (object);
+	NMSleepMonitor *self = NM_SLEEP_MONITOR (object);
 
-        if (self->upower_proxy)
-                g_object_unref (self->upower_proxy);
+	g_clear_object (&self->upower_proxy);
 
-        if (G_OBJECT_CLASS (nm_sleep_monitor_parent_class)->finalize != NULL)
-                G_OBJECT_CLASS (nm_sleep_monitor_parent_class)->finalize (object);
+	G_OBJECT_CLASS (nm_sleep_monitor_parent_class)->finalize (object);
 }
 
 static void
 nm_sleep_monitor_class_init (NMSleepMonitorClass *klass)
 {
-        GObjectClass *gobject_class;
-
-        gobject_class = G_OBJECT_CLASS (klass);
-
-        gobject_class->finalize = finalize;
-
-        signals[SLEEPING] = g_signal_new (NM_SLEEP_MONITOR_SLEEPING,
-                                          NM_TYPE_SLEEP_MONITOR,
-                                          G_SIGNAL_RUN_LAST,
-                                          G_STRUCT_OFFSET (NMSleepMonitorClass, sleeping),
-                                          NULL,                   /* accumulator      */
-                                          NULL,                   /* accumulator data */
-                                          g_cclosure_marshal_VOID__VOID,
-                                          G_TYPE_NONE, 0);
-        signals[RESUMING] = g_signal_new (NM_SLEEP_MONITOR_RESUMING,
-                                          NM_TYPE_SLEEP_MONITOR,
-                                          G_SIGNAL_RUN_LAST,
-                                          G_STRUCT_OFFSET (NMSleepMonitorClass, resuming),
-                                          NULL,                   /* accumulator      */
-                                          NULL,                   /* accumulator data */
-                                          g_cclosure_marshal_VOID__VOID,
-                                          G_TYPE_NONE, 0);
+	GObjectClass *gobject_class;
+
+	gobject_class = G_OBJECT_CLASS (klass);
+
+	gobject_class->finalize = finalize;
+
+	signals[SLEEPING] = g_signal_new (NM_SLEEP_MONITOR_SLEEPING,
+	                                  NM_TYPE_SLEEP_MONITOR,
+	                                  G_SIGNAL_RUN_LAST,
+	                                  G_STRUCT_OFFSET (NMSleepMonitorClass, sleeping),
+	                                  NULL,                   /* accumulator      */
+	                                  NULL,                   /* accumulator data */
+	                                  g_cclosure_marshal_VOID__VOID,
+	                                  G_TYPE_NONE, 0);
+	signals[RESUMING] = g_signal_new (NM_SLEEP_MONITOR_RESUMING,
+	                                  NM_TYPE_SLEEP_MONITOR,
+	                                  G_SIGNAL_RUN_LAST,
+	                                  G_STRUCT_OFFSET (NMSleepMonitorClass, resuming),
+	                                  NULL,                   /* accumulator      */
+	                                  NULL,                   /* accumulator data */
+	                                  g_cclosure_marshal_VOID__VOID,
+	                                  G_TYPE_NONE, 0);
 }
 
 NM_DEFINE_SINGLETON_GETTER (NMSleepMonitor, nm_sleep_monitor_get, NM_TYPE_SLEEP_MONITOR);