summaryrefslogtreecommitdiffstats
path: root/runtime/datetime.c
diff options
context:
space:
mode:
authorRainer Gerhards <rgerhards@adiscon.com>2010-03-05 09:50:20 +0100
committerRainer Gerhards <rgerhards@adiscon.com>2010-03-05 09:50:20 +0100
commit424de9fb94725769cfcbb0f0a5937781376c4e73 (patch)
tree0698e5e145fd637a28e1c9a944e87e6aed12b8db /runtime/datetime.c
parentc2acf59ff3bec4a8216c9325c03731c748c9007d (diff)
parent129eeca64bf2bd00ad85a3f1c4fbfa419231fa8d (diff)
downloadrsyslog-424de9fb94725769cfcbb0f0a5937781376c4e73.tar.gz
rsyslog-424de9fb94725769cfcbb0f0a5937781376c4e73.tar.bz2
rsyslog-424de9fb94725769cfcbb0f0a5937781376c4e73.zip
Merge branch 'master' into master-solaris
Diffstat (limited to 'runtime/datetime.c')
-rw-r--r--runtime/datetime.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/runtime/datetime.c b/runtime/datetime.c
index 47d7ac0e..de26762d 100644
--- a/runtime/datetime.c
+++ b/runtime/datetime.c
@@ -811,8 +811,12 @@ int formatTimestamp3339(struct syslogTime *ts, char* pBuf)
* buffer that will receive the resulting string. The function
* returns the size of the timestamp written in bytes (without
* the string termnator). If 0 is returend, an error occured.
+ * rgerhards, 2010-03-05: Added support to for buggy 3164 dates,
+ * where a zero-digit is written instead of a space for the first
+ * day character if day < 10. syslog-ng seems to do that, and some
+ * parsing scripts (in migration cases) rely on that.
*/
-int formatTimestamp3164(struct syslogTime *ts, char* pBuf)
+int formatTimestamp3164(struct syslogTime *ts, char* pBuf, int bBuggyDay)
{
static char* monthNames[12] = { "Jan", "Feb", "Mar", "Apr", "May", "Jun",
"Jul", "Aug", "Sep", "Oct", "Nov", "Dec" };
@@ -825,7 +829,7 @@ int formatTimestamp3164(struct syslogTime *ts, char* pBuf)
pBuf[2] = monthNames[(ts->month - 1) % 12][2];
pBuf[3] = ' ';
iDay = (ts->day / 10) % 10; /* we need to write a space if the first digit is 0 */
- pBuf[4] = iDay ? iDay + '0' : ' ';
+ pBuf[4] = (bBuggyDay || iDay > 0) ? iDay + '0' : ' ';
pBuf[5] = ts->day % 10 + '0';
pBuf[6] = ' ';
pBuf[7] = (ts->hour / 10) % 10 + '0';