4 <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-a" />
5 <meta http-equiv="Content-Language" content="en" />
6 <meta name="description" content="SILC Secure Internet Live Conferencing" />
7 <meta name="keywords" content="SILC, secure, chat, protocol, cipher, encrypt, SKE" />
8 <meta content="INDEX, FOLLOW" name="ROBOTS" />
9 <style type="text/css">
11 body { color: #000000; background: #f0f0f0; font-family: Helvetica, Arial, Sans-serif; }
12 a:link { text-decoration: none; color: #2f488f; }
13 a:visited { text-decoration: none;color: #2f488f; }
14 a:active { text-decoration: none; color: #2f488f; }
19 <body topmargin="0" leftmargin="0" marginheight="0" marginwidth="0">
21 <table border="0" cellspacing="0" cellpadding="6" width="100%">
22 <tr valign="top" bgcolor="#dddddd">
23 <td><small>Copyright © 2001 - 2007 SILC Project<br />
24 <a href="http://silcnet.org">SILC Project Website</a></small></td>
25 <td align="right"><small>
26 <a href="index.html">SILC Toolkit Reference Manual</a><br />
27 <a href="toolkit_index.html">Index</a></small></td>
31 <table border="0" cellspacing="0" cellpadding="0" width="100%">
32 <tr bgcolor="#444444"><td><img src="space.gif" width="1" height="1"border="0" alt="" ></td></tr>
35 <table cellpadding="0" cellspacing="0" border="0">
38 <td width="200" bgcolor="#f0f0f0">
39 <img src="space.gif" width="1" height="1" border="0" alt="">
40 <table width="100%" cellpadding="2" cellspacing="2" border="0">
44 <!-- Template file for the big index that appears in the Toolkit reference
45 manual on the left side. With this file it is possible to add other than
46 automatically generated links to that list. -->
48 <a href="index.html"><img src="box.gif" border="0" alt="">SILC Toolkit Reference Manual</a><br />
51 <a href=silccryptlib.html><img src=box.gif border=0 alt=>SILC Crypto Library</a><br />
52 <a href=silcrng_intro.html><img src=box2.gif border=0 alt=>Introduction to SILC RNG</a><br />
53 <a href=silcrng.html><img src=box2.gif border=0 alt=>SILC RNG Interface</a><br />
54 <a href=silccipher.html><img src=box2.gif border=0 alt=>SILC Cipher API</a><br />
55 <a href=silcpkcs.html><img src=box2.gif border=0 alt=>SILC PKCS API</a><br />
56 <a href=silcpk.html><img src=box2.gif border=0 alt=>SILC Public Key API</a><br />
57 <a href=silcpkcs1.html><img src=box2.gif border=0 alt=>SILC PKCS #1 API</a><br />
58 <a href=silchash.html><img src=box2.gif border=0 alt=>SILC Hash Interface</a><br />
59 <a href=silchmac.html><img src=box2.gif border=0 alt=>SILC HMAC Interface</a><br />
60 <a href=silccorelib.html><img src=box.gif border=0 alt=>SILC Core Library</a><br />
61 <a href=silcauth.html><img src=box2.gif border=0 alt=>SILC Authentication Interface</a><br />
62 <a href=silcmessage.html><img src=box2.gif border=0 alt=>SILC Message Interface</a><br />
63 <a href=silcchannel.html><img src=box2.gif border=0 alt=>SILC Channel Interface</a><br />
64 <a href=silccommand.html><img src=box2.gif border=0 alt=>SILC Command Interface</a><br />
65 <a href=silcnotify.html><img src=box2.gif border=0 alt=>SILC Notify Interface</a><br />
66 <a href=silcstatus.html><img src=box2.gif border=0 alt=>SILC Status Types</a><br />
67 <a href=silcmode.html><img src=box2.gif border=0 alt=>SILC Modes</a><br />
68 <a href=silcid.html><img src=box2.gif border=0 alt=>SILC ID Interface</a><br />
69 <a href=silcargument.html><img src=box2.gif border=0 alt=>SILC Argument Interface</a><br />
70 <a href=silcattrs.html><img src=box2.gif border=0 alt=>SILC Attributes Interface</a><br />
71 <a href=silcpacket.html><img src=box2.gif border=0 alt=>Packet Engine Interface</a><br />
72 <a href=silcpubkey.html><img src=box2.gif border=0 alt=>SILC Public Key Payload Interface</a><br />
73 <a href=silcskelib.html><img src=box.gif border=0 alt=>SILC Key Exchange Library</a><br />
74 <a href=silcske.html><img src=box2.gif border=0 alt=>SILC SKE Interface</a><br />
75 <a href=silcconnauth.html><img src=box2.gif border=0 alt=>SILC Connection Authentication Interface</a><br />
76 <a href=silcvcardlib.html><img src=box.gif border=0 alt=>SILC VCard Library</a><br />
77 <a href=silcvcard.html><img src=box2.gif border=0 alt=>SILC VCard Interface</a><br />
78 <a href=silcmathlib.html><img src=box.gif border=0 alt=>SILC Math Library</a><br />
79 <a href=silcmp.html><img src=box2.gif border=0 alt=>SILC MP Interface</a><br />
80 <a href=silcmath.html><img src=box2.gif border=0 alt=>SILC Math Interface</a><br />
81 <a href=silcclientlib.html><img src=box.gif border=0 alt=>SILC Client Library</a><br />
82 <a href=silcclient_using.html><img src=box2.gif border=0 alt=>Using SILC Client Library Tutorial</a><br />
83 <a href=command_reply_args.html><img src=box2.gif border=0 alt=>Arguments for <b>command_reply</b> Client Operation</a><br />
84 <a href=silcstatus_args.html><img src=box2.gif border=0 alt=>SilcStatus Error Arguments in <b>command_reply</b> Client Operation</a><br />
85 <a href=notifyargs.html><img src=box2.gif border=0 alt=>Arguments for <b>notify</b> Client Operation</a><br />
86 <a href=silcclient_unicode.html><img src=box2.gif border=0 alt=>Unicode and UTF-8 Strings in Client Library</a><br />
87 <a href=silcclient.html><img src=box2.gif border=0 alt=>Client Library Interface Reference</a><br />
88 <a href=silcclient_entry.html><img src=box2.gif border=0 alt=>Client Entry Interface Reference</a><br />
89 <a href=silcasn1lib.html><img src=box.gif border=0 alt=>SILC ASN.1 Library</a><br />
90 <a href=silcasn1.html><img src=box2.gif border=0 alt=>SILC ASN.1 Interface</a><br />
91 <a href=silcber.html><img src=box2.gif border=0 alt=>SILC BER interface</a><br />
92 <a href=silchttplib.html><img src=box.gif border=0 alt=>SILC HTTP Library</a><br />
93 <a href=silchttpserver.html><img src=box2.gif border=0 alt=>SILC HTTP Server Interface</a><br />
94 <a href=silchttpphp.html><img src=box2.gif border=0 alt=>SILC HTTP PHP Translator</a><br />
95 <a href=silcutillib.html><img src=box.gif border=0 alt=>SILC Utility Library</a><br />
96 <a href=silctypes.html><img src=box2.gif border=0 alt=>Basic Types and Definitions</a><br />
97 <a href=silcbuffer.html><img src=box2.gif border=0 alt=>Data Buffer Interface</a><br />
98 <a href=silcbuffmt.html><img src=box2.gif border=0 alt=>Data Buffer Format Interface</a><br />
99 <a href=silchashtable.html><img src=box2.gif border=0 alt=>Hash Table Interface</a><br />
100 <a href=silcmemory.html><img src=box2.gif border=0 alt=>Memory Allocation Interface</a><br />
101 <a href=silcstack.html><img src=box2.gif border=0 alt=>Data Stack (memory pool) Interface</a><br />
102 <a href=silcfsm.html><img src=box2.gif border=0 alt=>Finite State Machine Interface</a><br />
103 <a href=silcthread.html><img src=box2.gif border=0 alt=>Thread Interface</a><br />
104 <a href=silcmutex.html><img src=box2.gif border=0 alt=>Mutual Exclusion Lock Interface</a><br />
105 <a href=silccond.html><img src=box2.gif border=0 alt=>Condition Variable Interface</a><br />
106 <a href=silcatomic.html><img src=box2.gif border=0 alt=>Atomic Operations Interface</a><br />
107 <a href=silcnet.html><img src=box2.gif border=0 alt=>Network (TCP and UDP) Interface</a><br />
108 <a href=silcschedule.html><img src=box2.gif border=0 alt=>Scheduler Interface</a><br />
109 <a href=silcasync.html><img src=box2.gif border=0 alt=>Asynchronous Operation Interface</a><br />
110 <a href=silcstream.html><img src=box2.gif border=0 alt=>Abstract Stream Interface</a><br />
111 <a href=silcsocketstream.html><img src=box2.gif border=0 alt=>Socket Stream Interface</a><br />
112 <a href=silcfdstream.html><img src=box2.gif border=0 alt=>File Descriptor Stream Interface</a><br />
113 <a href=silcfileutil.html><img src=box2.gif border=0 alt=>File Utility Functions</a><br />
114 <a href=silcstrutil.html><img src=box2.gif border=0 alt=>String Utility Interface</a><br />
115 <a href=silcsnprintf.html><img src=box2.gif border=0 alt=>Snprintf Interface</a><br />
116 <a href=silcutf8.html><img src=box2.gif border=0 alt=>UTF-8 String Interface</a><br />
117 <a href=silcstringprep.html><img src=box2.gif border=0 alt=>Stringprep Interface</a><br />
118 <a href=silcutil.html><img src=box2.gif border=0 alt=>Utility Functions</a><br />
119 <a href=silclist.html><img src=box2.gif border=0 alt=>List Interface</a><br />
120 <a href=silcdlist.html><img src=box2.gif border=0 alt=>Dynamic List Interface</a><br />
121 <a href=silcmime.html><img src=box2.gif border=0 alt=>MIME Interface</a><br />
122 <a href=silctime.html><img src=box2.gif border=0 alt=>Time Utility Functions</a><br />
123 <a href=silclog.html><img src=box2.gif border=0 alt=>Logging Interface</a><br />
124 <a href=silcconfig.html><img src=box2.gif border=0 alt=>Config File Interface</a><br />
125 <a href=silcskrlib.html><img src=box.gif border=0 alt=>SILC Key Repository Library</a><br />
126 <a href=silcskr.html><img src=box2.gif border=0 alt=>SILC SKR Interface</a><br />
127 <a href=silcaputillib.html><img src=box.gif border=0 alt=>SILC Application Utility Library</a><br />
128 <a href=silcapputil.html><img src=box2.gif border=0 alt=>SILC Application Utilities</a><br />
129 <a href=silcidcache.html><img src=box2.gif border=0 alt=>SILC ID Cache Interface</a><br />
130 <a href=silcsftplib.html><img src=box.gif border=0 alt=>SILC SFTP Library</a><br />
131 <a href=silcsftp.html><img src=box2.gif border=0 alt=>SILC SFTP Interface</a><br />
132 <a href=silcsftp_fs.html><img src=box2.gif border=0 alt=>SFTP Filesystems Interface</a><br />
135 <b>Resource Links</b>
137 <a href="http://silcnet.org"><img src="box.gif" border="0" alt="">SILC Project Website</a><br />
138 <a href="http://silcnet.org/support/documentation/"><img src="box.gif" border="0" alt="">SILC Protocol Documentation</a><br />
139 <a href="http://silcnet.org/support/documentation/wp/"><img src="box.gif" border="0" alt="">SILC White Paper</a><br />
140 <a href="http://silcnet.org/support/faq/"><img src="box.gif" border="0" alt="">SILC FAQs</a><br />
143 <br /><br /><br /><br />
148 <td bgcolor="#cccccc" background="dot.gif">
149 <img src="space.gif" width="1" height="1" border="0" alt=""></td>
151 <td width="720" bgcolor="#ffffff">
152 <img src="space.gif" width="1" height="1" border="0" alt="">
153 <table cellpadding="2" cellspacing="6" width="100%">
154 <tr><td valign="top">
156 <big><b>SilcStatus Arguments</b></big>
159 The <a href="silcstatus-SilcStatus.html">SilcStatus</a> is used to indicate
160 a status (usually error status) of command execution and command reply
161 status. It is also used to deliver disconnection status when server
162 disconnects client from the server. For application it is mainly important
163 in case of `command_reply' client operation, where the SilcStatus indicates
164 the error status of the command that was executed. If error occurred the
165 arguments returned by the `command_reply' are then dependent of the SilcStatus
166 type instead of the <a href="command_reply_args.html">SilcCommand
170 This documents describes how the application should interpret the SilcStatus
171 type in the `command_reply' client operation to be able to handle all
172 error conditions properly. Any status type can be returned for any
173 SilcCommand. For this reason application should be able to handle any
174 error with any command.
177 <br /> <br /> <br />
178 <b>Error Status In command_reply Client Operation</b>
181 When error occurs in execution of a command the `command_reply' client
182 operation is called with error status. In this case the 'success'
183 argument of the client operation is set to FALSE, to indicate that command
184 execution failed, and the 'status' argument indicates the error.
185 If the 'status' argument is SILC_STATUS_OK then error did not occur and the
186 arguments are as described in <a href="command_reply_args.html">SilcCommand
190 Application should handle the error status arguments by the SilcStatus
191 type for example in a <tt>switch</tt> statement. The SilcStatus values
192 are defined in lib/silccore/silcstatus.h header file. A short example.
196 switch(status)<br />
197 {<br />
198 case SILC_STATUS_ERR_NO_SUCH_NICK:<br />
199 ...<br />
200 nick = va_arg(va, char *);<br />
201 ...<br />
202 break;<br />
203 case SILC_STATUS_ERR_NO_SUCH_CHANNEL:<br />
204 ...<br />
205 break;<br />
206 case SILC_STATUS_ERR_NO_SUCH_SERVER:<br />
207 ...<br />
208 break;<br />
209 ...<br />
210 default:<br />
211 break;<br />
212 }
216 <br /> <br /> <br />
220 The following table describes all status values and arguments that the client
221 library sends in the 'command_reply' client operation to the application
222 in case of error. All arguments listed below are usually valid when
223 returned by the library. However applicationn must be able to handle that
224 any of those arguments may be NULL.
227 The 'command_reply' arguments in case of error are as follows:
230 <table border="1" width="100%" cellpadding="3" cellspacing="0">
234 <td><small>Description</td>
235 <td width="40%"><small>Error Arguments</td>
239 <td><small>SILC_STATUS_OK</td>
243 <td width="40%"><small>N/A
248 <td><small>SILC_STATUS_ERR_NO_SUCH_NICK</td>
250 Requested nickname does not exist. Argument is the unknown name.
252 <td width="40%"><small>const char *nickname
257 <td><small>SILC_STATUS_ERR_NO_SUCH_CHANNEL</td>
259 The requested channel does not exist. Argument is the unknown name.
261 <td width="40%"><small>const char *channel_name
266 <td><small>SILC_STATUS_ERR_NO_SUCH_SERVER</td>
268 The requested server does not exist. Argument is the unknown name.
270 <td width="40%"><small>const char *server_name
275 <td><small>SILC_STATUS_ERR_NO_RECIPIENT</td>
277 Command required recipient but none was provided. No arguments returned.
278 <td width="40%"><small>N/A
283 <td><small>SILC_STATUS_ERR_UNKNOWN_COMMAND</td>
285 Command sent to server is unknown or unsupported by the server. No
288 <td width="40%"><small>N/A
293 <td><small>SILC_STATUS_ERR_WILDCARDS</td>
295 Wildcards were provided by they were not permitted. No arguments returned.
297 <td width="40%"><small>N/A
302 <td><small>SILC_STATUS_ERR_NO_CLIENT_ID</td>
304 Client ID was expected as command parameter but was not found. No
307 <td width="40%"><small>N/A
312 <td><small>SILC_STATUS_ERR_NO_CHANNEL_ID</td>
314 Channel ID was expected as command parameter but was not found. No
317 <td width="40%"><small>N/A
322 <td><small>SILC_STATUS_ERR_NO_SERVER_ID</td>
324 Server ID was expected as command parameter but was not found. No
327 <td width="40%"><small>N/A
332 <td><small>SILC_STATUS_ERR_BAD_CLIENT_ID</td>
334 Client ID provided was malformed. Returns the malformed ID.
336 <td width="40%"><small>const SilcClientID *client_id
341 <td><small>SILC_STATUS_ERR_BAD_CHANNEL_ID</td>
343 Channel ID provided was malformed. Returns the malformed ID.
345 <td width="40%"><small>const SilcChannelID *channel_id
350 <td><small>SILC_STATUS_ERR_BAD_SERVER_ID</td>
352 Server ID provided was malformed. Returns the malformed ID.
354 <td width="40%"><small>const SilcServerID *server_id
359 <td><small>SILC_STATUS_ERR_NO_SUCH_CLIENT_ID</td>
361 Client ID provided does not exist. The unknown ID is returned.
363 <td width="40%"><small>const SilcClientID *client_id
368 <td><small>SILC_STATUS_ERR_NO_SUCH_CHANNEL_ID</td>
370 Channel ID provided does not exist. The unknown ID is returned.
372 <td width="40%"><small>const SilcChannelID *channel_id
377 <td><small>SILC_STATUS_ERR_NO_SUCH_SERVER_ID</td>
379 Server ID provided does not exist. The unknown ID is returned.
381 <td width="40%"><small>const SilcServerID *server_id
386 <td><small>SILC_STATUS_ERR_NOT_ON_CHANNEL</td>
388 The command required for you to be on channel but you were not.
389 The channel ID is returned.
391 <td width="40%"><small>const SilcChannelID *channel_id
396 <td><small>SILC_STATUS_ERR_USER_NOT_ON_CHANNEL</td>
398 The requested target client is not on requested channel. Returns the
399 target client ID and channel ID.
401 <td width="40%"><small>const SilcClientID *client_id,
402 const SilcChannelID *channel_id
407 <td><small>SILC_STATUS_ERR_USER_ON_CHANNEL</td>
409 User were invited on channel they already are on. Returns the
410 target client ID and channel ID.
412 <td width="40%"><small>const SilcClientID *client_id,
413 const SilcChannelID *channel_id
418 <td><small>SILC_STATUS_ERR_NOT_REGISTERED</td>
420 User executed command that requires the client to be registered on the
421 server before it may be executed. No arguments returned.
423 <td width="40%"><small>N/A
428 <td><small>SILC_STATUS_ERR_NOT_ENOUGH_PARAMS</td>
430 Command required more parameters than provided. No arguments returned.
432 <td width="40%"><small>N/A
437 <td><small>SILC_STATUS_ERR_TOO_MANY_PARAMS</td>
439 Too many parameters provided for the command. No arguments returned.
441 <td width="40%"><small>N/A
446 <td><small>SILC_STATUS_ERR_PERM_DENIED</td>
448 Generic permission denied error status, to indicat disallowed access.
449 No arguments returned.
451 <td width="40%"><small>N/A
456 <td><small>SILC_STATUS_ERR_BAD_PASSWORD</td>
458 Password provided for channel were not accepted. Returns the channel ID.
460 <td width="40%"><small>const SilcChannelID *channel_id
465 <td><small>SILC_STATUS_ERR_CHANNEL_IS_FULL</td>
467 The channel is full and client cannot join the channel. Returns the
470 <td width="40%"><small>const SilcChannelID *channel_id
475 <td><small>SILC_STATUS_ERR_NOT_INVITED</td>
477 The channel is invite only channel and client has not been invited.
478 Returns the channel ID.
480 <td width="40%"><small>const SilcChannelID *channel_id
485 <td><small>SILC_STATUS_ERR_BANNED_FROM_CHANNEL</td>
487 The client has been banned from the channel. Returns the channel ID.
489 <td width="40%"><small>const SilcChannelID *channel_id
494 <td><small>SILC_STATUS_ERR_UNKNOWN_MODE</td>
496 Mode provided by the client was unknown to or unsupported by the server.
497 No arguments returned.
499 <td width="40%"><small>N/A
504 <td><small>SILC_STATUS_ERR_NOT_YOU</td>
506 User tried to change someone else's mode which is not allowed.
507 No arguments returned.
509 <td width="40%"><small>N/A
514 <td><small>SILC_STATUS_ERR_NO_CHANNEL_PRIV</td>
516 Command may be executed only by channel operator. The next argument is
519 <td width="40%"><small>const SilcChannelID *channel_id
524 <td><small>SILC_STATUS_ERR_NO_CHANNEL_FOPRIV</td>
526 Command may be executed only by channel founder. The next argument is
529 <td width="40%"><small>const SilcChannelID *channel_id
534 <td><small>SILC_STATUS_ERR_NO_SERVER_PRIV</td>
536 Command may be executed only by server operator. No arguments returned.
538 <td width="40%"><small>N/A
543 <td><small>SILC_STATUS_ERR_NO_ROUTER_PRIV</td>
545 Command may be executed only by router (SILC) operator. No arguments returned.
547 <td width="40%"><small>N/A
552 <td><small>SILC_STATUS_ERR_BAD_NICKNAME</td>
554 Nickname requested contained illegal characters or was malformed. No
557 <td width="40%"><small>N/A
562 <td><small>SILC_STATUS_ERR_BAD_CHANNEL</td>
564 Channel name requested contained illegal characters or was malformed. No
567 <td width="40%"><small>N/A
572 <td><small>SILC_STATUS_ERR_AUTH_FAILED</td>
574 The authentication data (passphrase or digital signature) sent as argument
575 was wrong and thus authentication failed. No arguments returned.
577 <td width="40%"><small>N/A
582 <td><small>SILC_STATUS_ERR_UNKNOWN_ALGORITHM</td>
584 The server does not support requested algorithm. Returns the unknown
587 <td width="40%"><small>const char *alg_name
592 <td><small>SILC_STATUS_ERR_RESOURCE_LIMIT</td>
594 Server cannot or will not accept the action due to resource limitations.
595 No arguments returned.
597 <td width="40%"><small>N/A
602 <td><small>SILC_STATUS_ERR_NO_SUCH_SERVICE</td>
604 Requestes service identifier is unknown. Returns the unknown service
607 <td width="40%"><small>const char *service_identifier
612 <td><small>SILC_STATUS_ERR_TIMEDOUT</td>
614 Operation (command execution) or service request timed out, and thus was
615 not processed. This usually happens due to network failure between servers
616 and routers in the network. No arguments returned.
618 <td width="40%"><small>N/A
623 <td><small>SILC_STATUS_ERR_UNSUPPORTED_PUBLIC_KEY</td>
625 The public key or certificate type is not supported in ths implementation.
626 No arguments returned.
628 <td width="40%"><small>N/A
632 <td><small>SILC_STATUS_ERR_OPERATION_ALLOWED</td>
634 A operation, for example a command, is not allowed or it's execution is
635 not allowed. No arguments returned.
637 <td width="40%"><small>N/A
644 SILC protocol defines some additional status types but those status
645 types are not returned in `command_reply' client operation. Only
646 the status types listed above are delivered to application.
647 <br /><br /><br /><br />
652 <td bgcolor="#cccccc" background="dot.gif">
653 <img src="space.gif" width="1" height="1" border="0" alt=""></td>
655 <td width="180" bgcolor="#f0f0f0">
656 <img src="space.gif" width="1" height="1" border="0" alt="">
657 <table width="100%" cellpadding="4" cellspacing="0">
658 <tr valign="top"><td>
660 <font face="Helvetica,Arial,Sans-serif" size="1">
663 <br /><br /><br /><br />
670 <table border="0" cellspacing="0" cellpadding="0" width="100%">
671 <tr bgcolor="#444444"><td><img src="space.gif" width="1" height="1"border="0" alt="" ></td></tr>
673 <table border="0" cellspacing="0" cellpadding="6" width="100%">
674 <tr valign="top" bgcolor="#dddddd">
675 <td><small>Copyright © 2001 - 2007 SILC Project<br />
676 <a href="http://silcnet.org">SILC Project Website</a></small></td>
677 <td align="right"><small>
678 <a href="index.html">SILC Toolkit Reference Manual</a><br />
679 <a href="toolkit_index.html">Index</a></small></td>