edmund-huber / ergonomadic

DISCONTINUED, see orogono
MIT License
132 stars 10 forks source link

CAP command fixes #29

Closed DanielOaks closed 7 years ago

DanielOaks commented 8 years ago

This PR contains a few minor fixes for the CAP command, and adds a workaround to let Weechat (and possibly other clients) actually use CAP negotiation when connecting to the server (which is required when registration is now properly suspended during CAP negotiation). If you'd like this squashed, let me know.

prologic commented 7 years ago

I don't know (yet) enough about IRCv3 to review this properly.

DanielOaks commented 7 years ago

All good! CAP CLEAR was removed as a part of the CAP spec here, in the first bullet point in the Errata.

The default implementation forces the NICK and USER commands to end CAP negotiation and the registration suspension. What's actually supposed to happen is the client sends the CAP LS (starts the CAP negotiation phase which suspends registration), then sends NICK and USER, and while registration is suspended CAP negotiation happens. When CAP END is sent, registration continues as normal (here). The is detailed in the last line of the CAP LS spec here.

It also includes a CAP fix for weechat-1.4 which I think I was using at the time.