diff options
Diffstat (limited to 'sysutils/accountsservice/files/patch-src_daemon.c')
-rw-r--r-- | sysutils/accountsservice/files/patch-src_daemon.c | 92 |
1 files changed, 3 insertions, 89 deletions
diff --git a/sysutils/accountsservice/files/patch-src_daemon.c b/sysutils/accountsservice/files/patch-src_daemon.c index c8f73dfce..c7400ce07 100644 --- a/sysutils/accountsservice/files/patch-src_daemon.c +++ b/sysutils/accountsservice/files/patch-src_daemon.c @@ -1,16 +1,6 @@ ---- src/daemon.c.orig 2011-10-16 20:25:13.000000000 +0200 -+++ src/daemon.c 2011-10-16 20:28:05.000000000 +0200 -@@ -32,7 +32,9 @@ - #include <errno.h> - #include <unistd.h> - #include <sys/types.h> -+#ifdef HAVE_UTMPX_H - #include <utmpx.h> -+#endif - - #include <glib.h> - #include <glib/gi18n.h> -@@ -52,6 +54,9 @@ +--- src/daemon.c.orig 2011-10-17 21:30:22.000000000 +0200 ++++ src/daemon.c 2011-10-18 16:28:09.000000000 +0200 +@@ -54,6 +54,9 @@ #define PATH_LOGIN_DEFS "/etc/login.defs" #define PATH_GDM_CUSTOM "/etc/gdm/custom.conf" @@ -20,79 +10,3 @@ #ifndef FALLBACK_MINIMAL_UID #define FALLBACK_MINIMAL_UID 500 #endif -@@ -238,13 +243,19 @@ daemon_local_user_is_excluded (Daemon *d - static void - reload_wtmp_history (Daemon *daemon) - { -+#ifdef HAVE_UTMPX_H - struct utmpx *wtmp_entry; - GHashTable *login_frequency_hash; - GHashTableIter iter; - gpointer key, value; - -- utmpxname(_PATH_WTMPX); -+#ifdef UTXDB_LOG -+ if (setutxdb (UTXDB_LOG, NULL) != 0) -+ return; -+#else -+ utmpxname (_PATH_WTMPX); - setutxent (); -+#endif - - login_frequency_hash = g_hash_table_new_full (g_str_hash, g_str_equal, NULL, NULL); - -@@ -298,6 +309,7 @@ reload_wtmp_history (Daemon *daemon) - - g_hash_table_foreach (login_frequency_hash, (GHFunc) g_free, NULL); - g_hash_table_unref (login_frequency_hash); -+#endif /* HAVE_UTMPX_H */ - } - - static void -@@ -326,22 +338,32 @@ reload_passwd (Daemon *daemon) - GSList *old_users; - GSList *new_users; - GSList *list; -+#ifdef HAVE_FGETPWENT - FILE *fp; -+#endif - User *user = NULL; - - old_users = NULL; - new_users = NULL; - -+#ifdef HAVE_FGETPWENT - errno = 0; - fp = fopen (PATH_PASSWD, "r"); - if (fp == NULL) { - g_warning ("Unable to open %s: %s", PATH_PASSWD, g_strerror (errno)); - goto out; - } -+#else -+ setpwent(); -+#endif - g_hash_table_foreach (daemon->priv->users, listify_hash_values_hfunc, &old_users); - g_slist_foreach (old_users, (GFunc) g_object_ref, NULL); - -- for (pwent = fgetpwent (fp); pwent != NULL; pwent = fgetpwent (fp)) { -+#ifdef HAVE_FGETPWENT -+ while ((pwent = fgetpwent (fp)) != NULL) { -+#else -+ while ((pwent = getpwent ()) != NULL) { -+#endif - /* Skip users below MINIMAL_UID... */ - if (daemon_local_user_is_excluded (daemon, pwent->pw_name, pwent->pw_uid)) { - g_debug ("skipping user: %s", pwent->pw_name); -@@ -391,10 +413,12 @@ reload_passwd (Daemon *daemon) - } - } - -+#ifdef HAVE_FGETPWENT - out: - /* Cleanup */ - - fclose (fp); -+#endif - - g_slist_foreach (new_users, (GFunc) g_object_thaw_notify, NULL); - g_slist_foreach (new_users, (GFunc) g_object_unref, NULL); |