From 6180a55852afaf7fee4086a45dccbff9d7f7dfa8 Mon Sep 17 00:00:00 2001 From: Martin Willi Date: Mon, 31 Aug 2009 17:59:00 +0200 Subject: use time_monotonic() instead of time() for statistics and time difference calculations --- src/charon/plugins/kernel_netlink/kernel_netlink_ipsec.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) (limited to 'src/charon/plugins/kernel_netlink/kernel_netlink_ipsec.c') diff --git a/src/charon/plugins/kernel_netlink/kernel_netlink_ipsec.c b/src/charon/plugins/kernel_netlink/kernel_netlink_ipsec.c index 63a968371..edad7f700 100644 --- a/src/charon/plugins/kernel_netlink/kernel_netlink_ipsec.c +++ b/src/charon/plugins/kernel_netlink/kernel_netlink_ipsec.c @@ -1774,7 +1774,16 @@ static status_t query_policy(private_kernel_netlink_ipsec_t *this, free(out); return FAILED; } - *use_time = (time_t)policy->curlft.use_time; + + if (policy->curlft.use_time) + { + /* we need the monotonic time, but the kernel returns system time. */ + *use_time = time_monotonic(NULL) - (time(NULL) - policy->curlft.use_time); + } + else + { + *use_time = 0; + } free(out); return SUCCESS; -- cgit v1.2.3