@@ -25,17 +25,24 @@ entries. However, `RPL_ISUPPORT` is only sent by servers after connection
2525registration. This undermines the usefulness of ` RPL_ISUPPORT ` : some of the
2626metadata would be useful to clients prior to connection registration. This
2727extension adds a mechanism to send ` RPL_ISUPPORT ` messages before connection
28- registration, as well as an end of ` RPL_ISUPPORT ` list indication.
28+ registration, as well as a dedicated command to request the ` ISUPPORT ` list and
29+ a batch for ` RPL_ISUPPORT ` messages.
2930
3031## Implementation
3132
33+ ### ` ISUPPORT ` command
34+
35+ A new ` ISUPPORT ` command is introduced to request the full ` RPL_ISUPPORT ` list.
36+ When receiving this command, the server MUST reply with one or more
37+ ` RPL_ISUPPORT ` messages (grouped inside a ` draft/isupport ` batch if the ` batch `
38+ and ` draft/extended-isupport ` capabilities are enabled, see below).
39+
3240### ` draft/extended-isupport ` capability
3341
3442When the ` draft/extended-isupport ` capability is enabled by the client, the
35- server MUST send one or more ` RPL_ISUPPORT ` messages (grouped inside a
36- ` draft/isupport ` batch if the ` batch ` capability is enabled). The capability
37- MAY be enabled by the client before connection registration completes (ie,
38- before the client sends ` CAP END ` , and before the server sends ` RPL_WELCOME ` ).
43+ server MUST accept ` ISUPPORT ` commands before connection registration
44+ completes (ie, before the client sends ` CAP END ` , and before the server sends
45+ ` RPL_WELCOME ` ).
3946
4047Before connection registration completes, while ` draft/extended-isupport ` is
4148enabled, the server MAY send updates to the key-value entries via subsequent
@@ -49,10 +56,6 @@ Before connection registration, the server MAY send only a subset of the full
4956` RPL_ISUPPORT ` list. In that case, the server MUST send a ` RPL_ISUPPORT ` list
5057when connection registration completes with entries previously omitted.
5158
52- The server MUST send one or more ` RPL_ISUPPORT ` messages when the capability is
53- enabled, including after connection registration or if the disables then
54- re-enables the capability.
55-
5659### ` draft/isupport ` batch
5760
5861The server MUST group all ` RPL_ISUPPORT ` messages inside a ` draft/isupport `
@@ -75,6 +78,7 @@ Enabling the capability:
7578 S: :irc.example.org CAP * LS :multi-prefix sasl batch draft/extended-isupport
7679 C: CAP REQ batch draft/extended-isupport
7780 S: :irc.example.org CAP * ACK :batch draft/extended-isupport
81+ C: ISUPPORT
7882 S: :irc.example.org BATCH +asdf draft/isupport
7983 S: @batch=asdf :irc.example.org 005 * NETWORK=Example NICKLEN=30 FOO=bar
8084 S: :irc.example.org BATCH -asdf
0 commit comments