summaryrefslogtreecommitdiff
path: root/runtime/msg.c
diff options
context:
space:
mode:
authorMichael Biebl <biebl@debian.org>2010-04-07 12:11:52 +0200
committerMichael Biebl <biebl@debian.org>2010-04-07 12:11:52 +0200
commit0c3924200ff23e6444058f01b2b7446cde6e1581 (patch)
tree08967d6f21a0f578d03a92a802343a1313450534 /runtime/msg.c
parent4af6f89dda61bb5acd862b805302542d9c0da005 (diff)
downloadrsyslog-0c3924200ff23e6444058f01b2b7446cde6e1581.tar.gz
Imported Upstream version 4.6.2upstream/4.6.2
Diffstat (limited to 'runtime/msg.c')
-rw-r--r--runtime/msg.c16
1 files changed, 13 insertions, 3 deletions
diff --git a/runtime/msg.c b/runtime/msg.c
index 7020707..2ce7843 100644
--- a/runtime/msg.c
+++ b/runtime/msg.c
@@ -1213,10 +1213,12 @@ static inline char *getTimeReported(msg_t *pM, enum tplFormatTypes eFmt)
switch(eFmt) {
case tplFmtDefault:
case tplFmtRFC3164Date:
+ case tplFmtRFC3164BuggyDate:
MsgLock(pM);
if(pM->pszTIMESTAMP3164 == NULL) {
pM->pszTIMESTAMP3164 = pM->pszTimestamp3164;
- datetime.formatTimestamp3164(&pM->tTIMESTAMP, pM->pszTIMESTAMP3164);
+ datetime.formatTimestamp3164(&pM->tTIMESTAMP, pM->pszTIMESTAMP3164,
+ (eFmt == tplFmtRFC3164BuggyDate));
}
MsgUnlock(pM);
return(pM->pszTIMESTAMP3164);
@@ -1279,7 +1281,7 @@ static inline char *getTimeGenerated(msg_t *pM, enum tplFormatTypes eFmt)
MsgUnlock(pM);
return "";
}
- datetime.formatTimestamp3164(&pM->tRcvdAt, pM->pszRcvdAt3164);
+ datetime.formatTimestamp3164(&pM->tRcvdAt, pM->pszRcvdAt3164, 0);
}
MsgUnlock(pM);
return(pM->pszRcvdAt3164);
@@ -1306,13 +1308,15 @@ static inline char *getTimeGenerated(msg_t *pM, enum tplFormatTypes eFmt)
MsgUnlock(pM);
return(pM->pszRcvdAt_PgSQL);
case tplFmtRFC3164Date:
+ case tplFmtRFC3164BuggyDate:
MsgLock(pM);
if(pM->pszRcvdAt3164 == NULL) {
if((pM->pszRcvdAt3164 = malloc(16)) == NULL) {
MsgUnlock(pM);
return "";
}
- datetime.formatTimestamp3164(&pM->tRcvdAt, pM->pszRcvdAt3164);
+ datetime.formatTimestamp3164(&pM->tRcvdAt, pM->pszRcvdAt3164,
+ (eFmt == tplFmtRFC3164BuggyDate));
}
MsgUnlock(pM);
return(pM->pszRcvdAt3164);
@@ -2315,6 +2319,12 @@ uchar *MsgGetProp(msg_t *pMsg, struct templateEntry *pTpe,
*pPropLen = sizeof("**INVALID PROPERTY NAME**") - 1;
return UCHAR_CONSTANT("**INVALID PROPERTY NAME**");
}
+ /* the following line fixes the symptom, but not the root cause -- at least MSG sometimes
+ * returns a size of one too less. To prevent all troubles, we recalculate the sizes based
+ * on what we actually got. TODO: remove once root cause is found.
+ * rgerhards, 2010-03-23
+ */
+ bufLen = ustrlen(pRes);
/* If we did not receive a template pointer, we are already done... */