tech-userlevel archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: Updating syslog(3), syslogd(8) to support RFC-5424



Am 18.03.11 13:19, schrieb der Mouse:
>>>> Our syslog(3) functions and syslogd(8) daemon currently support
>>>> RFC-3164, the BSD syslog protocol.  This basically means that
>>>> logged messages are 7-bit ASCII strings (with some exceptions).
> 
> "In essence, it is RECOMMENDED to transmit a syslog message in the
> format specified in this document, but it is not required." - 3164,
> first paragraph of section 4.  See also 4.1.3.
> 
>>>> RFC-5424 superceedes and obsoletes RFC-3164 and uses UTF-8 for
>>>> messages,
> 
> That's a SHOULD, not a MUST, unless you're using STRUCTURED-DATA.  And,
> in any case, it suffers from the same bug as the SSH RFCs: the delusion
> that every octet string that is a character string at the human layer
> has its encoding known to software.
> 
> Personally, I think message bodies should be encoding-agnostic octet
> strings, not character strings at all as far as syslog(3) and syslog(8)
> are concerned; I'd just remove the "c &= 0177".

I agree that syslog should just log what it gets and not fiddle to much
with it.  fwiw, removing the "c &= 0177" is not enough, since some UTF-8
characters trigger the "iscntrl()" path.  E.g. the latin small letter a
with diaeresis is 0xc3 0xa4 and iscntrl() returns true for 0xc3.  So the
whole loop needs to be a bit rearranged.


Home | Main Index | Thread Index | Old Index