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