diff options
author | Sebastien Bacher <seb128@ubuntu.com> | 2017-10-10 10:58:00 +0200 |
---|---|---|
committer | Debarshi Ray <debarshir@gnome.org> | 2018-03-05 16:29:14 +0100 |
commit | a86bef4e62b6666cbeec53544f9edde3b596ada6 (patch) | |
tree | a08a02ab1929af2df9dd150c60d98c7d88f08bfe | |
parent | 134a4056984600ccc62f6ddd401195cb3c50e83d (diff) | |
download | gnome-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.c | 14 |
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); |