summary refs log tree commit diff
path: root/login/getutent_r.c
diff options
context:
space:
mode:
Diffstat (limited to 'login/getutent_r.c')
-rw-r--r--login/getutent_r.c54
1 files changed, 19 insertions, 35 deletions
diff --git a/login/getutent_r.c b/login/getutent_r.c
index a50e2786fd..ed4c330f73 100644
--- a/login/getutent_r.c
+++ b/login/getutent_r.c
@@ -29,9 +29,9 @@
 
 
 /* The various backends we have.  */
-static int setutent_unknown (int reset);
 static int getutent_r_unknown (struct utmp *buffer, struct utmp **result);
 static struct utmp *pututline_unknown (const struct utmp *data);
+static void setutent_unknown (void);
 static void endutent_unknown (void);
 
 /* Initial Jump table.  */
@@ -58,7 +58,7 @@ __setutent (void)
 {
   __libc_lock_lock (__libc_utmp_lock);
 
-  (void) (*__libc_utmp_jump_table->setutent) (1);
+  (*__libc_utmp_jump_table->setutent) ();
 
   __libc_lock_unlock (__libc_utmp_lock);
 }
@@ -66,36 +66,6 @@ weak_alias (__setutent, setutent)
 weak_alias (__setutent, setutxent)
 
 
-static int
-setutent_unknown (int reset)
-{
-  /* We have to test whether it is still not decided which backend to use.  */
-  assert (__libc_utmp_jump_table == &__libc_utmp_unknown_functions);
-
-  /* See whether utmpd is running.  */
-  if ((*__libc_utmp_daemon_functions.setutent) (reset))
-    __libc_utmp_jump_table = &__libc_utmp_daemon_functions;
-  else
-    {
-      /* Use the normal file, but if the current file is _PATH_UTMP or
-         _PATH_WTMP and the corresponding extended file (with an extra
-         'x' added to the pathname) exists, we use the extended file,
-         because the original file is in a different format.  */
-      if (strcmp (__libc_utmp_file_name, _PATH_UTMP) == 0
-	  && __access (_PATH_UTMP "x", F_OK) == 0)
-	__utmpname (_PATH_UTMP "x");
-      else if (strcmp (__libc_utmp_file_name, _PATH_WTMP) == 0
-	       && __access (_PATH_WTMP "x", F_OK) == 0)
-	__utmpname (_PATH_WTMP "x");
-
-      (*__libc_utmp_file_functions.setutent) (reset);
-      __libc_utmp_jump_table = &__libc_utmp_file_functions;
-    }
-
-  return 0;
-}
-
-
 void
 __endutent (void)
 {
@@ -110,6 +80,20 @@ weak_alias (__endutent, endutxent)
 
 
 static void
+setutent_unknown (void)
+{
+  /* See whether utmpd is running.  */
+  if ((*__libc_utmp_daemon_functions.setutent) ())
+    __libc_utmp_jump_table = &__libc_utmp_daemon_functions;
+  else
+    {
+      (*__libc_utmp_file_functions.setutent) ();
+      __libc_utmp_jump_table = &__libc_utmp_file_functions;
+    }
+}
+
+
+static void
 endutent_unknown (void)
 {
   /* Huh, how do we came here?  Nothing to do.  */
@@ -136,7 +120,7 @@ static int
 getutent_r_unknown (struct utmp *buffer, struct utmp **result)
 {
   /* It is not yet initialized.  */
-  setutent_unknown (0);
+  __setutent ();
 
   return (*__libc_utmp_jump_table->getutent_r) (buffer, result);
 }
@@ -158,12 +142,12 @@ __pututline (const struct utmp *data)
 weak_alias (__pututline, pututline)
 weak_alias (__pututline, pututxline)
 
-     
+
 static struct utmp *
 pututline_unknown (const struct utmp *data)
 {
   /* It is not yet initialized.  */
-  setutent_unknown (0);
+  __setutent ();
 
   return (*__libc_utmp_jump_table->pututline) (data);
 }