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