summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/util.c9
1 files changed, 4 insertions, 5 deletions
diff --git a/src/util.c b/src/util.c
index b95c7de..e641905 100644
--- a/src/util.c
+++ b/src/util.c
@@ -430,13 +430,12 @@ int hostname_issubdomain(char *a, char *b)
time_t dnsmasq_time(void)
{
#ifdef HAVE_BROKEN_RTC
- struct tms dummy;
- static long tps = 0;
+ struct timespec ts;
- if (tps == 0)
- tps = sysconf(_SC_CLK_TCK);
+ if (clock_gettime(CLOCK_MONOTONIC, &ts) < 0)
+ die(_("cannot read monotonic clock: %s"), NULL, EC_MISC);
- return (time_t)(times(&dummy)/tps);
+ return ts.tv_sec;
#else
return time(NULL);
#endif