Sophie

Sophie

distrib > Mandriva > 2009.1 > x86_64 > media > main-testing > by-pkgid > ab7ad4fe88fbdcf4125a767f7f3c4e92 > files > 128

silc-toolkit-devel-1.1.9-1.2mdv2009.1.x86_64.rpm


<html>
<head>
 <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-a" />
 <meta http-equiv="Content-Language" content="en" />
 <meta name="description" content="SILC Secure Internet Live Conferencing" />
 <meta name="keywords" content="SILC, secure, chat, protocol, cipher, encrypt, SKE" />
 <meta content="INDEX, FOLLOW" name="ROBOTS" />
 <style type="text/css">
  <!--
  body { color: #000000; background: #f0f0f0; font-family: Helvetica, Arial, Sans-serif; }
  a:link { text-decoration: none; color: #2f488f; }
  a:visited { text-decoration: none;color: #2f488f; }
  a:active { text-decoration: none; color: #2f488f; }
  -->
 </style>
</head>

<body topmargin="0" leftmargin="0" marginheight="0" marginwidth="0">

<table border="0" cellspacing="0" cellpadding="6" width="100%">
 <tr valign="top" bgcolor="#dddddd">
  <td><small>Copyright &copy; 2001 - 2007 SILC Project<br />
    <a href="http://silcnet.org">SILC Project Website</a></small></td>
  <td align="right"><small>
   <a href="index.html">SILC Toolkit Reference Manual</a><br />
   <a href="toolkit_index.html">Index</a></small></td>
   </small></td>
 </tr>
</table>
<table border="0" cellspacing="0" cellpadding="0" width="100%">
<tr bgcolor="#444444"><td><img src="space.gif" width="1" height="1"border="0" alt="" ></td></tr>
</table>

<table cellpadding="0" cellspacing="0" border="0">
 <tr valign="top">

  <td width="200" bgcolor="#f0f0f0">
   <img src="space.gif" width="1" height="1" border="0" alt="">
   <table width="100%" cellpadding="2" cellspacing="2" border="0">
    <tr valign="top"><td>
<br />
<small>
<!-- Template file for the big index that appears in the Toolkit reference
manual on the left side.  With this file it is possible to add other than
automatically generated links to that list. -->

<a href="index.html"><img src="box.gif" border="0" alt="">SILC Toolkit Reference Manual</a><br />


<a href=silcvcardlib.html><img src=box.gif border=0 alt=>SILC VCard Library</a><br />
&nbsp;&nbsp;&nbsp; <a href=silcvcard.html><img src=box2.gif border=0 alt=>SILC VCard Interface</a><br />
<a href=silccryptlib.html><img src=box.gif border=0 alt=>SILC Crypto Library</a><br />
&nbsp;&nbsp;&nbsp; <a href=silcrng_intro.html><img src=box2.gif border=0 alt=>Introduction to SILC RNG</a><br />
&nbsp;&nbsp;&nbsp; <a href=silcrng.html><img src=box2.gif border=0 alt=>SILC RNG Interface</a><br />
&nbsp;&nbsp;&nbsp; <a href=silccipher.html><img src=box2.gif border=0 alt=>SILC Cipher API</a><br />
&nbsp;&nbsp;&nbsp; <a href=silcpkcs.html><img src=box2.gif border=0 alt=>SILC PKCS API</a><br />
&nbsp;&nbsp;&nbsp; <a href=silcpk.html><img src=box2.gif border=0 alt=>SILC Public Key API</a><br />
&nbsp;&nbsp;&nbsp; <a href=silcpkcs1.html><img src=box2.gif border=0 alt=>SILC PKCS #1 API</a><br />
&nbsp;&nbsp;&nbsp; <a href=silchash.html><img src=box2.gif border=0 alt=>SILC Hash Interface</a><br />
&nbsp;&nbsp;&nbsp; <a href=silchmac.html><img src=box2.gif border=0 alt=>SILC HMAC Interface</a><br />
<a href=silcclientlib.html><img src=box.gif border=0 alt=>SILC Client Library</a><br />
&nbsp;&nbsp;&nbsp; <a href=silcclient_using.html><img src=box2.gif border=0 alt=>Using SILC Client Library Tutorial</a><br />
&nbsp;&nbsp;&nbsp; <a href=command_reply_args.html><img src=box2.gif border=0 alt=>Arguments for <b>command_reply</b> Client Operation</a><br />
&nbsp;&nbsp;&nbsp; <a href=silcstatus_args.html><img src=box2.gif border=0 alt=>SilcStatus Error Arguments in <b>command_reply</b> Client Operation</a><br />
&nbsp;&nbsp;&nbsp; <a href=notifyargs.html><img src=box2.gif border=0 alt=>Arguments for <b>notify</b> Client Operation</a><br />
&nbsp;&nbsp;&nbsp; <a href=silcclient_unicode.html><img src=box2.gif border=0 alt=>Unicode and UTF-8 Strings in Client Library</a><br />
&nbsp;&nbsp;&nbsp; <a href=silcclient.html><img src=box2.gif border=0 alt=>Client Library Interface Reference</a><br />
&nbsp;&nbsp;&nbsp; <a href=silcclient_entry.html><img src=box2.gif border=0 alt=>Client Entry Interface Reference</a><br />
<a href=silcmathlib.html><img src=box.gif border=0 alt=>SILC Math Library</a><br />
&nbsp;&nbsp;&nbsp; <a href=silcmp.html><img src=box2.gif border=0 alt=>SILC MP Interface</a><br />
&nbsp;&nbsp;&nbsp; <a href=silcmath.html><img src=box2.gif border=0 alt=>SILC Math Interface</a><br />
<a href=silcaputillib.html><img src=box.gif border=0 alt=>SILC Application Utility Library</a><br />
&nbsp;&nbsp;&nbsp; <a href=silcapputil.html><img src=box2.gif border=0 alt=>SILC Application Utilities</a><br />
&nbsp;&nbsp;&nbsp; <a href=silcidcache.html><img src=box2.gif border=0 alt=>SILC ID Cache Interface</a><br />
<a href=silcskrlib.html><img src=box.gif border=0 alt=>SILC Key Repository Library</a><br />
&nbsp;&nbsp;&nbsp; <a href=silcskr.html><img src=box2.gif border=0 alt=>SILC SKR Interface</a><br />
<a href=silcasn1lib.html><img src=box.gif border=0 alt=>SILC ASN.1 Library</a><br />
&nbsp;&nbsp;&nbsp; <a href=silcasn1.html><img src=box2.gif border=0 alt=>SILC ASN.1 Interface</a><br />
&nbsp;&nbsp;&nbsp; <a href=silcber.html><img src=box2.gif border=0 alt=>SILC BER interface</a><br />
<a href=silcskelib.html><img src=box.gif border=0 alt=>SILC Key Exchange Library</a><br />
&nbsp;&nbsp;&nbsp; <a href=silcske.html><img src=box2.gif border=0 alt=>SILC SKE Interface</a><br />
&nbsp;&nbsp;&nbsp; <a href=silcconnauth.html><img src=box2.gif border=0 alt=>SILC Connection Authentication Interface</a><br />
<a href=silcsftplib.html><img src=box.gif border=0 alt=>SILC SFTP Library</a><br />
&nbsp;&nbsp;&nbsp; <a href=silcsftp.html><img src=box2.gif border=0 alt=>SILC SFTP Interface</a><br />
&nbsp;&nbsp;&nbsp; <a href=silcsftp_fs.html><img src=box2.gif border=0 alt=>SFTP Filesystems Interface</a><br />
<a href=silccorelib.html><img src=box.gif border=0 alt=>SILC Core Library</a><br />
&nbsp;&nbsp;&nbsp; <a href=silcauth.html><img src=box2.gif border=0 alt=>SILC Authentication Interface</a><br />
&nbsp;&nbsp;&nbsp; <a href=silcmessage.html><img src=box2.gif border=0 alt=>SILC Message Interface</a><br />
&nbsp;&nbsp;&nbsp; <a href=silcchannel.html><img src=box2.gif border=0 alt=>SILC Channel Interface</a><br />
&nbsp;&nbsp;&nbsp; <a href=silccommand.html><img src=box2.gif border=0 alt=>SILC Command Interface</a><br />
&nbsp;&nbsp;&nbsp; <a href=silcnotify.html><img src=box2.gif border=0 alt=>SILC Notify Interface</a><br />
&nbsp;&nbsp;&nbsp; <a href=silcstatus.html><img src=box2.gif border=0 alt=>SILC Status Types</a><br />
&nbsp;&nbsp;&nbsp; <a href=silcmode.html><img src=box2.gif border=0 alt=>SILC Modes</a><br />
&nbsp;&nbsp;&nbsp; <a href=silcid.html><img src=box2.gif border=0 alt=>SILC ID Interface</a><br />
&nbsp;&nbsp;&nbsp; <a href=silcargument.html><img src=box2.gif border=0 alt=>SILC Argument Interface</a><br />
&nbsp;&nbsp;&nbsp; <a href=silcattrs.html><img src=box2.gif border=0 alt=>SILC Attributes Interface</a><br />
&nbsp;&nbsp;&nbsp; <a href=silcpacket.html><img src=box2.gif border=0 alt=>Packet Engine Interface</a><br />
&nbsp;&nbsp;&nbsp; <a href=silcpubkey.html><img src=box2.gif border=0 alt=>SILC Public Key Payload Interface</a><br />
<a href=silcutillib.html><img src=box.gif border=0 alt=>SILC Utility Library</a><br />
&nbsp;&nbsp;&nbsp; <a href=silctypes.html><img src=box2.gif border=0 alt=>Basic Types and Definitions</a><br />
&nbsp;&nbsp;&nbsp; <a href=silcbuffer.html><img src=box2.gif border=0 alt=>Data Buffer Interface</a><br />
&nbsp;&nbsp;&nbsp; <a href=silcbuffmt.html><img src=box2.gif border=0 alt=>Data Buffer Format Interface</a><br />
&nbsp;&nbsp;&nbsp; <a href=silchashtable.html><img src=box2.gif border=0 alt=>Hash Table Interface</a><br />
&nbsp;&nbsp;&nbsp; <a href=silcmemory.html><img src=box2.gif border=0 alt=>Memory Allocation Interface</a><br />
&nbsp;&nbsp;&nbsp; <a href=silcstack.html><img src=box2.gif border=0 alt=>Data Stack (memory pool) Interface</a><br />
&nbsp;&nbsp;&nbsp; <a href=silcfsm.html><img src=box2.gif border=0 alt=>Finite State Machine Interface</a><br />
&nbsp;&nbsp;&nbsp; <a href=silcthread.html><img src=box2.gif border=0 alt=>Thread Interface</a><br />
&nbsp;&nbsp;&nbsp; <a href=silcmutex.html><img src=box2.gif border=0 alt=>Mutual Exclusion Lock Interface</a><br />
&nbsp;&nbsp;&nbsp; <a href=silccond.html><img src=box2.gif border=0 alt=>Condition Variable Interface</a><br />
&nbsp;&nbsp;&nbsp; <a href=silcatomic.html><img src=box2.gif border=0 alt=>Atomic Operations Interface</a><br />
&nbsp;&nbsp;&nbsp; <a href=silcnet.html><img src=box2.gif border=0 alt=>Network (TCP and UDP) Interface</a><br />
&nbsp;&nbsp;&nbsp; <a href=silcschedule.html><img src=box2.gif border=0 alt=>Scheduler Interface</a><br />
&nbsp;&nbsp;&nbsp; <a href=silcasync.html><img src=box2.gif border=0 alt=>Asynchronous Operation Interface</a><br />
&nbsp;&nbsp;&nbsp; <a href=silcstream.html><img src=box2.gif border=0 alt=>Abstract Stream Interface</a><br />
&nbsp;&nbsp;&nbsp; <a href=silcsocketstream.html><img src=box2.gif border=0 alt=>Socket Stream Interface</a><br />
&nbsp;&nbsp;&nbsp; <a href=silcfdstream.html><img src=box2.gif border=0 alt=>File Descriptor Stream Interface</a><br />
&nbsp;&nbsp;&nbsp; <a href=silcfileutil.html><img src=box2.gif border=0 alt=>File Utility Functions</a><br />
&nbsp;&nbsp;&nbsp; <a href=silcstrutil.html><img src=box2.gif border=0 alt=>String Utility Interface</a><br />
&nbsp;&nbsp;&nbsp; <a href=silcsnprintf.html><img src=box2.gif border=0 alt=>Snprintf Interface</a><br />
&nbsp;&nbsp;&nbsp; <a href=silcutf8.html><img src=box2.gif border=0 alt=>UTF-8 String Interface</a><br />
&nbsp;&nbsp;&nbsp; <a href=silcstringprep.html><img src=box2.gif border=0 alt=>Stringprep Interface</a><br />
&nbsp;&nbsp;&nbsp; <a href=silcutil.html><img src=box2.gif border=0 alt=>Utility Functions</a><br />
&nbsp;&nbsp;&nbsp; <a href=silclist.html><img src=box2.gif border=0 alt=>List Interface</a><br />
&nbsp;&nbsp;&nbsp; <a href=silcdlist.html><img src=box2.gif border=0 alt=>Dynamic List Interface</a><br />
&nbsp;&nbsp;&nbsp; <a href=silcmime.html><img src=box2.gif border=0 alt=>MIME Interface</a><br />
&nbsp;&nbsp;&nbsp; <a href=silctime.html><img src=box2.gif border=0 alt=>Time Utility Functions</a><br />
&nbsp;&nbsp;&nbsp; <a href=silclog.html><img src=box2.gif border=0 alt=>Logging Interface</a><br />
&nbsp;&nbsp;&nbsp; <a href=silcconfig.html><img src=box2.gif border=0 alt=>Config File Interface</a><br />
<a href=silchttplib.html><img src=box.gif border=0 alt=>SILC HTTP Library</a><br />
&nbsp;&nbsp;&nbsp; <a href=silchttpserver.html><img src=box2.gif border=0 alt=>SILC HTTP Server Interface</a><br />
&nbsp;&nbsp;&nbsp; <a href=silchttpphp.html><img src=box2.gif border=0 alt=>SILC HTTP PHP Translator</a><br />

<br />
<b>Resource Links</b>
<br />
<a href="http://silcnet.org"><img src="box.gif" border="0" alt="">SILC Project Website</a><br />
<a href="http://silcnet.org/support/documentation/"><img src="box.gif" border="0" alt="">SILC Protocol Documentation</a><br />
<a href="http://silcnet.org/support/documentation/wp/"><img src="box.gif" border="0" alt="">SILC White Paper</a><br />
<a href="http://silcnet.org/support/faq/"><img src="box.gif" border="0" alt="">SILC FAQs</a><br />

</small>
<br /><br /><br /><br />
    </td></tr>
   </table>
  </td>

  <td bgcolor="#cccccc" background="dot.gif">
   <img src="space.gif" width="1" height="1" border="0" alt=""></td>

  <td width="720" bgcolor="#ffffff">
   <img src="space.gif" width="1" height="1" border="0" alt="">
   <table cellpadding="2" cellspacing="6" width="100%">
    <tr><td valign="top">
<br />
<big><b>Command Reply Arguments</b></big>

<br />&nbsp;<br />
The SILC Client Library 'command_reply client operation (which is part of the
<a href="silcclient-SilcClientOperations.html">
SilcClientOperation</a> callback functions) returns command replies
from the SILC Server for commands that the client has earlier sent to the
server.  The 'command_reply' client operation implementation has a variable
argument list to deliver <a href="silccommand-SilcCommand.html">SilcCommand</a>
specific arguments to the application.  This document describes these
arguments for all command replies to help SILC client software developers
to process them.

<br />&nbsp;<br />
<b>NOTE: </b>The following list of command reply arguments are sent when
the command was executed successfully.  If an error occurred, the
`command_reply' client operation's 'success' argument is FALSE, and the
'status' argument includes the error status.  In this case the arguments
returned are dependent of the 'status' argument.  See all
<a href="silcstatus_args.html">SilcStatus error arguments</a> for these
arguments.

<br />&nbsp;<br />&nbsp;<br />
<b>command_reply Client Library operation</b>

<br />&nbsp;<br />
The 'command_reply' client operation callback function prototype is as follows:

<br />&nbsp;<br />
<tt>
&nbsp;&nbsp;
void (*command_reply)(SilcClient client, SilcClientConnection conn,<br />
                      SilcCommand command, SilcStatus status,<br />
                      SilcStatus error, va_list ap);
</tt>

<br />&nbsp;<br />
The first argument 'client' is the SILC Client Library context, the 'conn'
is the context for the connection to the remote server, the 'cmd_payload'
is the raw SilcCommandPayload and application usually ignores it, the
'success' boolean value indicates whether the earlier command was a success
or not, the 'command' is the command reply enumeration, and the 'status'
indicates the status of the command reply.  If 'success' is FALSE then
'status' includes error status (see <a href="silcstatus_args.html">SilcStatus
error arguments</a>).

<br />&nbsp;<br />
Rest of the arguments are 'command' specific and implementation should
handle them by the SilcCommand for example in a <tt>switch</tt> statement.
The commands are defined in lib/silccore/silccomand.h header file.  A short
example:

<br />&nbsp;<br />
<tt>
&nbsp;&nbsp;switch(type)<br />
&nbsp;&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;case SILC_COMMAND_WHOIS:<br />
&nbsp;&nbsp;&nbsp;&nbsp;...<br />
&nbsp;&nbsp;&nbsp;&nbsp;break;<br />
&nbsp;&nbsp;&nbsp;&nbsp;case SILC_COMMAND_WHOWAS:<br />
&nbsp;&nbsp;&nbsp;&nbsp;...<br />
&nbsp;&nbsp;&nbsp;&nbsp;break;<br />
&nbsp;&nbsp;&nbsp;&nbsp;case SILC_COMMAND_NICK:<br />
&nbsp;&nbsp;&nbsp;&nbsp;...<br />
&nbsp;&nbsp;&nbsp;&nbsp;break;<br />
&nbsp;&nbsp;&nbsp;&nbsp;...<br />
&nbsp;&nbsp;&nbsp;&nbsp;}
</tt>

<br />&nbsp;<br />&nbsp;<br />
<b>Arguments</b>

<br />&nbsp;<br />
The following table describes all commands and arguments that the client
library sends in the 'command_reply' client operation to the application.
By default all arguments that the library sends to application are valid
pointers.  However, it is possible that some pointers may be NULL.  If
this is the case it is separately mentioned that the argument may be NULL.
In this case application must ignore that argument.

<br />&nbsp;<br />
The 'command_reply' arguments for successful SilcCommand replies are as
follows:

<br />&nbsp;<br />
<table border="1" width="100%" cellpadding="3" cellspacing="0">

<tr>
<td><small>Name</td>
<td><small>Description</td>
<td width="50%"><small>Variable Arguments</td>
</tr>

<tr>
<td><small>SILC_COMMAND_WHOIS</td>
<td><small>
Returns information about user. The following pointers may be NULL: 'channels',
'fingerprint', 'channel_usermodes' and 'attrs'.  If 'fingerprint' is valid its
length is 20 bytes. If 'channels' is valid each entry in the list is
SilcChannelPayload.  If the `channel_usermodes' is valid then the table
has as many entries as there are entries in the `channels' list, and the
first entry in the table is the user mode on the first channel in the
`channels' list.  The `channel_usermodes' is the table of the user's modes
on the joined channels.  The 'attr' is the Requested Attributes that may
have been returned by the client and it can be parsed by traversing the
SilcDList and using silc_attribute_get_attribute function.  Each entry in
the list is SilcAttribute.
</td>
<td width="50%"><small>SilcClientEntry client_entry, char *nickname,
char *username, char *realname, SilcDList channels, SilcUInt32 usermode,
SilcUInt32 idletime, unsigned char *fingerprint, SilcUInt32 *channel_usermodes,
SilcDList attrs
</td>
</tr>

<tr>
<td><small>SILC_COMMAND_WHOWAS</td>
<td><small>
Returns history information about user. The 'client_entry' and 'realname'
may be NULL.
</td>
<td width="50%"><small>SilcClientEntry client_entry, char *nickname,
char *username, char *realname
</td>
</tr>

<tr>
<td><small>SILC_COMMAND_IDENTIFY</td>
<td><small>
Returns information about user, channel or server.  This is similar to
WHOIS command but does not return so much information and can be used to
get information about channels and servers too.  Application should ignore
this command reply.  The 'name' and 'info' may be NULL.
</td>
<td width="50%"><small>void *entry, char *name, char *info
</td>
</tr>

<tr>
<td><small>SILC_COMMAND_NICK</td>
<td><small>
Returns the new Client ID and new nickname inside the SilcClientEntry.
The `old_client_id' is the old Client ID used by the client before the
nickname was changed.  The `nickname' is the new nickname.  Note that,
when user changes nickname SILC_NOTIFY_TYPE_NICK_CHANGE is not delivered
to application.  Instead this SILC_COMMAND_NICK command reply is delivered.
</td>
<td width="50%"><small>SilcClientEntry local_entry, char *nickname,
const SilcClientID *old_client_id
</td>
</tr>

<tr>
<td><small>SILC_COMMAND_LIST</td>
<td><small>
Returns the list of channel in the SILC network. Each call of command reply
returns one channel. This means that the command reply is called multiple
times to return list of channels.  The 'channel', 'channel_name' and
'channel_topic' may be NULL.  However, the 'channel' and 'channel_name'
are NULL only if there are no channels in the network.  In this case
this reply is called once with all arguments set to NULL.  Application
must be able to handle this situation correctly.
</td>
<td width="50%"><small>SilcChannelEntry channel, char *channel_name,
char *channel_topic, SilcUInt32 user_count
</td>
</tr>

<tr>
<td><small>SILC_COMMAND_TOPIC</td>
<td><small>
Returns the topic of the channel.
</td>
<td width="50%"><small>SilcChannelEntry channel, char *topic
</td>
</tr>

<tr>
<td><small>SILC_COMMAND_INVITE</td>
<td><small>
Returns the invite list of the channel.  Called also even if invite list
was not modified but SILC_COMMAND_INVITE command was used to invite a user
into a channel.  In this case the invite list is not returned by the
server and 'invite_list' is NULL.  The 'invite_list' is SilcArgumenPayload
which contains one or more arguments, each is one invite list entry.  The
entries can be retrieved with silc_argument_get_first_arg,
silc_argument_get_next_arg, silc_argument_get_arg_type and
silc_argument_get_decoded functions.
</td>
<td width="50%"><small>SilcChannelEntry channel,
SilcArgumentPayload invite_list
</td>
</tr>

<tr>
<td><small>SILC_COMMAND_KILL</td>
<td><small>
Called after killing a client.  Returns the client that was killed.
The `client_entry' may be NULL.  The `client_entry' will become invalid
after the command reply has returned from application.  The
SILC_NOTIFY_TYPE_KILLED will not be delivered for clients that you killed.
</td>
<td width="50%"><small>SilcClientEntry client_entry
</td>
</tr>

<tr>
<td><small>SILC_COMMAND_INFO</td>
<td><small>
Returns information about the server user is connected to.
</td>
<td width="50%"><small>SilcServerEntry server, char *server_name,
char *server_info
</td>
</tr>

<tr>
<td><small>SILC_COMMAND_STATS</td>
<td><small>
Returns network statistics from the server.  The `stats' structure contains
the statistics returned by the server.
</td>
<td width="50%"><small>SilcClientStats *stats
</td>
</tr>

<tr>
<td><small>SILC_COMMAND_PING</td>
<td><small>
Returns reply to earlier ping.  There is no arguments to this reply.
</td>
<td width="50%"><small>none
</td>
</tr>

<tr>
<td><small>SILC_COMMAND_OPER</td>
<td><small>
Returns reply to earlier SILC_COMMAND_OPER command.  There is no arguments
to this reply.
</td>
<td width="50%"><small>none
</td>
</tr>

<tr>
<td><small>SILC_COMMAND_JOIN</td>
<td><small>
Reply received when user joined a channel.  The `channel_mode' contains
the current channel mode.  The `user_list' is the user list on the channel
and may be traversed with silc_hash_table_get function.  Each entry in the
`user_list' is SilcChannelUser structure, which contains the SilcClientEntry
and the client's mode on the channel.  The library will free the list.
The `topic' is the current topic on channel or NULL if no topic is set.
The `cipher' is the encryption algorithm used on channel or NULL if it is
not available.  The `hmac' is the HMAC algorithm used on channel or NULL if
it is not available.  The `founder_key' is the channel founder's public key
or NULL if founder public key has not been set.  The `channel_pubkeys' is
a list of channel public keys (for authentication on joining) or NULL if
they have not been set.  Each entry in the list is SilcArgumentDecodedList
each containing one channel SilcPublicKey.  The library will free the list.
</td>
<td width="50%"><small>char *channel_name, SilcChannelEntry channel,
SilcUInt32 channel_mode, SilcHashTableList *user_list, char *topic,
char *cipher, char *hmac, SilcPublicKey founder_key,
SilcDList channel_pubkeys, SilcUint32 user_limit
</td>
</tr>

<tr>
<td><small>SILC_COMMAND_MOTD</td>
<td><small>
Returns the Message of the Day from the server.  The 'motd' may be NULL.
</td>
<td width="50%"><small>char *motd
</td>
</tr>

<tr>
<td><small>SILC_COMMAND_UMODE</td>
<td><small>
Returns the user mode after changing it.
</td>
<td width="50%"><small>SilcUInt32 user_mode
</td>
</tr>

<tr>
<td><small>SILC_COMMAND_CMODE</td>
<td><small>
Returns channel's mode after changing it.  Optionally may also return
founder's public key when it was set.  It may also return the channel
public key list when the list was altered.  The 'founder_key' and
'channel_pubkeys' arguments may be NULL.  The 'channel_pubkeys' is a list
of SilcArgumentDecodedList contexts which each contain one channel public
key.  The library will automatically free the list.
</td>
<td width="50%"><small>SilcChannelEntry channel, SilcUInt32 mode,
SilcPublicKey founder_key, SilcDList channel_pubkeys, SilcUint32 user_limit
</td>
</tr>

<tr>
<td><small>SILC_COMMAND_CUMODE</td>
<td><small>
Returns user's mode on channel after changing it.
</td>
<td width="50%"><small>SilcUInt32 mode, SilcChannelEntry channel,
SilcClientEntry target_client
</td>
</tr>

<tr>
<td><small>SILC_COMMAND_KICK</td>
<td><small>
Called after kicking a client.  Returns the client that was kicked from
the 'channel'.
</td>
<td width="50%"><small>SilcChannelEntry channel, SilcClientEntry client_entry
</td>
</tr>

<tr>
<td><small>SILC_COMMAND_BAN</td>
<td><small>
Returns channel's ban list.  The 'ban_list' may be NULL.  The construction
of that list is equivalent to invite list.  See description of
SILC_COMMAND_INVITE command reply.
</td>
<td width="50%"><small>SilcChannelEntry channel, SilcArgumentPayload ban_list
</td>
</tr>

<tr>
<td><small>SILC_COMMAND_DETACH</td>
<td><small>
Called after being detached from the SILC network.  The command reply delivers
the detachment data buffer `detach_data' that the application should save
for example into a file.  The data will be needed when resuming back to
the network.  When resuming the data is saved into SilcClientConnectionParams
structure and given as argument to silc_client_connect_to_server or
silc_client_key_exchange functions.
</td>
<td width="50%"><small>SilcBuffer detach_data
</td>
</tr>

<tr>
<td><small>SILC_COMMAND_WATCH</td>
<td><small>
Called after modifying the watch list in the server.  There is no arguments
to this reply.
</td>
<td width="50%"><small>none
</td>
</tr>

<tr>
<td><small>SILC_COMMAND_SILCOPER</td>
<td><small>
Returns reply to earlier SILC_COMMAND_SILCOPER command.  There is no
arguments to this reply.
</td>
<td width="50%"><small>none
</td>
</tr>

<tr>
<td><small>SILC_COMMAND_LEAVE</td>
<td><small>
Called after leaving the channel.  Note that the `channel' will become
invalid after command_reply client operation returns.
</td>
<td width="50%"><small>SilcChannelEntry channel
</td>
</tr>

<tr>
<td><small>SILC_COMMAND_USERS</td>
<td><small>
Returns list of users in channel.  The `user_list' may be traversed with
silc_hash_table_get function.  Each entry in the `user_list' is
SilcChannelUser structure, which contains the SilcClientEntry and the
client's mode on the channel.
</td>
<td width="50%"><small>SilcChannelEntry channel, SilcHashTableList *user_list
</td>
</tr>

<tr>
<td><small>SILC_COMMAND_GETKEY</td>
<td><small>
Returns public key of client or server.  The 'public_key' may be NULL.
The 'entry_type' is used to check what type of pointer the entry' is.  For
SILC_ID_CLIENT SilcClientEntry and for SILC_ID_SERVER SilcServerEntry.
</td>
<td width="50%"><small>SilcIdType entry_type, void *entry,
SilcPublicKey public_key
</td>
</tr>

<tr>
<td><small>SILC_COMMAND_SERVICE</td>
<td><small>
Returns the service list in the server, or information on the accepted
and authenticated service.  The 'service_list' maybe NULL if server does
not support any services.  It is NULL also when 'name' is not NULL.  The
'service_list' is a comma separated list of services the server supports.
The 'name' MAY be NULL also.  The 'name' is the requested service, and it is
non-NULL only if server accepted and authenticated client's request.
</td>
<td width="50%"><small>const char *server_list, const char *service_name
</td>
</tr>

</table>

<br />&nbsp;<br />
SILC protocol defines some additional commands but command replies to
those commands are not delivered to the application.  Only the command
replies listed above are delivered to application.
<br /><br /><br /><br />
    </td></tr>
   </table>
  </td>

  <td bgcolor="#cccccc" background="dot.gif">
   <img src="space.gif" width="1" height="1" border="0" alt=""></td>

  <td width="180" bgcolor="#f0f0f0">
    <img src="space.gif" width="1" height="1" border="0" alt="">
    <table width="100%" cellpadding="4" cellspacing="0">
    <tr valign="top"><td>
<br />
<font face="Helvetica,Arial,Sans-serif" size="1">
</font>

<br /><br /><br /><br />
    </td></tr>
    </table>
  </td>
</tr>
</table>

<table border="0" cellspacing="0" cellpadding="0" width="100%">
<tr bgcolor="#444444"><td><img src="space.gif" width="1" height="1"border="0" alt="" ></td></tr>
</table>
<table border="0" cellspacing="0" cellpadding="6" width="100%">
 <tr valign="top" bgcolor="#dddddd">
  <td><small>Copyright &copy; 2001 - 2007 SILC Project<br />
    <a href="http://silcnet.org">SILC Project Website</a></small></td>
  <td align="right"><small>
   <a href="index.html">SILC Toolkit Reference Manual</a><br />
   <a href="toolkit_index.html">Index</a></small></td>
   </small></td>
 </tr>
</table>

</body>
</html>