Since the upgrade of freenode servers to ircd-seven, it has moved from using the CAPAB command to the CAP (CAP REQ and CAP LS) command. We should support this command in exactly the same way as the CAPAB command.
Also note that these capabilities can be disabled on demand and that multiple capabilities can be requested at once. To enable: /CAP REQ :<capabilities> To disable, prefix the capability with a -. Server responses: Response to /CAP LS: :<server> CAP <nick> LS :<capabilities> Response to /CAP REQ <capabilities>: :<server> CAP <nick> ACK :<capabilities>
Created attachment 8390104 [details] [diff] [review] Switch to CAP and update all existing code This patch removes the CAPAB code and replaces it with fuller CAP support: - The LS/ACK/NAK responses to /cap are all displayed nicely. - /supports will, if capabilities have been used, display what it knows about them. - The "identify-msg" capability support is retained with new code. - The "multi-prefix" capability is supported the same way as "NAMESX". Note that this patch does not change the following general properties: - The list of capabilities is not known until the user explicitly executes "/cap ls".
Comment on attachment 8390104 [details] [diff] [review] Switch to CAP and update all existing code Was Freenode the only network using CAPAB?
Yes, AFAIK Freenode is the only network using this (as they have their own bespoke software). http://hg.mozilla.org/chatzilla/rev/2ebbe22b61d5
(In reply to James Ross from comment #4) > Yes, AFAIK Freenode is the only network using this (as they have their own > bespoke software). If it's of any help, irc.m.o does ircv3 as well now. CAP Server supports: multi-prefix | sasl | userhost-in-names
To use SASL at connect time on Freenode (before you can type a command manually) there exists a ChatZilla plugin (where freenode is hardcoded; I suppose it can be modified for other networks), see https://freenode.net/sasl/cz_sasl.js and bug 1223210. To use it, you must have previously registered an account name and password with NickServ.
(In reply to Tony Mechelynck [:tonymec] from comment #7) > https://freenode.net/sasl/cz_sasl.js For licensing purposes, please be advised that this .js file is (or will shortly be) GPLv3.
(In reply to Richard Soderberg [:atoll] from comment #8) > (In reply to Tony Mechelynck [:tonymec] from comment #7) > > https://freenode.net/sasl/cz_sasl.js > > For licensing purposes, please be advised that this .js file is (or will > shortly be) GPLv3. Thanks for warning potential commercial misusers. Personally I only use it privately; or I may (as here) point the original file to other people, which are of course supposed to use it according to its copyright license.
Note that they decided to release it under MPL2, rather than GPLv3, and so we may (if we wish) http://gry.blinkenshell.org/fs/irc/cz/cz_sasl-0.6.3.js I'm going to reopen this bug as the Mozilla IRC network supports a wide variety of the CAPA extensions, specifically including SASL as previously discussed above, and so the RESO FIXE reason in comment 4 no longer applies. Feel free to RESO WONT if that's more desirable at this stage, but as one of the Mozilla IRC admins, I strongly encourage the introduction of SASL support into mainline Chatzilla.
The work done in this bug was to support the IRCv3 extensions protocol (in particular, to migrate from the old freenode-specific protocol), which was completed, but the bug is also meta bug for the individual IRCv3 extensions. A slight confusion. :) I am happy to leave this bug open as purely a meta bug, and all SASL discussion should be on bug 687804 (which I see has been updated as well).
Twitch's IRC interface uses the extended attributes in IRCv3 to send a lot more user data. Which is nice, but when the capability is enabled, cZ doesn't display incoming messages. An example line from their documentation (https://github.com/justintv/Twitch-API/blob/master/IRC.md#tags) is: @badges=global_mod/1,turbo/1;color=#0D4200;display-name=TWITCH_UserNaME;emotes=25:0-4,12-16/1902:6-10;mod=0;room-id=1337;subscriber=0;turbo=1;user-id=1337;user-type=global_mod :twitch_username!twitch_username@twitch_username.tmi.twitch.tv PRIVMSG #channel :Kappa Keepo Kappa It would be very helpful if the tags were parsed for plugin use, but at the very least cZ should be able to drop the extraneous data so it can display normally.