node-irc
node-irc copied to clipboard
Fix CAP match for some IRC daemons
Some IRC daemons such as InspIRCd return an random string after a
client's CAP REQ request. This would fail to match and block SASL
AUTHENTICATEs. Also the space after sasl would also block the above
AUTHENTICATEs.
This change:
- allows for emitting that output in logs via debug in config
- stops matching on said field which can be an irrelevant moving target
- removes the trailing space for the mentioned sasl field
Example InspIRCd output:
$ openssl s_client -connect irc.corp.com:6697
...
CAP REQ :sasl
:irc.corp.com CAP 354AAUXBK ACK :sasl
^C
$ openssl s_client -connect irc.corp.com:6697
...
CAP REQ :sasl
:irc.corp.com CAP 354AAUXC8 ACK :sasl
^C
I'm not really sure that this project is being updated any more – I forked it a while back (irc-upd on npm) and recently fixed up the SASL handling to be more compliant with the IRCv3 spec (including a change similar to this one – it requires only that sasl be one of the arguments in the ACK response, and does not attempt to match the ident – and it now also emits an error if it gets a NAK response to the request). You might consider looking at that version of the library instead.