summaryrefslogtreecommitdiff
path: root/src/daemon.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/daemon.c')
-rw-r--r--src/daemon.c10
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)),