[Pidgin] #17038: IRC conformance issues: backend sends initial USER and NICK messages out of order, and supplies bogus mode.
Pidgin
trac at pidgin.im
Thu Jun 9 20:38:17 EDT 2016
#17038: IRC conformance issues: backend sends initial USER and NICK messages out
of order, and supplies bogus mode.
----------------------------------+------------------
Reporter: isd | Owner: elb
Type: defect | Status: new
Milestone: | Component: IRC
Version: 2.10.12 | Resolution:
Keywords: standards-compliance |
----------------------------------+------------------
Comment (by elb):
RFC 2812 "dictates" no such thing in section 3.1. What it actually says
is:
The RECOMMENDED order for a client to register is as follows:
1. Pass message
2. Nick message 2. Service message
3. User message
Emphasis from the original document. You may want to read RFC 2119 for
the definition of RECOMMENDED as used in RFCs. Note also that there are
no normative IRC RFCs; 1459 is Experimental, and the following RFCs are
all Informational. They are also inconsistent, ambiguous, and generally
broken. Many implementations are non-compliant and/or have
interoperability problems in weird and wonderful ways.
Your tool has conformance bugs if it does not allow NICK and USER to be in
the order that Pidgin sends them.
I don't know, off the top of my head, why we send the messages in that
order, but I am sure it is because some ircd somewhere (or, more likely, a
bouncer) couldn't handle them in the order recommended in 2812. I chased
the history of our login sequence back to 2004 to a filename change, and
don't have time to chase farther. I agree that it would be great if all
implementations followed the IRC, but since they don't, we don't.
Rather than changing libpurple, which has been successfully doing what it
does for a decade or more for some reason lost to history, and is known to
successfully log in to a wide variety of both compliant and non-compliant
IRC daemons and bouncers, I suggest that you modify your tool to accept
this behavior allowed implicitly by the RFCs -- which are indeed the
second best definition of what IRC looks like, and the only one that's
really written down. (The best being whatever it is that people are
actually doing, unfortunately.)
--
Ticket URL: <https://developer.pidgin.im/ticket/17038#comment:2>
Pidgin <https://pidgin.im>
Pidgin
More information about the Tracker
mailing list