o Add KICKBAN local command. Kicks and bans the specified client.
+ o Add local commands to list the current server and client public keys
+ that the user has. And a local command to dump the contents of the
+ public key to the screen. Something like LISTKEYS, SHOWKEY...
+
TODO/bugs In SILC Client Library
================================
interface separately or it could just remove the old client unless
it is on some channels.
- o Add local commands to list the current server and client public keys
- that the user has. And a local command to dump the contents of the
- public key to the screen.
-
o Add client library parameters or options that handle what kind of
messages the library should print out (using `say' client operation,
for example) and what is left for the application to print. The
@SYNTAX:ban@
-Format: <channel> [+|-[<nickname>[@<server>[!<username>[@hostname>]]]]]
-
-This command is used to manage the ban list of the channel. You must be
-channel operator to be able to use this command. Wildcards may be used
-with this command.
+This command is used to manage the ban list of the channel.
+You must be channel operator to be able to use this command.
+Wildcards may be used with this command.
Examples:
/BAN #mychannel +foobar!mr.bar@foo.bar.com
- Adds nickname `foobar' with username `mr.bar' from host `foo.bar.com'
- on #mychannel to the ban list.
+ Adds nickname `foobar' with username `mr.bar' from host
+ `foo.bar.com' on #mychannel to the ban list.
/BAN * +looser
Adds nickname `looser' to the ban list on current channel.
*.foobar.com hosts to the ban list on current channel.
/BAN * -looser
- Removes the nickname `looser' from the ban list on current channel.
+ Removes the nickname `looser' from the ban list on current
+ channel.
/BAN *
Shows the ban list of the current channel.
@SYNTAX:cmode@
-Format: <channel> +|-<modes> [{ <arguments>}]
-
This command is used to manage the modes of the channel. Most
of the modes require special privileges, such as channel operator
or channel founder privileges to work. The mode is added by
@SYNTAX:cumode@
-Format: <channel> +|-<modes> <nickname>[@<server>] [-pubkey|<passwd>]
-
This command is used to manage the client's modes on the channel.
Most of the modes require that the client which changes some
client's mode must be channel founder or channel operator. The
@SYNTAX:getkey@
-Format: <nickname>
-
This command is used to fetch remote client's public key.
The public key is fetched from the server the client is
connected to. This way the public key might have been
@SYNTAX:invite@
-Formats: <channel> [<nickname>[@server>]
- <channel> [+|-[<nickname>[@<server>[!<username>[@hostname>]]]]]
-
This command is used to invite an client to a channel and to manage
the channel's invite list. Wildcards may be used with this command.
hosts to the invite list of the current channel.
/INVITE * -joe
- Removes nickname `joe' from the invite list of the current channel.
+ Removes nickname `joe' from the invite list of the current
+ channel.
See also: CMODE
@SYNTAX:key@
-Format: msg|channel <nickname|channel>
- set|unset|list|agreement|negotiate [<arguments>]
-
This command is used to set and unset private keys for
channels, set and unset private keys for private messages
with remote clients and to send key agreement requests and
private keys for channels, as it is not convenient for that
purpose.
-Types:
+Types:
- msg The command is performed for private messages
+ MSG The command is performed for private messages
affecting the <nickname>.
- channel The command is performed for channel affecting
+ CHANNEL The command is performed for channel affecting
the <channel>.
Commands:
set [<key> [<cipher>] [<hmac>]]
- Set the key into use. If the <key> is provided it
- is used as the key material. If the <key> is not
- provided the negotiated key material is used. If
- the negotiation has not been performed this command
- has no effect.
+ Set the key into use. If the <key> is provided it
+ is used as the key material. If the <key> is not
+ provided the negotiated key material is used. If
+ the negotiation has not been performed this command
+ has no effect.
- If the type is `msg' and the <key> is `*' then
- random key will be generated automatically.
+ If the type is `msg' and the <key> is `*' then
+ random key will be generated automatically.
- The <cipher> may be set for both private message
- and channel private keys and the <hmac> may be set
- only to the channel private keys.
+ The <cipher> may be set for both private message
+ and channel private keys and the <hmac> may be set
+ only to the channel private keys.
unset [<number>]
- Unset the key. The private key is not used after
- this command. The key must be set again or the key
- material must be re-negotiated to be able to use
- the private keys again.
+ Unset the key. The private key is not used after
+ this command. The key must be set again or the key
+ material must be re-negotiated to be able to use
+ the private keys again.
- The channel may have several private keys set. The
- <number> can be used to indicate what key is being
- unset. If it is not provided all keys are removed.
+ The channel may have several private keys set. The
+ <number> can be used to indicate what key is being
+ unset. If it is not provided all keys are removed.
- list List all private keys that has been set.
+ list
- If the type is `msg' and the <nickname> is ´*' then
- all private message keys that you've set will be
- listed.
+ List all private keys that has been set. If the
+ type is `msg' and the <nickname> is ´*' then
+ all private message keys that you've set will be
+ listed.
agreement [<hostname> [<port>]]
- Send key agreement request to remote client. If
- the <hostname> is provided it is sent in the request.
- The receiver may use the hostname to start the
- key agreement. If the <port> is also provided your
- key agreement protocol server is bound to that
- port. Note that it cannot be privileged port (<1023).
- If the <hostname> and <port> is not provided then
- the receiver will never initiate the key agreement.
- In this case you may start the key agreement after
- receiving the reply to the request, by giving the
- negotiate command.
-
- This command may be used to send reply to the
- remote client. When receiving empty key agreement
- you can reply to the sender with the hostname and
- port of your key agreement server with this command.
+ Send key agreement request to remote client. If
+ the <hostname> is provided it is sent in the request.
+ The receiver may use the hostname to start the
+ key agreement. If the <port> is also provided your
+ key agreement protocol server is bound to that
+ port. Note that it cannot be privileged port (<1023).
+ If the <hostname> and <port> is not provided then
+ the receiver will never initiate the key agreement.
+ In this case you may start the key agreement after
+ receiving the reply to the request, by giving the
+ negotiate command.
+
+ This command may be used to send reply to the
+ remote client. When receiving empty key agreement
+ you can reply to the sender with the hostname and
+ port of your key agreement server with this command.
negotiate [<hostname> [<port>]]
- This may be called to start the key agreement with
- <nickname>. This command has effect only if the
- <nickname> has replied to your key agreement request.
- You will see a notify on the screen when the reply
- arrives. The <hostname> and <port> is the hostname
- and port of the remote client's key agreement
- server.
+ This may be called to start the key agreement with
+ <nickname>. This command has effect only if the
+ <nickname> has replied to your key agreement request.
+ You will see a notify on the screen when the reply
+ arrives. The <hostname> and <port> is the hostname
+ and port of the remote client's key agreement
+ server.
@SYNTAX:kick@
-Format: <channel> <nickname>[@<server>] [<comment>]
-
-This command kicks client from channel. You have to be at least
-channel operator to be able to kick client from channel. Note:
-you cannot kick channel founder even if you are channel operator.
+This command kicks client from channel. You have to be
+at least channel operator to be able to kick client from
+channel. Note: you cannot kick channel founder even if
+you are channel operator.
The default alias for /KICK is /K.
@SYNTAX:kill@
-Format: <nickname> [<comment>]
-
-This is operator command. KILL is used to forcibly remove a client
-from the network. It works similarly to KICK expect that the client
-is removed from the entire network. In general, KILL is useful only
-as a warning tool for abusive users and it has only temporary effects.
+This is operator command. KILL is used to forcibly remove
+a client from the network. It works similarly to KICK expect
+that the client is removed from the entire network. In general,
+KILL is useful only as a warning tool for abusive users and
+it has only temporary effects.
See also: OPER, SILCOPER
@SYNTAX:layout@
Saves the current window layout to configuration (yes, you'll still
-need to use /SAVE to save the configuration to file). Next time you run
-irssi, all the channels and queries are exactly in the same windows
-where they were when you called /LAYOUT SAVE.
+need to use /SAVE to save the configuration to file). Next time you
+run irssi, all the channels and queries are exactly in the same
+windows where they were when you called /LAYOUT SAVE.
Channels aren't actually joined in those windows immediately, they're
just marked "next time you join to '#channel' in server that has tag
@SYNTAX:load@
-Load a plugin. If full path isn't given, irssi searches the plugin from
-directories:
+Load a plugin. If full path isn't given, irssi searches the
+plugin from directories:
~/.irssi/modules/
<install dir, /usr/local or /usr maybe>/lib/irssi/modules/
@SYNTAX:me@
-Sends an ACTION channel message to the current channel. For example:
-/ME sits back.
+Sends an ACTION channel message to the current channel.
+For example: /ME sits back.
See also: ACTION
-voices: show voiced people in list
-normal: show rest of the people in list
-Shows the names (nicks) in the specified channels. /NAMES ** shows all
-nicks in all channels, you probably don't want to do this.
+Shows the names (nicks) in the specified channels. /NAMES **
+shows all nicks in all channels, you probably don't want
+to do this.
Examples:
@SYNTAX:notice@
-Sends a notice to the nick or the channel. Usually notices are
-used in bots and scripts for different kinds of replies.
+Sends a notice to the nick or the channel. Usually notices
+are used in bots and scripts for different kinds of replies.
See also: ACTION
@SYNTAX:oper@
-Format: <username> [<public key>]
-
-Gives you server operator priviledges if the correct username and
-passphrase are given. User will be prompted for the passphrase
-if the <public key> is not provided.
+Gives you server operator priviledges if the correct
+username and passphrase are given. User will be prompted
+for the passphrase if the <public key> is not provided.
See also: KILL, SCONNECT, CLOSE, SILCOPER
@SYNTAX:rmrejoins@
-Removes the pending rejoins from the channel rejoin list in active
-server. Channels are added to rejoin list when join failed because of
-netsplits in server.
+Removes the pending rejoins from the channel rejoin list in
+active server. Channels are added to rejoin list when join
+failed because of netsplits in server.
See also: JOIN
@SYNTAX:silcoper@
-Format: <username> [<public key>]
-
-Gives you router operator priviledges if thecorrect username and
-passphrase are given. User will be prompted for the passphrase
-if the <public key> is not provided.
+Gives you router operator priviledges if thecorrect
+username and passphrase are given. User will be prompted
+for the passphrase if the <public key> is not provided.
See also: KILL, SCONNECT, CLOSE, OPER
@SYNTAX:topic@
-Format: <channel> [<topic>]
-
-Shows or/and changes the topic of the current or specified
-channel.
+Shows or/and changes the topic of the current or
+specified channel.
+++ /dev/null
-
-@SYNTAX:ts@
-
-Shows topics of all channels you're on.
-
-See also: CHANNEL, TOPIC
-
@SYNTAX:umode@
-Format: +|-<modes>
-
This command is used to manage client's modes in the network.
-Note that some of the modes the client cannot set itself. The
-mode is added by adding + before the option(s) and removed by
-adding - before the option(s). The following channel user
+Note that some of the modes the client cannot set itself.
+The mode is added by adding + before the option(s) and removed
+by adding - before the option(s). The following channel user
modes are available:
a Unset all modes
@SYNTAX:unload@
-Unload a running plugin. List of running plugins can be shown with
-/LOAD.
+Unload a running plugin. List of running plugins can
+be shown with /LOAD.
See also: LOAD
--- /dev/null
+
+@SYNTAX:users@
+
+Shows users of the specified channel. You must
+already be on the channel.
+
+Alias WHO is by default USERS * command.
+
+See also: WHOIS, WHOWAS
+
+
@SYNTAX:whois@
-Format: <nickname>[@<server>] [<count>
-
Shows whois information of the specified client.
By default, this is aliased to /WI.
@SYNTAX:whowas@
-Format: <nickname>[@<server>] [<count>]
+This command is similar to WHOIS, except it returns
+information about nicknames that were recently in use.
+Like WHOIS, it shows the nickname, address, real name,
+and server. It may also return multiple entries if the
+nickname has been used recently by several people. These
+multiples may be limited by specifying a count to show.
-This command is similar to WHOIS, except it returns information
-about nicknames that were recently in use. Like WHOIS, it shows
-the nickname, address, real name, and server. It may also return
-multiple entries if the nickname has been used recently by several
-people. These multiples may be limited by specifying a count to show.
-
-WHOWAS will work regardless of whether the queried nick is in use.
-If no arguments are given, the client's current nickname is used.
+WHOWAS will work regardless of whether the queried nick
+is in use. If no arguments are given, the client's current
+nickname is used.
See also: WHOIS
return ret;
}
+/* Syntaxes of all SILC commands for HELP files (the help file generation
+ will snoop these from here). */
+
+/* SYNTAX: BAN <channel> [+|-[<nickname>[@<server>[!<username>[@hostname>]]]]] */
+/* SYNTAX: CMODE <channel> +|-<modes> [{ <arguments>}] */
+/* SYNTAX: CUMODE <channel> +|-<modes> <nickname>[@<server>] [-pubkey|<passwd>] */
+/* SYNTAX: GETKEY <nickname> */
+/* SYNTAX: INVITE <channel> [<nickname>[@server>] */
+/* SYNTAX: INVITE <channel> [+|-[<nickname>[@<server>[!<username>[@hostname>]]]]] */
+/* SYNTAX: KEY MSG <nickname> set|unset|list|agreement|negotiate [<arguments>] */
+/* SYNTAX: KEY CHANNEL <channel> set|unset|list|agreement|negotiate [<arguments>] */
+/* SYNTAX: KICK <channel> <nickname>[@<server>] [<comment>] */
+/* SYNTAX: KILL <channel> <nickname>[@<server>] [<comment>] */
+/* SYNTAX: OPER <username> [<public key>] */
+/* SYNTAX: SILCOPER <username> [<public key>] */
+/* SYNTAX: TOPIC <channel> [<topic> */
+/* SYNTAX: UMODE +|-<modes> */
+/* SYNTAX: WHOIS <nickname>[@<server>] [<count>] */
+/* SYNTAX: WHOWAS <nickname>[@<server>] [<count>] */
+/* SYNTAX: CLOSE <server> [<port>] */
+/* SYNTAX: SHUTDOWN */
+/* SYNTAX: MOTD [<server>] */
+/* SYNTAX: LIST [<channel>] */
+/* SYNTAX: ME <message> */
+/* SYNTAX: ACTION <channel> <message> */
+/* SYNTAX: AWAY [<message>] */
+/* SYNTAX: INFO [<server>] */
+/* SYNTAX: NICK <nickname> */
+/* SYNTAX: NOTICE <message> */
+/* SYNTAX: PART [<channel>] */
+/* SYNTAX: PING [<server>] */
+/* SYNTAX: SCONNECT <server> [<port>] */
+/* SYNTAX: USERS <channel> */
+
void silc_command_exec(SILC_SERVER_REC *server,
const char *command, const char *args)
{