aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/filelock.c23
1 files changed, 16 insertions, 7 deletions
diff --git a/src/filelock.c b/src/filelock.c
index 9217b58f18..b671533161 100644
--- a/src/filelock.c
+++ b/src/filelock.c
@@ -62,6 +62,12 @@ extern int errno;
#include <utmp.h>
+/* A file whose last-modified time is just after the most recent boot.
+ Define this to be NULL to disable checking for this file. */
+#ifndef BOOT_TIME_FILE
+#define BOOT_TIME_FILE "/var/run/random-seed"
+#endif
+
#ifndef WTMP_FILE
#define WTMP_FILE "/var/log/wtmp"
#endif
@@ -113,18 +119,11 @@ static time_t
get_boot_time ()
{
int counter;
- struct stat st;
if (boot_time_initialized)
return boot_time;
boot_time_initialized = 1;
- if (stat ("/var/run/random-seed", &st) == 0)
- {
- boot_time = st.st_mtime;
- return boot_time;
- }
-
#if defined (CTL_KERN) && defined (KERN_BOOTTIME)
{
int mib[2];
@@ -143,6 +142,16 @@ get_boot_time ()
}
#endif /* defined (CTL_KERN) && defined (KERN_BOOTTIME) */
+ if (BOOT_TIME_FILE)
+ {
+ struct stat st;
+ if (stat (BOOT_TIME_FILE, &st) == 0)
+ {
+ boot_time = st.st_mtime;
+ return boot_time;
+ }
+ }
+
#if defined (BOOT_TIME) && ! defined (NO_WTMP_FILE)
#ifndef CANNOT_DUMP
/* The utmp routines maintain static state.