From: Mats Klepsland Date: Mon, 14 Mar 2016 09:31:16 +0000 (+0100) Subject: util-time: add function to create a UTC time string X-Git-Tag: suricata-3.2beta1~287 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=ac4e308140468fe2ee2ae32aa79392645fdbf7db;p=thirdparty%2Fsuricata.git util-time: add function to create a UTC time string Add function CreateUtcIsoTimeString to create a UTC time string. --- diff --git a/src/util-time.c b/src/util-time.c index 992650e317..6670a0157a 100644 --- a/src/util-time.c +++ b/src/util-time.c @@ -64,6 +64,7 @@ static SCSpinlock current_time_spinlock; static char live = TRUE; struct tm *SCLocalTime(time_t timep, struct tm *result); +struct tm *SCUtcTime(time_t timep, struct tm *result); void TimeInit(void) { @@ -190,6 +191,26 @@ void CreateIsoTimeString (const struct timeval *ts, char *str, size_t size) } } +void CreateUtcIsoTimeString (const struct timeval *ts, char *str, size_t size) +{ + time_t time = ts->tv_sec; + struct tm local_tm; + struct tm *t = (struct tm*)SCUtcTime(time, &local_tm); + char time_fmt[64] = { 0 }; + + if (likely(t != NULL)) { + strftime(time_fmt, sizeof(time_fmt), "%Y-%m-%dT%H:%M:%S", t); + snprintf(str, size, time_fmt, ts->tv_usec); + } else { + snprintf(str, size, "ts-error"); + } +} + +struct tm *SCUtcTime(time_t timep, struct tm *result) +{ + return gmtime_r(&timep, result); +} + /* * Time Caching code */ diff --git a/src/util-time.h b/src/util-time.h index c2cbd5a22b..fa71cf565b 100644 --- a/src/util-time.h +++ b/src/util-time.h @@ -53,6 +53,7 @@ int TimeModeIsLive(void); struct tm *SCLocalTime(time_t timep, struct tm *result); void CreateTimeString (const struct timeval *ts, char *str, size_t size); void CreateIsoTimeString (const struct timeval *ts, char *str, size_t size); +void CreateUtcIsoTimeString (const struct timeval *ts, char *str, size_t size); time_t SCMkTimeUtc (struct tm *tp); int SCStringPatternToTime (char *string, char **patterns, int num_patterns, struct tm *time);