File: silcstatus_args.html

package info (click to toggle)
silc-toolkit 1.1.10-2
  • links: PTS, VCS
  • area: main
  • in suites: squeeze
  • size: 34,068 kB
  • ctags: 8,578
  • sloc: ansic: 79,872; sh: 9,948; cpp: 1,480; asm: 1,001; makefile: 188; perl: 126
file content (685 lines) | stat: -rw-r--r-- 24,790 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685

<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>SilcStatus Arguments</b></big>

<br />&nbsp;<br />
The <a href="silcstatus-SilcStatus.html">SilcStatus</a> is used to indicate
a status (usually error status) of command execution and command reply
status.  It is also used to deliver disconnection status when server
disconnects client from the server.  For application it is mainly important
in case of `command_reply' client operation, where the SilcStatus indicates
the error status of the command that was executed.  If error occurred the
arguments returned by the `command_reply' are then dependent of the SilcStatus
type instead of the <a href="command_reply_args.html">SilcCommand
arguments</a>.

<br />&nbsp;<br />
This documents describes how the application should interpret the SilcStatus
type in the `command_reply' client operation to be able to handle all
error conditions properly.  Any status type can be returned for any
SilcCommand.  For this reason application should be able to handle any
error with any command.


<br />&nbsp;<br />&nbsp;<br />
<b>Error Status In command_reply Client Operation</b>

<br />&nbsp;<br />
When error occurs in execution of a command the `command_reply' client
operation is called with error status.  In this case the 'success'
argument of the client operation is set to FALSE, to indicate that command
execution failed, and the 'status' argument indicates the error.
If the 'status' argument is SILC_STATUS_OK then error did not occur and the
arguments are as described in <a href="command_reply_args.html">SilcCommand
arguments</a>.

<br />&nbsp;<br />
Application should handle the error status arguments by the SilcStatus
type for example in a <tt>switch</tt> statement.  The SilcStatus values
are defined in lib/silccore/silcstatus.h header file.  A short example.

<br />&nbsp;<br />
<tt>
&nbsp;&nbsp;switch(status)<br />
&nbsp;&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;case SILC_STATUS_ERR_NO_SUCH_NICK:<br />
&nbsp;&nbsp;&nbsp;&nbsp;...<br />
&nbsp;&nbsp;&nbsp;&nbsp;nick = va_arg(va, char *);<br />
&nbsp;&nbsp;&nbsp;&nbsp;...<br />
&nbsp;&nbsp;&nbsp;&nbsp;break;<br />
&nbsp;&nbsp;&nbsp;&nbsp;case SILC_STATUS_ERR_NO_SUCH_CHANNEL:<br />
&nbsp;&nbsp;&nbsp;&nbsp;...<br />
&nbsp;&nbsp;&nbsp;&nbsp;break;<br />
&nbsp;&nbsp;&nbsp;&nbsp;case SILC_STATUS_ERR_NO_SUCH_SERVER:<br />
&nbsp;&nbsp;&nbsp;&nbsp;...<br />
&nbsp;&nbsp;&nbsp;&nbsp;break;<br />
&nbsp;&nbsp;&nbsp;&nbsp;...<br />
&nbsp;&nbsp;&nbsp;&nbsp;default:<br />
&nbsp;&nbsp;&nbsp;&nbsp;break;<br />
&nbsp;&nbsp;&nbsp;&nbsp;}
</tt>


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

<br />&nbsp;<br />
The following table describes all status values and arguments that the client
library sends in the 'command_reply' client operation to the application
in case of error.  All arguments listed below are usually valid when
returned by the library.  However applicationn must be able to handle that
any of those arguments may be NULL.

<br />&nbsp;<br />
The 'command_reply' arguments in case of error 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="40%"><small>Error Arguments</td>
</tr>

<tr>
<td><small>SILC_STATUS_OK</td>
<td><small>
No error.
</td>
<td width="40%"><small>N/A
</td>
</tr>

<tr>
<td><small>SILC_STATUS_ERR_NO_SUCH_NICK</td>
<td><small>
Requested nickname does not exist.  Argument is the unknown name.
</td>
<td width="40%"><small>const char *nickname
</td>
</tr>

<tr>
<td><small>SILC_STATUS_ERR_NO_SUCH_CHANNEL</td>
<td><small>
The requested channel does not exist.  Argument is the unknown name.
</td>
<td width="40%"><small>const char *channel_name
</td>
</tr>

<tr>
<td><small>SILC_STATUS_ERR_NO_SUCH_SERVER</td>
<td><small>
The requested server does not exist.  Argument is the unknown name.
</td>
<td width="40%"><small>const char *server_name
</td>
</tr>

<tr>
<td><small>SILC_STATUS_ERR_NO_RECIPIENT</td>
<td><small>
Command required recipient but none was provided.  No arguments returned.
<td width="40%"><small>N/A
</td>
</tr>

<tr>
<td><small>SILC_STATUS_ERR_UNKNOWN_COMMAND</td>
<td><small>
Command sent to server is unknown or unsupported by the server.  No
arguments returned.
</td>
<td width="40%"><small>N/A
</td>
</tr>

<tr>
<td><small>SILC_STATUS_ERR_WILDCARDS</td>
<td><small>
Wildcards were provided by they were not permitted.  No arguments returned.
</td>
<td width="40%"><small>N/A
</td>
</tr>

<tr>
<td><small>SILC_STATUS_ERR_NO_CLIENT_ID</td>
<td><small>
Client ID was expected as command parameter but was not found.  No
arguments returned.
</td>
<td width="40%"><small>N/A
</td>
</tr>

<tr>
<td><small>SILC_STATUS_ERR_NO_CHANNEL_ID</td>
<td><small>
Channel ID was expected as command parameter but was not found.  No
arguments returned.
</td>
<td width="40%"><small>N/A
</td>
</tr>

<tr>
<td><small>SILC_STATUS_ERR_NO_SERVER_ID</td>
<td><small>
Server ID was expected as command parameter but was not found.  No
arguments returned.
</td>
<td width="40%"><small>N/A
</td>
</tr>

<tr>
<td><small>SILC_STATUS_ERR_BAD_CLIENT_ID</td>
<td><small>
Client ID provided was malformed.  Returns the malformed ID.
</td>
<td width="40%"><small>const SilcClientID *client_id
</td>
</tr>

<tr>
<td><small>SILC_STATUS_ERR_BAD_CHANNEL_ID</td>
<td><small>
Channel ID provided was malformed.  Returns the malformed ID.
</td>
<td width="40%"><small>const SilcChannelID *channel_id
</td>
</tr>

<tr>
<td><small>SILC_STATUS_ERR_BAD_SERVER_ID</td>
<td><small>
Server ID provided was malformed.  Returns the malformed ID.
</td>
<td width="40%"><small>const SilcServerID *server_id
</td>
</tr>

<tr>
<td><small>SILC_STATUS_ERR_NO_SUCH_CLIENT_ID</td>
<td><small>
Client ID provided does not exist.  The unknown ID is returned.
</td>
<td width="40%"><small>const SilcClientID *client_id
</td>
</tr>

<tr>
<td><small>SILC_STATUS_ERR_NO_SUCH_CHANNEL_ID</td>
<td><small>
Channel ID provided does not exist.  The unknown ID is returned.
</td>
<td width="40%"><small>const SilcChannelID *channel_id
</td>
</tr>

<tr>
<td><small>SILC_STATUS_ERR_NO_SUCH_SERVER_ID</td>
<td><small>
Server ID provided does not exist.  The unknown ID is returned.
</td>
<td width="40%"><small>const SilcServerID *server_id
</td>
</tr>

<tr>
<td><small>SILC_STATUS_ERR_NOT_ON_CHANNEL</td>
<td><small>
The command required for you to be on channel but you were not.
The channel ID is returned.
</td>
<td width="40%"><small>const SilcChannelID *channel_id
</td>
</tr>

<tr>
<td><small>SILC_STATUS_ERR_USER_NOT_ON_CHANNEL</td>
<td><small>
The requested target client is not on requested channel.  Returns the
target client ID and channel ID.
</td>
<td width="40%"><small>const SilcClientID *client_id,
const SilcChannelID *channel_id
</td>
</tr>

<tr>
<td><small>SILC_STATUS_ERR_USER_ON_CHANNEL</td>
<td><small>
User were invited on channel they already are on.  Returns the
target client ID and channel ID.
</td>
<td width="40%"><small>const SilcClientID *client_id,
const SilcChannelID *channel_id
</td>
</tr>

<tr>
<td><small>SILC_STATUS_ERR_NOT_REGISTERED</td>
<td><small>
User executed command that requires the client to be registered on the
server before it may be executed.  No arguments returned.
</td>
<td width="40%"><small>N/A
</td>
</tr>

<tr>
<td><small>SILC_STATUS_ERR_NOT_ENOUGH_PARAMS</td>
<td><small>
Command required more parameters than provided.  No arguments returned.
</td>
<td width="40%"><small>N/A
</td>
</tr>

<tr>
<td><small>SILC_STATUS_ERR_TOO_MANY_PARAMS</td>
<td><small>
Too many parameters provided for the command.  No arguments returned.
</td>
<td width="40%"><small>N/A
</td>
</tr>

<tr>
<td><small>SILC_STATUS_ERR_PERM_DENIED</td>
<td><small>
Generic permission denied error status, to indicat disallowed access.
No arguments returned.
</td>
<td width="40%"><small>N/A
</td>
</tr>

<tr>
<td><small>SILC_STATUS_ERR_BAD_PASSWORD</td>
<td><small>
Password provided for channel were not accepted.  Returns the channel ID.
</td>
<td width="40%"><small>const SilcChannelID *channel_id
</td>
</tr>

<tr>
<td><small>SILC_STATUS_ERR_CHANNEL_IS_FULL</td>
<td><small>
The channel is full and client cannot join the channel.  Returns the
channel ID.
</td>
<td width="40%"><small>const SilcChannelID *channel_id
</td>
</tr>

<tr>
<td><small>SILC_STATUS_ERR_NOT_INVITED</td>
<td><small>
The channel is invite only channel and client has not been invited.
Returns the channel ID.
</td>
<td width="40%"><small>const SilcChannelID *channel_id
</td>
</tr>

<tr>
<td><small>SILC_STATUS_ERR_BANNED_FROM_CHANNEL</td>
<td><small>
The client has been banned from the channel.  Returns the channel ID.
</td>
<td width="40%"><small>const SilcChannelID *channel_id
</td>
</tr>

<tr>
<td><small>SILC_STATUS_ERR_UNKNOWN_MODE</td>
<td><small>
Mode provided by the client was unknown to or unsupported by the server.
No arguments returned.
</td>
<td width="40%"><small>N/A
</td>
</tr>

<tr>
<td><small>SILC_STATUS_ERR_NOT_YOU</td>
<td><small>
User tried to change someone else's mode which is not allowed.
No arguments returned.
</td>
<td width="40%"><small>N/A
</td>
</tr>

<tr>
<td><small>SILC_STATUS_ERR_NO_CHANNEL_PRIV</td>
<td><small>
Command may be executed only by channel operator.  The next argument is
the channel ID.
</td>
<td width="40%"><small>const SilcChannelID *channel_id
</td>
</tr>

<tr>
<td><small>SILC_STATUS_ERR_NO_CHANNEL_FOPRIV</td>
<td><small>
Command may be executed only by channel founder.  The next argument is
the channel ID.
</td>
<td width="40%"><small>const SilcChannelID *channel_id
</td>
</tr>

<tr>
<td><small>SILC_STATUS_ERR_NO_SERVER_PRIV</td>
<td><small>
Command may be executed only by server operator.  No arguments returned.
</td>
<td width="40%"><small>N/A
</td>
</tr>

<tr>
<td><small>SILC_STATUS_ERR_NO_ROUTER_PRIV</td>
<td><small>
Command may be executed only by router (SILC) operator.  No arguments returned.
</td>
<td width="40%"><small>N/A
</td>
</tr>

<tr>
<td><small>SILC_STATUS_ERR_BAD_NICKNAME</td>
<td><small>
Nickname requested contained illegal characters or was malformed.  No
arguments returned.
</td>
<td width="40%"><small>N/A
</td>
</tr>

<tr>
<td><small>SILC_STATUS_ERR_BAD_CHANNEL</td>
<td><small>
Channel name requested contained illegal characters or was malformed.  No
arguments returned.
</td>
<td width="40%"><small>N/A
</td>
</tr>

<tr>
<td><small>SILC_STATUS_ERR_AUTH_FAILED</td>
<td><small>
The authentication data (passphrase or digital signature) sent as argument
was wrong and thus authentication failed.  No arguments returned.
</td>
<td width="40%"><small>N/A
</td>
</tr>

<tr>
<td><small>SILC_STATUS_ERR_UNKNOWN_ALGORITHM</td>
<td><small>
The server does not support requested algorithm.  Returns the unknown
algorithm.
</td>
<td width="40%"><small>const char *alg_name
</td>
</tr>

<tr>
<td><small>SILC_STATUS_ERR_RESOURCE_LIMIT</td>
<td><small>
Server cannot or will not accept the action due to resource limitations.
No arguments returned.
</td>
<td width="40%"><small>N/A
</td>
</tr>

<tr>
<td><small>SILC_STATUS_ERR_NO_SUCH_SERVICE</td>
<td><small>
Requestes service identifier is unknown.  Returns the unknown service
identifier.
</td>
<td width="40%"><small>const char *service_identifier
</td>
</tr>

<tr>
<td><small>SILC_STATUS_ERR_TIMEDOUT</td>
<td><small>
Operation (command execution) or service request timed out, and thus was
not processed.  This usually happens due to network failure between servers
and routers in the network.  No arguments returned.
</td>
<td width="40%"><small>N/A
</td>
</tr>
<tr>

<td><small>SILC_STATUS_ERR_UNSUPPORTED_PUBLIC_KEY</td>
<td><small>
The public key or certificate type is not supported in ths implementation.
No arguments returned.
</td>
<td width="40%"><small>N/A
</td>
</tr>

<td><small>SILC_STATUS_ERR_OPERATION_ALLOWED</td>
<td><small>
A operation, for example a command, is not allowed or it's execution is
not allowed.  No arguments returned.
</td>
<td width="40%"><small>N/A
</td>
</tr>

</table>

<br />&nbsp;<br />
SILC protocol defines some additional status types but those status
types are not returned in `command_reply' client operation.  Only
the status types 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>