]> jfr.im git - irc/rqf/shadowircd.git/blob - doc/technical/ts6-protocol.txt
8a200940745fdd21d1b51857546a2722f0d2f192
[irc/rqf/shadowircd.git] / doc / technical / ts6-protocol.txt
1 TS6 protocol description
2 Written by Jilles Tjoelker
3
4 General format: much like rfc1459
5 Maximum parameters for a command: 15 (this does not include the prefix
6 and command name)
7
8 SID: a server's unique ID. It is configured in each server and consists of
9 a digit and two alphanumerics. Sending SIDs with lowercase letters is
10 questionable.
11
12 UID: a client's unique ID. It consists of the server's SID and six
13 alphanumerics (so it is nine characters long). The first of the alphanumerics
14 should be a letter, numbers are legal but reserved for future use.
15
16 hunted: a parameter type used for various remote requests. From local users,
17 nicknames and server names are accepted, possibly with wildcards; from servers,
18 UIDs/SIDs (sending names or even wildcards is deprecated). This is done with
19 the function hunt_server(). Any rate limiting should be done locally.
20
21 duration: a parameter type used for ban durations. It is a duration in seconds.
22 A value of 0 means a permanent ban.
23
24 propagation: to which other servers the command is sent
25
26 For all commands with a hunted parameter, the propagation is determined by
27 that, and not otherwise specified.
28
29 For all commands with a target server mask parameter, the propagation is
30 determined by that, and not otherwise specified. The command is sent to all
31 servers with names matching the given mask (for example '*', '*.example.com',
32 'irc.example.com'). Those servers do not have to be directly connected.
33 Targets cannot be SIDs.
34
35 Propagation broadcast means the command is sent to all servers.
36
37 Propagation one-to-one means the command is only sent to the target or the
38 server the target is on.
39
40 Propagation none means the command is never sent to another server if it is
41 received.
42
43 For some other commands, the propagation depends on the parameters and is
44 described in text.
45
46 services server: server mentioned in a service{} block. There are no services
47 servers on EFnet.
48
49 service: client with umode +S. This implies that it is on a services server.
50
51 connection setup:
52 The initiator sends the PASS, CAPAB and SERVER messages. Upon receiving the
53 SERVER, the listener will check the information, and if it is valid, it will
54 send its own PASS, CAPAB and SERVER messages, followed by SVINFO and the burst.
55 Upon receiving the SERVER, the initiator will send SVINFO and the burst. If
56 ziplinks are used, SVINFO is the first compressed message.
57
58 The burst consists of SID and SERVER messages for all known servers, UID or
59 EUID messages for all known users (possibly followed by ENCAP REALHOST, ENCAP
60 LOGIN and/or AWAY) and SJOIN messages for all known channels (possibly followed
61 by BMASK and/or TB).
62
63 user modes:
64 (all)
65 +D (deaf: does not receive channel messages)
66 +S (network service) (only settable on burst from a services server)
67 +a (appears as server administrator)
68 +i (invisible, see rfc1459)
69 +o (IRC operator, see rfc1459)
70 +w (wallops, see rfc1459) (always propagated for historical reasons)
71 (charybdis TS6)
72 +Q/+R/+g/+l/+s/+z (only locally effective)
73 +Z (ssl user) (only settable on burst)
74 possibly more added by modules
75
76 channel modes:
77 (all)
78 statuses
79 +o (prefix @) (ops)
80 +v (prefix +) (voice)
81 type A
82 +b (ban)
83 +e (ban exception)
84 +I (invite exception)
85 type B
86 +k (key: password required to join, <= 23 ascii chars, no : or , or whitespace)
87 type C
88 +l (limit: maximum number of members before further joins are disallowed)
89 type D
90 +m (moderated)
91 +n (no external messages)
92 +p (private: does not appear in /whois to non-members, no /knock allowed)
93 +r (only registered users may join) (only if a services server exists)
94 +s (secret)
95 +t (only chanops may change topic)
96 (charybdis TS6)
97 type A
98 +q (quiet)
99 type C
100 +f (forward: channel name <= 30 chars)
101 +j (join throttle: N:T with integer N and T)
102 type D
103 +F (free target for +f)
104 +L (large ban list)
105 +P (permanent: does not disappear when empty)
106 +Q (ignore forwards to this)
107 +c (strip colours)
108 +g (allow any member to /invite)
109 +z (send messages blocked by +m to chanops)
110
111 <numeric>
112 source: server
113 parameters: target, any...
114
115 The command name should be three decimal ASCII digits.
116
117 Propagates a "numeric" command reply, such as from a remote WHOIS request.
118
119 If the first digit is 0 (indicating a reply about the local connection), it
120 should be changed to 1 before propagation or sending to a user.
121
122 Numerics to the local server may be sent to opers.
123
124 To avoid infinite loops, servers should not send any replies to numerics.
125
126 The target can be:
127 - a client
128 propagation: one-to-one
129 - a channel name
130 propagation: all servers with -D users on the channel
131
132 Numerics to channels are broken in some older servers.
133
134 ADMIN
135 source: user
136 parameters: hunted
137
138 Remote ADMIN request.
139
140 AWAY
141 source: user
142 propagation: broadcast
143 parameters: opt. away reason
144
145 If the away reason is empty or not present, mark the user as not away.
146 Otherwise, mark the user as away.
147
148 Changing away reason from one non-empty string to another non-empty string
149 may not be propagated.
150
151 BMASK
152 source: server
153 propagation: broadcast
154 parameters: channelTS, channel, type, space separated masks
155
156 If the channelTS in the message is greater (newer) than the current TS of
157 the channel, drop the message and do not propagate it.
158
159 Type is the mode letter of a ban-like mode. In efnet TS6 this is 'b', 'e' or
160 'I'. In charybdis TS6 additionally 'q' is possible.
161
162 Add all the masks to the given list of the channel.
163
164 All ban-like modes must be bursted using this command, not using MODE or TMODE.
165
166 CAPAB
167 source: unregistered server
168 propagation: none
169 parameters: space separated capability list
170
171 Sends capabilities of the server. This must include QS and ENCAP. It is also
172 strongly recommended to include EX, CHW, IE and KNOCK, and for charybdis TS6
173 also SAVE and EUID. For use with services, SERVICES and RSFNC are strongly
174 recommended.
175
176 The capabilities may depend on the configuration for the server they are sent
177 to.
178
179 CHGHOST
180 charybdis TS6
181 source: any
182 propagation: broadcast
183 parameters: client, new hostname
184
185 Changes the visible hostname of a client.
186
187 Opers are notified unless the source is a server or a service.
188
189 CONNECT
190 source: any
191 parameters: server to connect to, port, hunted
192
193 Remote connect request. A server WALLOPS should be sent by the receiving
194 server.
195
196 The port can be 0 for the default port.
197
198 DLINE
199 charybdis TS6
200 encap only
201 source: user
202 parameters: duration, mask, reason
203
204 Sets a D:line (IP ban checked directly after accepting connection).
205
206 The mask must be an IP address or CIDR mask.
207
208 ENCAP
209 source: any
210 parameters: target server mask, subcommand, opt. parameters...
211
212 Sends a command to matching servers. Propagation is independent of
213 understanding the subcommand.
214
215 Subcommands are listed elsewhere with "encap only".
216
217 ERROR
218 source: server or unregistered server
219 propagation: none
220 parameters: error message
221
222 Reports a (usually fatal) error with the connection.
223
224 Error messages may contain IP addresses and have a negative effect on server
225 IP hiding.
226
227 ETRACE
228 encap only
229 encap target: single server
230 source: oper
231 parameters: client
232
233 Remote ETRACE information request.
234
235 EUID
236 charybdis TS6
237 capab: EUID
238 source: server
239 parameters: nickname, hopcount, nickTS, umodes, username, visible hostname, IP address, UID, real hostname, account name, gecos
240 propagation: broadcast
241
242 Introduces a client. The client is on the source server of this command.
243
244 The account name is '0' if the user is not logged in with services.
245
246 Nick TS rules apply.
247
248 EUID is similar to UID but includes the ENCAP REALHOST and ENCAP LOGIN
249 information.
250
251 GCAP
252 encap only
253 encap target: *
254 source: server
255 parameters: space separated capability list
256
257 Capability list of remote server.
258
259 GLINE
260 efnet TS6
261 capab: GLN
262 source: user
263 parameters: user mask, host mask, reason
264 propagation: broadcast
265
266 Propagates a G:line vote. Once votes from three different opers (based on
267 user@host mask) on three different servers have arrived, trigger the G:line.
268 Pending G:lines expire after some time, usually ten minutes. Triggered G:lines
269 expire after a configured time which may differ across servers.
270
271 Requests from server connections must be propagated, unless they are found to
272 be syntactically invalid (e.g. '!' in user mask). Therefore, disabling glines
273 must not affect propagation, and too wide glines, double votes and glines that
274 already exist locally must still be propagated.
275
276 Of course, servers are free to reject gline requests from their own operators.
277
278 INFO
279 source: user
280 parameters: hunted
281
282 Remote INFO request.
283
284 INVITE
285 source: user
286 parameters: target user, channel, opt. channelTS
287 propagation: one-to-one
288
289 Invites a user to a channel.
290
291 If the channelTS is greater (newer) than the current TS of the channel, drop
292 the message.
293
294 Not sending the channelTS parameter is deprecated.
295
296 JOIN
297 1.
298 source: user
299 parameters: '0' (one ASCII zero)
300 propagation: broadcast
301
302 Parts the source user from all channels.
303
304 2.
305 source: user
306 parameters: channelTS, channel, '+' (a plus sign)
307 propagation: broadcast
308
309 Joins the source user to the given channel. If the channel does not exist yet,
310 it is created with the given channelTS and no modes. If the channel already
311 exists and has a greater (newer) TS, wipe all simple modes and statuses and
312 change the TS, notifying local users of this but not servers (note that
313 ban-like modes remain intact; invites may or may not be cleared).
314
315 A JOIN is propagated with the new TS of the channel.
316
317 KICK
318 source: any
319 parameters: channel, target user, opt. reason
320 propagation: broadcast
321
322 Kicks the target user from the given channel.
323
324 Unless the channel's TS is 0, no check is done whether the source user has ops.
325
326 Not sending the reason parameter is questionable.
327
328 KILL
329 source: any
330 parameters: target user, path
331 propagation: broadcast
332
333 Removes the user from the network.
334
335 The format of the path parameter is some sort of description of the source of
336 the kill followed by a space and a parenthesized reason. To avoid overflow,
337 it is recommended not to add anything to the path.
338
339 KLINE
340 1.
341 encap only
342 source: user
343 parameters: duration, user mask, host mask, reason
344
345 Sets a K:line (ban on user@host).
346
347 2.
348 capab: KLN
349 source: user
350 parameters: target server mask, duration, user mask, host mask, reason
351
352 As form 1, deprecated.
353
354 KNOCK
355 source: user
356 parameters: channel
357 propagation: broadcast
358
359 Requests an invite to a channel that is locked somehow (+ikl). Notifies all
360 operators of the channel. (In charybdis, on +g channels all members are
361 notified.)
362
363 This is broadcast so that each server can store when KNOCK was used last on
364 a channel.
365
366 LINKS
367 source: user
368 parameters: hunted, server mask
369
370 Remote LINKS request. The server mask limits which servers are listed.
371
372 LOCOPS
373 1.
374 encap only
375 source: user
376 parameters: text
377
378 Sends a message to operators (with umode +l set). This is intended to be
379 used for strict subsets of the network.
380
381 2.
382 capab: CLUSTER
383 source: user
384 parameters: target server mask, text
385
386 As form 1, deprecated.
387
388 LOGIN
389 encap only
390 source: user
391 parameters: account name
392
393 In a burst, states that the source user is logged in as the account.
394
395 LUSERS
396 source: user
397 parameters: server mask, hunted
398
399 Remote LUSERS request. Most servers ignore the server mask, treating it as '*'.
400
401 MODE
402 1.
403 source: user
404 parameters: client, umode changes
405 propagation: broadcast
406
407 Propagates a user mode change. The client parameter must refer to the same user
408 as the source.
409
410 Not all umodes are propagated to other servers.
411
412 2.
413 source: any
414 parameters: channel, cmode changes, opt. cmode parameters...
415
416 Propagates a channel mode change.
417
418 This is deprecated because the channelTS is not included. If it is received,
419 it should be propagated as TMODE.
420
421 MOTD
422 source: user
423 parameters: hunted
424
425 Remote MOTD request.
426
427 NICK
428 1.
429 source: user
430 parameters: new nickname, new nickTS
431 propagation: broadcast
432
433 Propagates a nick change.
434
435 2.
436 source: server
437 parameters: nickname, hopcount, nickTS, umodes, username, hostname, server, gecos
438
439 Historic TS5 user introduction. The user is on the server indicated by the
440 server parameter; the source server is meaningless (local link).
441
442 NICKDELAY
443 charybdis TS6
444 encap only
445 encap target: *
446 source: services server
447 parameters: duration, nickname
448
449 If duration is greater than 0, makes the given nickname unavailable for that
450 time.
451
452 If duration is 0, removes a nick delay entry for the given nickname.
453
454 There may or may not be a client with the given nickname; this does not affect
455 the operation.
456
457 NOTICE
458 source: any
459 parameters: msgtarget, message
460
461 As PRIVMSG, except NOTICE messages are sent out, server sources are permitted
462 and most error messages are suppressed.
463
464 Servers may not send '$$', '$#' and opers@server notices. Older servers may
465 not allow servers to send to specific statuses on a channel.
466
467 OPERSPY
468 encap only
469 encap target: *
470 source: user
471 parameters: command name, parameters
472
473 Reports operspy usage.
474
475 OPERWALL
476 source: user
477 parameters: message
478 propagation: broadcast
479
480 Sends a message to operators (with umode +z set).
481
482 PART
483 source: user
484 parameters: comma separated channel list, message
485
486 Parts the source user from the given channels.
487
488 PASS
489 source: unregistered server
490 parameters: password, 'TS', TS version, SID
491
492 Sends the server link password, TS version and SID.
493
494 PING
495 source: any
496 parameters: origin, opt. destination server
497
498 Sends a PING to the destination server, which will reply with a PONG. If the
499 destination server parameter is not present, the server receiving the message
500 must reply.
501
502 The origin field is not used in the server protocol. It is sent as the name
503 (not UID/SID) of the source.
504
505 Remote PINGs are used for end-of-burst detection, therefore all servers must
506 implement them.
507
508 PONG
509 source: server
510 parameters: origin, destination
511
512 Routes a PONG back to the destination that originally sent the PING.
513
514 PRIVMSG
515 source: user
516 parameters: msgtarget, message
517
518 Sends a normal message (PRIVMSG) to the given target.
519
520 The target can be:
521 - a client
522 propagation: one-to-one
523 - a channel name
524 propagation: all servers with -D users on the channel
525 (cmode +m/+n should be checked everywhere, bans should not be checked
526 remotely)
527 - a status character ('@'/'+') followed by a channel name, to send to users
528 with that status or higher only.
529 propagation: all servers with -D users with appropriate status
530 - a user@server message, to send to users on a specific server. The exact
531 meaning of the part before the '@' is not prescribed, except that "opers"
532 allows IRC operators to send to all IRC operators on the server in an
533 unspecified format.
534 propagation: one-to-one
535 - a message to all users on server names matching a mask ('$$' followed by mask)
536 propagation: broadcast
537 Only allowed to IRC operators.
538 - a message to all users with hostnames matching a mask ('$#' followed by mask).
539 Note that this is often implemented poorly.
540 propagation: broadcast
541 Only allowed to IRC operators.
542
543 In charybdis TS6, services may send to any channel and to statuses on any
544 channel.
545
546 PRIVS
547 charybdis TS6
548 encap only
549 encap target: single server
550 source: oper
551 parameters: client
552
553 Remote PRIVS information request.
554
555 QUIT
556 source: user
557 parameters: comment
558
559 Propagates quitting of a client. No QUIT should be sent for a client that
560 has been removed as result of a KILL message.
561
562 REALHOST
563 charybdis TS6
564 encap only
565 encap target: *
566 source: user
567 parameters: real hostname
568
569 In a burst, propagates the real host of a dynamically-spoofed user.
570
571 REHASH
572 charybdis TS6
573 encap only
574 source: user
575 parameters: opt. rehash type
576
577 Remote REHASH request. If the rehash type is omitted, it is equivalent to
578 a regular /rehash, otherwise it is equivalent to /rehash <rehash type>.
579
580 RESV
581 1.
582 encap only
583 source: user
584 parameters: duration, mask, reason
585
586 Sets a RESV, making a nickname mask or exact channel unavailable.
587
588 2.
589 capab: CLUSTER
590 source: user
591 parameters: target server mask, duration, mask, reason
592
593 As form 1, deprecated.
594
595 RSFNC
596 encap only
597 capab: RSFNC
598 encap target: single server
599 source: services server
600 parameters: target user, new nickname, old nickTS, new nickTS
601
602 Forces a nickname change and propagates it.
603
604 The command is ignored if the nick TS of the user is not equal to the old
605 nickTS parameter. If the new nickname already exists (and is not the target
606 user), it is killed first.
607
608 SASL
609 charybdis TS6
610 encap only
611 1.
612 encap target: *
613 source: server
614 parameters: source uid, '*', 'S', sasl mechanism name
615
616 Requests that a SASL agent (a service) initiate the authentication process.
617 The source uid is that of an unregistered client. This is why it is not sent
618 as the prefix.
619
620 2.
621 encap target: single server
622 source: server
623 parameters: source uid, target uid, mode, data
624
625 Part of a SASL authentication exchange. The mode is 'C' to send some data
626 (base64 encoded), or 'S' to end the exchange (data indicates type of
627 termination: 'A' for abort, 'F' for authentication failure, 'S' for
628 authentication success).
629
630 SAVE
631 capab: SAVE
632 source: server
633 propagation: broadcast
634 parameters: target uid, TS
635
636 Resolve a nick collision by changing a nickname to the UID.
637
638 The server should verify that the UID belongs to a registered user, the user
639 does not already have their UID as their nick and the TS matches the user's
640 nickTS. If not, drop the message.
641
642 SAVE should be propagated as a regular NICK change to links without SAVE capab.
643 present.
644
645 SERVER
646 1.
647 source: unregistered server
648 parameters: server name, hopcount, server description
649
650 Registers the connection as a server. PASS and CAPAB must have been sent
651 before, SVINFO should be sent afterwards.
652
653 If there is no such server configured or authentication failed, the connection
654 should be dropped.
655
656 This is propagated as a SID message.
657
658 2.
659 source: server
660 propagation: broadcast
661 parameters: server name, hopcount, server description
662
663 Introduces a new TS5 server, directly connected to the source of this command.
664 This is only used for jupes as TS5 servers may do little else than existing.
665
666 SID
667 source: server
668 propagation: broadcast
669 parameters: server name, hopcount, sid, server description
670
671 Introduces a new server, directly connected to the source of this command.
672
673 SIGNON
674 source: user
675 propagation: broadcast
676 parameters: new nickname, new username, new visible hostname, new nickTS, new login name
677
678 Broadcasts a change of several user parameters at once.
679
680 Currently only sent after an SVSLOGIN.
681
682 SJOIN
683 source: server
684 propagation: broadcast
685 parameters: channelTS, simple modes, opt. mode parameters..., nicklist
686
687 Broadcasts a channel creation or bursts a channel.
688
689 The nicklist consists of users joining the channel, with status prefixes for
690 their status ('@+', '@', '+' or ''), for example:
691 '@+1JJAAAAAB +2JJAAAA4C 1JJAAAADS'. All users must be behind the source server
692 so it is not possible to use this message to force users to join a channel.
693
694 The interpretation depends on the channelTS and the current TS of the channel.
695 If either is 0, set the channel's TS to 0 and accept all modes. Otherwise, if
696 the incoming channelTS is greater (newer), ignore the incoming simple modes
697 and statuses and join and propagate just the users. If the incoming channelTS
698 is lower (older), wipe all modes and change the TS, notifying local users of
699 this but not servers (invites may be cleared). In the latter case, kick on
700 split riding may happen: if the key (+k) differs or the incoming simple modes
701 include +i, kick all local users, sending KICK messages to servers.
702
703 An SJOIN is propagated with the new TS and modes of the channel. The statuses
704 are propagated if and only if they were accepted.
705
706 SJOIN must be used to propagate channel creation and in netbursts. For regular
707 users joining channels, JOIN must be used. Pseudoservers may use SJOIN to join
708 a user with ops.
709
710 SNOTE
711 charybdis TS6
712 encap only
713 source: server
714 parameters: snomask letter, text
715
716 Sends the text as a server notice from the source server to opers with the
717 given snomask set.
718
719 SQUIT
720 parameters: target server, comment
721
722 Removes the target server and all servers and users behind it from the network.
723
724 If the target server is the receiving server or the local link this came from,
725 this is an announcement that the link is being closed.
726
727 Otherwise, if the target server is locally connected, the server should send
728 a WALLOPS announcing the SQUIT.
729
730 STATS
731 source: user
732 parameters: stats letter, hunted
733
734 Remote STATS request. Privileges are checked on the server executing the
735 actual request.
736
737 SU
738 encap only
739 encap target: *
740 source: services server
741 parameters: target user, new login name (optional)
742
743 If the new login name is not present or empty, mark the target user as not
744 logged in, otherwise mark the target user as logged in as the given account.
745
746 SVINFO
747 source: server
748 propagation: none
749 parameters: current TS version, minimum TS version, '0', current time
750
751 Verifies TS protocol compatibility and clock. If anything is not in order,
752 the link is dropped.
753
754 The current TS version is the highest version supported by the source server
755 and the minimum TS version is the lowest version supported.
756
757 The current time is sent as a TS in the usual way.
758
759 SVSLOGIN
760 charybdis TS6
761 encap only
762 encap target: single server
763 source: services server
764 parameters: target, new nick, new username, new visible hostname, new login name
765
766 Sent after successful SASL authentication.
767
768 The target is a UID, typically an unregistered one.
769
770 Any of the "new" parameters can be '*' to leave the corresponding field
771 unchanged. The new login name can be '0' to log the user out.
772
773 If the UID is registered on the network, a SIGNON with the changes will be
774 broadcast, otherwise the changes will be stored, to be used when registration
775 completes.
776
777 TB
778 source: server
779 propagation: broadcast
780 parameters:
781
782 TIME
783 source: user
784 parameters: hunted
785
786 Remote TIME request.
787
788 TMODE
789 source: any
790 parameters: channelTS, channel, cmode changes, opt. cmode parameters...
791
792 Propagates a channel mode change.
793
794 If the channelTS is greater (newer) than the current TS of the channel, drop
795 the message.
796
797 On input, only the limit on parameters per line restricts how many cmode
798 parameters can be present. Apart from this, arbitrary modes shall be
799 processed. Redundant modes may be dropped. For example, +n-n may be applied and
800 propagated as +n-n, -n or (if the channel was already -n) nothing, but not as
801 +n.
802
803 The parameter for mode -k (removing a key) shall be ignored.
804
805 On output, at most ten cmode parameters should be sent; if there are more,
806 multiple TMODE messages should be sent.
807
808 TOPIC
809 source: user
810 propagation: broadcast
811
812 Propagates a channel topic change. The server may verify that the source has
813 ops in the channel.
814
815 TRACE
816 source: user
817 1.
818 parameters: hunted
819
820 Performs a trace to the target, sending 200 numerics from each server passing
821 the message on. The target server sends a description of the target followed
822 by a 262 numeric.
823
824 TRACE, STATS l and STATS L are the only commands using hunt_server that use the
825 hunted parameter for more than just determining which server the command
826 should be executed on.
827
828 2.
829 parameters: target name, hunted
830
831 Executes a trace command on the target server. No 200 numerics are sent.
832 The target name is a name, not a UID, and should be on the target server.
833
834 UID
835 source: server
836 propagation: broadcast
837 parameters: nickname, hopcount, nickTS, umodes, username, visible hostname, IP address, UID, gecos
838 propagation: broadcast
839
840 Introduces a client. The client is on the source server of this command.
841
842 Nick TS rules apply.
843
844 UNDLINE
845 charybdis TS6
846 encap only
847 source: user
848 parameters: mask
849
850 Removes a D:line (IP ban checked directly after accepting connection).
851
852 The mask must be an IP address or CIDR mask.
853
854 UNKLINE
855 1.
856 encap only
857 source: user
858 parameters: user mask, host mask
859
860 Removes a K:line (ban on user@host).
861
862 2.
863 capab: UNKLN
864 source: user
865 parameters: target server mask, user mask, host mask
866
867 As form 1, deprecated.
868
869 UNRESV
870 1.
871 encap only
872 source: user
873 parameters: mask
874
875 Removes a RESV.
876
877 2.
878 capab: CLUSTER
879 source: user
880 parameters: target server mask, mask
881
882 As form 1, deprecated.
883
884 UNXLINE
885 1.
886 encap only
887 source: user
888 parameters: mask
889
890 Removes an X:line (ban on realname).
891
892 2.
893 capab: CLUSTER
894 source: user
895 parameters: target server mask, mask
896
897 As form 1, deprecated.
898
899 USERS
900 source: user
901 parameters: hunted
902
903 Remote USERS request.
904
905 VERSION
906 source: any
907 parameters: hunted
908
909 Remote VERSION request.
910
911 WALLOPS
912 1.
913 source: user
914 parameters: message
915 propagation: broadcast
916
917 In efnet TS6, sends a message to operators (with umode +z set). This is a
918 deprecated equivalent to OPERWALL.
919
920 In charybdis TS6, sends a message to local users with umode +w set (or possibly
921 another indication that WALLOPS messages should be sent), including non-opers.
922
923 2.
924 source: server
925 parameters: message
926 propagation: broadcast
927
928 Sends a message to local users with umode +w set (or possibly another
929 indication that WALLOPS messages should be sent).
930
931 In efnet TS6 this may include non-opers, in charybdis TS6 this may only be
932 sent to opers.
933
934 WHOIS
935 source: user
936 parameters: hunted, target nick
937
938 Remote WHOIS request.
939
940 XLINE
941 1.
942 encap only
943 source: user
944 parameters: duration, mask, reason
945
946 Sets an X:line (ban on realname).
947
948 2.
949 capab: CLUSTER
950 source: user
951 parameters: target server mask, duration, mask, reason
952
953 As form 1, deprecated.
954
955 Local only commands (charybdis 3.1):
956
957 ACCEPT
958 AUTHENTICATE
959 CAP
960 CHALLENGE
961 CHANTRACE
962 CLOSE
963 CNOTICE
964 CPRIVMSG
965 DIE
966 GET
967 HELP
968 ISON
969 LIST
970 MAP
971 MASKTRACE
972 MODLIST
973 MODLOAD
974 MODRELOAD
975 MODRESTART
976 MODUNLOAD
977 MONITOR
978 NAMES
979 OPER
980 POST
981 PUT
982 RESTART
983 SCAN
984 SET
985 TESTGECOS
986 TESTLINE
987 TESTMASK
988 UHELP
989 UNREJECT
990 USER
991 USERHOST
992 WEBIRC
993 WHO
994 WHOWAS