Hi Kidney Bingos,
First my important question: How can I use this option with POE::Component::Client::Ident ? Could it be that you only have fixed POE::Component::Client::Ident::Agent.pm, which have no effect to POE::Component::Client::Ident ?Yep, as per the RFC. http://www.faqs.org/rfcs/rfc1413.html
<EOL> ::= "015 012" ; CR-LF End of Line Indicator
Thats not tolerant enough. The fix is easy: Remove in Line 79 the paramter 'Literal => "\x0D\x0A"', and the fallback is active ( \n\r or \r\n or \r or \n).I'd prefer not to support broken Identd implementations by default, so I have added an option to
the spawn method in Ident-Agent.pm called "BuggyIdentd". Setting this to 1 will use the default behavior of POE::Filter::Line with regards to the Literal.
I've bumped up the version to 0.2 and it'll be on CPAN in the next hour or so.
Strictly seen, you´re right. The RFC needs \r\n. But you shouldn´t ignore that this RFC is very old. If you look in something newer, allways is suggested "be tollerant in incoming, and strict as possible in outgouing". Look for example to the RFC 2616 of HTTP, there stands an interesting thing (port it please from HTTP to IDENT):
===========================================================
19.3 Tolerant Applications
Although this document specifies the requirements for the generation of HTTP/1.1 messages, not all applications will be correct in their implementation. We therefore recommend that operational applications be tolerant of deviations whenever those deviations can be interpreted unambiguously.
Clients SHOULD be tolerant in parsing the Status-Line and servers tolerant when parsing the Request-Line. In particular, they SHOULD accept any amount of SP or HT characters between fields, even though only a single SP is required.
The line terminator for message-header fields is the sequence CRLF. However, we recommend that applications, when parsing such headers, recognize a single LF as a line terminator and ignore the leading CR.
[...]
===========================================================
I think it wouldn´t be bad if you think about porting this suggestions to your further line based projects.
Regards, Markus Mueller