From 350ee3c6323d2f939a6416d38ec3154b370ce5a5 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Jos=C3=A9=20Bollo?= Date: Thu, 15 Feb 2018 16:23:54 +0100 Subject: [PATCH] afb-session: Use clock insensitive to time changes MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Bug-AGL: SPEC-1296 Bug-AGL: SPEC-1293 Change-Id: I77ccb79975c6f2ac1a276031d9fd1c03839c3b91 Signed-off-by: José Bollo --- src/afb-session.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/afb-session.c b/src/afb-session.c index 6b6ad634..01e9bfcf 100644 --- a/src/afb-session.c +++ b/src/afb-session.c @@ -39,7 +39,7 @@ #define _MAXEXP_ ((time_t)(~(time_t)0)) #define _MAXEXP2_ ((time_t)((((unsigned long long)_MAXEXP_) >> 1))) #define MAX_EXPIRATION (_MAXEXP_ >= 0 ? _MAXEXP_ : _MAXEXP2_) -#define NOW (time(NULL)) +#define NOW (time_now()) struct cookie { @@ -73,6 +73,14 @@ static struct { char initok[SIZEUUID]; } sessions; +/* Get the actual raw time */ +static inline time_t time_now() +{ + struct timespec ts; + clock_gettime(CLOCK_MONOTONIC_RAW, &ts); + return ts.tv_sec; +} + /* generate a uuid */ static void new_uuid(char uuid[SIZEUUID]) { -- 2.16.6