Remember I said the IRC protocol is junk? Well,
there's more.
RFC 2812 supercedes
RFC 1459. RFC 2812 specifies
that characters []\^ and {}|~ should be considered
equivalent for purposes of case-insensitive matching of channel names and nicks.
RFC 1459 does too, but omits ^ and ~ which is generally
regarded as an erroneous omission.
RFC 2812 defines message 005 as RPL_BOUNCE, but
this draft RFC (which the IETF says has expired and therefore been deleted
from their archive without becoming an RFC) redefines message 005 as
RPL_ISUPPORT, which seems to be usiversally recognized despite the conflict with
RFC 2812 (noted in section 4.4 of the draft). The RPL_ISUPPORT message
is more clearly explained here.
Unfortunately I've encountered at least one server which a) fails to adhere
to RFC 1459 or RFC 2812 with regards to case mapping, and b) also fails to adhere
to this draft RFC to send an RPL_ISUPPORT message which indicates
CASEMAPPING=ascii. The author of the draft said (in section 4.5) that he was not
aware of any servers that do this, but I've found one, and there must be more.
At least I can take some comfort in knowing that this situation not only confuses
my bot, but also confuses the client
I use. I'll bug the server admins about fixing this. In the mean time, I've hacked
my bot to allow this stuff to be overridden on a per-network basis in the
configuration, so it will work in a non-broken way even on broken servers. Yay!
|