ircv3 / ircv3-ideas

46 stars 3 forks source link

Suggest to a client when to re-check ISUPPORT tokens #101

Open ValwareIRC opened 1 year ago

ValwareIRC commented 1 year ago

It would be great to have a way for servers to tell clients about a possible change in the ISUPPORT tokens as it happens. This could be automatically signalled by the server on a rehash, and the client could re-request the ISUPPORT tokens and therefore not have any problems when it comes to changes in the token values, such as understanding newly-introduced/removed 005 PREFIX, EXTBANs and draft/FILEHOST values/URIs

For example, perhaps something like:

RPL_ISPTRELOAD <client> :<Human-readable message for the client>

Where RPL_ISPTRELOAD could be 800 or some other unused numeric.

Or instead, like there is with CAP NEW/CAP DEL, there could also be something akin to this using PREFIX as the example:

ISUPPORT <client> NEW :PREFIX=(Yqaohv)!~&@%+

Or, servers could do a little more and just automatically resend a changed ISUPPORT token on its own with 005, which feels like the best way to not break old things.

Either way, I feel like there should be an effort to make ISUPPORT correction easier for clients.

Thoughts?

slingamn commented 1 year ago

Or, servers could do a little more and just automatically resend a changed ISUPPORT token on its own with 005, which feels like the best way to not break old things.

If I understand correctly, this is already recommended by Modern:

If the value of a parameter changes, the server SHOULD re-advertise the parameter with the new value in an RPL_ISUPPORT reply. An example of this is a client becoming an IRC operator and their CHANLIMIT changing.

DanielOaks commented 1 year ago

I believe Unreal sends updated ISUPPORT lines when e.g. a client successfully opers and their channel limits change (hence the example up there). Would definitely make sense to do the same if other values like these change!