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