-
Notifications
You must be signed in to change notification settings - Fork 16
Description
HydraIRC is not properly implementing the IRC spec in regards to escaping, which is causing some problems on servers with non-historical but perfectly valid (per the RFC) behavior in message tokenization.
The issue is that properly stripping the colon escaping is not always done on the last argument - while most servers do not escape the final string unless it contains spaces, a string containing no spaces may still be escaped and is valid.
You can verify the broken parsing behavior on testnet.inspircd.org for example, but this is affecting many newer servers. This is causing a lot of breakage, as you can see from the failure to parse the timestamp, and the extra ":"'s that are appearing in modes - this causes the client to desync from the server.
[11:23] *** channel #t6 mode is :+nt
[11:23] *** channel created at Wed Dec 31 17:00:00 1969
[11:23] *** testtrn sets channel #t6 mode +kl aa:bb :999
inspircd/inspircd#1636 has some additional information. This bug recently affected HexChat, AdiIRC,, irssi, and WeeChat, but those clients have all fixed their parsers. Interestingly, ircII was not affected (nor mIRC) but EPIC was (also patched in the upcoming release). The issue link above contains a link to parsing test cases, to help verify that your client is complaint to the specifications.