...the code
* first looks for '<' and advances to the next character,
* it looks for a number between 0 and 9 and advances to the next
character, (it finds 7)
* it looks for '>' and advances to the next character,
* it looks for a number between 0 and 9 and advances to the next
character, (it finds the '2' of '2010')
=> result: prio is 72 instead of 7.
The code that checks if the character is '>' should be outside the loop
that checks if the character is a number. The attached patch moves this
check.
if (!TTEST2(*(pptr+msg_off), 1))
goto trunc;
+ }
if (*(pptr+msg_off) == '>')
msg_off++;
- }
} else {
printf("[|syslog]");
return;
Msg: 2013-09-12T19:16:34.457849+04:00 localhost through rsyslog: test message 23
IP (tos 0x0, ttl 64, id 0, offset 0, flags [DF], proto UDP (17), length 106)
10.0.0.20.52693 > 10.0.0.71.514: SYSLOG, length: 78
- Facility ftp (11), Severity warning (4)
- Msg: 013-09-12T19:16:43.513746+04:00 localhost through rsyslog: test message 24
+ Facility user (1), Severity alert (1)
+ Msg: 2013-09-12T19:16:43.513746+04:00 localhost through rsyslog: test message 24