File: notifyargs.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 (477 lines) | stat: -rw-r--r-- 22,728 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

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

<br />&nbsp;<br />
The SILC Client Library 'notify' client operation (which is part of the
<a href="silcclient-SilcClientOperations.html">
SilcClientOperation</a> callback functions) returns different kind of
notifications from the SILC server to the SILC client.  The 'notify'
client operation implementation has a variable argument list to deliver
<a href="silcnotify-SilcNotifyType.html">SilcNotifyType</a> type specific arguments to the application.  This document
describes these arguments for all notify types to help SILC client
software developers to handle the incoming notifications.

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

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

<br />&nbsp;<br />
<tt>
&nbsp;&nbsp;void (*notify)(SilcClient client, SilcClientConnection conn,
SilcNotifyType type, ...);
</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, and the `type' is
the notify type enumeration sent by the server.  Rest of the arguments are
`type' specific and implementation should handle them by the
SilcNotifyType for example in a <tt>switch</tt> statement.  The notify
types are defined in lib/silccore/silcnotify.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_NOTIFY_TYPE_NONE:<br />
&nbsp;&nbsp;&nbsp;&nbsp;...<br />
&nbsp;&nbsp;&nbsp;&nbsp;break;<br />
&nbsp;&nbsp;&nbsp;&nbsp;case SILC_NOTIFY_TYPE_INVITE:<br />
&nbsp;&nbsp;&nbsp;&nbsp;...<br />
&nbsp;&nbsp;&nbsp;&nbsp;break;<br />
&nbsp;&nbsp;&nbsp;&nbsp;case SILC_NOTIFY_TYPE_JOIN:<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 notify types and arguments that the
client library sends in the 'notify' 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.  The SilcNotifyType
arguments per notify type is 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_NOTIFY_TYPE_NONE</td>
<td><small>
A message from server that usually does not include any critical
information.  Application may ignore this or display it for the user.
The 'message' argument may be NULL.
</td>
<td width="50%"><small>char *message</td>
</tr>

<tr>
<td><small>SILC_NOTIFY_TYPE_INVITE</td>
<td><small>
Sent to the client if the user is invited on a channel. The 'channel
argument may be NULL but the `channel_name' is always provided.
</td>
<td width="50%"><small>SilcChannelEntry channel, char *channel_name,
SilcClientEntry inviter
</td>
</tr>

<tr>
<td><small>SILC_NOTIFY_TYPE_JOIN</td>
<td><small>
Sent when someone joins to a channel.  This is also sent whenever you join
a channel, in addition of receiving SILC_COMMAND_JOIN command reply.
</td>
<td width="50%"><small>SilcClientEntry joining_client, SilcChannelEntry channel
</td>
</tr>

<tr>
<td><small>SILC_NOTIFY_TYPE_LEAVE</td>
<td><small>
Sent when someone leaves (parts) the channel.
</td>
<td width="50%"><small>SilcClientEntry leaving_client, SilcChannelEntry channel
</td>
</tr>

<tr>
<td><small>SILC_NOTIFY_TYPE_SIGNOFF</td>
<td><small>
Sent when someone signoff the SILC network.  The 'signoff_message' may be
NULL.  The `signoff_client' is the client signing off.  The `channel' is
the channel where the client was joined.  The `channel' may be NULL.
</td>
<td width="50%"><small>SilcClientEntry signoff_client, char
*signoff_message, SilcChannelEntry channel
</td>
</tr>

<tr>
<td><small>SILC_NOTIFY_TYPE_TOPIC_SET</td>
<td><small>
Sent when the topic of a channel is set/changed.  The 'setter_id_type'
is used to check what type of pointer the 'setter_entry' is.  For
SILC_ID_CLIENT SilcClientEntry, for SILC_ID_SERVER SilcServerEntry and for
SILC_ID_CHANNEL SilcChannelEntry.
</td>
<td width="50%"><small>SilcIdType setter_id_type, void *setter_entry,
char *topic, SilcChannelEntry channel
</td>
</tr>

<tr>
<td><small>SILC_NOTIFY_TYPE_NICK_CHANGE</td>
<td><small>
Sent when someone changes their nickname.  The 'client_entry' is the client
whose nickname is changed.  The `old_nickname' is the old nickname and the
`new_nickname' is the new nickname.  It has been already updated into the
`client_entry'.
</td>
<td width="50%"><small>SilcClientEntry client_entry, const char *old_nickname,
const char *new_nickname
</td>
</tr>

<tr>
<td><small>SILC_NOTIFY_TYPE_CMODE_CHANGE</td>
<td><small>
Sent when channel's mode has changed. The 'changer_id_type'
is used to check what type of pointer the 'changer_entry' is.  For
SILC_ID_CLIENT SilcClientEntry, for SILC_ID_SERVER SilcServerEntry and for
SILC_ID_CHANNEL SilcChannelEntry.  The 'mode' is the mode mask after the
change.  The `cipher_name' is the cipher set for the channel.
The `hmac_name' is the HMAC set for the channel.  The `passphrase'
is the passphrase that was set for the channel.  The `founder_key' is the
founder's public key when it was set for the channel.  The `channel_pubkeys'
is a list of SilcArgumentDecodedList contexts each containing one channel
public key.  The library will free the list automatically.  The arguments
'cipher_name', 'hmac_name', 'passphrase', 'founder_key' and 'channel_pubkeys'
may be NULL.
</td>
<td width="50%"><small>SilcIdType changer_id_type, void *changer_entry,
SilcUInt32 mode, char *cipher_name, char *hmac_name, char *passphrase,
SilcPublicKey founder_key, SilcDList channel_pubkeys, SilcChannelEntry channel
</td>
</tr>

<tr>
<td><small>SILC_NOTIFY_TYPE_CUMODE_CHANGE</td>
<td><small>
Sent when a users mode on a channel has changed. The 'changer_id_type'
is used to check what type of pointer the 'changer_entry' is.  For
SILC_ID_CLIENT SilcClientEntry, for SILC_ID_SERVER SilcServerEntry and for
SILC_ID_CHANNEL SilcChannelEntry.  The 'mode' is the mode mask after the
change.  The 'target_client' is the client whose mode was changed.
</td>
<td width="50%"><small>SilcIdType changer_id_type, void *changer_entry,
SilcUInt32 mode, SilcClientEntry target_client, SilcChannelEntry channel
</td>
</tr>

<tr>
<td><small>SILC_NOTIFY_TYPE_MOTD</td>
<td><small>
Message of the Day from the server.
</td>
<td width="50%"><small>char *motd
</td>
</tr>

<tr>
<td><small>SILC_NOTIFY_TYPE_CHANNEL_CHANGE</td>
<td><small>
Sent when a channel's Channel ID changes.  It is possible that channel's
ID changes and this notify is sent by the server when this happens.
Usually application does not need to handle this notify type and may
safely ignore it when received.
</td>
<td width="50%"><small>SilcChannelEntry channel
</td>
</tr>

<tr>
<td><small>SILC_NOTIFY_TYPE_SERVER_SIGNOFF</td>
<td><small>
Sent when a server quits the network.  The 'clients' is a list of
SilcClientEntry pointers.  Each client in the entry is one client signing
off from the SILC network.  The library will free the list.  The `server'
is the quitting server, and it is NULL if the server isn't cached in the
client library.
</td>
<td width="50%"><small>SilcServerEntry server, SilcDList clients
</td>
</tr>

<tr>
<td><small>SILC_NOTIFY_TYPE_KICKED</td>
<td><small>
Sent when a client (possibly our client) is kicked from a channel.  The
'kick_message' may be NULL.  If our client was kicked then 'kicked' is our
local SilcClientEntry pointer.
</td>
<td width="50%"><small>SilcClientEntry kicked, char *kick_message,
SilcClientEntry kicker, SilcChannelEntry channel
</td>
</tr>

<tr>
<td><small>SILC_NOTIFY_TYPE_KILLED</td>
<td><small>
Sent when a client (possibly our client) is killed from the network.  The
'kill_message' may be NULL.  If our client was killed then 'killed' is our
local SilcClientEntry pointer.  The 'killer_type' is used to check what
type of pointer the 'killer' is.  For SILC_ID_CLIENT SilcClientEntry, for
SILC_ID_SERVER SilcServerEntry and for SILC_ID_CHANNEL SilcChannelEntry.
</td>
<td width="50%"><small>SilcClientEntry killed, char *kill_message,
SilcIdType killer_type, void *killer, SilcChannelEntry channel
</td>
</tr>

<tr>
<td><small>SILC_NOTIFY_TYPE_ERROR</td>
<td><small>
Sent when an error occurs while handling some operation (except command)
from the client.  Application usually cannot handle this notify type and
may safely ignore it.
</td>
<td width="50%"><small>SilcStatus error
</td>
</tr>

<tr>
<td><small>SILC_NOTIFY_TYPE_WATCH</td>
<td><small>
Sent to notify some status change of a client we are wathing.  The
SILC_COMMAND_WATCH is used to manage clients we are wathing and this
notify type is used to deliver information about that client.  If the
client just changed nickname the 'new_nickname' includes the new nickname.
Otherwise this pointer is NULL.  The 'user_mode' is the client's mode in
the SILC network.  The 'notification' contains the notify type that
happened for the 'watched_client' (for example
SILC_NOTIFY_TYPE_NICK_CHANGE if the client changed their nickname).  If
the `new_nickname' is NULL and `notification' is SILC_NOTIFY_TYPE_NONE the
`watched_client' has just joined the network.
</td>
<td width="50%"><small>SilcClientEntry watched_client, char *new_nickname,
SilcUInt32 user_mode, SilcNotifyType notification, SilcPublicKey
public_key
</td>
</tr>

</table>

<br />&nbsp;<br />
SILC protocol defines some additional notify types but those notify types
are not delivered to the application.  Some of those notify types are only
delivered between servers and routers and clients never receive them.
Only the notify 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>