diff options
author | Rainer Gerhards <rgerhards@adiscon.com> | 2011-06-27 12:33:26 +0200 |
---|---|---|
committer | Rainer Gerhards <rgerhards@adiscon.com> | 2011-06-27 12:33:26 +0200 |
commit | 8488d8c3c1e65cb4dacb1dddc71c9186ec9f8f37 (patch) | |
tree | 9f612b2808a1590e48cd0f43cb85efca3bb6f83f /plugins/imklog/imklog.c | |
parent | 2bd4e10a4dc909346d5a010edefb12c65ed77aec (diff) | |
parent | 47729f3b9362f7956c936088ac4bb703633cb33b (diff) | |
download | rsyslog-8488d8c3c1e65cb4dacb1dddc71c9186ec9f8f37.tar.gz rsyslog-8488d8c3c1e65cb4dacb1dddc71c9186ec9f8f37.tar.bz2 rsyslog-8488d8c3c1e65cb4dacb1dddc71c9186ec9f8f37.zip |
Merge branch 'v5-devel'
Conflicts:
ChangeLog
configure.ac
doc/manual.html
plugins/imfile/imfile.c
plugins/imklog/imklog.c
plugins/imptcp/imptcp.c
plugins/imtcp/imtcp.c
plugins/imuxsock/imuxsock.c
plugins/mmsnmptrapd/mmsnmptrapd.c
tools/omfile.c
Diffstat (limited to 'plugins/imklog/imklog.c')
-rw-r--r-- | plugins/imklog/imklog.c | 23 |
1 files changed, 15 insertions, 8 deletions
diff --git a/plugins/imklog/imklog.c b/plugins/imklog/imklog.c index 65a4cd57..b64a8f1f 100644 --- a/plugins/imklog/imklog.c +++ b/plugins/imklog/imklog.c @@ -112,15 +112,21 @@ initConfigSettings(void) * rgerhards, 2008-04-12 */ static rsRetVal -enqMsg(uchar *msg, uchar* pszTag, int iFacility, int iSeverity) +enqMsg(uchar *msg, uchar* pszTag, int iFacility, int iSeverity, struct timeval *tp) { - DEFiRet; + struct syslogTime st; msg_t *pMsg; + DEFiRet; assert(msg != NULL); assert(pszTag != NULL); - CHKiRet(msgConstruct(&pMsg)); + if(tp == NULL) { + CHKiRet(msgConstruct(&pMsg)); + } else { + datetime.timeval2syslogTime(tp, &st); + CHKiRet(msgConstructWithTime(&pMsg, &st, tp->tv_sec)); + } MsgSetFlowControlType(pMsg, eFLOWCTL_LIGHT_DELAY); MsgSetInputName(pMsg, pInputName); MsgSetRawMsgWOSize(pMsg, (char*)msg); @@ -198,16 +204,17 @@ rsRetVal imklogLogIntMsg(int priority, char *fmt, ...) } -/* log a kernel message +/* log a kernel message. If tp is non-NULL, it contains the message creation + * time to use. * rgerhards, 2008-04-14 */ -rsRetVal Syslog(int priority, uchar *pMsg) +rsRetVal Syslog(int priority, uchar *pMsg, struct timeval *tp) { - DEFiRet; int pri = -1; rsRetVal localRet; + DEFiRet; - /* first check if we have two PRIs. This can happen in case of systemd, + /* then check if we have two PRIs. This can happen in case of systemd, * in which case the second PRI is the rigth one. * TODO: added kernel timestamp support to this PoC. -- rgerhards, 2011-03-18 */ @@ -232,7 +239,7 @@ rsRetVal Syslog(int priority, uchar *pMsg) if(cs.bPermitNonKernel == 0 && LOG_FAC(priority) != LOG_KERN) FINALIZE; /* silently ignore */ - iRet = enqMsg((uchar*)pMsg, (uchar*) "kernel:", LOG_FAC(priority), LOG_PRI(priority)); + iRet = enqMsg((uchar*)pMsg, (uchar*) "kernel:", LOG_FAC(priority), LOG_PRI(priority), tp); finalize_it: RETiRet; |