Every command that has some kind of ID as argument (for example
<Client ID>) are actually ID Payloads, defined in [SILC2] that includes
the type of the ID, length of the ID and the actual ID data. This
-way variable length ID's can be sent as arguments.
+way variable length ID's can be sent as arguments. Also note that
+all passphrases that may be sent in commands MUST be UTF-8 [RFC2279]
+encoded.
.ti 0
1 SILC_COMMAND_WHOIS
- Max Arguments: 3328
+ Max Arguments: 256
Arguments: (1) [<nickname>[@<server>]] (2) [<count>]
(3) [<Client ID>] (n) [...]
3 SILC_COMMAND_IDENTIFY
- Max Arguments: 3328
+ Max Arguments: 256
Arguments: (1) [<nickname>[@<server>]] (2) [<server name>]
(3) [<channel name>] (4) [<count>]
(5) [<ID Payload>] (n) [...]
(3) [<invite list>]
This command replies with the invite list of the channel if it
- exists. The <invite list> may be omitted if the list was not
- altered.
+ exists.
Status messages:
SILC_STATUS_ERR_NO_SERVER_ID
- 11 SILC_COMMAND_CONNECT
-
- Max Arguments: 2
- Arguments: (1) <remote server/router> (2) [<port>]
-
- This command is used by operators to force a server to try to
- establish a new connection to remote server or router. The
- Operator MUST specify the server/router to be connected by
- setting <remote server> argument. The port is 32 bit MSB value.
-
- Reply messages to the command:
+ 11 SILC_COMMAND_STATS
Max Arguments: 1
- Arguments: (1) <Status Payload>
+ Arguments: (1) <Server ID>
- This command replies only with Status Payload.
+ This command is used to fetch various statistical information
+ from the server indicated by <Server ID>, which is the ID of
+ server where sender is connected to. Server receiving this
+ command MAY also send this further to its router for fetching
+ other cell and network wide statistics to accompany the reply.
+ Reply messages to the command:
+ Max Arguments: 3
+ Arguments: (1) <Status Payload> (2) <Server ID>
+ (3) [<statistics structure>]
+
+ This command replies with the Server ID of the server and
+ optional statistics structure which includes 32 bit MSB first
+ ordered integer values to represent various statistical
+ information. The structure is as follows:
+
+ starttime - time when server was started
+ uptime - uptime of the server
+ my clients - number of locally connected clients
+ my channels - number of locally created channels
+ my server ops - number of local server operators
+ my router ops - number of local router operators
+ cell clients - number of clients in local cell
+ cell channels - number of channels in local cell
+ cell servers - number of servers in local cell
+ clients - number of client in SILC network
+ channels - number of channels in SILC network
+ servers - number of servers in SILC network
+ routers - number of routers in SILC network
+ server ops - number of server operators in SILC network
+ router ops - number of router operators in SILC network
+
+ If some value is unknown it is set to zero (0) value. The
+ "starttime" is the start time of the server, and is seconds
+ since Epoch (POSIX.1). The "uptime" is time difference of
+ current time and "starttime" in the server, and is seconds
+ in value.
Status messages:
SILC_STATUS_OK
- SILC_STATUS_ERR_WILDCARDS
SILC_STATUS_ERR_NOT_REGISTERED
SILC_STATUS_ERR_NOT_ENOUGH_PARAMS
SILC_STATUS_ERR_TOO_MANY_PARAMS
- SILC_STATUS_ERR_NO_SERVER_PRIV
- SILC_STATUS_ERR_NO_ROUTER_PRIV
+ SILC_STATUS_ERR_NO_SUCH_SERVER_ID
+ SILC_STATUS_ERR_NO_SUCH_SERVER
+ SILC_STATUS_ERR_NO_SERVER_ID
12 SILC_COMMAND_PING
privileges the same way as the client had given the
SILC_COMMAND_CUMODE command to gain founder privileges. The
client is still able to join the channel even if the founder
- privileges could not be gained. If the channel is invite only
- channel, the client is able to join the channel only if it
- was invited to the channel or was able to gain the founder
- privileges.
+ privileges could not be gained.
The server MUST check whether the user is allowed to join to
the requested channel. Various modes set to the channel affect
are:
o The user MUST be invited to the channel if the channel
- is invite-only channel, or MUST provide correct
- <founder auth> payload and gain founder privileges, and
- bypass the invite-only mode.
+ is invite-only channel.
o The Client ID/nickname/username/host name MUST NOT match
any active bans.
o The user count limit, if set, MUST NOT be reached.
+ If the client provided correct <founder auth> payload it can
+ override these conditions, except the condition for the passphrase.
+ The correct passphrase MUST be provided even if <founder auth>
+ payload is provided.
+
Reply messages to the command:
Max Arguments: 14
The following client modes are defined:
- 0x0000 SILC_UMODE_NONE
+ 0x00000000 SILC_UMODE_NONE
No specific mode for client. This is the initial
setting when new client is created. The client is
normal client now.
- 0x0001 SILC_UMODE_SERVER_OPERATOR
+ 0x00000001 SILC_UMODE_SERVER_OPERATOR
Marks the user as server operator. Client MUST NOT
set this mode itself. Server sets this mode to the
MAY unset the mode itself.
- 0x0002 SILC_UMODE_ROUTER_OPERATOR
+ 0x00000002 SILC_UMODE_ROUTER_OPERATOR
Marks the user as router (SILC) operator. Client
MUST NOT this mode itself. Router sets this mode to
MAY unset the mode itself.
- 0x0004 SILC_UMODE_GONE
+ 0x00000004 SILC_UMODE_GONE
Marks that the user is not currently present in the
SILC Network. Client MAY set and unset this mode.
The following channel modes are defined:
- 0x0000 SILC_CMODE_NONE
+ 0x00000000 SILC_CMODE_NONE
No specific mode on channel. This is the default when
channel is created. This means that channel is just plain
normal channel.
- 0x0001 SILC_CMODE_PRIVATE
+ 0x00000001 SILC_CMODE_PRIVATE
Channel is private channel. Private channels are shown
in the channel list listed with SILC_COMMAND_LIST command
to set/unset this mode.
- 0x0002 SILC_CMODE_SECRET
+ 0x00000002 SILC_CMODE_SECRET
Channel is secret channel. Secret channels are not shown
in the list listed with SILC_COMMAND_LIST command. Secret
to set/unset this mode.
- 0x0004 SILC_CMODE_PRIVKEY
+ 0x00000004 SILC_CMODE_PRIVKEY
Channel uses private channel key to protect the traffic
on the channel. When this mode is set the client will be
to set/unset this mode.
- 0x0008 SILC_CMODE_INVITE
+ 0x00000008 SILC_CMODE_INVITE
Channel is invite only channel. Client may join to this
channel only if it is invited to the channel. Channel
to set/unset this mode.
- 0x0010 SILC_CMODE_TOPIC
+ 0x00000010 SILC_CMODE_TOPIC
The topic of the channel may only be set by client that
is channel founder or channel operator. Normal clients
to set/unset this mode.
- 0x0020 SILC_CMODE_ULIMIT
+ 0x00000020 SILC_CMODE_ULIMIT
User limit has been set to the channel. New clients
may not join to the channel when the limit set is
to set/unset this mode.
- 0x0040 SILC_CMODE_PASSPHRASE
+ 0x00000040 SILC_CMODE_PASSPHRASE
Passphrase has been set to the channel. Client may
join to the channel only if it is able to provide the
to set/unset this mode.
- 0x0080 SILC_CMODE_CIPHER
+ 0x00000080 SILC_CMODE_CIPHER
Sets specific cipher to be used to protect channel
traffic. The <cipher> argument is the requested cipher.
to set/unset this mode.
- 0x0100 SILC_CMODE_HMAC
+ 0x00000100 SILC_CMODE_HMAC
Sets specific hmac to be used to compute the MACs of the
channel message. The <hmac> argument is the requested hmac.
to set/unset this mode.
- 0x0200 SILC_CMODE_FOUNDER_AUTH
+ 0x00000200 SILC_CMODE_FOUNDER_AUTH
Channel founder may set this mode to be able to regain
channel founder rights even if the client leaves the
Typical implementation would use [+|-]f on user interface
to set/unset this mode.
+
+ 0x00000400 SILC_CMODE_SILENCE_USERS
+
+ Channel founder may set this mode to silence normal users
+ on the channel. Users with operator privileges are not
+ affected by this mode. Messages sent by normal users
+ are dropped by servers when this mode is set. This mode
+ can be used to moderate the channel. Only channel founder
+ may set/unset this mode.
+
+
+ 0x00000800 SILC_CMODE_SILENCE_OPERS
+
+ Channel founder may set this mode to silence operators
+ on the channel. When used with SILC_CMODE_SILENCE_USERS
+ mode this can be used to set the channel in state where only
+ the founder of the channel may send messages to the channel.
+ Messages sent by operators are dropped by servers when this
+ mode is set. Only channel founder may set/unset this mode.
+
+
To make the mode system work, client MUST keep the channel mode
mask locally so that the mode setting and unsetting would work
without problems. The client receives the initial channel mode
SILC_STATUS_ERR_BAD_CHANNEL_ID
SILC_STATUS_ERR_NO_CHANNEL_ID
SILC_STATUS_ERR_NO_CHANNEL_PRIV
+ SILC_STATUS_ERR_NO_CHANNEL_FOPRIV
SILC_STATUS_ERR_UNKNOWN_MODE
SILC_STATUS_ERR_NO_SUCH_CLIENT_ID
SILC_STATUS_ERR_AUTH_FAILED
The following channel modes are defined:
- 0x0000 SILC_CUMODE_NONE
+ 0x00000000 SILC_CUMODE_NONE
No specific mode. This is the normal situation for client.
Also, this is the mode set when removing all modes from
the target client.
- 0x0001 SILC_CUMODE_FOUNDER
+ 0x00000001 SILC_CUMODE_FOUNDER
The client is channel founder of the channel. Usually this
mode is set only by the server when the channel was created.
mode was set. The client MAY remove this mode at any time.
- 0x0002 SILC_CUMODE_OPERATOR
+ 0x00000002 SILC_CUMODE_OPERATOR
Sets channel operator privileges on the channel for a
client on the channel. Channel founder and channel operator
SILC_STATUS_ERR_BAD_CHANNEL_ID
SILC_STATUS_ERR_NO_CHANNEL_ID
SILC_STATUS_ERR_NO_CHANNEL_PRIV
+ SILC_STATUS_ERR_NO_CHANNEL_FOPRIV
SILC_STATUS_ERR_UNKNOWN_MODE
SILC_STATUS_ERR_NO_SUCH_CLIENT_ID
SILC_STATUS_ERR_AUTH_FAILED
SILC_STATUS_ERR_NO_CHANNEL_PRIV
- 21 SILC_COMMAND_CLOSE
-
- Max Arguments: 2
- Arguments: (1) <remote server/router> (2) [<port>]
-
- This command is used only by operator to close connection to a
- remote site.
-
- Reply messages to the command:
+ 21 <deprecated command>
- Max Arguments: 1
- Arguments: (1) <Status Payload>
- This command replies only with Status Payload.
-
- Status messages:
-
- SILC_STATUS_OK
- SILC_STATUS_ERR_NOT_ENOUGH_PARAMS
- SILC_STATUS_ERR_TOO_MANY_PARAMS
- SILC_STATUS_ERR_NOT_REGISTERED
- SILC_STATUS_ERR_NO_SUCH_SERVER
- SILC_STATUS_ERR_NO_SERVER_PRIV
- SILC_STATUS_ERR_NO_SUCH_SERVER_ID
-
-
- 22 SILC_COMMAND_SHUTDOWN
-
- Max Arguments: 0
- Arguments: None
-
- This command is used only by operator to shutdown the server.
- All connections to the server will be closed and the server is
- shutdown.
-
- Reply messages to the command:
-
- Max Arguments: 1
- Arguments: (1) <Status Payload>
-
- This command replies only with Status Payload.
-
- Status messages:
-
- SILC_STATUS_OK
- SILC_STATUS_ERR_NOT_REGISTERED
- SILC_STATUS_ERR_NO_SERVER_PRIV
+ 22 <deprecated command>
23 SILC_COMMAND_SILCOPER
Reply messages to the command:
- Max Arguments: 1
- Arguments: (1) <Status Payload>
+ Max Arguments: 2
+ Arguments: (1) <Status Payload> (2) <Channel ID>
- This command replies only with Status Payload.
+ The <Channel ID> is the ID of left channel.
Status messages:
[RFC2119] Bradner, S., "Key Words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, March 1997.
-
-
+[RFC2279] Yergeau, F., "UTF-8, a transformation format of ISO
+ 10646", RFC 2279, January 1998.
70100 Kuopio
Finland
-EMail: priikone@silcnet.org
+EMail: priikone@iki.fi
This Internet-Draft expires XXX