@@ -25,17 +25,24 @@ entries. However, `RPL_ISUPPORT` is only sent by servers after connection
25
25
registration. This undermines the usefulness of ` RPL_ISUPPORT ` : some of the
26
26
metadata would be useful to clients prior to connection registration. This
27
27
extension 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.
29
30
30
31
## Implementation
31
32
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
+
32
40
### ` draft/extended-isupport ` capability
33
41
34
42
When 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 ` ).
39
46
40
47
Before connection registration completes, while ` draft/extended-isupport ` is
41
48
enabled, 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
49
56
` RPL_ISUPPORT ` list. In that case, the server MUST send a ` RPL_ISUPPORT ` list
50
57
when connection registration completes with entries previously omitted.
51
58
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
-
56
59
### ` draft/isupport ` batch
57
60
58
61
The server MUST group all ` RPL_ISUPPORT ` messages inside a ` draft/isupport `
@@ -75,6 +78,7 @@ Enabling the capability:
75
78
S: :irc.example.org CAP * LS :multi-prefix sasl batch draft/extended-isupport
76
79
C: CAP REQ batch draft/extended-isupport
77
80
S: :irc.example.org CAP * ACK :batch draft/extended-isupport
81
+ C: ISUPPORT
78
82
S: :irc.example.org BATCH +asdf draft/isupport
79
83
S: @batch=asdf :irc.example.org 005 * NETWORK=Example NICKLEN=30 FOO=bar
80
84
S: :irc.example.org BATCH -asdf
0 commit comments