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 © 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 />
<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 />
<a href=silcrng_intro.html><img src=box2.gif border=0 alt=>Introduction to SILC RNG</a><br />
<a href=silcrng.html><img src=box2.gif border=0 alt=>SILC RNG Interface</a><br />
<a href=silccipher.html><img src=box2.gif border=0 alt=>SILC Cipher API</a><br />
<a href=silcpkcs.html><img src=box2.gif border=0 alt=>SILC PKCS API</a><br />
<a href=silcpk.html><img src=box2.gif border=0 alt=>SILC Public Key API</a><br />
<a href=silcpkcs1.html><img src=box2.gif border=0 alt=>SILC PKCS #1 API</a><br />
<a href=silchash.html><img src=box2.gif border=0 alt=>SILC Hash Interface</a><br />
<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 />
<a href=silcclient_using.html><img src=box2.gif border=0 alt=>Using SILC Client Library Tutorial</a><br />
<a href=command_reply_args.html><img src=box2.gif border=0 alt=>Arguments for <b>command_reply</b> Client Operation</a><br />
<a href=silcstatus_args.html><img src=box2.gif border=0 alt=>SilcStatus Error Arguments in <b>command_reply</b> Client Operation</a><br />
<a href=notifyargs.html><img src=box2.gif border=0 alt=>Arguments for <b>notify</b> Client Operation</a><br />
<a href=silcclient_unicode.html><img src=box2.gif border=0 alt=>Unicode and UTF-8 Strings in Client Library</a><br />
<a href=silcclient.html><img src=box2.gif border=0 alt=>Client Library Interface Reference</a><br />
<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 />
<a href=silcmp.html><img src=box2.gif border=0 alt=>SILC MP Interface</a><br />
<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 />
<a href=silcapputil.html><img src=box2.gif border=0 alt=>SILC Application Utilities</a><br />
<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 />
<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 />
<a href=silcasn1.html><img src=box2.gif border=0 alt=>SILC ASN.1 Interface</a><br />
<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 />
<a href=silcske.html><img src=box2.gif border=0 alt=>SILC SKE Interface</a><br />
<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 />
<a href=silcsftp.html><img src=box2.gif border=0 alt=>SILC SFTP Interface</a><br />
<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 />
<a href=silcauth.html><img src=box2.gif border=0 alt=>SILC Authentication Interface</a><br />
<a href=silcmessage.html><img src=box2.gif border=0 alt=>SILC Message Interface</a><br />
<a href=silcchannel.html><img src=box2.gif border=0 alt=>SILC Channel Interface</a><br />
<a href=silccommand.html><img src=box2.gif border=0 alt=>SILC Command Interface</a><br />
<a href=silcnotify.html><img src=box2.gif border=0 alt=>SILC Notify Interface</a><br />
<a href=silcstatus.html><img src=box2.gif border=0 alt=>SILC Status Types</a><br />
<a href=silcmode.html><img src=box2.gif border=0 alt=>SILC Modes</a><br />
<a href=silcid.html><img src=box2.gif border=0 alt=>SILC ID Interface</a><br />
<a href=silcargument.html><img src=box2.gif border=0 alt=>SILC Argument Interface</a><br />
<a href=silcattrs.html><img src=box2.gif border=0 alt=>SILC Attributes Interface</a><br />
<a href=silcpacket.html><img src=box2.gif border=0 alt=>Packet Engine Interface</a><br />
<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 />
<a href=silctypes.html><img src=box2.gif border=0 alt=>Basic Types and Definitions</a><br />
<a href=silcbuffer.html><img src=box2.gif border=0 alt=>Data Buffer Interface</a><br />
<a href=silcbuffmt.html><img src=box2.gif border=0 alt=>Data Buffer Format Interface</a><br />
<a href=silchashtable.html><img src=box2.gif border=0 alt=>Hash Table Interface</a><br />
<a href=silcmemory.html><img src=box2.gif border=0 alt=>Memory Allocation Interface</a><br />
<a href=silcstack.html><img src=box2.gif border=0 alt=>Data Stack (memory pool) Interface</a><br />
<a href=silcfsm.html><img src=box2.gif border=0 alt=>Finite State Machine Interface</a><br />
<a href=silcthread.html><img src=box2.gif border=0 alt=>Thread Interface</a><br />
<a href=silcmutex.html><img src=box2.gif border=0 alt=>Mutual Exclusion Lock Interface</a><br />
<a href=silccond.html><img src=box2.gif border=0 alt=>Condition Variable Interface</a><br />
<a href=silcatomic.html><img src=box2.gif border=0 alt=>Atomic Operations Interface</a><br />
<a href=silcnet.html><img src=box2.gif border=0 alt=>Network (TCP and UDP) Interface</a><br />
<a href=silcschedule.html><img src=box2.gif border=0 alt=>Scheduler Interface</a><br />
<a href=silcasync.html><img src=box2.gif border=0 alt=>Asynchronous Operation Interface</a><br />
<a href=silcstream.html><img src=box2.gif border=0 alt=>Abstract Stream Interface</a><br />
<a href=silcsocketstream.html><img src=box2.gif border=0 alt=>Socket Stream Interface</a><br />
<a href=silcfdstream.html><img src=box2.gif border=0 alt=>File Descriptor Stream Interface</a><br />
<a href=silcfileutil.html><img src=box2.gif border=0 alt=>File Utility Functions</a><br />
<a href=silcstrutil.html><img src=box2.gif border=0 alt=>String Utility Interface</a><br />
<a href=silcsnprintf.html><img src=box2.gif border=0 alt=>Snprintf Interface</a><br />
<a href=silcutf8.html><img src=box2.gif border=0 alt=>UTF-8 String Interface</a><br />
<a href=silcstringprep.html><img src=box2.gif border=0 alt=>Stringprep Interface</a><br />
<a href=silcutil.html><img src=box2.gif border=0 alt=>Utility Functions</a><br />
<a href=silclist.html><img src=box2.gif border=0 alt=>List Interface</a><br />
<a href=silcdlist.html><img src=box2.gif border=0 alt=>Dynamic List Interface</a><br />
<a href=silcmime.html><img src=box2.gif border=0 alt=>MIME Interface</a><br />
<a href=silctime.html><img src=box2.gif border=0 alt=>Time Utility Functions</a><br />
<a href=silclog.html><img src=box2.gif border=0 alt=>Logging Interface</a><br />
<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 />
<a href=silchttpserver.html><img src=box2.gif border=0 alt=>SILC HTTP Server Interface</a><br />
<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 /> <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 /> <br /> <br />
<b>notify Client Library operation</b>
<br /> <br />
The 'notify' client operation callback function prototype is as follows:
<br /> <br />
<tt>
void (*notify)(SilcClient client, SilcClientConnection conn,
SilcNotifyType type, ...);
</tt>
<br /> <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 /> <br />
<tt>
switch(type)<br />
{<br />
case SILC_NOTIFY_TYPE_NONE:<br />
...<br />
break;<br />
case SILC_NOTIFY_TYPE_INVITE:<br />
...<br />
break;<br />
case SILC_NOTIFY_TYPE_JOIN:<br />
...<br />
break;<br />
...<br />
}
</tt>
<br /> <br /> <br />
<b>Arguments</b>
<br /> <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 /> <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 /> <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 © 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>
|