suricata
util-time.c File Reference
#include "suricata-common.h"
#include "suricata.h"
#include "detect.h"
#include "threads.h"
#include "tm-threads.h"
#include "util-debug.h"
#include "util-time.h"
Include dependency graph for util-time.c:

Go to the source code of this file.

Macros

#define MONTHSPERYEAR   12
 

Functions

struct tm * SCLocalTime (time_t timep, struct tm *result)
 
struct tm * SCUtcTime (time_t timep, struct tm *result)
 
void TimeInit (void)
 
void TimeDeinit (void)
 
bool TimeModeIsReady (void)
 
void TimeModeSetLive (void)
 
void TimeModeSetOffline (void)
 
bool TimeModeIsLive (void)
 
void TimeSetByThread (const int thread_id, SCTime_t tv)
 
void TimeSet (SCTime_t ts)
 
void TimeSetToCurrentTime (void)
 set the time to "gettimeofday" meant for testing More...
 
SCTime_t TimeGet (void)
 
void TimeSetIncrementTime (uint32_t tv_sec)
 increment the time in the engine More...
 
void CreateIsoTimeString (const SCTime_t ts, char *str, size_t size)
 
void CreateUtcIsoTimeString (const SCTime_t ts, char *str, size_t size)
 
void CreateFormattedTimeString (const struct tm *t, const char *fmt, char *str, size_t size)
 
void CreateTimeString (const SCTime_t ts, char *str, size_t size)
 
time_t SCMkTimeUtc (struct tm *tp)
 Convert broken-down time to seconds since Unix epoch. More...
 
int SCStringPatternToTime (char *string, const char **patterns, int num_patterns, struct tm *tp)
 Parse a date string based on specified patterns. More...
 
int SCTimeToStringPattern (time_t epoch, const char *pattern, char *str, size_t size)
 Convert epoch time to string pattern. More...
 
uint64_t SCParseTimeSizeString (const char *str)
 Parse string containing time size (1m, 1h, etc). More...
 
uint64_t SCGetSecondsUntil (const char *str, time_t epoch)
 Get seconds until a time unit changes. More...
 
uint64_t SCTimespecAsEpochMillis (const struct timespec *ts)
 
uint64_t TimeDifferenceMicros (struct timeval t0, struct timeval t1)
 

Detailed Description

Author
Victor Julien victo.nosp@m.r@in.nosp@m.linia.nosp@m.c.ne.nosp@m.t
Ken Steele suric.nosp@m.ata@.nosp@m.tiler.nosp@m.a.co.nosp@m.m

Time keeping for offline (non-live) packet handling (pcap files). And time string generation for alerts.

Definition in file util-time.c.

Macro Definition Documentation

◆ MONTHSPERYEAR

#define MONTHSPERYEAR   12

Function Documentation

◆ CreateFormattedTimeString()

void CreateFormattedTimeString ( const struct tm *  t,
const char *  fmt,
char *  str,
size_t  size 
)

Definition at line 246 of file util-time.c.

References likely, and str.

Referenced by LogCustomFormatWriteTimestamp().

Here is the caller graph for this function:

◆ CreateIsoTimeString()

void CreateIsoTimeString ( const SCTime_t  ts,
char *  str,
size_t  size 
)

Definition at line 209 of file util-time.c.

References likely, SCLocalTime(), SCTIME_SECS, SCTIME_USECS, str, and ts.

Referenced by CreateEveHeader(), and EveAddFlow().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ CreateTimeString()

void CreateTimeString ( const SCTime_t  ts,
char *  str,
size_t  size 
)

Definition at line 272 of file util-time.c.

References likely, SCLocalTime(), SCTIME_SECS, SCTIME_USECS, str, and ts.

Referenced by AlertFastLogger().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ CreateUtcIsoTimeString()

void CreateUtcIsoTimeString ( const SCTime_t  ts,
char *  str,
size_t  size 
)

Definition at line 230 of file util-time.c.

References likely, SCTIME_SECS, SCTIME_USECS, SCUtcTime(), str, and ts.

Here is the call graph for this function:

◆ SCGetSecondsUntil()

uint64_t SCGetSecondsUntil ( const char *  str,
time_t  epoch 
)

Get seconds until a time unit changes.

Parameters
strString containing time type (minute, hour, etc).
epochEpoch time.
Return values
seconds.

Definition at line 621 of file util-time.c.

References SCLocalTime(), and str.

Referenced by SCConfLogOpenGeneric().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ SCLocalTime()

struct tm * SCLocalTime ( time_t  timep,
struct tm *  result 
)

Definition at line 267 of file util-time.c.

Referenced by CreateIsoTimeString(), CreateTimeString(), LogCustomFormatWriteTimestamp(), SCGetSecondsUntil(), and SCTimeToStringPattern().

Here is the caller graph for this function:

◆ SCMkTimeUtc()

time_t SCMkTimeUtc ( struct tm *  tp)

Convert broken-down time to seconds since Unix epoch.

This function is based on: http://www.catb.org/esr/time-programming (released to the public domain).

Parameters
tpPointer to broken-down time.
Return values
Secondssince Unix epoch.

Definition at line 442 of file util-time.c.

References MONTHSPERYEAR.

◆ SCParseTimeSizeString()

uint64_t SCParseTimeSizeString ( const char *  str)

Parse string containing time size (1m, 1h, etc).

Parameters
strString to parse.
Return values
sizeon success.
0on failure.

Definition at line 570 of file util-time.c.

References str.

Referenced by SCConfLogOpenGeneric().

Here is the caller graph for this function:

◆ SCStringPatternToTime()

int SCStringPatternToTime ( char *  string,
const char **  patterns,
int  num_patterns,
struct tm *  tp 
)

Parse a date string based on specified patterns.

This function is based on GNU C library getdate.

Parameters
stringDate string to parse.
patternsString array containing patterns.
num_patternsNumber of patterns to check.
tpPointer to broken-down time.
Return values
0on success.
1on failure.

Definition at line 485 of file util-time.c.

References strptime().

Here is the call graph for this function:

◆ SCTimespecAsEpochMillis()

uint64_t SCTimespecAsEpochMillis ( const struct timespec *  ts)

Definition at line 639 of file util-time.c.

References ts.

◆ SCTimeToStringPattern()

int SCTimeToStringPattern ( time_t  epoch,
const char *  pattern,
char *  str,
size_t  size 
)

Convert epoch time to string pattern.

This function converts epoch time to a string based on a pattern.

Parameters
epochEpoch time.
patternString pattern.
strFormated string.
sizeSize of allocated string.
Return values
0on success.
1on failure.

Definition at line 541 of file util-time.c.

References SCLocalTime(), str, strlcpy(), and unlikely.

Here is the call graph for this function:

◆ SCUtcTime()

struct tm * SCUtcTime ( time_t  timep,
struct tm *  result 
)

Definition at line 255 of file util-time.c.

Referenced by CreateUtcIsoTimeString().

Here is the caller graph for this function:

◆ TimeDeinit()

void TimeDeinit ( void  )

Definition at line 87 of file util-time.c.

References SCSpinDestroy.

Referenced by GlobalsDestroy().

Here is the caller graph for this function:

◆ TimeDifferenceMicros()

uint64_t TimeDifferenceMicros ( struct timeval  t0,
struct timeval  t1 
)

Definition at line 644 of file util-time.c.

◆ TimeGet()

SCTime_t TimeGet ( void  )

Definition at line 152 of file util-time.c.

References tv.

Referenced by TimeSetIncrementTime(), UTHBuildPacketIPV6Real(), and UTHBuildPacketReal().

Here is the caller graph for this function:

◆ TimeInit()

void TimeInit ( void  )

Definition at line 79 of file util-time.c.

References SCSpinInit.

Referenced by GlobalsInitPreConfig().

Here is the caller graph for this function:

◆ TimeModeIsLive()

bool TimeModeIsLive ( void  )

Definition at line 111 of file util-time.c.

◆ TimeModeIsReady()

bool TimeModeIsReady ( void  )

Definition at line 92 of file util-time.c.

◆ TimeModeSetLive()

◆ TimeModeSetOffline()

void TimeModeSetOffline ( void  )

Definition at line 105 of file util-time.c.

Referenced by RunModeErfFileAutoFp(), RunModeErfFileSingle(), RunModeFilePcapAutoFp(), and RunModeFilePcapSingle().

Here is the caller graph for this function:

◆ TimeSet()

void TimeSet ( SCTime_t  ts)

Definition at line 125 of file util-time.c.

Referenced by TimeSetIncrementTime(), and TimeSetToCurrentTime().

Here is the caller graph for this function:

◆ TimeSetByThread()

void TimeSetByThread ( const int  thread_id,
SCTime_t  tv 
)

Definition at line 116 of file util-time.c.

◆ TimeSetIncrementTime()

void TimeSetIncrementTime ( uint32_t  tv_sec)

increment the time in the engine

Parameters
tv_secseconds to increment the time with

Definition at line 180 of file util-time.c.

References SCTIME_ADD_SECS, TimeGet(), TimeSet(), and ts.

Here is the call graph for this function:

◆ TimeSetToCurrentTime()

void TimeSetToCurrentTime ( void  )

set the time to "gettimeofday" meant for testing

Definition at line 140 of file util-time.c.

References SCTIME_FROM_TIMEVAL, TimeSet(), ts, and tv.

Here is the call graph for this function: