]> jfr.im git - solanum.git/blob - doc/technical/ts6-protocol.txt
Numerics are also server-server messages.
[solanum.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 INFO
260 source: user
261 parameters: hunted
262
263 Remote INFO request.
264
265 INVITE
266 source: user
267 parameters: target user, channel, opt. channelTS
268 propagation: one-to-one
269
270 Invites a user to a channel.
271
272 If the channelTS is greater (newer) than the current TS of the channel, drop
273 the message.
274
275 Not sending the channelTS parameter is deprecated.
276
277 JOIN
278 1.
279 source: user
280 parameters: '0' (one ASCII zero)
281 propagation: broadcast
282
283 Parts the source user from all channels.
284
285 2.
286 source: user
287 parameters: channelTS, channel, '+' (a plus sign)
288 propagation: broadcast
289
290 Joins the source user to the given channel. If the channel does not exist yet,
291 it is created with the given channelTS and no modes. If the channel already
292 exists and has a greater (newer) TS, wipe all simple modes and statuses and
293 change the TS, notifying local users of this but not servers (note that
294 ban-like modes remain intact; invites may or may not be cleared).
295
296 A JOIN is propagated with the new TS of the channel.
297
298 KICK
299 source: any
300 parameters: channel, target user, opt. reason
301 propagation: broadcast
302
303 Kicks the target user from the given channel.
304
305 Unless the channel's TS is 0, no check is done whether the source user has ops.
306
307 Not sending the reason parameter is questionable.
308
309 KILL
310 source: any
311 parameters: target user, path
312 propagation: broadcast
313
314 Removes the user from the network.
315
316 The format of the path parameter is some sort of description of the source of
317 the kill followed by a space and a parenthesized reason. To avoid overflow,
318 it is recommended not to add anything to the path.
319
320 KLINE
321 1.
322 encap only
323 source: user
324 parameters: duration, user mask, host mask, reason
325
326 Sets a K:line (ban on user@host).
327
328 2.
329 capab: KLN
330 source: user
331 parameters: target server mask, duration, user mask, host mask, reason
332
333 As form 1, deprecated.
334
335 KNOCK
336 source: user
337 parameters: channel
338 propagation: broadcast
339
340 Requests an invite to a channel that is locked somehow (+ikl). Notifies all
341 operators of the channel. (In charybdis, on +g channels all members are
342 notified.)
343
344 This is broadcast so that each server can store when KNOCK was used last on
345 a channel.
346
347 LINKS
348 source: user
349 parameters: hunted, server mask
350
351 Remote LINKS request. The server mask limits which servers are listed.
352
353 LOCOPS
354 1.
355 encap only
356 source: user
357 parameters: text
358
359 Sends a message to operators (with umode +l set). This is intended to be
360 used for strict subsets of the network.
361
362 2.
363 capab: CLUSTER
364 source: user
365 parameters: target server mask, text
366
367 As form 1, deprecated.
368
369 LOGIN
370 encap only
371 source: user
372 parameters: account name
373
374 In a burst, states that the source user is logged in as the account.
375
376 LUSERS
377 source: user
378 parameters: server mask, hunted
379
380 Remote LUSERS request. Most servers ignore the server mask, treating it as '*'.
381
382 MODE
383 1.
384 source: user
385 parameters: client, umode changes
386 propagation: broadcast
387
388 Propagates a user mode change. The client parameter must refer to the same user
389 as the source.
390
391 Not all umodes are propagated to other servers.
392
393 2.
394 source: any
395 parameters: channel, cmode changes, opt. cmode parameters...
396
397 Propagates a channel mode change.
398
399 This is deprecated because the channelTS is not included. If it is received,
400 it should be propagated as TMODE.
401
402 MOTD
403 source: user
404 parameters: hunted
405
406 Remote MOTD request.
407
408 NICK
409 1.
410 source: user
411 parameters: new nickname, new nickTS
412 propagation: broadcast
413
414 Propagates a nick change.
415
416 2.
417 source: server
418 parameters: nickname, hopcount, nickTS, umodes, username, hostname, server, gecos
419
420 Historic TS5 user introduction. The user is on the server indicated by the
421 server parameter; the source server is meaningless (local link).
422
423 NICKDELAY
424 charybdis TS6
425 encap only
426 encap target: *
427 source: services server
428 parameters: duration, nickname
429
430 If duration is greater than 0, makes the given nickname unavailable for that
431 time.
432
433 If duration is 0, removes a nick delay entry for the given nickname.
434
435 There may or may not be a client with the given nickname; this does not affect
436 the operation.
437
438 NOTICE
439 source: any
440 parameters: msgtarget, message
441
442 As PRIVMSG, except NOTICE messages are sent out, server sources are permitted
443 and most error messages are suppressed.
444
445 OPERSPY
446 encap only
447 encap target: *
448 source: user
449 parameters: command name, parameters
450
451 Reports operspy usage.
452
453 OPERWALL
454 source: user
455 parameters: message
456 propagation: broadcast
457
458 Sends a message to operators (with umode +z set).
459
460 PART
461 source: user
462 parameters: comma separated channel list, message
463
464 Parts the source user from the given channels.
465
466 PASS
467 source: unregistered server
468 parameters: password, 'TS', TS version, SID
469
470 Sends the server link password, TS version and SID.
471
472 PING
473 source: any
474 parameters: origin, opt. destination server
475
476 Sends a PING to the destination server, which will reply with a PONG. If the
477 destination server parameter is not present, the server receiving the message
478 must reply.
479
480 The origin field is not used in the server protocol. It is sent as the name
481 (not UID/SID) of the source.
482
483 Remote PINGs are used for end-of-burst detection, therefore all servers must
484 implement them.
485
486 PONG
487 source: server
488 parameters: origin, destination
489
490 Routes a PONG back to the destination that originally sent the PING.
491
492 PRIVMSG
493 source: user
494 parameters: msgtarget, message
495
496 Sends a normal message (PRIVMSG) to the given target.
497
498 The target can be:
499 - a client
500 propagation: one-to-one
501 - a channel name
502 propagation: all servers with -D users on the channel
503 (cmode +m/+n should be checked everywhere, bans should not be checked
504 remotely)
505 - a status character ('@'/'+') followed by a channel name, to send to users
506 with that status or higher only.
507 propagation: all servers with -D users with appropriate status
508 - a user@server message, to send to users on a specific server. The exact
509 meaning of the part before the '@' is not prescribed, except that "opers"
510 allows IRC operators to send to all IRC operators on the server in an
511 unspecified format.
512 propagation: one-to-one
513 - a message to all users on server names matching a mask ('$$' followed by mask)
514 propagation: broadcast
515 - a message to all users with hostnames matching a mask ('$#' followed by mask).
516 Note that this is often implemented poorly.
517 propagation: broadcast
518
519 PRIVS
520 charybdis TS6
521 encap only
522 encap target: single server
523 source: oper
524 parameters: client
525
526 Remote PRIVS information request.
527
528 QUIT
529 source: user
530 parameters: comment
531
532 Propagates quitting of a client. No QUIT should be sent for a client that
533 has been removed as result of a KILL message.
534
535 REALHOST
536 charybdis TS6
537 encap only
538 encap target: *
539 source: user
540 parameters: real hostname
541
542 In a burst, propagates the real host of a dynamically-spoofed user.
543
544 REHASH
545 charybdis TS6
546 encap only
547 source: user
548 parameters: opt. rehash type
549
550 Remote REHASH request. If the rehash type is omitted, it is equivalent to
551 a regular /rehash, otherwise it is equivalent to /rehash <rehash type>.
552
553 RESV
554 1.
555 encap only
556 source: user
557 parameters: duration, mask, reason
558
559 Sets a RESV, making a nickname mask or exact channel unavailable.
560
561 2.
562 capab: CLUSTER
563 source: user
564 parameters: target server mask, duration, mask, reason
565
566 As form 1, deprecated.
567
568 RSFNC
569 encap only
570 capab: RSFNC
571 encap target: single server
572 source: services server
573 parameters: target user, new nickname, old nickTS, new nickTS
574
575 Forces a nickname change and propagates it.
576
577 The command is ignored if the nick TS of the user is not equal to the old
578 nickTS parameter. If the new nickname already exists (and is not the target
579 user), it is killed first.
580
581 SASL
582 charybdis TS6
583 encap only
584 1.
585 encap target: *
586 source: server
587 parameters: source uid, '*', 'S', sasl mechanism name
588
589 Requests that a SASL agent (a service) initiate the authentication process.
590 The source uid is that of an unregistered client. This is why it is not sent
591 as the prefix.
592
593 2.
594 encap target: single server
595 source: server
596 parameters: source uid, target uid, mode, data
597
598 Part of a SASL authentication exchange. The mode is 'C' to send some data
599 (base64 encoded), or 'S' to end the exchange (data indicates type of
600 termination: 'A' for abort, 'F' for authentication failure, 'S' for
601 authentication success).
602
603 SAVE
604 capab: SAVE
605 source: server
606 propagation: broadcast
607 parameters: target uid, TS
608
609 Resolve a nick collision by changing a nickname to the UID.
610
611 The server should verify that the UID belongs to a registered user, the user
612 does not already have their UID as their nick and the TS matches the user's
613 nickTS. If not, drop the message.
614
615 SAVE should be propagated as a regular NICK change to links without SAVE capab.
616 present.
617
618 SERVER
619 1.
620 source: unregistered server
621 parameters: server name, hopcount, server description
622
623 Registers the connection as a server. PASS and CAPAB must have been sent
624 before, SVINFO should be sent afterwards.
625
626 If there is no such server configured or authentication failed, the connection
627 should be dropped.
628
629 This is propagated as a SID message.
630
631 2.
632 source: server
633 propagation: broadcast
634 parameters: server name, hopcount, server description
635
636 Introduces a new TS5 server, directly connected to the source of this command.
637 This is only used for jupes as TS5 servers may do little else than existing.
638
639 SID
640 source: server
641 propagation: broadcast
642 parameters: server name, hopcount, sid, server description
643
644 Introduces a new server, directly connected to the source of this command.
645
646 SIGNON
647 source: user
648 propagation: broadcast
649 parameters: new nickname, new username, new visible hostname, new nickTS, new login name
650
651 Broadcasts a change of several user parameters at once.
652
653 Currently only sent after an SVSLOGIN.
654
655 SJOIN
656 source: server
657 propagation: broadcast
658 parameters: channelTS, simple modes, opt. mode parameters..., nicklist
659
660 Broadcasts a channel creation or bursts a channel.
661
662 The nicklist consists of users joining the channel, with status prefixes for
663 their status ('@+', '@', '+' or ''), for example:
664 '@+1JJAAAAAB +2JJAAAA4C 1JJAAAADS'. All users must be behind the source server
665 so it is not possible to use this message to force users to join a channel.
666
667 The interpretation depends on the channelTS and the current TS of the channel.
668 If either is 0, set the channel's TS to 0 and accept all modes. Otherwise, if
669 the incoming channelTS is greater (newer), ignore the incoming simple modes
670 and statuses and join and propagate just the users. If the incoming channelTS
671 is lower (older), wipe all modes and change the TS, notifying local users of
672 this but not servers (invites may be cleared). In the latter case, kick on
673 split riding may happen: if the key (+k) differs or the incoming simple modes
674 include +i, kick all local users, sending KICK messages to servers.
675
676 An SJOIN is propagated with the new TS and modes of the channel. The statuses
677 are propagated if and only if they were accepted.
678
679 SJOIN must be used to propagate channel creation and in netbursts. For regular
680 users joining channels, JOIN must be used. Pseudoservers may use SJOIN to join
681 a user with ops.
682
683 SNOTE
684 charybdis TS6
685 encap only
686 source: server
687 parameters: snomask letter, text
688
689 Sends the text as a server notice from the source server to opers with the
690 given snomask set.
691
692 SQUIT
693 parameters: target server, comment
694
695 Removes the target server and all servers and users behind it from the network.
696
697 If the target server is the receiving server or the local link this came from,
698 this is an announcement that the link is being closed.
699
700 Otherwise, if the target server is locally connected, the server should send
701 a WALLOPS announcing the SQUIT.
702
703 STATS
704 source: user
705 parameters: stats letter, hunted
706
707 Remote STATS request. Privileges are checked on the server executing the
708 actual request.
709
710 SU
711 encap only
712 encap target: *
713 source: services server
714 parameters: target user, new login name (optional)
715
716 If the new login name is not present or empty, mark the target user as not
717 logged in, otherwise mark the target user as logged in as the given account.
718
719 SVINFO
720 source: server
721 propagation: none
722 parameters: current TS version, minimum TS version, '0', current time
723
724 Verifies TS protocol compatibility and clock. If anything is not in order,
725 the link is dropped.
726
727 The current TS version is the highest version supported by the source server
728 and the minimum TS version is the lowest version supported.
729
730 The current time is sent as a TS in the usual way.
731
732 SVSLOGIN
733 charybdis TS6
734 encap only
735 encap target: single server
736 source: services server
737 parameters: target, new nick, new username, new visible hostname, new login name
738
739 Sent after successful SASL authentication.
740
741 The target is a UID, typically an unregistered one.
742
743 Any of the "new" parameters can be '*' to leave the corresponding field
744 unchanged. The new login name can be '0' to log the user out.
745
746 If the UID is registered on the network, a SIGNON with the changes will be
747 broadcast, otherwise the changes will be stored, to be used when registration
748 completes.
749
750 TB
751 source: server
752 propagation: broadcast
753 parameters:
754
755 TIME
756 source: user
757 parameters: hunted
758
759 Remote TIME request.
760
761 TMODE
762 source: any
763 parameters: channelTS, channel, cmode changes, opt. cmode parameters...
764
765 Propagates a channel mode change.
766
767 If the channelTS is greater (newer) than the current TS of the channel, drop
768 the message.
769
770 On input, only the limit on parameters per line restricts how many cmode
771 parameters can be present. Apart from this, arbitrary modes shall be
772 processed. Redundant modes may be dropped. For example, +n-n may be applied and
773 propagated as +n-n, -n or (if the channel was already -n) nothing, but not as
774 +n.
775
776 The parameter for mode -k (removing a key) shall be ignored.
777
778 On output, at most ten cmode parameters should be sent; if there are more,
779 multiple TMODE messages should be sent.
780
781 TOPIC
782 source: user
783 propagation: broadcast
784
785 Propagates a channel topic change. The server may verify that the source has
786 ops in the channel.
787
788 TRACE
789 source: user
790 1.
791 parameters: hunted
792
793 Performs a trace to the target, sending 200 numerics from each server passing
794 the message on. The target server sends a description of the target followed
795 by a 262 numeric.
796
797 TRACE, STATS l and STATS L are the only commands using hunt_server that use the
798 hunted parameter for more than just determining which server the command
799 should be executed on.
800
801 2.
802 parameters: target name, hunted
803
804 Executes a trace command on the target server. No 200 numerics are sent.
805 The target name is a name, not a UID, and should be on the target server.
806
807 UID
808 source: server
809 propagation: broadcast
810 parameters: nickname, hopcount, nickTS, umodes, username, visible hostname, IP address, UID, gecos
811 propagation: broadcast
812
813 Introduces a client. The client is on the source server of this command.
814
815 Nick TS rules apply.
816
817 UNDLINE
818 charybdis TS6
819 encap only
820 source: user
821 parameters: mask
822
823 Removes a D:line (IP ban checked directly after accepting connection).
824
825 The mask must be an IP address or CIDR mask.
826
827 UNKLINE
828 1.
829 encap only
830 source: user
831 parameters: user mask, host mask
832
833 Removes a K:line (ban on user@host).
834
835 2.
836 capab: UNKLN
837 source: user
838 parameters: target server mask, user mask, host mask
839
840 As form 1, deprecated.
841
842 UNRESV
843 1.
844 encap only
845 source: user
846 parameters: mask
847
848 Removes a RESV.
849
850 2.
851 capab: CLUSTER
852 source: user
853 parameters: target server mask, mask
854
855 As form 1, deprecated.
856
857 UNXLINE
858 1.
859 encap only
860 source: user
861 parameters: mask
862
863 Removes an X:line (ban on realname).
864
865 2.
866 capab: CLUSTER
867 source: user
868 parameters: target server mask, mask
869
870 As form 1, deprecated.
871
872 USERS
873 source: user
874 parameters: hunted
875
876 Remote USERS request.
877
878 VERSION
879 source: any
880 parameters: hunted
881
882 Remote VERSION request.
883
884 WALLOPS
885 1.
886 source: user
887 parameters: message
888 propagation: broadcast
889
890 In efnet TS6, sends a message to operators (with umode +z set). This is a
891 deprecated equivalent to OPERWALL.
892
893 In charybdis TS6, sends a message to local users with umode +w set (or possibly
894 another indication that WALLOPS messages should be sent), including non-opers.
895
896 2.
897 source: server
898 parameters: message
899 propagation: broadcast
900
901 Sends a message to local users with umode +w set (or possibly another
902 indication that WALLOPS messages should be sent).
903
904 In efnet TS6 this may include non-opers, in charybdis TS6 this may only be
905 sent to opers.
906
907 WHOIS
908 source: user
909 parameters: hunted, target nick
910
911 Remote WHOIS request.
912
913 XLINE
914 1.
915 encap only
916 source: user
917 parameters: duration, mask, reason
918
919 Sets an X:line (ban on realname).
920
921 2.
922 capab: CLUSTER
923 source: user
924 parameters: target server mask, duration, mask, reason
925
926 As form 1, deprecated.
927
928 Local only commands (charybdis 3.1):
929
930 ACCEPT
931 AUTHENTICATE
932 CAP
933 CHALLENGE
934 CHANTRACE
935 CLOSE
936 CNOTICE
937 CPRIVMSG
938 DIE
939 GET
940 HELP
941 ISON
942 LIST
943 MAP
944 MASKTRACE
945 MODLIST
946 MODLOAD
947 MODRELOAD
948 MODRESTART
949 MODUNLOAD
950 MONITOR
951 NAMES
952 OPER
953 POST
954 PUT
955 RESTART
956 SCAN
957 SET
958 TESTGECOS
959 TESTLINE
960 TESTMASK
961 UHELP
962 UNREJECT
963 USER
964 USERHOST
965 WEBIRC
966 WHO
967 WHOWAS