]> git.eshelyaron.com Git - emacs.git/commitdiff
(get_boot_time): Scan the whole wtmp file
authorRichard M. Stallman <rms@gnu.org>
Mon, 18 May 1998 00:17:38 +0000 (00:17 +0000)
committerRichard M. Stallman <rms@gnu.org>
Mon, 18 May 1998 00:17:38 +0000 (00:17 +0000)
to find the most recent reboot.

src/filelock.c

index 819516d04bd4fc206696af9a26ce0160b5114787..6876cbdb5c1991af5cd72066f031451e062bbbfd 100644 (file)
@@ -104,13 +104,27 @@ get_boot_time ()
     return boot_time;
 
   utmpname ("/var/log/wtmp");
-  ut.ut_type = BOOT_TIME;
-  utp = getutid (&ut);
+  setutent ();
+  boot_time = 1;
+  while (1)
+    {
+      /* Find the next reboot record.  */
+      ut.ut_type = BOOT_TIME;
+      utp = getutid (&ut);
+      if (! utp)
+       break;
+      /* Compare reboot times and use the newest one.  */
+      if (utp->ut_time > boot_time)
+       boot_time = utp->ut_time;
+      /* Advance on element in the file
+        so that getutid won't repeat the same one.  */
+      utp = getutent ();
+      if (! utp)
+       break;
+    }
   endutent ();
 
-  if (!utp)
-    return boot_time = 1;
-  return boot_time = utp->ut_time;
+  return boot_time;
 #else
   return 0;
 #endif