SLE sync OBS-URL: https://build.opensuse.org/request/show/415780 OBS-URL: https://build.opensuse.org/package/show/GNOME:Factory/accountsservice?expand=0&rev=85
42 lines
2.0 KiB
Diff
42 lines
2.0 KiB
Diff
diff -urp accountsservice-0.6.40.orig/src/daemon.c accountsservice-0.6.40/src/daemon.c
|
|
--- accountsservice-0.6.40.orig/src/daemon.c 2014-11-03 21:46:00.000000000 -0600
|
|
+++ accountsservice-0.6.40/src/daemon.c 2016-04-14 14:35:00.644563940 -0500
|
|
@@ -234,7 +234,8 @@ entry_generator_cachedir (GHashTable *us
|
|
static void
|
|
load_entries (Daemon *daemon,
|
|
GHashTable *users,
|
|
- EntryGeneratorFunc entry_generator)
|
|
+ EntryGeneratorFunc entry_generator,
|
|
+ gboolean force_load)
|
|
{
|
|
gpointer generator_state = NULL;
|
|
struct passwd *pwent;
|
|
@@ -248,7 +249,7 @@ load_entries (Daemon *daemon
|
|
break;
|
|
|
|
/* Skip system users... */
|
|
- if (!user_classify_is_human (pwent->pw_uid, pwent->pw_name, pwent->pw_shell, NULL)) {
|
|
+ if (!force_load && !user_classify_is_human (pwent->pw_uid, pwent->pw_name, pwent->pw_shell, NULL)) {
|
|
g_debug ("skipping user: %s", pwent->pw_name);
|
|
continue;
|
|
}
|
|
@@ -306,15 +307,15 @@ reload_users (Daemon *daemon)
|
|
*/
|
|
|
|
/* Load the local users into our hash table */
|
|
- load_entries (daemon, users, entry_generator_fgetpwent);
|
|
+ load_entries (daemon, users, entry_generator_fgetpwent, FALSE);
|
|
local = g_hash_table_new (g_str_hash, g_str_equal);
|
|
g_hash_table_iter_init (&iter, users);
|
|
while (g_hash_table_iter_next (&iter, &name, NULL))
|
|
g_hash_table_add (local, name);
|
|
|
|
/* Now add/update users from other sources, possibly non-local */
|
|
- load_entries (daemon, users, wtmp_helper_entry_generator);
|
|
- load_entries (daemon, users, entry_generator_cachedir);
|
|
+ load_entries (daemon, users, wtmp_helper_entry_generator, FALSE);
|
|
+ load_entries (daemon, users, entry_generator_cachedir, TRUE);
|
|
|
|
/* Mark which users are local, which are not */
|
|
g_hash_table_iter_init (&iter, users);
|