First draft of a more complete TS6 server protocol description.
This commit is contained in:
parent
a33bdd9fb6
commit
cdff8b707a
1 changed files with 890 additions and 0 deletions
890
doc/technical/ts6-protocol.txt
Normal file
890
doc/technical/ts6-protocol.txt
Normal file
|
@ -0,0 +1,890 @@
|
|||
TS6 protocol description
|
||||
Written by Jilles Tjoelker
|
||||
|
||||
General format: much like rfc1459
|
||||
Maximum parameters for a command: 15 (this does not include the prefix
|
||||
and command name)
|
||||
|
||||
SID: a server's unique ID. It is configured in each server and consists of
|
||||
a digit and two alphanumerics. Sending SIDs with lowercase letters is
|
||||
questionable.
|
||||
|
||||
UID: a client's unique ID. It consists of the server's SID and six
|
||||
alphanumerics (so it is nine characters long). The first of the alphanumerics
|
||||
should be a letter, numbers are legal but reserved for future use.
|
||||
|
||||
hunted: a parameter type used for various remote requests. From local users,
|
||||
nicknames and server names are accepted, possibly with wildcards; from servers,
|
||||
UIDs/SIDs (sending names or even wildcards is deprecated). This is done with
|
||||
the function hunt_server(). Any rate limiting should be done locally.
|
||||
|
||||
duration: a parameter type used for ban durations. It is a duration in seconds.
|
||||
A value of 0 means a permanent ban.
|
||||
|
||||
propagation: to which other servers the command is sent. For all commands
|
||||
with a hunted parameter, the propagation is determined by that, and not
|
||||
otherwise specified. Propagation broadcast means the command is sent to all
|
||||
servers. Propagation one-to-one means the command is only sent to the target
|
||||
or the server the target is on. Propagation none means the command is never
|
||||
sent to another server if it is received. For some other commands, the
|
||||
propagation depends on the parameters and is described in text.
|
||||
|
||||
services server: server mentioned in a service{} block. There are no services
|
||||
servers on EFnet.
|
||||
|
||||
service: client with umode +S. This implies that it is on a services server.
|
||||
|
||||
user modes:
|
||||
(all)
|
||||
+D (deaf: does not receive channel messages)
|
||||
+S (network service) (only settable on burst from a services server)
|
||||
+a (appears as server administrator)
|
||||
+i (invisible, see rfc1459)
|
||||
+o (IRC operator, see rfc1459)
|
||||
+w (wallops, see rfc1459) (always propagated for historical reasons)
|
||||
(charybdis TS6)
|
||||
+Q/+R/+g/+l/+s/+z (only locally effective)
|
||||
+Z (ssl user) (only settable on burst)
|
||||
possibly more added by modules
|
||||
|
||||
channel modes:
|
||||
(all)
|
||||
statuses
|
||||
+o (prefix @) (ops)
|
||||
+v (prefix +) (voice)
|
||||
type A
|
||||
+b (ban)
|
||||
+e (ban exception)
|
||||
+I (invite exception)
|
||||
type B
|
||||
+k (key: password required to join, <= 23 ascii chars, no : or , or whitespace)
|
||||
type C
|
||||
+l (limit: maximum number of members before further joins are disallowed)
|
||||
type D
|
||||
+m (moderated)
|
||||
+n (no external messages)
|
||||
+p (private: does not appear in /whois to non-members, no /knock allowed)
|
||||
+r (only registered users may join) (only if a services server exists)
|
||||
+s (secret)
|
||||
+t (only chanops may change topic)
|
||||
(charybdis TS6)
|
||||
type A
|
||||
+q (quiet)
|
||||
type C
|
||||
+f (forward: channel name <= 30 chars)
|
||||
+j (join throttle: N:T with integer N and T)
|
||||
type D
|
||||
+F (free target for +f)
|
||||
+L (large ban list)
|
||||
+P (permanent: does not disappear when empty)
|
||||
+Q (ignore forwards to this)
|
||||
+c (strip colours)
|
||||
+g (allow any member to /invite)
|
||||
+z (send messages blocked by +m to chanops)
|
||||
|
||||
ADMIN
|
||||
source: user
|
||||
parameters: hunted
|
||||
|
||||
Remote ADMIN request.
|
||||
|
||||
AWAY
|
||||
source: user
|
||||
propagation: broadcast
|
||||
parameters: opt. away reason
|
||||
|
||||
If the away reason is empty or not present, mark the user as not away.
|
||||
Otherwise, mark the user as away.
|
||||
|
||||
Changing away reason from one non-empty string to another non-empty string
|
||||
may not be propagated.
|
||||
|
||||
BMASK
|
||||
source: server
|
||||
propagation: broadcast
|
||||
parameters: channelTS, channel, type, space separated masks
|
||||
|
||||
If the channelTS in the message is greater (newer) than the current TS of
|
||||
the channel, drop the message and do not propagate it.
|
||||
|
||||
Type is the mode letter of a ban-like mode. In efnet TS6 this is 'b', 'e' or
|
||||
'I'. In charybdis TS6 additionally 'q' is possible.
|
||||
|
||||
Add all the masks to the given list of the channel.
|
||||
|
||||
All ban-like modes must be bursted using this command, not using MODE or TMODE.
|
||||
|
||||
CAPAB
|
||||
source: unregistered server
|
||||
propagation: none
|
||||
parameters: space separated capability list
|
||||
|
||||
Sends capabilities of the server. This must include QS and ENCAP.
|
||||
|
||||
CHGHOST
|
||||
charybdis TS6
|
||||
source: any
|
||||
propagation: broadcast
|
||||
parameters: client, new hostname
|
||||
|
||||
Changes the visible hostname of a client.
|
||||
|
||||
Opers are notified unless the source is a server or a service.
|
||||
|
||||
CONNECT
|
||||
source: any
|
||||
parameters: server to connect to, port, hunted
|
||||
|
||||
Remote connect request. A server WALLOPS should be sent by the receiving
|
||||
server.
|
||||
|
||||
The port can be 0 for the default port.
|
||||
|
||||
DLINE
|
||||
charybdis TS6
|
||||
encap only
|
||||
source: user
|
||||
parameters: duration, mask, reason
|
||||
|
||||
Sets a D:line (IP ban checked directly after accepting connection).
|
||||
|
||||
The mask must be an IP address or CIDR mask.
|
||||
|
||||
ENCAP
|
||||
source: any
|
||||
parameters: target server mask, subcommand, opt. parameters...
|
||||
|
||||
Sends a command to all servers with names matching the given mask (for example
|
||||
'*', '*.example.com', 'irc.example.com'). Those servers do not have to be
|
||||
directly connected. Targets cannot be SIDs.
|
||||
|
||||
Propagation is independent of understanding the subcommand.
|
||||
|
||||
ERROR
|
||||
source: server or unregistered server
|
||||
propagation: none
|
||||
parameters: error message
|
||||
|
||||
Reports a (usually fatal) error with the connection.
|
||||
|
||||
Error messages may contain IP addresses and have a negative effect on server
|
||||
IP hiding.
|
||||
|
||||
ETRACE
|
||||
encap only
|
||||
encap target: single server
|
||||
source: oper
|
||||
parameters: client
|
||||
|
||||
Remote ETRACE information request.
|
||||
|
||||
EUID
|
||||
charybdis TS6
|
||||
capab: EUID
|
||||
source: server
|
||||
parameters: nickname, hopcount, nickTS, umodes, username, visible hostname, IP address, UID, real hostname, account name, gecos
|
||||
propagation: broadcast
|
||||
|
||||
Introduces a client. The client is on the source server of this command.
|
||||
|
||||
The account name is '0' if the user is not logged in with services.
|
||||
|
||||
Nick TS rules apply.
|
||||
|
||||
EUID is similar to UID but includes the ENCAP REALHOST and ENCAP LOGIN
|
||||
information.
|
||||
|
||||
GCAP
|
||||
encap only
|
||||
encap target: *
|
||||
source: server
|
||||
parameters: space separated capability list
|
||||
|
||||
Capability list of remote server.
|
||||
|
||||
INFO
|
||||
source: user
|
||||
parameters: hunted
|
||||
|
||||
Remote INFO request.
|
||||
|
||||
INVITE
|
||||
source: user
|
||||
parameters: target user, channel, opt. channelTS
|
||||
propagation: one-to-one
|
||||
|
||||
Invites a user to a channel.
|
||||
|
||||
If the channelTS is greater (newer) than the current TS of the channel, drop
|
||||
the message.
|
||||
|
||||
Not sending the channelTS parameter is deprecated.
|
||||
|
||||
JOIN
|
||||
1.
|
||||
source: user
|
||||
parameters: '0' (one ASCII zero)
|
||||
propagation: broadcast
|
||||
|
||||
Parts the source user from all channels.
|
||||
|
||||
2.
|
||||
source: user
|
||||
parameters: channelTS, channel, '+' (a plus sign)
|
||||
propagation: broadcast
|
||||
|
||||
Joins the source user to the given channel. If the channel does not exist yet,
|
||||
it is created with the given channelTS and no modes. If the channel already
|
||||
exists and has a greater (newer) TS, wipe all simple modes and statuses and
|
||||
change the TS, notifying local users of this but not servers (note that
|
||||
ban-like modes remain intact; invites may or may not be cleared).
|
||||
|
||||
KICK
|
||||
source: any
|
||||
parameters: channel, target user, opt. reason
|
||||
propagation: broadcast
|
||||
|
||||
Kicks the target user from the given channel.
|
||||
|
||||
Unless the channel's TS is 0, no check is done whether the source user has ops.
|
||||
|
||||
Not sending the reason parameter is questionable.
|
||||
|
||||
KILL
|
||||
source: any
|
||||
parameters: target user, path
|
||||
propagation: broadcast
|
||||
|
||||
Removes the user from the network.
|
||||
|
||||
The format of the path parameter is some sort of description of the source of
|
||||
the kill followed by a space and a parenthesized reason. To avoid overflow,
|
||||
it is recommended not to add anything to the path.
|
||||
|
||||
KLINE
|
||||
1.
|
||||
encap only
|
||||
source: user
|
||||
parameters: duration, user mask, host mask, reason
|
||||
|
||||
Sets a K:line (ban on user@host).
|
||||
|
||||
2.
|
||||
capab: KLN
|
||||
source: user
|
||||
parameters: target server mask, duration, user mask, host mask, reason
|
||||
|
||||
As form 1, deprecated.
|
||||
|
||||
KNOCK
|
||||
source: user
|
||||
parameters: channel
|
||||
propagation: broadcast
|
||||
|
||||
Requests an invite to a channel that is locked somehow (+ikl). Notifies all
|
||||
operators of the channel. (In charybdis, on +g channels all members are
|
||||
notified.)
|
||||
|
||||
This is broadcast so that each server can store when KNOCK was used last on
|
||||
a channel.
|
||||
|
||||
LINKS
|
||||
source: user
|
||||
parameters: hunted, server mask
|
||||
|
||||
Remote LINKS request. The server mask limits which servers are listed.
|
||||
|
||||
LOGIN
|
||||
encap only
|
||||
source: user
|
||||
parameters: account name
|
||||
|
||||
In a burst, states that the source user is logged in as the account.
|
||||
|
||||
LUSERS
|
||||
source: user
|
||||
parameters: server mask, hunted
|
||||
|
||||
Remote LUSERS request. Most servers ignore the server mask, treating it as '*'.
|
||||
|
||||
MODE
|
||||
1.
|
||||
source: user
|
||||
parameters: client, umode changes
|
||||
propagation: broadcast
|
||||
|
||||
Propagates a user mode change. The client parameter must refer to the same user
|
||||
as the source.
|
||||
|
||||
Not all umodes are propagated to other servers.
|
||||
|
||||
2.
|
||||
source: any
|
||||
parameters: channel, cmode changes, opt. cmode parameters...
|
||||
|
||||
Propagates a channel mode change.
|
||||
|
||||
This is deprecated because the channelTS is not included. If it is received,
|
||||
it should be propagated as TMODE.
|
||||
|
||||
MOTD
|
||||
source: user
|
||||
parameters: hunted
|
||||
|
||||
Remote MOTD request.
|
||||
|
||||
NICK
|
||||
1.
|
||||
source: user
|
||||
parameters: new nickname, new nickTS
|
||||
propagation: broadcast
|
||||
|
||||
Propagates a nick change.
|
||||
|
||||
2.
|
||||
source: server
|
||||
parameters: nickname, hopcount, nickTS, umodes, username, hostname, server, gecos
|
||||
|
||||
Historic TS5 user introduction. The user is on the server indicated by the
|
||||
server parameter; the source server is meaningless (local link).
|
||||
|
||||
NICKDELAY
|
||||
charybdis TS6
|
||||
encap only
|
||||
encap target: *
|
||||
source: services server
|
||||
parameters: duration, nickname
|
||||
|
||||
If duration is greater than 0, makes the given nickname unavailable for that
|
||||
time.
|
||||
|
||||
If duration is 0, removes a nick delay entry for the given nickname.
|
||||
|
||||
There may or may not be a client with the given nickname; this does not affect
|
||||
the operation.
|
||||
|
||||
NOTICE
|
||||
source: any
|
||||
parameters: msgtarget, message
|
||||
|
||||
As PRIVMSG, except NOTICE messages are sent out, server sources are permitted
|
||||
and most error messages are suppressed.
|
||||
|
||||
OPERSPY
|
||||
encap only
|
||||
encap target: *
|
||||
source: user
|
||||
parameters: command name, parameters
|
||||
|
||||
Reports operspy usage.
|
||||
|
||||
OPERWALL
|
||||
source: user
|
||||
parameters: message
|
||||
propagation: broadcast
|
||||
|
||||
Sends a message to operators (with umode +z set).
|
||||
|
||||
PART
|
||||
source: user
|
||||
parameters: comma separated channel list, message
|
||||
|
||||
Parts the source user from the given channels.
|
||||
|
||||
PASS
|
||||
source: unregistered server
|
||||
parameters: password, 'TS', TS version, SID
|
||||
|
||||
Sends the server link password, TS version and SID.
|
||||
|
||||
PING
|
||||
source: any
|
||||
parameters: origin, destination server
|
||||
|
||||
Sends a PING to the destination server, which will reply with a PONG.
|
||||
|
||||
The origin field is not used in the server protocol.
|
||||
|
||||
Remote PINGs are used for end-of-burst detection, therefore all servers must
|
||||
implement them.
|
||||
|
||||
PONG
|
||||
source: server
|
||||
parameters: origin, destination
|
||||
|
||||
Routes a PONG back to the destination that originally sent the PING.
|
||||
|
||||
PRIVMSG
|
||||
source: user
|
||||
parameters: msgtarget, message
|
||||
|
||||
Sends a normal message (PRIVMSG) to the given target.
|
||||
|
||||
The target can be:
|
||||
- a client
|
||||
propagation: one-to-one
|
||||
- a channel name
|
||||
propagation: all servers with -D users on the channel
|
||||
(cmode +m/+n should be checked everywhere, bans should not be checked
|
||||
remotely)
|
||||
- a status character ('@'/'+') followed by a channel name, to send to users
|
||||
with that status or higher only.
|
||||
propagation: all servers with -D users with appropriate status
|
||||
- a user@server message, to send to users on a specific server. The exact
|
||||
meaning of the part before the '@' is not prescribed, except that "opers"
|
||||
allows IRC operators to send to all IRC operators on the server in an
|
||||
unspecified format.
|
||||
propagation: one-to-one
|
||||
- a message to all users on server names matching a mask ('$$' followed by mask)
|
||||
propagation: broadcast
|
||||
- a message to all users with hostnames matching a mask ('$#' followed by mask).
|
||||
Note that this is often implemented poorly.
|
||||
propagation: broadcast
|
||||
|
||||
PRIVS
|
||||
charybdis TS6
|
||||
encap only
|
||||
encap target: single server
|
||||
source: oper
|
||||
parameters: client
|
||||
|
||||
Remote PRIVS information request.
|
||||
|
||||
QUIT
|
||||
source: user
|
||||
parameters: comment
|
||||
|
||||
Propagates quitting of a client. No QUIT should be sent for a client that
|
||||
has been removed as result of a KILL message.
|
||||
|
||||
REALHOST
|
||||
charybdis TS6
|
||||
encap only
|
||||
encap target: *
|
||||
source: user
|
||||
parameters: real hostname
|
||||
|
||||
In a burst, propagates the real host of a dynamically-spoofed user.
|
||||
|
||||
REHASH
|
||||
charybdis TS6
|
||||
encap only
|
||||
source: user
|
||||
parameters: opt. rehash type
|
||||
|
||||
Remote REHASH request. If the rehash type is omitted, it is equivalent to
|
||||
a regular /rehash, otherwise it is equivalent to /rehash <rehash type>.
|
||||
|
||||
RESV
|
||||
1.
|
||||
encap only
|
||||
source: user
|
||||
parameters: duration, mask, reason
|
||||
|
||||
Sets a RESV, making a nickname mask or exact channel unavailable.
|
||||
|
||||
2.
|
||||
capab: CLUSTER
|
||||
source: user
|
||||
parameters: target server mask, duration, mask, reason
|
||||
|
||||
As form 1, deprecated.
|
||||
|
||||
RSFNC
|
||||
encap only
|
||||
capab: RSFNC
|
||||
encap target: single server
|
||||
source: services server
|
||||
parameters: target user, new nickname, old nickTS, new nickTS
|
||||
|
||||
Forces a nickname change and propagates it.
|
||||
|
||||
The command is ignored if the nick TS of the user is not equal to the old
|
||||
nickTS parameter. If the new nickname already exists (and is not the target
|
||||
user), it is killed first.
|
||||
|
||||
SASL
|
||||
charybdis TS6
|
||||
encap only
|
||||
1.
|
||||
encap target: *
|
||||
source: server
|
||||
parameters: source uid, '*', 'S', sasl mechanism name
|
||||
|
||||
Requests that a SASL agent (a service) initiate the authentication process.
|
||||
The source uid is that of an unregistered client. This is why it is not sent
|
||||
as the prefix.
|
||||
|
||||
2.
|
||||
encap target: single server
|
||||
source: server
|
||||
parameters: source uid, target uid, mode, data
|
||||
|
||||
Part of a SASL authentication exchange. The mode is 'C' to send some data
|
||||
(base64 encoded), or 'S' to end the exchange (data indicates type of
|
||||
termination: 'A' for abort, 'F' for authentication failure, 'S' for
|
||||
authentication success).
|
||||
|
||||
SAVE
|
||||
capab: SAVE
|
||||
source: server
|
||||
propagation: broadcast
|
||||
parameters: target uid, TS
|
||||
|
||||
Resolve a nick collision by changing a nickname to the UID.
|
||||
|
||||
The server should verify that the UID belongs to a registered user, the user
|
||||
does not already have their UID as their nick and the TS matches the user's
|
||||
nickTS. If not, drop the message.
|
||||
|
||||
SAVE should be propagated as a regular NICK change to links without SAVE capab.
|
||||
present.
|
||||
|
||||
SERVER
|
||||
1.
|
||||
source: unregistered server
|
||||
parameters: server name, hopcount, server description
|
||||
|
||||
Registers the connection as a server. PASS and CAPAB must have been sent
|
||||
before, SVINFO should be sent afterwards.
|
||||
|
||||
If there is no such server configured or authentication failed, the connection
|
||||
should be dropped.
|
||||
|
||||
This is propagated as a SID message.
|
||||
|
||||
2.
|
||||
source: server
|
||||
propagation: broadcast
|
||||
parameters: server name, hopcount, server description
|
||||
|
||||
Introduces a new TS5 server, directly connected to the source of this command.
|
||||
This is only used for jupes as TS5 servers may do little else than existing.
|
||||
|
||||
SID
|
||||
source: server
|
||||
propagation: broadcast
|
||||
parameters: server name, hopcount, sid, server description
|
||||
|
||||
Introduces a new server, directly connected to the source of this command.
|
||||
|
||||
SIGNON
|
||||
source: user
|
||||
propagation: broadcast
|
||||
parameters: new nickname, new username, new visible hostname, new nickTS, new login name
|
||||
|
||||
Broadcasts a change of several user parameters at once.
|
||||
|
||||
Currently only sent after an SVSLOGIN.
|
||||
|
||||
SJOIN
|
||||
source: server
|
||||
propagation: broadcast
|
||||
parameters: channelTS, simple modes, opt. mode parameters..., nicklist
|
||||
|
||||
Broadcasts a channel creation or bursts a channel.
|
||||
|
||||
The nicklist consists of users joining the channel, with status prefixes for
|
||||
their status ('@+', '@', '+' or ''), for example:
|
||||
'@+1JJAAAAAB +2JJAAAA4C 1JJAAAADS'. All users must be behind the source server
|
||||
so it is not possible to use this message to force users to join a channel.
|
||||
|
||||
The interpretation depends on the channelTS and the current TS of the channel.
|
||||
If either is 0, set the channel's TS to 0 and accept all modes. Otherwise, if
|
||||
the incoming channelTS is greater (newer), ignore the incoming simple modes
|
||||
and statuses and join and propagate just the users. If the incoming channelTS
|
||||
is lower (older), wipe all modes and change the TS, notifying local users of
|
||||
this but not servers (invites may be cleared). In the latter case, kick on
|
||||
split riding may happen: if the key (+k) differs or the incoming simple modes
|
||||
include +i, kick all local users, sending KICK messages to servers.
|
||||
|
||||
SJOIN must be used to propagate channel creation and in netbursts. For regular
|
||||
users joining channels, JOIN must be used. Pseudoservers may use SJOIN to join
|
||||
a user with ops.
|
||||
|
||||
SNOTE
|
||||
charybdis TS6
|
||||
encap only
|
||||
source: server
|
||||
parameters: snomask letter, text
|
||||
|
||||
Sends the text as a server notice from the source server to opers with the
|
||||
given snomask set.
|
||||
|
||||
SQUIT
|
||||
parameters: target server, comment
|
||||
|
||||
Removes the target server and all servers and users behind it from the network.
|
||||
|
||||
If the target server is the receiving server or the local link this came from,
|
||||
this is an announcement that the link is being closed.
|
||||
|
||||
Otherwise, if the target server is locally connected, the server should send
|
||||
a WALLOPS announcing the SQUIT.
|
||||
|
||||
STATS
|
||||
source: user
|
||||
parameters: stats letter, hunted
|
||||
|
||||
Remote STATS request. Privileges are checked on the server executing the
|
||||
actual request.
|
||||
|
||||
SU
|
||||
encap only
|
||||
encap target: *
|
||||
source: services server
|
||||
parameters: target user, new login name (optional)
|
||||
|
||||
If the new login name is not present or empty, mark the target user as not
|
||||
logged in, otherwise mark the target user as logged in as the given account.
|
||||
|
||||
SVINFO
|
||||
source: server
|
||||
propagation: none
|
||||
parameters: current TS version, minimum TS version, '0', current time
|
||||
|
||||
Verifies TS protocol compatibility and clock. If anything is not in order,
|
||||
the link is dropped.
|
||||
|
||||
The current TS version is the highest version supported by the source server
|
||||
and the minimum TS version is the lowest version supported.
|
||||
|
||||
The current time is sent as a TS in the usual way.
|
||||
|
||||
SVSLOGIN
|
||||
charybdis TS6
|
||||
encap only
|
||||
encap target: single server
|
||||
source: services server
|
||||
parameters: target, new nick, new username, new visible hostname, new login name
|
||||
|
||||
Sent after successful SASL authentication.
|
||||
|
||||
The target is a UID, typically an unregistered one.
|
||||
|
||||
Any of the "new" parameters can be '*' to leave the corresponding field
|
||||
unchanged. The new login name can be '0' to log the user out.
|
||||
|
||||
If the UID is registered on the network, a SIGNON with the changes will be
|
||||
broadcast, otherwise the changes will be stored, to be used when registration
|
||||
completes.
|
||||
|
||||
TB
|
||||
source: server
|
||||
propagation: broadcast
|
||||
parameters:
|
||||
|
||||
TIME
|
||||
source: user
|
||||
parameters: hunted
|
||||
|
||||
Remote TIME request.
|
||||
|
||||
TMODE
|
||||
source: any
|
||||
parameters: channelTS, channel, cmode changes, opt. cmode parameters...
|
||||
|
||||
Propagates a channel mode change.
|
||||
|
||||
If the channelTS is greater (newer) than the current TS of the channel, drop
|
||||
the message.
|
||||
|
||||
On input, only the limit on parameters per line restricts how many cmode
|
||||
parameters can be present. Apart from this, arbitrary modes shall be
|
||||
processed. Redundant modes may be dropped. For example, +n-n may be applied and
|
||||
propagated as +n-n, -n or (if the channel was already -n) nothing, but not as
|
||||
+n.
|
||||
|
||||
The parameter for mode -k (removing a key) shall be ignored.
|
||||
|
||||
On output, at most ten cmode parameters should be sent; if there are more,
|
||||
multiple TMODE messages should be sent.
|
||||
|
||||
TOPIC
|
||||
source: user
|
||||
propagation: broadcast
|
||||
|
||||
Propagates a channel topic change. The server may verify that the source has
|
||||
ops in the channel.
|
||||
|
||||
TRACE
|
||||
source: user
|
||||
1.
|
||||
parameters: hunted
|
||||
|
||||
Performs a trace to the target, sending 200 numerics from each server passing
|
||||
the message on. The target server sends a description of the target followed
|
||||
by a 262 numeric.
|
||||
|
||||
TRACE, STATS l and STATS L are the only commands using hunt_server that use the
|
||||
hunted parameter for more than just determining which server the command
|
||||
should be executed on.
|
||||
|
||||
2.
|
||||
parameters: target name, hunted
|
||||
|
||||
Executes a trace command on the target server. No 200 numerics are sent.
|
||||
The target name is a name, not a UID, and should be on the target server.
|
||||
|
||||
UID
|
||||
source: server
|
||||
propagation: broadcast
|
||||
parameters: nickname, hopcount, nickTS, umodes, username, visible hostname, IP address, UID, gecos
|
||||
propagation: broadcast
|
||||
|
||||
Introduces a client. The client is on the source server of this command.
|
||||
|
||||
Nick TS rules apply.
|
||||
|
||||
UNDLINE
|
||||
charybdis TS6
|
||||
encap only
|
||||
source: user
|
||||
parameters: mask
|
||||
|
||||
Removes a D:line (IP ban checked directly after accepting connection).
|
||||
|
||||
The mask must be an IP address or CIDR mask.
|
||||
|
||||
UNKLINE
|
||||
1.
|
||||
encap only
|
||||
source: user
|
||||
parameters: user mask, host mask
|
||||
|
||||
Removes a K:line (ban on user@host).
|
||||
|
||||
2.
|
||||
capab: UNKLN
|
||||
source: user
|
||||
parameters: target server mask, user mask, host mask
|
||||
|
||||
As form 1, deprecated.
|
||||
|
||||
UNRESV
|
||||
1.
|
||||
encap only
|
||||
source: user
|
||||
parameters: mask
|
||||
|
||||
Removes a RESV.
|
||||
|
||||
2.
|
||||
capab: CLUSTER
|
||||
source: user
|
||||
parameters: target server mask, mask
|
||||
|
||||
As form 1, deprecated.
|
||||
|
||||
UNXLINE
|
||||
1.
|
||||
encap only
|
||||
source: user
|
||||
parameters: mask
|
||||
|
||||
Removes an X:line (ban on realname).
|
||||
|
||||
2.
|
||||
capab: CLUSTER
|
||||
source: user
|
||||
parameters: target server mask, mask
|
||||
|
||||
As form 1, deprecated.
|
||||
|
||||
USERS
|
||||
source: user
|
||||
parameters: hunted
|
||||
|
||||
Remote USERS request.
|
||||
|
||||
VERSION
|
||||
source: any
|
||||
parameters: hunted
|
||||
|
||||
Remote VERSION request.
|
||||
|
||||
WALLOPS
|
||||
1.
|
||||
source: user
|
||||
parameters: message
|
||||
propagation: broadcast
|
||||
|
||||
In efnet TS6, sends a message to operators (with umode +z set). This is a
|
||||
deprecated equivalent to OPERWALL.
|
||||
|
||||
In charybdis TS6, sends a message to local users with umode +w set (or possibly
|
||||
another indication that WALLOPS messages should be sent), including non-opers.
|
||||
|
||||
2.
|
||||
source: server
|
||||
parameters: message
|
||||
propagation: broadcast
|
||||
|
||||
Sends a message to local users with umode +w set (or possibly another
|
||||
indication that WALLOPS messages should be sent).
|
||||
|
||||
In efnet TS6 this may include non-opers, in charybdis TS6 this may only be
|
||||
sent to opers.
|
||||
|
||||
WHOIS
|
||||
source: user
|
||||
parameters: hunted, target nick
|
||||
|
||||
Remote WHOIS request.
|
||||
|
||||
XLINE
|
||||
1.
|
||||
encap only
|
||||
source: user
|
||||
parameters: duration, mask, reason
|
||||
|
||||
Sets an X:line (ban on realname).
|
||||
|
||||
2.
|
||||
capab: CLUSTER
|
||||
source: user
|
||||
parameters: target server mask, duration, mask, reason
|
||||
|
||||
As form 1, deprecated.
|
||||
|
||||
Local only commands (charybdis 3.1):
|
||||
|
||||
ACCEPT
|
||||
AUTHENTICATE
|
||||
CAP
|
||||
CHALLENGE
|
||||
CHANTRACE
|
||||
CLOSE
|
||||
CNOTICE
|
||||
CPRIVMSG
|
||||
DIE
|
||||
GET
|
||||
HELP
|
||||
ISON
|
||||
LIST
|
||||
LOCOPS
|
||||
MAP
|
||||
MASKTRACE
|
||||
MODLIST
|
||||
MODLOAD
|
||||
MODRELOAD
|
||||
MODRESTART
|
||||
MODUNLOAD
|
||||
MONITOR
|
||||
NAMES
|
||||
OPER
|
||||
POST
|
||||
PUT
|
||||
RESTART
|
||||
SCAN
|
||||
SET
|
||||
TESTGECOS
|
||||
TESTLINE
|
||||
TESTMASK
|
||||
UHELP
|
||||
UNREJECT
|
||||
USER
|
||||
USERHOST
|
||||
WEBIRC
|
||||
WHO
|
||||
WHOWAS
|
Loading…
Reference in a new issue