-
Notifications
You must be signed in to change notification settings - Fork 3
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Pre-connection-registration ISUPPORT #124
Comments
I think we should introduce a cap-3.3 specification that enables ISUPPORT in response to It would also allow us to do some extra things like define a formal key/value system for cap values and move some stuff out of cap like only exists for informational purposes. |
My client implementation takes either |
That works for the initial burst, but doesn't work for subsequent bursts. It would help me a lot to be able to buffer the new ISUPPORT tokens and apply them in one go when receiving an "end of ISUPPORT" indication, instead of having complicated/fragile logic to handle that. |
I've gotten pushback even against the idea of using
each of these operations being individually atomic and logically independent. AFAIK there are two kinds of post-registration burst:
The convention is for If the end-of-burst indicator ( |
But then clients end up with a glitchy UI. For instance in my client I don't know when I'll be getting a ISUPPORT is one of the very few cases in the IRC protocol where a list has no indication of end. The capability list could be seen as similar in this regard, yet has an end-of-list indication.
I think there might be cases where this falls apart, e.g. when two ISUPPORT parameters depend on each other. For instance PREFIX, CHANMODES and STATUSMSG. The specs have some MUST requirements that might be broken if one parameter is updated without the other.
There is still an upside: the updates can be applied together. Right now I update my client state each time I get an RPL_ISUPPORT, if I had an end-of-list indication I could do it once only. Another upside as mentioned above is that I don' need to have two codepaths in my clients (initial ISUPPORT vs. ISUPPORT update) - everything is handled in the same spot.
Indeed. |
That all makes sense, thanks. I think the practical issues you're describing (making a decision on displaying |
Also since the extension adds a way for ISUPPORT to be sent before connection registration, there is no |
Various pieces of information would be nice to receive before connection registration, for instance the name of the network or the nickname length limit.
We could have a cap which allows servers to send ISUPPORT before connection registration.
(While at it, we could also add a new message indicating the end of an ISUPPORT burst, the lack thereof is causing a bit of pain in my clients as well.)
The text was updated successfully, but these errors were encountered: