afb-session: Use clock insensitive to time changes
authorJosé Bollo <jose.bollo@iot.bzh>
Thu, 15 Feb 2018 15:23:54 +0000 (16:23 +0100)
committerJosé Bollo <jose.bollo@iot.bzh>
Thu, 15 Feb 2018 16:23:07 +0000 (17:23 +0100)
Bug-AGL: SPEC-1296
Bug-AGL: SPEC-1293

Change-Id: I1838175b48dff8fbf1fd65bd304f9cfe917ced80
Signed-off-by: José Bollo <jose.bollo@iot.bzh>
src/afb-session.c

index 17ca7af..c312b46 100644 (file)
@@ -40,7 +40,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())
 
 /* structure for a cookie added to sessions */
 struct cookie
@@ -86,6 +86,14 @@ static struct {
        .mutex = PTHREAD_MUTEX_INITIALIZER
 };
 
+/* 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 new fresh 'uuid' */
 static void new_uuid(char uuid[SIZEUUID])
 {