Wed Dec 14 19:21:42 CET 2005 Jochen Eisinger <coffee@silcnet.org>
[silc.git] / CHANGES
1 Wed Dec 14 19:21:42 CET 2005 Jochen Eisinger <coffee@silcnet.org>
2
3         * Fixed autodist configuration for sic-client.  Affected file
4           configure.ad
5         * Honor user set hostname.  Also give the user a chance to
6           read the error message.  Affected file 
7           apps/irssi/src/silc/core/silc-core.c
8
9 Tue Nov 29 07:52:11 CET 2005 Patrik Weiskircher <pat@icore.at>
10
11         * Fixed compile error on non-i386.  Affected file 
12           lib/silccrypt/sha256.c.
13
14 Mon Nov 21 19:18:15 EET 2005 Pekka Riikonen <priikone@silcnet.org>
15
16         * Added SILC_ATTRIBUTE_USER_ICON to lib/silccore/silcattrs.[ch].
17
18 Sun Nov 20 19:13:35 EET 2005 Pekka Riikonen <priikone@silcnet.org>
19
20         * Removed callback system from SilcMimeAssembler.  Return
21           the multipart type in silc_mime_get_multiparts.  Affected
22           files are lib/silcutil/silcmime.[ch].
23
24 Sat Nov 19 17:34:51 EET 2005 Pekka Riikonen <priikone@silcnet.org>
25
26         * Added SilcMime API to lib/silcutil/silcmime.[ch].  The old
27           silc_mime_parse is available but deprecated.
28
29         * Check that packet is valid when processing key exchange,
30           authentication and rekey protocols.  Fixes a crashbug.
31           Affected files are apps/silcd/protocol.c and
32           lib/silcclient/protocol.c.
33
34         * Added SILC_HASH_MAXLEN to lib/silccrypt/silchash.h, and changed
35           all hash buffers to use that instead of fixed values.
36
37 Wed Nov 16 15:47:12 EET 2005  Pekka Riikonen <priikone@silcnet.org>
38
39         * Added SHA-256 to crypto library.  The SHA-256 takes now
40           precedence over SHA-1.
41
42 Wed Nov 16 00:36:53 CET 2005  Jochen Eisinger <c0ffee@penguin-breeder.org>
43
44         * fixed wrong return code in term_init.  Affected file
45           apps/irssi/src/fe-text/terminfo-core.c
46           
47 Mon Sep 12 18:13:38 CEST 2005  Jochen Eisinger <c0ffee@penguin-breeder.org>
48
49         * and it doesn't return FILE* but a file descriptor.  Affected
50           file apps/silcd/silcd.c
51
52 Mon Sep  5 18:40:22 CEST 2005  Jochen Eisinger <c0ffee@penguin-breeder.org>
53
54         * mkstemp returns -1 on error, thanks to brad@comstyle.com for
55           pointing this out.  Affected file apps/silcd/silcd.c
56
57 Fri Sep  2 23:44:37 CEST 2005  Jochen Eisinger <c0ffee@penguin-breeder.org>
58
59         * Fixed the insecure temporary file creation issue now that it's
60           even on bugtraq... Affected file apps/silcd/silcd.c
61
62 Wed Aug 24 18:27:48 CEST 2005  Patrik Weiskircher <pat@icore.at>
63
64         * Before creating a channel key we need to remove the private key
65           mode, otherwise no key is created. Affected file
66           apps/silcd/command.c
67
68 Fri Aug 19 15:20:05 CEST 2005  Patrik Weiskircher <pat@icore.at>
69
70         * Before checking ip/hostname of SilcSocketConnection, check
71           if its not doing a host lookup currently. Fixes atleast one
72           crash when many people connect at the same time.
73           Affected file apps/silcd/server_util.c.
74
75 Thu May 26 20:31:06 EEST 2005  Pekka Riikonen <priikone@silcnet.org>
76
77         * Check for valid return value from regcomp.  Affected file
78           lib/silcutil/unix/silcunixutil.c.
79
80 Tue May 10 19:55:13 EEST 2005  Pekka Riikonen <priikone@silcnet.org>
81
82         * Check for FD_SETSIZE in silc_select to not go over.
83           Affected file lib/silcutil/unix/silcunixschedule.c.
84
85 Tue May 10 15:11:53 EEST 2005  Pekka Riikonen <priikone@silcnet.org>
86
87         * Rewritten SILC Log API.  Affected files lib/silcutil/silclog.[ch].
88
89 Mon May  9 12:00:08 EEST 2005  Pekka Riikonen <priikone@silcnet.org>
90
91         * Fixed channel public key list saving on JOIN command reply
92           on backup router.  Affected file apps/silcd/command_reply.c.
93
94 Mon May  2 10:42:49 EEST 2005  Pekka Riikonen <priikone@silcnet.org>
95
96         * Added default limit how many channels client can join,
97           default is 50.  Added 'channel_join_limit' configuration
98           option to server too.  Affected files are apps/silcd/command.c
99           and serverconfig.[ch].
100
101 Sun May  1 17:42:55 EEST 2005  Pekka Riikonen <priikone@silcnet.org>
102
103         * --without-silc -> --with-silc, --without-irssi -> --with-irssi.
104           On Toolkit the server and client are not compiled by default.
105           Affected file configure.ad.
106
107 Thu Apr 28 15:57:37 EEST 2005  Pekka Riikonen <priikone@silcnet.org>
108
109         * Added lib/contrib/getopt.[ch] for platforms that don't
110           have it (it is not GPL implementation).
111
112         * Fixed compilation when pkg-config is used.
113
114 Wed Apr 27 11:49:41 EEST 2005  Pekka Riikonen <priikone@silcnet.org>
115
116         * A comma in invite/ban string is invalid, check for it.
117           Affected file apps/silcd/server_util.c.
118
119         * Added SERVICE command to the server.  It parses the command
120           request but SILC Server does not support services for the
121           time being.  Affected file apps/silcd/command.[ch].
122
123         * Added SERVICE command and command reply to client library.
124           It is however incomplete.  Updated Toolkit documentation.
125           Affected files are lib/silcclient/command[_reply].[ch].
126
127         * Fixed IDENTIFY/WHOWAS command reply to send the username
128           correctly (uninitialized buffer).  Affected file is
129           apps/silcd/server_query.c.
130
131 Mon Apr 25 14:25:24 EEST 2005  Pekka Riikonen <priikone@silcnet.org>
132
133         * Moved silcer/, silc/, silcd/ and irssi/ to apps/.  This
134           finalizes the major restructuring of the CVS tree.
135
136 Mon Apr 25 00:39:30 EEST 2005  Pekka Riikonen <priikone@silcnet.org>
137
138         * Send empty MOTD reply if MOTD file cannot be read.
139           Affected file silcd/command.c.
140
141 Sun Apr 24 12:01:37 EEST 2005  Pekka Riikonen <priikone@silcnet.org>
142
143         * Optimized primer number generator to use simpler conversion
144           routines.  Also assure that the prime number will have the
145           highest bit set after modifying it.  Affected file is
146           lib/silcmath/silcprimegen.c.
147
148         * Added LibTomMath to SILC Math library (SILC_DIST_TMA).
149
150         * Added FastTomMath to SILC Math Library (SILC_DIST_TFM),
151           for now only for testing purposes, it will not be delivered
152           in any distribution for now.
153
154         * Removed NSS MPI from the source tree.  Due to upcoming
155           license change for the SILC Toolkit, we cannot deliver the
156           NSS MPI anymore.  I decided to replace it in all distributions
157           with public domain library.
158
159         * Removed GNU regex from lib/contrib and introduced free
160           GNU compatible regex, lib/contrib/regexpr.[ch].  Added
161           GNU regex compatible API to it (only partial).
162
163         * Removed getopt routines from lib/contrib.
164
165 Fri Apr 22 12:21:44 EEST 2005  Pekka Riikonen <priikone@silcnet.org>
166
167         * Use silc_server_send_command_reply to send replies instead
168           of encoding packet itself.  Affected file silcd/command.c.
169
170         * Added command sending and receiving statistics to server.
171           Affected files in silcd/.
172
173         * GCC 4 warning fixes.  -Wno-pointer-sign option is now used
174           with GCC, for it not to warn about pointer signedness.
175
176 Tue Apr 19 11:57:35 EEST 2005  Pekka Riikonen <priikone@silcnet.org>
177
178         * Added context to the SilcIDCache destructor.  Affected
179           files are lib/silccore/silcidcache.[ch],
180           lib/silcclient/client.c and silcd/server.c.
181
182 Mon Apr 18 09:53:28 EEST 2005  Pekka Riikonen <priikone@silcnet.org>
183
184         * Added pkg-config check to configure.
185
186         * The PublicKeyDir must not be used with Admin block in server
187           config.  Affected file silcd/serverconfig.c.
188
189 Sat Apr 16 20:23:48 EEST 2005  Pekka Riikonen <priikone@silcnet.org>
190
191         * Added Autodist.
192
193 Thu Apr 14 20:25:08 EEST 2005  Pekka Riikonen <priikone@silcnet.org>
194
195         * Handle empty LIST command reply correcttly in server.  Affected
196           file silcd/command_reply.c.
197
198         * Handle empty LIST command reply correctly in client library.
199           The application will now receive one LIST command reply with
200           all arguments set to NULL if there are no channels.  Updated
201           Client Library documentation accordingly.  Affected file
202           lib/silcclient/command_reply.c.
203
204 Tue Apr 12 00:02:09 EEST 2005  Pekka Riikonen <priikone@silcnet.org>
205
206         * Added channel name string stringprep profile to the protocol
207           and implementation to allow a little free'er channel name
208           strings.  Affected files are lib/silcutil/silcstringprep.[ch].
209
210         * Added silc_channel_name_[check|verify] to check and verify
211           channel name strings.  Affected files are
212           lib/silcutil/silcstrutil.[ch].
213
214         * Added support for the new channel name preparation in client
215           library and server.  Affected files in lib/silcclient and
216           silcd/.
217
218 Mon Apr 11 13:40:27 EEST 2005  Pekka Riikonen <priikone@silcnet.org>
219
220         * Added the Autodist into the source tree.  It replaces the
221           old ./prepare.  It can be used to create distributions as
222           previously.  See README.CVS and README.DIST.  See
223           distributions in distdir/.
224
225 Sun Apr 10 11:30:56 EEST 2005  Pekka Riikonen <priikone@silcnet.org>
226
227         * Make sure query sends at least an error back if nothing
228           more is sent.  Affected file silcd/server_query.c.
229
230 Thu Apr  7 14:50:01 EEST 2005  Pekka Riikonen <priikone@silcnet.org>
231
232         * During query, check if the original command caller goes
233           away.  If it does, stop the query.  Affected file
234           silcd/server_query.c.
235
236         * Check for valid channel creation in JOIN command reply.
237           Affected file lib/silcclient/command_reply.c.
238
239         * Handle the resolver counter in silc_client_get_users_by_channel
240           callback correctly.  Fixed auto-join bug in Gaim.  Affected
241           file lib/silcclient/idlist.c.
242
243 Wed Apr  6 16:56:53 EEST 2005  Pekka Riikonen <priikone@silcnet.org>
244
245         * Added some better error messages.  Affected file
246           silcd/command_reply.c and packet_receive.c.
247
248         * Handle error in WATCH command propely on backup router.
249           Affected file silcd/command.c.
250
251         * Fixed freeing of unfreeable variable in WHOIS command reply.
252           Affected file silcd/command_reply.c.
253
254 Wed Apr  6 09:10:31 CEST 2005  Pekka Riikonen <priikone@silcnet.org>
255
256         * Added pkg-config .pc file creation for silc core library
257           and silcclient library.  A patch by c0ffee.
258
259         * Removed the need for GNU Libidn.  Added the simple stringprep
260           from libidn into lib/contrib/.  It is now used also on Windows
261           build.
262
263 Mon Apr  4 15:15:46 EEST 2005  Pekka Riikonen <priikone@silcnet.org>
264
265         * Simplified the invite and ban string handling in the
266           server.  Check for valid invite and ban arguments also.
267           Affected file silcd/server_util.c.
268
269 Sun Apr  3 14:58:53 EEST 2005  Pekka Riikonen <priikone@silcnet.org>
270
271         * Added WATCH list announcing in backup router protocol.
272           Affected files are silcd/command.c, server.c, server_backup.c.
273
274         * Do not change users mode to founder on normal server/backup
275           if the founder mode is set, and user is first one to join.
276           Affected file silcd/pcaket_receive.c.
277
278         * Do not send CUMODE_CHANGE notify back to sender.  Affected
279           file silcd/packet_receive.c.
280
281         * Added getrusage() to take noise in SILC RNG.  A patch by
282           Mika Boström.  Affected files are configure.in.pre,
283           includes/silcincludes.h.in, lib/silccrypt/silcrng.c.
284
285 Sat Apr  2 18:09:30 EEST 2005  Pekka Riikonen <priikone@silcnet.org>
286
287         * Splitted the SILC libraries configuration into a configure
288           fragment into lib/configure.ad.  It is now possible, once
289           this feature is added, to specify whether to compile or not
290           compile included SILC libraries.  Affected files are
291           configure.in.pre, lib/silcmath/mpi/configure.ad,
292           lib/configure.ad, Makefile.defines.pre and
293           Makefile.defines_int.pre.
294
295         * Added --with-silc-includes and --with-silc-libs to configure.
296           If specified the included libs are not compiled, but the
297           specified libs are used.  Pkg-config is not yet supported.
298           Affected file configure.in.pre.
299
300         * Fixed WATCH command handling on backup router.  Router does not
301           send the watch command any more to backup if it originates from
302           backup.  Affected file silcd/command.c.
303
304 Fri Apr  1 18:52:47 EEST 2005  Pekka Riikonen <priikone@silcnet.org>
305
306         * Changed announcing to not announce unregistered clients.
307           Affected file silcd/server.c.
308
309         * Fixed username handling in command reply.  Affected file
310           silcd/command_reply.c.
311
312         * Log files are now 0600.  Affected file lib/silcutil/silclog.c.
313
314 Thu Mar 31 22:34:22 CEST 2005  Patrik Weiskircher <pat@icore.at>
315
316         * Added new define SILC_MACOSX, if __APPLE__ and __MACH__ is defined.
317           Affected file: includes/silcincludes.h.in
318
319         * bool is defined as _Bool on Mac OS X now.
320           Affected file: lib/silcutil/silctypes.h
321
322 Thu Mar 31 08:52:06 EEST 2005  Pekka Riikonen <priikone@silcnet.org>
323
324         * Added support for UTF-8 nicknames, channel names and
325           server names in client library.  Affected files in
326           lib/silcclient/.
327
328         * Added __SILC_HAVE_PTHREAD, __SILC_HAVE_SIM, __SILC_HAVE_LIBIDN,
329           and __SILC_ENABLE_DEBUG to include/silcclient.h for third-party
330           software to check how Toolkit has been compiled.
331
332 Wed Mar 30 22:16:35 EEST 2005  Pekka Riikonen <priikone@silcnet.org>
333
334         * Added silc_utf8_str[n]casecmp into lib/silcutil/silcutf8.[ch].
335
336         * Use silc_utf8_str[n]casecmp instead of strcmp routines
337           in library and in SILC Client when dealing with nicknames
338           and other identifier strings.  Affected file in client lib
339           and irssi.
340
341         * Convert nickname to UTF-8 in /msg and /smsg.  Affected file
342           irssi/src/silc/core/silc-servers.c.
343
344 Wed Mar 30 10:50:02 EEST 2005  Pekka Riikonen <priikone@silcnet.org>
345
346         * Fixed idcache to work with the new identifier strings.
347           Affected file lib/silccore/silcidcache.c.
348
349         * Added UTF-8 hash and compare function for SilcHashTable.
350           Affected file lib/silcutil/silcutil.[ch].
351
352         * Added casefolding stringprep, SILC_CASEFOLD_PREP.
353           Affected file lib/silcutil/silcstringprep.[ch].
354
355         * Changed the identifier string handling to include the original
356           format in client, server, channel entries and normalized
357           format in cache.  Affected files in silcd/.
358
359 Tue Mar 29 16:51:35 EEST 2005  Pekka Riikonen <priikone@silcnet.org>
360
361         * Added support for the new identifier strings and their
362           validity checking.  Nicknames, channel names and usernames
363           can now include practically any kind of letters and various
364           other characters.  Affected files in silcd/ and in libraries.
365
366           NOTE: comparing these strings should now be done with memcmp()
367           to check binary compatibility.  All these strings are normalized
368           and casing is irrelevant.
369
370         * Added silc_identifier_check to lib/silcutil/silcstrutil.[ch]
371           as easy function for applications to check whether identifier
372           strings are valid.
373
374 Tue Mar 29 00:45:11 EEST 2005  Pekka Riikonen <priikone@silcnet.org>
375
376         * Fixed SILC_STRING_LDAP_DN encoding and decoding.  Affected
377           file lib/silcutil/silcutf8.c.
378
379         * Added SILC_STRING_UTF8_ESCAPE to lib/silcutil/silcstrutil.h.
380
381 Mon Mar 28 22:46:23 CEST 2005  Jochen Eisinger <jochen@penguin-breeder.org>
382
383         * Make public key in getkey reply mandatory.  Affected file
384           lib/silcclient/command_reply.c
385
386 Sun Mar 27 19:03:31 CEST 2005  Patrik Weiskircher <pat@icore.at>
387
388         * Added Parameter dont_register_crypto_library to
389           SilcClientParam. If set to TRUE, silcclient library will
390           not initalize the Crypto Libraries and application
391           will need to do it. Affected file lib/silcclient/silcclient.h,
392           lib/silcclient/client.c.
393
394 Sun Mar 27 19:02:48 EEST 2005  Pekka Riikonen <priikone@silcnet.org>
395
396         * Imported new silc_utf8_[encode|decode] routines from
397           my internal SILC 1.1 source tree.  New encodings added:
398           SILC_STRING_LOCALE (SILC_STRING_LANGUAGE is deprecated),
399           SILC_STRING_UTF8, SILC_STRING_PRINTABLE, SILC_STRING_VISIBLE,
400           SILC_STRING_TELETEX, SILC_STRING_NUMERICAL and
401           SILC_STRING_LDAP_DN.
402
403         * Splitted UTF-8 routines into lib/silcutil/silcutf8.[ch].
404
405         * Implemented stringprep (RFC 3454) API.  Internally we use
406           GNU Libidn's stringprep, for now, so it is required now to
407           compile SILC sources.  Added lib/silcutil/silcstringprep.[ch].
408
409         * Added checking for GNU Libidn and --with-libidn to configure.
410
411 Wed Mar 23 11:20:33 CET 2005  Jochen Eisinger <jochen@penguin-breeder.org>
412
413         * If the passphrases entered do not match while generating a new key,
414           completly start over instead of going into an infinite loop asking
415           the user to re-enter the passphrase correctly.  Affected file
416           lib/silcutil/silcapputil.c
417
418 Sun Jan  9 14:28:51 CET 2005  Pekka Riikonen <priikone@silcnet.org>
419
420         * Make sure server is removed from backup list when it is
421           deleted.  Affected files silcd/command.c, server.c,
422           server_util.c.
423
424         * Close socket when connecting to router fails.  Affected
425           file silcd/server.c.
426
427 Tue Jan  4 13:06:26 CET 2005  Jochen Eisinger <jochen@penguin-breeder.org>
428
429         * Adopt configuration toolchain to current auto-tools.
430           Affected files prepare, irssi/configure.in
431         * Revert most of the UTF-8 fixes to SILC Client 1.0.1.  Will
432           redo that.  Affected files irssi/src/silc/core/client_ops.c,
433           irssi/src/fe-common/silc/fe-silc-channels.c
434         * Take over command line options into silcclient data structure.
435           Affected file irssi/src/silc/core/silc-core.c
436
437 Wed Dec  8 16:15:11 CET 2004  Pekka Riikonen <priikone@silcnet.org>
438
439         * Do not try to initiate backup resuming protocol forever.
440           Affected file silcd/server_backup.c.
441
442 Wed Nov 24 18:24:05 CET 2004  Pekka Riikonen <priikone@silcnet.org>
443
444         * ID change in resuming has to be done before changing
445           detached client's modes, since the ID change may fail and
446           leave ghosts on the network.  Affected file is
447           silcd/packet_receive.c.
448
449 Tue Nov 23 16:54:35 CET 2004  Pekka Riikonen <priikone@silcnet.org>
450
451         * Fixed Win32 scheduler to not stuck anymore.  A patch from
452           Juha Räsänen.  Affected file is
453           lib/silcutil/win32/silcwin32schedule.c.
454
455         * Fixed QoS parsing for connection blocks in server.  Affected
456           file is silcd/serverconfig.c.
457
458         * Fixed server statistics increasing in server.  Affected file
459           is silcd/server.c.
460
461         * The CLOSE command now marks backup router as self disconnected
462           to avoid resuming problems.  Affected file silcd/command.c.
463
464 Wed Sep 22 19:46:32 CEST 2004  Patrik Weiskircher <pat@icore.at>
465
466         * When using silc_net_create_connection[_async], and your system can
467           create IPv6 sockets, it will try to connect to the IPv6 host.
468           Now it tries to connect to an IPv4 host if IPv6 fails. Affected
469           file lib/silcutil/unix/silcunixnet.c
470
471 Fri Jun 18 19:26:58 CEST 2004  Pekka Riikonen <priikone@silcnet.org>
472
473         * Check for valid route when receiving packet from router and
474           when routing it to local server in the cell.  A patch from
475           Matt Miller.  Affected files silcd/router.c and server.c.
476
477 Sat May  1 13:55:54 CEST 2004  Patrik Weiskircher <pat@icore.at>
478
479         * Couldn't detach and reattach twice, because of the previous
480           commit. Affected file silcd/packet_receive.c
481
482 Fri Apr 30 19:40:28 CEST 2004  Patrik Weiskircher <pat@icore.at>
483
484         * Added check to ignore Port value if Initiator is FALSE.
485           Remote router coudln't connect if Port was set. Affected file
486           silcd/serverconfig.c
487
488         * If some client tries to resume more than once at the same time,
489           server crashed. Router didn't crash, but showed odd behaviour
490           (didn't allow clients to join anymore, ..). Affected files
491           silcd/packet_receive.c silcd/idlist.h
492
493 Mon Mar 15 21:10:08 EET 2004  Pekka Riikonen <priikone@silcnet.org>
494
495         * Destroy the file transfer session in silc_client_file_close
496           with timeout.  Affected file lib/silcclient/client_ftp.c.
497
498         * Call SFTP server monitor in READ and WRITE after the actual
499           operations.  Affected file lib/silcsftp/sftp_server.c.
500
501 Wed Mar 10 21:30:02 EET 2004  Pekka Riikonen <priikone@silcnet.org>
502
503         * Create one configure script from configure fragments
504           (configure.ad).  This is a first step towards new distribution
505           system.  Affected files prepare, configure.in.pre,
506           lib/silcmath/mpi/configure.ad.
507
508 Wed Mar 10 18:35:24 CET 2004  Jochen Eisinger <jochen@penguin-breeder.org>
509
510         * Removed expiring of client key pair.  Affected file is
511           irssi/src/silc/core/clientutil.c
512
513 Tue Mar  9 17:11:58 EET 2004  Pekka Riikonen <priikone@silcnet.org>
514
515         * Check the number of connections from real number of
516           connections instead of socket number, when deciding if
517           server is full.  Affected files are silcd/server.c,
518           server_internal.h and silcd.c.
519
520         * Clarified the connections_max meaning in General section
521           in doc/example_silcd.conf.in.
522
523         * The reconnect_keep_trying default value set to TRUE
524           if it is not defined in the config file.  Affected file
525           silcd/serverconfig.c.
526
527 Wed Mar  3 15:13:49 CET 2004  Pekka Riikonen <priikone@silcnet.org>
528
529         * Fixed crashbug in connection closing, after a protocol
530           completion callback, which might have closed it already.
531           Affected file silcd/server.c.
532
533         * Fixed rekey with PFS in backup router.  It did not allow
534           rekeys with PFS, and when the rekey protocol timedout
535           it crashed the backup router without the above fix.  Affected
536           file silcd/packet_send.c and server.c.
537
538 Sat Feb 28 16:25:09 EET 2004  Pekka Riikonen <priikone@silcnet.org>
539
540         * The silc_client_add_channel_private_key now returns the
541           private key context if pointer is given as argument.
542           Affected files are lib/silcclient/silcclient.h and
543           client_channel.c.
544
545         * Added support for using channel private keys in SILC
546           Client Library even if the private key mode is not set
547           on the channel.  Affected file lib/silcclient/client_channel.c.
548
549         * The channel private key used to decrypt message is now
550           delivered to the application in the 'channel_messageÃ' client
551           operation.  Affected files are lib/silcclient/silcclient.h
552           and client_channel.c.
553
554         * Fixed wrong arg type for user limit in CMODE command reply.
555           Affected file silcd/command.c.
556
557         * The user limit is now taken and saved to SilcClientEntry in
558           JOIN and CMODE command replies and in CMODE_CHANGE notify.
559           Affected files lib/silcclient/silcclient.h, command_reply.c
560           and client_notify.c.
561
562         * Added support to the new private message key indicator
563           packet.  Added a new function to the client library:
564           silc_client_send_private_message_key_request.  The sender
565           indicates to be initiator, and receiver is responder.
566           Added the indicator to the SilcClientEntry as 'prv_resp'
567           boolean.  Affected files are lib/silcclient/silcclient.h
568           client.[ch], and client_prvmsg.c.
569
570 Fri Feb 27 11:25:26 CET 2004  Pekka Riikonen <priikone@silcnet.org>
571
572         * Fixed the JOIN command calling when called with both
573          -auth and -founder.  Affected file is lib/silcclien/command.c.
574
575 Wed Feb 25 23:12:11 EET 2004  Pekka Riikonen <priikone@silcnet.org>
576
577         * Check watcher list for resumed clients as well.  Affected
578           file is silcd/packet_receive.c.
579
580 Tue Feb 24 16:49:10 EET 2004  Pekka Riikonen <priikone@silcnet.org>
581
582         * Implemented the user limit to the CMODE_CHANGE notify,
583           CMODE command reply and JOIN command reply in server.
584           Affected files are silcd/server.c, command.c, command_reply.c,
585           packet_send.c and packet_receive.c.
586
587 Mon Feb 23 23:31:15 EET 2004  Pekka Riikonen <priikone@silcnet.org>
588
589         * Defined SILC_STRFMT_END that must be used now with
590           silc_buffer_strformat, instead of SILC_STR_END.  Fixes
591           crashes on AMD64.  Affected files are lib/silcutil/silcbuffmt.h,
592           lib/silcclient/silcvcard.c, silcd/server_util.c.
593
594         * Fixed the adding of public key to the WATCH list in server.
595           Fixed the WATCH notify sending to client.  Affected files
596           are silcd/packet_send.[ch], command.c, server_util.c.
597
598         * Implemented the watching by public key in the SILC Client
599           Library and SILC Client.  Affected files are
600           lib/silcclient/command.c and client_notify.c.
601
602 Mon Feb 23 09:30:30 CET 2004  Pekka Riikonen <priikone@silcnet.org>
603
604         * Added support for public key watching in server.  Affected
605           files are silcd/server.c, server_internal.h, command.c,
606           server_util.c.
607
608 Sun Feb 22 19:03:59 EET 2004  Pekka Riikonen <priikone@silcnet.org>
609
610         * Added public key to the SIlcClientEntry.  Affected files
611           are lib/silcclient/silcclient.h, command_reply.c, idlist.c
612
613         * Fixed the get_clients_whois reply processing to return
614           exactly same entries server returned.  Makes it possible
615           to search using attributes.  Affected file is
616           lib/silcclient/idlist.c.
617
618 Sat Feb 21 19:21:57 EET 2004  Pekka Riikonen <priikone@silcnet.org>
619
620         * Save founder key to SilcChannelEntry.  Affected files are
621           lib/silcclient/silcclient.h, command_reply.c, idlist.c.
622
623 Fri Feb 20 20:37:38 EET 2004  Pekka Riikonen <priikone@silcnet.org>
624
625         * Call the monitor callback with _CLOSED status from the
626           silc_client_file_close.  Affected files are
627           lib/silcclient/client_fpt.c, silcclient.h
628
629         * Added silc_client_get_clients_whois which resolves using
630           WHOIS, and supports requested attributes as well.
631           Affected files are lib/silcclient/silcclient.h, idlist.c.
632
633 Fri Feb 19 21:09:22 EET 2004  Pekka Riikonen <priikone@silcnet.org>
634
635         * Added support for asking the destination filename where
636           the downloaded file is saved in the file transfer.  Affected
637           files are lib/silccilent/silcclient.h, client_ftp.c.
638
639 Wed Feb 18 02:46:17 EET 2004  Pekka Riikonen <priikone@silcnet.org>
640
641         * Fixed error handling in resuming data processing.  Affected
642           files are lib/silcclient/client_resume.c and client.c.
643
644 Tue Feb 17 19:34:30 EET 2004  Pekka Riikonen <priikone@silcnet.org>
645
646         * Fixed silc_client_send_private_message to return TRUE correctly.
647           Affected file lib/silcclient/client_prvmsg.c.
648
649         * Added topic to the SilcChannelEntry.  Affected files are
650           lib/silcclient/silcclient.h, command_reply.c, client_notify.c.
651
652 Fri Feb 13 14:19:14 CET 2004  Jochen Eisinger <jochen@penguin-breeder.org>
653
654         * Use conn->cmd_ident for all silc_client_command_call()s.  Affected
655           file lib/silcclient/command.c
656
657 Fri Feb 13 13:53:45 CET 2004  Jochen Eisinger <jochen@penguin-breeder.org>
658
659         * Convert all commands to UTF-8 before passing them to the
660           client library.  Still need to convert replies from UTF-8 to
661           the locale encoding.  Affected file
662           irssi/src/silc/core/silc-cmdqueue.c
663
664 Fri Feb 13 13:13:07 CET 2004  Jochen Eisinger <jochen@penguin-breeder.org>
665
666         * redirect all silc_client_command_calls through a queueing framework.
667           This fixes /CYCLE and the annoying "nick change after auto-joining
668           a channel".  Furthermore it defines one central point where
669           command parameters can be UTF-8-ified.  Affected files
670           irssi/src/silc/core/Makefile, client_ops.c, silc-channels.c,
671           silc-servers.[ch], silc-core.c, silc-cmdqueue.[ch], silc-lag.c
672
673 Fri Feb 13 12:04:41 CET 2004  Jochen Eisinger <jochen@penguin-breeder.org>
674
675         * use asynchronous connect() to establish router connections.
676           Fixes problem when the primary router goes down.  Affected files
677           silcd/server.c, silcd/server_backup.c
678
679 Thu Feb 12 20:09:59 EET 2004  Pekka Riikonen <priikone@silcnet.org>
680
681         * Added SILC_[32|64]_TO_PTR and SILC_PTR_TO_[32|64] macros.
682           Fixed various compilation warnings when type casting ints
683           to pointers or vice versa, of different size.  Updates around
684           the source free.
685
686 Tue Feb  3 23:25:17 EET 2004  Pekka Riikonen <priikone@silcnet.org>
687
688         * Surrogates not allowed in UTF-8 strings, updated decoder.
689           Affected file lib/silcutil/silcstrutil.c.  Added UTF-8
690           testers in lib/silcutil/tests/ directory.
691
692 Wed Jan 14 18:42:44 EET 2004  Pekka Riikonen <priikone@silcnet.org>
693
694         * Added SILC_CLIENT_CONN_ERROR_KE, ERROR_AUTH, ERROR_RESUME and
695           ERROR_TIMEOUT SilcClientConnectionStatus errors.  Affected
696           files are lib/silcclient/silcclient.h, client.c.
697
698 Mon Jan 12 13:01:10 CET 2004  Jochen Eisinger <jochen@penguin-breeder.org>
699
700         * When resuming a session fails, notify the user that the session
701           file needs to be removed eventually.  Affected files
702           irssi/src/fe-common/silc/module-formats.[ch],
703           irssi/src/silc/core/client_ops.c.
704
705 Tue Jan 04 12:16:04 CET 2004  Jochen Eisinger <jochen@penguin-breeder.org>
706
707         * Added DIST_SUBDIRS symbols to include all subdirs in distributions.
708           Affected files lib/silcutil/Makefile.am, lib/silcmath/Makefile.am
709
710         * Typofix in Irssi::Silc module.  Affected file
711           irssi/src/perl/silc/Silc.xs.
712
713 Tue Jan 04 02:43:44 CET 2004  Jochen Eisinger <jochen@penguin-breeder.org>
714
715         * Changed the way NOTICE flagged messages are treated. Added support
716           for notices in queries and signing notices.  Affected files
717           irssi/default.theme; irssi/docs/help/in/notice.in;
718           irssi/src/fe-common/silc/module-formats.[ch], fe-silc-messages.c;
719           irssi/src/silc/core/client_ops.c, silc-channels.c, silc-servers.c
720
721         * Fixed typo in /ACTION help.  Affected file
722           irssi/docs/help/in/action.in
723
724 Mon Jan 03 23:26:38 CET 2004  Jochen Eisinger <jochen@penguin-breeder.org>
725
726         * Fixed typo in perl module.  Affected file
727           irssi/src/perl/silc/Server.xs
728
729         * Changed the way ACTION flagged messages are treated. Added support
730           for actions in queries and signing actions.  Affected files
731           irssi/default.theme; irssi/docs/help/in/action.in;
732           irssi/src/fe-common/silc/module-formats.[ch], fe-silc-messages.c,
733           fe-silc-queries.c; irssi/src/silc/core/client_ops.c, silc-channels.c,
734           silc-servers.[ch]
735
736 Mon Jan 03 16:04:29 CET 2004  Jochen Eisinger <jochen@penguin-breeder.org>
737
738         * Incorrectly reported error when client had to be resolved from
739           server in /SMSG.  Affected file irssi/src/silc/core/silc-servers.c
740
741 Sat Jan  3 16:37:15 EET 2004  Pekka Riikonen <priikone@silcnet.org>
742
743         * Fixed whois public key hash table deleting and adding in
744           detached client case.  Affected file silcd/packet_receive.c.
745
746 Sat Jan 03 12:15:38 CET 2004  Jochen Eisinger <jochen@penguin-breeder.org>
747
748         * Changed filenames of silc/fe module not to collide with filenames
749           from core/fe.  Also seperated public messages printing from
750           query messages printing.  Affected files are all in
751           irssi/src/fe-common/silc.
752
753 Sat Jan  3 12:18:07 EET 2004  Pekka Riikonen <priikone@silcnet.org>
754
755         * Fixed the invite process handling during joining to use
756           correct server name for the client that is matched against
757           the invite string for the channel.  Wrong server name caused
758           inability to join the channel.  Affected file is
759           silcd/command.c.
760
761 Fri Jan  2 23:34:17 EET 2004  Pekka Riikonen <priikone@silcnet.org>
762
763         * Fixed the CUMODE channel founder authentication on normal
764           server to not remove the founder rights on existing founder
765           before checking that router accepts the mode change.  Affected
766           files are silcd/command.c and silcd/packet_receive.c.
767
768         * Remove the server entry correctly when rekey timeouts and
769           remote router connection on normal server is closed.  Fixes
770           a crash where server uses the freed server entry.  Affected
771           file silcd/server.c.
772
773 Fri Jan 02 10:28:15 CET 2004  Jochen Eisinger <jochen@penguin-breeder.org>
774
775         * Add /SILCNET [ADD|REMOVE|LIST] command to manage different SILC
776           networks.  This is the first step in solving the bug about
777           /SERVER ADD -silcnet <silcnet>.  Affected files
778           irssi/docs/in/silcnet.in; irssi/src/fe-common/silc/Makefile.am,
779           fe-silcnet.c, fe-common-silc.c, module-formats.[ch];
780           irssi/src/silc/core/silc-chatnets.[ch], silc-core.c, Makefile.am
781
782 Thu Jan 01 20:11:32 CET 2004  Jochen Eisinger <jochen@penguin-breeder.org>
783
784         * /SMSG and /MMSG now correctly create new queries. Affected files
785           irssi/src/fe-common/silc/fe-messages.c, irssi/scripts/silc-mime.pl
786
787         * Add basic support for SILC protocol specific variables in perl.
788           Affected files irssi/src/perl/silc/*, irssi/configure.in,
789           irssi/src/perl/Makefile.am
790
791 Wed Dec 31 17:06:55 CET 2003  Jochen Eisinger <jochen@penguin-breeder.org>
792
793         * Don't use silc_get_input, it's obviously not reliable.  Fixes
794           issue when the current key expires.  Affect file
795           irssi/src/silc/core/clientutils.c
796
797         * Make the session data filename configurable.  This makes it
798           possible to have different session files for different
799           SILC networks.  Affected files irssi/src/silc/core/silc-core.c,
800           client_ops.[ch], silc-servers.c,
801           irssi/src/silc/fe-common/silc/module-formats.[ch]
802
803         * Use the same set of libtool files for the MPI lib as for the
804           rest of the toolkit.  Affected files lib/silcmath/mpi/config.guess,
805           config.sub, configure.in, install-sh, missing, mkinstalldirs
806
807 Sun Dec 28 21:57:39 EET 2003  Pekka Riikonen <priikone@silcnet.org>
808
809         * Fixed server statistics decrementing error to not go to
810           negative.  Affected file silcd/packet_receive.c.
811
812 Sat Dec 20 14:42:36 EET 2003  Pekka Riikonen <priikone@silcnet.org>
813
814         * Use silc_server_query_add_error to add error in public key
815           search error.  Added support in send_reply to send errors
816           without specific argument.  Affected file silcd/server_query.c.
817
818         * Fixed the WHOIS, IDENTIFY and WHOWAS error handling in SILC
819           Client for NO_SUCH_NICK.  It was against the protocol specs.
820           Affected file irssi/src/silc/core/client_ops.c.
821
822         * Added backwards support for the wrong NO_SUCH_NICK error sending
823           in server.  To be removed in SILC Server 1.0.  Both old clients
824           and clients with fixed error handling now works.  Affected file
825           silcd/server_query.c.
826
827 Sat Dec 20 00:44:47 CET 2003  Patrik Weiskircher <pat@icore.at>
828
829         * fixed a bug in the whois using attributes function where no
830           error was sent if no nickname and client id but the attributes were
831           given to whois. Affected file silcd/server_query.c
832
833 Tue Dec 16 21:34:59 CET 2003  Patrik Weiskircher <pat@icore.at>
834
835         * remove public key from public key hashtable on detach. Affected
836           file silcd/packet_receive.c
837
838         * free public key hashtable before removing clients on server
839           shutdown. Affected file silcd/server.c
840
841         * remove public key prior deleting client-data on killing a client.
842           Affected file silcd/server_util.c
843
844 Sat Dec 06 21:35:14 CET 2003  Patrik Weiskircher <pat@icore.at>
845
846         * Getting the MOTD from other servers works now. Affected
847           files are silcd/command.c and silcd/command_reply.c
848
849 Thu Dec 04 11:33:46 CET 2003  Jochen Eisinger <jochen@penguin-breeder.org>
850
851         * Initialize the variable idletag, since it is tested in
852           silc_core_deinit for its default value.  Affected file
853           irssi/src/silc/core/silc-core.c
854
855 Sun Nov 30 19:47:02 CET 2003  Patrik Weiskircher <pat@icore.at>
856
857         * Fixed signed channel messages across cells. Affected file
858           silcd/packet_send.c
859
860 Fri Nov 28 19:13:21 EET 2003  Pekka Riikonen <priikone@silcnet.org>
861
862         * Changed the SILC_LOG_* macros to not be empty if SILC_DEBUG
863           is not defined.  They can now be safely used in if-statements
864           without braces.  Affected file lib/silcutil/silclog.h.
865
866         * Added the checks for backup closing connection due to error
867           (local or remote) and thus not allow the resuming to occur
868           in reconnect.  Affected files are silcd/packet_send.c
869           and server.c.
870
871 Tue Nov 25 15:20:59 EET 2003  Pekka Riikonen <priikone@silcnet.org>
872
873         * Help file updates.  Affected files in irssi/src/docs/help/in/.
874
875 Wed Nov 23 20:51:21 CET 2003  Patrik Weiskircher <pat@icore.at>
876
877         * Fixed channel messages across cells. Affected file
878           silcd/packet_send.c
879
880 Wed Nov 12 11:34:56 EET 2003  Pekka Riikonen <priikone@silcnet.org>
881
882         * Fixed file transmission accepting in client library to not
883           start the negotiation if user hasn't accepted the transfer,
884           instead create new session for resent transfer.  Affected
885           file lib/silcclient/client_ftp.c.
886
887         * Show the session ID in the file transmision list.  Remove
888           session from list that failed to transfer.  Switch the current
889           session automatically after transmission, and in errors, to new
890           session if other sessions exists in the transfer list.  Affected
891           files are irssi/src/silc/core/silc-servers.c,
892           irssi/src/fe-common/silc/modfule-formats.c.
893
894 Mon Nov 10 14:41:40 CET 2003  Jochen Eisinger <jochen@penguin-breeder.org>
895
896         * Fixed MIME header parsing for the hopefully last time.  Affected
897           file lib/silcutil/silcstrutil.c
898
899 Mon Nov 10 13:03:46 EET 2003  Pekka Riikonen <priikone@silcnet.org>
900
901         * Rewrote the PKCS#1 routines.  Added lib/silccrypt/silcpkcs1.[ch].
902
903         * The SILC RNG is now gauranteed to return non-zero random
904           values.  Affected files are lib/silccrypt/silcrng.[ch].
905
906 Sun Nov  9 20:44:56 EET 2003  Pekka Riikonen <priikone@silcnet.org>
907
908         * Fixed nickname formatting when changing only case of the
909           nickname.  Affected file lib/silcclient/idlist.c.
910
911 Sun Nov  9 19:33:59 CET 2003  Jochen Eisinger <jochen@penguin-breeder.org>
912
913         * Fixed a memory leak and incorrect printing of the "appears as"
914           message.  Affected file irssi/src/silc/core/client_ops.c
915
916 Sun Nov  9 17:45:11 EET 2003  Pekka Riikonen <priikone@silcnet.org>
917
918         * Added CRT (Chinese Remainder Theorem) supported RSA
919           private keys and private key operations.  This significantly
920           increases private key operation efficiency.  No compatibility
921           issues with new or old private keys.  Affected files are
922           lib/silccrypt/rsa.[ch], rsa_internal.h and pkcs1.c.
923
924 Sat Nov  8 13:08:53 EET 2003  Pekka Riikonen <priikone@silcnet.org>
925
926         * Fixed GCC-3.3.2 related compilation warnings from the
927           source tree.
928
929 Fri Nov  7 23:01:47 EET 2003  Pekka Riikonen <priikone@silcnet.org>
930
931         * Removed RC6 from distributions.
932
933 Fri Nov  7 19:38:42 EET 2003  Pekka Riikonen <priikone@silcnet.org>
934
935         * Added some better comments to lib/silccrypt/silcpkcs.h,
936           optimized some routines in lib/silccrypt/silcpkcs.c.
937           Added test_silcpkcs into lib/silccrypt/tests/.
938
939         * Fixed silc_rng_global_init to actually init the global RNG
940           if RNG wasn't provided for it.  Affected file is
941           lib/silccrypt/silrng.c.
942
943 Thu Nov  6 21:08:28 EET 2003  Pekka Riikonen <priikone@silcnet.org>
944
945         * Added silc_hash_table_find_by_context_ext.  Affected files
946           lib/silcutil/silchashtable.[ch].
947
948         * Save the public key on normal server in WHOIS command reply
949           from attributes, if present, and add it to public key hash
950           table.  Fixes WHOIS resolving by public key on normal server.
951
952           Optimized the attributes resolving on normal server to not
953           resolve if we resolved them already from router.
954
955           Affected files are silcd/server_query.c, command_reply.c.
956
957 Wed Nov  5 19:36:30 CET 2003 Patrik Weiskircher <pat@icore.at>
958
959         * Added support for whois using attributes.
960           Affected files silcd/command_reply.c, silcd/packet_receive.c,
961           silcd/server.c, silcd/server_internal.h, silcd/server_query.c,
962           silcd/server_util.c
963
964         * Added support for whois using public key attribute to /WHOIS i
965           client command. Affected files irssi/docs/help/in/whois.in,
966           irssi/src/silc/core/silc-servers.c, lib/silcclient/command.c
967
968 Wed Nov  5 23:37:36 EET 2003 Pekka Riikonen <priikone@silcnet.org>
969
970         * Fixed UMODE setting in server when the client has anonymous
971           mode set.  The mode setting was not working.  Affected file
972           silcd/command.c.
973
974 Mon Nov  2 11:36:08 CET 2003 Jochen Eisinger <jochen@penguin-breeder.org>
975
976         * Fixed some bugs and typos related to sending split messages.
977           Print notification when sending messages with /MMSG.  Affected
978           files irssi/scripts/silc-mime.pl, irssi/src/silc/core/client_ops.c
979
980 Fri Oct 31 12:33:59 EET 2003 Pekka Riikonen <priikone@silcnet.org>
981
982         * Optimized the socket referencing in packet routines, client
983           library and server.  Affected files are lib/silccore/silcpacket.c,
984           lib/silcclient/client.c and silcd/server.c.
985
986         * If silc_socket_set_qos is given with NULL arguments the QoS is
987           reset from the socket.  Affected files are
988           lib/silcutil/silcsockconn.[ch].
989
990 Thu Oct 30 21:23:24 CET 2003 Jochen Eisinger <jochen@penguin-breeder.org>
991
992         * Add a /LISTKEYS command which lists the locally cached
993           client and server keys.  Affected files
994           irssi/src/fe-common/module-formats.[ch],
995           irssi/src/silc/core/silc-{channels,servers}.c
996           irssi/docs/help/in/listkeys.in
997
998 Thu Oct 30 20:23:40 EET 2003 Pekka Riikonen <priikone@silcnet.org>
999
1000         * Check that packet queue purging was successful.  Affected
1001           files lib/silcclient/client.c and silcd/packet_send.c.  Related
1002           to MAC failed errors.
1003
1004         * Do not clear the inbuf even if it is empty if QoS was applied
1005           to it.  Otherwise the QoS data is cleared and MAC failed error
1006           will occur.  Affected file lib/silccore/silcpacket.c.
1007
1008         * Use the rekey period time as rekey protocol timeout value.
1009           If the rekey does not succeed during the rekey period there's
1010           something very wrong, and we most likely end up with wrong keys,
1011           do graceful reconnect then.   Affected file silcd/server.c.
1012
1013         * Take reference of the socket in the parser context, as it's
1014           possible to have the parsers in queue after the socket is
1015           disconnected and this may cause crash.  Affected files are
1016           lib/silccore/silcpacket.c, lib/silcclient/client.c and
1017           silcd/server.c.
1018
1019 Thu Oct 30 17:01:01 EET 2003 Pekka Riikonen <priikone@silcnet.org>
1020
1021         * Fixed KICK command reply sending, it sent to replies.
1022           Affected file silcd/command.c.
1023
1024 Wed Oct 30 14:06:52 CET 2003 Jochen Eisinger <jochen@penguin-breeder.org>
1025
1026         * Finish the silc-mime.pl script. It now supports MIME type
1027           guessing using magic files, signing data messages, executing
1028           MIME handlers in background. Affected files
1029           irssi/scripts/silc-mime.pl and irssi/docs/help/in/mmsg.in
1030
1031         * Changed MIME signal handler to make things easier for the perl
1032           script. Affected files irssi/src/silc/core/client_ops.c,
1033           silc-servers.c, and irssi/docs/signals.txt
1034
1035         * Cleaned up the silc_mime_parse function and fixed detection
1036           of wrapped header lines. Affected file lib/silcutil/silcstrutil.c
1037
1038 Sun Oct 26 21:19:02 EET 2003 Pekka Riikonen <priikone@silcnet.org>
1039
1040         * Resolve the IP for file transfer listener from the connection
1041           socket.  Affected file lib/silcclient/client_ftp.c.
1042
1043         * Accept NULL hostname parameter in the functions
1044           silc_net_check_[local|remote]_by_socket.  Do not reverse lookup
1045           if hostname is not wanted.
1046
1047 Fri Oct 24 21:24:12 CEST 2003  Jochen Eisinger <jochen@penguin-breeder.org>
1048
1049         * Fixed race condition between silc_client_init and
1050           my_silc_scheduler. Affected file irssi/src/silc/core/silc-core.c
1051
1052 Fri Oct 24 16:43:40 EEST 2003  Pekka Riikonen <priikone@silcnet.org>
1053
1054         * Fixed file transfer connection closing when SIGNOFF for
1055           the client is received from server.  Affected file is
1056           lib/silcclient/client_ftp.c.
1057
1058 Tue Oct 21 13:35:57 CEST 2003  Pekka Riikonen <priikone@silcnet.org>
1059
1060         * Check for disconnected socket in QUIT callback.  Affected
1061           file silcd/command.c.
1062
1063 Thu Oct 21 09:43:17 CEST 2003  Jochen Eisinger <jochen@penguin-breeder.org>
1064
1065         * Modified the MIME parsing to allow \n and \r\n as delimiters.
1066           Affected files lib/silcutil/silcstrutil.c
1067
1068         * Cleaned up the escape/unescape functions for correctness and
1069           speed. Affected file irssi/src/silc/core/client_ops.c
1070
1071         * Removed handling for data messages with Content-Type: text/*,
1072           moved parsing of MIME headers to the signal handler, added
1073           support for signing and verifying data messages. Affected
1074           files are irssi/docs/signals.txt, irssi/src/silc/core/client_ops.c,
1075           irssi/src/silc/core/silc-{servers,channels}.c
1076
1077         * Added a perl script for handling data messages based on
1078           information read from Mailcap files. New file
1079           irssi/scripts/silc-mime.pl
1080
1081 Mon Oct 20 16:08:22 EEST 2003  Pekka Riikonen <priikone@silcnet.org>
1082
1083         * Added new SILC_MESSAGE_FLAG_ACK that can  be used to
1084           acknowledge recepetion of a message to the sender.  Updated
1085           protocol specs.
1086
1087 Sat Oct 18 11:55:33 EEST 2003  Pekka Riikonen <priikone@silcnet.org>
1088
1089         * Unregister channel key saving callback when deleting channel.
1090           Affected file lib/silcclient/idlist.c.
1091
1092         * Do not remove the client from channels in NOTIFY_TYPE_SIGNOFF
1093           before calling notify client operation.  Affected file is
1094           lib/silcclient/client_notify.c.
1095
1096         * Unregister QoS tasks when deleting the socket connection.
1097           Affected files lib/silcutil/silcsockconn.[ch],
1098           unix/silcunixsockconn.c.
1099
1100         * Implemented latest presence-attrs draft changes.  Affected
1101           files lib/silccore/silcattrs.h and
1102           irssi/src/silc/core/silc-queries.c.
1103
1104 Tue Oct 14 18:24:53 EEST 2003  Pekka Riikonen <priikone@silcnet.org>
1105
1106         * Save old channel keys in list to allow more rapid change
1107           of channel keys if server for some reason does that.  This
1108           avoids loosing so many channel messages due to not having
1109           key to decrypt.  Affected file lib/silcclient/silcclient.h,
1110           idlist.c and client_channel.c.
1111
1112 Mon Oct 13 21:37:47 EEST 2003  Pekka Riikonen <priikone@silcnet.org>
1113
1114         * Continued backup router tests and fixes.  Affected files
1115           silcd/server_backup, server_util.c, server.c.  See TODO.
1116
1117 Sun Oct 12 19:58:18 EEST 2003  Pekka Riikonen <priikone@silcnet.org>
1118
1119         * Fixed SERVER_SIGNOFF handling in servers.  The client
1120           was removed from wrong list thus not removing the client
1121           at all.  Affected file silcd/packet_receive.c.
1122
1123         * Do not execute rekey protocol for disabled connections as
1124           it would never go through.  Affected file silcd/server.c.
1125
1126         * Added timeout for rekey protocol to catch if the protocol
1127           never executes successfully.  Affected files silcd/server.c
1128           and protocol.h.
1129
1130 Sat Oct 11 15:39:22 EEST 2003  Pekka Riikonen <priikone@silcnet.org>
1131
1132         * Abandon packet processing for disconnected sockets.  Check
1133           this always after calling packet processing callback.
1134           Affected file lib/silccore/silcpacket.c.
1135
1136         * Fixed double registration disconnection code in server.
1137           Closed wrong connection.  Affected file silcd/packet_receive.c.
1138
1139 Fri Oct 10 16:27:12 EEST 2003  Pekka Riikonen <priikone@silcnet.org>
1140
1141         * On normal server reconnect to primary during resuming 4
1142           times, then give up.  Affected file silcd/server_backup.c.
1143
1144         * If during reconnecting to routers we notice we have router
1145           connection but no primary router set, the server is in desync.
1146           Reconnect to primary to restore network.  Affected file
1147           silcd/server.c.
1148
1149         * Assure that only one protocol is exeucting at the same time.
1150           Added checks for all protocols.  Affected files are
1151           silcd/server.c and server_backup.c.
1152
1153 Thu Oct  9 20:24:09 EEST 2003  Pekka Riikonen <priikone@silcnet.org>
1154
1155         * Check that a string is not already part on invite/ban
1156           string when processing it.  Affected file silcd/server_util.c.
1157
1158 Thu Oct  9 12:06:40 CEST 2003  Pekka Riikonen <priikone@silcnet.org>
1159
1160         * Fixed the CUMODE_CHANGE for founder mode changes to comply
1161           with 1.2 version of the protocol.  Affected file is
1162           silcd/packet_receive.c.
1163
1164 Wed Oct  8 19:41:15 EEST 2003  Pekka Riikonen <priikone@silcnet.org>
1165
1166         * ERR_BAD_PASSWORD now returns the Channel ID of the channel
1167           where the passphrase was given.  Affected file is
1168           silcd/command.c.
1169
1170 Wed Oct  8 09:32:12 CEST 2003  Pekka Riikonen <priikone@silcnet.org>
1171
1172         * INVITE and BAN notifys are now delivered from routers to
1173           servers (but not clients) on the channel.  Updated specs and
1174           code.  Affected files silcd/packet_[send|receive].[ch],
1175           command.c, server.c and server_util.c.
1176
1177         * Implemented INVITE and BAN announcing.  Affected files are
1178           silcd/server.[ch], server_util.c.
1179
1180         * Implemented SilcStatus error type argument returning in
1181           command reply error in server.  Affected file silcd/command.c.
1182
1183         * Implemented SilcStatus argument returning in comand reply
1184           in client library.  The command_reply client operation now
1185           returns error specific arguments as well.  Affected files
1186           are lib/silcclient/command_reply.[ch], client_resume.c,
1187           lib/silccore/silcstatus.[ch].
1188
1189 Sun Oct  5 20:22:08 EEST 2003  Pekka Riikonen <priikone@silcnet.org>
1190
1191         * Backup router protocol version 1.2 implemented.  Testing still
1192           required.  Affected files in silcd/server_backup.[ch], server.c,
1193           packet_receive.c and server_internal.h.
1194
1195 Sun Oct  5 12:36:37 EEST 2003  Pekka Riikonen <priikone@silcnet.org>
1196
1197         * silc_client_send_[channel|private]_message now return TRUE
1198           or FALSE.  Affected file lib/silcclien/client_channel.c and
1199           client_prvmsg.c.
1200
1201 Thu Oct  2 17:03:09 EEST 2003  Pekka Riikonen <priikone@silcnet.org>
1202
1203         * Check for explicit nickname in INVITE and BAN processing
1204           during join as well (and don't expect only wildcards in
1205           invite/ban strings).  Affected file silcd/command.c.
1206
1207         * Fixed the INVITE and BAN by public key.  The public key saved
1208           is the PK payload (as specified) not the raw data.  Affected
1209           file silcd/server_util.c.
1210
1211 Wed Oct  1 20:29:06 EEST 2003  Pekka Riikonen <priikone@silcnet.org>
1212
1213         * UTF-8 text message support for actions and notices in SILC
1214           Client.  Affected file irssi/src/silc/core/client_ops.c.
1215
1216         * silc_get_username and silc_get_real_name now returns sensible
1217           data on Win32.  Patch by Toni Willberg.  Affected file is
1218           lib/silcutil/win32/silcwin32util.c.
1219
1220 Sun Aug 24 23:35:19 CEST 2003  Jochen Eisinger <c0ffee@penguin-breeder.org>
1221
1222         * Provide a signal handler to send MIME encoded messages and emit
1223           a signal when a MIME encoded message is received. Also document
1224           the signals for usage with the perl interface.
1225
1226           A sample perl script will be supplied at a later point.
1227
1228           Affected files are irssi/docs/signals.txt,
1229           irssi/src/silc/core/client_ops.[ch],
1230           irssi/src/silc/core/silc-{channels,servers}.c
1231
1232 Sun Aug 24 12:58:30 CEST 2003  Jochen Eisinger <c0ffee@penguin-breeder.org>
1233
1234         * Use SILC_COMMAND_PING to estimate the round-trip time to the
1235           server. Use this time to display a lag and disconnect when it
1236           exceeds a specified limit.
1237
1238           Affected files are irssi/src/silc/core/silc-{lag,core}.c.
1239
1240 Mon Aug 11 17:14:17 EEST 2003  Pekka Riikonen <priikone@silcnet.org>
1241
1242         * Remove the channel auth list in normal server if router
1243           encofrces its list during connecting.  Send notify to channel
1244           to remove the mode to remove the list.  Affected files are
1245           silcd/server_util.c and silcd/packet_receive.c.
1246
1247 Wed Aug  6 14:52:04 EEST 2003  Pekka Riikonen <priikone@silcnet.org>
1248
1249         * Added support for channel public keys.  Updated protocol specs
1250           and implemented it.  Affected files are
1251           silcd/command.c, command_reply.c, lib/silcclient/command.c,
1252           lib/silcclient/command_reply.c.
1253
1254 Wed Jul 23 12:17:01 EEST 2003  Pekka Riikonen <priikone@silcnet.org>
1255
1256         * Ignore SIGXFSZ and SIGXCPU signals in server.  They can
1257           terminate the process on Linux.  Affected file silcd/silcd.c.
1258
1259 Mon Jun  2 19:13:27 EEST 2003  Pekka Riikonen <priikone@silcnet.org>
1260
1261         * Check for NULL buffer in silc_buffer_clear.  Affected file
1262           is lib/silcutil/silcbuffer.h.
1263
1264         * Simplified the backup router protocol by removing the _GLOBAL
1265           types.  Updated protocol specs and the code.  Affected files
1266           are silcd/server_backup.[ch].
1267
1268 Thu Apr 24 19:50:25 EEST 2003  Pekka Riikonen <priikone@silcnet.org>
1269
1270         * Deny '@' and '!' from nicknames since they are reserved
1271           by the SILC_COMMAND_INVITE and SILC_COMMAND_BAN commands.
1272           Updated protocol specs and the code.
1273
1274           Affected files are silcd/server_util.[ch].
1275
1276 Wed Apr  9 18:51:59 EEST 2003  Pekka Riikonen <priikone@silcnet.org>
1277
1278         * Fixed stack overflow in Irssi SILC client.  Affected
1279           file irssi/src/silc/core/client_ops.c.
1280
1281         * Check that Host is set in ServerConnection and RouterConnection
1282           in silcd.conf.  Affected file silcd/serverconfig.c.
1283
1284         * Fixed crash in server with protocol completion callbacks,
1285           namely rekey and backup resuming protocols.  Affected files
1286           are silcd/server_backup.c and silcd/server.c.
1287
1288         * Fixed rekey protocol to not restart if it is started already.
1289           Affected files are lib/silcclient/client.c and
1290           silcd/server.c.c
1291
1292 Mon Mar 17 18:35:24 EET 2003  Pekka Riikonen <priikone@silcnet.org>
1293
1294         * Rewrote SilcList, affected file lib/silcutil/silc*list.h.
1295
1296         * Fixed EOF handling in SILC Config, affected file
1297           lib/silcutil/silcconfig.c.
1298
1299         * Fixed buffer overflows in lib/silcutil/silcstrutil.c.
1300
1301         * Fixed RESOLVING flag handling in JOIN notify and other
1302           notifys to handle the resolvings correctly in client library.
1303           Affected file lib/silcclient/client_notify.c.
1304
1305         * Do not send full INVITE and BAN lists in INVITE and BAN
1306           notifys, only the changed information.  Affected file
1307           silcd/command.c.
1308
1309         * Fixed INVITE notify sending in INVITE command, send it
1310           only when needed.  Affected file silcd/command.c.
1311
1312         * Handle the founder key change properly in CMODE_CHANGE
1313           notify.  Bug #122.  Affected file silcd/packet_receive.c.
1314
1315 Sun Mar  9 16:29:20 EET 2003  Pekka Riikonen <priikone@silcnet.org>
1316
1317         * Remove the mark for output (mark it only for input) after
1318           purging outgoing queue.  Prevents the "Error in select()"
1319           floods.  Affected file silcd/packet_send.c.
1320
1321         * Fixed incorrect connection deletion from client library
1322           after calling "connect" client operation.  Could cause
1323           crashes for example during reconnect timeouts.  Affected
1324           files are lib/silcclient/client.c and
1325           irssi/src/silc/core/client_ops.c.
1326
1327         * Check server private key file permissions before starting
1328           the server.  Affected file silcd/serverconfig.c.
1329
1330 Tue Feb  4 22:53:26 EET 2003  Pekka Riikonen <priikone@silcnet.org>
1331
1332         * NULL terminate allocated string in silc_buffer_strformat.
1333           Affected file lib/silcutil/silcbuffmt.c.
1334
1335         * Rewrote the invite/ban list string handling in server to
1336           use SilcBuffer instead.  Affected files are silcd/command.c
1337           and silcd/server_util.c.
1338
1339 Mon Feb  3 14:43:52 CET 2003  Pekka Riikonen <priikone@silcnet.org>
1340
1341         * Fixed double free in CMODE command when setting new HMAC
1342           for channel.  Affected file silcd/command.c.
1343
1344         * Added couple of missing memset's to zero sensitive memory.
1345           Affected files silcd/command.c, lib/silcclient/command.c.
1346
1347 Sun Jan 26 12:20:30 EET 2003  Pekka Riikonen <priikone@silcnet.org>
1348
1349         * Fixed a double free in INVITE command error handling in
1350           server.  Affected file silcd/command.c.
1351
1352         * Added macros SILC_SWAB_[16|32] to swab byte order of
1353           16-bit and 32-bit unsigned integers.  Affected file
1354           lib/silcutil/silctypes.h.
1355
1356         * Use the SILC_SWAB_16 instead of htons() in server when
1357           handling ports since the ports in structures are always
1358           in little-endian order (regardless of platform).  Affected
1359           file silcd/serverid.c and silcd/server_backup.c.
1360
1361 Tue Jan 21 17:18:04 EET 2003  Pekka Riikonen <priikone@silcnet.org>
1362
1363         * Send DISCONNECT in close admin command in server.  Affected
1364           file silcd/command.c.
1365
1366         * Check whether we are already connecting to a remote router
1367           (in addition of checking whether we are already connected)
1368           before creating new connection.  Affected file silcd/server.c.
1369
1370 Thu Jan 16 18:47:00 EET 2003  Pekka Riikonen <priikone@silcnet.org>
1371
1372         * Added better compiler and compiler flags checking in
1373           configure.
1374
1375         * Check that socket is valid after QoS is applied to data.
1376           Affected file lib/silcutil/unix/silcunixsockconn.c.
1377
1378         * Make sure the socket connecetion is not closed to early
1379           when closing connection in server.  Also make sure the
1380           connection is always closed after error in a protocol.
1381           Affected file silcd/server.c.
1382
1383 Wed Jan 15 11:03:36 CET 2003  Pekka Riikonen <priikone@silcnet.org>
1384
1385         * Removed --session and --dummy options from Irssi SILC Client.
1386           -d option is available only if --enable-debug was given.
1387           Affected files are irssi/src/silc/core/silc-core,
1388           irssi/src/core/session.c and irssi/src/fe-text/silc.c.
1389
1390 Tue Jan 14 12:25:09 CET 2003  Pekka Riikonen <priikone@silcnet.org>
1391
1392         * Added silc_buffer_steal to steal the data from the buffer.
1393           Affected file lib/silcutil/silcbuffer.h.
1394
1395 Sat Jan 11 18:16:29 CET 2003  Giovanni Giacobbi <giovanni@giacobbi.net>
1396
1397         * Fixed server crash with double Primary block in config file.
1398
1399           Fixed also various memory leaks around the config file
1400           parser.  Affected files lib/silcutil/silcconfig.c,
1401           silcd/serverconfig.c.
1402
1403         * Changed my nickname (Johnny Mnemonic) to my real name, this
1404           means that bugs introduced by him were actually introduced
1405           by me!
1406
1407 Tue Jan  7 21:58:53 CET 2003  Jochen Eisinger <c0ffee@penguin-breeder.org>
1408
1409         * Don't display "foo appears as foo\nYou're now known as foo"
1410           messages.  Affected file irssi/src/silc/core/client_ops.c
1411
1412 Tue Jan  7 20:08:15 EET 2003  Pekka Riikonen <priikone@silcnet.org>
1413
1414         * Fixed error handling of invalid client entry when calling
1415           commands in server.  Fixes a crash.  Affected file
1416           silcd/command.c.
1417
1418 Thu Dec 26 14:19:29 EET 2002  Pekka Riikonen <priikone@silcnet.org>
1419
1420         * Added some sanity checks in server for correctness of the
1421           server configuration.  Affected file silcd/serverconfig.c.
1422
1423 Fri Dec 20 10:47:59 CET 2002  Pekka Riikonen <priikone@silcnet.org>
1424
1425         * Prevent endless resolving of user informations in USERS
1426           command by checking the command reply status correctly.
1427           Affected file lib/silcclient/command_reply.c.
1428
1429 Tue Dec 17 10:05:00 CET 2002  Pekka Riikonen <priikone@silcnet.org>
1430
1431         * Fixed file writing on WIN32 to use O_BINARY flag.  Affected
1432           file is lib/silcutil/silcfileutil.c.  A patch by Matthew
1433           Aldous <Matthew@Aldous.com>.
1434
1435         * Added better implementation using CriticalSection of
1436           SilcMutex on WIN32.  A patch by Mikko Lähteenmäki
1437           <mikko.lahteenmaki@pikabaana.net>.
1438
1439         * Added some Winsock WIN32 compatiblity defines into
1440           includes/silcwin32.h.
1441
1442 Mon Dec 16 19:33:05 EET 2002  Pekka Riikonen <priikone@silcnet.org>
1443
1444         * Fixed double free in async host lookup code.  Affected file
1445           lib/silcutil/silcsockconn.c.
1446
1447         * On backup router handle now the SERVER_SIGNOFF from router
1448           for local connected servers too, and close the connections.
1449
1450           Do not process them as normally signing off servers when they
1451           really signoff by sending EOF fe, but always assume that
1452           router sends the SERVER_SIGNOFF.
1453
1454           Affected files silcd/server.c and silcd/packet_receive.c.
1455
1456         * Fixed socket unsetting when closing connections.  Affected
1457           files silcd/server.c and silcd/packet_send.c.
1458
1459         * Do not print the nickname in SERVER_SIGNOFF if we do not
1460           have it.  Prevents asserts in Irssi core.  It is possible we
1461           don't have the nick if it was just being resolved when server
1462           signoff.  Affected file irssi/src/silc/core/client_ops.c.
1463
1464 Thu Dec 12 23:22:50 EET 2002  Pekka Riikonen <priikone@silcnet.org>
1465
1466         * Fixed autonick crashbug in client library.  Affected file
1467           lib/silcclient/client.c.
1468
1469         * Fixed Unix implementation of SilcMutex to really assert if
1470           the mutex is locked/unlcoked already.  Affected file
1471           lib/silcutil/unix/silcunixmutex.c.
1472
1473         * Fixed locking in silc_schedule_uninit.  It didn't lock
1474           when dispatching timeout tasks.  Affected file is
1475           lib/silcutil/silcschedule.c.
1476
1477         * Changed Win32 implementation of SilcThread to use modern
1478           Win32 interface.  Affected file is
1479           lib/silcutil/win32/silcwin32thread.c  A patch by Mikko L.
1480
1481 Thu Dec 12 12:06:59 CET 2002 Jochen Eisinger <c0ffee@penguin-breeder.org>
1482
1483         * Don't print signed messages when sending failed.  Affected files
1484           irssi/src/silc/core/silc-[servers.c/commands.h]
1485
1486         * Send adquate signal when founding a channel by joing it.  Affect
1487           file irssi/src/silc/core/client_ops.c
1488
1489 Wed Dec 11 21:46:19 CET 2002 Jochen Eisinger <c0ffee@penguin-breeder.org>
1490
1491         * Fix theme abstracts parsing.  Affected files irssi/default.theme,
1492           irssi/src/fe-common/core/themes.c
1493
1494 Wed Dec 11 20:20:07 EET 2002 Pekka Riikonen <priikone@silcnet.org>
1495
1496         * Fixed close command to use the port correctly when closing
1497           server connections.  Affected file silcd/idlist.c.
1498
1499         * Check for NULL outbuf in silc_socket_write.  It is possible
1500           that it is NULL is some odd case.  Affected files are
1501           lib/silcutil/[unix/win32]/silc[unix/win32]sockconn.c.
1502
1503         * Do not call final protocol callback for backup router
1504           resuming protocol when closing connection.  It is closed
1505           by timeout in case of error.  Affected file silcd/server.c.
1506
1507         * Backup reconnect to router if backup resuming protocol
1508           failed.  Affected file silcd/server_backup.c.
1509
1510 Wed Dec 11 10:01:26 CET 2002 Pekka Riikonen <priikone@silcnet.org>
1511
1512         * Fixed double free in SKE library error hadling when signature
1513           error occurred.  Affected file lib/silcske/silcske.c.
1514
1515         * Save the fingerprint to new SilcClientEntry after changing
1516           nickname.  Affected file lib/silcclient/client_notify.c.
1517
1518         * Print SIGNOFF in Irssi SILC client only if the nickname is
1519           known.  Prevents asserts in Irssi core.  It is possible we
1520           don't have the nick if it was just being resolved when it
1521           quit.  Affected file irssi/src/silc/core/client_ops.c.
1522
1523 Tue Dec 10 21:47:56 EET 2002  Pekka Riikonen <priikone@silcnet.org>
1524
1525         * Fixed double free in invite list adding code when adding
1526           invite strings.  Affected file silcd/server_util.c.
1527
1528 Fri Dec  6 17:40:24 EET 2002  Pekka Riikonen <priikone@silcnet.org>
1529
1530         * More log printing during backup router protocol.  Affected
1531           file silcd/server_backup.c.
1532
1533         * Removed backwards support for old private key file format.
1534           Affected file lib/silccrypt/silcpkcs.c.
1535
1536         * Removed backwards support for not-so-strict decryption length
1537           check, it's strict now.  Affected lib/silccrypt/silccipher.c.
1538
1539         * GETKEY to update the client entrys fingerprint too.
1540           Affected file lib/silcclient/command_reply.c.
1541
1542         * Added --without-libtoolfix for package builders using weird
1543           wrappers around libtool (BSD at least).
1544
1545 Thu Dec  5 22:29:46 EET 2002  Pekka Riikonen <priikone@silcnet.org>
1546
1547         * Fixed backup router bugs:  When backup resumes router and
1548           receives a CHANNEL_MESSAGE packet the backup must not act
1549           as router since the packet header decryption would be
1550           different.  Also, when relaying packets to channel, do
1551           not re-encrypt packets on backup that came from the primary
1552           since the connection isn't really router-router connection.
1553           Affected files silcd/server.c, silcd/packet_send.c.
1554
1555         * Added checks in encryption/decryption that encryption/decryption
1556           length sent as argument really is multiple by block size.  Helps
1557           catching really weird bugs like the above backup router bugs
1558           when packets are being decrypted in wrong way.  Affected files
1559           lib/silccore/silcpacket.c, and lib/silccrypt/silccipher.c.
1560
1561         * Fixed padding generation in private key file encryption.
1562           Affected file lib/silccrypt/silcpkcs.c.
1563
1564 Thu Dec  5 16:35:23 EET 2002  Pekka Riikonen <priikone@silcnet.org>
1565
1566         * Added ignore_message_signatures setting which can be used
1567           to ignore signatures in messages.  Affected files are
1568           irssi/src/silc/core/client_ops.c, silc-core.c.
1569
1570         * Fixed the libtoolfix to use command line options instead of
1571           environment variables.  They didn't work as expected.  Now,
1572           the libtool is fully run-time configurable.
1573
1574 Wed Dec  4 21:08:52 CET 2002  Jochen Eisinger <c0ffee@penguin-breeder.org>
1575
1576         * Verify signature payload for signed messages. Affected files
1577           irssi/src/silc/core/client_ops.h, irssi/src/silc/core/silc-servers.c,
1578           irssi/src/silc/core/silc-core.h
1579
1580         * Display signature verification result in public and private
1581           messages using theme abstracts. See irssi/default.theme for
1582           examples on their usage. Affected files
1583           irssi/default.theme, irssi/src/fe-common/silc/fe-messages.h,
1584           irssi/src/fe-common/silc/module-formats.[ch],
1585           irssi/src/fe-common/silc/fe-common-silc.c,
1586           irssi/src/fe-common/silc/Makefile.am
1587           irssi/src/fe-common/core/fe-messages.[ch]
1588
1589         * Fixed bugs in Irssi's theme parsing. Affected files
1590           irssi/src/fe-common/core/themes.c
1591
1592 Wed Dec  4 18:29:13 EET 2002  Pekka Riikonen <priikone@silcnet.org>
1593
1594         * Calculate the correct length for signed messages before
1595           encrypting, it must be multiple by block size.  Affected
1596           file lib/silccore/silcmessage.c.
1597
1598         * silc_message_signed_get_public_key returns now both
1599           decoded and encoded public key.  Affected files are
1600           lib/silccore/silcmessage.[ch].
1601
1602         * Added libtoolfix script that makes the libtool more generic
1603           and configurable in run-time.  Now we can specify in run-time
1604           if what kind of libraries we want to create, regardless of
1605           configuration.  SIMs are now creates even if --disable-shared
1606           was explicitly given.
1607
1608 Tue Dec  3 23:26:55 EET 2002  Pekka Riikonen <priikone@silcnet.org>
1609
1610         * Fixed founder key sending in CMODE command in client.
1611           Affected file lib/silcclient/command.c.
1612
1613         * Fixed CUMODE founder authentication in server to not check
1614           for client's public key since it's not supposed to do that.
1615           Affected file silcd/command.c.
1616
1617 Tue Dec  3 12:02:41 CET 2002  Jochen Eisinger <c0ffee@penguin-breeder.org>
1618
1619         * Set realname and hostname in NICK_REC records. Affected file
1620           irssi/src/silc/core/silc-nicklist.c
1621
1622 Mon Dec  2 20:50:20 EET 2002  Pekka Riikonen <priikone@silcnet.org>
1623
1624         * Remove 1.0 protocol backwards compat code from client
1625           library.
1626
1627         * Added more reliable check for whether nickname did change
1628           or not, or whether only Client ID changed in NICK_CHANGE
1629           notify.  Affected file lib/silcclient/client_notify.c.
1630           Fixes bug in '@' character handling in a nickname.
1631
1632         * Added support for automatically parsing signature from
1633           the message payload.  Added new function
1634           silc_message_get_signature to return the payload to
1635           application.  Affected files lib/silccore/silcmessage.[ch].
1636
1637         * Changed the private_message and channel_message client
1638           operations to deliver the SilcMessagePayload to the
1639           application too.  Application can use it fe. to get the
1640           signature from the message for verification.  Affected
1641           file lib/silcclient/silcclient.h, client_channel.c and
1642           client_prvmsg.c.
1643
1644         * Redefined the signed payload for message payloads.
1645           Updated protocol specs and implemented.
1646
1647 Mon Dec  2 16:28:29 EET 2002  Pekka Riikonen <priikone@silcnet.org>
1648
1649         * Fixed wrong invite and ban list handling in server command
1650           reply.  Affected files are silcd/command_reply.c,
1651           silcd/server_util.[ch].
1652
1653 Sun Dec  1 20:48:17 EET 2002  Pekka Riikonen <priikone@silcnet.org>
1654
1655         * Fixed CMODE setting in server when founder mode was set.
1656           Affected file silcd/command.c.  Bug #95.
1657
1658         * Added support to setting specific public key in CMODE in
1659           Irssi SILC client.  Affected file lib/silcclient/command.c.
1660
1661         * Added support to use specific public key in CUMODE in
1662           Irssi SILC Client.  Affected file lib/silcclient/command.c.
1663
1664         * Added support for inviting and banning by public key in
1665           Irssi SILC client.  Affected file lib/silcclient/command.c.
1666
1667         * Fixed fingerprint/babbleprint showing in invite and ban
1668           list command replys.  Affected file is
1669           irssi/src/silc/core/client_ops.c.
1670
1671 Sun Dec  1 16:32:03 CET 2002  Jochen Eisinger <c0ffee@penguin-breeder.org>
1672
1673         * Format CMODE +c and +h to display both the mode and the argument
1674
1675 Sun Dec  1 18:17:22 EET 2002  Pekka Riikonen <priikone@silcnet.org>
1676
1677         * Added test vectors and test programs for SHA-1, MD5,
1678           HMAC-SHA1 and HMAC-MD5.  New tests are located in
1679           lib/silccrypt/tests/.  Fixed also argument decoding bug in
1680           MD5 implementation.  Affected file lib/silccrypt/md5.c.
1681
1682         * Changed the channel private key and private message key
1683           generation (with static keys) to use SHA1 instead of MD5,
1684           as SHA1 is the mandatory hash function in SILC.  Affected
1685           file lib/silcclient/client_[channel/prvmsg].c.
1686
1687         * Changed the private key file encryption to use SHA1 instead
1688           of MD5.  Added support for the old generation and added
1689           automatic change of the key (to be removed later).  Affected
1690           files lib/silccrypt/silcpkcs.c.
1691
1692 Sat Nov 30 19:07:52 EET 2002  Pekka Riikonen <priikone@silcnet.org>
1693
1694         * Load only files with .pub suffix in PublicKeyDir.  Affected
1695           file silcd/serverconfig.c.
1696
1697 Sat Nov 30 14:29:34 CET 2002  Johnny Mnemonic <johnny@themnemonic.org>
1698
1699         * Extended the SILC_SERVER_LOG_ERROR macro to all available logging
1700           channels.  Affected files silcd/silcd.c, silcd/server.h.
1701
1702         * Added the config directive PublicKeyDir for the client block.
1703           Affected files doc/exampe_silcd.conf.in, silcd/serverconfig.[ch].
1704
1705 Sat Nov 30 09:30:55 CET 2002  Pekka Riikonen <priikone@silcnet.org>
1706
1707         * Merged Toni's irssi/silc.conf patch.
1708
1709         * ROBODoc cleanup patch to lib/silccrypt/silcpkcs.h by johnny.
1710
1711         * Max alloc tests in allocation routines.  Affected file
1712           lib/silcutil/silcmemory.c.
1713
1714 Fri Nov 29 23:44:29 EET 2002  Pekka Riikonen <priikone@silcnet.org>
1715
1716         * Fixed a typo in resuming code that fixed detach/resume code
1717           in server.  Bug #93.  Affected file silcd/packet_receive.c.
1718
1719 Thu Nov 28 17:17:11 CET 2002  Jochen Eisinger <c0ffee@penguin-breeder.org>
1720
1721         * Do reverse lookups for server when /connecting. Affected files
1722           irssi/silc.conf, irssi/src/core/servers.c, irssi/src/core/network.c,
1723           irssi/src/core/net-nonblock.*
1724
1725 Thu Nov 28 16:19:18 CET 2002  Pekka Riikonen <priikone@silcnet.org>
1726
1727         * Added library versioning for shared libraries.  Affected
1728           files configure.in.pre and lib/Makefile.am.pre.
1729
1730 Wed Nov 27 21:51:52 CET 2002  Jochen Eisinger <c0ffee@penguin-breeder.org>
1731
1732         * Display INVITE and BAN lists as specified by SILC 1.2
1733
1734 Wed Nov 27 16:01:11 CET 2002  Pekka Riikonen <priikone@silcnet.org>
1735
1736         * Do not send invite list back unless asked (when sending
1737           no arguments) or when list was modified.  Affected file
1738           silcd/command.c.
1739
1740         * Remove client from invite list in KILLED notify and in
1741           KILL command.  Affected file silcd/command.c and
1742           silcd/server.[ch].
1743
1744         * Fixed bugs in invite list handling in INVITE command.
1745           Affected files silcd/command.c and silcd/server_util.c.
1746
1747         * Merged with Irssi 0.8.6.
1748
1749         * Fixed UTF-8 in Irssi SILC Client, setlocale was missing.
1750           Affected file irssi/src/fe-text/silc.c.
1751
1752 Mon Nov 25 18:21:43 EET 2002  Pekka Riikonen <priikone@silcnet.org>
1753
1754         * The silc_argument_get_[first/next] now return the argument
1755           type to caller.  Added silc_argument_payload_encode_one.
1756
1757           Affected files are lib/silccore/silcargument.[ch].
1758
1759         * Added support for the SILC 1.2 INVITE command and new
1760           invite lists to server.  Affected files are silcd/command.c,
1761           silcd/server_util.[ch] and silcd/packet_[receive/send].[ch].
1762
1763         * Added support for the SILC 1.2 BAN command and new
1764           ban lists to server.  Affected files are silcd/command.c,
1765           silcd/server_util.[ch] and silcd/packet_[receive/send].[ch].
1766
1767         * Added support to client sending new INVITE command.  Affected
1768           file is lib/silcclient/command.c.
1769
1770         * Added support to client sending new BAN command.  Affected
1771           file is lib/silcclient/command.c.
1772
1773         * Added support for removing client from invite list when kicked
1774           from channel, as SILC 1.2 dictates.  Affected files are
1775           silcd/packet_receive.c and silcd/command.c.
1776
1777 Sun Nov 24 18:26:42 EET 2002  Pekka Riikonen <priikone@silcnet.org>
1778
1779         * If iv argument to silc_cipher_[encrypt/decrypt] is NULL, use
1780           automatically the cipher's internal IV.  Affected files
1781           lib/silccrypt/silccipher.[ch].
1782
1783         * Assure the RESUME_CLIENT packet is not sent to twice to
1784           backup router if the detached client was originated from
1785           the backup.  Affected file silcd/server.c.  Bug #76.
1786
1787         * Changed silc_sim_symname to not allocate memory.  Affected
1788           file lib/silcsim/silcsimutil.c.
1789
1790         * Fixed memory leaks with SIMs in server.  Affected files
1791           silcd/serverconfig.c, silcd/server.c.
1792
1793         * Fixed channel key distribution after resuming detached
1794           client.  Affected files silcd/packet_receive.c.
1795
1796         * Fixed channel's global_user boolean checking after detaching.
1797           Check it after changing the owner of the client not before.
1798           Affected file silcd/packet_receive.c.
1799
1800         * Fixed few double frees from client library.  Fixes at least
1801           Bug #81, possibly others too.
1802
1803         * UTF-8 decode topics also in JOIN command reply and TOPIC_SET
1804           notifys in Irssi SILC Client.  Affected file is
1805           irssi/src/silc/core/client_ops.c.  Bug #82.
1806
1807         * Applied Ville Räsänen's manual page and --mandir bugfix
1808           patch.  Affected files are configure.in.pre and Makefile.am.pre.
1809           Bug #88.
1810
1811 Fri Nov 22 18:34:20 EET 2002  Pekka Riikonen <priikone@silcnet.org>
1812
1813         * Added support to backup router protocol for backup to tell
1814           normal server that it cannot use the backup router as primary
1815           because the primary isn't really down.  Updated protocol
1816           specs.
1817
1818         * Added support for primary router to tell backup router that
1819           resuming is not possible because the backup really isn't primary
1820           in the cell.  For example if backup disconnected itself the
1821           resuming is not allowed since the primary really did not
1822           go down.  Updated protocol specs.
1823
1824         * Removed MARS from crypto library.
1825
1826         * Defined the CTR mode and Randomized CBC mode in SILC.  The
1827           CTR mode is RECOMMENDED now in specification.  Defined also
1828           Serpent cipher as optional cipher.  Updated the protocol specs.
1829
1830 Thu Nov 21 12:43:28 EET 2002  Pekka Riikonen <priikone@silcnet.org>
1831
1832         * Added support for inviting/banning by IP/MASK, public key,
1833           and explicit Client ID.  Redefined the command and notify
1834           types to allow easier forwards support for other methods
1835           of inviting/banning.  Updated protocol specs.
1836
1837         * Remove the client from channel's invite lists if the client
1838           is kicked or killed.  Updated protocol specs.
1839
1840         * Unified the Channel Message Payload and Private Message
1841           into one Message Payload.  Updated protocol specs and
1842           implemented.
1843
1844 Tue Nov 19 22:30:56 EET 2002  Pekka Riikonen <priikone@silcnet.org>
1845
1846         * Don't wait for EOF after socket error has occurred, but
1847           close the connection.  Affected file is silcd/server.c.
1848
1849 Mon Nov 18 18:58:26 EET 2002  Pekka Riikonen <priikone@silcnet.org>
1850
1851         * Added support for setting FOUNDER mode on channel with
1852           specific public key which can be set with CMODE command.
1853           Updated protocol specs and implemented in client and server.
1854
1855         * Fixed the Irssi SILC client to correctly shutdown the client
1856           library to avoid memory leaks.  Affected files are
1857           irssi/src/silc/core/silc-core.c and silc-servers.c.
1858
1859         * Deprecated the No Reply flag in SKE protocol and introduced
1860           "IV Included" flag which can be used to indicate that the IV
1861           is included in the ciphertext.  This makes it possible to use
1862           SILC on unreliable transport, such as UDP which may cause
1863           packet reordering and losses.  Updated protocol specs, did
1864           not implement yet.
1865
1866 Sun Nov 17 15:50:57 EET 2002  Pekka Riikonen <priikone@silcnet.org>
1867
1868         * Fixed the MPI implementation of silc_mp_sizeinbase to return
1869           < 32 bit values in correct size.  Affected file is
1870           lib/silcmath/mp_mpi.c.
1871
1872 Sat Nov 16 13:14:45 EET 2002  Pekka Riikonen <priikone@silcnet.org>
1873
1874         * Fixed the KE Start Payload parsing to check that mandatory
1875           fields are present.  Affected file lib/silcske/payload.c.
1876
1877         * Fixed compilation warnigs in Irssi SILC Client.  Affected
1878           files are irssi/src/silc/core/silc-query.c. client_ops.c.
1879
1880 Thu Nov 14 19:33:28 CET 2002  Jochen Eisinger <c0ffee@penguin-breeder.org>
1881
1882         * Print "nick now appears as newnick" and update Irssi's nicklist
1883           when you change your nick to "nick". Closes #62
1884
1885         * Never format your own nick. Closes #63
1886
1887 Thu Nov 14 09:44:54 CET 2002  Jochen Eisinger <c0ffee@penguin-breeder.org>
1888
1889         * SILC_UMODE_GONE changes are now propagated correctly to the
1890           Irssi client. Closes #54
1891
1892 Tue Nov 12 19:42:18 CET 2002  Jochen Eisinger <c0ffee@penguin-breeder.org>
1893
1894         * Fixed example in /HELP KEY
1895
1896         * Added expando $j which expands to current SILC Client version
1897
1898 Tue Nov 12 19:46:39 EET 2002  Pekka Riikonen <priikone@silcnet.org>
1899
1900         * Fixed public key decoding in crypto library.
1901
1902         * Added better error printing to SKE library.
1903
1904 Tue Nov 12 08:50:12 CET 2002  Pekka Riikonen <priikone@silcnet.org>
1905
1906         * Fixed NICK command to not crash if nickname was not sent.
1907
1908 Mon Nov 11 19:32:00 EET 2002  Pekka Riikonen <priikone@silcnet.org>
1909
1910         * Added Encrypt-Then-MAC order to SILC packet MAC generation.
1911           Deprecated the old Encrypt-And-MAC order.  Updated protocol
1912           specs and implemented.
1913
1914         * Added Encrypt-Then-MAC order to Channel Message Payload MAC
1915           generation.  Updated specs and implemented.
1916
1917 Sun Nov 10 12:20:56 EET 2002  Pekka Riikonen <priikone@silcnet.org>
1918
1919         * Added support for rekey before 2^32 sequence number wraps.
1920           Affected files in server and client library.
1921
1922         * Padding must be at least 8 bytes now.  Implemented and updated
1923           protocol specs.
1924
1925         * Compute maximum padding for authentication packets to make
1926           passphrase approximation attacks impossible.  Affected files
1927           in client library and in server.
1928
1929         * Fixed PING command sending in client library and handling in
1930           server.  The server ID must be ID Payload, not raw ID data.
1931           Affected files in server and client library.
1932
1933         * Defined that all public keys sent in commands and notify
1934           payloads are actually Public Key Payloads not raw public key
1935           data.  Updated protocol specs and implemented.
1936
1937         * Updated protocol version to 1.2.  Updated specs and code.
1938
1939         * Added ERR_UNSUPPORTED_PUBLIC_KEY and ERR_OPERATION_ALLOWED
1940           status types.  Updated specs and the code.
1941
1942         * Added support for normal client to kill its own entries from
1943           the network.  Updated protocol specs and the code.
1944
1945         * Defined the SILC_MESSAGE_FLAG_SIGNED.  Updated protocol specs
1946           and added initial implementation.
1947
1948         * Added MAC field to the Private Message Payload to protect
1949           against chosen ciphertext attacks.  Updated the protocol specs
1950           and implemented.
1951
1952         * Added idle and signon fields to the ATTRIBUTE_SERVICE
1953           attribute to indicate the user's current idle and signon time
1954           of a service.  Updated protocol specs and implemented.
1955
1956 Thu Nov  7 19:21:10 EET 2002  Pekka Riikonen <priikone@silcnet.org>
1957
1958         * Added "do_not_bind" argument to silc_client_file_send what
1959           can be used to not bind locally but assume the file receiver
1960           provides the point of connect.  Usefull when sender is behind
1961           NAT device.  Affected file lib/silcclient/silcclient.h and
1962           client_ftp.c.
1963
1964         * Added -no-listener option to FILE SEND command in Irssi SILC
1965           client.  Affected file irssi/src/silc/core/silc-servers.c.
1966           Renamed FILE RECEIVE to FILE ACCEPT.
1967
1968         * Confirm passphrase for private key encryption in
1969           silc_create_key_pair and silc_change_private_key_passphrase.
1970           Affected files are lib/silcutil/silcapputil.c.
1971
1972 Thu Nov  7 10:05:28 CET 2002  Pekka Riikonen <priikone@silcnet.org>
1973
1974         * Move silc_client_packet_send back to internal, added
1975           silc_client_send_packet, a bit simpler function for application.
1976           Affected files lib/silcclient/silcclient.h, client.c and
1977           client_internal.h.
1978
1979         * Moved the SilcClientEntry, SilcChannelEntry and
1980           SilcServerEntry to silcclient.h to be public and documented
1981           them for application.  Affected files are
1982           lib/silcclient/silcclient.h and idlist.h.
1983
1984 Wed Nov  6 17:18:13 EET 2002  Pekka Riikonen <priikone@silcnet.org>
1985
1986         * Fixed manual page installation patch by Ville Räsänen.
1987           USERS help page fix patch by Ville Räsänen
1988
1989         * Changed the silc_client_command_call interface to make
1990           the command call simpler for the application.  The library
1991           now handles the command line parsing, command finding and
1992           execution.  Application only needs to call the function
1993           with the command line.  Affected files are
1994           lib/silcclient/silcclient.h, command.[ch].
1995
1996         * Fixed silc_get_input to NULL-terminate the returned input.
1997           Affected file lib/silcutil/silcutil.c.
1998
1999         * Resolve the client's public key in JOIN command if the
2000           founder auth data is being requested but we don't know the
2001           client's public key.  Affected file silcd/command.c.
2002           Bug #53.
2003
2004 Mon Nov  4 16:02:59 EET 2002  Pekka Riikonen <priikone@silcnet.org>
2005
2006         * Print notify for server opers when backup router comes
2007           online.  Affected file silcd/server.c.
2008
2009         * Fixed the INVITE command to send the invite list in
2010           command reply.  Affected file silcd/command_reply.c.
2011
2012         * Fixed MOTD command reply sending.  Affected file
2013           silcd/command.c.
2014
2015         * UTF-8 decode the topic in TOPIC command reply and LIST
2016           command reply in Irssi SILC client.  Affected file is
2017           irssi/src/silc/core/client_ops.c.
2018
2019 Sun Nov  3 17:59:15 EET 2002  Pekka Riikonen <priikone@silcnet.org>
2020
2021         * Fixed the INVITE command to not crash Irssi SILC client
2022           when given without nickname argument.  AFfected file
2023           irssi/src/silc/core/client_ops.c.
2024
2025         * Fixed double free in WHOIS query on normal server when
2026           forwarding query to router.  Affected file is
2027           silcd/server_query.c.
2028
2029         * Fixed WATCH command reply handling on normal server which
2030           was missing altogether.  Affected file silcd/command_reply.c.
2031           Bug #44.
2032
2033 Sun Nov  3 00:42:05 EET 2002  Mika Boström <bostik@lut.fi>
2034
2035         * Added man-pages for silc(1), silcd(8) and silcd.conf(5).
2036           Included yodl sources for each of these. Also modified
2037           Makefile.am prototype to install these files to proper
2038           locations. Updated CREDITS. Affected file Makefile.am.pre,
2039           new files doc/*.yo, doc/silc.1, doc/silcd.conf.5,
2040           doc/silcd.8.
2041
2042 Sat Nov  2 21:26:56 EET 2002  Pekka Riikonen <priikone@silcnet.org>
2043
2044         * Added support for encrypted private key files.  Now
2045           passphrase must be provided when new key pair is created
2046           (can be empty though), and prompted when loading the
2047           private key.  Added support for loading the old-style
2048           non-encrypted private keys as well.  Affected files
2049           lib/silccrypt/silcpkcs.[ch], Irssi SILC client and
2050           SILC Server.
2051
2052         * Fixed silc_get_input to accept input on all terminals.
2053           Affected file lib/silcutil/silcutil.c.
2054
2055         * Moved the Irssi SILC client key loading and other stuff
2056           to be called after the arguments and UI is initialized.
2057           Affected file irssi/src/silc/core/silc-core.c.  Bug #31.
2058
2059         * Added -P option to Irssi SILC client which can be used
2060           to change the passphrase of the private key.  Affected
2061           file irssi/src/silc/core/silc-core.c.
2062
2063         * Added silc_change_private_key_passphrase apputil routine
2064           to lib/silcutil/silcapputil.[ch].
2065
2066 Sat Nov  2 12:53:09 EET 2002  Pekka Riikonen <priikone@silcnet.org>
2067
2068         * Fixed connection closing in client library to not crash.
2069           Moved the connection freeing totally to function
2070           silc_clinet_del_connection.  Affected file
2071           lib/silcclinet/client.c.
2072
2073 Fri Nov  1 18:57:02 EET 2002  Pekka Riikonen <priikone@silcnet.org>
2074
2075         * Changed includes/silcincludes.h to silcincludes.h.in to
2076           include configuration specific information.  The silcdefs.h
2077           is not included in to installation anymore (it's only
2078           compilation time header).
2079
2080 Fri Nov  1 10:30:26 CET 2002  Pekka Riikonen <priikone@silcnet.org>
2081
2082         * Moved the SilcClient and SilcClientConnection from client.h
2083           to the public lib/silcclient/silcclient.h.  Changed the
2084           structures a bit.
2085
2086 Thu Oct 31 22:44:07 EET 2002  Pekka Riikonen <priikone@silcnet.org>
2087
2088         * If version string in silc_clinet_alloc is NULL the library
2089           puts it automatically.  Affected file lib/silcclient/client.c.
2090
2091         * Changed the version strings from variables to #define's
2092           in includes/silcversion.h.
2093
2094 Wed Oct 30 16:17:30 CET 2002  Pekka Riikonen <priikone@silcnet.org>
2095
2096         * Added shared library complation support.
2097
2098 Tue Oct 29 21:48:55 EET 2002  Pekka Riikonen <priikone@silcnet.org>
2099
2100         * Added lib/silcutil/silcapputil.[ch] for application
2101           utility functions.  It includes routines for applications'
2102           convenience.  Added silc_create_key_pair, silc_show_public_key
2103           and silc_load_key_pair functions.
2104
2105 Tue Oct 29 17:36:44 EET 2002  Pekka Riikonen <priikone@silcnet.org>
2106
2107         * Send RESUME_CLIENT packet from router to backup routers
2108           to in resuming.  Affected file silcd/packet_receive.c.
2109
2110 Mon Oct 28 21:23:39 EET 2002  Pekka Riikonen <priikone@silcnet.org>
2111
2112         * In IDENTIFY command parsing, send all other IDs except
2113           Client IDs explicitly to router for resolving on normal
2114           server.  Also check that ID received in WHOIS command is
2115           always Client ID, others are not allowed.  Affected file
2116           silcd/server_query.c.
2117
2118         * Merged latest changes from irssi.org CVS.
2119
2120 Sun Oct 27 11:44:32 EET 2002  Pekka Riikonen <priikone@silcnet.org>
2121
2122         * Merged c0ffee's /set heartbeat patch to Irssi SILC client.
2123           Affected files irssi/src/silc/core/silc-core, silc-server.c.
2124
2125         * Fixed the heartbeat sending in Irssi SILC client.  Moved
2126           the silc_client_packet_send to silcclient.h for application
2127           usage.  Affected files lib/silcclient/client_internal.h
2128           lib/silcclient/silcclient.h.
2129
2130         * Fixed a bug in query resolving in server.  Used wrong
2131           variable in a for loop and crashed.  Affected file is
2132           silcd/server_query.c.
2133
2134         * Server constructs requested attributes only to locally
2135           connected clients.  Affected file silcd/server_query.c.
2136           Bug #36.
2137
2138         * Fixed a bug when sending resolving from router to server
2139           with requested attributes.  The constructed WHOIS command
2140           was incorrect.  Affected file silcd/server_query.c.
2141           Bug #38.
2142
2143         * Fixed Requested Attributes saving in WHOIS command reply.
2144           The length of the data buffer must be saved too.  Affected
2145           file silcd/command_reply.c.
2146
2147         * Update the client entry's servername after detaching is
2148           over.  Affected file silcd/packet_receive.c.  Bug #37.
2149
2150         * Resolve incomplete client entrys in CUMODE_CHANGE and
2151           CMODE_CHANGE notifys.  Affected file is
2152           lib/silcclient/client_notify.c.  Bug #42.
2153
2154 Thu Oct 24 12:22:35 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
2155
2156         * Fixed channel key packet processing bug on backup router
2157           during backup resuming protocol.  Affected file is
2158           silcd/packet_receive.c.
2159
2160         * Fixed memory leaks in server.  Affected files are
2161           silcd/server.c and silcd/packet_receive.c.
2162
2163         * Fixed packet decryption problem when backup router encrypted
2164           channel message with wrong key during backup resuming
2165           protocol.  Affected file silcd/packet_send.c.
2166
2167         * ROBODoc documented lib/silccrypt/silccipher.h.  A patch by
2168           Toni Willberg (toniw@iki.fi)
2169
2170         * Changed the SilcCipher context to be private.  Changed the
2171           silc_cipher_get_iv to just return pointer to the IV.  Added
2172           silc_cipher_get_name to return the name of the cipher.
2173           Fixed code all around to support these changes.  Affected
2174           files are lib/silccrypt/silccipher.[ch], client library and
2175           server.
2176
2177 Wed Oct 23 19:01:41 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
2178
2179         * Fixed unaligned access in lib/silccore/silcattrs.c.
2180
2181         * Fixed libtool linking in lib/silcsim/Makefile.am.
2182
2183         * Fixed services attribute printing.  Affected files is
2184           irssi/src/silc/core/silc-queries.c.
2185
2186 Wed Oct 23 09:51:04 CEST 2002  Pekka Riikonen <priikone@silcnet.org>
2187
2188         * Fixed a crashbug in incoming server accepting.  Affected
2189           file silcd/server.c.
2190
2191 Tue Oct 22 13:02:32 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
2192
2193         * Added automatically generated index to Toolkit Reference
2194           Manual.
2195
2196         * Added support for Postscript Toolkit Reference Manual.
2197
2198 Mon Oct 21 21:30:40 CEST 2002  Pekka Riikonen <priikone@silcnet.org>
2199
2200         * Merged DISCONNECT fix, and autoconn port fix from Irssi
2201           CVS.
2202
2203 Sun Oct 20 19:54:55 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
2204
2205         * Added 'send_events' boolean argument to the function
2206           silc_schedule_set_listen_fd which sends the set events to
2207           the application explicitly if set to TRUE.  Default action
2208           should be FALSE.  Affected file lib/silcutil/silcschedule.[ch],
2209           lib/silcclient/client_internal.h and silcd/server_internal.h.
2210
2211         * Added silc_compare_timeval to determine which time values
2212           is smaller.  Affected file lib/silcutil/silcutil.[ch].
2213
2214         * Added sort-of "Quality of Service" (QoS) support to
2215           SilcSocketConnection.  Data reception can be controlled with
2216           rate limit per second and/or read data length limit.
2217           Added silc_socket_set_qos.  Affected files are
2218           lib/silcutil/silcsockconn.[ch] and unix/silcunixsockconn.c.
2219
2220         * Added the QoS configuration to SILC Server configuration
2221           file.  Affected files are silcd/serverconfig.[ch] and
2222           server.c.
2223
2224 Sun Oct 20 14:12:24 CEST 2002  Pekka Riikonen <priikone@silcnet.org>
2225
2226         * Merged with irssi.org CVS.
2227
2228         * Failed OPER and SILCOPER authentications are now logged.
2229           Affected file silcd/command.c.  Bugs #25.
2230
2231 Sat Oct 19 13:32:15 CEST 2002  Pekka Riikonen <priikone@silcnet.org>
2232
2233         * ROBODoc documented lib/silcutil/silcbuffer.h and
2234           lib/silcutil/silcdlist.h.  Patch by Ville Räsänen
2235           <ville.rasanen@iki.fi>.
2236
2237 Fri Oct 18 10:51:04 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
2238
2239         * Added support for auto-passphrase authentication from the
2240           config file during connecting which was not implemented
2241           yet.  Affected file irssi/src/silc/core/client_ops.c.
2242
2243         * Fixed a bug in authentication protocol failure handling which
2244           was processing wrong callback context.  Affected files
2245           are lib/silcclient/client.c and protocol.c.
2246
2247         * Fixed the /ATTR allow off to actually work.  Affected file
2248           is irssi/src/silc/core/silc-queries.c.
2249
2250         * Fixed the /ATTR -del to work.  Affected file is
2251           irssi/src/silc/core/silc-queries.c.
2252
2253 Thu Oct 17 23:45:12 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
2254
2255         * Fixed string formatting crashbug in lib/silccore/silcattrs.c.
2256
2257         * Fixed mask attribute adding in Irssi SILC client.  Affected
2258           file irssi/src/silc/core/silc-queries.c.
2259
2260 Thu Oct 17 16:40:39 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
2261
2262         * Added support for saving the requested attributes in
2263           WHOIS to directory.  Affected file is
2264           irssi/src/silc/core/silc-queries.c.
2265
2266 Wed Oct 16 17:40:56 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
2267
2268         * Added support for parsing VCard fields that do not have
2269           the TYPE= for types.  Affected file lib/silcutil/silcvcard.c.
2270
2271         * Fixed a double free bug in hash table foreach function
2272           if the entry was deleted in the foreach callback.  Affected
2273           file lib/silcutil/silchashtable.c.
2274
2275 Tue Oct 15 18:05:24 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
2276
2277         * Added silc_attribute_get_verify_data to return the signature
2278           verification data for either user digital signature or
2279           server digital signature in Requested Attributes.  Affected
2280           files are lib/silccore/silcattrs.[ch].
2281
2282         * Added silc_vcard_alloc which is used to allocated dynamic
2283           SilcVCard context.  The silc_vcard_free now checks whether
2284           the context is dynamically allocated or not.  Affected files
2285           are lib/silcutil/silcvcard.[ch].
2286
2287 Mon Oct 14 17:55:44 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
2288
2289         * Periodically remove the NOATTR status from client entry
2290           so that the client may take the attributes in use even after
2291           server has resolved them unsuccessfully earlier.  Affected
2292           file silcd/server_query.c and idlist.h.
2293
2294         * Moved sha1hash and md5hash from client->internal to
2295           SilcClient for application usage.  Affected files are
2296           lib/silcclient/client.h and client_internal.h.
2297
2298         * Fixed attribute encoding and decoding bugs.  Affected
2299           files lib/silccore/silcattrs.[ch].
2300
2301         * Added ATTR command to Irssi SILC Client which is used to
2302           manage user's Requested Attributes sending and values for
2303           WHOIS command.  Affected files around Irssi SILC client.
2304
2305 Mon Oct 14 14:33:54 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
2306
2307         * Added silc_buffer_strformat which can be used to format
2308           strings into a buffer which size is automatically increased.
2309           Affected file lib/silcutil/silcbuffmt.[ch].
2310
2311         * Added implementation of VCard (RFC 2426) which can be used
2312           as part of Requested Attributes in WHOIS command.  Affected
2313           file lib/silcutil/silcvcard.[ch].
2314
2315 Fri Oct 11 23:52:17 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
2316
2317         * Some strncat -> silc_strncat changes our the core and
2318           client library.
2319
2320         * Added SILC_SKE_STATUS_SIGNATURE_ERROR and OUT_OF_MEMORY
2321           errors.  Added better error printing to SKE library.
2322           Affected files lib/silcske/silcske.c, silcske_status.h and
2323           payload.c.
2324
2325         * Save the PKCS key length even if only private key is set to
2326           SilcPKCS.  Affected file lib/silccrypt/silcpkcs.[ch] and rsa.c.
2327
2328         * Fixed the usage of silc_pkcs_get_key_len since it returns the
2329           length in bits not in bytes.  Affected files are
2330           lib/silcske/silcske.c, lib/silccore/silcauth.c and
2331           silcd/server_query.c.
2332
2333 Wed Oct  9 17:22:57 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
2334
2335         * Added silc_attribute_payload_encode_data to directly encode
2336           the data into the attributes buffer.  Renamed function
2337           silc_attribute_payload_parse_list to silc_attribute_payload_parse.
2338           Affected files are lib/silccore/silcattrs.[ch].
2339
2340         * silc_hash_table_find_foreach calls the foreach function now
2341           once even if the nothing was found with context set to NULL.
2342           Affected file lib/silcutil/silchashtable.[ch].
2343
2344         * Remove the RESOLVING flag from client entry after received
2345           the Requested Attributes from the client.  Fixed memory leak
2346           in client entry freeing.  Affected files silcd/server_query.c
2347           and idlist.c.
2348
2349         * Added Requested Attributes support into SILC Client Library.
2350           It is not able to send requested attributes in WHOIS command,
2351           and also receive and process requested attributes.  Added
2352           silc_client_attribute_[add|del] and silc_client_attributes_get
2353           functions.  Added also `ignore_requested_attributes' to the
2354           SilcClientParams to not use attributes in client.  Affected
2355           files are lib/silcclient/command.c, client_attrs.[ch],
2356           silcclient.h, client_internal and client.[ch].
2357
2358         * Changed the silc_client_get_client_by_id to support Requested
2359           Attributes, it takes them as argument now.  Affected file
2360           is lib/silcclient/silcclient.h, and idlist.c.
2361
2362         * Added -details option to WHOIS command in Irssi SILC Client
2363           to support the requested attributes.  By default it requests
2364           all attributes.  Affected file lib/silcclient/command.c and
2365           irssi/doc/help/in/whois.in.
2366
2367 Tue Oct  8 17:58:28 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
2368
2369         * Add also SERVICE attribute for server-constructed attribute
2370           data.  Also digitally sign the attributes and add
2371           SERVER_DIGITAL_SIGNATURE attribute.  Affected file is
2372           silcd/server_query.c.
2373
2374 Mon Oct  7 18:25:35 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
2375
2376         * Changed the silc_attribute_payload_encode to support list
2377           of attributes (function may be called several times to add
2378           a new attribute).  Removed the silc_attribute_payload_encode_list
2379           function.  The encoding function now also automatically encodes
2380           the data, so the caller does not need to do that.  Affected
2381           files lib/silccore/silcattrs.[ch].
2382
2383         * Added support for replying on behalf of the user to the
2384           Requested Attributes in WHOIS command in the server.  Affected
2385           file silcd/server_query.c.
2386
2387         * SILC_NOT_IMPLEMENTED macro use SILC_LOG_INFO now instead of
2388           SILC_LOG_DEBUG.  Affected file lib/silcutil/silclog.h.
2389
2390 Sun Oct  6 16:48:32 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
2391
2392         * Don't swtich to become primary router if we are backup if
2393           decryption error has occurred.  Affected file silcd/server.c.
2394
2395         * Fixed a bug in backup router IP address comparison in
2396           silc_server_backup_get.
2397
2398           Save now also the port of the server/router and use that
2399           in comparison as well.  Affected file silcd/server_backup.c.
2400
2401         * Normal server now reconnects to backup router automatically
2402           if connection is lost to it.  Affected file silcd/server.c.
2403
2404 Thu Sep 26 13:51:02 CEST 2002  Pekka Riikonen <priikone@silcnet.org>
2405
2406         * If packet processing fails (like integrity check fails)
2407           the connection is closed now.  Affected files are
2408           lib/silccore/silcpacket.c and silcd/server.c.
2409
2410 Mon Sep 23 10:59:39 CEST 2002  Pekka Riikonen <priikone@silcnet.org>
2411
2412         * Fixed double free in RSA public key set function
2413           silc_rsa_set_public_key.  Affected file lib/silccrypt/rsa.c.
2414           Bug #29.
2415
2416 Sun Sep 22 14:54:05 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
2417
2418         * Rewrote WHOIS, WHOWAS and IDENTIFY commands in the server.
2419           Added server_query.[ch] which provides one interface for
2420           querying information using all three commands.
2421
2422         * Changed all "typedef unsigned char" in core library to
2423           "typedef SilcUInt8".
2424
2425 Sat Sep 21 21:36:45 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
2426
2427         * Added silc_strncat into lib/silcutil/silcstrutil.[ch].
2428
2429         * Renamed silc_server_get_client_resolve to
2430           silc_server_query_resolve and moved to server_query.[ch].
2431
2432 Wed Sep 18 18:28:04 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
2433
2434         * Resumed client packet handling from server put the resumed
2435           client on wrong list on router and caused the client not
2436           be present on the network anymore.  Now fixed to put the
2437           client to correct list.  Affected file silcd/packet_receive.c.
2438
2439 Wed Sep 18 15:13:48 CEST 2002  Johnny Mnemonic <johnny@themnemonic.org>
2440
2441         * Various cleanup in error message output in config parsing code
2442           and in server init code.  Fixed error log files containing
2443           too many newlines ('\n') in some situations.  Affected files are
2444           silcd/serverconfig.c, silcd/silcd.c, and silcd/server.c.
2445
2446 Wed Sep 18 10:51:23 CEST 2002  Pekka Riikonen <priikone@silcnet.org>
2447
2448         * Use the reverse lookupped hostname in client internals
2449           instead of one user provided us as remote server name.
2450           Affected file lib/silcclient/client.c.
2451
2452 Mon Sep 16 12:02:54 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
2453
2454         * Added 'app_context' to silc_schedule_init.  It is an
2455           application specific context that is delivered to application
2456           in task callback functions.  Affected files are
2457           lib/silcutil/silcutil.[ch].
2458
2459         * The hb_context in SilcSocketConnection is not freed
2460           automatically anymore (application must free it).  Freeing
2461           it automatic is inconsistent.  Affected files are
2462           lib/silcutil/silcsockconn.[ch].
2463
2464 Sun Sep 15 22:16:19 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
2465
2466         * Added support for removing explicitly added client connections
2467           in rehash and closing the client connections if they were
2468           unconfigured in the rehash.  Affected file silcd/server.c.
2469
2470         * Added support for aborting automatically pending commands
2471           that never receives the reply (to avoid memory leaks).
2472           Added also silc_server_command_pending_timed to set the
2473           specific timeout for pending command.  Affected files are
2474           silcd/command[_reply].[ch].
2475
2476         * Added SILC_STATUS_ERR_TIMEDOUT status.  Updated protocol
2477           specs and lib/silccore/silcstatus.h.
2478
2479 Sun Sep 15 12:25:10 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
2480
2481         * Changed the silc_get_time to accept time value as argument
2482           or if zero is sent return current local time.  Affected
2483           file lib/silcutil/silcutil.[ch].
2484
2485         * Added STATS command to client library and Irssi SILC client.
2486           Patch provided by Ville Räsänen <ville.rasanen@iki.fi>.
2487
2488 Wed Sep 11 09:22:00 CEST 2002  Pekka Riikonen <priikone@silcnet.org>
2489
2490         * Assure that channel key is set before sending it.  May
2491           crash server otherwise.  Affected file silcd/packet_send.c.
2492
2493 Tue Sep 10 09:50:08 CEST 2002  Pekka Riikonen <priikone@silcnet.org>
2494
2495         * Assure that endless loop cannot happen with detached client
2496           resolving on normal server.  Added idlist status
2497           SILC_IDLIST_STATUS_RESUME_RES.   Affected files are
2498           silcd/idlist.h and silcd/packet_receive.c.
2499
2500 Mon Sep  9 12:18:18 CEST 2002  Pekka Riikonen <priikone@silcnet.org>
2501
2502         * Incoming file transfer request cannot use same session as
2503           the sending session.  This can happen when sending file to
2504           yourself.  Crashed the client on quit.  Affected file
2505           lib/silcclient/client_ftp.c.  Bug #24.
2506
2507 Sun Sep  8 18:39:25 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
2508
2509         * Implemented the draft-riikonen-precense-attrs draft and
2510           the Attribute Payload into the lib/silccore/silcattrs.[ch].
2511
2512 Sun Sep  8 13:13:44 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
2513
2514         * Distribute the SERVER_SIGNOFF notify also to local backup
2515           routers from the primary router.  The backup router may not
2516           have the signing of local server directly connected and need
2517           to know about the signoff.  Affected file silcd/server_util.c.
2518
2519         * Use the primary router as the origin of the locally connected
2520           server when it is disconnecting from the backup router since
2521           that's where it really is coming from.  Now the clients from
2522           the disconnecting server are removed correctly and "shadow"
2523           clients are not left to the backup router.  Affected file
2524           silcd/server.c.
2525
2526 Sat Sep  7 22:26:50 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
2527
2528         * If normal server is standalone and found existing but disabled
2529           channel, do not re-create the channel since it creates
2530           duplicate same channels.  Affected file silcd/server.c.
2531
2532         * Added anonymous client connections support to server.  New
2533           "anonymous" configuration option to ConnectionParams section
2534           added.  If set to true, the username and hostname information
2535           of the client will be scrambled and anonymous user mode is
2536           set automatically to the user.  Affected files are
2537           silcd/serverconfig.[ch], silcd/packet_receive.c and server.c.
2538
2539 Sat Sep  7 16:02:09 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
2540
2541         * In JOIN notify handling, mark that the cache entry of the
2542           client cannot be expired.  Can cause crashes on normal
2543           server (asserts client->channels).  Affected file is
2544           silcd/packet_receive.c.
2545
2546         * From now on distribution versions are used as protocol versions
2547           instead of by default using the Toolkit base version as protocol
2548           version.  Affected file prepare.
2549
2550         * Do not set the locally resolved hostname for local client
2551           entry but take what server sends.  This way the real hostname
2552           is showed in WHOIS for yourself.  Affected file is
2553           lib/silcclient/idlist.c and lib/silcclient/client.c.
2554
2555         * Resolve local info with IDENTIFY when connecting to server.y
2556
2557 Sat Sep  7 14:22:43 CEST 2002 Lubomir Sedlacik <salo@silcnet.org>
2558
2559         * Rewritten check for POSIX threads.  Use --with-pthreads[=DIR]
2560           for implied search (not needed on platforms which has native
2561           pthreads library).  Use --without-pthreads to disable threads.
2562           Affected file is configure.in.pre
2563
2564         * Fixed --with-iconv on platforms which need to bypass (broken)
2565           native iconv().  Affected file is configure.in.pre
2566
2567 Sat Sep  7 15:08:13 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
2568
2569         * Moved -C option parsing in Irssi SILC client at same time
2570           as other options.  The UI was initialized earlier and caused
2571           problems on command line.  Bug #16.  Affected file is
2572           irssi/src/silc/core/silc-core.c.
2573
2574 Mon Sep  2 23:00:30 CEST 2002 Johnny Mnemonic <johnny@themnemonic.org>
2575
2576         * Added global variable silc_log_timestamp that tells silclog
2577           wether to print or not the timestamp in the logging files.
2578           Affected file lib/silcutil/silclog.[ch].
2579
2580         * Added silcd configuration option Timestamp in the Logging
2581           section.  Affected file silcd/serverconfig.[ch],
2582           doc/example_silcd.conf.in.
2583
2584 Fri Aug 30 08:57:33 CEST 2002 Pekka Riikonen <priikone@silcnet.org>
2585
2586         * Fixed fingerprint checking to check for entirely empty
2587           fingerprint instead of two first bytes when determining
2588           if it is set.  Bug #18.  Affected file silcd/command.c.
2589
2590         * Fixed duplicate PKCS name registering to not allow it.
2591           Bugs #17.  Affected file lib/silccrypt/silcpkcs.c.
2592
2593 Sun Aug 25 08:02:04 CEST 2002 Lubomir Sedlacik <salo@silcnet.org>
2594
2595         * Conditionalize non-gcc compiler optimizations for various
2596           platforms, enable those commented out.  Cleanups.
2597           Affected file lib/silcmath/mpi/configure.in
2598
2599 Sat Aug 24 15:11:32 EEST 2002 Timo Sirainen <tss@iki.fi>
2600
2601         * silc_rng_exec_command() left zombie processes if command
2602           didn't generate any output.  Affected file
2603           lib/silccrypt/silcrng.c
2604
2605 Fri Aug 23 22:05:44 CEST 2002 Lubomir Sedlacik <salo@silcnet.org>
2606
2607         * Rewrote iconv checking, introduce --with-iconv for systems
2608           which rely on libiconv.  Check if iconv() provided by libc
2609           is good enough, otherwise demand libiconv.  Affected file
2610           configure.in.pre
2611
2612 Fri Aug 23 07:10:52 CEST 2002 Lubomir Sedlacik <salo@silcnet.org>
2613
2614         * Search for ldopen() also in libc.  This enables SIM support
2615           on *BSD systems.  Based on patch from Alex Zepeda.  Affected
2616           file configure.in.pre
2617
2618 Sun Aug 18 04:44:30 CEST 2002 Lubomir Sedlacik <salo@silcnet.org>
2619
2620         * Don't call AM_CONDITIONAL conditonally for SILC_THREADS.
2621           This fixes prepare on *BSD systems.  Affected file
2622           configure.in.pre
2623
2624 Sun Aug  4 15:55:40 CEST 2002 Pekka Riikonen <priikone@silcnet.org>
2625
2626         * More fixed for not having purge timeout for global clients
2627           that are on channel.  Affected files silcd/command_reply.c
2628           and server_util.c.
2629
2630         * Fixed the rekey protocol to work with backup router connections.
2631           Rekey packets are now allowed on disabled connections as
2632           well.  Affected files silcd/packet_send.c and server.c.
2633
2634         * Do not switch to be as backup router when shutting down and
2635           closing the primary connection.  Affected file silcd/server.c.
2636
2637         * Fixed memory leaks in backup router deleting.  Added
2638           silc_server_backup_free to free all data during shutdown of
2639           server.  Affected files silcd/server_backup.[ch].
2640
2641 Sun Jul 14 21:33:32 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
2642
2643         * Do not process commands if the sock->user_data is NULL.
2644           Affected file silcd/command.c.
2645
2646 Tue Jul  9 19:03:11 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
2647
2648         * Fixed buffer overflow and security problems (loosing bits
2649           in CFB encryption) in SILC RNG.  Problems reported by
2650           Markku-Juhani O. Saarinen <mjos@saturn.tcs.hut.fi>.
2651
2652 Sun Jul  7 13:10:01 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
2653
2654         * Added yet more checks that client is not expired on global
2655           list if it is on channels.  Affected file is
2656           silcd/command_reply.c.
2657
2658 Sat Jul  6 11:45:11 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
2659
2660         * Merged c0ffee's MIME signal patch which adds support for
2661           sending also MIME messages in Irssi SILC Client, and handling
2662           received MIME messages in a signal (and perhaps doing something
2663           to non-textual MIME messages).
2664
2665 Sun Jun 30 01:30:22 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
2666
2667         * Fixed pending command deletion in server and client library
2668           to check the whole list instead of breaking after first found.
2669           The affected files are silcd/command.[ch] and
2670           lib/silcclient/command.[ch].
2671
2672 Sat Jun 29 17:40:12 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
2673
2674         * Return NO_SUCH_CHANNEL error in USERS for channel that is
2675           secret or private, otherwise it's possible to find out
2676           whether a secret channel exists or not.  Affected file
2677           silcd/command.c.
2678
2679         * If CMODE change fails during the mode setting, assure that
2680           the old mode mask is set for the channel back.  Affected
2681           file silcd/command.c.
2682
2683         * Fixed passphrase saving on +a channel on normal server
2684           after successful JOIN command.  Affected file silcd/command.c.
2685
2686 Fri Jun 28 11:53:25 CEST 2002 Pekka Riikonen <priikone@silcnet.org>
2687
2688         * Remove server/router operator privileges in DETACH command,
2689           since it's possible to resume to server where these
2690           privileges would not be allowed for the client.  Affected
2691           file silcd/command.c.
2692
2693         * Do not set to wait for backup in rehash of the server.
2694           Affected file silcd/server.c.
2695
2696         * Do not check listener sockets when counting how many
2697           socket connections we have.  Affected file is
2698           silcd/server_util.c.
2699
2700         * Do not announce disconnected clients that are remaining
2701           in history (for WHOWAS).  This is because SIGNOFF notify
2702           for these has been sent earlier already.  Affected file
2703           silcd/server.c.
2704
2705 Thu Jun 27 20:07:27 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
2706
2707         * Buffer overflow with CUMODE command's mode->mode character
2708           conversion.  Reported by Ville Räsänen.  Affected file
2709           lib/silcutil/silcutil.c.
2710
2711 Thu Jun 27 16:54:33 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
2712
2713         * Allow heartbeat packets to go disabled connections anyway.
2714           Affected files silcd/server.c and silcd/packet_send.c.
2715
2716         * Do not broadcast New Channel packets with List flag set
2717           in the packet to backup routers.  The router must check
2718           for the correctness of the packets before sending them.
2719           It is possible that router will have enforce Channel ID
2720           change and this would cause desync in the backup router.
2721           Affected file silcd/packet_receive.c.
2722
2723         * Remove SILC_PACKET_FLAG_LIST from the temp packets that
2724           are handled in list parsing.  They are not list packets
2725           anymore.  Affected file silcd/packet_receive.c.
2726
2727 Thu Jun 27 11:27:07 CEST 2002 Pekka Riikonen <priikone@silcnet.org>
2728
2729         * Stop waiting for backup router through the timeout, not
2730           directly after backup router has arrived.  Affected file
2731           silcd/server.c.
2732
2733         * Do not re-create channel keys and send them when removing
2734           clients in server shutdown.  Affected files are
2735           silcd/server_internal.h and silcd/server_util.c.
2736
2737         * Notify distribution to backup routers was missing from
2738           the silc_server_send_notify_dest function which caused
2739           desyncing problems with backup router.  Affected file is
2740           silcd/packet_send.c.
2741
2742         * The client's channel removing was working wrong on
2743           backup router.  It assumed that it doesn't know global
2744           information but backup router does know.  For this reason
2745           it could remove channel when it wasn't supposed to do that.
2746           Affected file silcd/server.c and silcd/server_util.c.
2747
2748 Wed Jun 26 15:14:12 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
2749
2750         * Stop for a couple seconds after badkup router has become
2751           primary router.  Affected file silcd/server.c.
2752
2753         * Added silc_server_remove_servers_by_server, which is used
2754           to remove servers originated from some other server.  Also
2755           clients of those servers can be removed too.  Affected file
2756           silcd/server_util.[ch].
2757
2758         * When removing clients after a server has signed of remove
2759           also all servers behind that server (unless they are known
2760           to be available locally), and send SERVER_SIGNOFF for each
2761           of the server separately.  Also the signed off clients are
2762           sent now separately per signed off server.  The affected files
2763           are silcd/server.c and silcd/server_util.[ch].
2764
2765         * All servers added with silc_idlist_add_server must always
2766           have both "router" and "connection" pointers set.  Otherwise,
2767           bad server entries may be left around in the cache.
2768           Affected file silcd/command_reply.c.
2769
2770         * Do not create the channel key in NEW_CHANNEL packet
2771           processing if the channel is empty.  Affected file
2772           silcd/packet_receive.c.
2773
2774         * Completed backup router support for standalone routers.
2775           Supports also servers in the cell that do not use the backup
2776           at all.
2777
2778 Wed Jun 26 10:38:11 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
2779
2780         * Fixed a bug in silc_string_regexify which did not add '^'
2781           at the start of each string, and thus the matching was
2782           not explicit.  For example ban list iikone@*!*@* would
2783           match also "priikone", which is wrong, it would have to be
2784           *iikone@*!*@* to match also "priikone".  Affected
2785           file lib/silcutil/unix/silcunixutil.c.
2786
2787 Tue Jun 25 18:47:39 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
2788
2789         * Enable all local server connections before updating client
2790           caches when we've become backup router.  Otherwise, signoff
2791           packets may not reach the clients.  Affected files are
2792           silcd/server.c and silcd/server_util.[ch].
2793
2794         * Fixed a bug in version string parsing which could crash
2795           the program with specially formatted version string.
2796           Bug reported and patch provided by Ville Räsänen.  Affected
2797           file lib/silcutil/silcutil.c.
2798
2799         * Handle the disconnection immediately when DISCONNECT
2800           packet is received in server.  Affected file silcd/server.c.
2801
2802         * Primary router now waits a short time (10 seconds) for
2803           backup router connection before accepting any other
2804           connection (except local).  Affected file silcd/server.c,
2805           serverconfig.[ch].
2806
2807         * Fixed a crash in client libary in NICK_CHANGE notify when
2808           NICK_CHANGE arrived for client entry we are resolving
2809           currently.  Affected file lib/silcclient/client_notify.c.
2810
2811         * Call the sconn->callback completion even if error had
2812           occurred.  Start reconnecting always if connection to
2813           primary router fails during backup router protocol.
2814           Affected files silcd/server.c and server_backup.c.
2815
2816 Mon Jun 24 17:47:52 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
2817
2818         * Added functions silc_server_send_opers and
2819           silc_server_send_opers_notify to send packets stricly
2820           to operators.  Added macro SILC_SERVER_SEND_OPERS macro
2821           to send variable argument notify to operators.
2822           Affected files silcd/packet_send.[ch] and silcd/server.h.
2823
2824         * Removed UMODE rights checking with UMODE_CHANGE notify.
2825           Affected file silcd/packet_receive.c.
2826
2827         * Server/router operator now receives notify when network
2828           switches to backup router and when it resumes the use of
2829           primary router.  Affected file silcd/server.c and
2830           silcd/server_backup.c.
2831
2832         * Fixed the updating of client information after backup
2833           resuming protocol is over; update all except local clients
2834           to the new primary router.  The affected file is
2835           silcd/server_util.c.
2836
2837         * Added support for closing active connections in rehash
2838           that were unconfigured by the user.  Supports currently
2839           closing server and router connections.  Affected file
2840           silcd/server.c.
2841
2842         * Rewrote some SILC_LOG_DEBUG's in silcd/server_backup.c.
2843
2844 Sun Jun 23 17:32:31 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
2845
2846         * Don't do SILC_STRING_LANGUAGE encoding if the outbuffer
2847           is NULL since seems that on some platforms NULL is allowed
2848           and on some it's not.  Fallback encoding is used instead.
2849           Affected file lib/silcutil/silcstrutil.c.
2850
2851         * Fixed statistics updating for incoming server connection
2852           which could cause problems when re-connecting.  Affected
2853           file silcd/server.c.
2854
2855         * Preliminary backup router support for standalone router
2856           added.  Affected files in silcd/.
2857
2858         * Mark server connections in backup router disabled before
2859           and after backup protocol.  Affected file is
2860           silcd/server_backup.c.
2861
2862         * Added support for reconnecting to remote server connection
2863           even if the protocol fails, and if the configuration wants
2864           us to keep trying to connect anyway.
2865
2866           Server connection is not allowed to backup router if
2867           backup router does not have connection to primary router yet.
2868
2869           Affected file is silcd/server.c.
2870
2871 Sat Jun 22 21:34:59 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
2872
2873         * Added silc_client_udpate_server function to update changed
2874           server info.  Affected file lib/silcclient/idlist.[ch].
2875
2876         * Added check for server entries that are being resolved when
2877           notify is received.  If being resolved, handle the received
2878           notify only after it's resolved so that all notifys are
2879           handled in same order as received from the server.
2880
2881           Added similar resolver check to channel entries.  Every
2882           notify that cause resolving of any information that affects
2883           channel entry marks the channel entry in waiting state.
2884           After whatever resolving is over the waiters are signalled
2885           and only then the notifys are handled in the same order
2886           as delivered from the server.
2887
2888           Affected files are lib/silcclient/idlist.[ch], and
2889           client_notify.c.
2890
2891         * Fixed KILLED notify handling in normal server.  Affected
2892           file silcd/packet_receive.c.
2893
2894         * Added SILC_IDLIST_STATUS_LOCAL which indicates that entry
2895           is locally connected, or was locally connected (but may
2896           be detached and connection is not active).  Added also
2897           SILC_IS_LOCAL for checking this status.  Affected files
2898           silcd/idlist.h, silcd/packet_receive.c, silcd/server_util.c,
2899           silcd/server.c and silcd/server_internal.h.
2900
2901 Sat Jun 22 17:06:58 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
2902
2903         * Don't send or handle TOPIC_SET if topic is already set and
2904           is same as being set.  Affected files silcd/command.c and
2905           silcd/packet_receive.c.
2906
2907         * Fixed CMODE change rights checking to work correctly when
2908           removing modes by operator.  Affected file is
2909           silcd/server_util.c.
2910
2911         * Fixed some handling with New Channel packet in router and
2912           fixed some CMODE_CHANGE notify handling in server and router.
2913           Affected file is silcd/packet_receive.c.
2914
2915         * Changed "disconnect" client operation to include the
2916           reason of the disconnection and optional disconnection
2917           message.  Affected file lib/silcclient/silcclient.h.
2918
2919         * Made the compilation of lib/contrib/ stuff conditional.
2920           Affected files configure.in.pre, lib/contrib/Makefile.am.
2921
2922 Sat Jun 22 12:49:21 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
2923
2924         * All CMODE_CHANGE and CUMODE_CHANGE notifys are now sent back
2925           to the sender of the notify too, to avoid situation where two
2926           notifys are in the network at the same time going to oppsite
2927           directions.  Affected file silcd/packet_receice.c.
2928
2929 Fri Jun 21 10:00:32 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
2930
2931         * Delete the client from channel even if the cilent->id is
2932           NULL.  It was possible that client was deleted without
2933           removing from channels (theoretically at least).  Affected
2934           file silcd/server.c and silcd/server_util.c.
2935
2936         * Free the client data too when resuming is not successful.
2937           Affected file silcd/packet_receive.c.
2938
2939         * Merged some code from c0ffee's silc-plugin.  Affected files
2940           irssi/src/silc/core/silc-channels.c and silc-expandos.c.
2941
2942         * Added SILC_PRIMARY_ROUTE and SILC_BROADXAST macros to
2943           silcd/server_internal.h.  SILC_PRIMARY_ROUTE Returns pointer
2944           to the primary router connection, the other one returns
2945           TRUE if packet must be broadcasted to network.
2946
2947         * All notifys that are destined to primary router (to network)
2948           are now automatically sent to backup routers even if the
2949           router is standalone (and has backup router).  Affected files
2950           in silcd/.
2951
2952         * Added --without-irssi and --without-silcd configuration
2953           options for disabling the compilation of these applications.
2954           Affected file configure.in.pre and prepare.
2955
2956 Thu Jun 20 13:48:15 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
2957
2958         * Implemented SILC_STRING_BMP and SILC_STRING_UNIVERSAL for
2959           UTF-8 encoding and decoding.  Added also new encodings
2960           SILC_STRING_BMP_LSB and SILC_STRING_UNIVERSAL_LSB.
2961
2962           Added also SILC_STRING_LANGUAGE which is language and charset
2963           specific encoder and decoer for those platforms that support
2964           iconv().  It can convert the UTF-8 to and from the locale
2965           specific character set.
2966
2967           Affected file lib/silcutil/silcstrutil.[ch].
2968
2969         * Added macro SILC_NOT_IMPLEMENTED to lib/silcutil/silclog.h.
2970
2971         * Added function silc_get_command_name to the file
2972           lib/silcutil/silcutil.[ch].
2973
2974         * Improved the server debug output a bit.  Affected files are
2975           in silcd/.
2976
2977 Wed Jun 19 17:46:31 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
2978
2979         * Save the channel passphrase when received succesful JOIN
2980           command reply from router, on normal server.  Otherwise
2981           joinig +a channels from normal server is not possible.
2982           Affected file silcd/command.c.
2983
2984         * Fixed a bug in TOPIC_SET notify handling.  The notifier
2985           may be other than client too, like server or channel.
2986           It expected it to always be only client and ignored the
2987           notify.  Affected file silcd/packet_recieve.c.
2988
2989         * Removed some (unnecessary) debug printing from
2990           lib/silccore/silcid.c and lib/silccore/silcargument.c.
2991
2992         * Do not force CMODE_CHANGE when server is announcing new
2993           channel.
2994
2995           Router announces stuff only after server reannounces channel
2996           after CHANNEL_CHANGE notify.
2997
2998           These fixes optimizes the announcing procedure, and perhaps
2999           fixes some problems too.  Affected file silcd/packet_receive.c.
3000
3001         * Fixed SERVER_SIGNOFF sending to local clients.  It was
3002           totally broken and sent the notify to all local clients,
3003           instead of only to those that was on same channel as the
3004           signing off clients.  Affected file silcd/server_util.c.
3005
3006         * Added -D option to server.  It can be used to give debug
3007           level.  The levels are from 0 - 99, and are predefined for
3008           smooth server debugging.  (see silcd.c for the predefined
3009           levels).  Affected file silcd/server.c.
3010
3011 Wed Jun 19 16:01:51 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
3012
3013         * Fixed a bug in Irssi SILC client to close the connection
3014           properly when disconnecting from server.  Affected file
3015           irssi/src/silc/core/client_ops.c.
3016
3017 Tue Jun 18 17:14:52 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
3018
3019         * When authenticating as founder during JOIN command, check
3020           that the one authenticating becomes the only founder on the
3021           channel.  Affected file silcd/command.c.
3022
3023         * Better checking for founder mode setting when CUMODE_CHANGE
3024           notify is received.  Affected file silcd/packet_receive.c.
3025
3026         * Close all connections when shutting down the server by sending
3027           DISCONNECT packet.  Close all listeners too when shutting
3028           down the server.  Affected file silcd/server.c.
3029
3030         * Handle DISCONNECT packet correctly in client library by
3031           calling the "disconnect" client operation.  Affected file
3032           lib/silcclient/client.c.
3033
3034         * Handle local errors correctly during resuming.  Affected
3035           file lib/silcclient/client.c.
3036
3037 Tue Jun 18 10:26:27 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
3038
3039         * The log file is not dupped internally anymore in
3040           lib/silcutil/silclog.c.  Fixed memory leaks too.
3041
3042         * The scheduler now dispatches all pending timeout tasks
3043           when it is uninitialized with silc_schedule_uninit.
3044           Affected file lib/silcutil/silcschedule.c.
3045
3046 Mon Jun 17 21:30:55 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
3047
3048         * Added --enable-stack-trace option to configure.  Added
3049           memory allocation stack trace support.  Added files
3050           lib/silcutil/stacktrace.[ch].  Affected files are
3051           lib/silcutil/silcmemory.[ch].
3052
3053         * Fixed memory leaks from libraries and server.  Affected
3054           files around the tree.
3055
3056         * Reverted back a fix made to CUMODE which broke it.
3057           Affected file silcd/command.c.
3058
3059 Sun Jun 16 11:49:45 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
3060
3061         * Added SILC_MESSAGE_FLAG_UTF8 to the protocol specs and the
3062           core library, and implemented it.  All textual messages SHOULD
3063           use this flag and the message MUST be UTF-8 encoded.
3064           All text messages sent by Irssi SILC client are now UTF-8
3065           encoded (regardless whether the terminal supports UTF-8 or not).
3066           Affected files are lib/silccore/silcchannel.h,
3067           irssi/src/silc/core/silc-servers.c, silc-channels.c and
3068           client_ops.c.
3069
3070 Sat Jun 15 18:23:39 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
3071
3072         * Added lots of new statistics updating that was missing from
3073           the server and router code.  Affected files in silcd/.
3074
3075         * Sending SIGUSR1 signal to server now dumps the current
3076           server statistics into /tmp directory.  Affected file is
3077           silcd/silcd.c.
3078
3079         * ROBODoc documented the lib/silccrypt/silchash.h.  Improved
3080           the SILC Hash Interface also.  Added new functions
3081           silc_hash_get_name, silc_hash_init, silc_hash_update and
3082           silc_hash_final.  Affected file lib/silccrypt/silchash.c.
3083
3084 Sat Jun 15 12:09:14 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
3085
3086         * Added some better info printing for client during connecting.
3087           Affected file silcd/server_util.c.
3088
3089         * Implemented the SILC_CHANNEL_UMODE_QUIET mode that can be used
3090           to silence a user on a channel.  Affected files are
3091           lib/silcclient/client_channel.c, irssi/src/silc/core/client_ops.c,
3092           irssi/src/fe-common/silc/module-formats.[ch], silcd/command.c
3093           and silcd/packet_receive.c.
3094
3095         * Fixed a fatal bug in handling of malformed command payload.
3096           Affected file silcd/command.c.
3097
3098         * Fixed a double free when announcing channel users to router.
3099           Affected file silcd/server.c.
3100
3101         * After successful authentication to channel founder mode, check
3102           that there isn't anyone else with founder mode on the channel.
3103           The one that authenticated will become founder and anyone
3104           else is demoted.  Affected file silcd/command.c.
3105
3106         * Added error printing of any error that has occurred during
3107           any command in client library.  Affected file is
3108           irssi/src/silc/core/client_ops.c.
3109
3110         * Removed some error printing from the client library and left
3111           it for the application to worry (from the error status it
3112           receives in 'command' client operation.  Affected file is
3113           lib/silcclient/command.c.
3114
3115 Fri Jun 14 22:59:02 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
3116
3117         * Added new status types KEY_AGREEMENT_ALREADY_STARTED and
3118           KEY_AGREEMENT_SELF_DENIED to lib/silcclient/silcclient.h.
3119           Starting key agreement with itself is denied.  Affected file
3120           is lib/silcclient/client_keyagr.c.
3121
3122         * Fixed some error checkings from the SFTP library which caused
3123           misbehaviour.  Affected files are lib/silcsftp/sftp_client.c
3124           and lib/silcsftp/sftp_util.c.
3125
3126         * Added new "debug" and "debug_string" settings to Irssi SILC
3127           client which can be used to print runtime debugging on the
3128           Irssi's screen.  Available when compiled with --enable-debug
3129           option.  Affected file irssi/src/silc/core/silc-core.c.
3130
3131 Tue Jun 11 16:36:02 CEST 2002 Johnny Mnemonic <johnny@themnemonic.org>
3132
3133         * Fixed a missing variadic parameter in a function call that
3134           caused server crash when a non-allowed connection arrived.
3135           Reported by Richard Becker.  Affected file silcd/server.c.
3136
3137 Mon Jun 10 16:29:42 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
3138
3139         * Added WATCH list sending to backup routers from router.
3140           The WATCH command is sent by the router to the backup
3141           router.  Affected file silcd/command.c.
3142
3143         * Mark the backup_router flag for RouterConnection entry
3144           if the backup router stuff is defined in the config file.
3145           Affected file silcd/serverconfig.c.
3146
3147         * Fixed some backup data sending around the code to work better
3148           if the router is standalone router.  Not all places were fixed.
3149           Affected file silcd/packet_receive.c, silcd/packet_send.c,
3150           silcd/server.c.
3151
3152         * Fixed the router connecting when connecting to multiple
3153           routers.  It ignored every other router except the first
3154           one.  Affected file silcd/server.c.
3155
3156 Mon Jun 10 09:28:21 CEST 2002 Pekka Riikonen <priikone@silcnet.org>
3157
3158         * Made the private key generation after expiration optional.
3159           If not created after expiration the old key will re-expire
3160           at a later time (and thus key pair is not necessary to
3161           change).  Affected file irssi/src/silc/core/clientutil.c.
3162
3163 Sun Jun  9 18:58:25 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
3164
3165         * The length arguments in bind() and connect() were wrong
3166           and fixed now to used SIZEOF_SOCKADDR in the
3167           lib/silcutil/unix/silcunixutil.c.
3168
3169 Tue Jun  4 18:36:05 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
3170
3171         * Fixed detach timeout handling to use Client ID and not
3172           the actual client entry which may be freed in the callback.
3173           Affected file silcd/command.c.
3174
3175 Thu May 30 15:53:45 CEST 2002 Pekka Riikonen <priikone@silcnet.org>
3176
3177         * Merged c0ffee's multiple interface support patch.
3178           Affected files in silcd/.
3179
3180 Wed May 29 18:08:15 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
3181
3182         * Cleanup keys properly.  Affected file is
3183           irssi/src/silc/core/clientutil.c.
3184
3185 Tue May 28 20:11:41 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
3186
3187         * Display the user mode on the status bar.  Affected file
3188           irssi/src/silc/core/silc-expandos.c.
3189
3190 Tue May 28 13:56:26 CEST 2002 Pekka Riikonen <priikone@silcnet.org>
3191
3192         * If private message key is not set, but the flag is set in
3193           the packet, ignore the packet since it cannot be decrypted.
3194           Affected file lib/silcclient/client_prvmsg.c.
3195
3196 Thu May 23 12:00:14 CEST 2002 Pekka Riikonen <priikone@silcnet.org>
3197
3198         * When resuming client, remove the old client entry from
3199           the watcher list too.  Affected file silcd/packet_receive.c.
3200
3201         * Do not allow normal server to force founder mode away
3202           from router if the founder mode is already set.  Affected
3203           file silcd/packet_receive.c.
3204
3205         * Remove the client entry with watch notify types with short
3206           timeout, and not directly, so that other notifys can be
3207           retrieved too.  Affected file lib/silcclient/client_notify.c.
3208
3209         * Display notification about data messages that cannot be
3210           displayed.  Affected files irssi/src/silc/core/client_ops.c,
3211           irssi/src/fe-common/silc/module-formats.[ch].
3212
3213 Sun May 19 18:59:00 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
3214
3215         * Fixed the CHANNEL_CHANGE notify handling in client libary
3216           to not use freed memory.  Affected file is
3217           lib/silcclient/client_notify.c.
3218
3219         * Fixed CUMODE_CHANGE notify handling in server.  Affected
3220           file silcd/packet_receive.c.
3221
3222         * Fixed USERS command to support empty channels.  Affected
3223           file silcd/command.c.
3224
3225 Sat May 18 11:35:19 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
3226
3227         * Allow multiple identical pending commands to be registered
3228           in client library.  Affected file is lib/silcclient/command.c.
3229
3230         * Call the completion for resolving client information only
3231           after all resolvers has finished.  This fixes a crash in
3232           the client.  Added support for checking when the resolvers
3233           are finished.  Affected file is lib/silcclient/idlist.c.
3234
3235         * Wait by default 3 seconds before reconnecting to the server
3236           after being disconnected.  Makes the /detach command a bit
3237           more usable.
3238
3239 Fri May 17 17:23:45 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
3240
3241         * Check the watcher list before sending signoff notifys
3242           when closing client connection.  Affected file is
3243           silcd/server.c.
3244
3245         * Added better CMODE command rights checking.  Affected file
3246           silcd/server_util.c.
3247
3248 Fri May 17 08:33:41 CEST 2002 Pekka Riikonen <priikone@silcnet.org>
3249
3250         * Fixed watcher list checking during server signoff.  It
3251           crashed the server.  Affected file silcd/server_util.c.
3252
3253         * The JOIN command reply returns now the founder's public
3254           key.  Affected file is silcd/command.c.
3255
3256         * Announce the channel mode, and the mode properties with
3257           CMODE_CHANGE notify.  Affected file silcd/server.c.
3258
3259         * Mark new channels by default disabled, untill at least
3260           one user joins the channel.  Affected file is
3261           silcd/packet_receive.c.
3262
3263 Thu May 16 13:05:13 CEST 2002 Pekka Riikonen <priikone@silcnet.org>
3264
3265         * The nickname argument to watch notify can be optional.
3266           Fixes a crash in server.  Affected file silcd/packet_send.c.
3267
3268         * Remove the client entry from cache if the WATCH notify type
3269           is KILLED, SERVER_SIGNOFF or SIGNOFF.  Affected file is
3270           lib/silcclient/client_notify.c.
3271
3272         * Check the watcher list before and after changing nickname
3273           when the NICK_CHANGE notify is received.  Affected file is
3274           silcd/idlist.c.
3275
3276         * Fixed a crash in OPER and SILCOPER command sending.  Empty
3277           passphrase caused the crash.  Affected file is
3278           lib/silcclient/command.c.
3279
3280 Wed May 15 19:01:42 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
3281
3282         * Merged with Irssi CVS for Irssi SILC client.
3283
3284 Tue May 14 19:37:48 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
3285
3286         * Completed the protocol specifications.
3287
3288 Tue May  7 20:41:58 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
3289
3290         * Merged with Irssi CVS for Irssi SILC client.
3291
3292 Tue May  7 11:07:16 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
3293
3294         * Added the founder's public key delivery to the
3295           CUMODE_CHANGE notify type as well.  Updated the protocol
3296           specs and the code.  Affected files are silcd/packet_send.[ch],
3297           silcd/packet_receive.c and silcd/command.c.
3298
3299 Mon May  6 19:46:12 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
3300
3301         * Added silc_pkcs_public_key_copy function into the
3302           lib/silccrypt/silcpkcs.[ch].
3303
3304         * Remove the `iv' from the SilcChannelEntry since we can
3305           live without it.  Affected files are silcd/idlist.h and
3306           silcd/packet_receive.c.
3307
3308         * Added support for sending the founder's public key in
3309           the CMODE_CHANGE notify packet in the server.  Affected
3310           files are silcd/packet_send.[ch], silcd/packet_receive.c,
3311           silcd/command.c and silcd/server.c.
3312
3313         * Changed the FOUNDER_AUTH authentication to use only
3314           public key authentication as defined by new protocol
3315           specs.  Passphrase authentication with that mode cannot
3316           be used anymore.  It is now possible to reclaim founder
3317           mode from any server in the network.  Affected files are
3318           silcd/command.c, silcd/idlist.h and silcd/command_reply.c.
3319
3320         * Added permanent channels support by making the channel
3321           permanent when FOUNDER_AUTH mode is set on the channel.
3322           The channel will not be destroyed even if channel is empty
3323           when that mode is set.  Protocol TODO #17.  Affected
3324           files are silcd/server.[ch], server_util.[ch],
3325           silcd/command.c, silcd/packet_receive.c and
3326           lib/silcclient/command.c.
3327
3328 Fri May  3 18:36:51 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
3329
3330         * Added reference counter to the command reply context in
3331           the client library.  Affected files are
3332           lib/silcclient/command_reply.[ch].
3333
3334 Fri May  3 11:37:10 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
3335
3336         * Fixed rekey protocol with PFS in the client library.
3337           Affected file is lib/silcclient/protocol.c.
3338
3339         * Added support for list of errors in client library
3340           command reply handling.  Affected file is
3341           lib/silcclient/command_reply.c.
3342
3343         * Defined that the WHOIS and IDENTIFY commands can send
3344           list of errors.  Updated the protocol specs.  Protocol
3345           TODO #2.
3346
3347         * Added support for sending list of errors to WHOIS and
3348           IDENTIFY commands in server.  Added support for receiving
3349           list of errors in server.  Affected files are
3350           silcd/command.c and silcd/command_reply.c.
3351
3352         * Fixed client info resolving on LEAVE command in client
3353           library to not crash.  Affected file is
3354           lib/silcclient/client_notify.c.
3355
3356 Thu May  2 08:45:11 CEST 2002 Pekka Riikonen <priikone@silcnet.org>
3357
3358         * Defined that the NICK command replies with thew changed
3359           nickname too, to make the nickname changing simpler at
3360           the client's end.  Updated protocol specs and the code
3361           in client and server.  Affected files are
3362           silcd/command.c, lib/silcclient/command_reply.c and
3363           lib/silcclient/command.c.
3364
3365 Mon Apr 29 20:10:42 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
3366
3367         * Added `Compressed' packet flag to indicate that the packet
3368           payload is compressed by the sender.  Updated the protocol
3369           specs and the core library.  The compression still is not
3370           implemented in the sources.  Affected file is
3371           lib/silccore/silcpacket.h.
3372
3373 Mon Apr 29 09:48:12 CEST 2002  Pekka Riikonen <priikone@silcnet.org>
3374
3375         * Remove pending command callbacks also if the connection
3376           to the server is destroyed.  Affected file is
3377           lib/silcclient/client.c.
3378
3379 Sat Apr 27 19:52:32 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
3380
3381         * Added new QUIET channel user mode that can be used to
3382           quiet a user in a channel.  Updated the protocol specs but
3383           it wasn't implemented yet.  Protocol TODO #27.  Affected
3384           file is lib/silccore/silcmode.h.
3385
3386 Mon Apr 22 09:09:44 CEST 2002  Pekka Riikonen <priikone@silcnet.org>
3387
3388         * Added BLOCK_INVITE user mode to be able to block incoming
3389           invite notifications.  Protoocol TODO #26.  Affected files
3390           are lib/silccore/silcmode.h, lib/silcclient/command.c and
3391           silcd/command.c.
3392
3393         * SILC Publickey fields MUST be UTF-8 encoded now.  Updated
3394           the protocol specs and the code.  Affected file is
3395           lib/silccrypt/silcpkcs.c.
3396
3397 Sun Apr 21 19:44:38 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
3398
3399         * Disconnect Payload includes now the status type.  Updated
3400           the protocol specs and the code.  Protocol TODO #25.
3401           Affected files are silcd/server.c, lib/silcclient/client.c.
3402
3403         * Added NOT_AUTHENTICATED, BAD_SERVER_ID, INCOMPLETE_INFORMATION,
3404           KEY_EXCHANGE_FAILED and BAD_VERSION error status types.
3405           Moved the silc_client_command_status_messages table to the
3406           lib/silcutil/silcutil.c and added new funtion
3407           silc_get_status_message, which deprecates function
3408           silc_client_status_message.  Affected files are
3409           lib/silccore/silcstatus.h, lib/silcclient/command_reply.[ch],
3410           lib/silcutil/silcutil.[ch].
3411
3412 Fri Apr 19 17:35:15 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
3413
3414         * Defined that the nickname hash in Client ID MUST be from
3415           lowercase nickname.  This effectively changes nicknames in
3416           SILC to case-insensitive.  Updated the protocol specs and
3417           the code.  Affected files are lib/silcutil/silcutil.[ch],
3418           silcd/serverid.c, and silcd/idlist.c.
3419
3420         * Added new channel user modes BLOCK_MESSAGES_USERS and
3421           BLOCK_MESSAGES_ROBOTS.  Updated the protocol specs and the
3422           code.  Affected files are lib/silccore/silcmode.h,
3423           lib/silcclient/command.c, and silcd/packet_send.c.
3424
3425         * Added new error status ERR_RESOURCE_LIMIT.  Updated protocol
3426           specs and code.  Affected file lib/silccore/silcstatus.h.
3427
3428         * Added support for watch list.  It is possible to add nicknames
3429           to be watched, and when they come to network, leave network
3430           or user mode changes the watcher will be notified of this
3431           change.  Added SILC_COMMAND_WATCH command, added new
3432           notify type SILC_NOTIFY_TYPE_WATCH to deliver the watch
3433           notifications.  Updated the protocol specs and implemented
3434           this to library, client and server.  Protocol TODO #21.
3435           Affected files are lib/silccore/silccomand.h,
3436           lib/silccore/silcnotify.h, lib/silcclient/command[_reply].[ch],
3437           silcd/command[_reply].[ch], lib/silcclient/client_notify.c,
3438           silcd/packet_send.[ch], silcd/packet_receive.c, and
3439           irssi/src/silc/core/client_ops.c.
3440
3441         * Added user mode SILC_UMODE_REJECT_WATCHING to reject
3442           somebody watching you.  Updated the protocol specs and the
3443           code.  Affected files are lib/silccore/silcmode.h, and
3444           lib/silcclient/command.c.
3445
3446 Fri Apr 19 09:02:20 CEST 2002  Pekka Riikonen <priikone@silcnet.org>
3447
3448         * Added service support to SILC protocol.  Added new command
3449           SILC_COMMAND_SERVICE.  Updated the protocol specs and the
3450           core library.  Services are not implemented in server or
3451           client for now.  Protocol TODO #20.  Affected files are
3452           lib/silccore/silcstatus.h, lib/silccore/silccommand.h.
3453
3454         * Added SilcStatus argument to `command' client operation
3455           to return the error status when command sending fails
3456           locally.  Changed all command in client library to return
3457           correct command status.  Affected files are
3458           lib/silcclient/command.c, lib/silcclient/silcclient.h and
3459           irssi/src/silc/core/client_ops.c.
3460
3461 Thu Apr 18 14:09:51 CEST 2002  Pekka Riikonen <priikone@silcnet.org>
3462
3463         * Added silc_mime_parse function to parse MIME headers.
3464           Affected files are lib/silcutil/silcstruti.[ch].
3465
3466         * Added MIME header parsing in Irssi SILC Client.  It displays
3467           all textual MIME objects, others it ignores.  Affected file
3468           is irssi/src/silc/core/clien_ops.c.
3469
3470 Wed Apr 17 22:07:59 CEST 2002  Johnny Mnemonic <johnny@themnemonic.org>
3471
3472         * Fixed a bug in the pid writing function, which couldn't be
3473           written in a root-owned directory.
3474
3475 Tue Apr 16 09:34:40 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
3476
3477         * Defined that channel message to unknown Channel ID must
3478           cause SILC_NOTIFY_TYPE_ERROR notify message to the sender.
3479           Updated the protocol specs and the code in server.  The
3480           affected file is silcd/packet_receive.c.
3481
3482 Mon Apr 15 19:57:57 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
3483
3484         * Added new notify type SILC_NOTIFY_TYPE_ERROR and specified
3485           that it is used to send error notifys if error occurs during
3486           some SILC packet processing, except commands.  The error
3487           types are same as for command reply types.  Defined that
3488           if private message is sent to unknown Client ID the error
3489           is sent in SILC_NOTIFY_TYPE_ERROR instead of command reply.
3490           Updated the protocol specs and code.  Affected files are
3491           lib/silccore/silcnotify.h, added lib/silccore/silcstatus.h,
3492           lib/silcclient/client_notify.c, silcd/packet_receive.c,
3493           and irssi/src/silc/core/client_ops.c.  Renamed the
3494           SilcCommandStatus to SilcStatus.
3495
3496         * Defined the use of extra WHOIS attributes in WHOIS command.
3497           The <Requested Attributes> (defined in a separate document)
3498           can be used to request additional information about user
3499           not returned by standard WHOIS command.  Defined that server
3500           can send WHOIS command directly to client.  Client provides
3501           the requested attributes to the server.  Updated the protocol
3502           specs.  Protocol TODO #4.  Implementation is not done yet
3503           (Protocol TODO #24).
3504
3505         * Renamed function silc_client_command_status_message to
3506           silc_client_status_message.  Affected files are
3507           lib/silcclient/command_reply.[ch].
3508
3509 Sun Apr 14 21:13:42 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
3510
3511         * Changed the WHOIS, IDENTIFY and WHOWAS count arguments to
3512           32 bit integers.  Updated the protcol specs and the code.
3513           Affected files are silcd/command.c and
3514           lib/silcclient/command.c.
3515
3516 Sun Apr 14 19:49:02 CEST 2002  Johnny Mnemonic <johnny@themnemonic.org>
3517
3518         * Fixed a bug in library where sending a bogus authentication
3519           payload would lead to a crash.  Affected file is
3520           lib/silccore/silcauth.c.
3521
3522 Sat Apr 13 13:09:24 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
3523
3524         * Added detach_disabled and detach_timeout server config
3525           options to the server.  Affected files silcd/serverconfig.[ch],
3526           silcd/command.c and silcd/packet_receive.c.
3527
3528 Fri Apr 12 20:09:08 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
3529
3530         * Added resolve_cmd_ident field to the SilcClientEntry structure
3531           too so that if the entry is for example being resolved so
3532           another command may attach to the same pending command reply
3533           without requiring to resolve the same entry again.  Added
3534           support for adding multiple pending commands for one
3535           command idenfier.  Affected files lib/silcclient/command.[ch],
3536           lib/silcclient/command_reply.[ch], lib/silcclient/idlist.h.
3537
3538 Fri Apr 12 10:17:51 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
3539
3540         * Defined that server receives WHOIS command reply for private
3541           and secret channels too.  Updated protocol specs and the
3542           code in server.  Affected file silcd/command.c.
3543
3544         * Defined <channel user mode list> argument to WHOIS command
3545           reply for returning user modes on the channels.  The
3546           channel list now doesn't include the user mode anymore but the
3547           actual channel mode.  Updated protocol specs and the code in
3548           client and server.  Affected files are silcd/command_reply.c,
3549           silcd/command.c, silcd/server.c, irssi/src/silc/core/client_ops.c,
3550           and lib/silcclient/command_reply.c.
3551
3552         * Save the channels list in WHOIS command reply in normal server
3553           so that WHOIS always shows joined channels also in normal
3554           server and not just on router.  Affected file is
3555           silcd/command_reply.c.
3556
3557 Thu Apr 11 22:29:33 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
3558
3559         * Defined that server receives USERS command reply for private
3560           and secret channels too.  Updated protocol specs and the
3561           code in server.  Affected file silcd/command.c.
3562
3563 Thu Apr 11 16:32:08 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
3564
3565         * Changed the UMODE's mode mask argument to be optional.  If
3566           not provided then the command merely returns the current mode
3567           mask to the client.  Updated protocol specs and the server.
3568           Affected file is silcd/command.c.
3569
3570         * Added SILC session detachment/resuming support.  It is possible
3571           to detach by closing the network connection and then re-connect
3572           and resume to the old client session.  Added DETACHED user
3573           mode that server will set for detached client.  Added new
3574           packet RESUME_CLIENT which is used to perform the resuming
3575           process.  Added DETACH command.  Updated the protocol specs,
3576           core library, client and server.  Protocol TODO #22.  Very
3577           many affected files around the tree.
3578
3579 Wed Apr 10 16:32:01 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
3580
3581         * Changed the CMODE's mode mask argument to be optional.  If
3582           not provided then the command merely returns the current mode
3583           mask to the client.  Updated protocol specs and the server.
3584           Affected file is silcd/command.c.
3585
3586         * Changed the Killer's Client ID in KILLED notify to be just
3587           any ID payload since router server is allowed to kill as well.
3588           Updated protocol specs, client libary and server.  Affected
3589           files are lib/silcclient/client_notify.c, silcd/packet_receive.c,
3590           and irssi/src/silc/core/client_ops.c.
3591
3592 Tue Apr  9 17:15:42 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
3593
3594         * Added new user modes ANONYMOUS for special anonymous servers
3595           that may set the mode for client, and BLOCK_PRIVMSG which
3596           client may set to block incoming private messages unless the
3597           Private Message Key flag is set (using private keys to protect
3598           private messages).  Updated protocol specs and code in client
3599           and server and core library.  Protocol TODO #23.  Affected
3600           files are lib/silccore/silcmode.h, silcd/server.[ch],
3601           irssi/src/silc/core/client_ops.c, silcd/packet_receive.c,
3602           irssi/docs/help/in/umode.in, lib/silcclient/command.c.
3603
3604         * Added new channel user mode BLOCK_MESSAGES which the client
3605           may set to itself to tell server not send channel messages.
3606           Other packets such as channel key packets are still sent.
3607           Protocol TODO #23.  Updated the protocol specs, client and
3608           server.  Affected files are lib/silccore/silcmode.h,
3609           irssi/docs/help/in/cumode.in, lib/silcclient/command.c,
3610           lib/silcutil/silcutil.c, silcd/command.c, and
3611           silcd/packet_send.c.
3612
3613 Mon Apr  8 23:57:32 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
3614
3615         * Redefined the Status Payload to include now two 8 bit fields,
3616           instead of one 16 bit field.  This now makes it possible to
3617           send list of errors.  Updated the protocol specs and the code
3618           in core library, client library and server.  Protocol TODO #1.
3619           Affected files are lib/silccore/silccommand.[ch],
3620           lib/silcclient/command_reply.[ch], silcd/command.c,
3621           silcd/command_reply.c and silcd/packet_receive.[ch].
3622
3623 Mon Apr  8 19:57:40 CEST 2002  Johnny Mnemonic <johnny@themnemonic.org>
3624
3625         * Added config parse status SILC_CONFIG_EPRINTLINE, this status
3626           must be handled by the application and should tell the application
3627           that an error message was already printed, and it should print the
3628           config coords (line, filename, ...).  Affected files are
3629           silcd/serverconfig.c, lib/silcutil/silcconfig.[ch].
3630
3631         * Added local macro SILC_SERVER_CONFIG_ALLOCTMP to make the
3632           server config parsing code more readable.
3633
3634           Fixed a bug in the fetch_logging() config callback.
3635
3636           Affected files is silcd/serverconfig.c.
3637
3638         * Drop root privileges when started in foreground.  Don't drop them
3639           if debugging also.  Affected file is silcd/silcd.c.
3640
3641 Mon Apr  8 17:00:41 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
3642
3643         * Added more IM-like features by introducing new user modes
3644           for setting various presence information.  Added new modes:
3645           INDISPOSED, BUSY, PAGE, HYPER and ROBOT.  Updated protocol
3646           specs and code.  Protocol TODO #19. Affected files are
3647           lib/silccore/silcmode.h, irssi/src/silc/core/client_ops.c,
3648           irssi/docs/help/in/umode.in and lib/silcclient/command.c.
3649
3650 Sun Apr  7 17:07:59 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
3651
3652         * Added STATS command to the protocol after all, to return
3653           various statistical information about the network.  It can
3654           be used by clients to retrieve statistical information, and
3655           servers may use it to to fetch cell and network wide
3656           statistics from router.  Updated the protocol specs and
3657           implemented it to the server.  Protocol TODO #16.
3658           Affected files are lib/silccore/silccommand, silcd/command.[ch],
3659           silcd/command_reply.[ch].
3660
3661 Sat Apr  6 17:08:58 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
3662
3663         * The LIST command reply in client libary now adds new channel
3664           entry if the returned channel doesn't exist yet in cache,
3665           and returns the channel entry to the application in the
3666           command_reply client operation.  Affected file is
3667           lib/silcclient/command_reply.c.
3668
3669         * Changed the channel message payload's MAC generation to
3670           include the IV in the MAC as well.  This way all relevant
3671           parts of the channel message payload are authenticated also
3672           with the channel message MAC (and not only by packet MAC).
3673           Causes incompatibility with 1.0 protocol.  Protocol TODO #7.
3674           Affected file is lib/silccore/silcchannel.c.
3675
3676         * Fixed the SKE to save the remote version, since the
3677           silc_ske_parse_version mistakenly checked wrong version,
3678           after it replaced the start payload.  Affected files are
3679           lib/silcske/silcske.[ch].
3680
3681 Fri Apr  5 16:03:03 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
3682
3683         * Splitted lib/silcutil/silcutil.h into silcstrutil.h for
3684           string utility functions.  Added there also new functions
3685           silc_utf8_[encode/decode/valid] for UTF-8 string encoding.
3686           Affected files lib/silcutil/silcstrutil.[ch].
3687
3688         * Renamed silc_*_pem functions to silc_pem_* functions.  Affected
3689           files are lib/silcutil/silcstrutil.[ch].
3690
3691         * Defined that the security property fields in SKE SHOULD be
3692           UTF-8 encoded, defined that version string MUST be US-ASCII
3693           encoded, defined that passphrases sent in connection
3694           authentication protocol MUST be UTF-8 encoded.  Implemented
3695           these to the client and server.  Defined also that other
3696           passphrases sent in the protocol MUST be UTF-8 encoded.
3697           Affected files are lib/silcske/silcske.c,
3698           lib/silcclient/protocol.c, silcd/protocol.c,
3699           silcd/serverconfig.c, and lib/silccore/silcauth.c.
3700
3701         * Changed the silc_client_close_connection interface to not
3702           need the SilcSocketConnection which should not be visible
3703           to application.  Affected files are lib/silcclient/client.c
3704           and lib/silcclient/silcclient.h.
3705
3706         * Rewrote the text for Private Message Key Payload in the
3707           protocol specification.  Protocol TODO #11.
3708
3709 Wed Apr  3 16:24:51 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
3710
3711         * Upgraded the protocol version to 1.1, updated protocol specs
3712           and software.
3713
3714         * Added the nickname as new argument to NICK_CHANGE notify and
3715           added it to protocol specs and implemented it to client and
3716           server.  Protocol TODO #3.  Affected files are silcd/idlist.[ch],
3717           silcd/command.c, silcd/packet_receive.c, packet_send.[ch], and
3718           lib/silcclient/client_notify.c.
3719
3720         * Added the killer's client ID to the KILLED notify and added
3721           it to protocol specs and implemented it to client and server.
3722           Protocol TODO #13.  Affected files are silcd/command.c,
3723           silcd/packet_receive.c, packet_send.[ch],
3724           lib/silcclient/client_notify.c, irssi/src/silc/core/client_ops.c.
3725           The killer's client entry is now returned to application in
3726           the `notify' client operation.
3727
3728         * Fixed the Max Argument fields that had too large value set
3729           in the protocol specs.  Protocol TODO #14.
3730
3731         * Added the LEAVE command reply to return the ID of parted
3732           channel.  Updated protocol specs and implemented it to the
3733           client and server.  Protocol TODO #15.  Affected files are
3734           silcd/command.c, lib/silcclient/command_reply.c.  The channel
3735           entry is now returned to application in the `command_reply'
3736           client operation.
3737
3738         * Rewrote the version SKE version checking in client libary
3739           and in server to use the silc_parse_version_string.  Affected
3740           files are lib/silcclient/protocol.c, silcd/protocol.c.
3741
3742         * Added SILC_STATUS_ERR_NO_CHANNEL_FOPRIV error status to few
3743           commands that was missing it, and updated protocol specs and
3744           the server implementation.  Protocol TODO #10.  The affected
3745           file is silcd/command.c.
3746
3747         * Defined new message flags SILC_MESSAGE_FLAG_REPLY to be
3748           generic reply to a generic request (REQUEST flag), and
3749           SILC_MESSAGE_FLAG_DATA to send any kind of data in a generic
3750           way.  A draft-riikonen-silc-flags-payloads-00.txt is written
3751           to define the payload for DATA flag.  Added the flags to
3752           the implementation.  Protocol TODO #9.  Affected file is
3753           lib/silccore/silcchannel.h.
3754
3755           Changed the client library to return the message length
3756           to application as well in the channel_message and private_message
3757           client operations.  Affected files are
3758           lib/silcclient/client_prvmsg, lib/silcclient/client_channel.c,
3759           lib/silcclient/silcclient.h, irssi/src/silc/core/client_ops.c,
3760           and lib/silcclient/client_ops_example.c.
3761
3762         * Added two new channel modes: SILC_CMODE_SILENCE_USERS
3763           and SILC_CMODE_SILENCE_OPERS which can be used to moderate
3764           the channel.  Updated protocol specs and impelemented this
3765           to client and server.  Protocol TODO #6.  Affected files are
3766           silcd/packet_receive.c, server_util.c, lib/silcclient/command.c,
3767           lib/silcclient/client_channel.c, lib/silccore/silcmode.h.
3768
3769           Added new options m and M to CMODE command in Irssi SILC
3770           client to set these modes.
3771
3772         * Deprecated all administrative commands from SILC protocol
3773           since they are highly implementation specific commands.
3774           Updated protocol specs.  Moved the old commands in
3775           implementations to private range of command types.  Affected
3776           files are silcd/command.c, lib/silcclient/command.c and
3777           lib/silcclient/command_reply.c.  Protocol TODO #8.
3778
3779         * Fixed a bug in server where sending unknown command crashes
3780           the server.  Affected file silcd/command.c.
3781
3782 Wed Apr  3 09:57:47 CEST 2002  Pekka Riikonen <priikone@silcnet.org>
3783
3784         * Added SILC_PROTOCOLVERSION macro to check protocol version
3785           of a socket connection.  The affected file is
3786           lib/silcutil/silcsockconn.h.
3787
3788         * Added better error logging in rekey protocol.  Affected file
3789           silcd/protocol.c.
3790
3791         * Do not check public key types in SKE during rekey.  Affected
3792           file lib/silcske/payload.c.
3793
3794         * Fixed the rekey protocol with PFS, which was totally broken.
3795           Affected file silcd/protocol.c.
3796
3797 Tue Apr  2 14:55:06 CEST 2002  Pekka Riikonen <priikone@silcnet.org>
3798
3799         * Some client implementations quit network by doing first LEAVE
3800           and then immediately SIGNOFF (like Bombyx).  We now do check
3801           after a short time after LEAVE notify and check whether the
3802           client is still valid after LEAVE, and if not we remove it from
3803           cache.  Affected file is lib/silcclient/client_notify.c.
3804
3805 Tue Apr  2 13:39:04 CEST 2002  Johnny Mnemonic <johnny@themnemonic.org>
3806
3807         * Merged version 1.1.4 of zlib. Even if it not currently in use,
3808           it's good not to have security holes here.
3809
3810         * Fixed a negative refcount situtuation for the config context.
3811           Affected file is silcd/serverconfig.c.
3812
3813 Mon Apr  1 20:15:10 CEST 2002  Johnny Mnemonic <johnny@themnemonic.org>
3814
3815         * ROBOdoc documented lib/silcutil/silcutil.h.
3816
3817 Sat Mar 30 21:06:45 EET 2002  Pekka Riikonen <priikone@silcnet.org>
3818
3819         * Optimized even more the SilcPacketContext structure.  Now
3820           totally saved 16 bytes of memory per context after optimization.
3821           Affected files are lib/silccore/silcpacket.[ch].
3822
3823         * Made strict checks for valid SILC IDs.  Affected file is
3824           lib/silccore/silcid.c.
3825
3826 Sat Mar 30 18:15:55 EET 2002  Pekka Riikonen <priikone@silcnet.org>
3827
3828         * Changed the object argument for silc_cipher_register,
3829           silc_hash_register, silc_hmac_register and silc_pkcs_register
3830           to const.  Affected files are lib/silccrypt/silccipher.[ch],
3831           silchash.[ch], silchmac.[ch] and silcpkcs.[ch].
3832
3833         * Changed the silc_get_username and silc_get_real_name to
3834           never fail.  Affected file lib/silcutil/unix/silcunixutil.c.
3835
3836         * Fixed the Irssi SILC Client to use the silc_get_username and
3837           silc_get_real_name insted of glib routines since the glib
3838           routines only corrupt stack.  Fixes the Irssi SILC to work in
3839           Cygwin.  Affected file irssi/src/silc/core/silc-core.c.
3840
3841         * Fixed the Irssi to not use g_get_home_dir since it crashes
3842           or returns garbage on cygwin and corrupts stack.  Added function
3843           get_home_dir to Irssi routines.  Affected files are
3844           irssi/src/core/misc.[ch] and irssi/src/core/core.c.
3845
3846 Fri Mar 29 21:55:41 EET 2002  Pekka Riikonen <priikone@silcnet.org>
3847
3848         * Made some structure optimizations.  SFTP memory FS MemFSEntry
3849           entry structure.  Optimized SilcTask structure.  Optimized
3850           SilcPacketContext structure.
3851
3852           Affected files lib/silcsftp/sftp_fs_memory.c,
3853           lib/silcutil/silcschedule.c, lib/silccore/silcpacket.h.
3854
3855 Fri Mar 29 10:41:07 EET 2002  Pekka Riikonen <priikone@silcnet.org>
3856
3857         * And yet again reverted back the config thing since Johnny
3858           screwed it up.  Affected file silcd/serverconfig.[ch], server.c,
3859           and silcd.c.
3860
3861         * Fixed memory leaks from config object.  Affected files are
3862           silcd/serverconfig.[ch].
3863
3864         * Added support for adding new connections to the server in rehash.
3865           After rehash they take effect.
3866
3867           Added support for changing the maximum allowed connections in
3868           rehash.  The number can grow but going smaller is not supported.
3869
3870           Added function silc_server_num_sockets_by_remote to the
3871           silcd/server_util.[ch].
3872
3873           Affected files are silcd/server.c, and silcd/serverconfig.[ch].
3874
3875 Fri Mar 29 03:26:12 CET 2002 Johnny Mnemonic <johnny@themnemonic.org>
3876
3877         * Added preliminary checking during config parsing for a valid
3878           public/private key and removed further checks in the code.
3879           Affected files are silcd/serverconfig.[ch], server.c.
3880
3881         * Moved functions silc_server_drop() and silc_server_daemonise()
3882           from server.c to silcd.c since they are stricly related to
3883           the application activity.
3884
3885         * Reverted a small part of the automatic ref/unref since
3886           it caused a double unref in some situations.  Affected
3887           files are silcd/silcd.[ch], server.c, serverconfig.c.
3888
3889         * Added some .cvsignore files in the lib directory.
3890
3891 Thu Mar 28 22:51:15 EET 2002  Pekka Riikonen <priikone@silcnet.org>
3892
3893         * Fixed silc_net_gethostbyaddr to correctly resolve by
3894           address.  Affected file lib/silcutil/silcnet.c.
3895
3896         * Fixed the notify relaying to client.  The HMAC to be used
3897           with relayed packets ws wrong and caused decryption failure
3898           at the client end.  Affected file is silcd/packet_receive.c.
3899
3900 Thu Mar 28 19:02:05 EET 2002  Pekka Riikonen <priikone@silcnet.org>
3901
3902         * Created new branch silc_protocol_1_0_branch.
3903
3904         * Reverted the silc_log_quick change in lib/silcutil/silclog.c.
3905
3906         * Changed the silc_server_config_* routines to be SilcServer
3907           independent.  They are now officially application specific code
3908           and not part of generic server implementation.  Affected files
3909           are silcd/serverconfig.[ch], silcd/silcd.c, silcd/server.c.
3910
3911 Thu Mar 28 17:01:43 EET 2002  Pekka Riikonen <priikone@silcnet.org>
3912
3913         * Added automatic referencing of config context in the
3914           silc_server_config_alloc, and automatic unreferencing in the
3915           silc_server_config_destroy.  Affected files are
3916           silcd/serverconfig.[ch], silcd/silcd.c.
3917
3918         * Fixed the silc_log_quick handling in the logging routines.
3919           It didn't log quickly when it was TRUE.  Affected file is
3920           lib/silcutil/silclog.c.  Also the flush delay was set even
3921           if it was 0 in config file.  Affected file is
3922           silcd/serverconfig.c.
3923
3924         * Added support for changing key pair of the server in rehash.
3925           Affected file silcd/server.c.
3926
3927 Thu Mar 28 12:17:21 CET 2002  Pekka Riikonen <priikone@silcnet.org>
3928
3929         * Fixed the TOPIC_SET notify to not cras.  It changed the topic
3930           too early, before getting the channel entry.  Affected file
3931           is silcd/packet_receive.c.
3932
3933 Thu Mar 28 09:58:16 CET 2002  Johnny Mnemonic <johnny@themnemonic.org>
3934
3935         * Added functions silc_server_config_[ref/unref], these are used
3936           to prevent that the config object is destroyed.
3937
3938           No longer directly affect global variables silc_log_quick and
3939           silc_log_delay, they are first cached inside the config object
3940           and then applied with silc_server_config_setlogfiles().
3941
3942           silc_server_config_set_defaults() is now internal to
3943           serverconfig.c, there are no reasons to show this internal stuff
3944           to the server.
3945
3946           Affected files are silcd/serverconfig.[ch].
3947
3948         * Added macro SILC_SERVER_LOG_STDERR(), this should replace most
3949           fprintf's to stderr, since some code may be executed again after
3950           the server went into the background.  Affected files are
3951           silcd/server.[ch].
3952
3953         * Added rehash support. Added function silc_server_rehash() that
3954           will perform all the basic tasks of the rehashing procedure.
3955
3956         * Added command line option `-x, --hexdump'. This will enable the
3957           SILC_LOG_HEXDUMP calls that are no longer enabled with `--debug'.
3958           The option `--hexdump' implies `--debug'.
3959
3960         * Fixed a bad bug in the logging APIs (silcutil library) where
3961           the application would crash after calling silc_log_reset_all().
3962
3963 Wed Mar 27 19:43:16 EET 2002  Pekka Riikonen <priikone@silcnet.org>
3964
3965         * Fixed the KICKED notify handling in client library to
3966           correctly remove the channel and all entries from the
3967           channel when I was kicked.  This bug crashed the client.
3968
3969           Fixed yet another but in KICKED notify handling to remove
3970           the kicked client correctly from the channel.
3971
3972           Affected file is lib/silcclient/client_notify.c.
3973
3974         * Fixed a minor bug in looking up correct client entry
3975           in KICKED notify in server.  Affected file is
3976           silcd/packet_receive.c.
3977
3978         * Fixed the lib/silcmath/Makefile.am to include the MPI and GMP
3979           sources correctly to distribution.  Fixes --with-gmp option.
3980
3981         * Removed the manual rehashing from ID Cache, and changed it
3982           to use the SILC Hash Table's auto rehash feature.  Affected
3983           file is lib/silccore/silcidcache.c.
3984
3985 Wed Mar 27 00:07:11 EET 2002  Pekka Riikonen <priikone@silcnet.org>
3986
3987         * Fixed a bug in the silc_client_nickname_format function that
3988           handles the multiple same nickname formatting.  Two clients
3989           with same nickname caused problems after the first one left
3990           and rejoined.  It didn't format the nickname correctly.
3991           Affected file is lib/silcclient/idlist.c.
3992
3993 Tue Mar 26 19:33:03 CET 2002  Pekka Riikonen <priikone@silcnet.org>
3994
3995         * Don't change the topic if olod topic is same as new one.
3996           Affected file is silcd/packet_receive.c.
3997
3998 Mon Mar 25 21:11:35 EET 2002  Pekka Riikonen <priikone@silcnet.org>
3999
4000         * Added cross-reference support to the SILC Documentation
4001           generator.  All types across all HTML files are now cross-
4002           referenced.  Affected files util/robodoc/generator.c and
4003           scripts/silcdoc/silcdoc.
4004
4005         * Added file lib/silcutil/silctypes.h to include all the
4006           arithmetic type definitions and some macros.  Removed
4007           includes/bitmove.h and moved macros to silctypes.h.
4008
4009 Mon Mar 25 17:19:46 EET 2002  Pekka Riikonen <priikone@silcnet.org>
4010
4011         * Merged bugfixes for Irssi SILC client from irssi.org CVS.
4012
4013 Sun Mar 24 11:21:04 EET 2002  Pekka Riikonen <priikone@silcnet.org>
4014
4015         * Added `type' argument to silc_id_payload_parse_id function which
4016           now returns the type of the ID to the sent pointer.  Affected
4017           file is lib/silccore/silcid.[ch].
4018
4019         * Added check for CMODE_CHANGE notify type that mode change is
4020           allowed by the sender.  Affected file silcd/packet_receive.c.
4021
4022         * Added check for CUMODE_CHANGE notify type that mode change is
4023           allowed by the sender.  Affected file silcd/packet_receive.c.
4024           Added the ID type as CUMODE_CHANGE notify type as argument
4025           to the `notify' client operation.  Affected files are
4026           lib/silcclient/client_notify.c, irssi/src/silc/core/client_ops.c.
4027
4028         * Added function silc_client_add_server to the client library.
4029           Added support for resolving also channel and server info when
4030           received unknown entity in notify packet.  Affected files are
4031           lib/silcclient/idlist.[ch], lib/silcclient/client_notify.c.
4032
4033         * Added function silc_command_get_status to return the command
4034           status from the command reply's argument payload.  Affected files
4035           are lib/silccore/silccommand.[ch].
4036
4037         * Added check for KICKED notify type that the kicking is
4038           allowed by the client.  Affected file silcd/packet_receive.c.
4039
4040         * Created function silc_get_input which can be used to get input
4041           (echo on or off) from user on command line.  Affected files are
4042           lib/silcutil/silcutil.[ch].
4043
4044 Sat Mar 23 09:51:26 EET 2002  Pekka Riikonen <priikone@silcnet.org>
4045
4046         * Optimized silc_server_packet_relay_to_channel function.
4047           Added new function silc_channel_message_payload_encrypt which
4048           can be called directly if channel message payload needs to
4049           be encrypted and is already encoded (no need to call _encode
4050           function).  Packet relaying is now done by router without any
4051           extra memory allocations.  Affected files are
4052           lib/silccore/silcchanel.[ch], silcd/packet_receive.c and
4053           silcd/packet_send.c.
4054
4055         * Fixed the INVITE notify handling.  It took wrong arguments
4056           as invite list and invite delete.  Affected file is
4057           silcd/packet_receive.c.
4058
4059         * Added check for TOPIC_SET notify type that the topic change is
4060           allowed by the client.  Affected file silcd/packet_receive.c.
4061
4062         * Added check for INVITE notify type that inviting is allowed by
4063           the client.  Affected file silcd/packet_receive.c.
4064
4065         * Changed the silc_server_client_on_channel to return the
4066           SilcChannelClientEntry as well.  Moved the function
4067           silc_server_check_cmode_rights to server_util.[ch].
4068           Affected files are silcd/server_util.[ch], silcd/command.c.
4069
4070         * Added function silc_server_check_umode_rights to check whether
4071           changing client's user mode is allowed.  Added check for
4072           UMODE_CHANGE notify type that the umode change is allowed
4073           by the client.  Affected files are silcd/server_util.[ch],
4074           silcd/packet_receive.c and silcd/command.c.
4075
4076 Fri Mar 22 12:25:58 CET 2002  Pekka Riikonen <priikone@silcnet.org>
4077
4078         * Fixed the SILC_PACKET_MAX_ID_LEN to actually be the max
4079           ID length.  It ignored that ID can be IPv6 based as well.
4080           Affected file lib/silccore/silcpacket.h.
4081
4082         * Fixed the silc_id_id2str and silc_id_str2id to take the
4083           IPv6 address offset's into consideration.  Affecte file is
4084           lib/silccore/silcid.c.
4085
4086 Thu Mar 21 20:44:13 EET 2002  Pekka Riikonen <priikone@silcnet.org>
4087
4088         * Fixed the internal Unix scheduler functions to check for
4089           NULL context they may receive.  The affected file is
4090           lib/silcutil/unix/silcunixschedule.c.
4091
4092 Thu Mar 21 19:12:22 EET 2002  Timo Sirainen <tss@iki.fi>
4093
4094         * Changed hardcoded ~/.silc paths to use get_irssi_dir() so you
4095           can specify different directory with --home command line
4096           parameter. Affected files irssi/src/silc/core/client_ops.c,
4097           clientutil.c
4098
4099         * SILC-specific commands aren't now executed if the active server
4100           isn't of SILC-type, so there won't be problems with having
4101           IRC and SILC protocol support in same client. Affected files
4102           irssi/src/silc/core/silc-channels.c, silc-servers.c,
4103           silc-commands.h
4104
4105 Wed Mar 20 11:06:57 CET 2002  Pekka Riikonen <priikone@silcnet.org>
4106
4107         * Improved the signal support in SILC Schedule.  Added new
4108           function silc_schedule_signal_call which is used by application
4109           to mark a signal to be called.  It is now safe to perform
4110           any kind of tasks in signal callbacks since it is guaranteed
4111           that the application specified signal callback is called
4112           after the signal is over.  Affected files are
4113           lib/silcutil/silcschedule.[ch], lib/silcutil/*/silc*schedule.c.
4114
4115 Tue Mar 19 20:42:41 EET 2002  Pekka Riikonen <priikone@silcnet.org>
4116
4117         * Added `name' field to SilcChannelPrivateKey to represent
4118           application given name for the key.  Moved also the context from
4119           lib/silcclient/idlist.h into lib/silcclient/silcclient.h.
4120           Added the `name' argument also to the function
4121           silc_client_add_channel_private_key.
4122
4123           Added function silc_client_current_channel_private_key to set the
4124           current channel private key in use.
4125
4126           Added "change" command to KEY command which can be used to change
4127           the current channel private key.  Bound the command also to
4128           alt+K (Alt+Shift+k).
4129
4130           Also affected files lib/silcclient/client_channel.c,
4131           irssi/src/docs/help/in/key.in, irssi/src/silc/core/silc-channel.c.
4132
4133 Tue Mar 19 16:32:43 CET 2002  Pekka Riikonen <priikone@silcnet.org>
4134
4135         * Added silc_rng_get_byte_fast function in to the
4136           lib/silccrypt/silcrng.[ch].
4137
4138         * Changed the interface of silc_packet_assemble and the
4139           silc_packet_send_prepare.  If silc_packet_assmble is now
4140           called the application does not call silc_packet_send_prepare
4141           because the library will call it automatically.  These
4142           interfaces now also return a reference to the outgoing buffer
4143           which includes the assembled packet, which the application can
4144           use to encrypt the packet.
4145
4146           Affected files are lib/silccore/silcpacket.[ch],
4147           lib/silcclient/client.c, client_channel.c client_prvmsg.c,
4148           silcd/packet_send.c, server_backup.c and packet_receive.c.
4149
4150         * Fixed a packet sending bug on very high load, where outgoing
4151           packet queue wasn't handled correctly and packets got corrupted.
4152           Affected files are lib/silcutil/*/silc*sockconn.c,
4153           lib/silcclient/client.c and silcd/server.c.
4154
4155 Mon Mar 18 21:00:41 EET 2002  Pekka Riikonen <priikone@silcnet.org>
4156
4157         * Added macro SILC_PACKET_DATALEN which can be used during
4158           packet assembling to check whether the data to be added to
4159           the packet will fit to SILC_PACKET_MAX_LEN.  If not the data
4160           len is truncated until it fits it.
4161
4162           Added checks for maximum length of channel message payload and
4163           private message payload also.
4164
4165           Added checks for maximum packet length in server and in
4166           client library.
4167
4168           Affected files are lib/silccore/silcpacket.h, silcd/packet_send.c,
4169           lib/silcclient/client.c, lib/silccore/silcchannel.c and
4170           lib/silccore/silcprivate.c, lib/silcclient/client_channel.c and
4171           lib/silcclient/client_prvmsg.c.
4172
4173 Mon Mar 18 14:54:42 CET 2002  Pekka Riikonen <priikone@silcnet.org>
4174
4175         * Added silc_server_packet_queue_purge call to the
4176           silc_server_disconnect_remote to assure that all data in the
4177           queue before disconnecting is sent to the network.  Affected
4178           file silcd/server.c.
4179
4180 Sun Mar 17 19:26:16 EET 2002  Pekka Riikonen <priikone@silcnet.org>
4181
4182         * Added the deleting of server's own ID cache entry to the
4183           silc_server_free function.  Free also everything else that
4184           has been allocated in silc_server_init.  The affected file
4185           is silcd/server.c.
4186
4187 Sun Mar 17 15:44:56 EET 2002  Pekka Riikonen <priikone@silcnet.org>
4188
4189         * Added functions silc_parse_version_string, silc_version_to_num,
4190           and silc_ske_parse_version to parse SILC protocol style version
4191           strings.  Affected files lib/silcutil/silcutil.[ch] and
4192           lib/silcske/silcske.[ch].
4193
4194         * Added new configuration params: version_protocol, version_software
4195           and version_software_vendor to specify what version the remote
4196           host must at least be to be able to connect to server.  The vendor
4197           string can be regex matched too.  Added new function
4198           silc_server_connection_allowed to check maximum number of allowed
4199           connections, and allowed versions for incoming connections.
4200           Affected files are silcd/server.c, server_util.[ch] and
4201           serverconfig.[ch].
4202
4203 Sun Mar 17 10:24:50 EET 2002  Pekka Riikonen <priikone@silcnet.org>
4204
4205         * Added preliminary support for signals in scheduler.  The
4206           signals we care about are now blocked always when the scheduler
4207           is locked.  This way we can synchronise the use of signal with
4208           scheduler.  It is guaranteed that when signal occurs the scheduler
4209           is not locked, and thus new tasks can be safely added to the
4210           scheduler.
4211
4212           Renamed silc_schedule_wakeup_init and silc_schedule_wakeup_uninit
4213           to silc_schedule_internal_init and silc_schedule_internal_uninit.
4214           Added new platform specific routines
4215           silc_schedule_internal_signals_[un]block and
4216           silc_schedule_internal_signal_[un]register.
4217
4218           Added new functions to SILC Schedule API:
4219           silc_schedule_signal_[un]register.  Each signal that application
4220           is going to use should be registered to the scheduler.
4221
4222           Affected files are lib/silcutil/silcschedule.[ch],
4223           lib/silcutil/*/silc*schedule.c.
4224
4225 Sat Mar 16 22:39:23 EET 2002  Pekka Riikonen <priikone@silcnet.org>
4226
4227         * Check for unauthenticated client and server in the
4228           silc_server_new_client and silc_server_new_server functions.
4229           Affected file silcd/packet_receive.c.
4230
4231         * Added function silc_string_is_ascii to check whether given
4232           string is 7-bit ASCII string.  Affected files are
4233           lib/silcutil/silcutil.[ch].
4234
4235         * Added function silc_id_is_valid_server_id into the
4236           silcd/serverid.c and added checking for valid Server ID's in
4237           silc_server_new_server.  The Server ID must always be based
4238           on the server's public IP address.
4239
4240         * Added logging of DISCONNECT packet message in the server.
4241           Affected file silcd/server.c.
4242
4243 Sat Mar 16 18:04:30 EET 2002  Pekka Riikonen <priikone@silcnet.org>
4244
4245         * Changed all library interfaces that use Global RNG to also
4246           accept SilcRng as argument.  Affected files are
4247           lib/silcclient/command.c, lib/silccore/silcauth.[ch],
4248           lib/silccore/silcchanel.[ch], lib/silcclient/client_channel.c,
4249           silcd/packet_send.c, lib/silccore/silcprivate.[ch],
4250           lib/silcmath/silcprimegen.c, lib/silcmath/silcmath.h, and
4251           lib/silccrypt/rsa.c.
4252
4253         * Added function silc_pkcs_generate_key to the
4254           lib/silccrypt/silcpkcs.[ch] for applications so that they
4255           don't need to do pkcs->pkcs->init calls anymore.
4256
4257         * Remove SilcSocketConnection from the SFTP API since it really
4258           wasn't needed there.  The application has the information
4259           saved in its contexts anyway and the SFTP layer doesn't need
4260           know about it.  Affected files lib/silcsft/silcsftp.h and
4261           lib/silcsftp/sftp_[server/client].c.
4262
4263         * Rewrote the SILC SIM (modules) interface in lib/silcsim.[ch].
4264           The SilcSimContext is not SilcSim.
4265
4266         * Fixed possible buffer overflows in silc_id_render in the
4267           lib/silcutil/silcutil.c.
4268
4269         * On EPOC the global crypto module lists are not used at all
4270           in the crypto library.  Added support for using the constant
4271           algorithm list on EPOC.  Affected files are
4272           lib/silccrypt/silccipher.c, silchash.c, silchmac.c and
4273           silcpkcs.c.
4274
4275         * Fixed the handling of third parameter of KICKED notify, since
4276           it was mistakenly updated to SILC Protocol 1.0 even though it
4277           is to be included in 1.1.  Since it is not in 1.0 it is not
4278           mandatory, and this fix now handles it only if it is provided,
4279           and it is not error if it is not provided.  Affected file
4280           lib/silcclient/client_notify.c.
4281
4282 Sat Mar 16 09:07:27 EET 2002  Pekka Riikonen <priikone@silcnet.org>
4283
4284         * Handled CHANNEL_CHANGE notify (ignore it) in Irssi SILC
4285           client.  Affected file irssi/src/silc/core/client_ops.c.
4286
4287         * Merged with Irssi 0.8.4 from irssi.org CVS.
4288
4289 Thu Mar 14 12:53:57 CET 2002  Pekka Riikonen <priikone@silcnet.org>
4290
4291         * Check for valid socket connection in client entries before
4292           sending any messages.  Fixes a crash, but doesn't fix some
4293           other underlaying bug that is lurking there.  Affected
4294           file silcd/packet_send.c.
4295
4296 Thu Mar 14 13:38:12 EET 2002  Timo Sirainen <tss@iki.fi>
4297
4298         * $usermode, $cumode and $cumode_space expandos shouldn't do
4299           anything with non-SILC server records. Affected file
4300           irssi/src/silc/core/silc-expandos.c
4301
4302 Wed Mar 13 21:38:26 EET 2002  Pekka Riikonen <priikone@silcnet.org>
4303
4304         * Fixed the silc_net_check_[host/local]_by_sock to support
4305           IPv6 bound sockets as well.  Now they can return IPv6 addresses
4306           as well.  Affected file lib/silcutil/silcnet.c.
4307
4308         * Fixed silc_net_addr2bin to correctly convert IPv6 addresses.
4309           Affected lib/silcutil/unix/silcunixnet.c.
4310
4311         * Fixed ID rendering (at least on some platforms, not NetBSD)
4312           for IPv6 addresses.  Affected file lib/silcutil/silcutil.c.
4313
4314 Tue Mar 12 17:58:59 EET 2002  Pekka Riikonen <priikone@silcnet.org>
4315
4316         * Added silc_hash_public_key and silc_hash_public_key_compare
4317           functions to be used with SilcHashTable.  They can be used to
4318           hash public keys and compare public keys in hash table.  Affected
4319           file lib/silcutil/silcutil.[ch].
4320
4321         * Added support for specifying multiple public keys for Client
4322           connection section in server configuration file.  This makes it
4323           possible to accept multiple public keys from same host, or to
4324           make a section that accepts any incoming host, and have the
4325           accepted public keys listed in the section.
4326
4327           Added functions silc_sever_[find/get]_public_key,  added the
4328           support for this actually to all connection sections but only
4329           the Client section is currently allowed to specify multiple
4330           public keys.
4331
4332           Affected files are silcd/server.c, server_internal.h,
4333           command.c, protocol.c, server_util.[ch], packet_receive.c.
4334
4335 Mon Mar 11 23:37:38 EET 2002  Pekka Riikonen <priikone@silcnet.org>
4336
4337         * Merged Irssi 0.8.2 from irssi.org CVS.
4338
4339 Sun Mar 10 23:34:48 CET 2002  Johnny Mnemonic <johnny@themnemonic.org>
4340
4341         * If silc_debug is TRUE, also output standard logging messages
4342           to stderr with the debug output.
4343
4344           Made silc_log_reset_all() flushing all channels before returning.
4345           Also fixed some documentation typos.
4346
4347           Affected files are lib/silcutil/silclog.[ch].
4348
4349 Sun Mar 10 20:07:49 EET 2002  Pekka Riikonen <priikone@silcnet.org>
4350
4351         * Fixed the server to check correctly the amount of connections
4352           from single host, by checking also the type of the connection.
4353           Fixed also the comparison of number of connections and number
4354           of allowed connections.  Affected files are silcd/server.c,
4355           server_util.[ch].
4356
4357 Fri Mar  8 17:16:41 EET 2002  Pekka Riikonen <priikone@silcnet.org>
4358
4359         * Fixed the USERS command reply to save the user's mode on the
4360           channel as well.  Fixed JOIN command reply to check whether a
4361           client is on channel already and not join it twice.  Affected
4362           file lib/silcclient/command_reply.c.
4363
4364         * Added new file silc-expandos.c into irssi/silc/core/ to return
4365           various stuff for various signal for the statusbar etc. updating.
4366           Now Irssi SILC client prints channel user modes etc. on the
4367           statusbar.
4368
4369         * The user mode (like server/router operator changes) is now shown
4370           on the Irssi SILC client's statusbar.  The affected files are
4371           irssi/src/silc/core/client_ops.c, silc-expandos.c.
4372
4373 Thu Mar  7 19:21:22 EET 2002  Pekka Riikonen <priikone@silcnet.org>
4374
4375         * Changed silc_mutex_[un]lock calls in lib/silcutil/silcschedule.c
4376           to SILC_SCHEDULE_[UN]LOCK macros.
4377
4378         * Added more error printing to logs in server code.  Affected
4379           files silcd/server.c and silcd/protocol.c.
4380
4381         * Fixed -S option parsing in Irssi SILC Client.  Affected file
4382           irssi/src/silc/core/silc-core.c.
4383
4384         * Added silc_buffer_alloc_size function.  Affected file is
4385           lib/silcutil/silcbuffer.h.
4386
4387 Tue Mar  5 14:37:27 EET 2002  Pekka Riikonen <priikone@silcnet.org>
4388
4389         * Changed all silc_[hash|hmac|cipher|pkcs]_default tables to
4390           constants.  Affected files in
4391           lib/silccrypt/silcpkcs.[ch], silchash.[ch], silchmac.[ch] and
4392           silccipher.[ch].
4393
4394         * Changed the internal SFTP Memory FS table to const.  Affected
4395           file lib/silcsftp/sftp_fs_memory.c.
4396
4397 Sun Mar  3 18:37:13 EET 2002  Pekka Riikonen <priikone@silcnet.org>
4398
4399         * Fixed the buffer formatting and unformatting routines to
4400           check the size of 64 bits types with sizeof().  Affected
4401           file is lib/silcutil/silcbuffmt.c.
4402
4403 Mon Feb 25 17:19:05 EET 2002  Pekka Riikonen <priikone@silcnet.org>
4404
4405         * Removed 0.6.x backwards support.
4406
4407 Sun Feb 24 12:53:25 EET 2002  Pekka Riikonen <priikone@silcnet.org>
4408
4409         * Changed all integer type names:
4410           [u]int[8/16/32/64] -> Silc[UInt/Int][8/16/32/64].  This is
4411           to avoid collisions with other libraries using same type names
4412           as we did.
4413
4414 Sat Feb 23 20:31:43 EET 2002  Pekka Riikonen <priikone@silcnet.org>
4415
4416         * Added `prefer_ipv6' argument to the functions
4417           silc_net_gethostbyname[_async].  If it is TRUE it will return
4418           IPv6 address over IPv4.  If FALSE IPv4 address is returned
4419           even if IPv6 address was found.  Affected files
4420           lib/silcutil/silcnet.[ch].
4421
4422         * Added support silc_net_create_connection[_async] to fallback
4423           to IPv4 address if IPv6 address could not be used (like if
4424           it doesn't work on a specific system).  Affected file in
4425           lib/silcutil/unix/silcunixnet.c.
4426
4427 Sat Feb 23 15:20:30 EET 2002  Pekka Riikonen <priikone@silcnet.org>
4428
4429         * Added silc_schedule_reinit function to do the enlarging
4430           of the max tasks handling capabilities of the scheduler.
4431           Affected files lib/silcutil/silcschedule.[ch].
4432
4433 Wed Feb 20 20:41:01 EET 2002  Pekka Riikonen <priikone@silcnet.org>
4434
4435         * Added automatic extern "C" { ... } for C++ compilers so the
4436           application does not need to define them.  Affected file
4437           includes/silcincludes.h.
4438
4439         * Renamed lib/silcclient/silcapi.h to silcclient.h as the
4440           old name went against naming convention.  Applications now
4441           include "silcclient.h" instead of "clientlibincludes.h".
4442           Removed includes/clientlibincludes.h, it is redundant now.
4443
4444         * Renamed includes/version.h to silcversion.h.
4445
4446         * Added really preliminary support for OS/2 into the util
4447           library.  Only thread & mutex API is implemented, others
4448           are still to be implemented.  Created the lib/silcutil/os2/
4449           directory.  Created also file includes/silcos2.h.
4450
4451 Wed Feb 20 18:48:49 EET 2002  Pekka Riikonen <priikone@silcnet.org>
4452
4453         * Added preliminary BeOS support into the util library.
4454           Created lib/silcutil/beos/, and implemented all the needed
4455           functions to support SILC on BeOS.  Created also file
4456           includes/silcbeos.h.
4457
4458 Mon Feb 18 15:49:22 EET 2002  Timo Sirainen <tss@iki.fi>
4459
4460         * Added proper initializations to silc's irssi code, so it's
4461           now possible to load it as module.  Affected files
4462           irssi/src/silc/core/silc-core.c,
4463           fe-common/silc/fe-common-silc-core.[ch] and fe-text/silc.c
4464
4465 Sun Feb 17 19:02:56 EET 2002  Pekka Riikonen <priikone@silcnet.org>
4466
4467         * Merged latest Irssi (0.8.1) from the irssi.org's CVS into
4468           the SILC tree.
4469
4470         * Fixed the silcdoc document generator to correct generate
4471           docs from all kinds of filenames.  Affected files are
4472           util/robodoc/Source/generator.c, scripts/silcdoc/silcdoc
4473
4474         * ROBOdoc documented lib/silcutil/silcmemory.h.
4475           Added also new function silc_memdup.
4476
4477         * Removed lib/silcutil/silcbufutil.h and moved those routines
4478           to the lib/silcutil/silcbuffer.h.
4479
4480 Sun Feb 17 15:52:30 EET 2002  Pekka Riikonen <priikone@silcnet.org>
4481
4482         * Added `user_count' to the SilcChannelEntry which now tells the
4483           number of users on the channel.  The user count is now saved
4484           in normal server of global channels as well.  Affected files
4485           silcd/server.c, idlist.h, packet_receive.c and command.c.
4486
4487         * Splitted lib/silcutil/silcutil.[ch] into silcfileutil.[ch] to
4488           include file utility functions.
4489
4490         * Fixed the lib/silcsftp/sftp_fs_memory.c to use silcutil routines
4491           instead of calling directly OS routines.
4492
4493         * Fixed NICK change printing in Irssi SILC Client. Fixed
4494           KICKED notify printing in Irssi SILC Client.  Affected file
4495           irssi/src/silc/core/client_ops.c.
4496
4497         * Fixed a NICK change bug in client library, to not recreate the
4498           client_entry->channels hash table everytime nick is changed.
4499           Affected file lib/silcclient/client.c.
4500
4501 Sun Feb 17 10:10:14 EET 2002  Pekka Riikonen <priikone@silcnet.org>
4502
4503         * ROBOdoc documented the lib/silcske/silcske.h, and improved
4504           the SKE interface a bit.
4505
4506         * Fixed padding problem in PKCS#1. The padding was not actually
4507           random since the random number generator was used incorrectly.
4508           This security bug affects only when encrypting with PKCS#1, and
4509           it is not currently used at all in SILC. SILC only use signing
4510           with PKCS#1. Affected file lib/silccrypt/pkcs1.c.
4511
4512 Sat Feb 16 13:44:24 EET 2002  Pekka Riikonen <priikone@silcnet.org>
4513
4514         * Rewrote the notify handling in Irssi SILC client to not call
4515           the events as signals.  Fixes problems with Perl support.
4516           Affected files irssi/src/silc/core/client_ops.c, silc-channels.c.
4517
4518         * Send the auto-nicking NICK command in client library with
4519           little timeout after connecting.  The affected file is
4520           lib/silcclient/client.c.
4521
4522         * Added following new config file settings:
4523           channel_rekey_secs, key_exchange_rekey, key_exchange_pfs,
4524           key_exchange_timeout, conn_auth_timeout, connections_max,
4525           links_max.
4526
4527           Implemented all the new config settings handling in the server.
4528
4529           Optimized the use of SKE Mutual flag usage.  Use it only
4530           if connection authentication protocol is not based in public
4531           key authentication.
4532
4533           Renamed all SilcServerConfigSection* to SilcServerConfig*
4534           to have a bit shorter names.
4535
4536           Affected files silcd/serverconfig.[ch], server.[ch], and
4537           protocol.[ch].
4538
4539 Sat Feb 16 02:46:43 CET 2002  Johnny Mnemonic <johnny@themnemonic.org>
4540
4541         * Cleaned up the listening sockets code, preparing for the rehash
4542           support.  Affected file is silcd/server.c.
4543
4544         * Fixed some output messages.  Affected files are silcd/silcd.c,
4545           and silcd/server.c.
4546
4547 Fri Feb 15 19:10:20 EET 2002  Pekka Riikonen <priikone@silcnet.org>
4548
4549         * Create lib/doc/silcrng_intro.html document as introduction
4550           to SILC RNG.  ROBOdoc documented lib/silccrypt/silcrng.h.
4551
4552 Fri Feb 15 13:23:03 CET 2002  Johnny Mnemonic <johnny@themnemonic.org>
4553
4554         * Fixes to the silcd config template.  Affected file is
4555           doc/example_silcd.conf.in.
4556
4557         * Removed type casts from silc_calloc(), conforming to the
4558           CodingStyle.  Affected file is lib/silcutil/silcconfig.c.
4559
4560         * Removed param_name member from client, server, and router
4561           section structs, now identifying the param directly.
4562
4563           Added CONFIG_FREE_AUTH macro in config file parsing.
4564
4565           Affected files are silcd/serverconfig.[ch].
4566
4567 Fri Feb 15 12:24:08 EET 2002  Timo Sirainen <tss@iki.fi>
4568
4569         * Fixed command line parameter handling. All SILC initialization
4570           is now done in silc_core_init() which also fixes autoconnecting
4571           to servers.
4572
4573           Affected files irssi/src/silc/core/silc-core.c,
4574           irssi/src/fe-text/silc.c.
4575
4576 Thu Feb 14 22:03:58 EET 2002  Pekka Riikonen <priikone@silcnet.org>
4577
4578         * Added new configuration options and blocks:
4579           keepalive_secs, reconnect_count, reconnect_interval,
4580           reconnect_interval_max, reconnect_keep_trying and
4581           require_reverser_lookup.  Added ConnectionParam block, and
4582           implemented the connection parameters when connecting as
4583           initiator and when accepting connections as responder.
4584
4585           Added CONFIG_IS_DOUBLE macro in config file parsing, to check
4586           whether given configuration value has been given already.
4587
4588           Affected files silcd/serverconfig.[c], server.[c].
4589
4590         * Splitted the doc/example_silcd.conf.in.  Separated the crypto
4591           algorithm parts and created new file silcalgs.conf, that
4592           is now included from the example_silcd.conf.in.
4593
4594         * Optimized the silc_server_connect_to_router_second to take
4595           the connection configuration object from the SilcServerConnection
4596           object instead of finding it during the connecting phase.
4597           Added the configuration object to SilcServerConnection struct.
4598           Affected files silcd/server_internal.h, server.c.
4599
4600 Thu Feb 14 16:02:26 CET 2002  Pekka Riikonen <priikone@silcnet.org>
4601
4602         * Add the client on channel after it was resolved at the
4603           channel message receiving, and it was not already on the
4604           channel.  Affected file lib/silcclient/client_channel.c.
4605
4606 Wed Feb 13 23:16:41 EET 2002  Pekka Riikonen <priikone@silcnet.org>
4607
4608         * Fixed the public key authentication to allocate always the
4609           destination signature buffer instead of using static buffer.
4610           Affected file silcd/protocol.c.
4611
4612 Wed Feb 13 20:51:13 EET 2002  Pekka Riikonen <priikone@silcnet.org>
4613
4614         * Unified the serverconfig.[ch]'s helper function interface.
4615           Affected file silcd/serverconfig.[ch].
4616
4617         * Removed doc/example_silc.conf.in since it is redundant.
4618           The make install will now install irssi/silc.conf file.
4619
4620         * Added new Passphrase and Publickey authentication methods to
4621           config file, allowing both public key and passphrase based
4622           authentication to be set at the same time.
4623
4624           Added `prefer_passphrase_auth' setting in config file which
4625           can be used to set to prefer passwd auth if both passwd and
4626           public key is set.  If not set, public key is preferred.
4627           This has effect only when being initiator (responder will try
4628           both anyway).
4629
4630           Added support for authentication with passphrase and public key
4631           at the same time.  The passphrase is tried first always since
4632           it is faster to check.
4633
4634           Affected file silcd/serverconfig.[ch], server.c, protocol.[ch].
4635
4636 Wed Feb 13 12:46:25 CET 2002  Johnny Mnemonic <johnny@themnemonic.org>
4637
4638         * Merged the new SILC Config library, with the server parsing
4639           support.  Read the header file silcconfig.h or the toolkit
4640           documentation for the news.  Affected files are
4641           doc/example_silcd.conf.in lib/silcutil/silcconfig.[ch]
4642           silcd/command.c silcd/packet_receive.c silcd/packet_send.c
4643           silcd/protocol.c silcd/server.c silcd/server_backup.c
4644           silcd/serverconfig.[ch] silcd/silcd.c.
4645
4646         * Fixed some silclog documentation.  Affected file is
4647           lib/silcutil/silclog.h.
4648
4649 Sun Feb 10 18:11:30 EET 2002  Pekka Riikonen <priikone@silcnet.org>
4650
4651         * The silc_cipher_register, silc_hash_register and
4652           silc_hmac_register now checks if the object to be registered
4653           is registered already.  Affected files are
4654           lib/silccrypt/silccipher.c, silchash.c and silchmac.c.
4655
4656 Sun Feb 10 15:48:38 EET 2002  Pekka Riikonen <priikone@silcnet.org>
4657
4658         * Merged new irssi from irssi.org's CVS, the version 0.7.99.
4659
4660 Sat Feb  9 14:54:33 EET 2002  Pekka Riikonen <priikone@silcnet.org>
4661
4662         * Allow zero length channel messages inside the Channel Message
4663           Payload.  Affected file lib/silccore/silcchannel.c.
4664
4665         * Fixed scripts/silcdoc/silcdoc to support all kinds of filenames
4666           as header filenames.
4667
4668         * Removed lib/silcclient/README and created HTML file
4669           lib/silcclient/silcclient_using.html, which is now included
4670           as part of Toolkit documentation.
4671
4672 Thu Feb  7 10:12:25 CET 2002  Pekka Riikonen <priikone@silcnet.org>
4673
4674         * Fixed CUMODE_CHANGE notify handling to change the mode of
4675           correct client.  Affected file lib/silcclient/client_notify.c.
4676
4677         * Make silc_rng_alloc fail if it cannot allocate the sha1
4678           hash algorithm.  Affected file lib/silccrypt/silcrng.c.
4679
4680 Sun Feb  3 17:20:52 EET 2002  Pekka Riikonen <priikone@silcnet.org>
4681
4682         * Fixed the file transfer's key agreement payload to include
4683           zero port also if the hostname is NULL because it could not
4684           be bound.
4685
4686           Call file transfer monitor callback now also if error occurs
4687           during key agreement protocol.
4688
4689           Changed the silc_client_file_send interface to return the
4690           SilcClientFileError instead of session id.  The session ID
4691           is returned into pointer provided as argument.
4692
4693           Check that the file exists locally before sending the
4694           file transfer request at all.
4695
4696           Affected file lib/silcclient/client_ftp.c, silcapi.h.
4697
4698         * Added SILC_CLIENT_FILE_KEY_AGREEMENT_FAILED file transfer
4699           error than can occur while key agreement protocol.  Affected
4700           file lib/silcclient/silcapi.h.
4701
4702         * Fixed the event_mode CMODE handler to not crash when mode
4703           is changed and +k mode is set in the channel.  Affected file
4704           irssi/src/silc/core/silc-channels.c.
4705
4706         * Fixed SILC_LOG_ERROR to give out Error and not Warning, and
4707           SILC_LOG_WARNING to give out Warning and not Error.  Affected
4708           file lib/silcutil/silclog.c.
4709
4710         * Fixed the channel message payload decryption in the function
4711           silc_channel_message_payload_decrypt to not modify the original
4712           buffer before it is verified that the message decrypted
4713           correctly.  Otherwise, next time it is called with correct
4714           channel key it won't encrypt since the payload is corrupted.
4715           Affected file lib/silccore/silcchannel.c.
4716
4717 Sun Feb  3 11:46:12 EET 2002  Pekka Riikonen <priikone@silcnet.org>
4718
4719         * Do not constantly resize the window.  A fix patch by cras.
4720           Affected file irssi/src/fe-text/screen.c.
4721
4722 Sat Feb  2 16:54:18 EET 2002  Pekka Riikonen <priikone@silcnet.org>
4723
4724         * Applied IPv6 fix patch from Jun-ichiro itojun Hagino.
4725           Affected file lib/silcutil/silcnet.c.
4726
4727 Fri Feb  1 22:33:11 EET 2002  Pekka Riikonen <priikone@silcnet.org>
4728
4729         * Fixed a bug in hash table internal routine for traversing
4730           the table with foreach callback.  The current entry may
4731           become invalid in the callback but it was referenced after
4732           the callback returned.
4733
4734           Do not allow auto rehashing of hash table during the
4735           silc_hash_table_foreach operation, for same reasons as it is
4736           not allowed for SilcHashTableList.  Affected files are
4737           lib/silcutil/silchashtable.[ch].
4738
4739 Fri Feb  1 14:55:00 CET 2002  Pekka Riikonen <priikone@silcnet.org>
4740
4741         * Defined DLLAPI into silcincludes.h and silcwin32.h for
4742           Win32 DLL.  extern's in header files are now declared with
4743           DLLAPI.
4744
4745 Thu Jan 31 23:34:33 EET 2002  Pekka Riikonen <priikone@silcnet.org>
4746
4747         * Fixed private message handling.  It used some old code that
4748           caused the client to crash.  Affecte file is
4749           lib/silcclient/client_prvmsg.c.
4750
4751 Thu Jan 31 19:06:22 EET 2002  Pekka Riikonen <priikone@silcnet.org>
4752
4753         * Added function silc_client_add_channel,
4754           silc_client_replace_channel_id, and removed functions
4755           silc_client_new_channel_id and silc_idlist_get_channel_by_id
4756           from client library.
4757
4758         * Added cross reference of the joined channels to the
4759           SilcClientEntry, and changed the SilcChannelEntry's
4760           users list to SilcHashTable.  The affected files are
4761           lib/silcclient/idlist.[ch].
4762
4763         * Fixed a bug in hash table tarversing.  While the hash table
4764           is traversed with SilcHashTableList the table must not be
4765           rehashed.  It is now guaranteed that auto rehashable tables
4766           are not rehashed while tarversing the list.  Also defined that
4767           silc_hash_table_rehash must not be called while tarversing
4768           the table.  Added function silc_hash_table_list_reset that must
4769           be called after the tarversing is over.  The affected files are
4770           lib/silcutil/silchashtable.[ch].
4771
4772         * Changed all hash table traversing to call the new
4773           silc_hash_table_list_reset in server and in client library.
4774
4775         * Added function silc_client_on_channel to return the
4776           SilcChannelUser entry if the specified client entry is joined
4777           on the specified channel.  This is exported to application as
4778           well.  Affected files lib/silcclient/client_channel.c, silcapi.h.
4779
4780 Wed Jan 30 19:14:31 EET 2002  Pekka Riikonen <priikone@silcnet.org>
4781
4782         * Fixed founder regaining problem with JOIN command on normal
4783           server.  The notify for mode change must be sent always and
4784           not only if !cmd->pending.  Affected file silcd/command.c.
4785
4786         * Fixed the WHOWAS command's reply sending to support the
4787           lists correctly.  Affected file silcd/command.c.
4788
4789 Wed Jan 30 11:11:47 CET 2002  Pekka Riikonen <priikone@silcnet.org>
4790
4791         * When sending JOIN command to router for processing the
4792           sender's old command identifier was not saved back to the
4793           sender's command context, fixed now.  The affected file is
4794           silcd/command.c.
4795
4796         * Create the key in JOIN command of the router did not return
4797           the channel key, added check for this.  Affected file is
4798           silcd/command.c.
4799
4800         * Fixed a channel ID update bug in JOIN command reply.  Do
4801           not directly upgrade the ID but call the function
4802           silc_idlist_replace_channel_id if the ID was changed.
4803           Affected file silcd/command_reply.c.
4804
4805         * Fixed memory leaks from command calling if it would fail.
4806           Affected file silcd/command.c.
4807
4808 Tue Jan 29 19:49:31 EET 2002  Pekka Riikonen <priikone@silcnet.org>
4809
4810         * Applied patches from cras:
4811
4812           Memory leak fixes around libaries, irssi window resize fix,
4813           new silclist.h and silcdlist.h, all extern inline changed to
4814           static inline.
4815
4816         * Removed dotconf from lib/dotconf, not needed anymore.
4817
4818         * Removed TRQ from lib/trq, not needed anymore.
4819
4820         * Do more frequent heartbeats (5 minutes instead of 10 minutes)
4821           with server connections.  Later this will be configurable
4822           in config file after new config file is done.  Affected file
4823           silcd/server.c.
4824
4825 Tue Jan 29 10:35:03 CET 2002  Pekka Riikonen <priikone@silcnet.org>
4826
4827         * Fixed a crash in server related to channel announcements.
4828           Affected file silcd/server.c.
4829
4830 Mon Jan 28 17:49:42 EET 2002  Pekka Riikonen <priikone@silcnet.org>
4831
4832         * Fixed memory leaks in silc_server_create_new_channel*
4833           functions.  Affected file silcd/server.c.
4834
4835         * Fixed the CHANNEL_CHANGE notify to re-announce the channel
4836           which ID was changed.  This way the router will send the
4837           user list for the channel again, and server won't be in
4838           desync in some rare circumstances.  Affected file is
4839           silcd/packet_receive.c.
4840
4841 Sun Jan 27 21:04:19 EET 2002  Pekka Riikonen <priikone@silcnet.org>
4842
4843         * Check for NULL socket pointer in the function
4844           silc_server_packet_send_to_channel_real.  Affected file
4845           silcd/packet_send.c.
4846
4847         * Fixed the BAN notify handling to correctly remove ban
4848           list.  Affected file silcd/packet_receive.c.
4849
4850 Sat Jan 26 23:01:03 EET 2002  Pekka Riikonen <priikone@silcnet.org>
4851
4852         * Fixed some header addition to Toolkit distribution in
4853           lib/silcutil/Makefile.am and lib/trq/Makefile.am.
4854
4855         * Added lib/silcclient/client_ops_example.h as an template
4856           file for application programmers to quickly start using
4857           the SilcClientOperation functions in their application.
4858           Updated the lib/silcclient/README as well to tell about this
4859           nice file made available.
4860
4861 Sat Jan 26 10:45:41 EET 2002  Pekka Riikonen <priikone@silcnet.org>
4862
4863         * Call silc_server_remove_from_channels when removing client
4864           entry when NO_SUCH_CLIENT_ID was received.  Affected file
4865           is silcd/command_reply.c.
4866
4867 Fri Jan 25 19:12:36 EET 2002  Pekka Riikonen <priikone@silcnet.org>
4868
4869         * Added server & router operator statistics updating.  Affected
4870           file silcd/packet_receive.c and silcd/command.c.
4871
4872         * Fixed the SERVER_SIGNOFF notify handling on normal server
4873           not to save the history information for clients.  Same was
4874           fixed earlier in remove_clients_by_server function, but not
4875           here.  Affected file silcd/packet_receive.c.
4876
4877         * Raised the default connection-retry count from 4 to 7 in
4878           server.  Affected file silcd/server.h.
4879
4880         * Cancel any possible reconnect timeouts when we start the
4881           key exchange.  Affected file silcd/server.c.
4882
4883         * Do not reconnect on connection failure when SCONNECT was
4884           given.  Affected files silcd/server.[ch].
4885
4886 Tue Jan 22 18:19:36 EET 2002  Pekka Riikonen <priikone@silcnet.org>
4887
4888         * Removed assert()'s from the lib/silcclient/client_keyagr.c.
4889
4890         * Fixed the NICK command to always give the unformatted
4891           nickname to the one giving the NICK command.  If unformatted
4892           nickname is cached already it will be formatted and the
4893           local entry will always get the unformatted nickname.
4894           Affected file lib/silcclient/idlist.c.
4895
4896         * Fixed some double frees from client library commands.
4897           Affected file is lib/silcclient/command.c.
4898
4899         * Fixed CUMODE command in server to assure that no one can
4900           change founder's mode than the founder itself, there was a
4901           little bug.  Affected file silcd/command.c.
4902
4903 Mon Jan 21 19:07:53 EET 2002  Pekka Riikonen <priikone@silcnet.org>
4904
4905         * Removed the SilcClientCommandDestructor from the client
4906           libary, it is not needed anymore.  Affected files are
4907           lib/silcclient/silcapi.h, command[_reply].[ch],
4908           client_notify, idlist.c.
4909
4910         * Fixed GETKEY command to first resolve client, and then
4911           resolve the server only if the client was not found, instead
4912           of resolving both at the same time.  Affected file is
4913           lib/silcclient/command.c.
4914
4915         * Added silc_client_start_key_exchange_cb and lookup the
4916           remote hostname and IP address before starting the key
4917           exchange with server.  The affected file is
4918           lib/silcclient/client.c.
4919
4920         * The server's public key is now saved using the IP address
4921           of the server and not the servername for the filename.
4922           The hostname public key filename is checked as an fall back
4923           method if the IP address based filename is not found.
4924
4925           Fixed the GETKEY command to save the fetched server key
4926           in correct filename.
4927
4928           Print the remote server's hostname now when new key is
4929           received during connection process.  Affected file is
4930           irssi/src/silc/core/client_ops.c.
4931
4932         * Return always our own public key to the client if it asks
4933           for it with GETKEY command.  Affected file silcd/command.c.
4934
4935         * Removed the use_auto_addr variable from default config
4936           file since it was in wrong section.  Affected file is
4937           irssi/src/config.
4938
4939         * Fixed TOPIC_CHANGE notification to not route it when it
4940           was sent using silc_server_send_notify_to_channel function.
4941           Affected file silcd/command.c.
4942
4943         * Fixed silc_server_send_notify_kicked to send the kicker's
4944           Client ID also, it was missing.  Affected files are
4945           silcd/command.c, silcd/packet_send.[ch].
4946
4947 Thu Jan 17 18:59:11 EET 2002  Pekka Riikonen <priikone@silcnet.org>
4948
4949         * Do not save client history information in SERVER_SIGNOFF.
4950           Fixes the bug in normal server that it does not detect
4951           the client becoming valid after the server becomes back
4952           online.  Affected file silcd/server_util.c.
4953
4954         * Added `sock_error' field  into the SilcSocketConnection
4955           context.  When error occurs during socket operation (read
4956           or write) the error is saved.  Added also new function
4957           silc_socket_get_error to return human readable socket error
4958           message.  Affected files are lib/silcutil/silcsockconn.[ch],
4959           lib/silcutil/unix/silcunixsockconn.c, and
4960           lib/silcutil/win32/silcwin32sockconn.c.
4961
4962         * The server now prints the socket error message in the
4963           signoff for client.  Affected file silcd/server.c.
4964
4965         * Fixed the `created' channel information sending from router
4966           to server in JOIN command.  Checks now whether the channel
4967           really was created or not and set it according that.
4968
4969           Fixed the JOIN command to use the client entry's current
4970           ID during the joining procedure instead of the one it sent
4971           in the command (it is checked though), since it can change
4972           between the packet processing and command processing, and
4973           would just case unnecessary pain in the client end.  Affected
4974           file silcd/command.c.
4975
4976         * Fixed a channel key payload sending to use correct channel
4977           ID when the server was forced to change the channel's ID by
4978           router.  Router sent the key payload with the old Channel ID.
4979           Affected file silcd/packet_receive.c.
4980
4981 Wed Jan 16 22:26:30 EET 2002  Pekka Riikonen <priikone@silcnet.org>
4982
4983         * Call silc_server_save_channel_key only if the key payload
4984           was provided in the JOIN command's command reply.  Affected
4985           file silcd/command_reply.c.
4986
4987 Tue Jan 15 18:49:41 EET 2002  Pekka Riikonen <priikone@silcnet.org>
4988
4989         * Fixed silc_mp_sizeinbase to return the value correctly with
4990           MPI.  Affected file lib/silcmath/mp_mpi.c.
4991
4992         * Fixed the stop_server signal to correctly stop the scheduler
4993           and gracefully stop the server when SIGTERM or SIGINT signals
4994           are received.  Affected file silcd/silcd.c.
4995
4996 Mon Jan  7 23:38:19 CET 2002  Johnny Mnemonic <johnny@themnemonic.org>
4997
4998         * Simple handling of TERM and HUP signals. Also added some log
4999           flushing call around.  Affected file is
5000           silcd/silcd.c.
5001
5002         * Fixed small bugs in silclog.c. Now buffering output will take
5003           effect after 10 seconds since startup: This will ensure that
5004           no important startup messages are lost. Also output redirection
5005           will preserve original format ([Date] [Type] message).
5006           Affected file is lib/silcutil/silclog.c.
5007
5008         * Added two options to the config file, in the logging section:
5009           quicklogs:<yes/no>: and flushdelay:<seconds>:.  Affected files
5010           lib/silcutil/silclog.[ch], silcd/serverconfig.[ch].
5011
5012 Sun Jan  6 12:49:40 EET 2002  Pekka Riikonen <priikone@silcnet.org>
5013
5014         * Do not print the warning about log files not being initialized
5015           more than once to avoid excess logging.  Affected file is
5016           lib/silcutil/silclog.c.
5017
5018         * Fixed the SIM compilation in lib/silcsim/Makefile.am.  Fixed
5019           the SIM copying in make install in Makefile.am.pre.
5020
5021 Sun Jan  6 01:10:21 CET 2001  Johnny Mnemonic <johnny@themnemonic.org>
5022
5023         * Rewritten silclog APIs. Globally interesting changes follows:
5024           silc_log_set_files() changed to silc_log_set_file().
5025           silc_log_set_callbacks() changed to silc_log_set_callback().
5026           ROBOdoc documented silclog header file.
5027           SilcLogCb now returns bool to wether inihibit the default
5028           handler or not (to keep the old behaviour return always TRUE).
5029           The new APIs should also fix the problem of the
5030           silcd_error.log file that was written in the current directory.
5031
5032           New features:
5033           Log files streams will remain opened after silc_log_set_file()
5034           call, means less CPU usage notably on high traffic servers.
5035           File streams are now full buffered, and flushed to the disk
5036           every 5 minutes, lesses HD activity and CPU usage.
5037           Messages can be redirected, allowing admins to configure
5038           one single logfile for all server messages.
5039           the silc_log_quick global variable to activate fast-logging.
5040           Affected files lib/silcutil/silclog.[ch]
5041
5042         * Changed some code to conform new silclog APIs. Affected
5043           files are doc/example_silcd.conf.in, silcd/server.c
5044           irssi/src/silc/core/silc-core.c, silcd/serverconfig.[ch],
5045           silcd/silcd.c.
5046
5047         * Fixed a memory leak that could occur in some situations.
5048           Affected file silcd/serverconfig.c.
5049
5050 Sat Jan  5 13:37:29 EET 2002  Pekka Riikonen <priikone@silcnet.org>
5051
5052         * Added the silc_client_del_client to remove the client from
5053           all channels as well.  Affected file lib/silcclient/idlist.c.
5054
5055         * Fixed the client library to correctly remove the client
5056           from all channels when the client entry is being destroyed.
5057           Affected file lib/silcclient/client_notify.c, command.c.
5058
5059         * Added auto-nicking support to the client library.  If the
5060           applicatio now sets client->nickname it will be sent to the
5061           server after connecting by the library.  This way for example
5062           SILCNICK (or IRCNICK) environment variables will have effect
5063           and always change the nickname automatically to whatever
5064           it is wanted.  Affected file lib/silcclient/client.[ch].
5065
5066         * Renamed silc_server_command_bad_chars to the
5067           silc_server_name_bad_chars and moved it to the
5068           silcd/server_util.[ch].  Added also new function
5069           silc_server_name_modify_bad to return nickname that
5070           includes bad characters as new nickname without those
5071           bad characters.  This check and modify is now used in
5072           silc_server_new_client when the username is initially set
5073           as nickname, so it must be checked to be valid nickname.
5074           Affected file silcd/packet_receive.c.
5075
5076         * The nickname length is now taken from the packet for real
5077           and not trusted to strlen() since it clearly can return
5078           wrong length for nickname including bad characters.  This
5079           also applies to channel names.  Affected file silcd/command.c.
5080
5081         * Removed the lib/silcsilm/modules directory.  Modules are now
5082           compiled into the lib/silcsim.  Fixed the copying of the
5083           modules to follow symbolic links in Makefile.am.pre.
5084
5085 Wed Jan  2 18:56:21 EET 2002  Pekka Riikonen <priikone@silcnet.org>
5086
5087         * Fixed silc_string_regexify list creation.  Fixes bugs with
5088           BAN and INVITE commands in server.  The affected file is
5089           lib/silcutil/unix/silcunixutil.c.
5090
5091 Sun Dec 30 13:41:34 EET 2001  Pekka Riikonen <priikone@silcnet.org>
5092
5093         * Removed the command destructor entirely from the server's
5094           command and command reply routines.  It is not needed, and
5095           its usage was buggy and caused crashes.  Affected files are
5096           silcd/command[_reply].[ch].
5097
5098 Fri Dec 28 12:43:22 EET 2001  Pekka Riikonen <priikone@silcnet.org>
5099
5100         * Cancel protocol and NULL sock->protocol if timeout
5101           occurred during protocol.  Affected file silcd/server.c.
5102
5103         * Cancel protocol timeouts always before calling the final
5104           callback, to assure that after final callback is called
5105           no other state will be called for the protocol anymore.
5106           Affected file silcd/protocol.c.
5107
5108         * Print error log if incoming connection configuration could
5109           not be found.  Affected file silcd/server.c.
5110
5111         * Fixed JOIN command to correctly save the founder mode
5112           to the client on normal SILC server, when the channel
5113           was created by the router.  Affected file silcd/command.c.
5114
5115         * Fixed LIST command (hopefully) to send correct reply
5116           packets.  Affected file silcd/command.c.
5117
5118 Thu Dec 20 16:14:52 CET 2001  Pekka Riikonen <priikone@silcnet.org>
5119
5120         * The silc_packet_receive_process now returns FALSE if the
5121           read data was invalid packet, and TRUE if it was ok.
5122
5123           The server now checks that if unauthenticated connection
5124           sends data and its processing fails the server will close
5125           the connection since it could be a malicious flooder.
5126
5127           Affected files lib/silccore/silcpacket.[ch], silcd/server.c.
5128
5129 Wed Dec 19 21:31:25 EET 2001  Pekka Riikonen <priikone@silcnet.org>
5130
5131         * Make sure the warning about error opening a log file is
5132           printed only once and not everytime it fails (produces
5133           too much useless log).  Affected file lib/silcutil/silclog.c.
5134
5135 Wed Dec 19 18:21:51 CET 2001  Johnny Mnemonic <johnny@themnemonic.org>
5136
5137         * Made the silc_server_daemonise() function more readable.
5138           Affected file silcd/server.c.
5139
5140         * Pid file is now optional, the user may comment it out from
5141           the config file. Removed define SILC_SERVER_PID_FILE, we
5142           don't need a default any longer.  Affected file
5143           configure.in.pre, lib/Makefile.am.pre.
5144
5145         * Make some use of the pid file. The server now dies at startup
5146           if it detects a valid pid file on his path. The server would
5147           die anyway in this circumstance, because of the bind() failure.
5148           Affected file silcd/silcd.c.
5149
5150         * No longer compiling lib/dotconf.
5151
5152 Mon Dec 17 18:24:27 EET 2001  Pekka Riikonen <priikone@silcnet.org>
5153
5154         * Fixed JOIN command parsing not to crash.  Affected file
5155           lib/silcclient/command.c.
5156
5157         * Fied the NICK_CHANGE notify to add the new client entry
5158           even it is resolved.  This removes an <[unknown]> nick
5159           thingy bug in the client.  Affected file is
5160           lib/silcclient/client_notify.c.
5161
5162         * Do not try to allocate 0 bytes (efence does not like it)
5163           in lib/silccore/silccomand.c when encoding payload.
5164
5165         * Do not take IRCNICK as nickname in Irssi SILC client since
5166           it is not possible to set nickname before hand connecting
5167           the server (TODO has an entry about adding auto-nicking
5168           support).
5169
5170         * Changed the silc_server_command_pending to check whether
5171           there already exists an pending entry with the specified
5172           command, command identifier and pending callback.  This is
5173           to fix IDENTIFY and WHOIS related crashes that may register
5174           multiple pending commands with same identifier.  Affected
5175           file silcd/command.c.
5176
5177         * Fixed the server to reconnect to the router even if it
5178           was already reconnecting and EOF was received.  This to
5179           fix a possibility that the server wouldn't ever try to
5180           auto-reconnect to the router.  Affected file silcd/server.c.
5181
5182 Sat Dec 15 20:31:50 EET 2001  Pekka Riikonen <priikone@silcnet.org>
5183
5184         * Fixed the server's password authentication to use the
5185           length of the locally saved password, and not the one
5186           sent in the packet.  Affected file silcd/protocol.c.
5187
5188         * Fixed same password authentication problem in the
5189           Authentication Payload handling routines in
5190           lib/silccore/silcauth.c.
5191
5192         * Yet another password authentication problem fixed with
5193           channel password handling in silcd/command.c.
5194
5195 Mon Dec 10 19:57:40 EET 2001  Pekka Riikonen <priikone@silcnet.org>
5196
5197         * If first character of string in silc_parse_userfqdn is '@'
5198           then do not parse it.  Affected file is
5199           lib/silcutil/silcutil.c.
5200
5201 Sun Dec  9 22:18:50 EET 2001  Pekka Riikonen <priikone@silcnet.org>
5202
5203         * Fixed minor bug in IDENTIFY command reply sending, which
5204           caused various weird problems during JOIN when it was
5205           resolving names for users.  Affected file silcd/command.c.
5206
5207 Sun Dec  9 19:18:41 EET 2001  Pekka Riikonen <priikone@silcnet.org>
5208
5209         * Fixed the IDENTIFY command reply sending to chech better valid
5210           clients.  It was possible to send incomplete list of replies.
5211           Affected file silcd/command.c.
5212
5213 Sat Dec  8 15:58:31 EET 2001  Pekka Riikonen <priikone@silcnet.org>
5214
5215         * Added silc_client_command[s]_[un]register functions now to
5216           dynamically register the commands in client library.  Removed
5217           the static table of commands.  This allows the client library
5218           to call commands without causing the application to know about
5219           what commands library has called.
5220
5221           Removed the INFO command reply kludge to detect when the command
5222           was called by library.  Now library use its own command reply
5223           function for INFO command.
5224
5225           Added function silc_client_command_call to call a command.
5226           Application can use it to call command, not access the structure
5227           directly.
5228
5229           Now all commands that are sent by the client library (not
5230           explicitly sent by application) use own command reply functions.
5231
5232           Affected files around lib/silcclient/ and in
5233           irssi/src/silc/core/.
5234
5235         * Fixed the WHOIS command reply sending to chech better valid
5236           clients.  It was possible to send incomplete list of replies.
5237
5238           Fixed the WHOIS and IDENTIFY to send the request to router
5239           if normal server did not do it and did not find any results.
5240
5241           Affected file silcd/command.c.
5242
5243 Thu Dec  6 17:21:06 EET 2001  Pekka Riikonen <priikone@silcnet.org>
5244
5245         * Moved the internal data from SilcClient context into its
5246           own file, not accesible to application.  Affected files
5247           lib/silcclient/client.h and lib/silcclient/client_internal.h,
5248           and other files in client library.
5249
5250 Thu Dec  6 10:37:55 EET 2001  Pekka Riikonen <priikone@silcnet.org>
5251
5252         * Added doc/examples installation target in Makefile.am.pre.
5253           A patch by salo.
5254
5255 Tue Dec  4 17:43:19 EET 2001  Pekka Riikonen <priikone@silcnet.org>
5256
5257         * If NO_SUCH_CLIENT_ID notify is received for WHOIS or IDENTIFY
5258           commands the found client entry will be removed from the
5259           cache, after notifying application about the error.  Affected
5260           file lib/silcclient/command_reply.c.
5261
5262         * Changed the /MSG to check for exact nickname user gave, and
5263           not let `nick' match `nick@host' if it is only one found.  Now,
5264           user must type the exact nickname (like nick@host2) even if
5265           there are no more than one same nicks found.  This is to avoid
5266           a possibility of sending nickname to wrong nickname since
5267           `nick' could match `nick@host'.  Affected file is
5268           irssi/src/core/silc-servers.c.
5269
5270 Mon Dec  3 18:49:45 EET 2001  Pekka Riikonen <priikone@silcnet.org>
5271
5272         * Do not print "you are now server operator" or similar when
5273           giving /away command.  Affected files are
5274           irssi/src/silc/core/client_ops.c, silc-servers.h.
5275
5276         * Made the silc_server_command_pending_error_check to send
5277           the same command reply payload it received back to the
5278           original sender of the command.  This way all arguments
5279           that was received by the server will be received by the
5280           client too.  Affected file silcd/command.c.
5281
5282         * Added the silc_idcache_add to return the created cache entry
5283           to a pointer.  Affected file lib/silccore/silcidcache.[ch].
5284
5285         * Add global clients to expire if they are not on any channel.
5286           This is because normal server will never know if they signoff
5287           if they are not on any channel.  The cache expiry will take
5288           case of these entries.  This is done by normal servers only.
5289           The affected files are silcd/command_reply.c,
5290           silcd/idlist.[ch], silcd/server and silcd/packet_receive.c.
5291
5292         * If server receives invalid ID notification for WHOIS or
5293           IDENTIFY and the ID exists in the lists, it is removed.
5294           Affected file silcd/command_reply.c.
5295
5296         * If NO_SUCH_CLIENT_ID is received for WHOIS or IDENTIFY command
5297           in client then client entry that it matches is searched and
5298           the nickname is printed on the screen for user.  Affected
5299           file irssi/src/silc/core/client_ops.c.
5300
5301 Mon Dec  3 11:56:59 EET 2001  Pekka Riikonen <priikone@silcnet.org>
5302
5303         * Use cache entry expire time in the LIST command reply to
5304           purge old entries from the cache after the LIST command
5305           reply has been received.  This way we don't have non-existent
5306           entries in the cache for too long.  Affected file is
5307           silcd/command_reply.c.
5308
5309 Sun Dec  2 23:29:07 EET 2001  Pekka Riikonen <priikone@silcnet.org>
5310
5311         * If we are normal server, and we've not resolved client info
5312           in WHOIS or IDENTIFY from router, and it is global client,
5313           we'll check whether it is on some channel.  If it is not
5314           then we cannot be sure about its validity and will resolve it
5315           from router.  Fixes a bug in WHOIS and IDENTIFY.  Affected
5316           file silcd/command.c.
5317
5318         * Search channel by name (if possible) rather than by ID
5319           in IDENTIFY command's command reply.  Affected file is
5320           silcd/command_reply.c.
5321
5322 Sun Dec  2 13:48:46 EET 2001  Pekka Riikonen <priikone@silcnet.org>
5323
5324         * Distribute to the channel passphrase in CMODE_CHANGE notify.
5325           Updated specs and implemented it.  Affected file silcd/command.c,
5326           silcd/packet_send.c and silcd/packet_receive.c.
5327
5328         * Implemented the <founder auth> payload handling in the JOIN
5329           command.  If provided all conditions for channel joining
5330           except requirement to provide correct passphrase can be
5331           overrided by the channel founder.  Updated the protocol specs.
5332           Affected file silcd/command.c.
5333
5334           Added support for founder auth in JOIN command in client
5335           library.  Fixed the parsing of the JOIN command now to support
5336           all options as they should be.  The affected file is
5337           lib/silcclient/command.c.
5338
5339         * Optimized the WHOIS and IDENTIFY commands to send the request
5340           to router only if it includes nicknames or other names.  If
5341           they include only IDs then check the local cache first before
5342           routing.  Affected file is silcd/command.c.
5343
5344         * Added channels topic announcements.  Affected file is
5345           silcd/packet_receive.c and silcd/server.c.
5346
5347         * Fixed the silc_server_send_notify_topic_set to really destine
5348           the packet to channel.  Affected file silcd/packet_send.c.
5349
5350         * Fixed a crash in CHANNEL_CHANGE notify handling in the client
5351           library.  Affected file lib/silcclient/client_notify.c.
5352
5353         * Added UMODE announcements.  Affected file silcd/server.c.
5354
5355 Sat Dec  1 12:52:39 EET 2001  Pekka Riikonen <priikone@silcnet.org>
5356
5357         * Memory leak fixes in:
5358
5359           lib/silcutil/silcsockconn.c
5360           lib/silcske/silcske.c
5361           lib/silcske/groups.c
5362           lib/silccrypt/rsa.c
5363           lib/silccrypt/silcpkcs.c
5364           lib/silccore/silccommand.c
5365           lib/silccore/silcidcache.c
5366           silcd/idlist.c
5367           silcd/packet_send.c
5368           silcd/command.c
5369
5370         * ROBOdoc documented the lib/silcske/groups.h file and a
5371           bit changed the interface for better.
5372
5373 Thu Nov 29 22:12:50 EET 2001  Pekka Riikonen <priikone@silcnet.org>'
5374
5375         * Update the client entry context in the ID cache after
5376           nick change.  Affected file lib/silcclient/command.c.
5377           Fixes the CUMODE command when regaining founder privileges,
5378           and a little WHOIS problem.
5379
5380         * Fixed silc_net_gethostbyname to correctly call the
5381           inet_ntop.  Affected file lib/silcutil/silcnet.c.
5382
5383 Thu Nov 29 19:31:23 EET 2001  Pekka Riikonen <priikone@silcnet.org>'
5384
5385         * Added IPv6 support checking to the configure.in.pre, added
5386           also --enable-ipv6 option to override the check.  Affected
5387           file configure.in.pre.
5388
5389         * The silc_thread_create now calls the start function
5390           directly if threads support is not compiled in.  Removes
5391           ugly #ifdef's from generic code.  Affected files are
5392           lib/silcutil/unix/silcunixthread, win32/silcwin32thread.c.
5393
5394         * Added silc_net_gethostby[name/addr]_async to asynchronously
5395           resolve.  Affected files are lib/silcutil/silcnet.[ch].
5396
5397         * Added support for rendering IPv6 based server, client and
5398           channel IDs.  Affected file lib/silcutil/silcutil.c.
5399
5400         * Added support for creating IPv6 based server IDs.  Affected
5401           file is silcd/serverid.c.
5402
5403 Wed Nov 28 23:46:09 EET 2001  Pekka Riikonen <priikone@silcnet.org>'
5404
5405         * Added silc_net_gethostby[addr/name] into the
5406           lib/silcutil/silcnet.[ch].  Added IPv6 support to Unix network
5407           routines.  Added silc_net_is_ip[4/6].  Affected file is
5408           lib/silcutil/unix/silcunixnet.c.  All routines that take
5409           address as argument now supports both IPv4 and IPv6 addresses.
5410
5411 Mon Nov 26 18:09:48 EET 2001  Pekka Riikonen <priikone@silcnet.org>'
5412
5413         * Fixed LIST command reply sending in server.  Affected file
5414           silcd/command.c.
5415
5416         * Server now sends the kicker's client ID in the KICK notify
5417           to the kicked client.  Affected file silcd/command.c.
5418
5419         * The client library now parses the kickers client ID and
5420           UI displays it.  Affected files lib/silcclient/client_notify.c
5421           and irssi/src/silc/core/silc-channels.c, module-formats.c.
5422
5423         * Made all payload parsing function prototypes consistent.
5424           They all take now const unsigned char * and uint32 pair as
5425           the payload data instead of SilcBuffer.  Changes all around
5426           the source tree.  Other unsigned char* -> const unsigned char*
5427           changes around the tree as well.
5428
5429         * Optimized SFTP client and server packet sending not to
5430           allocate new buffer for each packet but to recycle the
5431           first allocated buffer.  Affected files are
5432           lib/silcsftp/sftp_client.c, sftp_server.c, sftp_util.[ch].
5433
5434         * Optimized the SFTP client to use SilcList instead of
5435           SilcDList for requests, because it is faster.  Affected file
5436           is lib/silcsftp/sftp_client.c.
5437
5438         * Moved the ID Payload routines from lib/silccore/silcpayload.[ch]
5439           into lib/silccore/silcid.[ch].
5440
5441           Renamed silcpayload.[ch] into silcargument.[ch].
5442
5443 Mon Nov 26 15:01:53 CET 2001  Pekka Riikonen <priikone@silcnet.org>
5444
5445         * If client entry is deleted with active key agreement
5446           session, abort the session.
5447
5448           The silc_client_abort_key_agreement now calls the completion
5449           callback with new SILC_KEY_AGREEMENT_ABORTED status.
5450
5451           Affected file lib/silcclient/silcapi.h, client_keyagr.c and
5452           idlist.c.
5453
5454 Sun Nov 25 18:01:45 EET 2001  Pekka Riikonen <priikone@silcnet.org>
5455
5456         * Don't use __restrict in older GCC's.  Affected file is
5457           lib/silcmath/mpi/mpi-priv.h.  A patch by salo.
5458
5459         * silc_net_localhost now attempts to reverse lookup the
5460           IP/hostname.  Affected file lib/silcutil/silcnet.c.
5461
5462         * Defined <founder auth> argument to the SILC_COMMAND_JOIN
5463           command.  It can be used to gain founder privileges at
5464           the same time when joining the channel.
5465
5466           Defined that the SILC_NOTIFY_TYPE_KICKED send the
5467           kicker's client ID as well.  Updated protocol specs.
5468
5469           Defined that the server must send SILC_COMMAND_IDENTIFY
5470           command reply with error status to client who sent
5471           private message with invalid client ID.
5472
5473           Updated the protocol specification.
5474
5475         * Added silc_server_send_command_reply to send any
5476           command reply.  Affected file silcd/packet_send.[ch].
5477
5478         * Added silc_id_payload_encode_data to encode ID payload
5479           from raw ID data.  Affected file lib/silccore/silcpayload.[ch].
5480
5481         * The server now send IDENTIFY command reply with error
5482           status if client ID in private message is invalid.  Affected
5483           file silcd/packet_receive.c.
5484
5485         * Save the server key file with server's IP address in
5486           the filename instead of hostname.  The affected file is
5487           irssi/src/silc/core/client_ops.c.
5488
5489 Sat Nov 24 20:08:22 EET 2001  Pekka Riikonen <priikone@silcnet.org>
5490
5491         * Typo fixes in irssi/src/fe-common/silc/module-formats.c.
5492           A patch by Sunfall.
5493
5494         * Added libtool support for compiling shared objects in
5495           lib/silcsim.  Affected file configure.in.pre and
5496           lib/silcsim/Makefile.am.  Original patch by cras.
5497
5498 Fri Nov 23 23:30:59 EET 2001  Pekka Riikonen <priikone@silcnet.org>
5499
5500         * Pid file configuration, and server's config file fixes
5501           patch by toma.  Updated CREDITS file.
5502
5503 Sun Nov 18 01:34:41 EET 2001  Pekka Riikonen <priikone@silcnet.org>
5504
5505         * Fixed silc_client_channel_message to not try to decrypt
5506           the message twice if it resolved the destination client
5507           information.  This could cause of dropping one channel
5508           message.  Affected file lib/silcclient/client_channel.c.
5509
5510 Wed Nov 14 23:44:56 EET 2001  Pekka Riikonen <priikone@silcnet.org>
5511
5512         * Added silc_client_run_one into lib/silcclient/silcapi.h and
5513           lib/silcclient/client.c. This function is used when the SILC
5514           Client is run under some other scheduler, or event loop or
5515           main loop.  On GUI applications, for example this may be
5516           desired to used to run the client under the GUI application's
5517           main loop.  Typically the GUI application would register an
5518           idle task that calls this function multiple times in a second
5519           to quickly process the SILC specific data.
5520
5521 Wed Nov 14 19:16:52 CET 2001  Johnny Mnemonic <johnny@themnemonic.org>
5522
5523         * Fixed silc_server_drop() for dropping the supplementary
5524           groups as well, this could cause a security hole on some
5525           systems.
5526
5527 Wed Nov 14 16:22:25 EET 2001  Pekka Riikonen <priikone@silcnet.org>
5528
5529         * __pid_t -> pid_t in lib/silccrypt/silcrng.c.  A patch by
5530           johnny.
5531
5532         * Write PID file after dropping privileges.  Added -F option
5533           to run server on foreground.  A patch by debolaz.
5534           Affected files silcd/server.c, silcd/silcd.c.
5535
5536         * Fixed MOTD to return the MOTD file server name.  Affected
5537           file silcd/command.c.
5538
5539         * Added INFO command reply handling to the Irssi SILC Client.
5540           Affected file irssi/src/silc/core/client_ops.c.
5541
5542 Wed Nov 14 00:18:08 EET 2001  Pekka Riikonen <priikone@silcnet.org>
5543
5544         * Fixed the silc_idcache_list_* routines to really support
5545           the dynamic list.  Fixes a crash.  Affected file is
5546           lib/silccore/silcidcache.c.
5547
5548         * Fixed the LIST command reply to really call LIST command's
5549           pending callbacks.  Affected file silcd/command_reply.c.
5550
5551 Tue Nov 13 00:49:17 EET 2001  Pekka Riikonen <priikone@silcnet.org>
5552
5553         * Update conn->local_entry->nickname after giving NICK
5554           command.  Affected file lib/silcclient/command.c.
5555
5556 Sun Nov 11 23:43:02 PST 2001  Brian Costello <bc@wpfr.org>
5557
5558         * Added the [pid] option to the silcd configuration file
5559
5560           Affected files: serverconfig.[ch] and silcd.c
5561
5562 Sun Nov 11 23:56:39 EET 2001  Pekka Riikonen <priikone@silcnet.org>
5563
5564         * Save fingerprint in WHOIS command reply in server.
5565           Affected file silcd/command_reply.c.
5566
5567         * Fixed NICK commands pending callback registration.
5568           Affected file lib/silcclient/command.c.
5569
5570 Sun Nov 11 10:49:10 EET 2001  Pekka Riikonen <priikone@silcnet.org>
5571
5572         * Use ++server->cmd_ident when sending commands in server,
5573           instead of random number.  Affected file silcd/command.c.
5574
5575         * Fixed GETKEY command reply to call actually GETKEY pending
5576           command callbacks.  Affected file silcd/command_reply.c.
5577
5578         * A bit stricter check for nicknames.  Check for same nickname
5579           in NICK command also.  Affected file silcd/command.c.
5580
5581         * Do not call INFO command everytime client ID changes, only
5582           during first connecting.  Affected file lib/silcclient/client.c.
5583
5584         * Set the new nickname only after successful command reply for
5585           NICK command is returned by server.  Affected file
5586           lib/silcclient/command.c.
5587
5588         * Remove nicknames from nicklist during server_signoff notify.
5589           Should fix /NAMES bit more.  The affected file is
5590           irssi/src/silc/core/silc-channels.c.
5591
5592         * Added `fingerprint' field to the SilcIDListData in the
5593           silcd/idlist.h to hold the fingerprint of the client's
5594           public key.
5595
5596           Send the fingerprint of the client's public key in WHOIS
5597           command reply.
5598
5599           Affected files silcd/command.c, and silcd/idlist.[ch].
5600
5601         * Added silc_fingerprint into lib/silcutil/silcutil.[ch] to
5602           create fingerprint from given data.
5603
5604         * Show the fingerprint of the client's public key in WHOIS.
5605           Affected files irssi/src/module-formats.[ch] and
5606           irssi/src/silc/core/client_ops.c.
5607
5608         * Format the multiple same nicknames also during JOIN and
5609           NICK_CHANGE notifys.  Affected file is
5610           lib/silcclient/client_notify.c.
5611
5612         * Do not print error on screen for invalid private message
5613           payload since it can come if someone is sending private
5614           messages with wrong key.  Affected file
5615           lib/silccore/silcprivate.c.
5616
5617         * Fixed multiple concurrent /PING crash.  Affected file
5618           lib/silcclient/command.c.
5619
5620         * Changed the wrong ID encoding.  All IP addresses must be
5621           in MSB first order in encoded format.  They were encoded
5622           wrong and was in LSB format.  Affected files are
5623           silcd/serverid.c, lib/silcutil/silcutil.c.
5624
5625         * Remove silc_net_addr2bin_ne from lib/silcutil/silcnet.[ch].
5626
5627         * Call the `connect' client operation through the scheduler
5628           in case of error.  Affected file lib/silcclient/client.c.
5629
5630         * Call the `failure' client operation even if the error
5631           occurred locally during a protocol.  Affected file is
5632           lib/silcclient/protocol.c.
5633
5634         * Added support of sending LIST command to router from normal
5635           server.  This way normal server can get list of all channels
5636           in the network too.  Fixed the channel list sending in the
5637           server too.  Affected files are silcd/command.c, and
5638           silcd/command_reply.[ch].
5639
5640         * Added silc_server_update_channels_by_server and
5641           silc_server_remove_channels_by_server.  They are used during
5642           disconnection of primary router and in backup router protocol.
5643           Affected file silcd/server_util.[ch], silcd/server.c and
5644           silcd/server_backup.c.
5645
5646         * Fixed channel adding to global list in IDENTIFY command
5647           reply in server.  Affected file silcd/command_reply.c.
5648
5649 Sat Nov 10 21:39:22 EET 2001  Pekka Riikonen <priikone@silcnet.org>
5650
5651         * If the incoming packet type is REKEY or REKEY_DONE process
5652           that packet always synchronously.  Fixes yet another MAC
5653           failed error on slow (dialup) connections.  Affected file
5654           lib/silcclient/client.c and silcd/server.c.
5655
5656 Thu Nov  8 22:21:09 EET 2001  Pekka Riikonen <priikone@silcnet.org>
5657
5658         * Call check_version SKE callback for initiator too.  Affected
5659           file lib/silcske/silcske.c.
5660
5661         * Implemented fix for security hole found in the SKE that was
5662           fixed in the specification few days back; the initiator's
5663           public key is now added to the HASH value computation.
5664           Added backwards support for the old way of doing it too, for
5665           old clients and old servers.  Affected file is
5666           lib/silcske/silcske.c.
5667
5668         * Enabled mutual authentication by default in SKE.  If initiator
5669           is not providing mutual authentication the responder will
5670           force it.  This will provide the proof of posession of the
5671           private key for responder.  The affected files are
5672           lib/silcclient/protocol.c and silcd/protocol.c.
5673
5674         * Do not cache anymore the server's public key during SKE.
5675           We do mutual authentication so the proof of posession of
5676           private key is done, and if the server is authenticated in
5677           conn auth protocol with public key we must have the public
5678           key already.  Affected file silcd/protocol.c.
5679
5680         * Added new global debug variable: silc_debug_hexdump.  If
5681           it is set to TRUE SILC_LOG_HEXDUMP will be printed.  Affected
5682           file lib/silcutil/silclog.[ch].
5683
5684         * Fixed compilation warning due to char * -> const char *.
5685           Affected files lib/silcutil/silcnet.h, and
5686           lib/silccore/silcauth.[ch].
5687
5688 Wed Nov  7 20:43:03 EET 2001  Pekka Riikonen <priikone@silcnet.org>
5689
5690         * Fixed CMODE command when new channel key was created.  If
5691           the creation failed the old key was removed.  Next time giving
5692           same command would crash the server since the old key was
5693           freed already.  Affected file silcd/command.c.
5694
5695         * Fixed the silc_server_announce_get_channels to not crash
5696           on reconnect.  Affected file silcd/server.c.
5697
5698 Wed Nov  7 17:15:07 EET 2001  Pekka Riikonen <priikone@silcnet.org>
5699
5700         * Added silc_log_set_debug_string function to set a regex
5701           string to match for debug output.  Only the function names,
5702           or filenames matching the given debug string is actually
5703           printed.  This way it is possible to filter out those debug
5704           strings that user is not interested in.
5705
5706           Fixed a bug in silc_string_regexify.
5707
5708           Affected files lib/silcutil/silclog.[ch], and
5709           lib/silcutil/unix/silcunixutil.c.
5710
5711         * Changed the -d options in both server and Irssi SILC client
5712           to take the debug string as argument.  Affected files
5713           silcd/silcd.c and irssi/src/silc/core/silc-core.c.
5714
5715 Tue Nov  6 21:31:54 EET 2001  Pekka Riikonen <priikone@silcnet.org>
5716
5717         * Added silc_hash_babbleprint to create a Bubble Babble
5718           Encoded fingerprint.  The encoding is developed by Antti
5719           Huima (draft-huima-babble-01.txt), and it creates human
5720           readable strings out of binary data.  Affected file
5721           lib/silccrypt/silchash.[ch].
5722
5723         * Print the babble print now in addition of fingerprint as well
5724           in Irssi SILC client.  Affected files are
5725           irssi/src/fe-common/silc/module-formats.[ch],
5726           irssi/src/fe-common/silc/core/client_ops.c.
5727
5728 Sun Nov  4 23:37:28 EET 2001  Pekka Riikonen <priikone@silcnet.org>
5729
5730         * Fixed a security problem found in SKE.  The initiator's
5731           public key too is now added to the HASH hash value creation
5732           which is signed by the responder to create the SIGN value.
5733           This will prevent anyone in the middle to lie to the responder
5734           about the initiator's public key.  If this is done now, the
5735           man in the middle will get caught.  Updated the protocol
5736           specification.
5737
5738 Sun Nov  4 11:43:53 EET 2001  Pekka Riikonen <priikone@silcnet.org>
5739
5740         * Better installation directory handling.  Configure module
5741           paths and other paths automatically to example_silc* files
5742           in doc/.  A patch by toma.
5743
5744         * Fixed compiler warning from MPI library, and from SILC RNG.
5745           A patch by johnny.
5746
5747         * Added SILC_SERVER_PID_FILE to define the pid file for server.
5748           It can be configured with ./configure.  A patch by toma.
5749
5750 Sat Nov  3 23:48:23 EET 2001  Pekka Riikonen <priikone@silcnet.org>
5751
5752         * Find correct make to use in prepare-clean.  A patch by
5753           toma.  Affected file prepare-clean.
5754
5755 Sat Nov  3 22:04:00 PST 2001  Brian Costello <bc@mksecure.com>
5756
5757         * Added irssi variables use_auto_addr, auto_bind_ip,
5758           auto_bind_port and auto_public_ip.
5759
5760         * Changed the interface for silc_client_send_key_agreement
5761           in lib/silcclient/silcapi.h
5762
5763         Affected files:
5764
5765          irssi/src/silc/core/silc-core.c
5766          irssi/config
5767          lib/silcclient/silcapi.h
5768          irssi/src/silc/core/silc-channels.c
5769          lib/silcclient/client_keyagr.c
5770          irssi/docs/help/key
5771
5772 Sat Nov  3 17:48:55 EET 2001  Pekka Riikonen <priikone@silcnet.org>
5773
5774         * Added silc_pkcs_public_key_compare to compare two
5775           public keys.  Affected file lib/silccrypt/silcpkcs.[ch].
5776
5777         * Check that the client who set the founder mode on the
5778           channel is the same client that is giving the founder
5779           mode to itself.  It is done by comparing the saved public
5780           key (it is saved even in the authentication is passphrase).
5781           Affected file silcd/command.c.
5782
5783 Fri Nov  2 18:52:08 EST 2001  Pekka Riikonen <priikone@silcnet.org>
5784
5785         * Do not process packet for disconnected socket connection.
5786           Affected file lib/silccore/silcpacket.c.
5787
5788         * Process the DISCONNECT packet through scheduler in the
5789           client library.  Affected file lib/silcclient/client.c.
5790
5791         * Fixed the silc_client_packet_parse to not to increase
5792           the packet sequence number if the conn->sock and the
5793           current socket connection is not same.  This can happen
5794           for example during key agreement when the conn includes
5795           multiple socket connections (listeners).  Affected file
5796           lib/silcclient/client.c.
5797
5798         * The sender of the file transfer request now provides also
5799           the pointer (listener) for the key exchange protocol.  If
5800           the listener cannot be created then it sends empty key
5801           agreement and lets the receiver provide the listener.
5802
5803           Added `local_ip' and `local_port' arguments to the
5804           silc_client_file_send.  If they are provided they are used,
5805           if not then it will attempt to find local IP address, if
5806           not found or bind fails then the remote client will provide
5807           the listener.
5808
5809           Affected files are lib/silcclient/client_ftp.c and
5810           lib/silcclient/silcapi.h.
5811
5812         * Extended the FILE SEND command to support defining the
5813           local IP and port for key exchange listener.  They are
5814           optional.  Affected file irssi/src/silc/core/silc-servers.c.
5815
5816 Thu Nov  1 22:10:07 EST 2001  Pekka Riikonen <priikone@silcnet.org>
5817
5818         * Defined to WHOIS command reply the sending of fingerprint
5819           of the client's public key (if the proof of posession of the
5820           corresponding private key is verified by the server).
5821           Updated to the protocol specification.
5822
5823         * Added support of receiving the client's public key's
5824           fingerprint in command reply in client library.  Affected
5825           file is lib/silcclient/command_reply.c, and
5826           lib/silcclient/idlist.[ch].
5827
5828 Thu Nov  1 18:06:12 EST 2001  Pekka Riikonen <priikone@silcnet.org>
5829
5830         * Do not send over 128 chars long nickname to the server
5831           in NICK command.  Affected file lib/silcclient/command.c.
5832
5833         * Do not send over 256 chars long channel names to the server
5834           in JOIN command.  Affected file lib/silcclient/command.c.
5835
5836 Tue Oct 30 22:48:59 EST 2001  Pekka Riikonen <priikone@silcnet.org>
5837
5838         * Assure that silc_server_close_connection cannot be called
5839           twice for same socket context.  Affected file is
5840           silcd/server.c.
5841
5842 Tue Oct 30 16:58:14 EST 2001  Pekka Riikonen <priikone@silcnet.org>
5843
5844         * Send error message to application if opening file for
5845           writing during file transfer fails.  Affected file is
5846           lib/silcclient/client_ftp.c.
5847
5848           Remove all file transfer sessions for a client that we're
5849           removing from ID cache.
5850
5851           Affected file is lib/silcclient/client_ftp.c.
5852
5853         * Fixed silc_net_addr2bin to return correct address.  Affected
5854           file lib/silcutil/[unix/win32]/silc[unix/win32]net.c.
5855
5856         * Fixed file transfer session removing on signoff notify.
5857           Affected file irssi/src/silc/core/silc-servers.c.
5858
5859         * Added the SilcClientFileError to be returned in the monitor
5860           callback.  Added NO_SUCH_FILE and PERMISSION_DENIED errors.
5861           Affected file lib/silcclient/silcapi.h.
5862
5863 Mon Oct 29 17:43:04 EST 2001  Pekka Riikonen <priikone@silcnet.org>
5864
5865         * Fixed a crash in silc_client_ftp_free_sessions and
5866           silc_client_ftp_session_free_client.  Affected file
5867           lib/silcclient/client_ftp.c.
5868
5869         * Added `disabled' field in the SilcChannelEntry in the server
5870           to indicate if the server entry is disabled.  Affected file
5871           silcd/idlist.h, silcd/command[_reply].c.
5872
5873         * SILC server adds now /var/run/silcd.pid everytime it is
5874           started.  Affected file silcd/silcd.c.
5875
5876         * Added silc_server_packet_send_clients to send a packet to
5877           the provided table of client entries.  Affected file
5878           silcd/packet_send.[ch].
5879
5880         * Fixed a crash in client resolving in client_prvmsg.c in
5881           client library.  Affected file lib/silcclient/client_prvmsg.c.
5882
5883         * Do not actually remove the client directly from ID cache
5884           during SERVER_SIGNOFF, but invalidate it.  This way we
5885           preserve the WHOWAS info for the client.  Affected file
5886           silcd/server_util.c.
5887
5888         * Fixed SERVER_SIGNOFF notify handling in the server.  The
5889           server is now able to process incoming SERVER_SIGNOFF notify
5890           for a server that it doesn't even know about.  It will remove
5891           the clients provided in the notify.  Affected file
5892           silcd/packet_receive.c.
5893
5894         * Check for partial packet in data queue after every packet that
5895           was found from the queue.  Return and wait for more data if
5896           there is partial data in queue.  Affected file is
5897           lib/silccore/silcpacket.c.
5898
5899 Sun Oct 28 18:46:27 EST 2001  Pekka Riikonen <priikone@silcnet.org>
5900
5901         * Added SilcClietFileError enum to indicate error in
5902           file transfer.  Added SILC_CLIENT_FILE_MONITOR_KEY_AGREEMENT
5903           and SILC_CLIENT_FILE_MONITOR_ERROR new monitor statuses.
5904           Affected files lib/silcclient/silcapi.h and
5905           lib/silcclient/client_ftp.c.
5906
5907         * Check that newsize in silc_buffer_realloc is larger than
5908           the old buffer's size.  Affected file lib/silcutil/silcbufutil.h.
5909
5910         * Added better monitor of file transfers.  It now monitors
5911           key agreement protocol during the file transfer too.  Added
5912           error reporting too.  Affected files
5913           irssi/src/silc/core/silc-servers.c,
5914           irssi/src/fe-common/silc/module-formats.[ch].
5915
5916         * Wrote a help file for FILE command.
5917
5918         * Added silc_rng_global_get_byte_fast to get not-so-secure
5919           random data as fast as possible.  Random data is read from
5920           /dev/urandom if available and from the SILC RNG if not
5921           available.  It is used in padding generation.  Affected file
5922           lib/silccrypt/silcrng.[ch].
5923
5924         * All packets in client library are now processed synchronously.
5925           Optimized packet processing a lot.  Affected file
5926           lib/silcclient/client.c.
5927
5928         * All server connection packets are processing synchronously
5929           now in server, to optimize packet processing.  Affected file
5930           silcd/server.c.
5931
5932         * Include files are installed now only in Toolkit distribution
5933           if make install is given.  Affected files: all Makefile.am's.
5934
5935 Thu Oct 25 22:44:06 EDT 2001  Pekka Riikonen <priikone@silcnet.org>
5936
5937         * Assure that silc_client_notify_by_server_resolve does not
5938           resolve the client information multiple times.  If it cannot
5939           be found by the first it cannot be found at all.  Affected
5940           file lib/silcclient/client_notify.c.
5941
5942         * Fixed WHOWAS command reply calling.  Affected file
5943           lib/silcclient/command_reply.c.
5944
5945         * Removed all references to silc_idlist_get_client from the
5946           Irssi SILC client since that call is internal call used by
5947           the library.  The Irssi SILC client will use now client
5948           retrieval functions found in silcapi.h.
5949
5950         * Fixed a bug in resolving nickname info before sending
5951           private message.  It used freed memory.  Affected file
5952           irssi/src/silc/core/silc-servers.c.
5953
5954 Thu Oct 25 19:04:49 EDT 2001  Pekka Riikonen <priikone@silcnet.org>
5955
5956         * Assure my_channels statistics cannot go negative in server.
5957           Affected files silcd/server.c, silcd/server_util.c.
5958
5959 Wed Oct 24 19:53:05 EDT 2001  Pekka Riikonen <priikone@silcnet.org>
5960
5961         * Upgraded dotconf 1.0.2 to 1.0.6 in lib/dotconf.
5962
5963 Tue Oct 23 13:51:19 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
5964
5965         * Win32 Toolkit changes.  Affected files
5966           win32/silc.dsw, win32/libsilc/libsilc.def,
5967           win32/libsilcclient/libsilc.def,
5968           lib/silcutil/silcutil.c, and
5969           lib/sftp/sftp_fs_memory.c.
5970
5971 Mon Oct 22 16:35:05 EDT 2001  Pekka Riikonen <priikone@silcnet.org>
5972
5973         * Added silc_net_localip to return local host's IP address.
5974           Affected file lib/silcutil/silcnet.[ch].
5975
5976         * If key exchange or rekey protocol is active for a connection
5977           parse all packets syncronously since there might be packets
5978           in packet queue that we are not able to process without first
5979           processing packets before them.  Affected file silcd/server,
5980           lib/silcclient/client.c.
5981
5982         * SilcPacketParserCallback now returns TRUE or FALSE to indicate
5983           whether library should continue processing the packet.
5984           Affected file lib/silccore/silcpacket.h.
5985
5986         * Added SilcSFTPMonitor callback, SilcSFTPMonitors and
5987           SilcSFTPMonitorData to SFTP server to monitor various
5988           SFTP client requests.  Affected file lib/silcsftp/silcsftp.h,
5989           lib/silcsftp/sftp_server.c.
5990
5991         * Added silc_file_size to return file size.  Affected file
5992           lib/silcutil/silcutil.[ch].
5993
5994         * Implemented the file transfer support for the client library.
5995           Added preliminary support for simple client to client one-file
5996           transmission.  Affected file lib/silcclient/client_ftp.c,
5997           lib/silccilent/client.[ch].
5998
5999         * Added new local command FILE to the Irssi SILC Client.
6000           It is used to perform the file transfer.  It has subcommands
6001           SEND, RECEIVE, SHOW and CLOSE.  Affected files
6002           irssi/src/silc/core/client_ops.c,
6003           irssi/src/silc/core/silc-server.[ch].
6004
6005 Mon Oct 22 12:50:08 EDT 2001  Pekka Riikonen <priikone@silcnet.org>
6006
6007         * Relay the SILC_PACKET_FTP in the server.  Affected files
6008           silcd/server.c and silcd/packet_receive.c.
6009
6010 Sun Oct 21 20:21:02 EDT 2001  Pekka Riikonen <priikone@silcnet.org>
6011
6012         * Renamed silc_file_read and silc_file_write to functions
6013           silc_file_readfile and silc_file_writefile.  Added function
6014           silc_file_open and silc_file_close.  Affected files
6015           lib/silcutil/silcutil.[ch].
6016
6017 Thu Oct 18 20:58:13 EDT 2001  Pekka Riikonen <priikone@silcnet.org>
6018
6019         * Resolve the client info when received private message or
6020           channel message for a client which nickname we don't know.
6021           Affected files lib/silcclient/client_prvmsg.c and
6022           lib/silcclient/client_channel.c.
6023
6024         * Do not crash in /KEY if client is not connected.  Affected
6025           file irssi/src/silc/core/silc-channels.c.
6026
6027         * Added SilcClientStatus field to the SilcClientEntry in the
6028           lib/silcclient/idlist.h.
6029
6030           Added SILC_CLIENT_STATUS_RESOLVING to mark that the entry
6031           is incomplete and is being resolved, it won't be resolved
6032           twice.
6033
6034           Make sure also that USERS command reply does not resolve
6035           twice information.  Affected file is
6036           lib/silcclient/command_reply.c.
6037
6038           Make sure that silc_client_get_clients_by_list does not
6039           resolve twice same information.
6040
6041         * Check for valid client->id in the silc_server_free_client_data.
6042           Affected file silcd/server.c.
6043
6044         * Fixed /GETKEY nick@server not to crash if the server entry
6045           is not found.  Affected file lib/silcclient/command.c.
6046
6047         * Fixed the silc_server_check_cmode_rights to check the
6048           requested modes correctly.  Affected file silcd/command.c.
6049
6050 Thu Oct 18 12:10:22 CEST 2001  Pekka Riikonen <priikone@silcnet.org>
6051
6052         * Better checks for non-printable chars in nick added.
6053           Affected file silcd/command.c.
6054
6055 Thu Oct 18 09:18:58 EDT 2001  Pekka Riikonen <priikone@silcnet.org>
6056
6057         * Call the silc_server_udpate_servers_by_server in the
6058           primary router that comes back online in the backup resuming
6059           protocol.  Otherwise it routes packets wrong.  Affected file
6060           silcd/server_util.[ch], silcd/server_backup.c.
6061
6062 Wed Oct 17 16:51:18 EDT 2001  Pekka Riikonen <priikone@silcnet.org>
6063
6064         * Added SILC_STR_UI8_[N]STRING[_ALLOC] formats to the
6065           lib/silcutil/silcbuffmt.[ch].
6066
6067         * Redefined the SILC packet header to include the padding
6068           length.  Affected file lib/silccore/silcpacket.[ch].
6069
6070         * Added SILC_PACKET_PADLEN_MAX macro to return the padding
6071           length for maximum padding up to 128 bytes).  Affected
6072           file lib/silccore/silcpacket.h.
6073
6074         * Removed all backwards support for old 0.5.x MAC thingies.
6075           The SILC packet header change makes it impossible to be
6076           backwards compatible.
6077
6078         * Send the ENDING packet with timeout in the backup resuming
6079           protocol.  This is to assure that all routers has connected
6080           to the primary router.  Affected file silcd/server_backup.c.
6081
6082         * Changed the RNG to take the first IV from random data.  It
6083           used to take it from zero actually.  Changed the RNG also
6084           to use /dev/urandom during session.  /dev/random is used
6085           in initialization.  Affected file lib/silccrypt/silcrng.[ch].
6086
6087 Tue Oct 16 20:45:49 EDT 2001  Pekka Riikonen <priikone@silcnet.org>
6088
6089         * Changed the SILC packet header to have the first two bytes
6090           (the packet length) encrypted.  Affected files aroung the
6091           code tree, lib/silccore/silcpacket.[ch].  Removed the
6092           SilcPacketCheckDecrypt callback.  It is not needed anymore
6093           since the silc_packet_receive_process will determine now
6094           whether the packet is normal or special.
6095
6096         * Implemented the unidirectional MAC keys.  Affected files
6097           lib/silcske/silcske.c, silcd/protocol.c and
6098           lib/silcclient/protocol.c.
6099
6100         * Implemented the packet sequence number to the MAC computation.
6101           Affected files lib/silccore/silcpacket.c, silcd/protocol.c,
6102           silcd/packet_send.c, silcd/server.c, lib/silcclient/client.c,
6103           lib/silcclient/protocol.c.
6104
6105 Mon Oct 15 17:42:55 EDT 2001  Pekka Riikonen <priikone@silcnet.org>
6106
6107         * Allow backup router to announce servers.  All servers
6108           announced by backup router are added to the global list
6109           automatically.  Update hte server's socket to our primary
6110           router also when backup router announces a server.
6111           Affected file silcd/packet_receive.c.
6112
6113         * Do not update the client->router in the function
6114           silc_server_udpate_clients_by_server if the client is on
6115           global list.  We might fail to find any specific server
6116           for locally connected clients and local cell clients.  They
6117           should still use the `from' and not `to' as client->router.
6118           This fixes backup router resuming protocol.  Affected file
6119           silcd/server_util.c.
6120
6121         * Decrease channel statistics count only if the channel
6122           deletion worked.  Affected files are silcd/server.c and
6123           silcd/server_util.c.
6124
6125         * Added silc_server_update_servers_by_server to update origin
6126           of all server entries.  Used during backup router protocol.
6127           Affected files silcd/server_util.[ch], silcd/server.c. and
6128           silcd/backup_router.c.
6129
6130         * ROBODoc documented the lib/silccrypt/silchmac.h.  Added new
6131           function silc_hmac_init, silc_hmac_update, silc_hmac_final,
6132           silc_hmac_get_hash and silc_hmac_get_name.  Affected file
6133           lib/silccrypt/silchmac.c.
6134
6135 Sun Oct 14 18:28:22 EDT 2001  Pekka Riikonen <priikone@silcnet.org>
6136
6137         * Assure that router cannot reroute the same channel message
6138           to the sender.  Affected file silcd/packet_receive.c.
6139
6140 Sat Oct 13 12:46:18 EDT 2001  Pekka Riikonen <priikone@silcnet.org>
6141
6142         * Made better checks that the channel message is not sent
6143           to the router it came from.  Affected file is
6144           silcd/packet_send.c.  Fixed memory leak too.
6145
6146         * Announce informations for incoming router connection, but
6147           only after checking if it is replaced by backup router.
6148           Affected file silcd/packet_receive.c.
6149
6150 Fri Oct 12 18:37:24 EDT 2001  Pekka Riikonen <priikone@silcnet.org>
6151
6152         * Fixed the backup resuming protocol to work in multiple
6153           router environment.  Affected file silcd/server_backup.c.
6154
6155         * Route packet only to one router in the function
6156           silc_server_packet_send_to_channel.  Affected file is
6157           silcd/packet_send.c.
6158
6159         * Fixed silc_server_send_notify_dest to set the broadcast
6160           flag.  Fixed the silc_server_send_notify_topic to actually
6161           send the TOPIC_CHANGE notify and not SERVER_SIGNOFF notify.
6162           Affected file silcd/packet_send.c.
6163
6164         * Changed the SFTP Filesystem interface.  Changed the
6165           SilcSFTPFilesystemStruct to SilcSFTPFilesystemOps to include
6166           the filesystem operation function.  The SilcSFTPFilesystem
6167           is now a context that is allocated by all filesystem allocation
6168           functions and it already includes the operations structure
6169           and filesystem specific context.  It is given as argument
6170           now to the silc_sftp_server_start.  This made the interface
6171           a bit cleaner.  Affected file lib/silcsftp/silcsftp[_fs].h,
6172           lib/silcsftp/sftp_fs_memory.c and sftp_server.c.
6173
6174 Thu Oct 11 22:19:26 EDT 2001  Pekka Riikonen <priikone@silcnet.org>
6175
6176         * Changed the backup router adding and getting interfaces
6177           in the server.  The router that will be replaced by the
6178           specified backup router is now sent as argument.  Affected
6179           files silcd/serverconfig.[ch], silcd/backup_router.[ch], and
6180           silcd/server.c.
6181
6182         * Added silc_net_addr2bin_ne to return the binary form of
6183           the IP address in network byte order.  Affected files
6184           lib/silcutil/[unix/win32].silc[unix/win32]net.[ch].
6185
6186 Thu Oct 11 12:14:19 EDT 2001  Pekka Riikonen <priikone@silcnet.org>
6187
6188         * Check for existing server ID in silc_server_new_server
6189           and in silc_server_connect_to_router_final and remove the
6190           old entry if it exists.  Affected file silcd/packet_receive.c,
6191           silcd/server.c.
6192
6193         * Send the channel message always to only one router, either
6194           in upstream or downstream.  Affected file is
6195           silcd/packet_send.c.
6196
6197 Tue Oct  9 17:45:43 EDT 2001  Pekka Riikonen <priikone@silcnet.org>
6198
6199         * Wrote the definition of the backup resuming protocol to the
6200           protocol specification.
6201
6202         * Removed one redundant channel key generation from normal
6203           server during joining procedure.  Removed one redundant
6204           channel key sending from server to router during joining
6205           procedure.  Affected file silcd/command.c.
6206
6207         * Made minor bugfixes to the backup router resuming protocol.
6208           Affected file silcd/server_backup.c, server.c.
6209
6210 Mon Oct  8 16:47:42 EDT 2001  Pekka Riikonen <priikone@silcnet.org>
6211
6212         * Added --disable-asm configuration option.  Affected files
6213           configure.in.pre, lib/silcmath/mpi/configure.in.  A patch
6214           by salo.
6215
6216         * Implemented the backup resuming protocol that is used to
6217           resume the primary router position in the cell after the
6218           primary router comes back online.  Affected files
6219           silcd/server_backup.[ch], silcd/server, silcd/packet_receive.c,
6220           and silcd/server_util.[ch].
6221
6222 Sun Oct  7 12:29:25 EDT 2001  Pekka Riikonen <priikone@silcnet.org>
6223
6224         * Sleep two (2) seconds after sending QUIT command to server.
6225           Affected file lib/silcclient/command.c.
6226
6227         * Assure that if outgoing data buffer is pending do not force
6228           send any data.  Affected file silcd/packet_send.c.
6229
6230         * Assure that if outgoing data buffer is pending do not force
6231           send any data.  Affected file lib/silcclient/client.c.
6232
6233         * Implemented the backup router support when the primary router
6234           goes down.  The servers and routers can now use the backup
6235           router as new primary router without loosing connectivity.
6236
6237 Sat Oct  6 21:18:54 EDT 2001  Pekka Riikonen <priikone@silcnet.org>
6238
6239         * Added new SILC_IDLIST_STATUS_DISABLED flag for entries
6240           in the server to indicate disabled entry.  All data read
6241           from the connection will be ignored and no data is sent
6242           for entry that is disabled.  Affected files are
6243           silcd/idlist.h, silcd/server.c.
6244
6245 Fri Oct  5 00:03:29 EDT 2001  Pekka Riikonen <priikone@silcnet.org>
6246
6247         * Created SFTP client and server test programs in the
6248           lib/silcsftp/tests directory.
6249
6250 Wed Oct  3 23:31:42 EDT 2001  Pekka Riikonen <priikone@silcnet.org>
6251
6252         * Implemented memory filesystem (virtual filesystem) for
6253           SFTP server.  Affected file lib/silcsftp/silcsftp_fs.h,
6254           sftp_fs_memory.c.
6255
6256 Sun Sep 30 22:10:57 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
6257
6258         * Implemented the SFTP (SSH File Transfer Protocol) to the
6259           lib/silcsftp.  It includes SFTP client and SFTP server
6260           implementations.
6261
6262 Sun Sep 30 10:35:44 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
6263
6264         * Moved lib/silccore/silcprotocol.[ch] to the
6265           lib/silcutil library.
6266
6267         * Added silc_buffer_format_vp and silc_buffer_unformat_vp to
6268           take variable argument list pointer as argument.  Affected
6269           file lib/silcutil/silcbuffmt.[ch].
6270
6271         * Added silc_buffer_set function that is used to set data
6272           to a SilcBuffer that is not allocated at all (SilcBufferStruct).
6273           Affected file lib/silcutil/silcbuffer.h.
6274
6275         * Changed various routines in the core library to use the new
6276           silc_buffer_set instead of allocating new buffer only for
6277           temporary purposes.
6278
6279         * Added 64-bit value formatting and unformatting support to the
6280           silc_buffer_[un]format routines.  Affected file is
6281           lib/silcutil/silcbuffmt.[ch].
6282
6283           Added also 64-bit macros: SILC_GET64_MSB and SILC_PUT64_MSB,
6284           to includes/bitmove.h.
6285
6286 Fri Sep 28 21:30:10 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
6287
6288         * Fixed channel user mode saving in client library.  Affected
6289           file lib/silcclient/command[_reply].c.
6290
6291 Thu Sep 27 22:52:30 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
6292
6293         * Defined the file transfer to the SILC Protocol.  Added
6294           new packet type SILC_PACKET_FTP and defined File Transfer
6295           Payload.  The mandatory file transfer protocol is SFTP
6296           (SSH File Transfer Protocol).  Affected file in addition
6297           of the internet draft is lib/silccore/silcpacket.h.
6298
6299         * Deprecated the SILC_PACKET_CELL_ROUTERS and defined new
6300           packet SILC_PACKET_RESUME_ROUTER instead.  The new packet
6301           is used as part of backup router protocol when the primary
6302           router of the cell is back online and wishes to resume
6303           the position as primary router.
6304
6305         * Redefined the MAC generation keys in the protocol.  The
6306           same key is not used anymore in both direction.  Both
6307           direction will now use different keys for sending and
6308           receiving.  This fixes a potential security flaw.  This
6309           change causes incompatibilities in the protocol.
6310
6311         * Redefined also the MAC computation from the packet.
6312           An packet sequence number is now added to the MAC
6313           computation.  This prevents possible replay attacks against
6314           the protocol.  This change too causes incompatibilities
6315           in the protocol.
6316
6317           Added `sequence' field to the SilcPacketContext to hold
6318           the current sequence number for the packet.
6319
6320 Wed Sep 26 20:15:22 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
6321
6322         * Added `created' field to the SilcIDListData in the file
6323           silcd/idlist.h to indicate the time when the entry was
6324           created.
6325
6326         * Added `created' field to the SilcChannelEntry too.  Affected
6327           file silcd/idlist.h.
6328
6329         * Added `creation_time' aguments to all the announcement functions
6330           in the server.  If it is provided then only the entries that
6331           was created after the provided time frame are actually
6332           announced.  Affected file silcd/server.[ch].
6333
6334         * The protocol says that the Channel ID's IP address must be
6335           based on the router's IP address.  Added check for this in
6336           the silc_server_new_channel when processing incoming New Channel
6337           Payload.  Affected file silcd/packet_receive.c.
6338
6339         * Print out the correct version with --version in SILC client.
6340           Affected file irssi/src/silc/core/silc-core.c.
6341
6342 Mon Sep 24 17:19:00 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
6343
6344         * Fixed WHOWAS command to check for completnes of the client
6345           entry always, not just when the command is coming from client.
6346           Affected file silcd/command.c.
6347
6348         * Added new function silc_server_packet_queue_purge to purge the
6349           outgoing data queue to the network.  After the function returns
6350           it is guaranteed that the outgoing packet queue is empty.
6351           Affected file silcd/packet_send.[ch].
6352
6353         * Purge the outgoing packet queue in the rekey protocol's final
6354           callback to assure that all rekey packets go to the network
6355           before quitting the protocol.  Affected file silcd/server.c.
6356
6357         * Added silc_client_packet_queue_parse as similar function as
6358           in server to the client library.  The affected file is
6359           lib/silcclient/client.c.
6360
6361 Sun Sep 23 15:15:53 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
6362
6363         * Splitted silcd/server.c and created silcd/server_util.[ch]
6364           for utility functions.
6365
6366         * Added new socket flag SILC_SF_DISABLED to indicate that the
6367           connection is open but nothing can be sent to or received from
6368           the connection.  Affected file lib/silcutil/silsockconn.[ch].
6369           The checking for disabled socket is checked in the low level
6370           silc_socket_write and silc_socket_read functions.
6371
6372 Thu Sep 20 23:11:28 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
6373
6374         * Allow only nicknames and channel names that fits into the
6375           7-bit unsigned char ASCII set.  Affected file silcd/command.c.
6376
6377 Thu Sep 20 18:04:12 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
6378
6379         * When processing JOIN command reply in server check that if
6380           the channel exists in our global list we'll move it the local
6381           list.  Affected file silcd/command_reply.c.
6382
6383         * Fixed the check whether client is joined on the channel already
6384           in JOIN command.  Affected file lib/silcclient/command.c.
6385
6386         * Fixed the JOIN command reply to check whether the channel
6387           already exists.  Affected file lib/silcclient/command_reply.c.
6388
6389 Wed Sep 19 22:58:32 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
6390
6391         * Added silc_ske_status_string to map the SKE error numbers
6392           to readable strings.  The affected files are
6393           lib/silcske/silcske[_status].[ch].
6394
6395 Tue Sep 18 22:50:41 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
6396
6397         * Do not show the private channels on the WHOIS channel list
6398           as it is not allowed by the protocol.  The affected file is
6399           silcd/server.c.
6400
6401 Sun Sep 16 12:32:58 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
6402
6403         * Assure that the packet length digged from the actual packet
6404           is something sensible in the silc_packet_decrypt_rest_special
6405           in lib/silccrypt/silcpacket.c.
6406
6407         * Free and NULL the allocated pointer in silc_hmac_alloc if
6408           the HMAC allocation fails.  The affected file is
6409           lib/silccrypt/silchmac.c.
6410
6411         * Print the selected security properties to the log files in
6412           the server.  Affected file silcd/protocol.c.
6413
6414         * Add SKE's reference counter even if calling the completion
6415           callback manually.  Otherwise it goes negative, although it
6416           does not cause any problems.  The affected file is
6417           lib/silcske/silcske.c.
6418
6419         * Remove the client entry with short timeout after giving the
6420           KILL command.  Affected file lib/silcclient/command.c.
6421
6422         * Fixed to send error reply in WHOIS and IDENTIFY commands in
6423           case all found clients are already disconnected (WHOWAS would
6424           found them) in the server.  Affected file silcd/command.c.
6425
6426         * Update the last_receive (time of last data received) to be
6427           updated only when received private or channel message so that
6428           the idle time showed in WHOIS makes more sense.
6429
6430         * Added boolean field `valid' in to the SilcClientEntry in the
6431           client library to indicate whether the entry is valid or not.
6432           This fixes the nickname change bug on channel when changing
6433           the nickname to be same than the old (like nick to Nick) the
6434           nickname formatter doesn't set the new nick anymore to Nick@host.
6435           Affected file lib/silcclient/idlist.[ch].
6436
6437         * Now actually fixed the nickname changing on disconnection.
6438           Added new function silc_change_nick to the Irssi SILC Client.
6439           Affected file irssi/src/silc/core/client_ops.c,
6440           irssi/src/silc/core/silc-nicklist.[ch].
6441
6442 Sat Sep 15 13:29:17 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
6443
6444         * Check that the public key exists in the GETKEY command before
6445           trying to encode it.  Affected file silcd/command.c.
6446
6447         * Print some notifications on received public keys with GETKEY
6448           command in the Irssi SILC Client.  Affected files are
6449           irssi/src/fe-common/silc/module-formats.[ch],
6450           irssi/src/silc/core/client_ops.c.
6451
6452         * Use IDENTIFY command to resolve the server information in the
6453           GETKEY command instead of INFO command.  Affected file
6454           lib/silcclient/command.c.
6455
6456         * All command reply functions in the client library now calls
6457           the pending command reply callbacks even if an error has
6458           occurred.  The server has done this a long time and now it was
6459           time to move the client library to this as well.  Now all
6460           errors can be delivered back to the pending command reply
6461           callbacks if necessary.  Affected files are
6462           lib/silcclient/command[_reply].[ch].
6463
6464         * Change the nickname on disconnection back to the username
6465           because in reconnect the server will enforce it to it anyway.
6466           Affected file irssi/src/silc/core/silc-servers.c.
6467
6468         * Fixed a config file parsing bug in the Irssi SILC client.
6469           Affected file irssi/src/silc/core/clientconfig.c.
6470
6471 Thu Sep 13 23:11:18 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
6472
6473         * When printing the channel mode on JOIN, verify that the
6474           channel key and channel's HMAC are valid.  Affected file
6475           irssi/src/silc/core/client_ops.c.
6476
6477 Thu Sep 13 20:24:52 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
6478
6479         * Added defines SILC_DEFAULT_CIPHER, SILC_DEFAULT_HMAC,
6480           SILC_DEFAULT_HASH and SILC_DEFAULT_PKCS in the file
6481           lib/silccrypt/[silccipher.h|silchmac.h|silchash.h|silcpkcs.h].
6482
6483         * Removed channel key rekey task deleting from the function
6484           silc_server_save_channel_key.  Affected file silcd/server.c.
6485           Added explicit timeout task context instead that is used to
6486           delete the task if we are registering a new task before the
6487           new task has elapsed.
6488
6489         * When channel key rekey occurs the client library now saves
6490           the old channel key for a short period of time (10 seconds) and
6491           is able to use it in case some is still sending channel
6492           messages encrypted with the old key after the rekey.  Affected
6493           file lib/silcclient/[idlist.h|client_channel.c].
6494
6495 Sun Sep  9 15:49:16 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
6496
6497         * Added check to the silc_server_new_id_real to not accept
6498           new ID if it is the sender's own ID.  Affected file is
6499           silcd/packet_receive.c.
6500
6501         * Assure that we do not announce ourself or the one we've
6502           sending our announcements when we're router and are announcing
6503           servers to our primary router.  Affected file silcd/server.c.
6504
6505         * Fixed silc_server_command_identify_check_client to assemble
6506           correct WHOIS packet.  It send corrupted WHOIS packet and
6507           caused problem with router to router connections.  Affected
6508           file silcd/command.c.
6509
6510           Fixed also silc_server_command_whois_check the same way
6511           as for the IDENTIFY command.
6512
6513         * Added new SilcIDListStatus to the server in the SilcIDListData
6514           structure.   The status now includes the current status of
6515           the entry (like registered, resolved etc.).  Affected file
6516           silcd/idlist.[ch].  Defined a bunch of different status types
6517           as well.  This replaced the old boolean registered field as well.
6518
6519           Added resolve_cmd_ident field to the SilcClientEntry structure
6520           too so that if the entry is for example being resolved so
6521           another command may attach to the same pending command reply
6522           without requiring to resolve the same entry again.  This concept
6523           should optimize the WHOIS and the IDENTIFY resolving under
6524           heavy load by taking away unnecessary resolving for entries
6525           that are being resolved already.
6526
6527           Added support for adding multiple pending commands for one
6528           command idenfier.  Affected file silcd/command[_reply].[ch].
6529
6530         * Fixed WHOIS and IDENTIFY save to remove the cache entry
6531           before deleting the data.  Otherwise the hash table will have
6532           freed data in comparison functions.  Affected file is
6533           silcd/command_reply.c.
6534
6535         * Fixed silc_idlist_replace_client_id to add the new entry to
6536           the cache with NULL nickname.  Otherwise there will be invalid
6537           memory as the nickname after the nickname is freed.  Affected
6538           file silcd/packet_receive.c.
6539
6540         * Fixed the silc_idlist_get_clients_by_hash.  The entries was
6541           saved into wrong slots because the previous number of entries
6542           was not taken into account.  Affected file silcd/idlist.c.
6543           Fixed same thing in silc_idlist_get_clients_by_nickname too.
6544
6545         * If we are router and we receive JOIN notify to a channel that
6546           does not have any users then notified client is marked as the
6547           channel founder, as it is it.  The affected file is
6548           silcd/packet_receive.c
6549
6550         * Added to the extended hash table API's table_del_*ext functions
6551           the destructor as argument too, so that the caller can decide
6552           which destructor to use or whether to use destructor at all.
6553           Affected file lib/silcutil/silchashtable.[ch].
6554
6555         * Fixed ID Cache purging.  It actually deleted the entries from
6556           the hash table after the data was freed.  The hash table ended
6557           up comparing freed memory.  The affected file is
6558           lib/silccore/silcidcache.c.
6559
6560 Sat Sep  8 10:22:10 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
6561
6562         * Fixed Irssi SILC client's KILL command's HELP syntax.
6563
6564         * The USERS command now resolves the detailed user information
6565           if the userinfo field is missing.  Affected file is
6566           lib/silcclient/command_reply.c.
6567
6568         * Do not print error in silc_file_read if the read file does
6569           not exist.  Just silently return NULL.  Affected file is
6570           lib/silcutil/silcutil.c.
6571
6572         * Fixed the silc_log_output to not wine about NULL filename
6573           and to not create some bogus " " filename.  Affected file is
6574           lib/silcutil/silclog.c.
6575
6576 Fri Sep  7 22:16:38 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
6577
6578         * Fixed various printing bugs on the user interface in the
6579           Irssi SILC Client.  Minor changes that were forgotten from
6580           the release.
6581
6582 Fri Sep  7 17:28:37 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
6583
6584         * Fixed the configure.in.pre and the compilation and distribution
6585           environment to support the new autoconf 2.52.  That version is
6586           now required to compile the CVS trunk.
6587
6588 Thu Sep  6 12:47:37 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
6589
6590         * Renamed function silc_parse_nickname to silc_parse_userfqdn
6591           to generally parse user@fqdn format strings.  Affected file
6592           lib/silcutil/silcutil.c.
6593
6594         * Added nickname_format and nickname_force_format fields to the
6595           SilcClientParams structure.  The first one defines the format
6596           for the nicknames that the library will enforce if the receives
6597           multiple same nicknames.  The second one is boolean value and
6598           can be used to force the library to always enforce the format
6599           to the nicknames regardles whether there are multiple nicknames
6600           or not.  This configurable formatting was employed to flexibly
6601           support accessing multiple nicknames from the user interface.
6602           The userinterface can now set the nicknames to what ever format
6603           they prefer.  Affected file lib/silcclient/silcapi.h.
6604
6605           Added function silc_client_nickname_format to the file
6606           lib/silcclient/idlist.c.  It performs the nickname formatting.
6607
6608           Added new field `hostname´ to the SilcClientEntry context.
6609           It holds the hostname of the client.  Affected file is
6610           lib/silcclient/idlist.h.
6611
6612         * Irssi SILC Client sets the nicknames in nick@hostn format.
6613           Fe. priikone@otaku, priikone@otaku2 etc.  Affected file
6614           irssi/src/silc/core/silc-core.c.
6615
6616           The WHOIS printing now also shows both the real nickname and
6617           the formatted nickname so that user knows how to access the
6618           user if there are multiple same nicknames cached.  Affected
6619           file irssi/src/silc/core/client_ops.c.  Changed the WHOIS
6620           printing formatting too to take the hostname now as a separate
6621           argument.  The Affected file is
6622           irssi/src/fe-common/silc/modules-formats.[ch].
6623
6624         * Changed the silc_client_get_clients_local to accept the formatted
6625           nickname as argument.  It accepts the real nickname too but the
6626           formatted nickname can be used to find the true entry from
6627           multiple entries.  Affected file lib/silcclient/silcapi.h and
6628           lib/silcclient/idlist.c.
6629
6630         * Added nickname_format_parse field to the SilcClientParams.
6631           It is a callback function provided by the application to parse
6632           the nickname out of the formatted nickname string. The library
6633           calls it to get the nickname from the formatted string. Since
6634           the application generally knows better the format of the nickname
6635           string it parses it instead of the library, even though library
6636           encodes the formatted string.  If the callback function is not
6637           provided then the library will use the string as is.  The
6638           affected file is lib/silcclient/silcapi.h.
6639
6640         * All the nickname strings passed to the client library in
6641           commands are now expected to be formatted nickname strings.
6642           If the command does not support the formatted nickname string
6643           it will assume that the sent string is the actual nickname.
6644           Affected file lib/silcclient/command.c.
6645
6646 Tue Sep  4 22:31:28 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
6647
6648         * Added public key authentication support to OPER and SILCOPER
6649           commands in the client library.  Affected file is
6650           lib/silcclient/command.c.
6651
6652 Tue Sep  4 12:39:17 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
6653
6654         * Changed the get_auth_methdod client operation to be asynchronous.
6655           It can be async if the application resolves the authentication
6656           method from the server during the negotiation.  Added new
6657           SilcGetAuthMeth completion callback that the application will
6658           call after resolving the authentication method.
6659
6660           Added function silc_client_request_authentication_method that
6661           the application can use to resolve the authentication method
6662           from the server.  Added also SilcConnectionAuthRequest callback
6663           that the library will call after the server has replied.  The
6664           application can call this function if it does not know the
6665           current authentication method.
6666
6667           Affected files are lib/silcclient/client.c and
6668           lib/silcclient/silcapi.h.
6669
6670         * The Irssi SILC client now automatically resolves the authentication
6671           method incase any configuration information is not present (and
6672           currently there never is).  The affected file is
6673           irssi/src/silc/core/client_ops.c.
6674
6675         * Fixed public key authentication from the client library.
6676           Affected file lib/silcclient/protocol.c.  Changed also the
6677           protocol specification about the public key authentication in
6678           the connection authentication protocol.  The actual data to be
6679           signed is now computed with a hash function before signing.
6680
6681         * Fixed the public key authentication from the server as well.
6682           Affected file silcd/protocol.c.
6683
6684         * Removed the mlock()'s from the memory allocation routines.
6685           Affected file lib/silcutil/silcmemory.c.  The ./configure does
6686           not check anymore for the mlock().  Affected file is
6687           configure.in.pre.
6688
6689         * Fixed USERS command in server to allow the execution of the
6690           command for private and secret channels if the client sending
6691           the command is on the channel.  Affected file silcd/command.c.
6692
6693         * Fixed silc_client_get_clients_local to return the clients
6694           count correctly.  It could return wrong value.  Affected file
6695           lib/silcclient/idlist.c.
6696
6697 Mon Sep  3 20:09:59 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
6698
6699         * Fixed the lib/silcmath/mpi/mpi.h to always use 32-bit data
6700           types.  The assembler optimizations seemed not to like 64-bit
6701           data types.  The assmebler optimizations thus are now enabled
6702           also for BSD systems as opposed to only enable them for Linux.
6703
6704         * Do not check for threads at all on BSD systems.  Affected
6705           file configure.in.pre.
6706
6707         * Removed -n and -h options from the Irssi SILC Client since
6708           they are not used in silc.
6709
6710         * Fixed the prime generation to assure that the first digit
6711           of the generated random number is not zero since our conversion
6712           routines does not like number strings that starts with zero
6713           digit.  If zero digit is seen the random number is regenerated.
6714           This caused some corrupted RSA keys when the zero first digit
6715           was met.  Affected file lib/silcmath/silcprimegen.c.
6716
6717 Sun Sep  2 17:17:24 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
6718
6719         * Fixed WIN32 configuration in the ./configure script.
6720           Fixed to include xti.h on environments that has it.
6721           Patches by Carsten Ilchmann and andrew.
6722
6723 Sat Sep  1 00:29:33 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
6724
6725         * Changed the silc_id_create_client_id to be collision
6726           resistant.  It is now assured that there cannot be created
6727           two same client ID's.  I suspect that some weird bugs in
6728           the server were actually caused by duplicate Client IDs.
6729           Affected file silcd/serverid.[ch].  A router receiving
6730           new ID now also assures and informs the sending server
6731           if the ID caused collision.
6732
6733         * Changed the silc_id_create_channel_id to also assure that
6734           there are no collisions.
6735
6736 Wed Aug 29 17:55:01 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
6737
6738         * Statement about ignoring the Mutual Authentication flag when
6739           performing rekey with PFS was a bit misleading.  It is ignored
6740           if it was set in the initial negotiation, it cannot be even
6741           set in the rekey.  Fixed in the ke-auth draft.  Started the
6742           new versions of the protocol drafts in the doc/.
6743
6744 Sun Aug 26 14:59:15 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
6745
6746         * Fixed a bug in silc_client_command_identify_save when saving
6747           new channel information.  The channel name was no duplicated
6748           and caused crash on exit.  Affected file is
6749           lib/silcclient/command_reply.c.
6750
6751 Fri Aug 17 23:07:45 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
6752
6753         * Fixed the getkey command handling in the server.  Send just
6754           empty OK reply to the sender if the key could not be fetched
6755           (but everything else was ok, like the key just was not available).
6756           Changed the public key parameter to optional in the protocol
6757           specs so that empty OK reply can be sent.  Affected file
6758           silcd/command.c.
6759
6760           Added a message to Irssi SILC client to tell to user if the
6761           server did not return a public key.
6762
6763 Tue Aug 14 07:29:27 CEST 2001  Pekka Riikonen <priikone@silcnet.org>
6764
6765         * Fixed a channel key regeneration bug.  It registered new
6766           timeout tasks exponentially until all system resources were
6767           used.  Affected file silcd/server.c.
6768
6769 Sun Aug 12 20:48:14 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
6770
6771         * Added the SILC Document generator to the scripts/silcdoc.
6772           It can be used to generate the Toolkit Reference Manual out
6773           of the source tree.  Internally it will also use the RoboDoc
6774           generator now imported in util/robodoc.
6775
6776 Sun Aug 12 12:28:17 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
6777
6778         * Added couple of return's in rekey protocol if error orccurred
6779           during the protocol.  The execution must be terminated.
6780           Affected file silcd/protocol.c.  Also, terminate the protocol
6781           always with timeout.
6782
6783 Sat Aug 11 12:36:02 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
6784
6785         * The client's Client ID was created initally from the wrong
6786           nickname (it could have been in format nick@host) in the
6787           silc_server_new_client.  Affected file silcd/packet_receive.c
6788
6789 Sat Aug 11 00:29:57 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
6790
6791         * Added some SILC_LOG_ERROR's to various error conditions
6792           if client could not be added to ID cache.  Affected files
6793           silcd/packet_receive.c and silcd/server.c.
6794
6795         * When client's sock->user_data is freed, NULL also the
6796           client->router and client->connection pointers.  Added check
6797           for these pointers being NULL to various places around the
6798           code.  Affected file silcd/server.c.
6799
6800         * Added client->data.registered == TRUE checks to various
6801           places around the code to assure that unregistered client's
6802           are not handled when it is not allowed.  Affected file
6803           silcd/server.c.
6804
6805         * Added `bool registered' fields to all
6806           silc_idlist_[server|client]_get_* routines to indicate whether
6807           the fetched client needs to be registered or not.  Affected
6808           file silcd/idlist.[ch].
6809
6810         * Add your own entry as registered to the ID cache in the
6811           server.  Affected file server.c.
6812
6813         * Fixed a bug in silc_server_new_server.  The SilcServer was
6814           set as the new server's context instead of SilcServerEntry.
6815           This naturally caused some weird bugs.
6816
6817         * Added "updated" field the SilcChannelEntry which indicates
6818           the time since the channel entry was last accessed.  This
6819           can be used to determine whether it is necessary to
6820           announce the channel after backup resuming protocol.
6821           Affected files silcd/idlist.[ch].
6822
6823 Thu Aug  9 18:28:37 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
6824
6825         * Do not delete the channel rekey task when adding it
6826           for in silc_server_create_channel_key.
6827
6828         * Changed the silc_server_create_channel_key to return
6829           TRUE or FALSE to indicate the success of the channel key
6830           creation.
6831
6832 Thu Jul 26 11:32:31 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
6833
6834         * Fixed MSVC++ project files and added missing files to
6835           Makefiles under win32/.
6836
6837 Wed Jul 25 18:43:54 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
6838
6839         * Do not add TCP_NODELAY flag if the operating system
6840           does not have it defined.  Affected files are
6841           lib/silcutil/[unix/win32]/silc[unix/win32]net.c.
6842
6843         * Fixed buffer overflow from Irssi SILC Client.  Affected
6844           file irssi/src/fe-common/core/themes.c.
6845
6846         * Fixed double free in client library in the file
6847           lib/silcclient/client.c when disconnecting from server.
6848
6849         * Applied double free patch from cras to Irssi SILC client.
6850           Affected files irssi/src/core/[modules/expandos].c
6851
6852         * Fixed the disconnection handling to Irssi SILC Client.
6853           The application must call silc_client_close_connection
6854           in ops->connect client operation in case of failure of
6855           the connection.  Affected file is
6856           irssi/src/silc/core/client_ops.c.
6857
6858         * Do not set sock->protocol to NULL in the function
6859           silc_client_close_connection after executing the protocol's
6860           final callback since the sock might not be valid anymore.
6861           Affected file lib/silcclient/client.c.
6862
6863 Wed Jul 25 16:04:35 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
6864
6865         * Do not enable SILC_THREADS if the linking with libpthread
6866           did not happen.  Affected file configure.in.pre.
6867
6868         * Added notion to protocol specification that server must
6869           verify the sent authentication payload with CMODE when
6870           setting the channel founder key.  Implemented it to the
6871           server.  Affected file silcd/command.c.
6872
6873 Mon Jul 23 18:31:43 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
6874
6875         * Added _EXTRA_DIST SILC distribution variable to the
6876           distributions file.  It is used to conditionally add extra
6877           files or directories to the specific distribution.  Affected
6878           files ./prepare, Makefile.am.pre and distributions.
6879
6880           Removed the `_' from the start of the distribution names.
6881           It is redundant.
6882
6883         * Added README.WIN32 for instructions to compile the Toolkit
6884           under WIN32.
6885
6886 Mon Jul 23 10:12:37 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
6887
6888         * Fixed a double free in disconnection in the server.  Affected
6889           file is silcd/server.c.
6890
6891         * Fixed the lib/silcske/groups.c to work now also with GMP
6892           MP library.  The string conversion did not work when using
6893           specific base and the base is indicated in the string as well.
6894
6895         * Created win32/ directory which now includes MSVC++ specific
6896           stuff so that toolkit (DLLs) may be compiled with MSVC++.
6897           It will appear only in the toolkit distribution
6898
6899 Sun Jul 22 19:40:30 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
6900
6901         * Changed the key material distribution function in case when
6902           the hash output is too short.  The data is now concatenated
6903           a bit differently than it used to.  Made the change to the
6904           SKE protocol specification.
6905
6906         * Added better GMP detection to configure.in.pre.  A patch
6907           by salo.
6908
6909 Fri Jul 20 13:16:00 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
6910
6911         * Fixed a minor bug in SKE that might cause some problem on
6912           some platforms.  Affected file lib/silcske/silcske.c.
6913
6914         * Added the cookie checking for initiator in the SKE.  It checks
6915           that the responder returns the sent cookie unmodified.  The
6916           affected file is lib/silcske/silcske.c.  Added new SKE
6917           error type INVALID_COOKIE that can be sent during the
6918           negotiation.  Fixed some memory leaks as well.
6919
6920         * Added the "invalid cookie" error message to Irssi SILC client's
6921           message formats.
6922
6923 Thu Jul 19 21:44:31 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
6924
6925         * Added `task_max' field to the SilcClientParams to indicate
6926           the maximum tasks the scheduler can handle.  If set to zero,
6927           default values are used.  Affected file lib/silcclient/silcapi.h.
6928
6929         * Fixed memory leaks in silc_client_close_connection.  Affected
6930           file lib/silcclient/client.c.
6931
6932         * Added silc_client_del_client_entry to client library to free
6933           all memory of given client entry.  Affected file is
6934           lib/silcclient/idlist.[ch].
6935
6936         * Added new functions silc_client_del_channel and
6937           silc_client_del_server to delete channel and server entries.
6938           Affected file lib/silcclient/[silcapi.h/idlist.c].
6939
6940         * Removed silc_client_del_client_by_id from silcapi.h.
6941
6942         * Fixed the INFO command to return the server's own info
6943           correctly when querying by Server ID.  Affected file is
6944           silcd/command.c.
6945
6946 Thu Jul 19 14:47:30 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
6947
6948         * Removed the non-blocking settings in WIN32 code in the
6949           silc_sock_[read/write] and added SleepEx instead.  Affected
6950           file lib/silcutil/win32/silcwin32sockconn.c.  The availability
6951           of input data is now checked with FIONREAD and ioctlsocket.
6952
6953 Wed Jul 18 18:34:01 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
6954
6955         * Call silc_schedule_task_del_by_context in the
6956           silc_protocol_cancel instead of silc_schedule_task_del_by_callback.
6957           Affected file lib/silccore/silcprotocol.c.
6958
6959         * Call silc_protocol_cancel for active protocols in the
6960           silc_server_close_connection if the funtion
6961           silc_server_free_sock_user_data has not been called.
6962           Affected file silcd/server.c.
6963
6964         * Generic tasks cannot be deleted using the del_by_fd
6965           task deleting function since generic tasks does not match
6966           any specific fd.  Affected file lib/silcutil/silcschedule.[ch].
6967
6968         * Added a notion to SILCOPER help file that the SILCOPER works
6969           only on router server, not on normal server.
6970
6971 Wed Jul 18 09:40:04 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
6972
6973         * Added for WIN32 support for the new scheduler as well.
6974           Affected file lib/silcutil/win32/silcwin32schedule.c.
6975
6976         * Fixed the SHA1 implementation to work on various platforms.
6977
6978 Tue Jul 17 23:04:10 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
6979
6980         * Rewrote the SILC Scheduler entirely.  Removed the old SILC Task
6981           API.  It is part of the scheduler now.  Everything else is
6982           as previously but some functions has changed their names.
6983           Checkout the lib/silcutil/silcschedule.h for the interface.
6984           Updated all applications to use the new interface.  Affected
6985           files are lib/silcutil/silcschedule.[ch].
6986
6987 Tue Jul 17 16:53:30 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
6988
6989         * Found a bug in the SKE implementation.  The HASH value,
6990           specified by the protocol, was not computed correctly.  The
6991           public key of the responder was not added to the computation
6992           even though it is mandatory.  Affected file lib/silcske/silcske.c.
6993           This unfortunately causes incompatibilities with older
6994           clients and servers.
6995
6996         * Added WIN32 specific network init and uninit functions:
6997           silc_net_win32_init and silc_net_win32_uninit to init and uninit
6998           the Winsock2.  Affected file lib/silcutil/silcnet.h and
6999           lib/silcutil/win32/silcwin32net.c.
7000
7001         * Set the socket always to nonblocking mode on WIN32 after
7002           reading data or writing data.  Affected file is
7003           lib/silcutil/win32/silcwin32sockconn.c.
7004
7005 Mon Jul 16 22:55:26 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
7006
7007         * Fixed various compilation problems under WIN32.  Affected
7008           files lib/silcutil/win32/silcwin32thread.c and
7009           lib/silcutil/win32/silcwin32schedule.c.
7010
7011         * Removed all _internal.h #includes from public header
7012           files.  Internal headers must never be included from
7013           public headers.
7014
7015           Removed also the lib/silcske/payload_internal.h file.
7016
7017         * All include files that may be needed (public and some others
7018           included by the public headers) by application developers are
7019           now copied to the ./includes directory.  It does not copy any
7020           internal headers.  Affected file Makefile.defines.pre and all
7021           Makefile.am's under lib/ and subdirs.
7022
7023 Thu Jul 12 17:49:31 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
7024
7025         * Do not change the ~/.silc directory's permissions automatically.
7026           Affected file irssi/src/silc/core/clientutil.c.
7027
7028 Thu Jul 12 10:18:40 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
7029
7030         * Do not cancel the protocol in silc_server_close_connection
7031           it might cause recursion.  Now cancelled in the function
7032           silc_server_free_sock_user_data.  Affected file silcd/server.c.
7033
7034         * Fixed the silc_server_remove_clients_by_server to regenerate
7035           the channel keys correctly finally.  Added also new function
7036           silc_server_remove_clients_channels to actually do it.
7037           Affected file silcd/server.c.
7038
7039         * Fixed the silc_server_new_channel to not crash by giving
7040           wrong router to the new channel.  Affected file is
7041           silcd/packet_receive.c.
7042
7043 Wed Jul 11 18:31:57 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
7044
7045         * Added SilcClientParams structure to the lib/silcclient/silcapi.h
7046           which is given as argument to the silc_client_alloc now.
7047           It can be used to configure the client and set various parameters
7048           that affect the function of the client.
7049
7050         * The USERS command in server did not check whether the channel
7051           is private or secret.  Affected file silcd/command.c.
7052
7053         * Added new argument to the USERS command in protocol specification.
7054           The USERS command now can take the channel name as argument
7055           as well.  Added support for this in client and server and
7056           updated the protocol specs.
7057
7058         * Completed the GETKEY command in client. It can be now used
7059           to fetch also servers public key not only some clients.
7060           Affected files lib/silcclient/command[_reply].c.
7061
7062         * Added silc_client_get_server to return server entry by the
7063           server name.  Affected files lib/silcclient/silcapi.h and
7064           idlist.c.
7065
7066         * Redefined the IDENTIFY command in protocol specification to be
7067           more generic.  It now can be used to query information about
7068           any entity in the SILC Network, including clients, servers and
7069           channels.  The query may be based either the entity's name
7070           or the ID.  Added support for this in both client and server.
7071
7072           Affected files silcd/command.c and lib/silcclient/command.c
7073           and command_reply.c.
7074
7075         * Optimized the WHOIS and WHOWAS commands in the server. Removed
7076           the _from_client and _from_server functions.  Affected file
7077           silcd/command.c.
7078
7079         * Added silc_client_get_channel_by_id_resolve to the file
7080           lib/silcclient/silcapi.h to resolve channel information by
7081           its ID.  Added also silc_client_get_channel_by_id that
7082           does not resolve it from the server.
7083
7084 Tue Jul 10 18:05:38 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
7085
7086         * Added SilcServerEntry context into the client library
7087           to represent one server.  The INFO command now allocates
7088           these to save the resolved server info.  For now on the
7089           client library will also keep information about servers,
7090           connected and resolved with INFO.
7091
7092           The INFO command now allocates the SilcServerEntry context
7093           and saves the server info there.  The COMMAND_REPLY in
7094           the INFO now returns the parameters to application in
7095           same order as defined in the protocol specification.
7096
7097           The entries are cached in the client->server_cache.
7098
7099         * The INFO command is now issued after received the Client ID
7100           from the server.  Affected file lib/silcclient/client.c.
7101
7102         * The CMODE_CHANGE notify may now return also an SilcServerEntry
7103           to the application as the mode changer might be server.
7104           It is guaranteed that NULL is not returned anymore to the
7105           application.  Affected file lib/silcclient/client_notify.c.
7106
7107           The ID Type is now also passed to the application so that
7108           it can check whether the returned entry is SilcClientEntry
7109           or SilcServerEntry.
7110
7111           Added new function silc_client_get_server_by_id to return
7112           the server entry by ID.  Affected files are the
7113           lib/silcclient/silcapi.h and lib/silcclient/idlist.c.
7114
7115         * Do not create the channel in the Irssi SILC Client when issuing
7116           the JOIN command but when received the sucessful JOIN command
7117           reply.  Otherwise the channel might get created even though we
7118           could not join it.  The Affected file is
7119           irssi/src/silc/core/[silc-channels.c/client_ops.c].
7120
7121         * Fixed a channel joining bug in router.  The router must also
7122           check the channel modes, invite and ban lists etc. when serving
7123           the JOIN command sent by normal server.  Affected file is
7124           silcd/command.c.  The router now resolves the client's
7125           information from the server who sent the JOIN command if it
7126           does not know it, and processes the JOIN command only after
7127           that.
7128
7129         * Changed the SilcCommandCb to take new argument; void *context2.
7130           Affected file lib/silccore/silccommand.h
7131
7132           The second argument in the command callbacks in the server now
7133           includes the SilcServerCommandReplyContext if the command was
7134           called as pending command callback from the command reply.
7135           Otherwise it is NULL. When called as pending the status of the
7136           command reply will be checked and if it was erronous the
7137           error will be sent to the original sender of the command.
7138           This way the client always receives the error messages even
7139           though the server was actually the one who received the error
7140           when it resent the command to router, for example.  Affected
7141           files silcd/command[_reply].[ch].
7142
7143         * Fixed sending WHOWAS command's error message to client if
7144           the requested client could not be found.  It was missing.
7145           silcd/command.c.
7146
7147         * Changed the CMODE and CUMODE commands reply arguments in the
7148           protocol specification.  The Channel ID is now sent in both
7149           of the commands to identify the channel.  Implemented this
7150           new feature to the client and server.  Affected files
7151           lib/silcclient/command_reply.c and silcd/command.c.
7152
7153         * Made better checks for invite and ban lists in the JOIN
7154           command in server.  Affected file silcd/command.c.
7155
7156 Mon Jul  9 18:28:34 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
7157
7158         * The server now performs the incoming host IP/DNS lookup
7159           using the silc_socket_host_lookup and thus does not block
7160           the server anymore.  Affected file silcd/server.c.
7161
7162         * Completed the multi-thread support for SILC Scheduler in
7163           the lib/silcutil/silcschedule.c.
7164
7165         * Fixed the configure.in.pre to detect the pthread correctly
7166           on various systems.
7167
7168         * Fixed a deadlock in silc_task_queue_wakeup in the file
7169           lib/silcutil/silctask.c.
7170
7171 Mon Jul  9 13:40:03 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
7172
7173         * Added new function silc_schedule_wakeup that is used in
7174           multi-threaded environment to wakeup the main thread's
7175           schduler. It needs to be used when a thread adds a new task
7176           or removes a task from task queues. After waking up, the
7177           scheduler will detect the task queue changes. If threads
7178           support is not compiled in this function has no effect.
7179           Implemented the wakeup mechanism to both Unix and WIN32
7180           systems.  Affected files are lib/silcutil/silcschedule.[ch],
7181           lib/silcutil/unix/silcunixschedule.c and the
7182           lib/silcutil/win32/silcwin32schedule.c.
7183
7184         * Added new function silc_task_queue_wakeup to wakeup the
7185           scheduler by the specified task queue.  Affected file
7186           lib/silcutil/silctask.[ch].
7187
7188         * The silc_socket_host_lookup_start now wakes up the scheduler
7189           after adding the timeout task.  Affected file is
7190           lib/silcutil/silcsockconn.c.
7191
7192         * The silc_socket_host_lookup is synchronous now if the threads
7193           support is not compiled in.  However, the callback is still
7194           called asyncronously through the scheduler, anyway.  Affected
7195           file lib/silcutil/silcsockconn.c.
7196
7197 Mon Jul  9 00:24:45 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
7198
7199         * Added new function silc_socket_host_lookup to perform
7200           asynchronous IP and FQDN lookups for the socket connection.
7201           Affected files lib/silcutil/silcsockconn.[ch].
7202
7203 Sun Jul  8 18:44:53 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
7204
7205         * Added SILC_MUTEX_DEFINE to define the mutex on environments
7206           that may or may not compile the mutex support in.
7207
7208           Changed the silc_mutex_alloc interface. It allocates the
7209           mutex now to the sent pointer and returns TRUE or FALSE.
7210
7211           Affected file lib/silcutil/silcmutex.h.
7212
7213         * Wrote the SILC Task Queue interface to support multi-threads.
7214           Affected file lib/silcutil/silctask.[ch].
7215
7216         * Wrote the SILC Scheduler to support multi-threads.  Affected
7217           file lib/silcutil/silcschedule.c.
7218
7219 Sun Jul  8 11:16:01 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
7220
7221         * Implemented the SILC Mutex API and SILC Thread API for WIN32
7222           in lib/silcutil/win32/.
7223
7224 Sun Jul  8 00:18:15 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
7225
7226         * Defined SILC Mutex API and SILC Thread API and implemented
7227           them for Unix.  Affected files are
7228           lib/silcutil/silcmutex.h, lib/silcutil/silcthread.h,
7229           lib/silcutil/unix/silcunixmutex.c and
7230           lib/silcutil/unix/silcunixthread.c.
7231
7232 Sat Jul  7 14:40:31 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
7233
7234         * Fixed the silc_server_remove_clients_by_server's channel
7235           key re-generation.  The hash table handling was incorrect
7236           and would not work with many channels.  Affected file is
7237           silcd/server.c.
7238
7239         * Fixed some memory leaks around the server code.
7240
7241         * Rewrote the silc_server_get_users_on_channel to support IPv6
7242           based Client ID's.  Affected file silcd/server.c.
7243
7244         * Defined the SILC_MESSAGE_FLAG_SIGNED to the protocol
7245           specification.  However, a separate document must be written
7246           to define the detailed signing procedure and the payload
7247           associated with the flag.  Defined the flag to the
7248           lib/silccore/silcchannel.h as well.
7249
7250 Fri Jul  6 18:26:31 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
7251
7252         * Changed the dynamic tables to static size tables in the
7253           lib/silccrypt/silchmac.c.
7254
7255         * Removed GCC dependencies from the code.  A patch by cras.
7256
7257 Fri Jul  6 09:39:35 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
7258
7259         * Do not show the error "Error receiving packet bla bla"
7260           in server if it really was not an error (-2 means that reading
7261           is pending).  Affected file silcd/server.c.
7262
7263 Thu Jul  5 21:22:32 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
7264
7265         * Fixed a possible crash in silc_server_remove_clients_by_server
7266           in silcd/server.c.  Fixed there also some memory leaks.
7267
7268         * Fixed the silc_idlist_replace_client_id.  It could replace
7269           wrong key in the hash table.  Affected file silcd/idlist.c.
7270
7271         * Do not check whether there are global users on the channel
7272           if the channel->global_users is FALSE.  Affected functions
7273           silc_server_remove_from_one_channel and
7274           silc_server_remove_from_channels in silcd/server.c.  Also,
7275           do not check if the removed client is local as we can be
7276           sure that global client was not removed from the channel
7277           and checking for global users is not needed.
7278
7279         * The silc_server_remove_clients_by_server now re-generates
7280           the channel keys correctly for those channels that had
7281           clients removed from them.  Affected file silcd/server.c.
7282
7283 Tue Jul  3 11:39:20 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
7284
7285         * Found the reason of random crashes in the server.  We weren't
7286           ignoring the SIGPIPE signal (which can be sent in write())
7287           and it crashed the server.  Affected file silcd/silcd.c.
7288
7289 Fri Jun 29 20:05:25 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
7290
7291         * Assure that sock->user_data is not NULL in the function
7292           silc_server_packet_send in silcd/packet_send.c.
7293
7294         * Disconnect the remote connection if it could not be added
7295           to any ID lists in the server.  The affected file is
7296           silcd/server.c.
7297
7298         * Check in silc_server_packet_send[_real/dest] that the
7299           socket is not disconnecting and ignore the data if it is.
7300           Affected file silcd/packet_send.c.
7301
7302         * Define inline to __inline on native WIN32 compilation.
7303           Affected file includes/silcwin32.h.
7304
7305         * Added some explicit type casts for inline code since MSVC
7306           require them.  Affected files lib/silcutil/silcbuffer.h,
7307           lib/trq/silcdlist.h and lib/trq/silclist.h.
7308
7309         * Print warning in log files from now on if the packet
7310           decryption fails.  Affected file silcd/server.c.
7311
7312 Thu Jun 28 21:30:39 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
7313
7314         * Changed the `say' client operation's interface to accept
7315           new `type' argument to indicate the type of the message sent
7316           by the library.  The application may filter the library's
7317           messages according the type.  The affected file is the
7318           lib/silcclient/silcapi.h.
7319
7320         * Added two new functions to lib/silcclient/silcapi.h:
7321           silc_client_del_client and silc_client_del_client_by_id.
7322           Affected file lib/silcclient/idlist.c.
7323
7324         * Moved the clientincludes.h from includes/ to silc/ and
7325           serverincludes.h from includes/ to silcd/.
7326
7327         * The modes for the CMODE and CUMODE are now passed as
7328           uint32 for application with COMMAND_REPLY.  The affected
7329           file is lib/silcclient/command_reply.c.
7330
7331 Wed Jun 27 22:24:47 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
7332
7333         * /WHOIS without arguments shows client's own information.
7334           Affected file lib/silcclient/command.c.
7335
7336         * Changed PING to not accept any arguments.  The specs
7337           says that client can ping only the connected server so
7338           requiring an argument is not needed.  Affected file is
7339           lib/silcclient/command.c.
7340
7341 Wed Jun 27 00:10:33 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
7342
7343         * Fixed a fatal bug in private message sending and reception
7344           encryption and decryption when using private message keys.
7345           The implementation was incorrect and did not follow the
7346           specification.  It causd that some of the message were
7347           lost since it did not use the sending and receiving keys
7348           as the protocol suggests.  This has been fixed and will cause
7349           incompatibilities with older clients when sending private
7350           message encrypted with private message keys.  Affected files
7351           lib/silcclient/client_prvmsg.c, lib/silcclient/client_keyagr.c
7352           and various other in Irssi SILC Client.
7353
7354           Added `responder' boolean argument to the functions
7355           silc_client_add_private_message_key[_ske] to indicate when
7356           the key is added as responder or initiator of the key
7357           negotiation.
7358
7359 Tue Jun 26 19:23:07 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
7360
7361         * Removed the silc_ske_check_version function and created
7362           a SilcSKECheckVersion callback.  Added also a function
7363           silc_ske_set_callbacks that is now used to set all SKE
7364           callbacks.  The callback functions are not given to
7365           the SKE functions anymore, but this function is used to
7366           set the callbacks.
7367
7368         * Fixed the WIN32 DLL generation in lib/Makefile.am.pre.
7369
7370         * Added `silc_version' argument to the silc_client_alloc
7371           to define the version of the application for the library.
7372           The library will use the version string to compare it
7373           against the remote host's (usually a server) version
7374           string.  Affected file lib/silcclient/silcapi.h
7375
7376         * Added the KE protocol context to Key Agreement context
7377           in client library so that we can abort the SKE if it
7378           is in process when we get timeout.  Affected file is
7379           lib/silcclient/client_keyagr.c.
7380
7381         * Do not resolve the client ID forever if it returns in the
7382           first time that such client does not exist.  This was done
7383           for example with private message.  Affected file is
7384           lib/silcclient/client_prvmsg.c.
7385
7386 Mon Jun 25 21:42:51 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
7387
7388         * Do not add regex.h for WIN32.  The affected file
7389           includes/silcincludes.h.
7390
7391         * Added WIN32 DLL generation to lib/Makefile.am.pre.  It might
7392           not work yet 100%.  It generates the DLL's automatically
7393           when compiling with --with-win32 under cygwin.
7394
7395 Sun Jun 24 19:49:23 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
7396
7397         * lib/contrib/regex.c is not compiled on WIN32.
7398
7399         * Added silc_net_get_socket_opt function to the
7400           lib/silcutil/silcnet.h.
7401
7402         * Added includes/silcwin32.h for WIN32 specific includes
7403           and definitions.
7404
7405         * Do not use ptime structure or any of the posix process
7406           functions on WIN32 in lib/silccrypt/silrng.c.
7407
7408         * Added silc_gettimeofday to provide generic function
7409           for struct timeval on all platforms.  Added the function
7410           to lib/silcutil/silcutil.h.
7411
7412 Sun Jun 24 12:19:52 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
7413
7414         * Moved the lib/silccore/silcsockconn.[ch] to the utility
7415           library as they clearly belong there.  As a plus side we
7416           can make the actual socket connection routines platform
7417           specific.
7418
7419           Added also new generic function silc_socket_read and
7420           silc_socket_write (that used to be silc_packet_[read/write].
7421           The implementation of these are platform specific.
7422
7423         * Added WIN32 specific routines of silc_socket_[read/write]
7424           to lib/silcutil/win32/silcwin32sockconn.c.
7425
7426 Sat Jun 23 16:01:00 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
7427
7428         * Added preliminary support for native WIN32 compilation under
7429           cygwin (using the -mno-cygwin option for GCC) to the
7430           ./configure.in.pre.  The --with-win32 now prepares the
7431           compilation for native WIN32.
7432
7433         * Rewrote the SILC Scheduler interface in the file
7434           lib/silcutil/silcschedule.h.  The scheduler is now context
7435           based and does not have anymore any global static scheduler.
7436           Moved the Unix scheduler to the lib/silcutil/unix/ directory
7437           and created lib/silcutil/win32 directory for WIN32 based
7438           scheduler.
7439
7440         * Added Unix specific network routines to the
7441           lib/silcutil/unix/silcunixnet.c and the old
7442           lib/silcutil/silcnet.c includes now only generic routines.
7443
7444           Added WIN32 specific network routines to the
7445           lib/silcutil/win32/silcwin32net.c.
7446
7447         * Added Unix specific utility functions from the
7448           lib/silcutil/silcutil.c to lib/silcutil/unix/silcunixutil.c.
7449
7450         * Added WIN32 SILC Scheduler to the file
7451           lib/silcutil/win32/silcwin32schedule.c. The code is of course
7452           untested.
7453
7454 Fri Jun 22 10:44:14 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
7455
7456         * Do not handle JOIN notify in the server if the target client
7457           is not registered (idata->registered == FALSE).  The affected
7458           file is silcd/packet_receive.c.
7459
7460         * Update the nickrec->founder in event_cumode in the Irssi SILC
7461           client.  Affected file irssi/src/silc/core/silc-channels.c.
7462
7463         * Fixed the CUMODE_CHANGE notify handling in the server when
7464           server and router are announcing their clients on channels.
7465           Now the mode changes are saved and notified correctly.  The
7466           affected file is /silcd/packet_receive.c.
7467
7468         * Fixed silc_idlit_replace_[server/client/channel]_id functions.
7469           They really did not replace the cache entry in the ID Cache.
7470           Now they do that.  Affected file silcd/idlist.c.
7471
7472         * Fixed the KICK notify handling in the Irssi SILC client to
7473           update the channel records so that the kicked client does not
7474           appear to be on the channel.  The affected file is
7475           irssi/src/silc/core/silc-channels.c.
7476
7477         * Always update the conn->current_channel when executing command
7478           on a channel.  Affected file irssi/src/silc/core/silc-servers.c.
7479
7480         * Fixed the KILL notify handling in Irssi SILC client to remove
7481           the killed client on all channels.
7482
7483 Thu Jun 21 17:10:08 CEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
7484
7485         * Fixed the silc_parse_command_line to remove extra spaces
7486           from the start and end of the arguments.  Affected file is
7487           lib/silcutil/silcutil.c.
7488
7489         * Cancel and free any active protocol in the function
7490           silc_server_close_connection.  Affected file silcd/server.c.
7491
7492         * Cancel and free any active protocol in the function
7493           silc_client_close_connction.  Affected file is
7494           lib/silcclient/client.c.
7495
7496         * Do not execute the KILL command for clients that are in
7497           history (ie. they are not in the network).  Affected file is
7498           silcd/command.c.
7499
7500         * Fixed KILL notify handling, client does not crash anymore.
7501           Affected file irssi/src/silc/core/silc-channels.c.
7502
7503         * Reduced the default packet buffer size from 2048 to 1024 in
7504           lib/silccore/silcpacket.c.
7505
7506         * Added SILC_SKE_STATUS_FREED SKE status type and a reference
7507           counter to the SKE context that is incresed when the SKE library
7508           performs async operation outside the library.  If the outside
7509           process frees the SKE context and FREED status will be set
7510           and the library will detect after the sync operation that the
7511           libary is freed.  The affected files are
7512           lib/silcske/silcske[_status].[ch].
7513
7514         * Resolve the client entry information in the function
7515           silc_client_channel_message to assure that NULL pointer is not
7516           passed as client entry to the application. */
7517
7518         * Fixed the task timeout calculation to assure that there is
7519           never negative timeouts.  The affected file is
7520           lib/silcutil/silcschedule.c.
7521
7522         * Fixed the channel user mode notification sending in server.
7523           It was sent point-to-point to the router (or to server by router)
7524           but it needs to be destined to a channel.  The routines now
7525           supports sending the channel user mode notifys to the channels
7526           when announcing clients and channels.  Affected files are
7527           silcd/server.c and silcd/packet_receive.c.
7528
7529         * Fixed the CHANNEL_CHANGE notify handling in the client libary.
7530           It did not actually replace the old channel entry in the cache.
7531           Affected file lib/silcclient/client_notify.c.
7532
7533 Tue Jun 19 22:10:36 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
7534
7535         * Fixed a possible crash in silc_packet_send_prepare.  It now
7536           assures always that there is enough space in the buffer and
7537           at the tail area of the buffer (for MAC).
7538
7539           Fixed the inbound buffer reallocation in silc_packet_read.
7540           It was old code and did not handle the reallocation correctly.
7541           Affected
7542
7543           The affected file is lib/silccore/silcpacket.c.
7544
7545         * Fixed buffer overflow in silc_parse_nickname in the file
7546           lib/silcutil/silcutil.c.
7547
7548 Tue Jun 19 13:40:09 CEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
7549
7550         * make install generates new server keys only if there is not
7551           keys already.
7552
7553 Mon Jun 18 18:49:07 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
7554
7555         * Set SILC_MESSAGE_FLAG_NOREPLY when sending the away message.
7556           Added check that if the NOREPLY is set then we will not send
7557           the away message.  This avoids infinite loop of away messages
7558           if both clients are away.  The affected file is
7559           lib/silcclient/client_prvmsg.c.
7560
7561         * Fixed client crash if /NICK was given without arguments.
7562           Affected file lib/silcclient/command.c.
7563
7564         * Server does not send the invite list in INVITE command back
7565           to the client if the list was not altered.  Added this notion
7566           to the protocol spec as well.  Affected file silcd/command.c.
7567
7568           Fixed possible crash in INVITE command by checking the
7569           value of silc_server_get_client_route command.
7570
7571         * Fixed the INVITE notify type handling.  The arguments are now
7572           taken in correct order and client does not crash.  The affected
7573           file is irssi/src/silc/core/silc-channels.c.
7574
7575           Removed the "Inviting xxx to channel" message from the
7576           client library away and let the application handle it.
7577           Affected file lib/silcclient/command.c.  Added that message
7578           to Irssi SILC client's message formats.
7579
7580         * Fixed CMODE command crash in client.  It now checks the
7581           amount of arguments correctly and does not crash.  The affected
7582           file is lib/silcclient/command.c.
7583
7584         * Do not create new channel automatically in silc_channels_join
7585           but check whether the channel by that name already exists.
7586           Affected file irssi/silc/core/silc-channels.c.
7587
7588         * Do not send the SERVER_SIGNOFF to router if the disconnected
7589           entity was the router.  Affected file silcd/server.c.
7590
7591         * Added the handling of the SERVER_SIGNOFF notify to the Irssi
7592           SILC client as it was missing from there.
7593
7594           Added the handling of the KICK notify to the Irssi SILC client
7595           as it was missing.  Added "you have been kicked" message to
7596           Irssi SILC client's message modules formats.
7597
7598           Added the handing of the KILL notify to the Irssi SILC client
7599           as it was missing.  Added the kill message module formats
7600           as well.
7601
7602           The affected file is irssi/src/silc/core/silc-channels.c.
7603
7604         * The router did not save the channel mode the server announced.
7605           Affected file silcd/packet_receive.c.
7606
7607         * Fixed a possible crash in INFO command in server.  If the
7608           server did not provide the server info it crashed.  Affected
7609           file silcd/command.c.
7610
7611 Sun Jun 17 15:26:05 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
7612
7613         * Fixed the GETKEY command in the server to check also the
7614           global list.  Otherwise the GETKEY would not work correctly
7615           in normal SILC server.  Affected file silcd/command.c.
7616
7617 Sat Jun 16 18:00:00 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
7618
7619         * Fixed GETKEY crash, it crashed if the command did not succseed.
7620
7621 Tue Jun 12 21:36:18 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
7622
7623         * Redefined the SILC MP API in lib/silcmath/silcmp.h. The API
7624           is now real and not just an macro interface to GMP.
7625
7626           Removed the entire GMP from the source tree and imported new
7627           NSS MPI library instead.  Reason for removing GMP is that it is
7628           extremely large and compiles extremely slow.  The NSS MPI
7629           is only a few files and compiles in less than 10 seconds.
7630           The speed is also about the same as GMP.  The MPI is imported
7631           to lib/silcmath/mpi.
7632
7633           If the system has GMP installed we will still use the GMP.
7634           If it is not then the NSS MPI will be compiled.
7635
7636 Mon Jun 11 18:07:24 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
7637
7638         * Merged a long nickname (127 characters long) crash bugfix from
7639           Irssi CVS tree.  Affected file irssi/src/core/misc.c.
7640
7641         * Merged a freed memory reference bugfix from Irssi CVS tree.
7642           Affected file irssi/src/core/commands.c.
7643
7644 Sun Jun 10 16:08:35 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
7645
7646         * Added the server's public key sving and verification to the
7647           server when performing the SKE.  This was missing and the
7648           remote server's (or router's) public key was accepted without
7649           checking whether we have it previously or trust it at all.
7650           Affected file silcd/protocol.c.
7651
7652 Sat Jun  9 20:17:30 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
7653
7654         * Check in the silc_server_timeout_remote if protocol is active
7655           and make sure that the protocol's final callback is called so
7656           that all memory if freed.  Affected file silcd/server.c.
7657
7658 Sat Jun  9 12:51:27 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
7659
7660         * silc_server_whois_send_reply crashed the server if the nickname
7661           was 127 characters long.  Affected file silcd/command.c.
7662
7663 Thu Jun  7 16:29:56 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
7664
7665         * Added sanity check to the silc_server_new_client. If the hostname
7666           is provided inside username then check that the provided hostname
7667           really is the same as the resolved one.  If the hostname was not
7668           resolved then check it from the public key.  Affected file is
7669           silcd/packet_receive.c.
7670
7671         * Fixed a fatal bug in Irssi SILC client. Do not send QUIT command
7672           if the server disconnected us and the connection is not valid
7673           anymore.  Affected file irssi/src/silc/core/silc-channels.c.
7674
7675         * Moved the silc_client_[chmode|chumode|chumode_char] away from
7676           the library to the lib/silcutil/silcutil.[ch].
7677
7678 Thu Jun  7 08:57:16 CEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
7679
7680         * Close log file after open.  Affected file
7681           lib/silcutil/silclog.c.
7682
7683         * Check whether sock == NULL in silc_client_send_packet and return
7684           if it is.  Affected file lib/silcclient/silcclient.c.
7685
7686         * Check rec->entry == NULL in the Irssi SILC Client before
7687           sending the channel message.  Affecte file is
7688           irssi/src/silc/core/silc-servers.c.
7689
7690 Tue Jun  5 08:08:21 CEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
7691
7692         * Merged a splitted window bugfix from Irssi CVS tree.  The
7693           affected file is irssi/src/fe-text/textbuffer-view.c.
7694
7695         * Fixed the ME, ACTION and NOTICE printing in Irssi Client.
7696           It did not print nickname.
7697
7698         * Improved the distributions system a bit.
7699
7700 Mon Jun  4 17:57:16 CEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
7701
7702         * Merged /WINDOW bugfix from irssi CVS tree. Affected file is
7703           irssi/src/fe-text/gui-window.c.
7704
7705         * Fixed a fatal bug in Irssi SILC client. Crashed if sent message
7706           to in-active server.  The affected file is
7707           irssi/src/silc/core/client_ops.c.
7708
7709         * Resolve the client in USERS command reply if the entry does
7710           not have username resolved.  The affected file is
7711           lib/silcclient/command_reply.c.  Also, changed the IDENTIFY
7712           command to WHOIS command to really resolve stuff.  The USERS
7713           is not used any more in any critical section so WHOIS can
7714           be used even though it might be slower than IDENTIFY.
7715
7716         * Changed the lib/silcutil/silchashtable.h header to ROBODoc
7717           format.
7718
7719 Sun Jun  3 14:21:32 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
7720
7721         * Changed the protocol API a bit more consistent in the
7722           lib/silccore/silcprotocol.[ch].
7723
7724         * Changed the following headers to ROBODoc format:
7725
7726                 lib/silccore/silcpayload.h
7727                 lib/silccore/silcprotocol.h
7728                 lib/silccore/silcsockconn.h
7729
7730           All core library headers are now formatted.
7731
7732 Sat Jun  2 10:45:09 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
7733
7734         * Fixed a bug in Irssi SILC client; do not show that you are
7735           server/router operator if you really are not.  Affected file is
7736           irssi/src/silc/core/client_ops.c.
7737
7738         * Renamed silc_command_free_payload to silc_command_payload_free.
7739           Affected file lib/silccore/silccommand.h
7740
7741         * Added silcmath.h to include the prototoypes of various routines
7742           in the lib/silcmath.  Removed the old modinv.h, mpbin.h and
7743           silcprimegen.h.
7744
7745         * Changed the following headers to ROBODoc format:
7746
7747                 lib/silccore/silcchannel.h
7748                 lib/silccore/silccommand.h
7749                 lib/silccore/silcid.h
7750                 lib/silccore/silcidcache.h
7751                 lib/silccore/silcmode.h
7752                 lib/silccore/silcnotify.h
7753                 lib/silccore/silcpacket.h
7754                 lib/silcmath/silcmath.h
7755
7756 Fri Jun  1 22:19:37 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
7757
7758         * Added checking to the server code not to start the server if
7759           ciphers and stuff are not configured properly.  Affected files
7760           silcd/serverconfig.[h] and silcd/server.c.
7761
7762         * Changed the layout of the header files of the public interfaces
7763           in the SILC libraries.  The new layout supports ROBODoc
7764           documentation tool (and some others) so that it is easy to create
7765           a library reference manual.  All the other headers and source
7766           code must still follow the CodingStyle document.  Also source
7767           code must not include these ROBODoc stuffs, only the headers.
7768           Furthermore, all public interface headers must now be named
7769           by using `silc' prefix, example: silcapi.h, silccipher.h.
7770           Some files were renamed due to this.  All the other headers
7771           must not be used as public interfaces.  I will update the
7772           CodingStyle document later.  Changed following headers, so far:
7773
7774                 lib/silcclient/silcapi.h
7775                 lib/silccore/silcauth.h
7776                 lib/silccore/silcprivate.h
7777                 lib/silccrypt/silcdh.h
7778
7779 Fri Jun  1 10:28:09 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
7780
7781         * Updated TODO.
7782
7783         * Removed silc_client_packet_send_flush from the client library
7784           as it is not needed.  Affected file lib/silcclient/client.[ch].
7785
7786         * Added printing of message of unresolved authentication method
7787           to the Irssi SILC client.  Added it to the module formats.
7788           Removed the same message from the client library.
7789
7790 Thu May 31 13:57:33 CEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
7791
7792         * Added new distribution feature, DISTLABEL.  Every distribution
7793           can define own preprocessor label that can be used in the
7794           source code.  For example: #ifdef SILC_DIST_CLIENT.  Affected
7795           file distributions, acconfig.h.pre and prepare.
7796
7797 Tue May 29 22:16:40 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
7798
7799         * Added Makefile.defines_int to include the actual definitions
7800           for Makefile.defines.in.  Tested the new distribution system,
7801           created distributions and tested installation.
7802
7803         * Added AWAY message printing to the Irssi SILC client.  Added
7804           the messages to the irssi/src/fe-common/silc/module-formats.[ch].
7805
7806         * Added SCONNECT command to call the SILC's CONNECT command.
7807           Cannot use CONNECT directly since Irssi uses that internally.
7808           Affected file irssi/src/silc/core/silc-servers.c.
7809
7810           Added ACTION local command.  It is same as ME command but takes
7811           the channel as mandatory argument.
7812
7813           Rewrote some of the Irssi's help files to suite for SILC
7814           protocol.
7815
7816 Mon May 28 19:05:22 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
7817
7818         * Added Makefile.defines[.in] that should for now on be included
7819           in all Makefile.am file in the source tree.  That file includes
7820           all common compilation definitions for SILC source tree.
7821
7822 Mon May 28 10:30:51 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
7823
7824         * Minor changes to the ./prepare script to change the package
7825           name according the distribution name to the configure.in.
7826
7827 Sun May 27 22:24:57 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
7828
7829         * Created new distribution system.  Added file `distributions'
7830           that defines all the distributions that can be created out of
7831           the SILC source tree.  The ./prepare script now reads that
7832           file to determine how to prepare the distributions.  The
7833           first argument to the ./prepare is the name of the distribution
7834           and second is the version of the distribution.  If given
7835           without arguments it creates the default (toolkit) distribution
7836           with the default version (defined in ./prepare).
7837
7838           All Makefile.am files that are subject to the distributions
7839           are now named as Makefile.am.pre.  These are ./Makefile.am
7840           and lib/Makefile.am.  Others may be changed later.
7841
7842 Sun May 27 15:57:17 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
7843
7844         * Added invite list, ban list, some key management and connection
7845           error message printing to module formats in the Irssi SILC client.
7846
7847         * Added new silc_client_set_away_message to set the away message
7848           that is back to the person who sent private message.  The
7849           affected file lib/silcclient/silcapi.h and the
7850           lib/silcclient/client_prvmsg.c.
7851
7852 Sun May 27 12:39:48 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
7853
7854         * Fixed the private message sending in the Irssi SILC client,
7855           added local command KEY to the Irssi SILC client.
7856
7857           Added key management and key agreement message formats to the
7858           irssi/src/fe-common/silc/module-formats.[ch].
7859
7860           Added USERS (alias WHO) printing, server/router operator
7861           indication and LIST command printing to the module formats.
7862
7863 Sat May 26 17:43:42 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
7864
7865         * Fixed channel joining notify handling, cumode notify handling
7866           from Irssi SILC client.
7867
7868         * Added SILC specific module-formats to the Irssi SILC client so
7869           that SILC specific message hilighting, colors etc is possible.
7870           Affected file irssi/src/fe-common/silc/module-formats.[ch].
7871
7872           Added channel mode, channel user mode, actions, notices,
7873           whois and whowas printing to the the module-formats.c.
7874
7875         * Fixed a bug in channel deletion in the server.  The channel
7876           is not left to the cache even if the channel founder auth mode
7877           is set when there are no users anymore on the channel.  Affected
7878           file silcd/server.c.
7879
7880         * The silc_net_localhost now resolves the entire hostname including
7881           the domain name.  Affected file lib/silcutil/silcnet.c.
7882
7883 Sat May 26 12:13:37 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
7884
7885         * Changed the ask_passphrase client operation to be ascynchronous.
7886           It has now a completion callback and a context that the
7887           application must call after it has got the passphrase from
7888           the user.  Affected files lib/silcclient/silcapi.h,
7889           lib/silcclient/protocol.c, lib/silcclient/command.c and
7890           silc/client_ops.c.
7891
7892           Added SilcAskPassphrase callback that the application calls
7893           to deliver the passphrase to the library.
7894
7895         * Changed the SKE protocol's SilcSKEVerifyCb to be asynchronous.
7896           The public key verification and especially a certificate
7897           verification is asynchronous procedure.
7898
7899           Added new SILC_SKE_STATUS_PENDING status to indicate the
7900           request is pending and a callback will be called to finalize
7901           the request.
7902
7903           Added also SILC_SKE_STATUS_PUBLIC_KEY_NOT_PROVIDED status to
7904           indicate that remote end did not send its public key (or
7905           certificate), even though we require it.  Added check for this
7906           condition in the SKE.  This was a security bug, now fixed.
7907
7908           Defined new SilcSKEVerifyCbCompletion callback that is called
7909           when the verification process is completed.
7910
7911           The affected files lib/silcske/silcske_status.h and
7912           lib/silcske/silcske.[ch].
7913
7914         * Changed the verify_public_key client operation to be async
7915           as well.  Defined SilcVerifyPublicKey callback that is used to
7916           indicate the success of the public key verification process.
7917
7918           Changed the server and client to use the new async client
7919           operations.
7920
7921         * Changed the Irssi SILC client's internal scheduler to be called
7922           twice as many times as it used to be.  As a result the client
7923           should be a bit faster now.  Affected file is
7924           irssi/src/silc/core/silc-core.c.
7925
7926         * Added support to Irssi SILC client of asynchronous public key
7927           verification and passphrase inquiry.  Affected file is
7928           irssi/src/silc/core/silc-core.c.
7929
7930 Fri May 25 14:38:38 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
7931
7932         * Do not say "You have left channel %s" in client library.
7933           Moved it to the application.  Affected files are
7934           lib/silcclient/command.c and silc/client_ops.c.
7935
7936         * Fixed silc_client_get_clients.  Command context was not
7937           duplicated and was freed memory in the callback.  Affected
7938           file lib/silcclient/idlist.c.
7939
7940         * Do not say "you are now talking..." on JOIN command in the
7941           client library.  The appliation must handle it.
7942
7943         * Do not say ".. changed topic to" in command reply in the
7944           client libary.  The application must handle it.
7945
7946         * Fixed TOPIC command sending in the client library.
7947
7948         * Fixed a memory leak in silc_client_command_free in the file
7949           lib/silcclient/command.c.
7950
7951 Thu May 24 19:08:55 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
7952
7953         * Imported a modified version of Irssi client to the source tree.
7954           The Irssi will be used to create a new client called
7955           Irssi SILC.  Imported to irssi/.
7956
7957           Added silc_core_init_finish function to the Irssi.  Affected
7958           file irssi/configure.in.
7959
7960           A lot changes in the Makefile.ams around the irssi tree.
7961
7962 Tue May 22 22:23:49 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
7963
7964         * Do not rehash if the new size is same as the old size of the
7965           hash table, in the silc_hash_table_rehash*.  The affected file
7966           lib/silcutil/silchashtable.c.
7967
7968         * Replaced hash_table_del_by_context calls from the server
7969           (when channel->user_list and client->channels) to the
7970           hash_table_del as it is sufficient and faster.
7971
7972 Tue May 22 17:27:16 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
7973
7974         * Added silc_hash_table_list, silc_hash_table_get and the
7975           SilcHashTableList structure to provide an alternative way to
7976           traverse the hash table.  The affected files are
7977           lib/silcutil/silchashtable.[ch].
7978
7979         * Changed the server's idlist routines to use the hash table
7980           routines to optimize the code.
7981
7982 Mon May 21 21:46:20 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
7983
7984         * Replaced the client entry's `channel' list and channel entry's
7985           `user_list' list to hash tables for optimized lookup.  Changed
7986           the code to use the hash table interface around the code.
7987           Affected file lib/silcd/idlist.[ch].
7988
7989         * Added `auto_rehash' boolean argument to the function
7990           silc_hash_table_alloc to indicate whether the hash table should
7991           auto-rehash when it thinks is appropriate time.  It will
7992           increase the hash table size if the there is twice as much
7993           entries in the table than the size of the table, and will
7994           decrease the size if there are twice as less entries than
7995           the size of the table.
7996
7997 Mon May 21 09:51:11 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
7998
7999         * Fixed silc_xxx_get_supported to not crash at some circumstances.
8000
8001 Sun May 20 13:45:58 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
8002
8003         * silc_idcache_purge_by_context deletes the entry now by context
8004           as it is supposed to do.  Affected file lib/silccore/idcache.c.
8005
8006         * Send the ERR_NO_SUCH_NICK in the WHOIS command reply if the
8007           client is not anymore valid (WHOWAS givens the info) and not
8008           the ERR_NO_SUCH_CLIENT_ID if the nickname still exists.
8009
8010 Sat May 19 16:30:03 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
8011
8012         * Removed the `data' and `data_len' arguments from the ID Cache
8013           interfaces and added `name' argument.  ID Cache does not handle
8014           anymore the binary data only a names associated with given ID.
8015
8016         * When hashing a Client ID with silc_hash_id the entire ID is
8017           not hashed anymore, instead only the hash of the Client ID is
8018           hashed.  This way we can access the Client ID from the cache
8019           with Client ID but with the hash of the ID (which is a hash of
8020           the nickname) as well without any difference in performance.
8021
8022           Added also silc_idcache_find_by_id_one_ext to do one on one
8023           searching when we have the actual ID.  Added also function
8024           silc_hash_client_id_compare.  The affected files are
8025           lib/silccore/idcache.[ch] and lib/silcutil/silcutil.[ch].
8026
8027         * When hashing the name associated with a ID it is always done
8028           in lowercase.  This way we can access the cache without worrying
8029           about case-sensitivity, even though, for example nicknames are
8030           case sensitive.
8031
8032         * Fixed a bug in server with channel message sending.  It put
8033           wrong ID type as destination ID.  The affected file
8034           silcd/packet_send.c.
8035
8036         * silc_idcache_del_by_context now deletes from all hash tables
8037           by context.  Affected file lib/silccore/idcache.c.
8038
8039 Fri May 18 17:42:00 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
8040
8041         * Changed the client library to use the new ID Cache interface.
8042           Changes around the source tree.
8043
8044         * Added silc_hash_table_rehash_ext to rehash with specific
8045           hash function.  Affected file lib/silcutil/silchashtable.[ch].
8046
8047         * Added silc_hash_string_compare to compare two strings in the
8048           hash table.  Affected file lib/silcutil/silcutil.[ch].
8049
8050 Fri May 18 11:18:45 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
8051
8052         * Added new function silc_idcache_del_by_context into the
8053           lib/silccore/idcache.[ch].
8054
8055         * Changed the server's ID list routines to use the new ID Cache
8056           interface.  Changes around the source tree.
8057
8058 Fri May 18 08:35:31 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
8059
8060         * Added silc_hash_table_del[_by_context]_ext functions in to the
8061           lib/silcutil/silchashtable.[ch].
8062
8063           Removed silc_hash_table_find_all* routines and added new
8064           silc_hash_table_find_foreach to replace them.
8065
8066           Added silc_hash_table_replace_ext function as extended
8067           replacing function.  Separated the simple hash table interface
8068           from the extended hash table interface in the file
8069           lib/silcutil/silchashtable.h.
8070
8071         * Fixed minor bugs and changed it to use some of the new
8072           hash table functions in lib/silccore/idcache.c
8073
8074 Thu May 17 18:15:12 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
8075
8076         * Added new function silc_hash_table_find_all to return all keys
8077           in the hash table by the specified key.  As the hash table is
8078           collision resistant it also makes it possible to have several
8079           duplicate keys in the hash table.  This function may be used to
8080           find all of the keys from the hash.
8081
8082           Added user_context arguments to the SilcHashFunction,
8083           SilcHashCompare and SilcHashDestructor to deliver user specified
8084           context.
8085
8086           Added new fuctions silc_hash_table_find[_all]_ext to do
8087           extended lookup with specified hash and compare functions and
8088           specified user contexts.
8089
8090           Added new function silc_hash_table_add_ext to add the key
8091           with specified hash function and user context.
8092
8093           Added new function silc_hash_table_foreach to traverse all
8094           entrys in the hash table.  Added SilcHashForeach callback
8095           function.
8096
8097           Added new function silc_hash_table_del_by_context to delete
8098           the entry only if the context associated with the key matches.
8099
8100           Affected files are lib/silcutil/silchashtable.[ch].
8101
8102         * Removed silc_hash_[server/client/channel]_id and added just
8103           silc_hash_id to the lib/silcutil/silcutil.[ch].  Added also
8104           silc_hash_id_compare to compare two ID's using as the hash table
8105           comparison function.  Added also silc_hash_data to hash
8106           binary data and silc_hash_data_compare to compare it.
8107
8108         * Removed silc_idlist_find_client_by_hash as it is not needed
8109           anymore.  Affected file silcd/idlist.[ch].
8110
8111         * Rewrote the entire ID Cache system (in lib/silccore/idcache.[ch])
8112           to use internally the SilcHashTable.  The new ID Cache is a lot
8113           faster than the old one.  Some of the ID Cache interface was also
8114           rewritten and obsolete and stupid functions were removed.
8115
8116 Wed May 16 23:03:30 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
8117
8118         * Added entry_count field to the SilcHashTable to keep the number
8119           of the entries in the table.  Implemented the function
8120           silc_hash_table_rehash.  Added new function
8121           silc_hash_table_count.  Affected file lib/silcutil/silchashtable.c.
8122
8123           Fixed a minor bug in silc_hash_table_free.
8124
8125         * Added silc_hash_string, silc_hash_uint, silc_hash_ptr,
8126           silc_hash_client_id, silc_hash_server_id and silc_hash_channel_id
8127           into the lib/silcutil/silcutil.[ch].
8128
8129 Wed May 16 20:02:47 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
8130
8131         * Implemented a collision resistant hash table into the
8132           lib/silcutil/silchashtable[ch].  See the header and the source
8133           for the SilcHashTable API.
8134
8135 Tue May 15 22:05:46 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
8136
8137         * Merged dotconf version 1.0.2 into lib/dotconf.
8138
8139 Sun May 13 19:32:09 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
8140
8141         * Do not compile anything in lib/silcsim/* if the SIM support
8142           is not enabled.  The tree should now compile without problems
8143           under cygwin.
8144
8145 Thu May 10 22:49:51 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
8146
8147         * Compiled the SILC under cygwin.  Compiled and tested briefly
8148           without problems.  More tests needed.  The SIMs didn't compile
8149           though.
8150
8151         * Added various #ifdef HAVE_* stuff to lib/silccrypt/silrng.c.
8152
8153         * Fixed possible crash in silc_get_username in the
8154           lib/silcutil/silcutil.c.
8155
8156 Tue May  8 09:04:03 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
8157
8158         * Fixed a va_arg in silc/client_ops.c.
8159
8160         * Oops, RC5 routines were named AES and caused some problems
8161           when not using SIM's.  Affected file lib/silccrypt/rc5.c.
8162
8163 Sun May  6 13:59:48 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
8164
8165         * Added new SilcIDIP structure into the lib/silccore/id.h and
8166           replaced the old `ip' fields from all SILC ID's to that type.
8167           This is a step towards IPv6 support.
8168
8169           The silc_id_get_len takes now the ID as an extra argument.
8170           The silc_id_id2str, silc_id_str2id and silc_id_dup now supports
8171           both IPv4 and IPv6 based ID's.
8172
8173           The affected files are lib/silccore/id.[ch] and other files
8174           around the tree using these routines.
8175
8176         * Removed the ID length arguments in server from various
8177           silc_server_send_notify_* routines -> they are not needed
8178           anymore.
8179
8180 Sat May  5 13:56:33 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
8181
8182         * Fixed memory leak in silc_encode_pem_file in the file
8183           lib/silcutil/silcutil.c.
8184
8185 Thu May  3 21:23:50 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
8186
8187         * Check minor version as well in the SKE.  Affected files are
8188           silcd/protocol.c and lib/silcclient/protocol.c.
8189
8190         * Added --identifier option to the server so that an identifier
8191           can be when creating the public key for the server.  Affected
8192           file is silcd/silcd.c.
8193
8194         * Fixed minor decoding bug in silc_pkcs_decode_identifier in
8195           lib/silccrypt/silcpkcs.c.
8196
8197 Wed May  2 20:50:49 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
8198
8199         * Register default ciphers and stuff when using -C option with
8200           the server.  Affected file sildc/silcd.c.
8201
8202         * Put back the servers public key filename format, it is better
8203           than the new one.  For now, the client keys are saved with the
8204           new filename format.  The affected file silc/client_ops.c.
8205
8206         * Implemented the Cipher API for the rest of the ciphers that
8207           did not implement it or implemented it the wrong way.
8208
8209 Wed May  2 13:31:26 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
8210
8211         * Register default ciphers and stuff when using the -S option
8212           in the client.  Affected file silc/silc.c.  Same also when
8213           creating new key pair with -C option.
8214
8215 Tue May  1 14:18:13 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
8216
8217         * Fixed the silc_verify_public_key client operation function to
8218           save the public keys differently.  The fingerprint is now
8219           used as filename and not the hostname.  This way also the
8220           client keys are saved uniquely and not with hostnames.  The
8221           affected file is silc/client_ops.c.
8222
8223         * Trimmed the silc_hash_fingerprint function to remove extra
8224           whitespaces from the end of the fingerprint.  The affected
8225           file is lib/silccrypt/silchash.c.
8226
8227         * Updated TODO.
8228
8229         * Added silc_cipher_register_default function to register all
8230           default ciphers.  It can be used when configuration files
8231           does not exist and the application does not want any specific
8232           ciphers in any specific order.
8233
8234           The SilcDList is now used as silc_cipher_list dynamically
8235           allocated cipher list.  Removed the static list all together
8236           and now all ciphers must be allocated to the dynamic list.
8237           The silc_cipher_alloc routine was changed to check only the
8238           dynamic list.
8239
8240           All silc_cipher_* routines that used to return int returns
8241           now bool.
8242
8243           The affected files lib/silccrypt/silccrypt.[ch].
8244
8245         * The same thing was done to silc_hash_* as for silc_cipher_*
8246           routines.  Affected files lib/silccrypt/silchash.[ch].
8247
8248         * The same thing was done to silc_pkcs_* as for silc_cipher_*
8249           routines.  Affected files lib/silccrypt/silcpkcs.[ch].
8250           Added also silc_pkcs_[un]register[_default] functions.
8251           Removed the data_context from the PKCS API.
8252
8253         * Added silc_hmac_register_default function to register default
8254           hmacs.  Affected files lib/silccrypt/silchmac.[ch].  Added also
8255           SILC_ALL_HMACS macro that can be used with silc_hmac_unregister
8256           to unregister all hmacs at once.
8257
8258         * Register the default ciphers, hash functions, PKCSs and HMACs
8259           if client's configuration file does not exist.  The affected
8260           file silc/silc.c.
8261
8262         * The client did not load the hash functions from the SIM
8263           modules at all.  Added support for this.  Affected file is
8264           silc/clientconfig.c.
8265
8266         * When decoding public key with silc_pkcs_public_key_decode, check
8267           the supported algorithm only if PKCS are registered.  Affected
8268           file lib/silccrypt/silcpkcs.c.  The same was done with the
8269           silc_pkcs_private_key_decode.
8270
8271         * Fixed the SILC List routines to keep the list always in order.
8272           It used to change the list's order when traversing the list but
8273           not it preserves the order.  Affected file lib/trq/silclist.h.
8274
8275 Mon Apr 30 17:29:03 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
8276
8277         * Added the client library to use the SilcSocketConnection's
8278           reference counter (by silc_socket_dup) to prevent the bug that
8279           the socket object may be freed underneath async operation.
8280
8281         * The name resolv library checking fixes in the configure.in.pre.
8282           The patch by salo.
8283
8284         * Created new version of the protocol drafts for future
8285           development. The -03 drafts are the ones that will be changed
8286           in the trunk now and the -02 will remain as they are.
8287
8288         * Send list of CUMODE notifys to the router when announcing
8289           the channel users to the router.  Affected file silcd/server.c.
8290           If the router receiving channel founder CUMODE for a channel
8291           that already has channel founder it will send CUMODE notify
8292           to the sender to remove the channel founder rights from the
8293           announced client.  Affected file silcd/packet_receive.c.
8294
8295         * The CUMODE notify may now use Server ID as well as the entity
8296           who changes the mode.  Updated protocool specs.
8297
8298         * Updated INSTALL and README files.
8299
8300 Sun Apr 29 23:17:50 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
8301
8302         * New web pages in the http://silc.pspt.fi.  The pages was
8303           designed by salo.
8304
8305         * Updated CREDITS.
8306
8307 Sun Apr 29 13:33:41 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
8308
8309         * Implemented the [DenyConnectin] config section in the server.
8310           Added silc_server_config_denied_conn to check whether incoming
8311           connection is denied.  Affected file silcd/serverconfig.[ch].
8312
8313         * Do not check the ports when checking the incoming configuration
8314           data if the port is 0, meaning any.  Affected file is
8315           silcd/serverconfig.c.
8316
8317 Fri Apr 20 18:58:43 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
8318
8319         * Fixed buffer overflow in silc_string_compare in the file
8320           lib/silcutil/silcutil.c.
8321
8322         * Fixed double free in silc_server_command_leave in the file
8323           silcd/command.c.
8324
8325 Fri Apr 20 14:00:11 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
8326
8327         * Fixed the version checking in the server.  Affected file is
8328           silcd/protocol.c.
8329
8330 Thu Apr 19 19:52:46 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
8331
8332         * Fixed the configuration data fetching when accepting new
8333           connections in the server.  Affected file silcd/server.c.
8334
8335 Thu Apr 19 11:40:20 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
8336
8337         * Added `sender_entry' argument to the function
8338           silc_server_packet_relay_to_channel so that we can check
8339           whether some destination actually belongs to the same route
8340           the sender belongs (ie, we must not resend the packet to the
8341           sender).  Affected file silcd/packet_send.[ch].
8342
8343         * Added `servername' field to the SilcClientEntry in the server
8344           to hold the name of the server where client is from.  Affected
8345           file is silcd/idlist.h.
8346
8347 Wed Apr 18 22:19:03 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
8348
8349         * Moved the channel message encrypting in the router betwen
8350           router connections from silc_server_channel_message to the
8351           silc_server_packet_relay_to_channel since we want to check
8352           whether we have anybody channel before encrypting anything.
8353           Affected files silcd/packet_[receive/send].c.
8354
8355 Tue Apr 17 21:18:19 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
8356
8357         * Fixed the [AdminConnection] server config section to support
8358           multiple entries.  Affected file silcd/serverconfig.c.
8359
8360         * Added support into the server to check the validity of the
8361           incoming connection before executing any KE or authentication
8362           protocols.
8363
8364         * The connection configuration is now saved to the KE and
8365           connection auth protocol contexts and not fetched anymore in
8366           the protocol.  Affected files silcd/server.c, silcd/protocol.[ch].
8367
8368         * The local hosts listenning address and port is also resolved
8369           now when starting the server.  We want to have the socket object
8370           to include the real address and port for the listener.  Added
8371           new function silc_net_check_local_by_sock into the files
8372           lib/silcutil/silcnet.[ch].
8373
8374         * Fixed a broadcast bug in server -> do not broadcast if we
8375           are standalone.
8376
8377         * Fixed a routing bug.  Do not route broadcast packets ever.
8378           Broadcast packets must be processed always and not routed since
8379           they may be destined to some other host than yourself and thus
8380           would get routed without no good reason.  Affected file is
8381           silcd/server.c.
8382
8383         * Added function silc_server_config_is_primary_route to check
8384           whether primary router connection has been configured (a router
8385           configuration that we are initiating).  If there is not, we
8386           will assume that there is only two routers in the SILC network
8387           and we will use the incoming router connection as our primary
8388           route.  Affected files silcd/serverconfig.[ch], silcd/server.c.
8389
8390         * Changed the order of the broadcasting.  Broadcast _after_ the
8391           packet has been processed not before.  Affected file is
8392           silcd/server.c.
8393
8394         * Fixed a [ClientConnection] parsing bug.  The port was never
8395           parsed correctly thus resulting to port 0.  Affected file
8396           silcd/serverconfig.c.
8397
8398         * Fixed silc_server_send_notify_args -> it ignored the `broadcast'
8399           argument and did not set the broadcast packet flag.  Affected
8400           file silcd/packet_send.c.  Fixed same bug in the function
8401           silc_server_send_notify as well.
8402
8403         * If we receive NEW_ID packet for our own ID in the server, ignore
8404           the packet.
8405
8406 Mon Apr 16 12:10:33 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
8407
8408         * Updated TODO.
8409
8410         * Removed the nickname from the Private Message Payload.
8411           Updated the code and the protocol specs.
8412
8413         * Updated protocol specs for submitting to the IETF.
8414
8415         * Tweaked the Random Number Generator a bit.  Affected file
8416           lib/silccrypt/silcrng.c.  Exported a new function
8417           silc_rng_[global]_add_noise which can be used to add more
8418           noise to the RNG.
8419
8420 Sat Apr 14 16:21:32 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
8421
8422         * Do not parse packets with different timeout when protocol
8423           is active -> may cause problem with rekey.  Affected file
8424           silcd/server.c.
8425
8426         * When server receives signoff notify it must not create
8427           new channel key if the client is on any channels since the
8428           sender of the signoff notify will create it.
8429
8430 Fri Apr 13 17:12:46 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
8431
8432         * Added printing of error messages during SKE protocol from the
8433           failure packet sent by server during SKE.  Affected file
8434           silc/client_ops.c.
8435
8436         * Removed the client's failure_callback handling with timeout
8437           and handle it immediately when received.
8438
8439         * The SKE library returned wrong type in SUCCESS and FAILURE
8440           packets.  They must be 32 bit MSB not 16 bit MSB.
8441
8442 Fri Apr 13 00:09:08 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
8443
8444         * Ok, rewrote the logic of the re-key and now it seems to work.
8445           I tested it on high traffic with frequent re-keys without
8446           problems.  Added hmac_receive (and renamed hmac to hmac_send)
8447           in SilcClientConnection in lib/silcclient/client.h and
8448           in SilcIDListData in silcd/idlist.h.  Also, removed the
8449           SilcPacketParserContext's cipher and hmac fields as they are
8450           not needed anymore and actually caused some problems when
8451           the ciphers and hmac's changed underneath the packet parser.
8452
8453 Thu Apr 12 14:42:51 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
8454
8455         * If re-key protocol is active then process the incoming packets
8456           synchronously since we must assure that icoming packets encrypted
8457           with the old key is processed before the new keys is set to
8458           use.  This is true other packets than for REKEY packets.
8459           Affected file silcd/server.c.  The same was done to client library
8460           as well, affected file lib/silcclient/client.c.
8461
8462 Thu Apr 12 12:01:52 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
8463
8464         * Fixed bug in client and server to accept the force send if
8465           the packet is send from silc_[server/client]_packet_process
8466           function.  Otherwise the packets are never delivered, oops.
8467
8468 Wed Apr 11 22:10:15 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
8469
8470         * Disable force sending of packets when REKEY protocol is active.
8471           We must assure that no packet is sent directly when rekey is
8472           performed.  All packets must be sent through packet queue.
8473           Added macro SILC_SERVER_IS_REKEY to silcd/server.h and
8474           SILC_CLIENT_IS_REKEY to lib/silcclient/client.h.  Affected
8475           function is silc_[server/client]_packet_send_real to check
8476           the situation.
8477
8478         * Replaced the SIM paths from example config files to
8479           /usr/local/modules.  Also, make install creates now
8480           /usr/local/silc/logs directory to hold all the SILC server
8481           logs.
8482
8483 Wed Apr 11 16:59:59 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
8484
8485         * Made the configure.in.pre work on Solaris.  Patch by salo.
8486
8487         * Made all ciphers compatible with non-x86 machines.  Defined
8488           CBC mode macros into lib/silccrypt/ciphers_def.h.
8489
8490 Tue Apr 10 20:32:44 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
8491
8492         * Fixed the make install.
8493
8494 Tue Apr 10 16:20:34 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
8495
8496         * When MAC computation fails the silc_packet_decrypt returned 0
8497           even though it was supposed to return -1.  Fixed this.  The
8498           affected file is lib/silccore/silcpacket.c.
8499
8500         * Do not replace the config files in /etc/silc (in make install)
8501           if they already exist.  Affected file ./Makefile.am.
8502
8503         * Do not send re-key packets immediately but through packet queue.
8504           Affected file silcd/protocol.c and lib/silcclient/protocol.c.
8505
8506         * Changed silc_net_check_host_by_sock to return FALSE if the
8507           IP/DNS could not be resolved.  Though, it returns the IP address
8508           now even if it could not resolve it (but returns also FALSE).
8509           Affected file lib/silcutil/silcnet.[ch].
8510
8511 Mon Apr  9 21:54:44 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
8512
8513         * Added silc_pkcs_decode_identifier to decode the public key's
8514           identifier.  Affected file lib/silccrypt/silpkcs.[ch].
8515           Added also silc_pkcs_free_identifier.  Added also new context
8516           SilcPublicKeyIdentifier.
8517
8518         * Added -S option to the silc client.  It is used to dump the
8519           contents of the specified public key file.
8520
8521         * Changed the PKCS api to return the public key length when
8522           setting the public key.
8523
8524         * Fixed a fatal bug in the public and private key file loading.
8525           Affected file lib/silccrypt/silcpkcs.c.
8526
8527         * Execute the packet parsing for client with zero (0) timeout
8528           if the protocol is active.  Affected file silcd/server.c.
8529
8530 Sun Apr  8 19:30:56 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
8531
8532         * Made the key generation options to the silcd program.  Added
8533           -C option, equivalent to client's option.
8534
8535         * Added new [ServerKeys] config section to the server.  It
8536           configures the server's public and private key.
8537
8538         * Defined generic Public Key Payload into the protocol
8539           specification to send specific type of public keys and
8540           certificates.
8541
8542         * Defined new command SILC_COMMAND_GETKEY to fetch a client's
8543           public key or certificate.
8544
8545         * Implemented the GETKEY command to the server and to the
8546           client library and on user interface.
8547
8548 Sun Apr  8 01:37:21 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
8549
8550         * Made preliminary `make install' work.
8551
8552 Thu Apr  5 17:42:30 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
8553
8554         * Added SilcServerRekey context into silcd/idlist.h.
8555
8556         * Added the PFS support as defined in the specification to the
8557           SKE protocol.  Affected files lib/silcske/*.c.
8558
8559         * Added `ske_group' field to the SilcServerRekey context to hold
8560           the number of the SKE group that is used with PFS in re-key.
8561           Affected file silcd/idlist.h.
8562
8563         * Added PFS re-key support to the server.  Affected file is
8564           silcd/protocol.c.
8565
8566         * Added silc_protocol_cancel to cancel execution of the next
8567           state of the protocol.  Affected file is
8568           lib/silccore/silcprotocol.[ch].
8569
8570         * Added the re-key support with and without PFS to the client
8571           library.  Re-key is performed once in an hour, by default.
8572
8573           Added new protocol type SILC_PROTOCOL_CLIENT_REKEY.
8574           Added silc_client_rekey_callback and silc_client_rekey_final.
8575           Affected files are lib/silcclient/protocol.[ch] and
8576           lib/silcclient/client.[ch].
8577
8578         * Removed the `hmac_key' and `hmac_key_len' fields from the
8579           SilcClientConnection structure; not needed.  Affected file is
8580           lib/silcclient/client.h.
8581
8582         * Updated TODO.
8583
8584 Wed Apr  4 16:32:31 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
8585
8586         * Do not ask whether user wants to use the negotiated private key
8587           for private messages, just use it.  Affected file is
8588           silc/local_command.c.
8589
8590         * Added `send_enc_key' and `enc_key_len' fields to the
8591           SilcIDListData structure since they are needed in the re-key
8592           phase.  Affected file is silcd/idlist.[ch].
8593
8594         * Implemented the simple re-key protocol into the server.
8595           Affected files silcd/server.c and silcd/protocol.[ch].  The
8596           re-key will be performed once in an hour, by default.
8597
8598           Added new protocol type SILC_PROTOCOL_SERVER_REKEY.
8599           Added silc_server_rekey, silc_server_rekey_callback and
8600           silc_server_rekey_final.
8601
8602         * Removed Tunneled flag from the protocol.  Updated the code
8603           and the specifications.
8604
8605         * Adde `pfs' field to the SilcIDListData to indicate whether
8606           the PFS is to be performed in the re-key.  Affected file is
8607           silcd/idlist.h.
8608
8609 Tue Apr  3 21:52:42 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
8610
8611         * Defined uint8, int8, uint16, int16, uint32, int32, uint64 and
8612           int64 of at least the xintXX size.  If void * is less that 4
8613           bytes uint32 * will be used.  Defined bool as boolean.
8614
8615         * Changed _ALL_ unsigned long and unsigned int to uint32,
8616           unsgined short to uint16 in the source tree.
8617
8618         * Fixed a fatal bug in silc_server_remove_clients_by_server.  Do
8619           not handle clients that has entry->data.registered == FALSE.
8620           They are not in the network anymore.  Affected file is
8621           silcd/server.c.
8622
8623 Tue Apr  3 16:39:19 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
8624
8625         * Implemented the sending of the SERVER_SIGNOFF notify in the
8626           server.  Affected file is silcd/server.c.
8627
8628         * Added silc_server_send_notify_args into silcd/packet_send.[ch].
8629           Added also silc_notify_payload_encode_args into the
8630           lib/silccore/silcnotify.[ch].
8631
8632         * Implemented ther SERVER_SIGNOFF notify handling in the server.
8633           Affected file silcd/packet_receive.c.
8634
8635         * Implemented the SERVER_SIGNOFF notify handling in the client
8636           library.  Affected file lib/silcclient/client_notify.c.  Also,
8637           implemnted the printing of the SERVER_SIGNOFF info to the
8638           application.  Affected file silc/client_ops.c.
8639
8640         * The silc_idlist_del_server now returns TRUE or FALSE to indicate
8641           if the deleting was successful.  Affected file silcd/idlist.[ch].
8642
8643         * Added support for public key authentication in the connection
8644           authentication protocol in the client library.  Affected file
8645           lib/silcclient/protocol.c.
8646
8647         * Changed the server's silc_idlist_get_clients_by_* interface
8648           to support already allocated array so that new entries may be
8649           added to pre-allocated array.  Affected file silcd/idlist.[ch].
8650           This fixes some bugs with WHOIS, WHOWAS and IDENTIFY commands
8651           and command replies.
8652
8653         * All command reply functions in the server now calls the
8654           pending command callback even if error occured.  This way the
8655           error will be delivered to the client as well.  Affected files
8656           silcd/command.c and silcd/command_reply.c.
8657
8658         * Fixed INFO command to return local server's info if no server
8659           was provided.  Affected file lib/silcclient/command.c.
8660
8661         * Removed RESTART command for good.  Updated the code and the
8662           protocol specs.
8663
8664         * Rewrote parts of the task system.  It is a bit simpler now.
8665           Removed unsued task priorities. The affected files are
8666           lib/silcutil/silctask.[ch].
8667
8668 Mon Apr  2 20:02:33 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
8669
8670         * Moved the USERS printing from the library to the application.
8671           Affected files lib/silcclient/command.c and silc/client_ops.c.
8672
8673 Mon Apr  2 13:13:23 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
8674
8675         * Updated TODO.
8676
8677         * Added channel key re-key support.  The re-key is perfomed
8678           only by the router and is done once in an hour.  Added `rekey'
8679           field to the SilcChannelEntry in the server.  Affected files
8680           silcd/server.c and silcd/idlist.h.
8681
8682         * Added silc_task_unregister_by_context into the file
8683           lib/silcutil/silctask.[ch].
8684
8685 Sun Apr  1 19:49:34 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
8686
8687         * Added SILC_UMODE_GONE mode to indicate when the client is not
8688           present in the SILC network.  Added also support to the local
8689           command AWAY that will set this mode.  Added support of showing
8690           "xxx is gone" in WHOIS command.  The USERS command shows the
8691           gone status as well.
8692
8693         * Fixed setting server and router operator privileges in the
8694           server's UMODE command.  Affected file silcd/command.c.
8695
8696         * Merged the SKE KE1 and KE2 payloads into one payload.  The
8697           new KE payload is equivalent to the old KE2 payload.
8698
8699           Cleaned up the SKE Start Payload parsing.  It now uses the
8700           simple buffer unformatting to do the parsing.  A lot faster
8701           now.
8702
8703           Added new Mutual Authentication flag (SILC_SKE_SP_FLAG_MUTUAL)
8704           to the SKE that is used to indicate whether both of the SKE
8705           parties should perform authentication.  By default only the
8706           responder performs authentication.  By setting this flag also
8707           the initiator must do authentication.  By default it is unset
8708           since in normal SKE case, client to server connection, only
8709           the responder should do authentication.  When doing SKE between
8710           two clients both should perform authentication.  Updated the
8711           code and the protocol specs.
8712
8713         * A little fix to IDENTIFY command in the server.  Search the
8714           client first by hash not nickname.  Affected file is
8715           silcd/command.c.
8716
8717         * Fixed the silc_client_close_connection to support closing
8718           the client to client connections wihtout deleting too much
8719           data.  Affected file lib/silcclient/client.c.
8720
8721         * Fixed a fatal bug in server and client; if KE1 or KE2 packets
8722           are received if protocol used to be active but is not anymore
8723           the application would crash due to NULL pointer dereference.
8724           Affected files silcd/server.c and lib/silcclient/client.c.
8725
8726         * Added `hash' field to the SilcClientConnection to include
8727           the hash function negotiated in the SKE protocol.
8728
8729         * Added new channel mode SILC_CMODE_FOUNDER_AUTH that is used
8730           to set the channel founder authentication data.  A client can
8731           claim the founder rights later by providing the authentication
8732           data to the CUMODE command using SILC_CUMODE_FOUNDER mode.
8733           This way the channel founder can regain the channel founder
8734           privileges even it is left the channel.  This works only on
8735           local server and the client must be connected to the same
8736           server to be able to regain the founder rights.  Updated the
8737           protocol specs accordingly.
8738
8739           Added support to the CMODE command in the client to set the
8740           founder auth data.  Read the README to see how to set it.
8741
8742           Added support to the CUMODE command to claim the founder
8743           rights.  Read the README to see how to do it.
8744
8745           Added support for the founder authentication to the Channel
8746           Entry in the server.  Affected file silcd/idlist.h.
8747
8748           Added support for the SILC_CMODE_FOUNDER_AUTH mode in the
8749           server's CMODE command.  Affected file silcd/command.c.
8750
8751         * Added the following new functions into lib/silccore/silcauth.[ch]:
8752           silc_auth_get_method and silc_auth_get_data.
8753
8754         * The server now saves the remote hosts public key to the
8755           SilcIDListData pointer.  Affected file silcd/protocol.c.
8756
8757         * The normal server now does not remove the channel entry from
8758           the cache if the founder authentication data is set.  It used
8759           to remove it if the founder was the last one on the channel on
8760           the server and left the channel.  The auth data is saved and
8761           if the channel is re-joined later the old entry is used with
8762           the old auth data.  Affected files silcd/command_reply.c and
8763           silcd/server.c.
8764
8765         * Removed the `pkcs' field from the SilcIDListData structure
8766           in the server; it is not used.  Affected file silcd/idlist.h.
8767
8768 Sat Mar 31 15:38:36 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
8769
8770         * Fixed packet processing on slow links.  Partial packets were
8771           never re-processed because the incoming data buffer was cleared
8772           by the application.  Application must not directly clear the
8773           sock->inbuf, the packet processing routines handle it.  Fixed
8774           this in client library and in server.
8775
8776 Fri Mar 30 16:35:27 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
8777
8778         * Fixed the WHOIS and IDENTIFY send reply function to really
8779           check whether to send list or just one entry.  Affected file
8780           silcd/command.c.
8781
8782         * Cleaned up the LEAVE command's channel key distribution.  The
8783           affected file silcd/command.c.
8784
8785         * Changed CMODE_CHANGE's <Client ID> to <ID Payload> as server
8786           can enforce the channel mode as well.  In that case the ID
8787           includes the ID of the server.  The code now enforces the
8788           mode change if the router have different mode than the server.
8789
8790         * The notify client operation with CMODE_CHANGE notify can now
8791           return NULL client_entry pointer if the CMODE was not changed
8792           by client.  Application must check for this.
8793
8794         * Added <Server ID> argument to INFO command to support server
8795           info fetching by Server ID.
8796
8797         * Added silc_server_announce_get_channel_users to get assembled
8798           packets of channel users of the specified channel.  Affected
8799           file silcd/server.[ch].
8800
8801         * Fixed bug in CHANNEL_CHANGE notify in the server.  The new ID
8802           was freed underneath the ID Cache.
8803
8804         * Re-announce clients when the server received CHANNEL_CHANGE
8805           notify from the router.  Affected file silcd/packet_send.c.
8806
8807 Thu Mar 29 19:10:28 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
8808
8809         * Fixed a fatal bug when client does /join 1 2 3 4 5 6 the server
8810           crashed since it did not handle the fact that there is no cipher
8811           called "3" and didn't check the error condition.  Now fixed.
8812
8813         * Added SILC_MESSAGE_FLAG_REQUEST message flag as generic request
8814           flag.  It can be used to send message requests.
8815
8816 Thu Mar 29 12:26:25 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
8817
8818         * Implemented the RESTART command in the client.
8819
8820         * Added SILC_MESSAGE_FLAG_NOTICE message flag for informational
8821           notice type messages.  Added notice printing to the user
8822           interface.
8823
8824         * The channel keys are not re-generated if the channel's mode
8825           is PRIVKEY, ie private key on the channel exists.  Affected
8826           files silcd/server.c and silcd/command.c.
8827
8828         * Fixed a little bug in channel message delivery when channel
8829           private keys are set in the server.  Affected file is
8830           silcd/packet_send.c.
8831
8832         * Changed the setting on channel->on_channel = TRUE from the
8833           silc_client_save_channel_key to the JOIN command reply.  The
8834           key payload is not received if the private channel key is set.
8835           Affected file lib/silcclient/command_reply.c and the
8836           lib/silcclient/client_channel.c.
8837
8838         * When the CMODE_CHANGE notify is sent and the channel private
8839           key mode is removed the channel key must be re-generated in
8840           other cells as well.  Added this support for the router in the
8841           silcd/packet_receive.c.
8842
8843         * Added new local command NOTICE to send notice message on
8844           channel.  Affected file silc/local_command.[ch].
8845
8846 Wed Mar 28 23:55:54 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
8847
8848         * Added new local command ME to the client.  It is used to send
8849           message to a channel with SILC_MESSAGE_FLAG_ACTION to indicate
8850           some action.  Affected file silc/local_command.[ch].
8851
8852         * Changed channel_message and private_message client operations
8853           to deliver the message flags to the application.  Added also
8854           the `flags' arguments to the silc_client_send_channel_message
8855           and silc_client_send_private_message functions.  Affected file
8856           silcapi.h.
8857
8858 Wed Mar 28 20:50:47 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
8859
8860         * Redefined the Private Message Payload to support private message
8861           keys and to support the new private message flags.  Updated
8862           the protocol specs.  Flags makes it possible to have for example
8863           CTCP style messages.
8864
8865         * Added new type SilcPrivateMessagePayload and defined an API
8866           for it in the lib/silcclient/silcprivate.[ch].
8867
8868         * Tested private message private keys successfully.  Tested the
8869           private message key set, unset and list commands with the new
8870           KEY command.
8871
8872         * Redefined the Channel Message Payload to include the channel
8873           message flags (equal with private message flags) to support
8874           for example CTCP style messages.
8875
8876         * Defined some of the message (for channel and private message)
8877           flags.  Updated the protocol specs and added the flags to the
8878           lib/silccore/silcchannel.h.  The type is SilcMessageFlags.
8879
8880 Wed Mar 28 15:52:36 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
8881
8882         * Added SilcKeyAgreementStatus type to the key agreement routines
8883           to indicate the current status and error if one occured.
8884           The status types are defined in the lib/silcclient/silcapi.h.
8885
8886         * Added new local command KEY that is used to set and unset private
8887           keys for channels, set and unset private keys for private messages
8888           with remote clients and to send key agreement requests and
8889           negotiate the key agreement protocol with remote client.  The
8890           key agreement is supported only to negotiate private message keys,
8891           it currently cannot be used to negotiate private keys for channels,
8892           as it is not convenient for that purpose.
8893
8894         * Fixed a minor pending callback setting bug in the function
8895           silc_client_get_client_by_id_resolve, now the function works.
8896           Affected file lib/silcclient/idlist.c.
8897
8898         * Added function silc_net_get_local_port to get local bound
8899           port by socket.  Added to lib/silcutil/silcnet.[ch].
8900
8901         * Added `sockets' and `sockets_count' fields to the SilcClient
8902           object.  They hold the sockets of the listenning sockets in
8903           the client.  Listenning sockets may be for example the key
8904           agreement server.  Affected file lib/silcclient/client.[ch].
8905           Added functions the silc_client_add_socket and the
8906           silc_client_del_socket.  They are exported to the application
8907           as well.
8908
8909         * Added ~./silc/clientkeys to support other client's public keys.
8910
8911         * Renamed verify_server_key client operation to verify_public_key
8912           and added one argument to indicate the type of the connection
8913           (server, client etc.).
8914
8915 Tue Mar 27 22:22:38 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
8916
8917         * Added silc_server_connection_auth_request to handle the
8918           incoming CONNECTION_AUTH_REQUEST packet.  Affected file is
8919           silcd/packet_receive.[ch].
8920
8921         * Added silc_server_send_connection_auth_request into the
8922           silcd/packet_send.c to send the connection auth request packet.
8923
8924         * Cleaned up the silcd/protocol.c a bit and fixed some memory
8925           leaks.
8926
8927         * Fixed the public key authentication in responder side in the
8928           server.  The `auth_data' pointer includes the SilcPublicKey
8929           not the path to the public key.  Affected file silcd/protocol.c.
8930
8931         * Implemented the public key authentication in the initiator side
8932           in the server.  Affected file silcd/protocol.c.
8933
8934         * Removed the [RedirectClient] config section from the server
8935           configuration.  Is not needed and I don't want to implement it.
8936
8937 Tue Mar 27 12:49:56 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
8938
8939         * Cleaned up the CMODE command in the server.  It now works
8940           correctly and supports all the modes defined in the protocol.
8941           Affected file is silcd/command.c.
8942
8943         * Added `hmac_name' field to the SilcChannelEntry in the server
8944           to hold the default HMAC of the channel.  It can be set when
8945           creating the channel (with JOIN command).  Affected files
8946           silcd/idlist.[ch].
8947
8948         * Added <cipher> and <hmac> argument to the CMODE_CHANGE notify
8949           type to indicate the change of the current cipher and hmac
8950           on the channel.  Client can safely ignore the <cipher> argument
8951           (if it chooses to do so) since the CHANNEL_KEY packet will
8952           force the channel key change anyway.  The <hmac> argument is
8953           important since the client is responsible of setting the new
8954           HMAC and the hmac key into use.
8955
8956         * Fixed the CMODE command in the client library as well.
8957
8958         * Tested CMODE command in router environment successfully.
8959
8960 Mon Mar 26 14:39:48 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
8961
8962         * Show the version of the remote client (or server) when connecting
8963           to the server.  It is logged to the log file.  Affected file
8964           is silcd/protocol.c.
8965
8966         * Fixed the KILLED notify handling in the client library.  The
8967           client must be removed from all channels when receiving the
8968           KILLED notify.
8969
8970           Also, do not remove the client entry when giving the KILL
8971           command but when the KILLED notify is received.
8972
8973         * Removed silc_idlist_find_client_by_nickname from the server.
8974           Not needed anymore.  Affected files silcd/idlist.[ch].
8975
8976         * Implemented the CHANNEL_CHANGE notify type handling to the
8977           server.  Affected file silcd/server.c.
8978
8979         * Updated TODO.
8980
8981 Mon Mar 26 12:11:14 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
8982
8983         * Added silc_server_send_notify_invite to send the INVITE
8984           notify between routers.
8985
8986         * Implemented the INVITE command correctly to the server.
8987
8988         * Implemented the INVITE notify type handling in the server.
8989
8990         * Implemented the INVITE command to the client library and on the
8991           user interface.
8992
8993 Sun Mar 25 20:27:09 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
8994
8995         * Added function silc_server_get_client_resolve to find the
8996           client entry by ID from all ID lists and then resolve it
8997           (using WHOIS) if it cannot be found.  Affected file is
8998           silcd/server.[ch].
8999
9000 Sun Mar 25 13:52:51 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9001
9002         * Implemented the BAN command to the client library.
9003
9004         * The JOIN command in the server now checks the invite list
9005           and the ban list.
9006
9007         * Changed the silc_command_reply_payload_encode_va and the
9008           silc_command_payload_encode_va to support that if argument is
9009           NULL it ignores and checks the next argument.  Affected file
9010           lib/silccore/silccommand.c.
9011
9012         * Added silc_server_send_notify_ban to send the BAN notify
9013           type between routers.
9014
9015         * Chaned the silc_notify_payload_encode to support that if
9016           argument is NULL it ignores and checks the next argument.
9017           Affected file lib/silccore/silcnotify.c.
9018
9019         * Tested ban lists in router environment successfully.
9020
9021 Sat Mar 24 14:47:25 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9022
9023         * Implemented BAN command to the server, in silcd/command.[ch].
9024
9025         * Removed the BAN and INVITE_LIST modes from the CMODE command
9026           in the server code.
9027
9028         * Added function silc_string_match to regex match two strings.
9029           Affected files lib/silcutil/silcutil.[ch].
9030
9031 Fri Mar 23 22:02:40 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9032
9033         * Redefined parts of the SilcChannelEntry in the server to support
9034           the new ban and invite lists.
9035
9036 Fri Mar 23 16:25:11 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9037
9038         * Redefined the INVITE command.  The same command can be used to
9039           invite individuals to the channel but also to manage the invite
9040           list of the channel (to add to and remove from the invite list).
9041           Updated the protocol specs.
9042
9043         * Added new command SILC_COMMAND_BAN that can be used to manage
9044           the ban list of the channel.  Updated the protocol specs.
9045
9046         * Removed the channel modes: the SILC_CMODE_BAN and the
9047           SILC_CMODE_INVITE_LIST as they were a bit kludge to be included
9048           in the CMODE command.  The equivalent features are now available
9049           using INVITE and BAN commands.  Updated the protocol specs.
9050
9051         * Added new SILC_NOTIFY_TYPE_BAN notify type to notify routers
9052           in the network about change in the current ban list.  The notify
9053           type is not used by the client.
9054
9055         * Redefined parts of the SILC_NOTIFY_TYPE_INVITE command to
9056           support the invite lists.
9057
9058 Thu Mar 22 22:52:23 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9059
9060         * Added new function silc_string_regexify that converts string
9061           including wildcard characters into regex string that can
9062           be used by the GNU regex library.  Added into the file
9063           lib/silcutil/silcutil.[ch].
9064
9065           Added silc_string_regex_combine to combine to regex strings
9066           into one so that they can be used as one regex string by
9067           the GNU regex library.  Added into the file
9068           lib/silcutil/silcutil.[ch].
9069
9070           Added silc_string_regex_match to match two strings.  It returns
9071           TRUE if the strings match.  Added into lib/silcutil/silcutil.[ch].
9072
9073 Thu Mar 22 15:29:42 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9074
9075         * Imported GNU regex to the soruce tree into lib/contrib.
9076           Fixed some compiler warning from the regex.c.
9077
9078 Wed Mar 21 15:27:58 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9079
9080         * Fixed MOTD command in the server to work in router environment.
9081
9082         * Fixed the MOTD command in the client library to support
9083           the server argument in the command.
9084
9085         * Added `nickname_len' argument to the silc_idlist_add_client
9086           in the server, as the `nickname' argument may be binary data
9087           (it may be hash).
9088
9089         * Added silc_idlist_get_channels to return all channels from
9090           the ID list.
9091
9092         * Implemented LIST command to the server.  Affected file is
9093           silcd/command.c.
9094
9095         * Implemented the LIST command to the client library and on the
9096           user interface.
9097
9098         * Added [<user count>] argument to the LIST command reply.
9099           With private channels the user count is not shown.
9100
9101         * Updated TODO and README.
9102
9103 Tue Mar 20 21:05:57 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9104
9105         * The client entry's data.registered must be TRUE even with
9106           global client entry on global client list.  The data.registered
9107           is used to check whether the client is anymore in the network,
9108           for example with WHOWAS command so it must be valid.
9109
9110         * Fixed the WHOWAS command in the server.  It now actually works
9111           in router environment.  Added function into silcd/command_reply.c
9112           silc_server_command_reply_whowas_save.
9113
9114         * Added silc_idlist_purge function to the silcd/idlist.c
9115           to periodically purge the ID Cache.
9116
9117         * Fixed INFO command in the server.  It works now in router
9118           environment.  Added <server name> argument to the INFO command
9119           reply.  Updated the protocol specs.
9120
9121         * Fixed minor bug in silc_idcache_purge to not purge if the
9122           expire value is zero.
9123
9124         * Fixed various bugs in WHOIS and IDENTIFY command handling as
9125           they were buggy because of the WHOWAS information.
9126
9127         * Fixed local command MSG to handle the async resolving of
9128           the remote client properly.  It used to fail the first MSG.
9129           Affected file silc/local_command.c.
9130
9131         * Added `data_len' field to SilcIDCache context.
9132
9133 Tue Mar 20 16:29:00 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9134
9135         * Update TODO.  Todo in commands in the server.
9136
9137 Tue Mar 20 15:45:14 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9138
9139         * Added new notify type SILC_NOTIFY_TYPE_UMODE_CHANGE that is
9140           used by routers as broadcast packet to inform other routers
9141           about the changed user mode.
9142
9143           Implemented the notify handling in the server.  Affected file is
9144           silcd/packet_receive.c.  Added the function
9145           silc_server_send_notify_umode to the silcd/packet_send.[ch].
9146
9147         * Added new generic Channel Payload and deprecated the New Channel
9148           Payload.  The New Channel Payload is now the generic Channel
9149           Payload.
9150
9151         * Added new argument `mode' to the silc_server_send_new_channel
9152           as it is required in the Channel Payload now.
9153
9154         * Renamed the SilcChannelPayload to SilcChannelMessagePayload
9155           and created a new and real SilChannelPayload to represent the
9156           new generic Channel Payload.  Implemented the encode/decode
9157           for Channel Payload.  Affected file lib/silccore/silcchannel.[ch].
9158
9159         * Added silc_server_get_client_channel_list to return the list
9160           of channels the client has joined for WHOIS command reply.
9161           Affected file silcd/server.[ch].
9162
9163         * Implemented the channel list sending in the WHOIS command reply
9164           in server and in the client.
9165
9166           Implemented the channel list displaying on the user interface
9167           as well.  Affected file silc/client_ops.c.
9168
9169         * Added silc_channel_payload_parse_list to parse list of Channel
9170           Payloads.  It returns SilcDList list of SilcChannelPayloads.
9171           Client for example can use this function to parse the list of
9172           channels it receives in the WHOIS command reply.  The caller
9173           must free the list by calling silc_channel_payload_list_free.
9174           Affected files lib/silccore/silcchannel.[ch].
9175
9176 Mon Mar 19 21:39:15 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9177
9178         * Added one new argument <user mode> to the WHOIS command reply
9179           to return the mode of the user in SILC.  Updated the protocol
9180           specs.
9181
9182           Implemented it to the server and client.
9183
9184 Mon Mar 19 18:43:06 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9185
9186         * Fixed the mode printing on the user interface on joining.
9187           Affected file silc/client_ops.c.
9188
9189         * Implemented the UMODE command and user modes in general to the
9190           client library and to the user interface.
9191
9192         * Implemented the UMODE command to the server.
9193
9194         * The server now sends UNKNOWN_COMMAND error status if client sends
9195           unknown command.  Affected file silcd/command.c.
9196
9197         * All server commands now handle the command identifier the right
9198           way when sending the command reply to the client.  The client can
9199           use to identify the command replies with the identifier.
9200
9201 Mon Mar 19 16:13:07 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9202
9203         * Added silc_server_get_client_route to resolve the route to
9204           the client indicated by the client ID.  Affected file is
9205           silcd/server.[ch].
9206
9207         * Added silc_server_relay_packet as general function to relay
9208           packet to arbitrary destination.  This deprecates functions
9209           like _send_private_message_key, _relay_notify etc.  Affected
9210           file is silcd/packet_send.[ch].
9211
9212           Removed silc_server_send_key_agreement,
9213           silc_server_send_private_message_key and
9214           silc_server_packet_relay_notify functions from the file
9215           silcd/packet_send.[ch].
9216
9217         * Updated TODO.
9218
9219         * Implemented the SILC_NOTIFY_TYPE_KILLED notify handling in the
9220           server.  Affected file silcd/packet_receive.[ch].
9221
9222         * Implemented the KILL command to the client.  Implemented the
9223           SILC_NOTIFY_TYPE_KILLED notify handling in the client library.
9224           Affected files lib/silcclient/command[_reply].c and
9225           lib/silcclient/client_notify.c.  Implemented the KILL notify
9226           printing in the user inteface.
9227
9228         * Fixed a lot silc_parse_nick memory leaks from the client
9229           library in the file lib/silcclient/command.c.
9230
9231         * Changed the silc_server_send_notify_on_channels's `sender'
9232           argument from SilcSocketConnection to SilcClientEntry to
9233           check the sender as entry and not as connection object and not
9234           to send to the client provided as argument.  The affected file
9235           is silcd/packet_send.[ch].
9236
9237         * The notify packets that are destined directly to the client used
9238           to not to be processed by the server.  Now changed that and the
9239           server processes all notify packets.  After relaying the packet
9240           to the client the notify packet is processed in the server.
9241
9242         * The silc_server_free_client_data now checks whether there is
9243           pending outgoing traffic for the client and purges the data to
9244           the network before removing the client entry.
9245
9246 Sun Mar 18 21:02:47 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9247
9248         * Added SILC_NOTIFY_TYPE_KILLED notify type.  It is sent when
9249           an client is killed from the SILC Network.  Updated the protocol
9250           specs accordingly.
9251
9252           Added new function silc_server_send_notify_killed to the
9253           silcd/packet_send.[ch].
9254
9255         * Added function silc_server_packet_relay_notify to relay notify
9256           packets that are destined directly to a client.  In this case
9257           the server does not process the notify packets but merely relays
9258           it to the client.  Affected file silcd/packet_send.[ch].
9259
9260           Added also silc_server_packet_process_relay_notify to check
9261           whereto relay the notify.  Affected file is
9262           silcd/packet_receive.[ch].
9263
9264         * Implemented the KILL command to the server.
9265
9266         * Updated TODO.
9267
9268         * Added the backup schema desgined last fall to the protocol
9269           specs for everyone to see.  The specification is in the
9270           *-spec-xx.txt draft and the packet type definitions for the
9271           backup routers is in *-pp-xx.txt draft.  Thusly, added also
9272           new packet type SILC_PACKET_CELL_ROUTERS.
9273
9274         * A big security problem in the implementation discovered.  The
9275           signoff of an client did not cause new channel key generation
9276           which it of course should've done.  The channel keys must be
9277           always re-generated when client leaves (or signoffs) the channel.
9278           The silc_server_remove_from_channels funtion now handles
9279           the channel key re-generation.
9280
9281         * Added `sender' argument to the silc_server_send_notify_on_channels
9282           to not to send the client provided as argument.  Affected file
9283           silcd/packet_send.[ch].
9284
9285 Fri Mar 16 15:52:49 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9286
9287         * Implemented OPER and SILCOPER commands into the server and
9288           the client library.
9289
9290         * Added silc_auth_verify and silc_auth_verify_data to verify
9291           the authentication directly from the authentication payload.
9292           It supports verifying both passphrase and public key based
9293           authentication.  Affected file lib/silccore/silcauth.[ch].
9294
9295         * Added `hash' field to the SilcIDListData structure.  It is the
9296           hash negotiated in the SKE protocol.  Affected file is
9297           silcd/idlist.[ch].
9298
9299         * Slight redesigning of the SilcAuthPayload handling routines.
9300           Do not send SilcPKCS but SilcPublicKey as argument.
9301
9302         * Implemented the public key authentication support to the
9303           serverconfig.  The public key is loaded from the provided path
9304           and saved as authentication data to void * pointer.  Thus,
9305           changed the unsigned char *auth_data to void *auth_data;
9306
9307         * Fixed SHUTDOWN command to send the reply before the server
9308           is shutdown. :)  Affected file silcd/command.c.
9309
9310         * Fixed fatal bug in CONNECT command.  The hostname was invalid
9311           memory and server crashed.  Affected file silcd/command.c.
9312
9313         * Fixed fatal bug in CLOSE command.  The server_entry became
9314           invalid but was referenced later in the command.  Affected file
9315           silcd/command.c.
9316
9317 Thu Mar 15 12:46:58 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9318
9319         * Fixed fatal bug in failure packet handling.  Server ignored
9320           the failure and thus crashed when it came.
9321
9322         * Updated TODO.
9323
9324 Wed Mar 14 20:37:35 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9325
9326         * Added new SILC_CF_LAG_STRICT command flag that strictly forces
9327           that the command may be executed only once in (about) 2 seconds.
9328           The old SILC_CF_LAG flag is same but allows command bursts up
9329           to five before limiting.
9330
9331           Added the support for CF_LAG and CF_LAG_STRICT flags to the
9332           server code.  Various commands now includes the CF_LAG_STRICT
9333           flag to disallow any kind of miss-use of the command.
9334
9335         * Fixed the silc_buffer_unformat to not to allocate any data
9336           if the length of the data is zero.  It used to allocate the
9337           length + 1.  Affected file lib/silcutil/silcbuffmt.c.
9338
9339 Wed Mar 14 16:10:30 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9340
9341         * Changed the format of AdminConnection configuration section
9342           in the server.  Added username of the admin to the format.
9343           Affected files silcd/serverconfig.[ch].
9344
9345           Added silc_server_config_find_admin into silcd/serverconfig.[ch]
9346           to return admin configuration data by host, username and/or
9347           nickname.
9348
9349 Wed Mar 14 13:18:16 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9350
9351         * Implemented WHOWAS command to the server.  Added the functions:
9352
9353           silc_server_command_whowas_parse,
9354           silc_server_command_whowas_send_reply,
9355           silc_server_command_whowas_from_client and
9356           silc_server_command_whowas_from_server
9357
9358         * Added <Client ID> argument to the WHOWAS command reply.  Updated
9359           the protocol specs accordingly.
9360
9361         * Implemented WHOWAS command and command_reply to the client
9362           library.
9363
9364           Implemented the WHOWAS printing on the user interface.
9365
9366 Tue Mar 13 22:17:34 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9367
9368         * Added new argument to the WHOWAS command reply, the real name.
9369           It is an optional argument.  Updated the protocol specs.
9370
9371         * Added SilcIDCacheDestructor callback that is registered when
9372           the SilcIDCache is allocated.  The callback is called when
9373           an cache entry in the ID Cache expires, or is purged from the
9374           cache.  Added into lib/silccore/idcache.[ch].
9375
9376           Added silc_idlist_client_destructor to the silcd/idlist.[ch]
9377           to destruct the client entries when the cache entry expires.
9378           Other ID Cache's in server and in the client library ignores
9379           the destructor.
9380
9381         * If the ID Cache entry's `expire' field is zero then the entry
9382           never expires.  Added boolean `expire' argument to the
9383           silc_idcache_add function in the lib/silccore/idcache.[ch].
9384           If it is TRUE the default expiry value is used.
9385
9386         * Added silc_server_free_client_data_timeout that is registered
9387           when client disconnects.  By default for 5 minutes we preserve
9388           the client entry for history - for WHOWAS command.
9389
9390 Tue Mar 13 13:26:18 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9391
9392         * Added support to the server to enforce that commands are not
9393           executed more than once in 2 seconds.  If server receives
9394           commands from client more frequently, timeout is registered
9395           to process the commands.  Affected file silcd/command.c.
9396           Added new function silc_server_command_process_timeout.
9397
9398         * Changed NICK_NOTIFY handling in client library to check that
9399           if the client's nickname was changed, so there is no need to
9400           resolve anything from the server.
9401
9402         * Removed error printing from the WHOIS and IDENTIFY commands.
9403           If error occurs then it is ignored silently in the client library.
9404           The application, however, may map the received error to
9405           human readable error string.  The application currently maps
9406           the NO_SUCH_NICKNAME error to string.
9407
9408         * Made the command status message public to the application.  Moved
9409           them from lib/silcclient/command_reply.c to
9410           lib/silcclient/command_reply.h.  The application can map the
9411           received command status to the string with the
9412           silc_client_command_status_message function.
9413
9414         * Added check to the server to check that client's ID is same
9415           as the Source ID in the packet the client sent.  They must
9416           match.
9417
9418 Tue Mar 13 12:49:21 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9419
9420         * Added dist-bzip hook to the Makefile.am to make bzip2
9421           compressed distributions.
9422
9423 Mon Mar 12 18:43:38 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9424
9425         * Server now enforces the maximum length for the nickname and
9426           the channel as protocol specification dictates.  128 bytes for
9427           nickname and 256 bytes for channel name.
9428
9429         * Moved the WHOIS printing to the application.  The client libary
9430           does not print out the WHOIS information anymore, the application
9431           must do it.  Renamed silc_client_command_reply_whois_print to
9432           the silc_client_command_reply_whois_save.
9433
9434           The client's idle time is also sent to the application now, and
9435           the idle is shown on screen.
9436
9437         * Added silc_client_command_reply_identify_save to save the
9438           received IDENTIFY entries.
9439
9440         * Do not check for channel private keys in message sending and
9441           reception if the channel does not have the PRIVKEY mode set.
9442           Affected file lib/silclient/client_channel.c.
9443
9444 Sun Mar 11 20:25:06 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9445
9446         * Fixed a minor bug if WHOIS and IDENTIFY command parsing that
9447           just surfaced after chaning the JOIN procedure.
9448
9449 Sun Mar 11 14:59:05 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9450
9451         * Added silc_client_get_clients_by_list to get client entries
9452           from Client ID list, that is returned for example by JOIN
9453           and USERS command replies.  The application should use this
9454           function for example when JOIN command reply is received to
9455           resolve the clients already on the channel (library does not
9456           do that anymore as USERS command reply is not used in the JOIN
9457           procedure anymore).  Affected files lib/silcclient/silcapi.h and
9458           lib/silcclient/idlist.c.
9459
9460         * JOIN command reply and USERS command reply returns now SilcBuffer
9461           pointers instead of unsigned char pointers when returning
9462           the client list and mode list.
9463
9464         * Added <Client ID> argument to the JOIN command reply, mainly
9465           for the server to identify for which client the command was
9466           originally sent.  Updated protocol specs accordingly.
9467
9468         * Added SilcDlist private_key pointer to the SilcChannelEntry
9469           in the client to support the channel private keys.  Affected
9470           file is lib/silcclient/idlist.h.
9471
9472         * Added SilcChannelPrivateKey argument to the function
9473           silc_client_send_channel_message so that application can choose
9474           to use specific private ke if it wants to.  If it is not provided,
9475           the normal channel key is used, unless private keys are set.
9476           In this case the first (key that was added first) is used
9477           as the encryption key.
9478
9479         * Implemented the support for channel private key handling.
9480           Implemented the following functions:
9481
9482           silc_client_add_channel_private_key,
9483           silc_client_del_channel_private_keys,
9484           silc_client_del_channel_private_key,
9485           silc_client_list_channel_private_keys and
9486           silc_client_free_channel_private_keys
9487
9488           Affected file lib/silcclient/client_channel.c.
9489
9490         * Added the support for the private keys in the channel message
9491           sending and encryption and in the message reception and
9492           decryption.  Affected funtions are
9493           silc_client_send_channel_message and silc_client_channel_message.
9494
9495 Sat Mar 10 21:36:22 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9496
9497         * Added SKE's key verify callback to the client library's
9498           KE protocol context. Affected files lib/silcclient/protocol.[ch].
9499
9500         * Removed the statement that server (or router) must send USERS
9501           command reply when joining to the channel so that the client
9502           knows who are on the channel.  Instead, the client list and
9503           client's mode list is now sent in the JOIN command reply to the
9504           client who joined channel.  This is better solution.
9505
9506         * Added function silc_server_get_users_on_channel and function
9507           silc_server_save_users_on_channel to the silcd/server.[ch].
9508
9509         * Removed function silc_server_command_send_users from the
9510           silcd/command.c.
9511
9512         * Do not show topic on the client library anymore.  The topic is
9513           sent in the command reply notify to the application and the
9514           application must show the topic now.
9515
9516 Sat Mar 10 00:07:37 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9517
9518         * Added client searching by nickname hash into the IDENTIFY and
9519           WHOIS commands in the server as they were clearly missing from
9520           them.  Affected file is silcd/command.c.
9521
9522         * Fixed a bug in private message receiving in the client library.
9523           The remote ID was freed and it wasn't supposed, now it is
9524           duplicated.
9525
9526 Fri Mar  9 12:40:42 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9527
9528         * Minor fix to the channel payload; allocate the data area, as it
9529           needs to be of specific length.
9530
9531         * If the key agreement port is zero then the operating
9532           system will define the bound port.  Affected files are
9533           lib/silcclient/silcapi.h and lib/silcclient/client_keyagr.c.
9534
9535         * Added new function silc_channel_payload_decrypt into the file
9536           lib/silccore/silcchannel.[ch].
9537
9538         * Moved the channel message etc, check from silc_packet_decrypt
9539           to applications.  The library calls now a generic
9540           SilcPacketCheckDecrypt callback which is to return TRUE or FALSE
9541           when the packet is either normal or special.  This was done to
9542           allow more wide range of checking that was not allowed when
9543           the code was in library.  Now applications can do virtually any
9544           checks to the packet and return to the library the decision how
9545           the packet should be processed.  Affected files are
9546           lib/silccore/silcpacket.[ch].
9547
9548           Added silc_server_packet_decrypt_check to the server and
9549           silc_client_packet_decrypt_check to the client library.
9550
9551         * Added silc_server_packet_send_srcdest into silcd/packet_send.[ch]
9552           to send with specified source and destination information.
9553
9554         * Channel message delivery between routers was broken after the
9555           channel key distribution was fixed earlier.  The channel key
9556           was used be to distributed to other routers as well which is not
9557           allowed by the protocol.  Now this is fixed and channel keys
9558           really are cell specific and the channel message delivery between
9559           routers comply with the protocol specification.
9560
9561         * Fixed various commands in server to check also the global list
9562           for the channel entry and not just the local list.  The affected
9563           file silcd/command.c.
9564
9565 Thu Mar  8 21:39:03 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9566
9567         * Added assert()s to buffer formatting and unformatting routines
9568           to assert (if --enable-debug) when error occurs.  Affected
9569           file: lib/silcutil/silcbuffmt.c.
9570
9571         * Changed to auto-reconnect to check whether the remote host is
9572           router and register the re-connect timeout if it is.  It used
9573           to check that whether we are normal server, but router must do
9574           auto-reconnect with another router as well.  Affected file
9575           silcd/server.c.
9576
9577         * Removed the [<key len>] option from CMODE command as the cipher
9578           name decides the key length, nowadays.  See the defined ciphers
9579           from the protocol specification.
9580
9581         * Added [<hmac>] option to the CMODE command to define the HMAC
9582           for the channel.  Added SILC_CMODE_HMAC channel mode.
9583
9584         * Added [<hmac>] option for the JOIN command so that user can
9585           select which HMAC is used to compute the MACs of the channel
9586           messages.
9587
9588         * Added Hmac field to the Channel Message Payload.  The integrity
9589           of plaintext channel messages are now protected by computing
9590           MAC of the message and attaching the MAC to the payload.  The
9591           MAC is encrypted.  Now, it is clear that this causes some
9592           overhead to the size of the packet but rationale for this is that
9593           now the receiver can verify whether the channel message decrypted
9594           correctly and also when private keys are set for the channel the
9595           receiver can decrypt the packet with several keys and check from
9596           the MAC which key decrypted the message correctly.
9597
9598         * Added silc_cipher_encrypt and silc_cipher_decrypt into the
9599           lib/silccrypt/silccipher.[ch].
9600
9601         * Added silc_hash_len to return the digest length into the
9602           lib/silcrypt/silchash.[ch].
9603
9604         * Rewrote parts of Silc Channel Payload interface in the
9605           lib/silccore/silcchannel.[ch].  The encode function now also
9606           encrypts the packet and parse function decrypts it.
9607
9608 Wed Mar  7 20:58:50 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9609
9610         * Fixed a minor formatting bug in the SKE's key material processing.
9611           It actually might have processed the keys wrong way resulting
9612           into wrong keys.
9613
9614         * Redefined the mandatory HMAC algorithms and added new algorithms.
9615           Added hmac-sha1-96 and hmac-md5-96 which are normal hmac-sha1
9616           and hmac-md5 truncated to 96 bits.  The mandatory is now
9617           hmac-sha1-96.  Rest are optional (including the one that used
9618           to be mandatory).  Rationale for this is that the truncated HMAC
9619           length is sufficient from security point of view and can actually
9620           make the attack against the HMAC harder.  Also, the truncated
9621           HMAC causes less overhead to the packets.  See the RFC2104 for
9622           more information.
9623
9624         * Added new [hmac] configuration section.  The SKE used to use
9625           the hash names (md5 and sha1) in the SKE proposal as HMCAS which
9626           is of course wrong.  The official names that must be proposed in
9627           the SKE are the ones defined in the protocol specification
9628           (hmac-sha1-96 for example).  The user can configure any hmac
9629           using any hash function configured in the [hash] section.  At
9630           least, the mandatory must be configured.
9631
9632           Rewrote the HMAC interface in lib/silccrypt/silchmac.[ch].
9633
9634         * Added HMAC list to the SKE proposal list.  It has now both
9635           hash algorithm list and HMAC list.  This makes the protocol
9636           incompatible with previous versions.  The SKE now seems to work
9637           the way it is supposed to work, for the first time actually.
9638
9639         * Defined plain Hash algorithms to the protocol specification.
9640           Added sha1 and md5.
9641
9642 Tue Mar  6 15:36:11 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9643
9644         * Implemented support for key agreement packets into the server.
9645           Added functions silc_server_key_agreement and
9646           silc_server_send_key_agreement.  Other than these functions,
9647           server has nothing to do with this packet.
9648
9649         * Added support for private message key packets into the server.
9650           Added functions silc_server_private_message_key and
9651           silc_server_send_private_message_key.
9652
9653         * Updated TODO.
9654
9655         * Changed the silc_[client|server]_protocol_ke_set_keys to be
9656           called in the protocol's final callback instead in the END
9657           protocol state.  This makes a little more sense and in the same
9658           time in client we can use the same protocol routines for normal
9659           key exchange and to key agreement packet handling as well.
9660
9661         * Added to both client's and server's KE protocol context the
9662           SilcSKEKeyMaterial pointer to save the key material.  We will
9663           bring the key material to the protocol's final callback by doing
9664           this.  The final callback must free the key material.
9665
9666         * Added SKE's packet_send callback into client's KE protocol
9667           context so that the caller can choose what packet sending function
9668           is used.  This way we can use different packet sending when
9669           doing normal SKE when doing key agreement packet handling (in
9670           the key agreement packet handling we do not want to encrypt
9671           the packets).
9672
9673         * Implemented the responder side of the key agreement routines
9674           in the client.  The client can now bind to specified port and
9675           accept incoming key negotiation.  The key material is passed
9676           to the application after the protocol is over.
9677
9678         * Implemented the processing of incoming Key Agreement packet
9679           in the client.  Added function silc_client_key_agreement to
9680           process the packet.
9681
9682         * Implemented the intiator side of the key agreement routines
9683           in the client.  The client can now initiate key agreement with
9684           another remote client.  The key material is passed to the
9685           application after the protocol is over.
9686
9687         * Created client_keyagr.c to include all the key agreement
9688           routines.
9689
9690         * Added macro SILC_TASK_CALLBACK_GLOBAL which is equal to the
9691           SILC_TASK_CALLBACK except that it is not static.
9692
9693         * Created client_notify.c and moved the Notify packet handling
9694           from the client.[ch] into that file.
9695
9696         * Created client_prvmsg.c and moved all private message and
9697           private message key routines from the client.[ch] into that file.
9698
9699         * Create client_channel.c and moved all channel message and
9700           channel private key routines from the client.[ch] into that file.
9701
9702         * Changed silc_client_get_client_by_id_resolve to resolve with
9703           WHOIS command instead of IDENTIFY command, in the file
9704           lib/silclient/idlist.c.
9705
9706 Mon Mar  5 18:39:49 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9707
9708         * Implemented the SKE's responder side to the Client library.
9709
9710         * When FAILURE is received to the protocol do not trust it
9711           blindly.  Register a timeout to wait whether the remote closes
9712           the connection as it should do it, only after that process the
9713           actual failure.  This was changed to both client and server.
9714
9715         * Added client_internal.h to include some of the structures
9716           there instead of client.h in lib/silcclient/.
9717
9718         * Added function silc_task_unregister_by_callback to unregister
9719           timeouts by the callback function.
9720
9721 Sat Mar  3 19:15:43 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9722
9723         * Some "Incomplete WHOIS info" errors has been appearing on the
9724           log files.  Took away the entry->userinfo check from WHOIS
9725           reply sending.  The entry->userinfo is now " " if client did not
9726           provide one.  I thought this was fixed earlier but something
9727           is wrong still.  Let's see if the error still appears.
9728
9729 Wed Feb 28 20:56:29 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9730
9731         * Fixed a minor bug in the login when the channel key is
9732           re-generated in the server.  It used to generate the key in
9733           wrong order and thus caused problems in the channel traffic.
9734
9735         * Fixed a minor bug in channel key distsribution after
9736           KICK command.  The key was not sent to the router even though
9737           it should've been.
9738
9739 Tue Feb 27 20:24:25 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9740
9741         * Added silc_ske_process_key_material_data as generic routine
9742           to process any key material as the SILC protocol dictates.  The
9743           function is used by the actual SKE library but can be used by
9744           applications as well.  This relates to the private message keys
9745           and the channel private keys since they must be processed the
9746           same way the normal SILC session keys.  The protocol dictates
9747           this.  Affected files: lib/silcske/silcske.[ch].
9748
9749           Added also silc_ske_free_key_material to free the
9750           SilcSKEKeyMaterial structure.
9751
9752         * Defined silc_cipher_set_key function to set the key for
9753           cipher without using the object's method function.  The affected
9754           files: lib/silccrypt/silccipher.[ch].
9755
9756         * Implemented silc silc_client_add_private_message_key,
9757           silc_client_add_private_message_key_ske,
9758           silc_client_del_private_message_key,
9759           silc_client_list_private_message_keys and
9760           silc_client_free_private_message_keys functions in the
9761           client library.
9762
9763           Added functions silc_client_send_private_message_key to send
9764           the Private Message Key payload and silc_client_private_message_key
9765           to handle incoming Private Message Key payload.
9766
9767         * Added Cipher field to the Private Message Key payload to set
9768           the cipher to be used.  If ignored, the default cipher defined
9769           in the SILC protocol (aes-256-cbc) is used.
9770
9771 Tue Feb 27 13:30:52 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9772
9773         * Removed lib/silcclient/ops.h file.
9774
9775           Redefined parts of the SILC Client Library API. Created new
9776           file silcapi.h that deprecates the ops.h file and defines the
9777           published Client Library API.  Defined also private message key
9778           API and channel private key API into the file.
9779
9780           This is the file that the application must include from the
9781           SILC Client Library.  Other files need not be included by
9782           the application anymore.
9783
9784         * Added new key_agreement client operation callback and also
9785           defined the Key Agreement library API for the application.
9786
9787 Tue Feb 27 11:28:31 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9788
9789         * Added new packet type: SILC_PACKET_KEY_AGREEMENT.  This packet
9790           is used by clients to request key negotiation  between another
9791           client in the SILC network.  If the negotiation is started it
9792           is performed using the SKE protocol.  The result of the
9793           negotiation, the secret key material, can be used for example
9794           as private message key.
9795
9796           Implemented the Key Agreement payload into the files
9797           lib/silccore/silauth.[ch].
9798
9799 Mon Feb 26 12:13:58 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9800
9801         * Redefined ciphers for the SILC protocol.  Added some new ciphers
9802           and defined the key lengths for the algorithms.  Changed the
9803           code accordingly.  The default key length is now 256 bits.
9804
9805         * Fixed SKE key distribution function silc_ske_process_key_material
9806           when the key length is more than 128 bits.  The default key
9807           length in SILC is now 256 bits.
9808
9809         * Added new command status type: SILC_STATUS_ERR_UNKOWN_ALGORITHM
9810           to indicate unsupported algorithm.
9811
9812         * Renamed rijndael.c to aes.c and all functions as well.
9813
9814         * Fixed a long standing channel key setting bug in client library.
9815           Weird that it has never surfaced before.
9816
9817         * Fixed bug in channel deletion.  If the entire channel is removed
9818           then it must also delete the references of the channel entry
9819           from the client's channel list as the client's channel entry and
9820           the channel's client entry share same memory.
9821
9822 Sun Feb 25 20:47:29 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9823
9824         * Implemented CONNECT and SHUTDOWN commands in the client.
9825
9826         * Implemented CLOSE command to the client.
9827
9828         * Added the function silc_idlist_find_server_by_name into the
9829           files silcd/idlist.[ch].
9830
9831           Added the function silc_idlist_find_server_by_conn into the
9832           files silcd/idlist.[ch].
9833
9834 Sat Feb 24 23:45:49 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9835
9836         * DIE command was renamed to SHUTDOWN.  Updated the both code
9837           and protocol specs.
9838
9839         * Defined SILC_UMODE_NONE, SILC_UMODE_SERVER_OPERATOR and
9840           SILC_UMODE_ROUTER_OPERATOR modes into lib/silccore/silcmode.h.
9841
9842         * Implemented CONNECT, CLOSE and SHUTDOWN commands to the server
9843           side.
9844
9845         * Added function silc_server_create_connection function to create
9846           connection to remote router.  My server implementation actually
9847           does not allow router to connect to normal server (it expects
9848           that normal server always initiates the connection to the router)
9849           so the CONNECT command is only good for connecting to another
9850           router.
9851
9852 Sat Feb 24 16:03:45 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9853
9854         * Added SILC_NOTIFY_TYPE_KICKED to indicate that the client
9855           or some other client was kicked from the channel.
9856
9857           Implemented the handling of the notify type to both client
9858           and server.
9859
9860           Implemented silc_server_send_notify_kicked to send the KICKED
9861           notify.  It is used to send it to the server's primary router.
9862
9863         * Implemented the KICK command into server and client.
9864
9865         * Added `query' argument to the silc_idlist_get_client function
9866           to indicate whether to query the client from server or not if
9867           it was not found.
9868
9869         * Added new command status type SILC_STATUS_ERR_NO_CHANNEL_FOPRIV
9870           to indicate that the client is not channel founder.
9871
9872         * Updated TODO.
9873
9874 Sat Feb 24 00:00:55 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9875
9876         * Removed the rng context from SilcPacketContext structure and
9877           changed that the packet routine uses the Global RNG API.
9878
9879 Fri Feb 23 11:22:57 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9880
9881         * Added support for quit message that client can "leave" on the
9882           channel when it quits the SILC.  It is ditributed inside the
9883           SILC_NOTIFY_TYPE_SIGNOFF notify type.
9884
9885           Added silc_server_free_client_data that will take the
9886           signoff message as argument.
9887
9888         * Changed SKE routines to use the silc_pkcs_sign/verify routines.
9889
9890 Thu Feb 22 23:05:36 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9891
9892         * Updated parts of the protocol specification to keep it up
9893           to date.
9894
9895 Thu Feb 22 15:08:20 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9896
9897         * Added List flag (SILC_PACKET_FLAG_LIST) to indicate list of
9898           payloads in one packet.
9899
9900         * Deprecated following packet types: NEW_ID_LIST, NEW_CHANNEL_LIST,
9901           NEW_CHANNEL_USER_LIST, SET_MODE and SET_MODE_LIST.  List packets
9902           use now the new List flag.
9903
9904         * Also deprecated the following packet types: REPLACE_ID,
9905           NEW_CHANNEL_USER and REMOVE_CHANNEL_USER packet types.
9906
9907         * Added list support for Notify packet in server.
9908
9909         * Added silc_server_send_notify_channel_change to send the
9910           CHANNEL_CHANGE notify type to replace channel ID's.  Deprecates
9911           the silc_server_send_replace_id.
9912
9913         * Added silc_server_send_notify_nick_change to send the
9914           NICK_CHANGE notify type.  Deprecates the function
9915           silc_server_send_replace_id.
9916
9917         * Added silc_server_send_notify_join to send the JOIN notify type.
9918           Deprecates the function silc_server_send_new_channel_user.
9919
9920         * Added silc_server_send_notify_leave to send LEAVE notify type.
9921           Deprecates the function silc_server_send_remove_channel_user.
9922
9923         * Added silc_server_send_notify_cmode and
9924           silc_server_send_notify_cumode to send CMODE and CUMODE notify
9925           types.  Deprecates the silc_server_send_set_mode function.
9926
9927         * Added SERVER_SIGNOFF notify type to indicate that server has
9928           quit.  This means that all clients on the channel from that
9929           server will drop.  This can be also used when netsplit happens.
9930
9931           Deprecated REMOVE_ID packet type since it is not needed anymore
9932           even from server.
9933
9934           Added silc_server_send_notify_server_signoff to send the
9935           SERVER_SIGNOFF notify type.  Deprecates the function
9936           silc_server_send_remove_id.
9937
9938           Added also silc_server_send_notify_signoff to send the
9939           SIGNOFF notify type.
9940
9941         * Employed the PKCS #1. It is the mandatory way to do RSA in the
9942           SILC protocol from this day on.  Changed the protocol
9943           specification as well.
9944
9945         * Added silc_server_send_notify_topic_set to send TOPIC_SET
9946           notify type.  It is used between routers to notify about
9947           topic changes on a channel.
9948
9949         * Added silc_id_dup into lib/silccore/id.[ch] to duplicate
9950           ID data.
9951
9952         * Partly updated the protocol specification to comply with the
9953           changes now made.  It is still though a bit outdated.
9954
9955         * The JOIN notify type now takes one extra argument <Channel ID>.
9956           The packet used to be destined to the channel but now the
9957           JOIN type may be sent as list thus it is impossible to
9958           destine it to any specific channel.  By adding this argument
9959           it is again possible.
9960
9961 Wed Feb 21 22:39:30 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9962
9963         * Added CREDITS file.  The CHANGES and CREDITS file will appear
9964           in the distribution as well.
9965
9966 Wed Feb 21 14:17:04 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9967
9968         * Implemented CMODE_CHANGE, CUMODE_CHANGE and TOPIC_SET notify
9969           types in the server's silcd/packet_receive.c.
9970
9971         * Implemented CMODE and CUMODE to work in router environment.
9972
9973         * Fixed minor encoding and decoding buglet from the
9974           lib/silccore/silcmode.c.
9975
9976         * Fixed buffer overflow from lib/silcclient/command.c in USERS
9977           command parsing.
9978
9979 Wed Feb 21 12:44:00 EET 2001  Mika Boström <bostik@lut.fi>
9980
9981         * Changed all SilcConfigServer* and silc_config_server* to
9982           SilcServerConfig* and silc_server_config*, respectively.
9983           Patch by Bostik.
9984
9985 Wed Feb 21 00:10:00 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9986
9987         * Associated the ID (client or server ID) to the Authentication
9988           Payload to avoid any possibility of forging.  Updated the
9989           protocol specification and the code accordingly.
9990
9991 Tue Feb 20 14:14:14 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9992
9993         * The RSA key length is now save to the RsaKey context in the
9994           key generation process in lib/silccrypt/rsa.c.  The key length
9995           is now used to figure out the maximum size of the block allowed
9996           to be encrypted/signed.
9997
9998         * Added silc_mp_mp2bin_noalloc into lib/silcmath/mpbin.[ch].  It
9999           is equivalent to the silc_mp_mp2bin but does not allocate any
10000           memory.
10001
10002         * Changed silc_mp_mp2bin API to take length argument.  If it is
10003           non-zero then the buffer is allocated that large.  If zero, then
10004           the size is approximated using silc_mp_sizeinbase, which however
10005           is not relieable.
10006
10007         * Created Global RNG API which is global RNG that application can
10008           initialize.  After initializing, any routine anywhere in the
10009           code (including library) can use RNG without allocating a new
10010           RNG object.  This was done to allow this sort of use of the
10011           RNG in code that has no chance to allocate RNG object.  All
10012           applications currently allocate this and many routines in the
10013           library use this.  Affected file lib/silccrypt/silcrng.[ch].
10014
10015         * Removed the RNG kludge from lib/silcmath/primegen.c and changed
10016           it to use the Global RNG API.
10017
10018         * Defined Authentication Payload into protocol specification that
10019           is used during SILC session to authenticate entities.  It is
10020           used for example by client to authenticate itself to the server
10021           to obtain server operator privileges.
10022
10023           Implemented this payload into the lib/silccore/silcauth.[ch].
10024           Implemented also routines for public key based authentication
10025           as the new protocol specification dictates.
10026
10027           Moved definitions of different authentication methods from
10028           lib/silccore/silcprotocol.h into lib/silccore/silcauth.h.
10029
10030         * Added silc_pkcs_encrypt, silc_pkcs_decrypt, silc_pkcs_sign,
10031           silc_pkcs_verify and silc_pkcs_sign_with_hash and
10032           silc_pkcs_verify_with_hash functions into the file
10033           lib/silccrypt/silcpkcs.[ch].
10034
10035 Mon Feb 19 19:59:28 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
10036
10037         * The client entry's userinfo pointer must be always valid.
10038           Otherwise the [<unknown>] bug will surface beacuse the WHOIS
10039           will fail since it requires the userinfo.  Now, the userinfo
10040           is allocated as "" if actual userinfo does not exist.  Actually,
10041           it must exist and it is totally Ok to drop client connections
10042           that does not announce the userinfo.  However, we will make
10043           this workaround for now.
10044
10045         * Added silc_net_get_remote_port into lib/silcutil/silcnet.[ch]
10046           to return the remote port by socket.
10047
10048 Mon Feb 19 14:26:49 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
10049
10050         * Changed SILC_SERVER_COMMAND_EXEC_PENDING macro to the name
10051           SILC_SERVER_PENDING_EXEC and added an new macro
10052           SILC_SERVER_PENDING_DESTRUCTOR which is called to free the
10053           data or when error occurs while processing the pending command.
10054
10055           Added new argument `destructor' into silc_server_command_pending
10056           and to the SilcServerCommandPending object.  This destructor is
10057           now called after calling the pending callback or if error occurs
10058           immediately.  If error occurs the actual pending callback won't
10059           be called at all - only the destructor.  The destructor may be
10060           NULL if destructor is not needed.
10061
10062           All this applies for client library code as well.  Similar
10063           changes were made there as well for the pending commands.
10064
10065           In the client, the application must now allocate the
10066           SilcClientCommandContext with the silc_client_command_alloc
10067           function.
10068
10069         * Added reference counter to the SilcServerCommandContext.  Added
10070           function silc_server_command_alloc and silc_server_command_dup
10071           functions.
10072
10073           Same type of functions added to the client library for the same
10074           purpose as well.
10075
10076         * Removed the cmd_ident from IDListData away since it is now
10077           global for all connections.  It is the command identifier used
10078           in command sending and with pending commands.  The affected file
10079           is silcd/idlist.h.
10080
10081         * Added reference counter to the SilcSocketConnection objecet to
10082           indicate the usage count of the object.  The object won't be
10083           freed untill the reference counter hits zero.  Currently only
10084           server uses this, and client ignores it.  The client must be
10085           set to use this too later.  The affected files are
10086           lib/silccore/silcsockconn.[ch].  Added also the function
10087           silc_socket_dup to increase the reference counter.
10088
10089           This was mainly added because it is possible that the socket
10090           is removed underneath of pending command or other async
10091           operation.  Now it won't be free'd and proper DISCONNECTING
10092           flags, etc. can be set to avoid sending data to connection that
10093           is not valid anymore.
10094
10095         * Added SILC_SET_DISCONNECTING to server.c when EOF is read from
10096           the connection.  After that it sets SILC_SET_DISCONNECTED.
10097           It is, however, possible that the socket data is not still freed.
10098           The silc_server_packet_process now checks that data is not
10099           read or written to connection that is DISCONNECTED.  The socket
10100           get's freed when the reference counter hits zero.
10101
10102 Mon Feb 19 00:50:57 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
10103
10104         * Changed the client operation API: channel_message operation's
10105           `sender' is now the client entry of the sender, not the nickname
10106           and the `channel' is the channel entry, not the channel name.
10107
10108           In the private_message operation the `sender' is now also the
10109           client entry of the sender not the nickname.
10110
10111           Affected file is lib/silcclient/ops.h and all applications
10112           using the client operations.
10113
10114 Sat Feb 17 22:11:50 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
10115
10116         * Moved the calling of ops->connect() from connect_to_server_final
10117           into receive_new_id functin since that is the point when the
10118           client is actually allowed to send traffic to network.  The
10119           affected file is lib/silcclient/client.c.
10120
10121 Sat Feb 17 13:15:35 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
10122
10123         * When receiving NEW_CHANNEL_LIST, NEW_CHANNEL_USER_LIST,
10124           NEW_ID_LIST and SET_MODE_LIST packets, broadcast the list packet
10125           (if needs broadcasting) instead of broadcasting the packets one
10126           by one which would make a burst in the network traffic.
10127
10128         * Added `broadcast' argument to the functions in silcd/server.[ch]
10129           silc_server_create_new_channel[_with_id] to indicate whether
10130           to send New Channel packet to primary router.
10131
10132 Sat Feb 17 01:06:44 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
10133
10134         * Added new function into the silcd/server.[ch] files:
10135           silc_server_create_new_channel_with_id to create new channel with
10136           already existing Channel ID.
10137
10138         * Added new packet type SILC_PACKET_SET_MODE_LIST into the file
10139           lib/silccore/silcpacket.h.  This packet is used t send list of
10140           Set Mode payloads inside one packet.  Server uses this to set
10141           the modes for the channels and clients on those channels, that it
10142           announced to the router when it connected to it.  The protocol
10143           specification has been updated accordingly.
10144
10145         * The silc_server_new_channel did not handle the packet coming
10146           from normal server as it normally does not send that.  However,
10147           when it announces its channels it does send it.  Implemented
10148           the support for that.
10149
10150         * Added SILC_ID_CHANNEL_COMPARE macro to compare to Channel ID's
10151           into the file lib/silccore/id.h.
10152
10153 Fri Feb 16 23:57:29 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
10154
10155         * Fixed memory leaks in the functions silc_idlist_del_client,
10156           silc_idlist_del_channel and silc_idlist_del_server in the file
10157           silcd/idlist.c.  All of those leaked like a sieve.
10158
10159         * Fixed some small memory leaks in the client's function
10160           silc_client_notify_by_server.
10161
10162         * Added functions into silcd/server.c: silc_server_announce_clients,
10163           silc_server_announce_channels and silc_server_announce_server.
10164           These functions are used by normal and router server to announce
10165           to its primary router about clients, channels and servers (when
10166           router) that we own.  This is done after we've connected to the
10167           router.
10168
10169           These functions effectively implements the following packet types:
10170           SILC_PACKET_NEW_CHANNEL_LIST, SILC_PACKET_NEW_CHANNEL_USER_LIST
10171           and SILC_PACKET_NEW_ID_LIST.
10172
10173         * Added new functions into the silcd/packet_receive.[ch]:
10174           silc_server_new_id_list, silc_server_new_channel_list and
10175           silc_server_new_channel_user_list to handle the incoming
10176           NEW_ID_LIST, NEW_CHANNEL_LIST and NEW_CHANNEL_USER_LIST packets.
10177
10178         * Added support of changing Channel ID in the function
10179           silc_server_replace_id.  If the server that announces a channel
10180           to the router already exists in the router (with same name but
10181           with different Channel ID), router is responsible to send
10182           Replace ID packet to the server and force the server to change
10183           the Channel ID to the one router has.
10184
10185         * Added new notify type SILC_NOTIFY_TYPE_CHANNEL_CHANGE to notify
10186           client that the Channel ID has been changed by the router.  The
10187           normal server sends this to the client.  Client must start using
10188           the new Channel ID as the channel's ID.
10189
10190           Implemented handling of this new type into lib/silcclient/client.c
10191           into the function silc_client_notify_by_server.
10192
10193         * Added new function silc_idlist_replace_channel_id into the files
10194           silcd/idlist.[ch] to replace the Channel ID.
10195
10196 Fri Feb 16 14:14:00 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
10197
10198         * Call silc_server_command_identify_check always when processing
10199           the IDENTIFY command in silcd/command.c
10200
10201 Thu Feb 15 20:07:37 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
10202
10203         * Added new packet type SILC_PACKET_HEARTBEAT that is used to
10204           send keepalive packets.  The packet can be sent by clients,
10205           servers and routers.
10206
10207           Added function silc_socket_set_heartbeat into the file
10208           lib/silccore/silcsockconn.[ch] to set the heartbeat timeout.
10209           If not set, the heartbeat is not performed.  The actual
10210           heartbeat is implemented in the low level socket connection
10211           library.  However, application is responsible of actually
10212           sending the packet.
10213
10214           Added silc_server_send_heartbeat to send the actual heartbeat
10215           packet into silcd/packet_send.[ch].  Server now performs
10216           keepalive with all connections.
10217
10218         * Added silc_task_get_first function into lib/silcutil/silctask.c
10219           to return the timeout task with shortest timeout.  There was a bug
10220           in task unregistration that caused problems.  TODO has been
10221           updated to include that task system must be rewritten.
10222
10223         * The client library will now resolve the client information when
10224           receiving JOIN notify from server for client that we know but
10225           have incomplete information.
10226
10227         * Rewrote parts of silc_server_remove_from_channels and
10228           silc_server_remove_from_one_channel as they did not remove the
10229           channel in some circumstances even though they should've.
10230
10231         * Encryption problem encountered in server:
10232
10233           The LEAVE command used to send the Channel Key packet to the
10234           router immediately after generating it.  However, the code
10235           had earlier sent Remove Channel user packet but not immediately,
10236           ie. it was put to queue.  The order of packets in the router
10237           was that Channel Key packet was first and Remove Channel User
10238           packet was second, even though they were encrypted in the
10239           reverse order.  For this reason, MAC check failed.  Now, this
10240           is fixed by not sending the Channel Key packet immediately but
10241           putting it to queue.  However, this is more fundamental problem:
10242           packets that are in queue should actually not be encrypted
10243           because packets that are sent immediately gets encrypted
10244           actually with wrong IV (and thus MAC check fails).  So, packets
10245           that are in queue should be encrypted when they are sent to
10246           the wire and not when they put to the queue.
10247
10248           However, the problem is that the current system has not been
10249           designed to work that way.  Instead, the packet is encrypted
10250           as soon as possible and left to the queue.  The queue is then
10251           just purged into wire.  There won't be any fixes for this
10252           any time soon.  So, the current semantic for packet sending
10253           is as follows:
10254
10255           o If you send packet to remote host and do not force the send
10256           (the packet will be in queue) then all subsequent packets to the
10257           same remote host must also be put to the queue.  Only after the
10258           queue has been purged is it safe again to force the packet
10259           send immediately.
10260
10261           o If you send all packets immediately then it safe to send
10262           any of subsequent packets through the queue, however, after
10263           the first packet is put to queue then any subsequent packets
10264           must also be put to the queue.
10265
10266           Follow these rules and everything works fine.
10267
10268 Thu Feb 15 14:24:32 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
10269
10270         * Added new function silc_server_remove_clients_by_server to
10271           remove all client entries from ID list when the server connection
10272           is lost.  In this case it is also important to invalidate all
10273           client entires as they hold the invalid server entry.  This
10274           fixes fatal bug when server has lost connection and will reconnect
10275           again.
10276
10277 Wed Feb 14 16:03:25 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
10278
10279         * Made some sanity checks to silc_server_daemonise like to check
10280           whether the requested user and group actually exists.
10281
10282         * Added sanity check to SKE's silc_ske_responder_finish to check
10283           that the public and private key actually is valid.
10284
10285         * Invalidate the client's nickname when receiving Replace ID
10286           packet and the Client ID is being replaced.  This means that the
10287           server will query the nickname if someone needs it (client)
10288           a bit later.
10289
10290         * Sort the ID Cache in client library when the ID Cache data
10291           has changed (needs sorting).
10292
10293         * Do not allow for SILC client to create several connections to
10294           several servers.  The client does not support windows right now
10295           and generating multiple connections causes weird behaviour.
10296
10297           Irssi-silc client does support windows and can handle several
10298           connections without problems, see: www.irssi.org and SILC plugin.
10299
10300         * Fixed some places where client was added to the IDList.  The
10301           rule of thumb is following (in order to get everything right):
10302           If the client is directly connected local client then the
10303           `connection' argument must be set and `router' argument must be
10304           NULL to silc_idlist_add_client function.  If the client is not
10305           directly connected client then the `router' argument must
10306           bet set and the `connection' argument must be NULL to the
10307           silc_idlist_add_client function.
10308
10309         * The funtion silc_server_packet_send_local_channel actually did
10310           not check whether the client was locally connected or not.  It
10311           does that now.  Fixed a bug related to LEAVE command.
10312
10313         * Fixed Remove Channel User payload parsing bug in server's
10314           silcd/packet_receive.c.  Fixed a bug related to LEAVE command.
10315
10316         * The server's silc_server_save_channel_key now checks also the
10317           global ID list for the channel as it might not be in the local
10318           list.  Fixed a bug related to LEAVE command.
10319
10320         * Is this the end of the [<unknown>] buglet that has been lurking
10321           around for a long time?  A little for loop fix in server's
10322           silc_server_command_whois_parse that is used by both IDENTIFY
10323           and WHOIS command.  At least, this was a clear bug and a cause
10324           of one type of [<unknown>] buglet.
10325
10326         * WHOIS and IDENTIFY commands call the function
10327           silc_server_command_[whois/identify]_check function even if
10328           we are not router server.
10329
10330 Tue Feb 13 19:55:59 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
10331
10332         * Added --with-gmp configuration option.  If set the GMP
10333           is always compiled in the SILC source tree.  If not set then
10334           it is checked whether the system has the GMP3 installed.  If
10335           it has then the GMP won't be compiled (the system's headers
10336           and library is used), if it doesn't have it then the GMP is
10337           compiled in the SILC source tree.
10338
10339 Mon Feb 12 11:20:32 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
10340
10341         * Changed RSA private exponent generation to what PKCS #1
10342           suggests.  We try to find the smallest possible d by doing
10343           modinv(e, lcm(phi)) instead of modinv(e, phi).  Note: this is
10344           not security fix but optimization.
10345
10346 Sun Feb 11 18:19:51 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
10347
10348         * Added new config entry [Identity] to fork the server and run
10349           it as specific user and group.  A patch from Bostik.
10350
10351         * Imported Dotconf configuration library into lib/dotconf.
10352           This will be used to create the SILC configuration files later.
10353           It will appear in the distsribution after this commit.
10354
10355 Sat Feb 10 21:13:45 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
10356
10357         * A big code auditing weekend happening.  Auditing code for
10358           obvious mistakes, bugs and errors.  Also, removing any code
10359           that is obsolete.
10360
10361           Removed files for being obsolete:
10362
10363           o lib/silcutil/silcbuffer.c (the buffer interface is entirely in
10364           inline in the file lib/silcutil/silcbuffer.h)
10365
10366           o lib/silcutil/silcbufutil.c (the header has inline versions)
10367
10368           Changed code to fix possible error conditions:
10369
10370           o The buffer formatting routines now check that the destination
10371           buffer really has enough space to add the data.  This applies for
10372           both buffer formatting and unformatting
10373           (lib/silcutil/silcbuffmt.[ch]).  Also, the entire buffer
10374           unformatting was changed to accomodate following rules:
10375           XXX_*STRING_ALLOC will allocate space for the data into the pointer
10376           sent to the function while XXX_*STRING will not allocate or copy
10377           the data into the buffer.  Instead it sets the pointer from the
10378           buffer into the pointer sent as argument (XXX_*STRING used to
10379           require that the pointer must be allocated already).  This change
10380           makes this whole thing a bit more consistent and more optimized
10381           (note that the data returned in the unformatting with XXX_*STRING
10382           must not be freed now).  The routines return now -1 on error.
10383
10384           o Tried to find all code that use buffer_format and buffer_unformat
10385           and added return value checking to prevent formatting and
10386           especially unformatting errors and possible subsequent fatal
10387           errors.
10388
10389           o Changed ske->x and ske->KEY to mallocated pointers in
10390           lib/silcske/silcske.h.  Fixed possible data and memory leak.
10391
10392           o Added return value checking to all *_parse* functions.  Fixed
10393           many memory leaks as well.
10394
10395           o Added length argument to silc_id_str2id in lib/silccore/id.[ch]
10396           so that buffer overflows would not happen.  All code now also
10397           checks the return value as it can fail.
10398
10399 Mon Feb  5 20:08:30 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
10400
10401         * Added reconnection support to server if the normal server looses
10402           its connection to the router (for example if router is rebooted).
10403           The server performs normal reconnection strategy implemented
10404           to the server.  Affected file silcd/server.c.
10405
10406 Sun Feb  4 13:18:32 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
10407
10408         * Added new packet type SILC_PACKET_SET_MODE that is used to
10409           distribute the information about changed modes (for clients,
10410           channels and clients channel modes) to all routers in the
10411           network.  Updated the protocol specification accordingly.
10412
10413           Added functions into silcd/packet_send.c and
10414           silcd/packet_receive.c: silc_server_send_set_mode,
10415           silc_server_set_mode.
10416
10417           Added new files silcmode.[ch] into lib/silccore that implements
10418           the encoding and decoding of Set Mode Payload.  Added new type
10419           SilcSetModePayload.  Moved the definitions of different modes
10420           from lib/silccore/silcchannel.h into lib/silccore/silcmode.h.
10421
10422 Sat Feb  3 15:44:54 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
10423
10424         * Oops, a little mistake in server's connection authentication
10425           protocol.  The protocol is not ended with FAILURE but with
10426           SUCCESS if the authentication is Ok. :)  Affected file is
10427           silcd/protocol.c.
10428
10429         * Implemented NICK_CHANGE notify handling in server in the file
10430           silcd/packet_receive.c  The NICK_CHANGE notify is distributed to
10431           the local clients on the channel.  After the changing nickname
10432           in router environment snhould work and the [<unknown>] nickname
10433           should appear no more.
10434
10435           The silc_server_replace_id function that receives the Replace ID
10436           payload now sends the NICK_CHANGE notify type also in the file
10437           silcd/packet_receive.c
10438
10439         * Changed WHOIS and IDENTIFY command to support the maximum amount
10440           of arguments defined in protocol specs (3328 arguments).  This
10441           fixed a bug that caused problems when there were more than three
10442           users on a channel.
10443
10444 Fri Feb  2 11:42:56 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
10445
10446         * Added extra parameter, command identifier, to the
10447           silc_client_send_command so that explicit command identifier
10448           can be defined.
10449
10450           Changed that ID list routines uses specific command identifier
10451           when sending WHOIS/IDENTIFY requests to the server so that they
10452           can be identified when the reply comes back.
10453
10454           Affected files lib/silcclient/command.[ch],
10455           lib/silcclient/client.c and lib/silcclient/idlist.[ch].
10456
10457         * Added `sender' argument to silc_server_packet_send_to_channel
10458           to indicaet the sender who originally sent the packet to us
10459           that we are now re-sending.  Ignored if NULL.  Affected file
10460           silcd/packet_send.[ch].
10461
10462         * Added some server statistics support in silcd/server_internal.h
10463           SilcServerStatistics structure and around the server code.  Also
10464           send some nice statistics information when client is connecting
10465           to the client.
10466
10467 Thu Feb  1 23:31:21 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
10468
10469         * Fixed channel ID decoding in server's JOIN command reply in
10470           silcd/command_reply.c
10471
10472         * Fixed braodcasting of replace ID payload to not to send it if
10473           we are standalone server in silcd/packet_receive.c.
10474
10475         * Fixed all channel message sending routines to not to send
10476           packets to clients that has router set, since they are routed
10477           separately in the same function earlier.  Affects file
10478           silcd/packet_send.c and all channel packet sending functions.
10479
10480         * In USERS reply, res_argv[i] are not allocated, the table
10481           is allocated.  Thus changed that free the table, not its
10482           internals.
10483
10484         * In server's whois_check and identify_check if the client is
10485           locally connected do not send any WHOIS commands - they are not
10486           needed.
10487
10488 Thu Feb  1 21:32:27 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
10489
10490         * Fixed some minor bugs in client when sending WHOIS command.  The
10491           arguments was in wrong order.
10492
10493         * Removed statis function add_to_channel from server in
10494           silcd/command.c that was previously used with the joining but
10495           is obsolete now.
10496
10497         * Tested USERS command in router environment successfully with two
10498           routers, two servers and two clients.
10499
10500 Thu Feb  1 00:54:26 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
10501
10502         * Reorganized the USERS command and command reply in client library
10503           in lib/silcclient/command.c and lib/silcclient/command_reply.c.
10504           When the command is given by user we register a pending command
10505           callback that will reprocess the command after the reply has been
10506           received from the server.  When reprocessing the packet we then
10507           display the information.  Thus, the USERS information is displayed
10508           now in the command callback instead of in the command reply
10509           callback.  The processing of the command is same as previously
10510           when server has sent the command reply in the JOINing process.
10511
10512         * Added to USERS command in silcd/command_reply.c to join the client,
10513           we didn't use to know about, to the channel after we've created
10514           a client entry for it.  Also, for clienet we did know already still
10515           check whether it is on the channel or not and add it if not.
10516
10517         * Removed silc_server_command_join_notify as the function and its
10518           use was obsolete.
10519
10520 Tue Jan 30 22:39:15 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
10521
10522         * Changed the client's pending command handling to the same as the
10523           server's pending command handling.  It is also now possible to
10524           execute command reply functions from other command reply
10525           function as the function callbacks for commands and command
10526           replies are one and same.  The pending commands are not static
10527           list anymore, it is mallocated SilcDList in lib/silcclient/client.h
10528           in client connection context.  Thus, pending commands are server
10529           connection specific as it is convenient.
10530
10531           Changed the function silc_client_command_pending and
10532           silc_client_command_pending_del and added new function
10533           silc_client_command_pending_check.  Removed the
10534           SILC_CLIENT_CMD_REPLY_EXEC, and SILC_CLIENT_PENDING_COMMAND_CHECK
10535           macros.
10536
10537         * Added cmd_ident, current command identifier, to the client
10538           connection context in lib/silcclient/client.h to keep track on
10539           command identifiers used in command sending.  Client's command reply
10540           function handling now supports the mandatory command identifiers.
10541
10542         * Added SILC_CLIENT_COMMAND_EXEC_PENDING macros to all command reply
10543           funtions in client to fully support pending command callbacks.
10544
10545         * NOTE: the name_list in USERS (old NAMES) command is NOT sent anymore
10546           as one of the arguments to the application in the command reply
10547           client operation.
10548
10549         * NOTE: The FORWARDED flag is depracated.  It used to be depracated
10550           before first releasing SILC but came back.  Now it is removed again
10551           and should come back nomore.  The FORWARDED flag was used only
10552           by the JOINing procedure by forwarding the command packet to router.
10553           Now, the JOINing procedure has been changed to more generic (due
10554           to various router environment issues) and FORWARDED is not needed
10555           anymore for anything.  The protocol specification is yet to be
10556           updated.
10557
10558           Now, removed silc_server_packet_forward from server and the flag
10559           SILC_PACKET_FORWARDED from lib/silccore/silcpacket.h.
10560
10561 Tue Jan 30 00:05:05 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
10562
10563         * Renamed NAMES command to USERS command.  The NAMES was named that
10564           due to historical reasons.  Now it is renamed.  Also, rewrote
10565           parts of the USERS command.  The nickname list is not sent anymore
10566           by the server.  Only Client ID and mode lists are sent in the USERS
10567           command.  Changed this also to the protocol specification.
10568
10569           The client now resolves the names and stuff after it receives
10570           the USERS list from the server when joining to the channel.
10571
10572         * WHOIS and IDENTIFY commands has been changed to support multiple
10573           Client ID's per command.  One can now search for multiple users
10574           in the network by sending only one WHOIS or IDENTIFY command.
10575           Changed the code and the protocol specifications.
10576
10577         * Removed silc_server_command_identify_parse and changed that IDENTIFY
10578           uses silc_server_command_whois_parse to parse the request. */
10579
10580         * If normal server, do not parse the WHOIS and IDENTIFY requests
10581           before sending it to the router.  Saves some time.
10582
10583 Sun Jan 28 16:19:49 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
10584
10585         * Fixed JOIN command on client library.  Wrong number of arguments
10586           used to crash the client.
10587
10588         * Added silc_server_channel_has_global function to check whether
10589           channel has global users or not.
10590
10591         * Added silc_server_channel_has_local function to check whether channel
10592           has locally connected clients on the channel.
10593
10594         * The silc_server_remove_from_one_channel now checks whether the
10595           channel has global users or not after given client was removed from
10596           the channel.  It also checks whether the channel has local clients
10597           on the channel anymore.  If it does not have then the channel entry
10598           is removed as it is not needed anymore.
10599
10600         * The silc_server_notify now checks on JOIN notify whether the joining
10601           client is one of locally connected or global.  If it is global then
10602           the channel has now global users on the channel and that is marked
10603           to the channel entry.  Also, it now saves the global client to
10604           global list who is joining and JOINs it to the channel.  This is
10605           for normal server, that is.
10606
10607           Changed silc_server_send_notify_on_channel,
10608           silc_server_packet_relay_to_channel and
10609           silc_server_packet_send_to_channel check if we are normal server
10610           and client has router set (ie. global client) do not send the
10611           message to that client, as it is already routed to our router.
10612
10613         * Implemented LEAVE notify type handling in silc_server_notify
10614           function.
10615
10616         * Tested LEAVE command in router environment successfully.  Tested
10617           with two routers, two servers and two clients.
10618
10619         * Updated TODO.
10620
10621         * idlist_find_xxx_by_id routines now dumps the ID on the debug mode.
10622
10623         * Implemented SIGNOFF notify type handling in silc_server_notify
10624           function.
10625
10626         * silc_server_remove_id now removes the client entry from all channels
10627           it has joined and thusly sends SIGNOFF notify type.
10628
10629         * Rewrote the NAMES list generation in server by removing two excess
10630           loops.  The lists are created now inside one loop.
10631
10632 Sat Jan 27 22:34:56 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
10633
10634         * silc_server_remove_channel_user checks now also global list
10635           for channel and client.
10636
10637         * silc_server_new_channel_user checks now both local and global
10638           list for channel and client.  Fixed a bug in client id decoding.
10639           Used to decode wrong buffer.
10640
10641         * silc_server_channel_message checks now both local and global
10642           list for channel entry.
10643
10644         * Tested channel joining (hence JOIN) in router environment
10645           successfully.  Tested with two routers, two servers and two
10646           clients.
10647
10648         * Tested channel message sending in router environment successfully.
10649
10650 Thu Jan 11 03:22:57 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
10651
10652         * Added silc_server_save_channel_key into server.[ch] to save the
10653           received channel key in Channel Key payload processing. It is
10654           also used in JOIN command reply handling.
10655
10656           Equivalent function silc_client_save_channel_key added into
10657           client.[ch] into client library.
10658
10659         * Changed JOIN command reply to send information whether the channel
10660           was created or not (is existing already) and the channel key
10661           payload.  Changed protocol specs accordingly.
10662
10663         * Fixed bugs in WHOIS and IDENTIFY command reply sending when
10664           the request was sent by ID and not by nickname.  Crashed on
10665           NULL dereference.
10666
10667 Sat Dec 23 21:55:07 EET 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
10668
10669         * Fixed a bug in Client library.  IDENTIFY and WHOIS reply functions
10670           now correctly save the received data.
10671
10672         * silc_server_free_sock_user_data now notifies routers in the
10673           network about entities leaving the network.
10674
10675           At the same time implemented functions silc_server_remove_id
10676           and silc_server_send_remove_id to receive and send REMOVE_ID
10677           packets.  The packet is used to notify routers in the network
10678           about leaving entities.  The ID removed will become invalid in
10679           the network.
10680
10681         * Added function silc_idlist_del_server into server. Removes and
10682           free's server entry from ID list.
10683
10684         * silc_server_private_message function now checks, if we are router,
10685           that the destination ID really is valid ID, naturally.
10686
10687         * In router when NEW_ID packet is received (for new client) the
10688           hash of the Client ID is saved in the ID Cache but the
10689           client->nickname is set to NULL, instead of putting the hash
10690           to it as well.
10691
10692           IDENTIFY command now also checks that client->nickname must be
10693           valid. If it is not if will request the data from the server who
10694           owns the client.  Added new function
10695           silc_server_command_identify_check.
10696
10697         * Added silc_command_set_command into lib/silccore/silcommand.[ch]
10698           to set the command to already allocated Command Payload.
10699
10700         * Tested private message sending in router environment with two
10701           routers, two servers and two clients.  Fixed minor bugs and now
10702           it works fine.
10703
10704         * Fixed segfault from client's NAMES command. Used to crash if
10705           not on any channel.
10706
10707         * Forwarded packets must not be routed even if it is not destined
10708           to the receiver.  Changed server code comply with this.
10709
10710 Sun Dec 17 14:40:08 EET 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
10711
10712         * Added `require_reverse_mapping' boolean value to ServerParams
10713           structure. If TRUE (not default) the server will require that
10714           the connecting host has fully qualified domain name.
10715
10716           If the reverse mapping is not required and hostname could not be
10717           found the IP address is used as hostname.
10718
10719 Sat Dec 16 17:39:54 EET 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
10720
10721         * Implemented version string checking to both client and server.
10722           The check is incomplete currently due to the abnormal version
10723           strings used in development version of SILC.
10724
10725         * Changed all command functions in server to use the new
10726           CHECK_ARGS macro.
10727
10728 Fri Dec 15 15:55:12 EET 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
10729
10730         * Changed char *data to unsigned char *data in ID Cache system to
10731           support binary data as ID Cache data. Changed code to support
10732           binary data in lib/silccore/idcache.c.
10733
10734         * Renamed silc_server_packet_relay_command_reply to
10735           silc_server_command_reply as it is normal packet receiving
10736           function. Rewrote the function to accept command replys for
10737           servers and not only for clients.
10738
10739         * Mark remote router always as registered server if we are connecting
10740           to it.  Otherwise, commands sent by the router to us are ignored.
10741
10742         * All ID List find routines now returns the ID Cache Entry pointer
10743           as well if requested.
10744
10745         * WHOIS command works now in router environment, tested with two
10746           routers, two servers and two clients.
10747
10748         * Cleaned up and rewrote IDENTIFY command. IDENTIFY should work now
10749           in router environment (as it is almost equivalent to WHOIS) but
10750           hasn't been tested thoroughly.  Added new functions:
10751
10752           silc_server_command_identify_parse
10753           silc_server_command_identify_send_reply
10754           silc_server_command_identify_from_client
10755           silc_server_command_identify_from_server
10756
10757         * Disabled route cache adding because adding two different ID's with
10758           same IP replaces the old cache entry thus giving wrong route.
10759           The entry->router->connection is always the fastest route anyway
10760           so route cache may not be needed.  Of course, new routes maybe
10761           established after receiving the ID when the entry->router->connection
10762           might not be anymore the most optimal.
10763
10764 Thu Dec 14 15:55:35 EET 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
10765
10766         * Add route cache for received ID for fast routing.
10767
10768         * Added silc_server_packet_route to route received packet on router
10769           that is not destined to us.
10770
10771         * Renamed silc_server_get_route to silc_server_route_get.
10772
10773         * Added id_string and id_string_len fields into SilcServer to
10774           include encoded ServerID for fast comparing without excess
10775           encoding of the ID's.
10776
10777         * Cleaned up WHOIS command on server side. Added following static
10778           functions:
10779
10780           silc_server_command_whois_parse
10781           silc_server_command_whois_check
10782           silc_server_command_whois_send_reply
10783           silc_server_command_whois_from_client
10784           silc_server_command_whois_from_server
10785
10786         * Added macro SILC_SERVER_COMMAND_CHECK_ARGC to check mandatory
10787           arguments in command replies. All command functions should be
10788           updated to use this macro.
10789
10790 Sun Dec 10 23:52:00 EET 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
10791
10792         * Minor typo fixes on command reply handling on server.
10793
10794 Tue Nov 28 11:05:39 EET 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
10795
10796         * Added silc_server_command_add_to_channel internal routine to add
10797           the client to the channel after router has created the channel and
10798           sent command reply to the server.
10799
10800         * Added generic silc_server_send_command to send any command from
10801           server.
10802
10803         * Use static buffer with ID rendering instead of duplicating data.
10804
10805 Mon Nov 27 21:39:40 EET 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
10806
10807         * Fixed a channel user mode bug when joining to a channel server gave
10808           everybody channel founder rights, oops.
10809
10810         * We mark ourselves as the router of the incoming server connection
10811           if we are router ourselves.  This way we can check in some packet
10812           sending functions whether it is locally connected server.  For
10813           incoming router connections we put NULL.
10814
10815         * For router sending packets locally means now always sending the
10816           packet cell wide; to local clients and local servers.  For normal
10817           server sending packet locally means sending it to only local
10818           clients.
10819
10820         * Fixed the JOIN command to really work in router environment.  If the
10821           channel is created it is always created by the router.  Router is
10822           also responsible of making the initial joining to the channel,
10823           sending JOIN notify to the sending server and distributing
10824           NEW_CHANNEL and NEW_CHANNEL_USER packets.  Hence, if the channel
10825           does not exist server doesn't do anything else but forward the
10826           command to the router which performs everything.
10827
10828         * Added silc_server_send_channel_key function to send the Channel Key
10829           payload.
10830
10831         * Added silc_server_create_channel_key to create new channel key.  The
10832           channel key is now re-generated everytime someone joins or leaves
10833           a channel, as protocol dictates.  Note: channel->key_len is the
10834           key length in bits.
10835
10836 Wed Nov 22 22:14:19 EET 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
10837
10838         * Splitted server.[ch] finally.  Created now packet_send.[ch] and
10839           packet_receive.[ch] to separate packet sending and receiving
10840           routines.  The server.[ch] now includes everything else including
10841           actual packet processing (writing and reading data) and other
10842           server issues.
10843
10844           Renamed silc_server_private_message_send_internal to
10845           silc_server_send_private_message.  The routine is still though
10846           used only to relay private messages as server does not send
10847           private messages itself.
10848
10849           Renamed silc_server_new_channel to silc_server_create_new_channel
10850           and added new function sicl_server_new_channel that handles the
10851           incoming New Channel packet.  Added also new sending function
10852           silc_server_send_new_channel to send New Channel Payload.
10853
10854         * Added new function silc_server_notify to process incoming notify
10855           packet to the server/router. Server may then relay the notify
10856           to clients if needed.
10857
10858         * Added new function silc_server_new_channel_user to process incoming
10859           New Channel User packet.  Router will redistribute the packet and
10860           send JOIN notify to its local clients and locally connected servers
10861           if needed.  Normal server will send JOIN notify to its local client
10862           on same channel when received this packet.  Added also corresponding
10863           sending function silc_server_send_new_channel_user to sent the
10864           payload.
10865
10866         * Added boolean route argument to send_notif_to_channel and
10867           packet_send_to_channel functions to attempt to route the packet
10868           if it is TRUE and send only locally if it is FALSE.
10869
10870 Tue Nov 21 19:49:31 EET 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
10871
10872         * silc_server_replace_id now broadcasts the received replace ID
10873           packet if it is not broadcast packet already. The router must
10874           broadcast to inform other routers about changed ID.
10875
10876         * Added backpointer to server's router into SilcServer context in
10877           silcd/server_internal.h.
10878
10879         * Fixed silc_server_packet_broadcast to send correct broadcast
10880           packets.
10881
10882         * The channel key is now distributed to the local client as soon
10883           as it is received from the router (in router environment) so that
10884           no other packet may be sent for the channel until client has
10885           received the key.
10886
10887         * silc_server_remove_channel_user now broadcasts the received
10888           Remove Channel User packet if it is not broadcast packet already.
10889           The router must broadcast to inform other routers about removed
10890           channel user.
10891
10892         * Added users field into SilcPacketContext that is a reference count
10893           of the context.  One can increase the reference count by calling
10894           silc_packet_context_dup which is now changed to just increase the
10895           reference count instead of duplicating the data.  The reference
10896           count is decresed by calling silc_packet_context_free that will
10897           free the data after the reference count hits zero.
10898
10899           For now on the packet context and everything allocated into it
10900           (including the raw packet from network) must be freed by calling
10901           the new silc_packet_context_free function.  Added also new function
10902           silc_packet_context_alloc that must be used now to allocate the
10903           context.  This also means that if a routine is asynchronous from
10904           silc_[client/server]_packet_parse_type the packet context must
10905           be duplicated by calling silc_packet_context_dup.  Otherwise it
10906           gets free'd after silc_[client/server]_packet_parse_type returns.
10907           Also, one must remember that if packet is duplicated then its
10908           reference count must be decresed by calling the free function as
10909           many times as it was duplicated.
10910
10911         * Changed SilcBuffer field from protocol contexts to SilcPacketContext
10912           from both client and server.
10913
10914 Mon Nov 20 23:47:03 EET 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
10915
10916         * Made joining to a channel working in router environment.
10917
10918         * Cleaned up JOIN command on server side and create function
10919           silc_server_command_join_channel internal routine to make the
10920           joining happen.
10921
10922 Thu Nov  9 21:12:39 EET 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
10923
10924         * Changed silc_command_pending list to SilcDList.  Also, added
10925           `ident' field to SilcServerCommandPending structure to identify
10926           the reply and to call correct callback.
10927
10928           Added silc_server_command_pending_check function to replace the
10929           corresnponding macro.  The silc_command_pending list is not
10930           extern anymore.
10931
10932         * Added silc_command_set_ident into lib/silccore/silccommand.[ch]
10933           to set identifier to previously allocated Command Payload.  It
10934           is used to set identifier for command when resending Command
10935           Payload.
10936
10937         * Added silc_command_payload_encode_payload to encode Command
10938           Payload buffer from SilcCommandPayload structure.
10939
10940         * Added silc_argument_payload_encode_payload to encode Argument
10941           payload buffer from SilcArgumentPayload structure.
10942
10943 Wed Nov  8 21:03:28 EET 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
10944
10945         * Changed WHOIS command to support router connection on server side.
10946           The whois request is always sent to router unless the server is
10947           standalone server.  After server has received the reply from the
10948           router will it send the reply to the client.
10949
10950         * Added silc_server_packet_broadcast into silcd/server.[ch] to
10951           broadcast received broadcast packet.  The function is used only
10952           by router.  The broadcast packet is always sent to the router's
10953           primary route.
10954
10955         * Added silc_id_render function in lib/silcutil/silcutil.[ch] to
10956           render given ID to printable string, for log files for example.
10957
10958 Tue Nov  7 22:14:19 EET 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
10959
10960         * Made basic router to router connections working.  At least they
10961           can now connect to each other but nothing really works the way
10962           they are supposed - yet.
10963
10964         * Added new initiator token to RouterConnection configuration
10965           file in silcd/serverconfig.[ch].  It is used to tell whether we
10966           are the initiator to the remote router or whether we'll expect
10967           the other end to connect.
10968
10969         * Moved registering of listener task to silc_server_init, hence
10970           the server starts listenning as soon as it is run, even if it
10971           does not have connections to other routers.  Let's see how well
10972           this will work.
10973
10974         * Changed default connection retry timeouts for more suitable in
10975           silcd/server.h.
10976
10977         * Removed cipher and such arguments from silc_idlist_add_client
10978           and silc_idlist_add_server prototypes from silcd/idlist.[ch].
10979           Added new function silc_idlist_add_data to add the keys and stuff
10980           to any ID entry.
10981
10982         * Added SilcIDListData structure and added it to SilcClientEntry
10983           and SilcServerEntry as their first field in the structure.  This
10984           way we can explicitly cast the ID entries to the SilcIDListData
10985           structure and get common data for the entries.  In past, we had
10986           to first check what type of connection it is and then cast it to
10987           correct ID entry type.  Now, we can directly cast the opaque
10988           pointer to the SilcIDListData (no matter what ID entry it actually
10989           is) and get the data needed.
10990
10991 Mon Nov  6 21:56:12 EET 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
10992
10993         * Wow, found a bug in scheduler.  The scheduler uninitialized itself
10994           in some circumstances even if threre were timeout tasks, though not
10995           IO tasks, but tasks anyway.  Now fixed.
10996
10997         * Defined SilcServerConnection structure to hold connection specific
10998           stuff about directly connected servers and routers.  The definition
10999           is currently in silcd/server_internal.h.  I thought about having
11000           a bit more important role fro this struct but for now it is used
11001           only when connecting to other server (or router actually).
11002
11003         * Added connecting retry support in server when connecting to
11004           router(s).  The retry feature implement exponential backoff
11005           algorithm.  Also, added SilcServerParams structure to hold default
11006           parameters for server.  For now, it include these retry settings
11007           and are hard coded.  After server is moded to be as Silc Server
11008           Library this structure will be more important.
11009
11010 Sun Nov  5 22:28:44 EET 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
11011
11012         * Changed client librarys channel->clients table to SilcList and
11013           changed code accordingly.
11014
11015 Thu Nov  2 16:28:01 EET 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
11016
11017         * Changed client's channel table to SilcList and changed code
11018           accordingly.  Also changed SilcChannelClientEntry to include back-
11019           pointer to the channel so that client entry can use that structure
11020           as list as well and we have fast cross-reference to the channel.
11021           This change dramatically decreased the complexity of channel
11022           handling with client entry and vice versa (removed one extra
11023           loop when searching for channel entry from many functions).
11024
11025         * Changed server->sim from table to SilcDList and changed code
11026           accordingly.
11027
11028         * NAMES command can now be used from user interface.  It will show
11029           the user list on the channel, neatly.
11030
11031         * Added realname pointer to SilcClientEntry in lib/silcclient/idlist.h.
11032           Code now saves realname of the user if it becomes available.
11033
11034         * Renamed configure.in to configure.in.pre and made ./prepare
11035           script to automatically add correct version string to
11036           configure.in which it creates from configure.in.pre.
11037
11038 Wed Nov  1 17:21:26 EET 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
11039
11040         * NAMES command reply now shows users mode with the nickname when
11041           joining to channel.
11042
11043         * Moved silc_client_ch[u]mode[_char] functions from
11044           silc/clientutil.[ch] to lib/silcclient/client.[ch].  Though, that
11045           place sucks, they are utility functions and should be in some
11046           other file.
11047
11048         * Fixed some unsigned int's to unsigned short's.  Patch by cras.
11049
11050         * Fixed contrib/getopt*.[ch] to not require config.h.  Patch by
11051           cras.
11052
11053 Tue Oct 31 20:10:37 EET 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
11054
11055         * Updated README.
11056
11057         * Added TRQ (efficient deque and list library) into lib/trq.  This is
11058           a very good list library that is currently used in the SILC.  Defined
11059           SilcList API over the library because I didn't like the API very
11060           much.  See lib/trq/silclist.h for the API and examples of how to
11061           use the API.  Fixed various places in the code to use the new
11062           SilcList API. The SilcList is meant for lists that has a structure
11063           already defined as a list.  It is not suitable to add just some
11064           context to the list (in TRQ, the context is the list actually).
11065
11066           So, I defined SilcDList that can be used for the purpose where
11067           predefined list structure does not exit.  This can be used as
11068           such list.  Now some context just can be added to the SilcDList.
11069           Currently this list is not used in the SILC just yet, though there
11070           are a lot places where this can replace dynamically allocated
11071           tables and I will fix these places, later, to use SilcDList.
11072           See lib/trq/silcdlist.h for SilcDList (they are all inline functions,
11073           and use TRQ internally).
11074
11075           Also fixed some annoying warning messages that the original TRQ
11076           code generated.  Also minor changes to TRQ's Makefile.in.
11077
11078         * Added support for querying by Client ID to both WHOIS and
11079           IDENTIFY commands into server, as required by the protocol.
11080
11081         * Removed method function pointers from SilcBuffer structure. They
11082           weren't used to anything and just increased the context size for
11083           no good reason.  This change also made silc_buffer_alloc and
11084           silc_buffer_free functions inline functions.
11085
11086         * Disabled command flooding detection support until it's fixed so
11087           that it accepts commands in but does not execute them more than once
11088           in two seconds.
11089
11090         * Added silc_net_localhost(), to return local hostname, into
11091           lib/silcutil/silcnet.[ch].  Also added client->hostname pointer
11092           that must be initialized before calling silc_client_init.
11093
11094         * Added new function: silc_server_send_notify_on_channels to send
11095           notify messages to all channels client has joined.  It is assured
11096           that the message is sent only once per client.
11097
11098         * Moved silc_log_format (from lib/silcutil/silclog.[ch] into
11099           lib/silcutil/silcutil.[ch] as silc_format function.  The new
11100           function is generic and is used by server as well, not only by
11101           the logging routines.
11102
11103         * Added new SKE status type: SILC_SKE_STATUS_BAD_VERSION to indicate
11104           the provided version string was not acceptable.  Added new function:
11105           silc_ske_check_version into lib/silcske/silcske.h.  The function
11106           must be implemented by the application (client or server) and it
11107           does not reside in the SKE library.  The function checks the version
11108           string remote end sent.
11109
11110         * Added back pointers (to opaque context and to SilcSocketConnection)
11111           into SilcPacketContext structure into lib/silccore/silcpacket.h.
11112
11113         * Added silc_packet_context_dup into lib/silccore/silcpacket.[ch] to
11114           duplicate packet context structure.
11115
11116         * Changed `notify' client operation to send same arguments as client
11117           receives from server except for ID's.  ID's are mapped to correct
11118           ID entry and that is returned.  Also, if channel entry is not sent
11119           by server but the notify is for channel the channel entry is sent
11120           to application (otherwise application doesn't know that it is for
11121           channel (library gets it from packet's Destination ID)).
11122
11123         * Added silc_client_remove_from_channels into client library to
11124           remove a client from all channels it has joined to.  Used when
11125           received SIGNOFF notify from server.  Added also new function
11126           silc_client_replace_from_channels to replace old ID entry with
11127           new ID entry on all channels.  Used when received NICK_CHANGE
11128           notify from server.
11129
11130         * Fixed ID Cache list handling in silc_idlist_get_client in
11131           lib/silcclient/idlist.c.  Also, added silc_idlist_get_client_by_id
11132           to get (or query) client by ID.
11133
11134         * Updated TODO list.
11135
11136         * Added connection authentication status message defined by the
11137           protocol: SILC_CONN_AUTH_OK and SILC_CONN_AUTH_FAILED and added the
11138           support for these into the code in client and server side.
11139
11140         * Added generic function silc_client_send_command to send any command
11141           with variable argument list.  Application should use this function
11142           to send commands if the command functions provided by the library
11143           does not suite for the application's user interface needs.
11144
11145         * Added new `failure' client operation.  Application is notified about
11146           received failure packet if client is executing a protocol.  In this
11147           case the protocol's execution has failed.
11148
11149         * Added SKE's end notify to send the SKE_SUCCESS notify message that
11150           is required by the protocol.
11151
11152         * Added SILC_PROTOCOL_STATE_FAILURE to indicate received failure
11153           packet from remote.  SILC_PROTOCOL_STATE_ERROR indicates local
11154           error at our end.
11155
11156         * Added status flag to SilcSKE object to indicate realtime status
11157           of the SKE protocol.
11158
11159         * Application receives now exactly same command reply arguments as
11160           the library receives from server.  However, if ID is received the
11161           corresponding ID entry is returned to the application (eg. Client
11162           ID is mapped to correct SilcClientEntry entry and that is returned).
11163           Changed command_reply client operation due to this change.
11164
11165         * Changed all ID's in commands and in command replys as ID Payloads.
11166           Change affected both client and server side codes.
11167
11168           All ID's sent in SILC network (with execption of ID's in SILC
11169           Packet header) are sent in ID Payload to support variable length
11170           ID's.
11171
11172         * Server now notifies nick changes and notifies all clients on
11173           the channels about the new nickname (about the new Client ID,
11174           actually).
11175
11176         * Implemented CMODE command to change channel modes. Supports all
11177           channel modes defined by the protocol specs except ban and invite
11178           lists. (Also, private channel key mode is supported but support for
11179           setting private channel key in client is missing, thus, this mode
11180           has no effect on client side (except that server requires that the
11181           client uses private channel key and normal channel traffic does not
11182           work anymore)).
11183
11184           Also, invite mode works per se, but INVITE command does not work
11185           yet correctly, so you can set channel as invite only channel but
11186           inviting clients to the channel does not work (it is yet to be
11187           thought what's the best way to do it).
11188
11189         * Added new command SILC_COMMAND_CUMODE to change user mode on the
11190           channel.  Defined user modes: CHANNEL_FOUNDER and CHANNEL_OPERATOR.
11191           Implemented CUMODE command to change user's mode on the channel.
11192           Supports all modes defined by the protocol specs.
11193
11194         * Added NAMES command reply to return users modes on the channel.
11195
11196         * Removed unnecessary and slow ciphers from lib/silccrypt.
11197
11198         * Set SO_KEEPALIVE option to connection sockets by default.
11199
11200         * Added new command reply status: SILC_STATUS_USER_NOT_ON_CHANNEL.
11201
11202         * Added notify types: MOTD, CMODE_CHANGE and CUMODE_CHANGE.  Also,
11203           redefined the Notify Payload into protocol specs.
11204
11205         * Added silc_id_payload_parse_id to get ID directly from raw
11206           ID payload data.
11207
11208 Mon Oct  9 20:57:02 EEST 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
11209
11210         * Changed SILC_COMMAND_IDENTIFY in protocol specification to
11211           accept searching by Client ID as well.
11212
11213         * Added support for LEAVE and SIGNOFF notify types in client library.
11214
11215         * Added silc_id_payload_parse_data into lib/silccore/silcpayload.[ch]
11216           to parse ID Payload from raw data.
11217
11218 Sun Oct  8 19:33:08 EEST 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
11219
11220         * Added flags parameter into silc_ske_assemble_security_properties
11221           function in lib/silcske/silcske.[ch].
11222
11223         * Changed notify client operation to fit better for notify messages
11224           sent by server.  The notify payload received from server is now
11225           passed to the application (after parsing it to SilcNotifyPayload).
11226           It is application's responsibility to retrieve the arguments
11227           from the payload and show the message the way it wants.  The message
11228           sent by server is implementation specific.
11229
11230         * Changed public keys to comply with the protocol specification.
11231           Old public keys are not supported anymore and are not compatible.
11232
11233         * Removed nickname from Channel Payload as the latest draft removed
11234           it.  The client must resolve the nickname from the NAMES command
11235           reply received when it joined the channel.
11236
11237           Also, changed all channel_xxxx_payload to channel_payload_xxxx.
11238
11239 Sat Oct  7 21:55:01 EEST 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
11240
11241         * Fixed some errors in protocol specification drafts.
11242
11243         * Created lib/silccore/silcnotify.c to implement Notify Payload
11244           encoding and decoding, lib/silccore/silcpayload.[ch] to implement
11245           generic payloads described by protocol specifications.  The file
11246           includes implementations for ID Payload and Argument Payload.
11247
11248         * Changed Command Payload implementation to use the new Argument
11249           Payload.  Changed command_xxxx_payload to command_payload_xxxx
11250           to comply with SILC coding conventions.
11251
11252         * Added suppport for Argument Payload handling in Notify Payload
11253           implementation as protocol requires it.  Added the new support
11254           into server and client lib as well.
11255
11256 Thu Oct  5 21:16:28 EEST 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
11257
11258         * Added support for multiple nicknames on same channel.  [n] is
11259           added locally to the nickname if there are more than one same
11260           nicknames on the channel.
11261
11262         * Server now sends all nicknames that matched WHOIS request.
11263           Client also shows the list received from server.
11264
11265         * Added TOPIC command to client side.  User can now set and show
11266           current topic on channel.
11267
11268         * Added MOTD command to client and server.  Also, server sends the
11269           motd when client connects to the server.
11270
11271         * Changed version strings to comply ISO 8601.
11272
11273 Wed Oct  4 23:29:06 EEST 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
11274
11275         * Fixed protocol error handling in client library.  It should now
11276           cope even if the SKE fails for some reason.
11277
11278         * Made new protocol specification drafts for submitting to IETF.
11279
11280         * Implemented TOPIC command to server in silcd/command.c.
11281
11282         * Added two new notify types into lib/silccore/silcnotify.h:
11283           SILC_NOTIFY_TYPE_NICK_CHANGE and SILC_NOTIFY_TYPE_TOPIC_SET to
11284           notify nickname change and topic setting/change on a channel.
11285
11286         * API change of command_reply operation in client library.  The
11287           application gets now the status type received from server as well.
11288
11289 Sat Sep 30 16:57:42 EEST 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
11290
11291         * Removed the function just added to lib/silcutil/silcschedule.[ch].
11292
11293         * Cras fixed and optimized the packet handling even further and
11294           it should work now.  Minor change to the prototype of function
11295           silc_packet_receive_process in lib/silccore/silcpacket.[ch].
11296
11297 Sat Sep 30 08:48:47 EEST 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
11298
11299         * Added new function into lib/silcutil/silcschedule.[ch]:
11300           silc_schedule_with_fd to select() a specified fd.  The function
11301           returns after timeout expires or data arrives or goes.  The
11302           function is used by packet routines to wait that all data is
11303           received from network.
11304
11305         * Fixed data reading from network in lib/silccore/silcpacket.c.
11306           The code now assures that all data is read from the fd and then
11307           continues packet processing.  This was a bug fix since the code
11308           used to drop some data in some circumstances.
11309
11310         * Added new function into lib/silcclient/client.[ch]:
11311           silc_client_start_key_exchange to start key exchange after
11312           connection has been established to server.  The code internally
11313           now uses this funtion but its main purpose was to provide it
11314           for applications that perform their own connecting.  After
11315           application has created a connection it merely calls this
11316           function to start the key exchange between client and server.
11317           The library takes care of everything else after that.
11318
11319           Updated also lib/silcclient/README to explain the usage of
11320           this new function.
11321
11322         * Do not send to application information that connection has
11323           been established.  Application gets notified it by connect
11324           operation anyway.
11325
11326 Thu Sep 28 23:40:19 EEST 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
11327
11328         * Applied cras's patch to add silc_schedule_one function.  The
11329           function runs scheduler once and returns.
11330
11331         * Fixed the scheduler after cras messed it up.  The timeout
11332           handling works now as it's supposed to work.
11333
11334         * Added into lib/silccore/ silcnotify.h to include notify
11335           message types support.  Changed silc_server_send_notify*
11336           functions, in server.[ch], to support those new notify types.
11337           Added the support for the notify types into client library,
11338           as well.  Added new notify client operation into ops.h in
11339           lib/silcclient/.
11340
11341         * Changed silc_server_packet_send_to_channel to send normal
11342           packets instead of just channel message packets.  The function
11343           is now used to send the notify packets to channels.  It is not
11344           used to send channel message packets anymore, as server never
11345           sends them anymore.
11346
11347         * Added explicit casting into lib/silcutil/silcbuffmt.c to few
11348           va_arg()s as it seems to require it nowadays.  I guess, if SILC
11349           is compiled with older va_arg() the new code should work anyway.
11350
11351 Wed Sep 13 18:10:14 EEST 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
11352
11353         * Splitted core library.  Core library (lib/silccore) includes
11354           now only SILC protocol specific core (and common) components.
11355           Created new utility library (lib/silcutil) that includes more
11356           generic purpose stuff.  The stuff for util library was taken
11357           from the old core library.  This was minor and easy split.
11358
11359         * Created SILC Client Library (lib/silcclient) that includes
11360           implementation of the SILC client without user interface.  This
11361           was major move from silc/ directory.  The code has been changed
11362           so that it is transparent towards the user interface.  The
11363           silc/ directory includes now the same user interface as before
11364           and it uses the new client library.  Read lib/silcclient/README.
11365           Basicly, the client library performs everything else related
11366           to SILC except user interface handling.  Also, configuration
11367           files are considered to be part of user interface and library
11368           does not handle them.
11369
11370           This change also changed a lot of structures, function naming etc.
11371           Most important change was that SilcClientWindow object was
11372           renamed to SilcClientConnection in the client library.  Created
11373           also new file lib/silcclient/ops.h.  Also added new files
11374           silc/local_command.[ch] and silc/client_ops.[ch].
11375
11376           All these changes were made to make it easier for user interface
11377           designers to create what ever user interface for the SILC client
11378           they want.
11379
11380           It is also expected that the server will be moved to lib
11381           directory as well and SILC Server Library will be created;
11382           sometimes in the future.
11383
11384         * Removed Local commands from lib/silccore/silccommand.h as
11385           they are application specific and new client library does not
11386           handle any of those anymore.
11387
11388         * Several functions moved to lib/silcutil/silcutilc.[ch] from
11389           old client implementation in silc/.
11390
11391         * Added support for callback functions in SILC_LOG_* macros.
11392           Application can now set its own callbacks that will be called
11393           instead of using the default functions that will always print
11394           the debug messages to stderr (or stdout).  Also, debugging can
11395           now be disabled by setting silc_debug to FALSE and re-enabled by
11396           setting it to TRUE.  Note, that logging will still work even
11397           if debugging is disabled.
11398
11399           New functions in lib/silcutil/silclog.[ch]: silc_log_set_callbacks,
11400           silc_log_reset_callbacks, silc_log_set_debug_callbacks and
11401           silc_log_reset_debug_callbacks.
11402
11403         * To enable debugging in silc client one must give now -d
11404           option on command line.
11405
11406         * Changed silc_schedule_init to automatically allocate task queues
11407           if they are not allocated before calling it.
11408
11409 Thu Sep  7 10:49:33 EEST 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
11410
11411         * Added GMP 3.1 into math library.
11412
11413 Sun Aug 20 21:27:26 EEST 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
11414
11415         * Added SILC_PACKET_REMOVE_CHANNEL_USER to remove a client from
11416           a channel in SILC network.  The packet is used by servers and
11417           routers to notify other routers that user has left a channel.
11418           This little feature was missing until now.  Added the feature
11419           to protocol specification as well.
11420
11421           Added functions: silc_server_send_remove_channel_user and
11422           silc_server_remove_channel_user into server.[ch].
11423
11424         * Added SILC_PACKET_REKEY and SILC_PACKET_REKEY_DONE into
11425           lib/silccore/silcpacket.h.  However, they are not implemented
11426           yet.
11427
11428 Sat Aug 19 23:04:16 EEST 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
11429
11430         * Fixed joining to a channel and sending channel messages
11431           between server and router.  The channel message sending should
11432           now work inside a cell.
11433
11434 Tue Jul 25 20:46:13 EEST 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
11435
11436         * Fixed the private message sending between server and router.
11437           The private message sending should now work inside a cell.
11438
11439         * Added silc_server_replace_id into server.[ch] to replace
11440           existing ID in the SILC network.
11441
11442         * Added silc_idlist_find_server_by, silc_idlist_replace_client_id
11443           and silc_idlist_replace_server_id into idlist.[ch] in server.
11444
11445 Mon Jul 24 18:33:31 EEST 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
11446
11447         * Fixed the server to server connections.  Server can again now
11448           connect to router.  Router to router connections probably does
11449           not work just yet.
11450
11451 Thu Jul 20 13:15:01 EEST 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
11452
11453         * Added dynamic protocol registering support.  Now protocols can
11454           registered and unregistered on the fly.  Patch by cras.
11455
11456 Wed Jul 19 19:08:46 EEST 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
11457
11458         * Added lib/contrib directory to hold routines that some platforms
11459           don't have but are needed by SILC.
11460
11461         * Added getopt.c, getopt1.c and getopt.h from GNU C library
11462           into lin/contrib to provide getopt() and getopt_long() for
11463           those who don't have it.
11464
11465 Tue Jul 18 20:41:20 EEST 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
11466
11467         * Added AWAY command to client.  When away message is set and
11468           client receives a private message packet the client automatically
11469           replies to the sender with the away message.
11470
11471         * Fixed a bug in lib/silcmath/mpbin.c: silc_mp_mp2bin.  This
11472           bug seemed to be the cause of recent problems when compiling
11473           with gcc-2.95.
11474
11475         * Added version detection support to SKE protocol specification
11476           and added the new changes to the SKE implementation as well.
11477           There were other minor changes in the SKE protocol as well.
11478
11479           Many changes in lib/silcske/silcske.[ch] and in
11480           lib/silcske/payload.[ch].
11481
11482         * Added ^U functionality, clear input line.  Patch from cras.
11483
11484 Mon Jul 17 23:33:26 EEST 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
11485
11486         * Mainly small bugfixes on core library.  Fixed some debugging
11487           logging and buffer overflow in silclog.c.
11488
11489         * Updated config.sub and config.guess on the distribution tree.
11490
11491 Sat Jul 15 15:33:48 EEST 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
11492
11493         * Added command lagging support in server. Client may execute
11494           commands now only once in two seconds.
11495
11496 Thu Jul 13 22:10:21 EEST 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
11497
11498         * Optimized packet reception. MAC computation and checking is now
11499           also more optimized.  A lot previously duplicated code is now
11500           used as generic by both client and server.
11501
11502         * Fixed key pair generation in clientutil.c
11503
11504 Wed Jul 12 18:28:07 EEST 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
11505
11506         * Added into lib/silccore/silcbufutil.[ch] new function;
11507           silc_buffer_realloc.
11508
11509         * Moved generic packet sending/encryption functions to
11510           lib/silccore/silcpacket.[ch] from client and server.  Some
11511           rewriting of the functions.
11512
11513         * Moved all generic packet reception/decryption functions to
11514           lib/silccore/silcpacket.[ch] from client and server.  The
11515           packet processing is now much cleaner in both client and server.
11516           These were major changes in both client and server.
11517
11518         * Created many common functions in server to do packet sending.
11519           Previously code were duplicated a lot, this has been removed
11520           with these changes.
11521
11522 Tue Jul 11 20:27:26 EEST 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
11523
11524         * Rewrote major parts of the ID cache system.  Don't know
11525           whether it is better now or not but at least the API is more
11526           cleaner now.
11527
11528         * Major rewrite on ID cache stuff on client because of the ID
11529           cache API changes.  Added idlist.c to client.
11530
11531         * Also major rewrite on ID cache stuff on server as well.
11532           Major rewrite of idlist.[ch]. SilcXXXList's are now named
11533           SilcXXXEntry's.  We won't keep anymore idlist specific pointers
11534           in hand, instead they are all put into the ID cache system now.
11535           All server_idlist_* routines uses ID cache now instead of
11536           traversing its own lists (those lists does not exist anymore).
11537           SilcIDList though still exists.  Also, SilcXXXEntry's are
11538           now pointers.
11539
11540 Sun Jul  9 15:19:24 EEST 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
11541
11542         * Finally made the SKE implementation compliant to the protocol
11543           specification.  All mp integers are now binary encoded as
11544           opposed being HEX encoded.
11545
11546         * Added lib/silcmath/mpbin.[ch].  Encoding mp intergers to and
11547           from binary data.
11548
11549         * Added into lib/silccore/silcutil.[ch] PEM encoding/decoding
11550           functions: silc_[encode/decode]_pem.  Also added function
11551           silc_encode_pem_file to PEM encode with newlines ('\n') for
11552           saving into a file.
11553
11554         * SILC public keys are now encoded either PEM or binary.  Same
11555           option is for private keys as well.  By default private keys
11556           are binary encoded and public keys PEM encoded.  Silly HEX
11557           encoding were removed.
11558
11559         * Added into lib/silccrypt/silchash.[ch] silc_hash_fingerprint
11560           function to create fingerprints.
11561
11562         * Fixed a bug in SHA1; does not change the original data anymore.
11563
11564         * Partly implemented INFO command on client and server side.
11565           Fixed CLEAR command.  Changes to SERVER command; show current
11566           server(s) when giving command without arguments.  Added
11567           VERSION command to client.
11568
11569         * Added check to server that unregistered connections cannot
11570           execute commands (unless it is specificly allowed).
11571
11572 Thu Jul  6 18:12:24 EEST 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
11573
11574         * Fixed screen refresh.
11575
11576         * Fixed channel joining bug from client.  On some circumstances
11577           client tried to join to a channel it had already joined.
11578
11579         * Added public key verification process into client's protocol.c.
11580           The client now verifies the public key from user and saves
11581           it into ~./silc/serverkeys/ directory.
11582
11583           Added into: clientutil.[ch]: silc_client_verify_server_key.
11584
11585         * Changed SKE protocol's silc_ske_initiator_finish function
11586           to accept callback function that verifies the received public
11587           key.  Removed old silc_ske_verify_public_key function.
11588
11589 Wed Jul  5 19:19:02 EEST 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
11590
11591         * Added into silcpkcs[ch]: silc_pkcs_public_key[_data]_set and
11592           silc_pkcs_private_key[_data]_set.
11593
11594         * Made the password and public authentication more cleaner in
11595           server's protocol.c.
11596
11597         * Removed historic and obsolete protocol `channel_auth' from
11598           both client and server.
11599
11600         * Removed wrong way of sending command status messages from
11601           server to client in server's command.c.  The old way violated
11602           protocol specification.
11603
11604           Changes to silccore/silccommand.[ch]: removed
11605           silc_command_encode_status_payload -> not needed anymore,
11606           changed silc_command_encode_payload_va to accept extra
11607           argument on variable argument list.  The argument type must
11608           now be provided to the function.  Also, added new function:
11609           silc_command_encode_reply_payload_va which is same as
11610           normal command_encode_payload_va except command status type
11611           is provided as extra argument.
11612
11613 Tue Jul  4 18:26:39 EEST 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
11614
11615         * Added ~./silc directory handling.  The directory includes the
11616           public and private keys for the client.
11617
11618           Added silc_client_check_silc_dir, silc_client_create_identifier
11619           and silc_client_load_keys.
11620
11621         * Implemented SILC protocol compliant public key.  Added public
11622           and private key saving to and loading from files.
11623
11624           Added into silcpkcs.[ch]: silc_pkcs_encode_identifier,
11625           silc_pkcs_public_key_encode[_data], silc_pkcs_public_key_decode,
11626           silc_pkcs_private_key_encode[_data], silc_pkcs_private_key_decode,
11627           silc_pkcs_public_key_alloc, silc_pkcs_public_key_free,
11628           silc_pkcs_private_key_alloc and silc_pkcs_private_key_free.
11629
11630           Implemented: silc_pkcs_save_[public/private]_key[_data] and
11631           silc_pkcs_load_[public/private]_key.
11632
11633 Mon Jul  3 18:51:27 EEST 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
11634
11635         * Added silc_server_get_route (route.[ch]) to get connection
11636           data for the fastest route for given ID.
11637
11638         * Implemented INVITE command on client and server.  The command
11639           were re-defined in the SILC Protocol Specification and the
11640           implementation now complies with the specification.
11641
11642         * Implemented PING command on client and server.
11643
11644         * Implemented NAMES command on client and server.  The server side
11645           supports currently only normal server not router server yet.
11646           Some changes to NAMES definition in SILC protocol specification.
11647
11648 Sun Jul  2 18:23:01 EEST 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
11649
11650         * Implemented LEAVE command on client and server.
11651
11652         * Previously deprecated SILC_PACKET_FORWARDED flag is now in use
11653           again.  This change was made to the protocol as well.  Server
11654           should not violate the protocol specification anymore.
11655
11656 Fri Jun 30 14:03:26 EEST 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
11657
11658         * Added SOCKS4 and SOCKS5 support to SILC client.  SOCKS5
11659           was tested.  SOCKS4 was not but should work anyway.