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