summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSebastien Bacher <seb128@ubuntu.com>2017-10-10 10:58:00 +0200
committerDebarshi Ray <debarshir@gnome.org>2018-03-05 16:29:14 +0100
commita86bef4e62b6666cbeec53544f9edde3b596ada6 (patch)
treea08a02ab1929af2df9dd150c60d98c7d88f08bfe
parent134a4056984600ccc62f6ddd401195cb3c50e83d (diff)
downloadgnome-settings-daemon-a86bef4e62b6666cbeec53544f9edde3b596ada6.tar.gz
housekeeping: own the dbus name so the service can be contacted
https://bugzilla.gnome.org/show_bug.cgi?id=737624
-rw-r--r--plugins/housekeeping/gsd-housekeeping-manager.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/plugins/housekeeping/gsd-housekeeping-manager.c b/plugins/housekeeping/gsd-housekeeping-manager.c
index 7a837cfe..2abddebc 100644
--- a/plugins/housekeeping/gsd-housekeeping-manager.c
+++ b/plugins/housekeeping/gsd-housekeeping-manager.c
@@ -56,6 +56,7 @@ struct GsdHousekeepingManagerPrivate {
GDBusNodeInfo *introspection_data;
GDBusConnection *connection;
GCancellable *bus_cancellable;
+ guint name_id;
};
#define GSD_HOUSEKEEPING_MANAGER_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), GSD_TYPE_HOUSEKEEPING_MANAGER, GsdHousekeepingManagerPrivate))
@@ -354,6 +355,14 @@ on_bus_gotten (GObject *source_object,
NULL,
NULL);
}
+
+ manager->priv->name_id = g_bus_own_name_on_connection (connection,
+ "org.gnome.SettingsDaemon.Housekeeping",
+ G_BUS_NAME_OWNER_FLAGS_NONE,
+ NULL,
+ NULL,
+ NULL,
+ NULL);
}
static void
@@ -414,6 +423,11 @@ gsd_housekeeping_manager_stop (GsdHousekeepingManager *manager)
g_debug ("Stopping housekeeping manager");
+ if (manager->priv->name_id != 0) {
+ g_bus_unown_name (manager->priv->name_id);
+ manager->priv->name_id = 0;
+ }
+
g_clear_object (&p->bus_cancellable);
g_clear_pointer (&p->introspection_data, g_dbus_node_info_unref);
g_clear_object (&p->connection);