updates.
[website.git] / docs / toolkit / manual / notifyargs.html
1
2 <html>
3 <head>
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">
10   <!--
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; }
15   -->
16  </style>
17 </head>
18
19 <body topmargin="0" leftmargin="0" marginheight="0" marginwidth="0">
20
21 <table border="0" cellspacing="0" cellpadding="6" width="100%">
22  <tr valign="top" bgcolor="#dddddd">
23   <td><small>Copyright &copy; 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>
28    </small></td>
29  </tr>
30 </table>
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>
33 </table>
34
35 <table cellpadding="0" cellspacing="0" border="0">
36  <tr valign="top">
37
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">
41     <tr valign="top"><td>
42 <br />
43 <small>
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. -->
47
48 <a href="index.html"><img src="box.gif" border="0" alt="">SILC Toolkit Reference Manual</a><br />
49
50
51 <a href=silccryptlib.html><img src=box.gif border=0 alt=>SILC Crypto Library</a><br />
52 &nbsp;&nbsp;&nbsp; <a href=silcrng_intro.html><img src=box2.gif border=0 alt=>Introduction to SILC RNG</a><br />
53 &nbsp;&nbsp;&nbsp; <a href=silcrng.html><img src=box2.gif border=0 alt=>SILC RNG Interface</a><br />
54 &nbsp;&nbsp;&nbsp; <a href=silccipher.html><img src=box2.gif border=0 alt=>SILC Cipher API</a><br />
55 &nbsp;&nbsp;&nbsp; <a href=silcpkcs.html><img src=box2.gif border=0 alt=>SILC PKCS API</a><br />
56 &nbsp;&nbsp;&nbsp; <a href=silcpk.html><img src=box2.gif border=0 alt=>SILC Public Key API</a><br />
57 &nbsp;&nbsp;&nbsp; <a href=silcpkcs1.html><img src=box2.gif border=0 alt=>SILC PKCS #1 API</a><br />
58 &nbsp;&nbsp;&nbsp; <a href=silchash.html><img src=box2.gif border=0 alt=>SILC Hash Interface</a><br />
59 &nbsp;&nbsp;&nbsp; <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 &nbsp;&nbsp;&nbsp; <a href=silcauth.html><img src=box2.gif border=0 alt=>SILC Authentication Interface</a><br />
62 &nbsp;&nbsp;&nbsp; <a href=silcmessage.html><img src=box2.gif border=0 alt=>SILC Message Interface</a><br />
63 &nbsp;&nbsp;&nbsp; <a href=silcchannel.html><img src=box2.gif border=0 alt=>SILC Channel Interface</a><br />
64 &nbsp;&nbsp;&nbsp; <a href=silccommand.html><img src=box2.gif border=0 alt=>SILC Command Interface</a><br />
65 &nbsp;&nbsp;&nbsp; <a href=silcnotify.html><img src=box2.gif border=0 alt=>SILC Notify Interface</a><br />
66 &nbsp;&nbsp;&nbsp; <a href=silcstatus.html><img src=box2.gif border=0 alt=>SILC Status Types</a><br />
67 &nbsp;&nbsp;&nbsp; <a href=silcmode.html><img src=box2.gif border=0 alt=>SILC Modes</a><br />
68 &nbsp;&nbsp;&nbsp; <a href=silcid.html><img src=box2.gif border=0 alt=>SILC ID Interface</a><br />
69 &nbsp;&nbsp;&nbsp; <a href=silcargument.html><img src=box2.gif border=0 alt=>SILC Argument Interface</a><br />
70 &nbsp;&nbsp;&nbsp; <a href=silcattrs.html><img src=box2.gif border=0 alt=>SILC Attributes Interface</a><br />
71 &nbsp;&nbsp;&nbsp; <a href=silcpacket.html><img src=box2.gif border=0 alt=>Packet Engine Interface</a><br />
72 &nbsp;&nbsp;&nbsp; <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 &nbsp;&nbsp;&nbsp; <a href=silcske.html><img src=box2.gif border=0 alt=>SILC SKE Interface</a><br />
75 &nbsp;&nbsp;&nbsp; <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 &nbsp;&nbsp;&nbsp; <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 &nbsp;&nbsp;&nbsp; <a href=silcmp.html><img src=box2.gif border=0 alt=>SILC MP Interface</a><br />
80 &nbsp;&nbsp;&nbsp; <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 &nbsp;&nbsp;&nbsp; <a href=silcclient_using.html><img src=box2.gif border=0 alt=>Using SILC Client Library Tutorial</a><br />
83 &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 />
84 &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 />
85 &nbsp;&nbsp;&nbsp; <a href=notifyargs.html><img src=box2.gif border=0 alt=>Arguments for <b>notify</b> Client Operation</a><br />
86 &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 />
87 &nbsp;&nbsp;&nbsp; <a href=silcclient.html><img src=box2.gif border=0 alt=>Client Library Interface Reference</a><br />
88 &nbsp;&nbsp;&nbsp; <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 &nbsp;&nbsp;&nbsp; <a href=silcasn1.html><img src=box2.gif border=0 alt=>SILC ASN.1 Interface</a><br />
91 &nbsp;&nbsp;&nbsp; <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 &nbsp;&nbsp;&nbsp; <a href=silchttpserver.html><img src=box2.gif border=0 alt=>SILC HTTP Server Interface</a><br />
94 &nbsp;&nbsp;&nbsp; <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 &nbsp;&nbsp;&nbsp; <a href=silctypes.html><img src=box2.gif border=0 alt=>Basic Types and Definitions</a><br />
97 &nbsp;&nbsp;&nbsp; <a href=silcbuffer.html><img src=box2.gif border=0 alt=>Data Buffer Interface</a><br />
98 &nbsp;&nbsp;&nbsp; <a href=silcbuffmt.html><img src=box2.gif border=0 alt=>Data Buffer Format Interface</a><br />
99 &nbsp;&nbsp;&nbsp; <a href=silchashtable.html><img src=box2.gif border=0 alt=>Hash Table Interface</a><br />
100 &nbsp;&nbsp;&nbsp; <a href=silcmemory.html><img src=box2.gif border=0 alt=>Memory Allocation Interface</a><br />
101 &nbsp;&nbsp;&nbsp; <a href=silcstack.html><img src=box2.gif border=0 alt=>Data Stack (memory pool) Interface</a><br />
102 &nbsp;&nbsp;&nbsp; <a href=silcfsm.html><img src=box2.gif border=0 alt=>Finite State Machine Interface</a><br />
103 &nbsp;&nbsp;&nbsp; <a href=silcthread.html><img src=box2.gif border=0 alt=>Thread Interface</a><br />
104 &nbsp;&nbsp;&nbsp; <a href=silcmutex.html><img src=box2.gif border=0 alt=>Mutual Exclusion Lock Interface</a><br />
105 &nbsp;&nbsp;&nbsp; <a href=silccond.html><img src=box2.gif border=0 alt=>Condition Variable Interface</a><br />
106 &nbsp;&nbsp;&nbsp; <a href=silcatomic.html><img src=box2.gif border=0 alt=>Atomic Operations Interface</a><br />
107 &nbsp;&nbsp;&nbsp; <a href=silcnet.html><img src=box2.gif border=0 alt=>Network (TCP and UDP) Interface</a><br />
108 &nbsp;&nbsp;&nbsp; <a href=silcschedule.html><img src=box2.gif border=0 alt=>Scheduler Interface</a><br />
109 &nbsp;&nbsp;&nbsp; <a href=silcasync.html><img src=box2.gif border=0 alt=>Asynchronous Operation Interface</a><br />
110 &nbsp;&nbsp;&nbsp; <a href=silcstream.html><img src=box2.gif border=0 alt=>Abstract Stream Interface</a><br />
111 &nbsp;&nbsp;&nbsp; <a href=silcsocketstream.html><img src=box2.gif border=0 alt=>Socket Stream Interface</a><br />
112 &nbsp;&nbsp;&nbsp; <a href=silcfdstream.html><img src=box2.gif border=0 alt=>File Descriptor Stream Interface</a><br />
113 &nbsp;&nbsp;&nbsp; <a href=silcfileutil.html><img src=box2.gif border=0 alt=>File Utility Functions</a><br />
114 &nbsp;&nbsp;&nbsp; <a href=silcstrutil.html><img src=box2.gif border=0 alt=>String Utility Interface</a><br />
115 &nbsp;&nbsp;&nbsp; <a href=silcsnprintf.html><img src=box2.gif border=0 alt=>Snprintf Interface</a><br />
116 &nbsp;&nbsp;&nbsp; <a href=silcutf8.html><img src=box2.gif border=0 alt=>UTF-8 String Interface</a><br />
117 &nbsp;&nbsp;&nbsp; <a href=silcstringprep.html><img src=box2.gif border=0 alt=>Stringprep Interface</a><br />
118 &nbsp;&nbsp;&nbsp; <a href=silcutil.html><img src=box2.gif border=0 alt=>Utility Functions</a><br />
119 &nbsp;&nbsp;&nbsp; <a href=silclist.html><img src=box2.gif border=0 alt=>List Interface</a><br />
120 &nbsp;&nbsp;&nbsp; <a href=silcdlist.html><img src=box2.gif border=0 alt=>Dynamic List Interface</a><br />
121 &nbsp;&nbsp;&nbsp; <a href=silcmime.html><img src=box2.gif border=0 alt=>MIME Interface</a><br />
122 &nbsp;&nbsp;&nbsp; <a href=silctime.html><img src=box2.gif border=0 alt=>Time Utility Functions</a><br />
123 &nbsp;&nbsp;&nbsp; <a href=silclog.html><img src=box2.gif border=0 alt=>Logging Interface</a><br />
124 &nbsp;&nbsp;&nbsp; <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 &nbsp;&nbsp;&nbsp; <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 &nbsp;&nbsp;&nbsp; <a href=silcapputil.html><img src=box2.gif border=0 alt=>SILC Application Utilities</a><br />
129 &nbsp;&nbsp;&nbsp; <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 &nbsp;&nbsp;&nbsp; <a href=silcsftp.html><img src=box2.gif border=0 alt=>SILC SFTP Interface</a><br />
132 &nbsp;&nbsp;&nbsp; <a href=silcsftp_fs.html><img src=box2.gif border=0 alt=>SFTP Filesystems Interface</a><br />
133
134 <br />
135 <b>Resource Links</b>
136 <br />
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 />
141
142 </small>
143 <br /><br /><br /><br />
144     </td></tr>
145    </table>
146   </td>
147
148   <td bgcolor="#cccccc" background="dot.gif">
149    <img src="space.gif" width="1" height="1" border="0" alt=""></td>
150
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">
155 <br />
156 <big><b>SilcNotifyType Arguments</b></big>
157
158 <br />&nbsp;<br />
159 The SILC Client Library 'notify' client operation (which is part of the
160 <a href="silcclient-SilcClientOperations.html">
161 SilcClientOperation</a> callback functions) returns different kind of
162 notifications from the SILC server to the SILC client.  The 'notify'
163 client operation implementation has a variable argument list to deliver
164 <a href="silcnotify-SilcNotifyType.html">SilcNotifyType</a> type specific arguments to the application.  This document
165 describes these arguments for all notify types to help SILC client
166 software developers to handle the incoming notifications.
167
168 <br />&nbsp;<br />&nbsp;<br />
169 <b>notify Client Library operation</b>
170
171 <br />&nbsp;<br />
172 The 'notify' client operation callback function prototype is as follows:
173
174 <br />&nbsp;<br />
175 <tt>
176 &nbsp;&nbsp;void (*notify)(SilcClient client, SilcClientConnection conn,
177 SilcNotifyType type, ...);
178 </tt>
179
180 <br />&nbsp;<br />
181 The first argument 'client' is the SILC Client Library context, the `conn'
182 is the context for the connection to the remote server, and the `type' is
183 the notify type enumeration sent by the server.  Rest of the arguments are
184 `type' specific and implementation should handle them by the
185 SilcNotifyType for example in a <tt>switch</tt> statement.  The notify
186 types are defined in lib/silccore/silcnotify.h header file.  A short
187 example:
188
189 <br />&nbsp;<br />
190 <tt>
191 &nbsp;&nbsp;switch(type)<br />
192 &nbsp;&nbsp;&nbsp;&nbsp;{<br />
193 &nbsp;&nbsp;&nbsp;&nbsp;case SILC_NOTIFY_TYPE_NONE:<br />
194 &nbsp;&nbsp;&nbsp;&nbsp;...<br />
195 &nbsp;&nbsp;&nbsp;&nbsp;break;<br />
196 &nbsp;&nbsp;&nbsp;&nbsp;case SILC_NOTIFY_TYPE_INVITE:<br />
197 &nbsp;&nbsp;&nbsp;&nbsp;...<br />
198 &nbsp;&nbsp;&nbsp;&nbsp;break;<br />
199 &nbsp;&nbsp;&nbsp;&nbsp;case SILC_NOTIFY_TYPE_JOIN:<br />
200 &nbsp;&nbsp;&nbsp;&nbsp;...<br />
201 &nbsp;&nbsp;&nbsp;&nbsp;break;<br />
202 &nbsp;&nbsp;&nbsp;&nbsp;...<br />
203 &nbsp;&nbsp;&nbsp;&nbsp;}
204 </tt>
205
206 <br />&nbsp;<br />&nbsp;<br />
207 <b>Arguments</b>
208
209 <br />&nbsp;<br />
210 The following table describes all notify types and arguments that the
211 client library sends in the 'notify' client operation to the application.
212 By default all arguments that the library sends to application are valid
213 pointers.  However, it is possible that some pointers may be NULL.  If
214 this is the case it is separately mentioned that the argument may be NULL.
215 In this case application must ignore that argument.  The SilcNotifyType
216 arguments per notify type is as follows:
217
218 <br />&nbsp;<br />
219 <table border="1" width="100%" cellpadding="3" cellspacing="0">
220
221 <tr>
222 <td><small>Name</td>
223 <td><small>Description</td>
224 <td width="50%"><small>Variable Arguments</td>
225 </tr>
226
227 <tr>
228 <td><small>SILC_NOTIFY_TYPE_NONE</td>
229 <td><small>
230 A message from server that usually does not include any critical
231 information.  Application may ignore this or display it for the user.
232 The 'message' argument may be NULL.
233 </td>
234 <td width="50%"><small>char *message</td>
235 </tr>
236
237 <tr>
238 <td><small>SILC_NOTIFY_TYPE_INVITE</td>
239 <td><small>
240 Sent to the client if the user is invited on a channel. The 'channel
241 argument may be NULL but the `channel_name' is always provided.
242 </td>
243 <td width="50%"><small>SilcChannelEntry channel, char *channel_name,
244 SilcClientEntry inviter
245 </td>
246 </tr>
247
248 <tr>
249 <td><small>SILC_NOTIFY_TYPE_JOIN</td>
250 <td><small>
251 Sent when someone joins to a channel.  This is also sent whenever you join
252 a channel, in addition of receiving SILC_COMMAND_JOIN command reply.
253 </td>
254 <td width="50%"><small>SilcClientEntry joining_client, SilcChannelEntry channel
255 </td>
256 </tr>
257
258 <tr>
259 <td><small>SILC_NOTIFY_TYPE_LEAVE</td>
260 <td><small>
261 Sent when someone leaves (parts) the channel.
262 </td>
263 <td width="50%"><small>SilcClientEntry leaving_client, SilcChannelEntry channel
264 </td>
265 </tr>
266
267 <tr>
268 <td><small>SILC_NOTIFY_TYPE_SIGNOFF</td>
269 <td><small>
270 Sent when someone signoff the SILC network.  The 'signoff_message' may be
271 NULL.  The `signoff_client' is the client signing off.  The `channel' is
272 the channel where the client was joined.  The `channel' may be NULL.
273 </td>
274 <td width="50%"><small>SilcClientEntry signoff_client, char
275 *signoff_message, SilcChannelEntry channel
276 </td>
277 </tr>
278
279 <tr>
280 <td><small>SILC_NOTIFY_TYPE_TOPIC_SET</td>
281 <td><small>
282 Sent when the topic of a channel is set/changed.  The 'setter_id_type'
283 is used to check what type of pointer the 'setter_entry' is.  For
284 SILC_ID_CLIENT SilcClientEntry, for SILC_ID_SERVER SilcServerEntry and for
285 SILC_ID_CHANNEL SilcChannelEntry.
286 </td>
287 <td width="50%"><small>SilcIdType setter_id_type, void *setter_entry,
288 char *topic, SilcChannelEntry channel
289 </td>
290 </tr>
291
292 <tr>
293 <td><small>SILC_NOTIFY_TYPE_NICK_CHANGE</td>
294 <td><small>
295 Sent when someone changes their nickname.  The 'client_entry' is the client
296 whose nickname is changed.  The `old_nickname' is the old nickname and the
297 `new_nickname' is the new nickname.  It has been already updated into the
298 `client_entry'.
299 </td>
300 <td width="50%"><small>SilcClientEntry client_entry, const char *old_nickname,
301 const char *new_nickname
302 </td>
303 </tr>
304
305 <tr>
306 <td><small>SILC_NOTIFY_TYPE_CMODE_CHANGE</td>
307 <td><small>
308 Sent when channel's mode has changed. The 'changer_id_type'
309 is used to check what type of pointer the 'changer_entry' is.  For
310 SILC_ID_CLIENT SilcClientEntry, for SILC_ID_SERVER SilcServerEntry and for
311 SILC_ID_CHANNEL SilcChannelEntry.  The 'mode' is the mode mask after the
312 change.  The `cipher_name' is the cipher set for the channel.
313 The `hmac_name' is the HMAC set for the channel.  The `passphrase'
314 is the passphrase that was set for the channel.  The `founder_key' is the
315 founder's public key when it was set for the channel.  The `channel_pubkeys'
316 is a list of SilcArgumentDecodedList contexts each containing one channel
317 public key.  The library will free the list automatically.  The arguments
318 'cipher_name', 'hmac_name', 'passphrase', 'founder_key' and 'channel_pubkeys'
319 may be NULL.
320 </td>
321 <td width="50%"><small>SilcIdType changer_id_type, void *changer_entry,
322 SilcUInt32 mode, char *cipher_name, char *hmac_name, char *passphrase,
323 SilcPublicKey founder_key, SilcDList channel_pubkeys, SilcChannelEntry channel
324 </td>
325 </tr>
326
327 <tr>
328 <td><small>SILC_NOTIFY_TYPE_CUMODE_CHANGE</td>
329 <td><small>
330 Sent when a users mode on a channel has changed. The 'changer_id_type'
331 is used to check what type of pointer the 'changer_entry' is.  For
332 SILC_ID_CLIENT SilcClientEntry, for SILC_ID_SERVER SilcServerEntry and for
333 SILC_ID_CHANNEL SilcChannelEntry.  The 'mode' is the mode mask after the
334 change.  The 'target_client' is the client whose mode was changed.
335 </td>
336 <td width="50%"><small>SilcIdType changer_id_type, void *changer_entry,
337 SilcUInt32 mode, SilcClientEntry target_client, SilcChannelEntry channel
338 </td>
339 </tr>
340
341 <tr>
342 <td><small>SILC_NOTIFY_TYPE_MOTD</td>
343 <td><small>
344 Message of the Day from the server.
345 </td>
346 <td width="50%"><small>char *motd
347 </td>
348 </tr>
349
350 <tr>
351 <td><small>SILC_NOTIFY_TYPE_CHANNEL_CHANGE</td>
352 <td><small>
353 Sent when a channel's Channel ID changes.  It is possible that channel's
354 ID changes and this notify is sent by the server when this happens.
355 Usually application does not need to handle this notify type and may
356 safely ignore it when received.
357 </td>
358 <td width="50%"><small>SilcChannelEntry channel
359 </td>
360 </tr>
361
362 <tr>
363 <td><small>SILC_NOTIFY_TYPE_SERVER_SIGNOFF</td>
364 <td><small>
365 Sent when a server quits the network.  The 'clients' is a list of
366 SilcClientEntry pointers.  Each client in the entry is one client signing
367 off from the SILC network.  The library will free the list.  The `server'
368 is the quitting server, and it is NULL if the server isn't cached in the
369 client library.
370 </td>
371 <td width="50%"><small>SilcServerEntry server, SilcDList clients
372 </td>
373 </tr>
374
375 <tr>
376 <td><small>SILC_NOTIFY_TYPE_KICKED</td>
377 <td><small>
378 Sent when a client (possibly our client) is kicked from a channel.  The
379 'kick_message' may be NULL.  If our client was kicked then 'kicked' is our
380 local SilcClientEntry pointer.
381 </td>
382 <td width="50%"><small>SilcClientEntry kicked, char *kick_message,
383 SilcClientEntry kicker, SilcChannelEntry channel
384 </td>
385 </tr>
386
387 <tr>
388 <td><small>SILC_NOTIFY_TYPE_KILLED</td>
389 <td><small>
390 Sent when a client (possibly our client) is killed from the network.  The
391 'kill_message' may be NULL.  If our client was killed then 'killed' is our
392 local SilcClientEntry pointer.  The 'killer_type' is used to check what
393 type of pointer the 'killer' is.  For SILC_ID_CLIENT SilcClientEntry, for
394 SILC_ID_SERVER SilcServerEntry and for SILC_ID_CHANNEL SilcChannelEntry.
395 </td>
396 <td width="50%"><small>SilcClientEntry killed, char *kill_message,
397 SilcIdType killer_type, void *killer, SilcChannelEntry channel
398 </td>
399 </tr>
400
401 <tr>
402 <td><small>SILC_NOTIFY_TYPE_ERROR</td>
403 <td><small>
404 Sent when an error occurs while handling some operation (except command)
405 from the client.  Application usually cannot handle this notify type and
406 may safely ignore it.
407 </td>
408 <td width="50%"><small>SilcStatus error
409 </td>
410 </tr>
411
412 <tr>
413 <td><small>SILC_NOTIFY_TYPE_WATCH</td>
414 <td><small>
415 Sent to notify some status change of a client we are wathing.  The
416 SILC_COMMAND_WATCH is used to manage clients we are wathing and this
417 notify type is used to deliver information about that client.  If the
418 client just changed nickname the 'new_nickname' includes the new nickname.
419 Otherwise this pointer is NULL.  The 'user_mode' is the client's mode in
420 the SILC network.  The 'notification' contains the notify type that
421 happened for the 'watched_client' (for example
422 SILC_NOTIFY_TYPE_NICK_CHANGE if the client changed their nickname).  If
423 the `new_nickname' is NULL and `notification' is SILC_NOTIFY_TYPE_NONE the
424 `watched_client' has just joined the network.
425 </td>
426 <td width="50%"><small>SilcClientEntry watched_client, char *new_nickname,
427 SilcUInt32 user_mode, SilcNotifyType notification, SilcPublicKey
428 public_key
429 </td>
430 </tr>
431
432 </table>
433
434 <br />&nbsp;<br />
435 SILC protocol defines some additional notify types but those notify types
436 are not delivered to the application.  Some of those notify types are only
437 delivered between servers and routers and clients never receive them.
438 Only the notify types listed above are delivered to application.
439 <br /><br /><br /><br />
440     </td></tr>
441    </table>
442   </td>
443
444   <td bgcolor="#cccccc" background="dot.gif">
445    <img src="space.gif" width="1" height="1" border="0" alt=""></td>
446
447   <td width="180" bgcolor="#f0f0f0">
448     <img src="space.gif" width="1" height="1" border="0" alt="">
449     <table width="100%" cellpadding="4" cellspacing="0">
450     <tr valign="top"><td>
451 <br />
452 <font face="Helvetica,Arial,Sans-serif" size="1">
453 </font>
454
455 <br /><br /><br /><br />
456     </td></tr>
457     </table>
458   </td>
459 </tr>
460 </table>
461
462 <table border="0" cellspacing="0" cellpadding="0" width="100%">
463 <tr bgcolor="#444444"><td><img src="space.gif" width="1" height="1"border="0" alt="" ></td></tr>
464 </table>
465 <table border="0" cellspacing="0" cellpadding="6" width="100%">
466  <tr valign="top" bgcolor="#dddddd">
467   <td><small>Copyright &copy; 2001 - 2007 SILC Project<br />
468     <a href="http://silcnet.org">SILC Project Website</a></small></td>
469   <td align="right"><small>
470    <a href="index.html">SILC Toolkit Reference Manual</a><br />
471    <a href="toolkit_index.html">Index</a></small></td>
472    </small></td>
473  </tr>
474 </table>
475
476 </body>
477 </html>