diff options
author | Rainer Gerhards <rgerhards@adiscon.com> | 2008-10-07 14:26:41 +0200 |
---|---|---|
committer | Rainer Gerhards <rgerhards@adiscon.com> | 2008-10-07 14:26:41 +0200 |
commit | 8528344ef58b5d2907bba8809f63d0bca2ce8d38 (patch) | |
tree | a7246f6453782404f2a197ea0b96c87c6d20a03b /runtime/datetime.c | |
parent | cdecd7e524a5114ccff4f2909b32738bdb33c6ea (diff) | |
download | rsyslog-8528344ef58b5d2907bba8809f63d0bca2ce8d38.tar.gz rsyslog-8528344ef58b5d2907bba8809f63d0bca2ce8d38.tar.xz rsyslog-8528344ef58b5d2907bba8809f63d0bca2ce8d38.zip |
"output" timestamp now taken from mesg's time generated
This enhances performance and, as some have pointed out, is
probably also more consistent with what users expect how
the various output-timestamp related function should work. This
commit needs some more testing.
Diffstat (limited to 'runtime/datetime.c')
-rw-r--r-- | runtime/datetime.c | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/runtime/datetime.c b/runtime/datetime.c index 20ca6191..aa1956d7 100644 --- a/runtime/datetime.c +++ b/runtime/datetime.c @@ -62,9 +62,14 @@ DEFobjCurrIf(errmsg) * most portable and removes the need for additional structures * (but I have to admit it is somewhat "bulky";)). * - * Obviously, all caller-provided pointers must not be NULL... + * Obviously, *t must not be NULL... + * + * rgerhards, 2008-10-07: added ttSeconds to provide a way to + * obtain the second-resolution UNIX timestamp. This is needed + * in some situations to minimize time() calls (namely when doing + * output processing). This can be left NULL if not needed. */ -static void getCurrTime(struct syslogTime *t) +static void getCurrTime(struct syslogTime *t, time_t *ttSeconds) { struct timeval tp; struct tm *tm; @@ -83,6 +88,9 @@ static void getCurrTime(struct syslogTime *t) # else gettimeofday(&tp, NULL); # endif + if(ttSeconds != NULL) + *ttSeconds = tp.tv_sec; + tm = localtime_r((time_t*) &(tp.tv_sec), &tmBuf); t->year = tm->tm_year + 1900; |