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