diff options
Diffstat (limited to 'src/daemon.c')
-rw-r--r-- | src/daemon.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/src/daemon.c b/src/daemon.c index 188ddcb..3243955 100644 --- a/src/daemon.c +++ b/src/daemon.c @@ -83,6 +83,7 @@ typedef enum typedef struct { GDBusConnection *bus_connection; + GDBusObjectManagerServer *object_manager; GHashTable *users; gsize number_of_normal_users; @@ -642,7 +643,7 @@ reload_users (Daemon *daemon) stale_user = g_hash_table_lookup (old_users, name); if (!stale_user || (!user_get_cached (stale_user) && user_get_cached (user))) { - user_register (user); + user_register (user, priv->object_manager); accounts_accounts_emit_user_added (ACCOUNTS_ACCOUNTS (daemon), user_get_object_path (user)); } @@ -919,6 +920,8 @@ daemon_finalize (GObject *object) if (priv->bus_connection != NULL) g_object_unref (priv->bus_connection); + g_clear_object (&priv->object_manager); + g_queue_free_full (priv->pending_list_cached_users, (GDestroyNotify) list_user_data_free); @@ -961,6 +964,9 @@ register_accounts_daemon (Daemon *daemon) return FALSE; } + priv->object_manager = g_dbus_object_manager_server_new ("/org/freedesktop/Accounts/UserManager"); + g_dbus_object_manager_server_set_connection (priv->object_manager, priv->bus_connection); + return TRUE; } @@ -1009,7 +1015,7 @@ add_new_user_for_pwent (Daemon *daemon, user = user_new (daemon, pwent->pw_uid); user_update_from_pwent (user, pwent, spent); - user_register (user); + user_register (user, priv->object_manager); g_hash_table_insert (priv->users, g_strdup (user_get_user_name (user)), |