[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