summaryrefslogtreecommitdiffstats
path: root/runtime/msg.h
diff options
context:
space:
mode:
authorRainer Gerhards <rgerhards@adiscon.com>2008-10-07 14:26:41 +0200
committerRainer Gerhards <rgerhards@adiscon.com>2008-10-07 14:26:41 +0200
commit8528344ef58b5d2907bba8809f63d0bca2ce8d38 (patch)
treea7246f6453782404f2a197ea0b96c87c6d20a03b /runtime/msg.h
parentcdecd7e524a5114ccff4f2909b32738bdb33c6ea (diff)
downloadrsyslog-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/msg.h')
-rw-r--r--runtime/msg.h9
1 files changed, 8 insertions, 1 deletions
diff --git a/runtime/msg.h b/runtime/msg.h
index d3c0718b..d2fc2f30 100644
--- a/runtime/msg.h
+++ b/runtime/msg.h
@@ -99,6 +99,13 @@ struct msg {
cstr_t *pCSAPPNAME; /* APP-NAME */
cstr_t *pCSPROCID; /* PROCID */
cstr_t *pCSMSGID; /* MSGID */
+ time_t ttGenTime; /* time msg object was generated, same as tRcvdAt, but a Unix timestamp.
+ While this field looks redundant, it is required because a Unix timestamp
+ is used at later processing stages (namely in the output arena). Thanks to
+ the subleties of how time is defined, there is no reliable way to reconstruct
+ the Unix timestamp from the syslogTime fields (in practice, we may be close
+ enough to reliable, but I prefer to leave the subtle things to the OS, where
+ it obviously is solved in way or another...). */
struct syslogTime tRcvdAt;/* time the message entered this program */
char *pszRcvdAt3164; /* time as RFC3164 formatted string (always 15 charcters) */
char *pszRcvdAt3339; /* time as RFC3164 formatted string (32 charcters at most) */
@@ -119,7 +126,7 @@ struct msg {
PROTOTYPEObjClassInit(msg);
char* getProgramName(msg_t*);
rsRetVal msgConstruct(msg_t **ppThis);
-rsRetVal msgConstructWithTime(msg_t **ppThis, struct syslogTime *stTime);
+rsRetVal msgConstructWithTime(msg_t **ppThis, struct syslogTime *stTime, time_t ttGenTime);
rsRetVal msgDestruct(msg_t **ppM);
msg_t* MsgDup(msg_t* pOld);
msg_t *MsgAddRef(msg_t *pM);