diff options
-rw-r--r-- | src/users-service-dbus.c | 47 | ||||
-rw-r--r-- | src/users-service-dbus.h | 3 | ||||
-rw-r--r-- | src/users-service.c | 7 |
3 files changed, 17 insertions, 40 deletions
diff --git a/src/users-service-dbus.c b/src/users-service-dbus.c index 18a1b2a..e044fe8 100644 --- a/src/users-service-dbus.c +++ b/src/users-service-dbus.c @@ -80,8 +80,6 @@ struct _UsersServiceDbusPrivate DBusGProxy *dbus_proxy_session; DBusGProxy *dbus_proxy_system; DBusGProxy *gdm_proxy; - - gchar *error; }; #define USERS_SERVICE_DBUS_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), USERS_SERVICE_DBUS_TYPE, UsersServiceDbusPrivate)) @@ -160,8 +158,6 @@ users_service_dbus_init (UsersServiceDbus *self) g_error ("Unable to get session bus: %s", error->message); g_error_free (error); - priv->error = g_strdup ("Failed to get session bus"); - return; } @@ -170,8 +166,6 @@ users_service_dbus_init (UsersServiceDbus *self) g_error("Unable to get system bus: %s", error->message); g_error_free(error); - priv->error = g_strdup ("Failed to get system bus"); - return; } @@ -190,8 +184,6 @@ users_service_dbus_init (UsersServiceDbus *self) g_error ("Unable to get dbus proxy on session bus: %s", error->message); g_error_free (error); - priv->error = g_strdup ("Failed to get session proxy"); - return; } @@ -205,12 +197,10 @@ users_service_dbus_init (UsersServiceDbus *self) g_error ("Unable to get dbus proxy on system bus: %s", error->message); g_error_free (error); - priv->error = g_strdup ("Failed to get system proxy"); - return; } - priv->gdm_proxy = dbus_g_proxy_new_for_name_owner (priv->system_bus, // XXX ? + priv->gdm_proxy = dbus_g_proxy_new_for_name_owner (priv->system_bus, "org.gnome.DisplayManager", "/org/gnome/DisplayManager/UserManager", "org.gnome.DisplayManager.UserManager", @@ -220,8 +210,6 @@ users_service_dbus_init (UsersServiceDbus *self) { g_error ("Unable to get DisplayManager proxy on system bus: %s", error->message); g_error_free (error); - - priv->error = g_strdup_printf ("Unable to get DisplayManager proxy: %s", error->message); } dbus_g_object_register_marshaller (_users_service_marshal_VOID__INT64, @@ -294,8 +282,8 @@ users_loaded (DBusGProxy *proxy, UsersServiceDbus *service; UsersServiceDbusPrivate *priv; GError *error = NULL; - GArray *uids; - GPtrArray *users_info; + GArray *uids = NULL; + GPtrArray *users_info = NULL; gint count; int i; @@ -307,7 +295,6 @@ users_loaded (DBusGProxy *proxy, &error)) { g_warning ("failed to retrieve user count: %s", error->message); - priv->error = g_strdup_printf ("Failed to retrieve user count: %s", error->message); g_error_free (error); return; @@ -315,26 +302,26 @@ users_loaded (DBusGProxy *proxy, priv->count = count; + uids = g_array_new (FALSE, FALSE, sizeof (gint64)); + if (!org_gnome_DisplayManager_UserManager_get_user_list (proxy, &uids, &error)) { g_warning ("failed to retrieve user list: %s", error->message); - priv->error = g_strdup_printf ("Failed to retrieve user list: %s", error->message); - g_print ("priv->error == %s\n", priv->error); g_error_free (error); return; } + users_info = g_ptr_array_new (); + if (!org_gnome_DisplayManager_UserManager_get_users_info (proxy, uids, &users_info, &error)) { g_warning ("failed to retrieve user info: %s", error->message); - priv->error = g_strdup_printf ("Failed to get user info: %s", error->message); - g_print ("priv->error == %s\n", priv->error); g_error_free (error); return; @@ -342,13 +329,19 @@ users_loaded (DBusGProxy *proxy, for (i = 0; i < users_info->len; i++) { + GValueArray *values; UserData *data; - g_print (" -> setting up user %d\n", i); + values = g_ptr_array_index (users_info, i); - data = g_ptr_array_index (users_info, i); + data = g_new0 (UserData, 1); - g_print (" * user_name: %s\n", data->user_name); + data->uid = g_value_get_int64 (g_value_array_get_nth (values, 0)); + data->user_name = g_strdup (g_value_get_string (g_value_array_get_nth (values, 1))); + data->real_name = g_strdup (g_value_get_string (g_value_array_get_nth (values, 2))); + data->shell = g_strdup (g_value_get_string (g_value_array_get_nth (values, 3))); + data->login_count = g_value_get_int (g_value_array_get_nth (values, 4)); + data->icon_url = g_strdup (g_value_get_string (g_value_array_get_nth (values, 5))); priv->users = g_list_prepend (priv->users, data); } @@ -499,11 +492,3 @@ _users_service_server_get_users_info (UsersServiceDbus *service, { return TRUE; } - -gchar * -users_service_dbus_get_error (UsersServiceDbus *self) -{ - UsersServiceDbusPrivate *priv = USERS_SERVICE_DBUS_GET_PRIVATE (self); - - return priv->error; -} diff --git a/src/users-service-dbus.h b/src/users-service-dbus.h index 370df2e..ecfaf6d 100644 --- a/src/users-service-dbus.h +++ b/src/users-service-dbus.h @@ -38,7 +38,7 @@ typedef struct _UserData UserData; struct _UserData { - uid_t uid; + gint64 uid; gchar *user_name; gchar *real_name; gchar *shell; @@ -68,7 +68,6 @@ GType users_service_dbus_get_type (void) G_GNUC_CONST; gint users_service_dbus_get_user_count (UsersServiceDbus *self); GList *users_service_dbus_get_user_list (UsersServiceDbus *self); -gchar *users_service_dbus_get_error (UsersServiceDbus *self); G_END_DECLS diff --git a/src/users-service.c b/src/users-service.c index c7c2a53..0a98983 100644 --- a/src/users-service.c +++ b/src/users-service.c @@ -135,7 +135,6 @@ rebuild_items (DbusmenuMenuitem *root, DbusmenuMenuitem *mi = NULL; GList *u; UserData *user; - gchar *error; dbusmenu_menuitem_foreach (root, remove_menu_item, NULL); @@ -150,12 +149,6 @@ rebuild_items (DbusmenuMenuitem *root, dbusmenu_menuitem_property_set (mi, DBUSMENU_MENUITEM_PROP_LABEL, g_strdup_printf ("START (count is %d)", count)); dbusmenu_menuitem_child_append (root, mi); - error = users_service_dbus_get_error (service); - - mi = dbusmenu_menuitem_new (); - dbusmenu_menuitem_property_set (mi, DBUSMENU_MENUITEM_PROP_LABEL, g_strdup_printf ("ERROR: %s", error)); - dbusmenu_menuitem_child_append (root, mi); - g_print ("count == %d\n", count); if (count > 1 && count < 7) |