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