updates.
[silc.git] / CHANGES
1 Sun Aug 26 12:28:49 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
2
3         * Fixed TIMEOUT handling in user info resolving during JOINing,
4           fixes crash.  Affected file is lib/silcclient/client_notify.c.
5
6         * Fixed mandatory UN and HN SILC public key identifier checking
7           (both must be present).  Affected file is
8           lib/silccrypt/silcpk.c.
9
10 Tue Aug  7 20:56:06 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
11
12         * Fixed alignment issues with 64-bit CPUs.  Affected files
13           are lib/silcutil/silcschedule.c and unix/silcunixschedule.c.
14
15         * Added "There are now xx nick's" to "are xx nicks".  Affected
16           file is apps/irssi/src/fe-common/silc/module-formats.c.
17
18 Sat Aug 4 18:37:22 EEST 2007 Pekka Riikonen <priikone@silcnet.org>
19
20         * Fixed USERS command user mode handling (integer overflow).
21           Affected file is lib/silcclient/command_reply.c.
22
23 Thu Jul 19 21:08:49 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
24
25         * Fixed big-endian issues from aes implementation.  Affected
26           files are lib/silccrypt/aes.c.
27
28         * Fixed lib/silcutil/silcatomic.h compilation on IA64.  Patch
29           from Jérémy Bobbio.
30
31         * Fixed public key identifier parsing to check lengths
32           correctly.  Affected file is lib/silccrypt/silcpk.c.
33
34 Wed Jul  4 08:06:38 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
35
36         * SILC Toolkit 1.1.2.
37
38         * SILC Client 1.1.2.
39
40 Mon Jul  2 17:28:47 CEST 2007  Pekka Riikonen <priikone@silcnet.org>
41
42         * In silc_client_free check that scheduler is allocated before
43           trying to free it.  Affected file is lib/silcclient/client.c.
44
45         * Fixed buffer overflow in NICK_CHANGE notify.  The destination
46           buffer for old nickname was too small.  Affected file is
47           lib/silclient/client_notify.c.
48
49 Sun Jul  1 19:15:15 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
50
51         * SILC Server 1.1 Beta1.
52
53 Sun Jul  1 12:40:06 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
54
55         * Added support for rekey with PFS when using CTR mode
56           encryption.  Affected file is lib/silcske/silcske.c.
57
58         * Added silc_idcache_move that can be used to move entries
59           between caches.  Affected files are
60           lib/silcapputil/silcidcache.[ch].
61
62         * Added better checks for invalid argument and notify payloads.
63           Affected files are lib/silccore/silcnotify.c and
64           silcargument.c.
65
66         * Fixed SILC_PACKET_FLAG_LONG_PAD bitmask value.  Affected
67           file lib/silccore/silcpacket.h.
68
69 Sat Jun 30 21:48:08 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
70
71         * Set the destination ID to packet stream as SKE responder
72           if ID was present in key exchange packet.  Affected file
73           is lib/silcske/silcske.[ch].
74
75         * Handle also zero timeouts in the scheduler notify callback
76           to avoid problems with SILC Plugin.  Affected file is
77           apps/irssi/src/silc/core/silc-core.c.
78
79 Thu Jun 28 19:19:13 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
80
81         * SILC Client 1.1.1.
82
83 Sun Jun 24 18:47:55 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
84
85         * SILC Toolkit 1.1.1.
86
87         * Compile sources with _GNU_SOURCE on Linux systems.  Affected
88           file is configure.ad.
89
90 Sun Jun 24 16:33:59 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
91
92         * Fixed Unix signal task dispatching to not lock the signals
93           when dispatching the callback to avoid deadlocks.  Affected
94           file is lib/silcutil/unix/silcunixschedule.c.
95
96 Sun Jun 24 14:43:21 CEST 2007  Jochen Eisinger <coffee@silcnet.org>
97
98         * Fix configure output for with-plugin.  Affected file is
99           apps/irssi/configure.ad
100
101 Tue Jun 19 17:05:48 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
102
103         * Added SILC_VERSION macro for checking package versions at
104           compile time.  Affected files are configure.ad,
105           includes/silc.h.in and includes/silcversion.h.in.
106
107 Mon Jun 18 23:47:22 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
108
109         * Use SILC_VERIFY to assert that silc_rwlock_wrlock can be
110           called only once per thread on Unix.  Affected file is
111           lib/silcutil/unix/silcunixthread.c.  Added same for mutex
112           as well.   Documented same on the API in 
113           lib/silcutil/silcmutex.h.
114
115         * Fixed USERS command reply write-lock unlocking.  Affected file
116           is lib/silcclient/command_reply.c.
117
118 Mon Jun 18 08:14:26 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
119
120         * Fixed silc_create_key_pair to check for valid identifier.
121           Affected file is lib/silcapputil/silcapputil.c.
122
123 Sun Jun 17 20:08:26 CEST 2007  Jochen Eisinger <coffee@silcnet.org>
124
125         * Rewrite signed public message handling, adopting the new
126           hilight interface.  Affected file is
127           apps/irssi/src/fe-common/silc/fe-silc-messages.c
128
129 Thu Jun 14 21:15:31 CEST 2007  Jochen Eisinger <coffee@silcnet.org>
130
131         * Fix off by one error when loading modules.  Affected file is
132           apps/irssi/src/core/modules-load.c
133
134         * Don't delete hilight entry (because it's just a pointer, not a
135           copy).  Affected file is 
136           apps/irssi/src/fe-common/silc/fe-silc-messages.c
137
138 Mon Jun 11 22:10:17 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
139
140         * Added __SILC_TOOLKIT_x_x_x macro to all Toolkit distribution
141           which can be used to check for Toolkit version in third-party
142           software.  Affected file is configure.ad, includes/silc.h.in.
143
144 Sun Jun 10 17:32:15 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
145
146         * Added support for channel@server channel name strings to
147           client library (SILC protocol version 1.3 change).  Affected
148           files are lib/silcclient/silcclient_entry.h, client_entry.c.
149
150         * Added full_nicknames and full_channel_names settings to
151           SilcClientParams that can be used to specify whether client
152           library returns full nickname and channel name strings.
153           Full strings are nick@server and channel@server.  Affected
154           file is lib/silcclient/client_entry.c and command.c.
155
156 Sat Jun  9 19:43:25 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
157
158         * Fixed unix connecting failure to return error code correctly.
159           Affected file is lib/silcutil/unix/silcunixnet.c.
160
161 Fri Jun  8 23:32:33 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
162
163         * Fixed SKE timeout double free crash.  Affected file is
164           lib/silcske/silcske.c.
165
166         * Fixed MIME multipart decoding buffer overflow.  Affected file
167           is lib/silcutil/silcmime.c.  Thanks to Matt Miller for patch.
168
169 Fri Jun  8 18:39:34 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
170
171         * Fixed connection auth protocol timeout crash.  Affected
172           file is lib/silcske/silconnauth.c.
173
174         * Fixed FSM machine finishing to check for existing threads
175           at the final free callback to allow time for the threads to
176           finish.  Affected file lib/silcutil/silcfsm.c.
177
178 Thu Jun  7 21:25:31 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
179
180         * Fixed silc_client_get_clients_local to check the nick's
181           server also if nick@server nickname string is given to the
182           function.  Affected file is lib/silcclient/client_entry.c.
183
184 Wed Jun  6 18:33:05 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
185
186         * Added notify callback to silc_schedule_init which can be used to 
187           set a notify callback for scheduler which is called when task is
188           added to scheduler or deleted from scheduler.  Affected file
189           is lib/silcutil/silcschedule.[ch].
190
191         * Dispatch timeout tasks after dispatching FD tasks if the timeout
192           was very short.  Affected file is lib/silcutil/silcschedule.c.
193
194         * Rewrote the SILC scheduler handling in SILC Client to not poll
195           every few msecs but to use the new notify callback.  Affected 
196           file is apps/irssi/src/silc/core/silc-core.c.
197
198         * Fixed SFTP client library read buffer size which was too small.
199           Affected file is lib/silcsftp/sftp_client.c.
200
201         * Fixed file transfer crash bug in /QUIT in SILC Client.  Close
202           the FTP sessions before quitting the client.  Affected file
203           is apps/irssi/src/silc/core/silc-servers.c.
204
205 Tue Jun  5 20:48:40 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
206
207         * Fixed silc_packet_get_ids to decode the IDs correctly.
208           Affected file is lib/silccore/silcpacket.c.
209
210         * Fixed silc_client_get_clients_local to parse correctly nickname
211           string that may have server name in it (nick@server) regardless
212           whether it was formatted nickname or not.  Affected file is
213           lib/silcclient/client_entry.c.
214
215 Mon Jun  4 22:02:53 CEST 2007  Jochen Eisinger <jochen@penguin-breeder.org>
216
217         * Only destroy sendbuffers, if they still exist (they cease to
218           exist during /upgrade).  Affected file is
219           apps/irssi/src/silc/core/silc-servers.c
220
221 Mon Jun  4 21:24:17 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
222
223         * Removed --enable-silc-plugin.  Added --with-silc-plugin.
224           Affected files are configure.ad, lib/configure.ad,
225           apps/irssi/configure.ad, apps/irssi/configure.in,
226           apps/irssi/scripts/Makefile.am,
227           apps/irssi/scripts/examples/Makefile.am,
228           apps/irssi/src/silc/core/silc/Makefile.am,
229           apps/irssi/src/fe-common/silc/Makefile.am.
230
231 Mon Jun  4 08:35:59 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
232
233         * SILC Client 1.1.
234
235 Sun Jun  3 14:00:09 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
236
237         * Fixed DESTDIR handling in make install.
238
239 Sat Jun  2 21:04:32 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
240
241         * SIM modules are not delivered to SILC CLient distribution
242           anymore.
243
244         * Changed default installation path from /usr/local/silc to
245           /usr/local for all distributions.
246
247         * Removed --with-etcdir and --with-docdir.  The etcdir is now
248           the system's default.  The Docdir is system's default.
249
250 Sat Jun  2 00:51:57 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
251
252         * If public key/private key loading fails set the return
253           pointer to NULL.  Affected file is lib/silccrypt/silcpkcs.c.
254
255         * If private key loading fails in silc_load_key_pair free the
256           loaded public key.  Affected file is
257           lib/silcapputil/silcapputil.c.
258
259         * Fixed key pair loading crash with SILC Plugin if key pair
260           loading fails.  Affected file is
261           apps/irssi/src/silc/core/silc-core.c.
262
263         * Fixed SILC Client help and script file installation path
264           to go to prefix/share/silc.  Affected files are
265           apps/irssi/src/scripts/Makefile.am and
266           apps/irssi/docs/help/Makefile.am.gen.
267
268 Thu May 31 16:49:13 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
269
270         * Fixed UTC offset minutes to be actually minutes.  Affected
271           file is lib/silcutil/silctime.c.
272
273 Thu May 31 09:40:56 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
274
275         * SILC Toolkit 1.1.
276
277         * Added support for checking for timezone and tm_gmtoff.
278           Affected files are configure.ad and lib/silcutil/silctime.c.
279
280 Wed May 30 18:46:34 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
281
282         * Added silc-toolkit.spec.in RPM spec file.
283
284 Mon May 28 23:21:39 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
285
286         * Fixed nickname formatting crash when updating existing
287           client entry.  Affected file is lib/silcclient/client_entry.c.
288
289         * Fixed MIME object encoding in attribute payload encoding.
290           Affected file is lib/silccore/silcattrs.c.
291
292 Mon May 28 09:02:26 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
293
294         * SILC Client 1.1 Beta6
295
296 Sun May 27 20:38:30 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
297
298         * Copy SILC Plugin's libfe_common_silc.so to libfe_silc.so so
299           that user's don't have to do it manually.  Affected file
300           is apps/irssi/src/fe-common/silc/core/Makefile.am.
301
302 Thu May 24 15:30:31 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
303
304         * SILC Toolkit 1.1 Beta4.
305
306         * Fixed channel and server entry freeing in client library.
307           Affected file is lib/silcclient/client_entry.c.
308
309         * Do not allow stopping client before it has been started.
310           Affected file is lib/silcclient/client.c.
311
312 Wed May 23 23:21:03 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
313
314         * Fixed formatted nickname renaming to rename also irssi's
315           nicklist (/NAMES etc).  Affected file is
316           apps/irssi/src/silc/core/client_ops.c.
317
318         * Fixed SILC Plugin crash when stopping client library before
319           it has been started.  Affected file is
320           apps/irssi/src/silc/core/silc-core.c.
321
322 Tue May 22 17:18:54 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
323
324         * For SILC Client and SILC Server check for 1.1 Toolkit
325           in configure.  Affected file is configure.ad.
326
327         * Added better library linking flags and orders for SILC Client.
328           Affected file is configure.ad, Makefile.defines_int.in and
329           apps/irssi/src/fe-text/Makefile.am
330
331 Mon May 21 08:26:38 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
332
333         * SILC Client 1.1 Beta5.
334
335 Sun May 20 18:34:22 CEST 2007  Jochen Eisinger <coffee@silcnet.org>
336
337         * Add hooks for Irssi 0.8.11 module functions.  Affected file
338           is apps/irssi/src/fe-common/silc/fe-common-silc.c
339
340 Sat May 19 14:46:36 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
341
342         * Fixed passphrase authentication with server.  Affected file
343           is lib/silcclient/client_connect.c.
344
345         * Fixed passphrase authentication as responder.  Affected file is
346           lib/silcske/silcconnauth.c.
347
348         * Changed SilcAskPassphrase and SilcGetAuthMeth callbacks to
349           return data as const.  Affected file is
350           lib/silcclient/silcclient.h.
351
352         * Fixed timeout calculation in Symbian scheduler.  Affected
353           file is lib/silcutil/symbian/silcsymbianscheduler.c.
354
355 Fri May 18 21:10:38 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
356
357         * Do not uninitialize u.m.threads atomic int in finish but in
358           free.  Fixes crash on any platform using atomic operations
359           using mutexes (like Symbian).  Affected file is
360           lib/silcutil/silcfsm.c.
361
362         * Fixes Symbian scheduler wakeup synchronization.  Affected file
363           is lib/silcutil/symbian/silcsymbianscheduler.c.
364
365 Fri May 18 18:10:36 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
366
367         * Fixed nickname formatting to handle already formatted nicknames
368           better.  Affected file is lib/silccilent/client_entry.c.
369
370         * Added "foo#2 appears as foo" support to SILC Client when user
371           leaves or quits and one formatted nickname remain.  Affected file 
372           is apps/irssi/src/silc/core/client_ops.c.
373
374         * Send SilcChannelEntry to application in SILC_NOTIFY_TYPE_SIGNOFF.
375           Affected file is lib/silcclient/client_notify.c.
376
377 Thu May 17 18:05:10 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
378
379         * Fixed silc_show_public_key to not free public key in case of
380           failure.  Affected file is lib/silcapputil/silcapputil.c.
381
382 Thu May 17 17:09:50 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
383
384         * SILC Toolkit 1.1 Beta3.
385
386         * Porting Toolkit to Symbian.  It should work while some sporadic
387           odd crashes remain.  However I was able to run mybot on SILCNet.
388           Basically tested scheduler, net routines, socket  routines,
389           threads and some other utility routines.  Affected files are
390           in lib/silcutil/symbian/.
391
392 Thu May 17 11:57:40 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
393
394         * Show realname and email address from public key when verifying
395           cached public keys with GETKEY.  Affected files are
396           apps/irssi/src/fe-common/module-formats.[ch] and
397           apps/irssi/src/silc/core/client_ops.c.
398
399 Wed May 16 20:41:04 CEST 2007  Jochen Eisinger <coffee@silcnet.org>
400
401         * Include SILC Plugin theme.  Affected file is apps/irssi/plugin.theme
402
403         * Include SILC Plugin /silc command help.  Affected file is
404           apps/irssi/docs/help/silc
405
406         * Create channels before joining them.  Affected file is
407           apps/irssi/src/silc/core/client_ops.c
408
409 Wed May 16 18:59:22 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
410
411         * Fixed channel private key listing with /key.  Affected file
412           is apps/irssi/src/silc/core/silc-channels.c.
413
414         * Fixed the public headers from anonymous structures.  Affected
415           files are lib/.
416
417         * Changed silc_buffer_*len macros to inline functions.  Affected
418           file is lib/silcutil/silcbuffer.h.
419
420 Wed May 16 10:21:45 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
421
422         * Fixed nickname format parsing in JOIN notify handling and
423           in WHOIS command reply.  Affected file is
424           apps/irssi/src/silc/core/client_ops.c.
425
426 Wed May 16 09:34:10 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
427
428         * SILC Client 1.1 Beta4.
429
430 Tue May 15 23:55:41 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
431
432         * Added SILC_VERIFY macro which is equivalent to SILC_ASSERT
433           but is compiled always in.  Affected file is 
434           lib/silcutil/silclog.h.
435
436         * Use SILC_VERIFY in FSM macros instead of SILC_ASSERT which is
437           not there in release builds.  Affected file is
438           lib/silcutil/silcfsm.h.
439
440 Tue May 15 21:19:09 CEST 2007  Jochen Eisinger <coffee@silcnet.org>
441
442         * SILC Client 1.1-beta3
443
444 Mon May 14 23:20:59 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
445
446         * Added silc_utf8_c2w and silc_utf8_w2c to do UTF-8 to widechar
447           and widechar to UTF-8 conversions.  Affected files are
448           lib/silcutil/silcutf8.[ch].
449
450 Mon May 14 19:45:14 CEST 2007  Jochen Eisinger <coffee@silcnet.org>
451
452         * Include a README for the SILC Plugin
453
454 Sun May 13 22:08:59 CEST 2007  Jochen Eisinger <coffee@silcnet.org>
455
456         * Adopt perl Makefiles for SILC Plugin.
457
458 Sun May 13 18:27:13 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
459
460         * Fixed client library initialization when the running callback
461           is not given to silc_client_init.  Affected file is
462           lib/silcclient/client.c.
463
464         * Fixed Symbian compilation problems around the tree.  Added
465           new Carbide.c++ project files to symbian/ directory.
466
467         * Fixed SilcLog API to work on Symbian.  On Symbian it doesn't
468           use any globals.  Affected files are lib/silcutil/silclog.c
469           and silclog_i.h.
470
471 Sun May 13 16:54:35 CEST 2007  Jochen Eisinger <coffee@silcnet.org>
472
473         * Fix several warnings in Irssi's Makefiles.
474
475 Sun May 13 12:16:30 CEST 2007  Jochen Eisinger <coffee@silcnet.org>
476
477         * Disable ASM if --with-pic was given.  Affected file is
478           lib/silccrypt/configure.ad
479
480 Fri May 11 19:10:54 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
481
482         * Wakeup scheduler in silc_fsm_continue and silc_fsm_next_later
483           in case they are called from a thread.  Affected file is
484           lib/silcutil/silcfsm.c.
485
486         * Fixed WIN32 thread creation to handle the Tls correctly.
487           Affected file is lib/silcutil/win32/silcwin32thread.c.
488
489 Thu May 10 18:29:18 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
490
491         * SILC Toolkit 1.1-beta2.
492
493 Thu May 10 18:21:10 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
494
495         * Fixed silc_net_tcp_connect crash on Unix and Win32.  Handle
496           the socket async operation correctly.  Changed that DNS lookup
497           is now done during connecting.  Affected files are
498           lib/silcutil/[unix|win32]/silc[unix|win32]net.c.
499
500         * Changed also silc_net_tcp_connect on Symbian to do DNS lookup.
501           Affected file is lib/silcutil/symbian/silcsymbiannet.c.
502
503         * Optimize silc_net_gethostbyname to check if the name is already
504           IP address.  Affected file is lib/silcutil/silcnet.c.
505
506 Wed May  9 19:51:28 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
507
508         * Print filename instead of empty function name in debug output
509           on WIN32.  Affected files are lib/silcutil/silclog_i.h and
510           silclog.c.
511
512         * Rewrote WIN32 SILC Scheduler.  It now handles non-blocking file 
513           descriptors and sockets better.  Though, room for optimization
514           remains.  Affected file is lib/silcutil/win32/silcwin32schedule.c.
515
516         * Removed silc_net_win32_[init|uninit].  They are called now
517           automatically when SILC Scheduler is allocated.  Wrote IPv4
518           address parser because inet_addr seemed not to work on my WIN32.
519           Affected file is lib/silcutil/win32/silcwin32net.c.
520
521         * Improved socketstream.h and stream.h documentation.
522
523 Tue May  8 18:13:38 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
524
525         * Changed private message waiting API in client library to make
526           it work better with multiple waiting threads.  The waiting is
527           not always per client entry instead of per connection.  Affected
528           files are lib/silcclient/client_prvmsg.c, client.h and
529           silcclient.h.
530
531         * Changed silc_packet_wait_init function to accept the the expected
532           Source ID of the packet as argument.  If specified only packets
533           with the specified types and Source ID are delivered.  Affected
534           files are lib/silccore/silcpacket.[ch].
535
536         * Fixed file transfer disconnection crash when closing the session
537           directly in the monitor callback after disconnection.  Affected
538           file is lib/silcclient/client_ftp.c.
539
540         * Make Toolkit compile on WIN32.  Affected files in win32/
541           and in lib/silcutil/win32/.
542
543         * Changed silc_compare_timeval to return negative, zero or
544           positive instead of just TRUE or FALSE.  This fixes 0 timeout
545           task dispatching on Windows.  Affected files are
546           lib/silcutil/silctime.[ch] and silcschedule.c.
547
548 Mon May  7 18:18:48 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
549
550         * Fixed CMODE channel auth public key retrieval.  Affected
551           file is lib/silcclient/command.c.
552
553         * Fixed CMODE command reply to return channel public keys
554           correctly.  Affected files are lib/silcclient/command_reply.c
555           and client_channel.c.
556
557 Sun May  6 12:43:19 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
558
559         * Added current channel key cipher name and HMAC name to
560           SilcChannelEntry.  Fixed channel private key creation.
561           Affected files are lib/silcclient/client_channel.c,
562           client_entry and silcclient_entry.h.
563
564         * Allow formatted nicknames as input to silc_client_get_clients
565           and silc_client_get_clients_whois.  Affected file is
566           lib/silcclient/client_entry.c.
567
568         * Fixed silc_message_payload_free crash.  Affected file is
569           lib/silccore/silcmessage.c.
570
571         * Added SILC_STATUS_ERR_NO_SUCH_PUBLIC_KEY to
572           lib/silccore/silcstatus.h.
573
574 Thu May  3 18:07:50 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
575
576         * Imported libtommath 0.41.  Renamed all mp_* functions to
577           tma_mp_* functions to avoid rare linking problems on systems
578           with mp_* functions.  Affected files are in lib/silcmath/.
579
580 Wed May  2 17:46:25 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
581
582         * SILC Toolkit 1.1 Beta1.
583
584 Wed May  2 11:38:17 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
585
586         * Set the server and router operator modes to local entry after
587           successful OPER or SILCOPER commands.  Affected file is
588           lib/silcclient/command_reply.c.
589
590 Tue May  1 14:17:06 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
591
592         * Ported SILC Socket Stream API, SILC Net API, SILC Schedule API,
593           and other smaller APIs to WIN32.  Affected files are in
594           lib/silcutil/win32/.
595
596         * Changed the various regex APIs as generic code in util library.
597           Affected files are lib/silcutil/silcstrutil.[ch].
598
599 Sat Apr 28 13:47:47 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
600
601         * Ported SILC Server to the new Toolkit API, working towards
602           SILC Server 1.1.  Affected files are in apps/silcd/.
603
604         * Added silc_skr_del_public_key, silc_skr_[ref|unref]_public_key
605           to lib/silcskr/silcskr.[ch].
606
607         * Fixed SILC public key copying to copy the identifier also.
608           Affected file is lib/silccrypt/silcpk.c.
609
610         * Added silc_packet_error_string to lib/silccore/silcpacket.[ch].
611
612         * Fixed OPER and SILCOPER passphrase asking in Client library.
613           Affected file is lib/silcclient/command.c.
614
615 Tue Apr 24 17:55:24 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
616
617         * Fixed command queue enabling after connecting to server.
618           The comparisons was from after changing to silc_utf8_strcasecmp.
619           Affected file is apps/irssi/src/silc/core/silc-servers.c.
620
621         * Fixed nickname setting with own client entry with 1.3 protocol
622           version server.  Affected file lib/silcclient/client_register.c.
623
624         * Ignore error notify for local client entry.  Affected file is
625           lib/silcclient/client_notify.c.
626
627         * Implemented responder rekey to SKE library.  Affected files are
628           lib/silcske/silcske.[ch].
629
630         * Fixed connection auth protocol completion sending.  Affected
631           file lib/silcske/silcconnauth.c.
632
633 Mon Apr 23 17:20:01 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
634
635         * Do not call TCP network listener callback with any error
636           status, as documented.  Affected file is
637           lib/silcutil/unix/silcunixnet.c.
638
639 Sun Apr 22 21:13:28 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
640
641         * Preliminary SILC Server 1.1 changes committed to apps/silcd/.
642
643         * Added SILC_SKR_USAGE_SERVICE_AUTHORIZATION SKR key usage type.
644           Changed silc_skr_find to have SilcSchedule argument and removed
645           it from silc_skr_[alloc|init].  Affected files are
646           lib/silcskr/silcskr.[ch].
647
648         * Allow NULL id for silc_idcache_add.  Affected file is
649           lib/silcapputil/silcidcache.c.
650
651         * Added silc_packet_stream_is_valid, silc_packet_get_ids and
652           silc_packet_engine_get_streams to lib/silccore/silcpacket.[ch].
653           Fixed also channel message encryption with router-to-router
654           packets.
655
656         * Added silc_id_str2id2 to lib/silccore/silcid.[ch].
657
658         * Added silc_net_get_error_string, silc_net_listener_get_ip and
659           silc_net_listener_get_hostname to lib/silcutil/silcnet.[ch].
660
661 Tue Apr 10 15:55:42 CEST 2007  Jochen Eisinger <coffee@silcnet.org>
662
663         * Add option --enable-silc-plugin.  Affected files are
664           apps/irssi/configure.{ad,in}
665
666         * Only compile the SILC Plugin if required.  Affected files are
667           apps/irssi/src/Makefile.am, apps/irssi/src/fe-common/Makefile.am
668
669         * Conditionally build the SILC Plugin.  Affected files are
670           apps/irssi/src/silc/core/Makefile.am,
671           apps/irssi/src/fe-common/silc/Makefile.am
672
673         * Backout delayed protocol exit and replace with a lame busy
674           wait.  Affected files are apps/irssi/src/fe-text/silc.c,
675           apps/irssi/src/silc/core/silc-core.c
676
677         * Fix key generation for SILC Plugin.  Affected file
678           apps/irssi/src/silc/core/clientutil.c
679
680 Tue Apr 10 12:40:19 CEST 2007  Jochen Eisinger <coffee@silcnet.org>
681
682         * Only pass -rpath to libtool when building shared libraries.
683           Affected file lib/Makefile.ad
684
685         * Removing the stray "s" in configure.ad
686
687 Sat Mar 24 19:13:58 CET 2007  Jochen Eisinger <coffee@silcnet.org>
688
689         * Redraw the screen after creating a new key.  Affected file
690           apps/irssi/src/silc/core/clientutil.c
691
692 Sun Mar 18 15:54:10 EET 2007  Pekka Riikonen <priikone@silcnet.org>
693
694         * Added SILC Client setting /set nickname_format that specifies
695           the nickname format string.  Changed default nickname format
696           string to "%n#%a".  Affected file is
697           apps/irssi/src/silc/core/silc-core.c, apps/irssi/silc.conf.
698
699         * Fixed nickname parsing with WHOIS command to accept formatted
700           nicknames.  Changed the silc_client_get_clients_local to allow
701           the searched nickname to be formatted nickname.  Removed %s and
702           %S nickname formatters.  Affected files are in lib/silcclient/.
703
704         * Added silc_client_nickname_parse to Client library API.  Affected
705           file is lib/silcclient/silcclient.h.
706
707         * Fixed nickname parsing and resolving with /MSG, /FILE and /KEY
708           commands.  Affected file are
709           apps/irssi/src/silc/core/silc-servers.c and silc-channels.c.
710
711 Sat Mar 17 19:07:15 CET 2007  Jochen Eisinger <coffee@silcnet.org>
712
713         * Incorporate SILC Plugin patches.  Affected files are
714           apps/irssi/src/fe-common/silc/module-formats.{c,h},
715           apps/irssi/src/silc/core/clientutil.{c,h},
716           apps/irssi/src/silc/core/silc-core.c,
717           apps/irssi/src/silc/core/silc-chatnets.{c,h},
718           apps/irssi/src/fe-common/silc/fe-silcnet.c, and
719           apps/irssi/src/fe-common/silc/module.h
720
721 Wed Mar 14 17:31:28 EET 2007  Pekka Riikonen <priikone@silcnet.org>
722
723         * In notify handling resolve user entries many times if the
724           resolving timedout.  Affected file lib/silcclient/client_notify.c.
725
726         * silc_client_get_clients_local do not return any invalid entries.
727           Affected file is lib/silcclient/client_entry.c.
728
729         * Do not print "there are now xx user on this channel" for users
730           that actually aren't anymore on the channel.  Affected file
731           is apps/irssi/src/client_ops.c.
732
733 Sun Mar 11 17:43:18 CET 2007  Jochen Eisinger <coffee@silcnet.org>
734
735         * When joining channels with a password given in the config file,
736           use it.  Also use it when cycling (it would be better to get
737           the password from the server, but this isn't possible in SILC).
738           Affected files apps/irssi/src/silc/core/silc-servers.c,
739           apps/irssi/src/silc/core/silc-channels.c
740
741 Sun Mar 11 15:22:42 CET 2007  Jochen Eisinger <coffee@silcnet.org>
742
743         * Import perl script for sign_messages from silc-plugin.  Affected
744           file apps/irssi/scripts/silc.pl
745
746 Sun Mar 11 15:19:10 CET 2007  Jochen Eisinger <coffee@silcnet.org>
747
748         * Only wait for a nick on connecting, when it differs
749           (not counting case) from the username.  Affected file
750           is apps/irssi/src/silc/core/silc-servers.c
751
752 Sun Mar 11 13:50:53 CET 2007  Jochen Eisinger <coffee@silcnet.org>
753
754         * Use time settings for lag settings.  Affected file is
755           apps/irssi/src/silc/core/silc-lag.c
756
757 Tue Feb 27 17:07:34 EET 2007  Pekka Riikonen <priikone@silcnet.org>
758
759         * Added silc_thread_yield.  Affected file is
760           lib/silcutil/silcmutex.h.
761
762 Wed Feb 21 17:01:01 EET 2007  Pekka Riikonen <priikone@silcnet.org>
763
764         * Fixed WHOIS command and requested attributes handling in
765           client library.  Affected files are lib/silcclient/command.c
766           and lib/silcclient/client_attrs.c.
767
768         * Fixed silc_time_value to actually work.  Added new function
769           silc_timezone.  Affected files are lib/silcutil/silctime.[ch].
770
771 Tue Feb 20 08:31:28 EET 2007  Pekka Riikonen <priikone@silcnet.org>
772
773         * SILC Client 1.1 beta2.
774
775 Mon Feb 19 16:06:27 EET 2007  Pekka Riikonen <priikone@silcnet.org>
776
777         * Fixed client to properly abort TCP stream creation when
778           giving /QUIT.  Affected file
779           apps/irssi/src/silc/core/silc-servers.c.
780
781         * Fixed several connecting aborting crashes from the client
782           library, packet engine and socket stream.  Affected files
783           are in lib/silclient/, lib/silccore/silcpacket.c and
784           lib/silcutil/unix/silcunixsocketstream.c.
785
786         * Fixed private key export double free crash in key generation.
787           Affected file is lib/silccrypt/silcpk.c.
788
789         * Fixed FSM event waiting when there are multiple signallers
790           and the waiter goes away after the first signal.  Affected
791           file in lib/silcutil/silcfsm.c.
792
793 Sun Feb 18 22:02:22 EET 2007  Pekka Riikonen <priikone@silcnet.org>
794
795         * Fixed FSM event signalling to check if the waiter has gone
796           away already.  Affected file is lib/silcutil/silcfsm.c.
797
798         * Fixed counter mode encryption/decryption to handle non-padded
799           SILC packets correctly.  The silc_cipher_set_iv now
800           in counter mode resets for a new block.  Affected files are
801           in lib/silcske/, lib/silccrypt/, lib/silcpacket/.
802
803 Sun Feb 18 12:15:21 EET 2007  Pekka Riikonen <priikone@silcnet.org>
804
805         * SILC Client 1.1 beta1.
806
807         * Memory leak fixes around the libraries.
808
809 Fri Feb 16 16:53:16 EET 2007  Pekka Riikonen <priikone@silcnet.org>
810
811         * Added better check for epoll() in configure.  Affected file
812           is lib/configure.ad.
813
814 Thu Feb 15 16:50:34 EET 2007  Pekka Riikonen <priikone@silcnet.org>
815
816         * Fixed per scheduler data input buffer in packet engine.  Use
817           list of inbufs instead of just one so that multiple streams
818           can do partial reads to different buffers.  Affected file is
819           lib/silccore/silcpacket.c.
820
821         * Fixed WATCH notify handling in client library.  Affected file
822           is lib/silcclient/client_notify.c.
823
824 Wed Feb 14 17:05:38 EET 2007  Pekka Riikonen <priikone@silcnet.org>
825
826         * Fixed packet wrapper stream API to support encoder/decoder
827           for packets, and to handle partial reading correctly.  Fixed
828           also inbuf size checking in reading to have enough space before
829           reading.  Affected files are lib/silccore/silcpacket.[ch].
830
831         * Rewrote file transfer in client library.  Affected files are
832           in lib/silcclient/.
833
834         * Added TCP/UDP listener (internal) API to client library to have
835           generic way of dealing with listeners.  Fixed Key Agreement and
836           file transfer to use it.  Affected files are in lib/silcclient/.
837
838         * Fixed SKE to process SUCCESS packets synchronously and to call
839           completion synchronously.  Affected file is lib/silcske/silske.c.
840
841         * Fixed pthread rwlock detection.  Affected file includes/silc.h.in.
842
843         * Implemented SILC_ATTRIBYUTE_PHONE_NUMBER.  Affected files are
844           lib/silccore/silcattrs.[ch].  SILC Protocol version 1.3 change.
845
846 Fri Feb  2 22:24:11 EET 2007  Pekka Riikonen <priikone@silcnet.org>
847
848         * Added support for SILC protocol version 1.3 NEW_CLIENT packet
849           to client library.  Affected file is
850           lib/silcclient/client_register.c.
851
852         * Serialize NICK and JOIN commands to avoid problems locally
853           with changing ID while joining to channel.  Affected file is
854           lib/silcclient/command.c.
855
856         * Fixed entry resolving while handling incoming JOIN notify.
857           Handle properly cases, in re-processing of notify packets, where
858           the IDs may become invalid while resolving the entry (like nick
859           change).  Entry is invalid if it doesn't have nickname, and such
860           entries are not delivered to application anymore.  These fixes
861           problems of not seeing JOINs when remote user changes nickname
862           at the same time.  Affected files are in lib/silcclient/.
863
864 Thu Feb  1 18:35:58 EET 2007  Pekka Riikonen <priikone@silcnet.org>
865
866         * Added support for computing message payload MAC in new way
867           (SILC Protocol version 1.3).  Bakcwards support for old way
868           remains.  Affected files are lib/silccore/silcmessage.[ch].
869
870 Sat Jan 27 22:37:30 EET 2007  Pekka Riikonen <priikone@silcnet.org>
871
872         * Added SilcRwLock API, a read/write lock.  Affected files are
873           lib/silcutil/silcmutex.h and in lib/silcutil/[unix|win32|symbian]/.
874
875 Wed Jan 24 18:55:21 EET 2007  Pekka Riikonen <priikone@silcnet.org>
876
877         * Merged Irssi SVN (irssi 0.8.11).  Affected files in apps/irssi/.
878
879 Tue Jan 23 16:05:27 EET 2007  Pekka Riikonen <priikone@silcnet.org>
880
881         * The silc_schedule_set_listen_fd now returns boolean value.
882           Fixed FD task adding to check correctly for already added
883           FD tasks.  Added stricter error checking for FD scheduling
884           with epoll().  Affected files are lib/silcutil/silcschedule.[ch]
885           and lib/silcutil/unix/silcunixschedule.c.
886
887         * The silc_stream_set_notifier now returns boolean value.  Changed
888           all streams to support and check for the error condition.
889           Affected files are in lib/silcutil/.
890
891         * Fixed SKE library session aborting and deletion.  Affected
892           file are lib/silcske/silcske.c.
893
894 Tue Jan 16 18:22:08 EET 2007  Pekka Riikonen <priikone@silcnet.org>
895
896         * Implemented PKCS #1 with appendix with hash OID in the
897           signature.  Affected files are lib/silccrypt/silcpkcs1.[ch],
898           lib/silccrypt/silchash.[ch] and
899           lib/silcasn1/silcasn1[_encode|decode].[ch].
900
901 Sun Jan 14 23:12:41 EET 2007  Pekka Riikonen <priikone@silcnet.org>
902
903         * Added support for Version (V) SILC public key identifier.
904           Affected files are lib/silccrypt/silcpk.[ch].
905
906 Tue Jan  9 19:37:51 EET 2007  Pekka Riikonen <priikone@silcnet.org>
907
908         * Rewrote connection auth request in client library.  It is now
909           done automatically by the library and the resolved method given
910           as a hint to get_auth_method client operation.  Affected files
911           are lib/silcclient/.
912
913 Wed Jan  3 18:06:33 EET 2007  Pekka Riikonen <priikone@silcnet.org>
914
915         * Added silc_packet_stream_wrap into lib/silccore/silcpacket.[ch].
916           It can be used to wrap SilcPacketStream into SilcStream.
917
918         * Fixed %p formatting from silc_snprintf.  Affected file is
919           lib/silcutil/silcsnprintf.c.
920
921         * Ported SFTP library to new utility library.  Ported also
922           the SFTP testers.  Affected files in lib/silcsftp/.
923
924 Tue Jan  2 17:18:46 EET 2007  Pekka Riikonen <priikone@silcnet.org>
925
926         * Added lib/silcutil/silcsnprintf.[ch].  Added in addition
927           of silc_snprintf, silc_vsnprintf, silc_asprintf and
928           silc_vasprintf.
929
930 Sat Dec 30 23:23:17 EET 2006  Pekka Riikonen <priikone@silcnet.org>
931
932         * Added preliminary Symbian support.  Changes around the source
933           tree.  The symbian/ directory now includes Carbide.c++ project
934           files to compile the sources.
935
936         * Added silc_snprintf.  Affected files are
937           lib/silcutil/silcstrutil.[ch].
938
939 Thu Dec 21 18:01:51 EET 2006  Pekka Riikonen <priikone@silcnet.org>
940
941         * Changed SILC_FSM_[CONTINUE|YIELD|WAIT|FINISH] enums to
942           macros.  SILC_FSM_CONTINUE macro now immediately calls the
943           next state instead of first returning back to FSM.  Helps
944           in debugging crashes etc.
945
946           Removed FSM Semaphores.  Introduced FSM Event which is
947           asynchronous event.   Affected files are in lib/.
948
949         * Added epoll(7) support to SILC Scheduler.  It is used by default
950           if it is available.  Affected files are
951           lib/silcutil/silcschedule.[ch],
952           lib/silcutil/unix/silcunixschedule.c.
953
954 Tue Dec 19 20:39:35 EET 2006  Pekka Riikonen <priikone@silcnet.org>
955
956         * Added CTR mode to AES.  Simplified cipher implementation API
957           more.  Affected files are in lib/silccrypt/.
958
959 Sun Dec 17 16:46:55 EET 2006  Pekka Riikonen <priikone@silcnet.org>
960
961         * Removed `detach' client operation.  The detachment data is
962           now delivered in SILC_COMMAND_DETACH command reply to
963           application.  Affected file in lib/silcclient/.
964
965         * Rewrote resuming/detaching in client library.
966
967         * Added boolean encryption indicator for silc_cipher_set_key.
968           Affected files lib/silccrypt/silccipher.[ch].
969
970 Wed Dec 13 18:05:50 EET 2006  Pekka Riikonen <priikone@silcnet.org>
971
972         * Added silc_likely and silc_unlikely macros for GCC branch
973           prediction optimizations.  Affected file lib/silcutil/silctypes.h.
974
975         * Added assembler AES optimization.  Cleaned up the SILC Cipher
976           implementation API.  Affected files are in lib/silccrypt/.
977
978 Tue Dec 12 18:56:14 EET 2006  Pekka Riikonen <priikone@silcnet.org>
979
980         * Changed back the SILC_FSM_THREAD_WAIT operation to not
981           continue to next state if thread is finished already.  That
982           check is not done anymore.  Affected files are
983           lib/silcutil/silcfsm.[ch].
984
985 Sun Dec 10 13:54:52 EET 2006  Pekka Riikonen <priikone@silcnet.org>
986
987         * Removed silc_packet_[get|set]_ciphers and
988           silc_packet_[get|set]_hmacs.  Added silc_packet_set_keys that
989           handle REKEY_DONE packet sending in rekey.  Affected files
990           are lib/silccore/silcpacket.[ch].
991
992         * Added silc_fsm_is_started.  Affected files are
993           lib/silcutil/silcfsm.[ch].
994
995         * Added settings sign_channel_message, sign_private_message
996           and key_exchange_rekey_pfs to SILC Client.  Added UDP transport
997           support for key agreement in /KEY command. Affected files
998           in apps/irssi/src/silc/core/.
999
1000         * During SILC Client initialization forward log messages to
1001           stderr.   Affected files in apps/irssi/src/silc/core/.
1002
1003 Thu Dec  7 19:07:21 EET 2006  Pekka Riikonen <priikone@silcnet.org>
1004
1005         * Added silc_ske_get_key_material.  Affected files are
1006           lib/silcske/silcske.[ch].
1007
1008         * Added silc_packet_stream_is_udp.  Affected files are
1009           lib/silccore/silcpacket.[ch].
1010
1011         * Added SKE packet retransmission support with UDP transport.
1012           Affected file is lib/silcske/silcske.c.
1013
1014 Sun Dec  3 22:00:12 EET 2006  Pekka Riikonen <priikone@silcnet.org>
1015
1016         * Added silc_socket_stream_is_udp.  Affected file is
1017           lib/silcutil/silcsocketstream.[ch].
1018
1019         * Added UDP transport support to packet engine.  Affected file
1020           is lib/silccore/silcpacket.c.
1021
1022         * Added silc_socket_stream_is_udp.  Affected file is
1023           lib/silcutil/silcsocketstream.[ch].
1024
1025 Sat Nov 18 11:33:03 EET 2006  Pekka Riikonen <priikone@silcnet.org>
1026
1027         * Added silc_packet_send_va[_ext] to send variable argument
1028           formatted buffers.  Affected files lib/silcore/silcpacket.[ch].
1029
1030         * Timeout freelist garbage collection added to scheduler.
1031           Affected file lib/silcutil/silcschedule.c.
1032
1033 Thu Nov  9 18:12:15 EET 2006  Pekka Riikonen <priikone@silcnet.org>
1034
1035         * Added silc_show_public_key_file to
1036           lib/silcapputil/silcapputil.[ch].
1037
1038         * Added SILC_STR_ADVANCE support for buffer unformatting.
1039           Affected file lib/silcutil/silcbuffmt.c.
1040
1041 Tue Nov  7 18:04:36 EET 2006  Pekka Riikonen <priikone@silcnet.org
1042
1043         * Added silc_string_split to lib/silcutil/silcstrutil.[ch].
1044
1045         * Added silc_mutex_assert_locked to lib/silcutil/silcmutex.h.
1046
1047         * silc_fsm_continue[_sync] now cancels erlier timeout set with
1048           silc_fsm_next_later.  Affected file lib/silcutil/silcfsm.c.
1049
1050 Sat Nov  4 21:50:37 EET 2006  Pekka Riikonen <priikone@silcnet.org
1051
1052         * Added SILC_STR_FUNC to buffer format API.  Affected files
1053           are lib/silcutil/silcbuffmt.[ch].
1054
1055         * Added silc_buffer_[s]enlarge to lib/silcutil/silcbuffer.h.
1056
1057         * No more memory allocation for message payload parsing.
1058           Pre-allocated buffer can be used with message payload encoding.
1059           Affected files lib/silccore/silcmessage.[ch].
1060
1061 Fri Oct 27 21:01:26 EEST 2006  Pekka Riikonen <priikone@silcnet.org
1062
1063         * Added silc_buffer_sunformat and silc_buffer_sunformat_vp
1064           to silcutil/silcbuffmt.[ch].
1065
1066 Sun Oct 22 13:03:07 EEST 2006  Pekka Riikonen <priikone@silcnet.org
1067
1068         * Added SILC_STR_BUFFER to format and unformat SilcBuffer.
1069           Affected file lib/silcutil/silcbuffmt.[ch].
1070
1071         * Removed silc_schedule_signal_[un]register and
1072           silc_schedule_signal_call.  Added silc_schedule_task_add_signal
1073           to add signal task.  Only one callback per signal may be
1074           added.  The signals are now automatically called back to
1075           caller.  Affected files lib/silcutil/silcschedule.[ch] and
1076           silcutil/[unix/win32]/silc[unix/win32]schedule.c.
1077
1078         * Added silc_time_msec and silc_time_usec to silcutil/silctime.[ch].
1079
1080         * Added SilcSKEParams for SKE parameters and simplied even more
1081           the SKE interface.  Affected files are lib/silcske/silcske.[ch].
1082           Added support for IV included and session port handling with
1083           UDP/IP connections.
1084
1085         * Added Secure ID (SID) support with IV Included flag (for UDP/IP)
1086           in lib/silccore/silcpacket.[ch].  Added silc_packet_set_sid
1087           which is called after every rekey when IV Included flag is used.
1088           See SILC specifications for details.
1089
1090 Thu Oct 19 10:03:03 EEST 2006  Pekka Riikonen <priikone@silcnet.org
1091
1092         * Added lib/silcapputil and moved SILC application specific
1093           utility routines from the generic util library lib/silcutil
1094           to the new library.  Removed lib/silcidcache and moved that
1095           to lib/silcapputil as well.
1096
1097 Tue Sep 19 00:14:11 EEST 2006  Pekka Riikonen <priikone@silcnet.org>
1098
1099         * Added SILC_STR_ADVANCE.  Affected file is
1100           lib/silcutil/silcbuffmt.[ch].
1101
1102         * The silc_buffer_strformat preserves buffer locations now.
1103
1104         * Added lib/silcutil/silcatomic.h for atomic operations.
1105
1106 Sat Sep 16 11:23:06 EEST 2006  Pekka Riikonen <priikone@silcnet.org>
1107
1108         * Added lib/silchttp, SILC HTTP server, a very simple HTTP
1109           server.
1110
1111         * Fixed MIME deocing when data portion is not present.
1112           Affected file lib/silcutil/silcmime.c.
1113
1114 Wed Jul 19 12:06:38 EEST 2006  Pekka Riikonen <priikone@silcnet.org>
1115
1116         * Moved lib/silccore/silcidcache.[ch] to lib/silcutil/.
1117
1118         * Added IV Included support to packet routines, to allow
1119           packet sending and receiving on UDP/IP.  Affected files are
1120           lib/silccore/silcpacket.[ch].
1121
1122         * Added SILC_FSM_YIELD.  Affected files lib/silcutil/silcfsm.[ch].
1123
1124 Tue Jul 18 20:10:28 EEST 2006  Pekka Riikonen <priikone@silcnet.org>
1125
1126         * Added UDP support to network and socket stream library.
1127
1128 Sat Jun 24 22:33:18 EEST 2006  Pekka Riikonen <priikone@silcnet.org>
1129
1130         * Added conditional variables.  New files are
1131           lib/silcutil/silcondvar.h and platform specific implementations.
1132
1133 Thu Jan  5 20:02:31 CET 2006 Patrik Weiskircher <pat@icore.at>
1134
1135         * make sure session->hostname and session->port are valid before the
1136           application callback is done, since things will go wrong if the
1137           application immediately calls silc_client_file_receive. Affected
1138           file lib/silcclient/client_ftp.c.
1139           Patch received from Stefan Siegel <stesie@brokenpipe.de>, thanks!
1140
1141 Fri Dec 30 22:54:21 EET 2005  Pekka Riikonen <priikone@silcnet.org>
1142
1143         * New SILC PKCS API enabling support for other public keys
1144           and certificates, lib/silccrypt/silcpkcs.[ch], silcpk.[ch].
1145
1146         * Separated SILC Public Key Payload routines from the PKCS API
1147           to lib/silccore/silcpubkey.[ch].
1148
1149 Wed Dec 28 13:55:22 EET 2005  Pekka Riikonen <priikone@silcnet.org>
1150
1151         * Added SILC Key Repository library, lib/silcskr.
1152
1153         * Added SILC Server library, lib/silcserver.
1154
1155 Mon Dec 19 18:04:24 EET 2005  Pekka Riikonen <priikone@silcnet.org>
1156
1157         * MIME objects in attributes now use SilcMime.  Affected files
1158           are lib/silccore/silcattrs.[ch].
1159
1160 Sat Dec 17 20:13:31 EET 2005  Pekka Riikonen <priikone@silcnet.org>
1161
1162         * Synchronize semaphore posting for real threads in FSM.
1163           Affected files are lib/silcutil/silcfsm.c, silcfsm_i.h.
1164
1165 Mon Nov 28 17:06:54 EET 2005  Pekka Riikonen <priikone@silcnet.org>
1166
1167         * Added silc_file_set_nonblock.  Affected file is
1168           lib/silcutil/silcfileutil.h.
1169
1170         * Added silc_fd_stream_file to lib/silcutil/silcfdstream.[ch].
1171
1172 Sat Nov 26 16:13:40 EET 2005  Pekka Riikonen <priikone@silcnet.org>
1173
1174         * FSM based implementation of SILC SKE.  Simpler interface also.
1175           Affected files are in lib/silcske/.
1176
1177         * Added SilcBool type.  Affected file lib/silcutil/silctypes.h.
1178
1179 Sat Nov 19 17:34:51 EET 2005  Pekka Riikonen <priikone@silcnet.org>
1180
1181         * Added SilcMime API to lib/silcutil/silcmime.[ch].  The old
1182           silc_mime_parse is available but deprecated.
1183
1184         * Check that packet is valid when processing key exchange,
1185           authentication and rekey protocols.  Fixes a crashbug.
1186           Affected files are apps/silcd/protocol.c and
1187           lib/silcclient/protocol.c.
1188
1189         * Added SILC_HASH_MAXLEN to lib/silccrypt/silchash.h, and changed
1190           all hash buffers to use that instead of fixed values.
1191
1192 Wed Nov 16 15:47:12 EET 2005  Pekka Riikonen <priikone@silcnet.org>
1193
1194         * Added SHA-256 to crypto library.  The SHA-256 takes now
1195           precedence over SHA-1.
1196
1197 Thu May 26 20:31:06 EEST 2005  Pekka Riikonen <priikone@silcnet.org>
1198
1199         * Check for valid return value from regcomp.  Affected file
1200           lib/silcutil/unix/silcunixutil.c.
1201
1202 Tue May 10 23:11:17 EEST 2005  Pekka Riikonen <priikone@silcnet.org>
1203
1204         * Fixed silc_hash_uint to work with integers.  Affected
1205           file lib/silcutil/silcutil.c.
1206
1207 Tue May 10 15:11:53 EEST 2005  Pekka Riikonen <priikone@silcnet.org>
1208
1209         * Rewritten SILC Log API.  Affected files lib/silcutil/silclog.[ch].
1210
1211 Mon May  9 12:00:08 EEST 2005  Pekka Riikonen <priikone@silcnet.org>
1212
1213         * Fixed channel public key list saving on JOIN command reply
1214           on backup router.  Affected file apps/silcd/command_reply.c.
1215
1216 Mon May  2 10:42:49 EEST 2005  Pekka Riikonen <priikone@silcnet.org>
1217
1218         * Added default limit how many channels client can join,
1219           default is 50.  Added 'channel_join_limit' configuration
1220           option to server too.  Affected files are apps/silcd/command.c
1221           and serverconfig.[ch].
1222
1223 Sun May  1 17:42:55 EEST 2005  Pekka Riikonen <priikone@silcnet.org>
1224
1225         * --without-silc -> --with-silc, --without-irssi -> --with-irssi.
1226           On Toolkit the server and client are not compiled by default.
1227           Affected file configure.ad.
1228
1229 Thu Apr 28 15:57:37 EEST 2005  Pekka Riikonen <priikone@silcnet.org>
1230
1231         * Added lib/contrib/getopt.[ch] for platforms that don't
1232           have it (it is not GPL implementation).
1233
1234         * Fixed compilation when pkg-config is used.
1235
1236 Wed Apr 27 11:49:41 EEST 2005  Pekka Riikonen <priikone@silcnet.org>
1237
1238         * A comma in invite/ban string is invalid, check for it.
1239           Affected file apps/silcd/server_util.c.
1240
1241         * Added SERVICE command to the server.  It parses the command
1242           request but SILC Server does not support services for the
1243           time being.  Affected file apps/silcd/command.[ch].
1244
1245         * Added SERVICE command and command reply to client library.
1246           It is however incomplete.  Updated Toolkit documentation.
1247           Affected files are lib/silcclient/command[_reply].[ch].
1248
1249         * Fixed IDENTIFY/WHOWAS command reply to send the username
1250           correctly (uninitialized buffer).  Affected file is
1251           apps/silcd/server_query.c.
1252
1253 Mon Apr 25 14:25:24 EEST 2005  Pekka Riikonen <priikone@silcnet.org>
1254
1255         * Moved silcer/, silc/, silcd/ and irssi/ to apps/.  This
1256           finalizes the major restructuring of the CVS tree.
1257
1258 Mon Apr 25 00:39:30 EEST 2005  Pekka Riikonen <priikone@silcnet.org>
1259
1260         * Send empty MOTD reply if MOTD file cannot be read.
1261           Affected file silcd/command.c.
1262
1263 Sun Apr 24 12:01:37 EEST 2005  Pekka Riikonen <priikone@silcnet.org>
1264
1265         * Optimized primer number generator to use simpler conversion
1266           routines.  Also assure that the prime number will have the
1267           highest bit set after modifying it.  Affected file is
1268           lib/silcmath/silcprimegen.c.
1269
1270         * Added LibTomMath to SILC Math library (SILC_DIST_TMA).
1271
1272         * Added FastTomMath to SILC Math Library (SILC_DIST_TFM),
1273           for now only for testing purposes, it will not be delivered
1274           in any distribution for now.
1275
1276         * Removed NSS MPI from the source tree.  Due to upcoming
1277           license change for the SILC Toolkit, we cannot deliver the
1278           NSS MPI anymore.  I decided to replace it in all distributions
1279           with public domain library.
1280
1281         * Removed GNU regex from lib/contrib and introduced free
1282           GNU compatible regex, lib/contrib/regexpr.[ch].  Added
1283           GNU regex compatible API to it (only partial).
1284
1285         * Removed getopt routines from lib/contrib.
1286
1287 Fri Apr 22 12:21:44 EEST 2005  Pekka Riikonen <priikone@silcnet.org>
1288
1289         * Use silc_server_send_command_reply to send replies instead
1290           of encoding packet itself.  Affected file silcd/command.c.
1291
1292         * Added command sending and receiving statistics to server.
1293           Affected files in silcd/.
1294
1295         * GCC 4 warning fixes.  -Wno-pointer-sign option is now used
1296           with GCC, for it not to warn about pointer signedness.
1297
1298 Tue Apr 19 11:57:35 EEST 2005  Pekka Riikonen <priikone@silcnet.org>
1299
1300         * Added context to the SilcIDCache destructor.  Affected
1301           files are lib/silccore/silcidcache.[ch],
1302           lib/silcclient/client.c and silcd/server.c.
1303
1304 Mon Apr 18 09:53:28 EEST 2005  Pekka Riikonen <priikone@silcnet.org>
1305
1306         * Added pkg-config check to configure.
1307
1308         * The PublicKeyDir must not be used with Admin block in server
1309           config.  Affected file silcd/serverconfig.c.
1310
1311 Sat Apr 16 20:23:48 EEST 2005  Pekka Riikonen <priikone@silcnet.org>
1312
1313         * Added Autodist.
1314
1315 Thu Apr 14 20:25:08 EEST 2005  Pekka Riikonen <priikone@silcnet.org>
1316
1317         * Handle empty LIST command reply correcttly in server.  Affected
1318           file silcd/command_reply.c.
1319
1320         * Handle empty LIST command reply correctly in client library.
1321           The application will now receive one LIST command reply with
1322           all arguments set to NULL if there are no channels.  Updated
1323           Client Library documentation accordingly.  Affected file
1324           lib/silcclient/command_reply.c.
1325
1326 Tue Apr 12 00:02:09 EEST 2005  Pekka Riikonen <priikone@silcnet.org>
1327
1328         * Added channel name string stringprep profile to the protocol
1329           and implementation to allow a little free'er channel name
1330           strings.  Affected files are lib/silcutil/silcstringprep.[ch].
1331
1332         * Added silc_channel_name_[check|verify] to check and verify
1333           channel name strings.  Affected files are
1334           lib/silcutil/silcstrutil.[ch].
1335
1336         * Added support for the new channel name preparation in client
1337           library and server.  Affected files in lib/silcclient and
1338           silcd/.
1339
1340 Mon Apr 11 13:40:27 EEST 2005  Pekka Riikonen <priikone@silcnet.org>
1341
1342         * Added the Autodist into the source tree.  It replaces the
1343           old ./prepare.  It can be used to create distributions as
1344           previously.  See README.CVS and README.DIST.  See
1345           distributions in distdir/.
1346
1347 Sun Apr 10 11:30:56 EEST 2005  Pekka Riikonen <priikone@silcnet.org>
1348
1349         * Make sure query sends at least an error back if nothing
1350           more is sent.  Affected file silcd/server_query.c.
1351
1352 Thu Apr  7 14:50:01 EEST 2005  Pekka Riikonen <priikone@silcnet.org>
1353
1354         * During query, check if the original command caller goes
1355           away.  If it does, stop the query.  Affected file
1356           silcd/server_query.c.
1357
1358         * Check for valid channel creation in JOIN command reply.
1359           Affected file lib/silcclient/command_reply.c.
1360
1361         * Handle the resolver counter in silc_client_get_users_by_channel
1362           callback correctly.  Fixed auto-join bug in Gaim.  Affected
1363           file lib/silcclient/idlist.c.
1364
1365 Wed Apr  6 16:56:53 EEST 2005  Pekka Riikonen <priikone@silcnet.org>
1366
1367         * Added some better error messages.  Affected file
1368           silcd/command_reply.c and packet_receive.c.
1369
1370         * Handle error in WATCH command propely on backup router.
1371           Affected file silcd/command.c.
1372
1373         * Fixed freeing of unfreeable variable in WHOIS command reply.
1374           Affected file silcd/command_reply.c.
1375
1376 Wed Apr  6 09:10:31 CEST 2005  Pekka Riikonen <priikone@silcnet.org>
1377
1378         * Added pkg-config .pc file creation for silc core library
1379           and silcclient library.  A patch by c0ffee.
1380
1381         * Removed the need for GNU Libidn.  Added the simple stringprep
1382           from libidn into lib/contrib/.  It is now used also on Windows
1383           build.
1384
1385 Mon Apr  4 15:15:46 EEST 2005  Pekka Riikonen <priikone@silcnet.org>
1386
1387         * Simplified the invite and ban string handling in the
1388           server.  Check for valid invite and ban arguments also.
1389           Affected file silcd/server_util.c.
1390
1391 Sun Apr  3 14:58:53 EEST 2005  Pekka Riikonen <priikone@silcnet.org>
1392
1393         * Added WATCH list announcing in backup router protocol.
1394           Affected files are silcd/command.c, server.c, server_backup.c.
1395
1396         * Do not change users mode to founder on normal server/backup
1397           if the founder mode is set, and user is first one to join.
1398           Affected file silcd/pcaket_receive.c.
1399
1400         * Do not send CUMODE_CHANGE notify back to sender.  Affected
1401           file silcd/packet_receive.c.
1402
1403         * Added getrusage() to take noise in SILC RNG.  A patch by
1404           Mika Boström.  Affected files are configure.in.pre,
1405           includes/silcincludes.h.in, lib/silccrypt/silcrng.c.
1406
1407 Sat Apr  2 18:09:30 EEST 2005  Pekka Riikonen <priikone@silcnet.org>
1408
1409         * Splitted the SILC libraries configuration into a configure
1410           fragment into lib/configure.ad.  It is now possible, once
1411           this feature is added, to specify whether to compile or not
1412           compile included SILC libraries.  Affected files are
1413           configure.in.pre, lib/silcmath/mpi/configure.ad,
1414           lib/configure.ad, Makefile.defines.pre and
1415           Makefile.defines_int.pre.
1416
1417         * Added --with-silc-includes and --with-silc-libs to configure.
1418           If specified the included libs are not compiled, but the
1419           specified libs are used.  Pkg-config is not yet supported.
1420           Affected file configure.in.pre.
1421
1422         * Fixed WATCH command handling on backup router.  Router does not
1423           send the watch command any more to backup if it originates from
1424           backup.  Affected file silcd/command.c.
1425
1426 Fri Apr  1 18:52:47 EEST 2005  Pekka Riikonen <priikone@silcnet.org>
1427
1428         * Changed announcing to not announce unregistered clients.
1429           Affected file silcd/server.c.
1430
1431         * Fixed username handling in command reply.  Affected file
1432           silcd/command_reply.c.
1433
1434         * Log files are now 0600.  Affected file lib/silcutil/silclog.c.
1435
1436 Thu Mar 31 22:34:22 CEST 2005  Patrik Weiskircher <pat@icore.at>
1437
1438         * Added new define SILC_MACOSX, if __APPLE__ and __MACH__ is defined.
1439           Affected file: includes/silcincludes.h.in
1440
1441         * bool is defined as _Bool on Mac OS X now.
1442           Affected file: lib/silcutil/silctypes.h
1443
1444 Thu Mar 31 08:52:06 EEST 2005  Pekka Riikonen <priikone@silcnet.org>
1445
1446         * Added support for UTF-8 nicknames, channel names and
1447           server names in client library.  Affected files in
1448           lib/silcclient/.
1449
1450         * Added __SILC_HAVE_PTHREAD, __SILC_HAVE_SIM, __SILC_HAVE_LIBIDN,
1451           and __SILC_ENABLE_DEBUG to include/silcclient.h for third-party
1452           software to check how Toolkit has been compiled.
1453
1454 Wed Mar 30 22:16:35 EEST 2005  Pekka Riikonen <priikone@silcnet.org>
1455
1456         * Added silc_utf8_str[n]casecmp into lib/silcutil/silcutf8.[ch].
1457
1458         * Use silc_utf8_str[n]casecmp instead of strcmp routines
1459           in library and in SILC Client when dealing with nicknames
1460           and other identifier strings.  Affected file in client lib
1461           and irssi.
1462
1463         * Convert nickname to UTF-8 in /msg and /smsg.  Affected file
1464           irssi/src/silc/core/silc-servers.c.
1465
1466 Wed Mar 30 10:50:02 EEST 2005  Pekka Riikonen <priikone@silcnet.org>
1467
1468         * Fixed idcache to work with the new identifier strings.
1469           Affected file lib/silccore/silcidcache.c.
1470
1471         * Added UTF-8 hash and compare function for SilcHashTable.
1472           Affected file lib/silcutil/silcutil.[ch].
1473
1474         * Added casefolding stringprep, SILC_CASEFOLD_PREP.
1475           Affected file lib/silcutil/silcstringprep.[ch].
1476
1477         * Changed the identifier string handling to include the original
1478           format in client, server, channel entries and normalized
1479           format in cache.  Affected files in silcd/.
1480
1481 Tue Mar 29 16:51:35 EEST 2005  Pekka Riikonen <priikone@silcnet.org>
1482
1483         * Added support for the new identifier strings and their
1484           validity checking.  Nicknames, channel names and usernames
1485           can now include practically any kind of letters and various
1486           other characters.  Affected files in silcd/ and in libraries.
1487
1488           NOTE: comparing these strings should now be done with memcmp()
1489           to check binary compatibility.  All these strings are normalized
1490           and casing is irrelevant.
1491
1492         * Added silc_identifier_check to lib/silcutil/silcstrutil.[ch]
1493           as easy function for applications to check whether identifier
1494           strings are valid.
1495
1496 Tue Mar 29 00:45:11 EEST 2005  Pekka Riikonen <priikone@silcnet.org>
1497
1498         * Fixed SILC_STRING_LDAP_DN encoding and decoding.  Affected
1499           file lib/silcutil/silcutf8.c.
1500
1501         * Added SILC_STRING_UTF8_ESCAPE to lib/silcutil/silcstrutil.h.
1502
1503 Mon Mar 28 22:46:23 CEST 2005  Jochen Eisinger <jochen@penguin-breeder.org>
1504
1505         * Make public key in getkey reply mandatory.  Affected file
1506           lib/silcclient/command_reply.c
1507
1508 Sun Mar 27 19:03:31 CEST 2005  Patrik Weiskircher <pat@icore.at>
1509
1510         * Added Parameter dont_register_crypto_library to
1511           SilcClientParam. If set to TRUE, silcclient library will
1512           not initalize the Crypto Libraries and application
1513           will need to do it. Affected file lib/silcclient/silcclient.h,
1514           lib/silcclient/client.c.
1515
1516 Sun Mar 27 19:02:48 EEST 2005  Pekka Riikonen <priikone@silcnet.org>
1517
1518         * Imported new silc_utf8_[encode|decode] routines from
1519           my internal SILC 1.1 source tree.  New encodings added:
1520           SILC_STRING_LOCALE (SILC_STRING_LANGUAGE is deprecated),
1521           SILC_STRING_UTF8, SILC_STRING_PRINTABLE, SILC_STRING_VISIBLE,
1522           SILC_STRING_TELETEX, SILC_STRING_NUMERICAL and
1523           SILC_STRING_LDAP_DN.
1524
1525         * Splitted UTF-8 routines into lib/silcutil/silcutf8.[ch].
1526
1527         * Implemented stringprep (RFC 3454) API.  Internally we use
1528           GNU Libidn's stringprep, for now, so it is required now to
1529           compile SILC sources.  Added lib/silcutil/silcstringprep.[ch].
1530
1531         * Added checking for GNU Libidn and --with-libidn to configure.
1532
1533 Wed Mar 23 11:20:33 CET 2005  Jochen Eisinger <jochen@penguin-breeder.org>
1534
1535         * If the passphrases entered do not match while generating a new key,
1536           completly start over instead of going into an infinite loop asking
1537           the user to re-enter the passphrase correctly.  Affected file
1538           lib/silcutil/silcapputil.c
1539
1540 Sun Jan  9 14:28:51 CET 2005  Pekka Riikonen <priikone@silcnet.org>
1541
1542         * Make sure server is removed from backup list when it is
1543           deleted.  Affected files silcd/command.c, server.c,
1544           server_util.c.
1545
1546         * Close socket when connecting to router fails.  Affected
1547           file silcd/server.c.
1548
1549 Tue Jan  4 13:06:26 CET 2005  Jochen Eisinger <jochen@penguin-breeder.org>
1550
1551         * Adopt configuration toolchain to current auto-tools.
1552           Affected files prepare, irssi/configure.in
1553         * Revert most of the UTF-8 fixes to SILC Client 1.0.1.  Will
1554           redo that.  Affected files irssi/src/silc/core/client_ops.c,
1555           irssi/src/fe-common/silc/fe-silc-channels.c
1556         * Take over command line options into silcclient data structure.
1557           Affected file irssi/src/silc/core/silc-core.c
1558
1559 Wed Dec  8 16:15:11 CET 2004  Pekka Riikonen <priikone@silcnet.org>
1560
1561         * Do not try to initiate backup resuming protocol forever.
1562           Affected file silcd/server_backup.c.
1563
1564 Wed Nov 24 18:24:05 CET 2004  Pekka Riikonen <priikone@silcnet.org>
1565
1566         * ID change in resuming has to be done before changing
1567           detached client's modes, since the ID change may fail and
1568           leave ghosts on the network.  Affected file is
1569           silcd/packet_receive.c.
1570
1571 Tue Nov 23 16:54:35 CET 2004  Pekka Riikonen <priikone@silcnet.org>
1572
1573         * Fixed Win32 scheduler to not stuck anymore.  A patch from
1574           Juha Räsänen.  Affected file is
1575           lib/silcutil/win32/silcwin32schedule.c.
1576
1577         * Fixed QoS parsing for connection blocks in server.  Affected
1578           file is silcd/serverconfig.c.
1579
1580         * Fixed server statistics increasing in server.  Affected file
1581           is silcd/server.c.
1582
1583         * The CLOSE command now marks backup router as self disconnected
1584           to avoid resuming problems.  Affected file silcd/command.c.
1585
1586 Wed Sep 22 19:46:32 CEST 2004  Patrik Weiskircher <pat@icore.at>
1587
1588         * When using silc_net_create_connection[_async], and your system can
1589           create IPv6 sockets, it will try to connect to the IPv6 host.
1590           Now it tries to connect to an IPv4 host if IPv6 fails. Affected
1591           file lib/silcutil/unix/silcunixnet.c
1592
1593 Fri Jun 18 19:26:58 CEST 2004  Pekka Riikonen <priikone@silcnet.org>
1594
1595         * Check for valid route when receiving packet from router and
1596           when routing it to local server in the cell.  A patch from
1597           Matt Miller.  Affected files silcd/router.c and server.c.
1598
1599 Sat May  1 13:55:54 CEST 2004  Patrik Weiskircher <pat@icore.at>
1600
1601         * Couldn't detach and reattach twice, because of the previous
1602           commit. Affected file silcd/packet_receive.c
1603
1604 Fri Apr 30 19:40:28 CEST 2004  Patrik Weiskircher <pat@icore.at>
1605
1606         * Added check to ignore Port value if Initiator is FALSE.
1607           Remote router coudln't connect if Port was set. Affected file
1608           silcd/serverconfig.c
1609
1610         * If some client tries to resume more than once at the same time,
1611           server crashed. Router didn't crash, but showed odd behaviour
1612           (didn't allow clients to join anymore, ..). Affected files
1613           silcd/packet_receive.c silcd/idlist.h
1614
1615 Mon Mar 15 21:10:08 EET 2004  Pekka Riikonen <priikone@silcnet.org>
1616
1617         * Destroy the file transfer session in silc_client_file_close
1618           with timeout.  Affected file lib/silcclient/client_ftp.c.
1619
1620         * Call SFTP server monitor in READ and WRITE after the actual
1621           operations.  Affected file lib/silcsftp/sftp_server.c.
1622
1623 Wed Mar 10 21:30:02 EET 2004  Pekka Riikonen <priikone@silcnet.org>
1624
1625         * Create one configure script from configure fragments
1626           (configure.ad).  This is a first step towards new distribution
1627           system.  Affected files prepare, configure.in.pre,
1628           lib/silcmath/mpi/configure.ad.
1629
1630 Wed Mar 10 18:35:24 CET 2004  Jochen Eisinger <jochen@penguin-breeder.org>
1631
1632         * Removed expiring of client key pair.  Affected file is
1633           irssi/src/silc/core/clientutil.c
1634
1635 Tue Mar  9 17:11:58 EET 2004  Pekka Riikonen <priikone@silcnet.org>
1636
1637         * Check the number of connections from real number of
1638           connections instead of socket number, when deciding if
1639           server is full.  Affected files are silcd/server.c,
1640           server_internal.h and silcd.c.
1641
1642         * Clarified the connections_max meaning in General section
1643           in doc/example_silcd.conf.in.
1644
1645         * The reconnect_keep_trying default value set to TRUE
1646           if it is not defined in the config file.  Affected file
1647           silcd/serverconfig.c.
1648
1649 Wed Mar  3 15:13:49 CET 2004  Pekka Riikonen <priikone@silcnet.org>
1650
1651         * Fixed crashbug in connection closing, after a protocol
1652           completion callback, which might have closed it already.
1653           Affected file silcd/server.c.
1654
1655         * Fixed rekey with PFS in backup router.  It did not allow
1656           rekeys with PFS, and when the rekey protocol timedout
1657           it crashed the backup router without the above fix.  Affected
1658           file silcd/packet_send.c and server.c.
1659
1660 Sat Feb 28 16:25:09 EET 2004  Pekka Riikonen <priikone@silcnet.org>
1661
1662         * The silc_client_add_channel_private_key now returns the
1663           private key context if pointer is given as argument.
1664           Affected files are lib/silcclient/silcclient.h and
1665           client_channel.c.
1666
1667         * Added support for using channel private keys in SILC
1668           Client Library even if the private key mode is not set
1669           on the channel.  Affected file lib/silcclient/client_channel.c.
1670
1671         * The channel private key used to decrypt message is now
1672           delivered to the application in the 'channel_messageÃ' client
1673           operation.  Affected files are lib/silcclient/silcclient.h
1674           and client_channel.c.
1675
1676         * Fixed wrong arg type for user limit in CMODE command reply.
1677           Affected file silcd/command.c.
1678
1679         * The user limit is now taken and saved to SilcClientEntry in
1680           JOIN and CMODE command replies and in CMODE_CHANGE notify.
1681           Affected files lib/silcclient/silcclient.h, command_reply.c
1682           and client_notify.c.
1683
1684         * Added support to the new private message key indicator
1685           packet.  Added a new function to the client library:
1686           silc_client_send_private_message_key_request.  The sender
1687           indicates to be initiator, and receiver is responder.
1688           Added the indicator to the SilcClientEntry as 'prv_resp'
1689           boolean.  Affected files are lib/silcclient/silcclient.h
1690           client.[ch], and client_prvmsg.c.
1691
1692 Fri Feb 27 11:25:26 CET 2004  Pekka Riikonen <priikone@silcnet.org>
1693
1694         * Fixed the JOIN command calling when called with both
1695          -auth and -founder.  Affected file is lib/silcclien/command.c.
1696
1697 Wed Feb 25 23:12:11 EET 2004  Pekka Riikonen <priikone@silcnet.org>
1698
1699         * Check watcher list for resumed clients as well.  Affected
1700           file is silcd/packet_receive.c.
1701
1702 Tue Feb 24 16:49:10 EET 2004  Pekka Riikonen <priikone@silcnet.org>
1703
1704         * Implemented the user limit to the CMODE_CHANGE notify,
1705           CMODE command reply and JOIN command reply in server.
1706           Affected files are silcd/server.c, command.c, command_reply.c,
1707           packet_send.c and packet_receive.c.
1708
1709 Mon Feb 23 23:31:15 EET 2004  Pekka Riikonen <priikone@silcnet.org>
1710
1711         * Defined SILC_STRFMT_END that must be used now with
1712           silc_buffer_strformat, instead of SILC_STR_END.  Fixes
1713           crashes on AMD64.  Affected files are lib/silcutil/silcbuffmt.h,
1714           lib/silcclient/silcvcard.c, silcd/server_util.c.
1715
1716         * Fixed the adding of public key to the WATCH list in server.
1717           Fixed the WATCH notify sending to client.  Affected files
1718           are silcd/packet_send.[ch], command.c, server_util.c.
1719
1720         * Implemented the watching by public key in the SILC Client
1721           Library and SILC Client.  Affected files are
1722           lib/silcclient/command.c and client_notify.c.
1723
1724 Mon Feb 23 09:30:30 CET 2004  Pekka Riikonen <priikone@silcnet.org>
1725
1726         * Added support for public key watching in server.  Affected
1727           files are silcd/server.c, server_internal.h, command.c,
1728           server_util.c.
1729
1730 Sun Feb 22 19:03:59 EET 2004  Pekka Riikonen <priikone@silcnet.org>
1731
1732         * Added public key to the SIlcClientEntry.  Affected files
1733           are lib/silcclient/silcclient.h, command_reply.c, idlist.c
1734
1735         * Fixed the get_clients_whois reply processing to return
1736           exactly same entries server returned.  Makes it possible
1737           to search using attributes.  Affected file is
1738           lib/silcclient/idlist.c.
1739
1740 Sat Feb 21 19:21:57 EET 2004  Pekka Riikonen <priikone@silcnet.org>
1741
1742         * Save founder key to SilcChannelEntry.  Affected files are
1743           lib/silcclient/silcclient.h, command_reply.c, idlist.c.
1744
1745 Fri Feb 20 20:37:38 EET 2004  Pekka Riikonen <priikone@silcnet.org>
1746
1747         * Call the monitor callback with _CLOSED status from the
1748           silc_client_file_close.  Affected files are
1749           lib/silcclient/client_fpt.c, silcclient.h
1750
1751         * Added silc_client_get_clients_whois which resolves using
1752           WHOIS, and supports requested attributes as well.
1753           Affected files are lib/silcclient/silcclient.h, idlist.c.
1754
1755 Fri Feb 19 21:09:22 EET 2004  Pekka Riikonen <priikone@silcnet.org>
1756
1757         * Added support for asking the destination filename where
1758           the downloaded file is saved in the file transfer.  Affected
1759           files are lib/silccilent/silcclient.h, client_ftp.c.
1760
1761 Wed Feb 18 02:46:17 EET 2004  Pekka Riikonen <priikone@silcnet.org>
1762
1763         * Fixed error handling in resuming data processing.  Affected
1764           files are lib/silcclient/client_resume.c and client.c.
1765
1766 Tue Feb 17 19:34:30 EET 2004  Pekka Riikonen <priikone@silcnet.org>
1767
1768         * Fixed silc_client_send_private_message to return TRUE correctly.
1769           Affected file lib/silcclient/client_prvmsg.c.
1770
1771         * Added topic to the SilcChannelEntry.  Affected files are
1772           lib/silcclient/silcclient.h, command_reply.c, client_notify.c.
1773
1774 Fri Feb 13 14:19:14 CET 2004  Jochen Eisinger <jochen@penguin-breeder.org>
1775
1776         * Use conn->cmd_ident for all silc_client_command_call()s.  Affected
1777           file lib/silcclient/command.c
1778
1779 Fri Feb 13 13:53:45 CET 2004  Jochen Eisinger <jochen@penguin-breeder.org>
1780
1781         * Convert all commands to UTF-8 before passing them to the
1782           client library.  Still need to convert replies from UTF-8 to
1783           the locale encoding.  Affected file
1784           irssi/src/silc/core/silc-cmdqueue.c
1785
1786 Fri Feb 13 13:13:07 CET 2004  Jochen Eisinger <jochen@penguin-breeder.org>
1787
1788         * redirect all silc_client_command_calls through a queueing framework.
1789           This fixes /CYCLE and the annoying "nick change after auto-joining
1790           a channel".  Furthermore it defines one central point where
1791           command parameters can be UTF-8-ified.  Affected files
1792           irssi/src/silc/core/Makefile, client_ops.c, silc-channels.c,
1793           silc-servers.[ch], silc-core.c, silc-cmdqueue.[ch], silc-lag.c
1794
1795 Fri Feb 13 12:04:41 CET 2004  Jochen Eisinger <jochen@penguin-breeder.org>
1796
1797         * use asynchronous connect() to establish router connections.
1798           Fixes problem when the primary router goes down.  Affected files
1799           silcd/server.c, silcd/server_backup.c
1800
1801 Thu Feb 12 20:09:59 EET 2004  Pekka Riikonen <priikone@silcnet.org>
1802
1803         * Added SILC_[32|64]_TO_PTR and SILC_PTR_TO_[32|64] macros.
1804           Fixed various compilation warnings when type casting ints
1805           to pointers or vice versa, of different size.  Updates around
1806           the source free.
1807
1808 Tue Feb  3 23:25:17 EET 2004  Pekka Riikonen <priikone@silcnet.org>
1809
1810         * Surrogates not allowed in UTF-8 strings, updated decoder.
1811           Affected file lib/silcutil/silcstrutil.c.  Added UTF-8
1812           testers in lib/silcutil/tests/ directory.
1813
1814 Wed Jan 14 18:42:44 EET 2004  Pekka Riikonen <priikone@silcnet.org>
1815
1816         * Added SILC_CLIENT_CONN_ERROR_KE, ERROR_AUTH, ERROR_RESUME and
1817           ERROR_TIMEOUT SilcClientConnectionStatus errors.  Affected
1818           files are lib/silcclient/silcclient.h, client.c.
1819
1820 Mon Jan 12 13:01:10 CET 2004  Jochen Eisinger <jochen@penguin-breeder.org>
1821
1822         * When resuming a session fails, notify the user that the session
1823           file needs to be removed eventually.  Affected files
1824           irssi/src/fe-common/silc/module-formats.[ch],
1825           irssi/src/silc/core/client_ops.c.
1826
1827 Tue Jan 04 12:16:04 CET 2004  Jochen Eisinger <jochen@penguin-breeder.org>
1828
1829         * Added DIST_SUBDIRS symbols to include all subdirs in distributions.
1830           Affected files lib/silcutil/Makefile.am, lib/silcmath/Makefile.am
1831
1832         * Typofix in Irssi::Silc module.  Affected file
1833           irssi/src/perl/silc/Silc.xs.
1834
1835 Tue Jan 04 02:43:44 CET 2004  Jochen Eisinger <jochen@penguin-breeder.org>
1836
1837         * Changed the way NOTICE flagged messages are treated. Added support
1838           for notices in queries and signing notices.  Affected files
1839           irssi/default.theme; irssi/docs/help/in/notice.in;
1840           irssi/src/fe-common/silc/module-formats.[ch], fe-silc-messages.c;
1841           irssi/src/silc/core/client_ops.c, silc-channels.c, silc-servers.c
1842
1843         * Fixed typo in /ACTION help.  Affected file
1844           irssi/docs/help/in/action.in
1845
1846 Mon Jan 03 23:26:38 CET 2004  Jochen Eisinger <jochen@penguin-breeder.org>
1847
1848         * Fixed typo in perl module.  Affected file
1849           irssi/src/perl/silc/Server.xs
1850
1851         * Changed the way ACTION flagged messages are treated. Added support
1852           for actions in queries and signing actions.  Affected files
1853           irssi/default.theme; irssi/docs/help/in/action.in;
1854           irssi/src/fe-common/silc/module-formats.[ch], fe-silc-messages.c,
1855           fe-silc-queries.c; irssi/src/silc/core/client_ops.c, silc-channels.c,
1856           silc-servers.[ch]
1857
1858 Mon Jan 03 16:04:29 CET 2004  Jochen Eisinger <jochen@penguin-breeder.org>
1859
1860         * Incorrectly reported error when client had to be resolved from
1861           server in /SMSG.  Affected file irssi/src/silc/core/silc-servers.c
1862
1863 Sat Jan  3 16:37:15 EET 2004  Pekka Riikonen <priikone@silcnet.org>
1864
1865         * Fixed whois public key hash table deleting and adding in
1866           detached client case.  Affected file silcd/packet_receive.c.
1867
1868 Sat Jan 03 12:15:38 CET 2004  Jochen Eisinger <jochen@penguin-breeder.org>
1869
1870         * Changed filenames of silc/fe module not to collide with filenames
1871           from core/fe.  Also seperated public messages printing from
1872           query messages printing.  Affected files are all in
1873           irssi/src/fe-common/silc.
1874
1875 Sat Jan  3 12:18:07 EET 2004  Pekka Riikonen <priikone@silcnet.org>
1876
1877         * Fixed the invite process handling during joining to use
1878           correct server name for the client that is matched against
1879           the invite string for the channel.  Wrong server name caused
1880           inability to join the channel.  Affected file is
1881           silcd/command.c.
1882
1883 Fri Jan  2 23:34:17 EET 2004  Pekka Riikonen <priikone@silcnet.org>
1884
1885         * Fixed the CUMODE channel founder authentication on normal
1886           server to not remove the founder rights on existing founder
1887           before checking that router accepts the mode change.  Affected
1888           files are silcd/command.c and silcd/packet_receive.c.
1889
1890         * Remove the server entry correctly when rekey timeouts and
1891           remote router connection on normal server is closed.  Fixes
1892           a crash where server uses the freed server entry.  Affected
1893           file silcd/server.c.
1894
1895 Fri Jan 02 10:28:15 CET 2004  Jochen Eisinger <jochen@penguin-breeder.org>
1896
1897         * Add /SILCNET [ADD|REMOVE|LIST] command to manage different SILC
1898           networks.  This is the first step in solving the bug about
1899           /SERVER ADD -silcnet <silcnet>.  Affected files
1900           irssi/docs/in/silcnet.in; irssi/src/fe-common/silc/Makefile.am,
1901           fe-silcnet.c, fe-common-silc.c, module-formats.[ch];
1902           irssi/src/silc/core/silc-chatnets.[ch], silc-core.c, Makefile.am
1903
1904 Thu Jan 01 20:11:32 CET 2004  Jochen Eisinger <jochen@penguin-breeder.org>
1905
1906         * /SMSG and /MMSG now correctly create new queries. Affected files
1907           irssi/src/fe-common/silc/fe-messages.c, irssi/scripts/silc-mime.pl
1908
1909         * Add basic support for SILC protocol specific variables in perl.
1910           Affected files irssi/src/perl/silc/*, irssi/configure.in,
1911           irssi/src/perl/Makefile.am
1912
1913 Wed Dec 31 17:06:55 CET 2003  Jochen Eisinger <jochen@penguin-breeder.org>
1914
1915         * Don't use silc_get_input, it's obviously not reliable.  Fixes
1916           issue when the current key expires.  Affect file
1917           irssi/src/silc/core/clientutils.c
1918
1919         * Make the session data filename configurable.  This makes it
1920           possible to have different session files for different
1921           SILC networks.  Affected files irssi/src/silc/core/silc-core.c,
1922           client_ops.[ch], silc-servers.c,
1923           irssi/src/silc/fe-common/silc/module-formats.[ch]
1924
1925         * Use the same set of libtool files for the MPI lib as for the
1926           rest of the toolkit.  Affected files lib/silcmath/mpi/config.guess,
1927           config.sub, configure.in, install-sh, missing, mkinstalldirs
1928
1929 Sun Dec 28 21:57:39 EET 2003  Pekka Riikonen <priikone@silcnet.org>
1930
1931         * Fixed server statistics decrementing error to not go to
1932           negative.  Affected file silcd/packet_receive.c.
1933
1934 Sat Dec 20 14:42:36 EET 2003  Pekka Riikonen <priikone@silcnet.org>
1935
1936         * Use silc_server_query_add_error to add error in public key
1937           search error.  Added support in send_reply to send errors
1938           without specific argument.  Affected file silcd/server_query.c.
1939
1940         * Fixed the WHOIS, IDENTIFY and WHOWAS error handling in SILC
1941           Client for NO_SUCH_NICK.  It was against the protocol specs.
1942           Affected file irssi/src/silc/core/client_ops.c.
1943
1944         * Added backwards support for the wrong NO_SUCH_NICK error sending
1945           in server.  To be removed in SILC Server 1.0.  Both old clients
1946           and clients with fixed error handling now works.  Affected file
1947           silcd/server_query.c.
1948
1949 Sat Dec 20 00:44:47 CET 2003  Patrik Weiskircher <pat@icore.at>
1950
1951         * fixed a bug in the whois using attributes function where no
1952           error was sent if no nickname and client id but the attributes were
1953           given to whois. Affected file silcd/server_query.c
1954
1955 Tue Dec 16 21:34:59 CET 2003  Patrik Weiskircher <pat@icore.at>
1956
1957         * remove public key from public key hashtable on detach. Affected
1958           file silcd/packet_receive.c
1959
1960         * free public key hashtable before removing clients on server
1961           shutdown. Affected file silcd/server.c
1962
1963         * remove public key prior deleting client-data on killing a client.
1964           Affected file silcd/server_util.c
1965
1966 Sat Dec 06 21:35:14 CET 2003  Patrik Weiskircher <pat@icore.at>
1967
1968         * Getting the MOTD from other servers works now. Affected
1969           files are silcd/command.c and silcd/command_reply.c
1970
1971 Thu Dec 04 11:33:46 CET 2003  Jochen Eisinger <jochen@penguin-breeder.org>
1972
1973         * Initialize the variable idletag, since it is tested in
1974           silc_core_deinit for its default value.  Affected file
1975           irssi/src/silc/core/silc-core.c
1976
1977 Sun Nov 30 19:47:02 CET 2003  Patrik Weiskircher <pat@icore.at>
1978
1979         * Fixed signed channel messages across cells. Affected file
1980           silcd/packet_send.c
1981
1982 Fri Nov 28 19:13:21 EET 2003  Pekka Riikonen <priikone@silcnet.org>
1983
1984         * Changed the SILC_LOG_* macros to not be empty if SILC_DEBUG
1985           is not defined.  They can now be safely used in if-statements
1986           without braces.  Affected file lib/silcutil/silclog.h.
1987
1988         * Added the checks for backup closing connection due to error
1989           (local or remote) and thus not allow the resuming to occur
1990           in reconnect.  Affected files are silcd/packet_send.c
1991           and server.c.
1992
1993 Tue Nov 25 15:20:59 EET 2003  Pekka Riikonen <priikone@silcnet.org>
1994
1995         * Help file updates.  Affected files in irssi/src/docs/help/in/.
1996
1997 Wed Nov 23 20:51:21 CET 2003  Patrik Weiskircher <pat@icore.at>
1998
1999         * Fixed channel messages across cells. Affected file
2000           silcd/packet_send.c
2001
2002 Wed Nov 12 11:34:56 EET 2003  Pekka Riikonen <priikone@silcnet.org>
2003
2004         * Fixed file transmission accepting in client library to not
2005           start the negotiation if user hasn't accepted the transfer,
2006           instead create new session for resent transfer.  Affected
2007           file lib/silcclient/client_ftp.c.
2008
2009         * Show the session ID in the file transmision list.  Remove
2010           session from list that failed to transfer.  Switch the current
2011           session automatically after transmission, and in errors, to new
2012           session if other sessions exists in the transfer list.  Affected
2013           files are irssi/src/silc/core/silc-servers.c,
2014           irssi/src/fe-common/silc/modfule-formats.c.
2015
2016 Mon Nov 10 14:41:40 CET 2003  Jochen Eisinger <jochen@penguin-breeder.org>
2017
2018         * Fixed MIME header parsing for the hopefully last time.  Affected
2019           file lib/silcutil/silcstrutil.c
2020
2021 Mon Nov 10 13:03:46 EET 2003  Pekka Riikonen <priikone@silcnet.org>
2022
2023         * Rewrote the PKCS#1 routines.  Added lib/silccrypt/silcpkcs1.[ch].
2024
2025         * The SILC RNG is now gauranteed to return non-zero random
2026           values.  Affected files are lib/silccrypt/silcrng.[ch].
2027
2028 Sun Nov  9 20:44:56 EET 2003  Pekka Riikonen <priikone@silcnet.org>
2029
2030         * Fixed nickname formatting when changing only case of the
2031           nickname.  Affected file lib/silcclient/idlist.c.
2032
2033 Sun Nov  9 19:33:59 CET 2003  Jochen Eisinger <jochen@penguin-breeder.org>
2034
2035         * Fixed a memory leak and incorrect printing of the "appears as"
2036           message.  Affected file irssi/src/silc/core/client_ops.c
2037
2038 Sun Nov  9 17:45:11 EET 2003  Pekka Riikonen <priikone@silcnet.org>
2039
2040         * Added CRT (Chinese Remainder Theorem) supported RSA
2041           private keys and private key operations.  This significantly
2042           increases private key operation efficiency.  No compatibility
2043           issues with new or old private keys.  Affected files are
2044           lib/silccrypt/rsa.[ch], rsa_internal.h and pkcs1.c.
2045
2046 Sat Nov  8 13:08:53 EET 2003  Pekka Riikonen <priikone@silcnet.org>
2047
2048         * Fixed GCC-3.3.2 related compilation warnings from the
2049           source tree.
2050
2051 Fri Nov  7 23:01:47 EET 2003  Pekka Riikonen <priikone@silcnet.org>
2052
2053         * Removed RC6 from distributions.
2054
2055 Fri Nov  7 19:38:42 EET 2003  Pekka Riikonen <priikone@silcnet.org>
2056
2057         * Added some better comments to lib/silccrypt/silcpkcs.h,
2058           optimized some routines in lib/silccrypt/silcpkcs.c.
2059           Added test_silcpkcs into lib/silccrypt/tests/.
2060
2061         * Fixed silc_rng_global_init to actually init the global RNG
2062           if RNG wasn't provided for it.  Affected file is
2063           lib/silccrypt/silrng.c.
2064
2065 Thu Nov  6 21:08:28 EET 2003  Pekka Riikonen <priikone@silcnet.org>
2066
2067         * Added silc_hash_table_find_by_context_ext.  Affected files
2068           lib/silcutil/silchashtable.[ch].
2069
2070         * Save the public key on normal server in WHOIS command reply
2071           from attributes, if present, and add it to public key hash
2072           table.  Fixes WHOIS resolving by public key on normal server.
2073
2074           Optimized the attributes resolving on normal server to not
2075           resolve if we resolved them already from router.
2076
2077           Affected files are silcd/server_query.c, command_reply.c.
2078
2079 Wed Nov  5 19:36:30 CET 2003 Patrik Weiskircher <pat@icore.at>
2080
2081         * Added support for whois using attributes.
2082           Affected files silcd/command_reply.c, silcd/packet_receive.c,
2083           silcd/server.c, silcd/server_internal.h, silcd/server_query.c,
2084           silcd/server_util.c
2085
2086         * Added support for whois using public key attribute to /WHOIS i
2087           client command. Affected files irssi/docs/help/in/whois.in,
2088           irssi/src/silc/core/silc-servers.c, lib/silcclient/command.c
2089
2090 Wed Nov  5 23:37:36 EET 2003 Pekka Riikonen <priikone@silcnet.org>
2091
2092         * Fixed UMODE setting in server when the client has anonymous
2093           mode set.  The mode setting was not working.  Affected file
2094           silcd/command.c.
2095
2096 Mon Nov  2 11:36:08 CET 2003 Jochen Eisinger <jochen@penguin-breeder.org>
2097
2098         * Fixed some bugs and typos related to sending split messages.
2099           Print notification when sending messages with /MMSG.  Affected
2100           files irssi/scripts/silc-mime.pl, irssi/src/silc/core/client_ops.c
2101
2102 Fri Oct 31 12:33:59 EET 2003 Pekka Riikonen <priikone@silcnet.org>
2103
2104         * Optimized the socket referencing in packet routines, client
2105           library and server.  Affected files are lib/silccore/silcpacket.c,
2106           lib/silcclient/client.c and silcd/server.c.
2107
2108         * If silc_socket_set_qos is given with NULL arguments the QoS is
2109           reset from the socket.  Affected files are
2110           lib/silcutil/silcsockconn.[ch].
2111
2112 Thu Oct 30 21:23:24 CET 2003 Jochen Eisinger <jochen@penguin-breeder.org>
2113
2114         * Add a /LISTKEYS command which lists the locally cached
2115           client and server keys.  Affected files
2116           irssi/src/fe-common/module-formats.[ch],
2117           irssi/src/silc/core/silc-{channels,servers}.c
2118           irssi/docs/help/in/listkeys.in
2119
2120 Thu Oct 30 20:23:40 EET 2003 Pekka Riikonen <priikone@silcnet.org>
2121
2122         * Check that packet queue purging was successful.  Affected
2123           files lib/silcclient/client.c and silcd/packet_send.c.  Related
2124           to MAC failed errors.
2125
2126         * Do not clear the inbuf even if it is empty if QoS was applied
2127           to it.  Otherwise the QoS data is cleared and MAC failed error
2128           will occur.  Affected file lib/silccore/silcpacket.c.
2129
2130         * Use the rekey period time as rekey protocol timeout value.
2131           If the rekey does not succeed during the rekey period there's
2132           something very wrong, and we most likely end up with wrong keys,
2133           do graceful reconnect then.   Affected file silcd/server.c.
2134
2135         * Take reference of the socket in the parser context, as it's
2136           possible to have the parsers in queue after the socket is
2137           disconnected and this may cause crash.  Affected files are
2138           lib/silccore/silcpacket.c, lib/silcclient/client.c and
2139           silcd/server.c.
2140
2141 Thu Oct 30 17:01:01 EET 2003 Pekka Riikonen <priikone@silcnet.org>
2142
2143         * Fixed KICK command reply sending, it sent to replies.
2144           Affected file silcd/command.c.
2145
2146 Wed Oct 30 14:06:52 CET 2003 Jochen Eisinger <jochen@penguin-breeder.org>
2147
2148         * Finish the silc-mime.pl script. It now supports MIME type
2149           guessing using magic files, signing data messages, executing
2150           MIME handlers in background. Affected files
2151           irssi/scripts/silc-mime.pl and irssi/docs/help/in/mmsg.in
2152
2153         * Changed MIME signal handler to make things easier for the perl
2154           script. Affected files irssi/src/silc/core/client_ops.c,
2155           silc-servers.c, and irssi/docs/signals.txt
2156
2157         * Cleaned up the silc_mime_parse function and fixed detection
2158           of wrapped header lines. Affected file lib/silcutil/silcstrutil.c
2159
2160 Sun Oct 26 21:19:02 EET 2003 Pekka Riikonen <priikone@silcnet.org>
2161
2162         * Resolve the IP for file transfer listener from the connection
2163           socket.  Affected file lib/silcclient/client_ftp.c.
2164
2165         * Accept NULL hostname parameter in the functions
2166           silc_net_check_[local|remote]_by_socket.  Do not reverse lookup
2167           if hostname is not wanted.
2168
2169 Fri Oct 24 21:24:12 CEST 2003  Jochen Eisinger <jochen@penguin-breeder.org>
2170
2171         * Fixed race condition between silc_client_init and
2172           my_silc_scheduler. Affected file irssi/src/silc/core/silc-core.c
2173
2174 Fri Oct 24 16:43:40 EEST 2003  Pekka Riikonen <priikone@silcnet.org>
2175
2176         * Fixed file transfer connection closing when SIGNOFF for
2177           the client is received from server.  Affected file is
2178           lib/silcclient/client_ftp.c.
2179
2180 Tue Oct 21 13:35:57 CEST 2003  Pekka Riikonen <priikone@silcnet.org>
2181
2182         * Check for disconnected socket in QUIT callback.  Affected
2183           file silcd/command.c.
2184
2185 Thu Oct 21 09:43:17 CEST 2003  Jochen Eisinger <jochen@penguin-breeder.org>
2186
2187         * Modified the MIME parsing to allow \n and \r\n as delimiters.
2188           Affected files lib/silcutil/silcstrutil.c
2189
2190         * Cleaned up the escape/unescape functions for correctness and
2191           speed. Affected file irssi/src/silc/core/client_ops.c
2192
2193         * Removed handling for data messages with Content-Type: text/*,
2194           moved parsing of MIME headers to the signal handler, added
2195           support for signing and verifying data messages. Affected
2196           files are irssi/docs/signals.txt, irssi/src/silc/core/client_ops.c,
2197           irssi/src/silc/core/silc-{servers,channels}.c
2198
2199         * Added a perl script for handling data messages based on
2200           information read from Mailcap files. New file
2201           irssi/scripts/silc-mime.pl
2202
2203 Mon Oct 20 16:08:22 EEST 2003  Pekka Riikonen <priikone@silcnet.org>
2204
2205         * Added new SILC_MESSAGE_FLAG_ACK that can  be used to
2206           acknowledge recepetion of a message to the sender.  Updated
2207           protocol specs.
2208
2209 Sat Oct 18 11:55:33 EEST 2003  Pekka Riikonen <priikone@silcnet.org>
2210
2211         * Unregister channel key saving callback when deleting channel.
2212           Affected file lib/silcclient/idlist.c.
2213
2214         * Do not remove the client from channels in NOTIFY_TYPE_SIGNOFF
2215           before calling notify client operation.  Affected file is
2216           lib/silcclient/client_notify.c.
2217
2218         * Unregister QoS tasks when deleting the socket connection.
2219           Affected files lib/silcutil/silcsockconn.[ch],
2220           unix/silcunixsockconn.c.
2221
2222         * Implemented latest presence-attrs draft changes.  Affected
2223           files lib/silccore/silcattrs.h and
2224           irssi/src/silc/core/silc-queries.c.
2225
2226 Tue Oct 14 18:24:53 EEST 2003  Pekka Riikonen <priikone@silcnet.org>
2227
2228         * Save old channel keys in list to allow more rapid change
2229           of channel keys if server for some reason does that.  This
2230           avoids loosing so many channel messages due to not having
2231           key to decrypt.  Affected file lib/silcclient/silcclient.h,
2232           idlist.c and client_channel.c.
2233
2234 Mon Oct 13 21:37:47 EEST 2003  Pekka Riikonen <priikone@silcnet.org>
2235
2236         * Continued backup router tests and fixes.  Affected files
2237           silcd/server_backup, server_util.c, server.c.  See TODO.
2238
2239 Sun Oct 12 19:58:18 EEST 2003  Pekka Riikonen <priikone@silcnet.org>
2240
2241         * Fixed SERVER_SIGNOFF handling in servers.  The client
2242           was removed from wrong list thus not removing the client
2243           at all.  Affected file silcd/packet_receive.c.
2244
2245         * Do not execute rekey protocol for disabled connections as
2246           it would never go through.  Affected file silcd/server.c.
2247
2248         * Added timeout for rekey protocol to catch if the protocol
2249           never executes successfully.  Affected files silcd/server.c
2250           and protocol.h.
2251
2252 Sat Oct 11 15:39:22 EEST 2003  Pekka Riikonen <priikone@silcnet.org>
2253
2254         * Abandon packet processing for disconnected sockets.  Check
2255           this always after calling packet processing callback.
2256           Affected file lib/silccore/silcpacket.c.
2257
2258         * Fixed double registration disconnection code in server.
2259           Closed wrong connection.  Affected file silcd/packet_receive.c.
2260
2261 Fri Oct 10 16:27:12 EEST 2003  Pekka Riikonen <priikone@silcnet.org>
2262
2263         * On normal server reconnect to primary during resuming 4
2264           times, then give up.  Affected file silcd/server_backup.c.
2265
2266         * If during reconnecting to routers we notice we have router
2267           connection but no primary router set, the server is in desync.
2268           Reconnect to primary to restore network.  Affected file
2269           silcd/server.c.
2270
2271         * Assure that only one protocol is exeucting at the same time.
2272           Added checks for all protocols.  Affected files are
2273           silcd/server.c and server_backup.c.
2274
2275 Thu Oct  9 20:24:09 EEST 2003  Pekka Riikonen <priikone@silcnet.org>
2276
2277         * Check that a string is not already part on invite/ban
2278           string when processing it.  Affected file silcd/server_util.c.
2279
2280 Thu Oct  9 12:06:40 CEST 2003  Pekka Riikonen <priikone@silcnet.org>
2281
2282         * Fixed the CUMODE_CHANGE for founder mode changes to comply
2283           with 1.2 version of the protocol.  Affected file is
2284           silcd/packet_receive.c.
2285
2286 Wed Oct  8 19:41:15 EEST 2003  Pekka Riikonen <priikone@silcnet.org>
2287
2288         * ERR_BAD_PASSWORD now returns the Channel ID of the channel
2289           where the passphrase was given.  Affected file is
2290           silcd/command.c.
2291
2292 Wed Oct  8 09:32:12 CEST 2003  Pekka Riikonen <priikone@silcnet.org>
2293
2294         * INVITE and BAN notifys are now delivered from routers to
2295           servers (but not clients) on the channel.  Updated specs and
2296           code.  Affected files silcd/packet_[send|receive].[ch],
2297           command.c, server.c and server_util.c.
2298
2299         * Implemented INVITE and BAN announcing.  Affected files are
2300           silcd/server.[ch], server_util.c.
2301
2302         * Implemented SilcStatus error type argument returning in
2303           command reply error in server.  Affected file silcd/command.c.
2304
2305         * Implemented SilcStatus argument returning in comand reply
2306           in client library.  The command_reply client operation now
2307           returns error specific arguments as well.  Affected files
2308           are lib/silcclient/command_reply.[ch], client_resume.c,
2309           lib/silccore/silcstatus.[ch].
2310
2311 Sun Oct  5 20:22:08 EEST 2003  Pekka Riikonen <priikone@silcnet.org>
2312
2313         * Backup router protocol version 1.2 implemented.  Testing still
2314           required.  Affected files in silcd/server_backup.[ch], server.c,
2315           packet_receive.c and server_internal.h.
2316
2317 Sun Oct  5 12:36:37 EEST 2003  Pekka Riikonen <priikone@silcnet.org>
2318
2319         * silc_client_send_[channel|private]_message now return TRUE
2320           or FALSE.  Affected file lib/silcclien/client_channel.c and
2321           client_prvmsg.c.
2322
2323 Thu Oct  2 17:03:09 EEST 2003  Pekka Riikonen <priikone@silcnet.org>
2324
2325         * Check for explicit nickname in INVITE and BAN processing
2326           during join as well (and don't expect only wildcards in
2327           invite/ban strings).  Affected file silcd/command.c.
2328
2329         * Fixed the INVITE and BAN by public key.  The public key saved
2330           is the PK payload (as specified) not the raw data.  Affected
2331           file silcd/server_util.c.
2332
2333 Wed Oct  1 20:29:06 EEST 2003  Pekka Riikonen <priikone@silcnet.org>
2334
2335         * UTF-8 text message support for actions and notices in SILC
2336           Client.  Affected file irssi/src/silc/core/client_ops.c.
2337
2338         * silc_get_username and silc_get_real_name now returns sensible
2339           data on Win32.  Patch by Toni Willberg.  Affected file is
2340           lib/silcutil/win32/silcwin32util.c.
2341
2342 Sun Aug 24 23:35:19 CEST 2003  Jochen Eisinger <c0ffee@penguin-breeder.org>
2343
2344         * Provide a signal handler to send MIME encoded messages and emit
2345           a signal when a MIME encoded message is received. Also document
2346           the signals for usage with the perl interface.
2347
2348           A sample perl script will be supplied at a later point.
2349
2350           Affected files are irssi/docs/signals.txt,
2351           irssi/src/silc/core/client_ops.[ch],
2352           irssi/src/silc/core/silc-{channels,servers}.c
2353
2354 Sun Aug 24 12:58:30 CEST 2003  Jochen Eisinger <c0ffee@penguin-breeder.org>
2355
2356         * Use SILC_COMMAND_PING to estimate the round-trip time to the
2357           server. Use this time to display a lag and disconnect when it
2358           exceeds a specified limit.
2359
2360           Affected files are irssi/src/silc/core/silc-{lag,core}.c.
2361
2362 Mon Aug 11 17:14:17 EEST 2003  Pekka Riikonen <priikone@silcnet.org>
2363
2364         * Remove the channel auth list in normal server if router
2365           encofrces its list during connecting.  Send notify to channel
2366           to remove the mode to remove the list.  Affected files are
2367           silcd/server_util.c and silcd/packet_receive.c.
2368
2369 Wed Aug  6 14:52:04 EEST 2003  Pekka Riikonen <priikone@silcnet.org>
2370
2371         * Added support for channel public keys.  Updated protocol specs
2372           and implemented it.  Affected files are
2373           silcd/command.c, command_reply.c, lib/silcclient/command.c,
2374           lib/silcclient/command_reply.c.
2375
2376 Wed Jul 23 12:17:01 EEST 2003  Pekka Riikonen <priikone@silcnet.org>
2377
2378         * Ignore SIGXFSZ and SIGXCPU signals in server.  They can
2379           terminate the process on Linux.  Affected file silcd/silcd.c.
2380
2381 Mon Jun  2 19:13:27 EEST 2003  Pekka Riikonen <priikone@silcnet.org>
2382
2383         * Check for NULL buffer in silc_buffer_clear.  Affected file
2384           is lib/silcutil/silcbuffer.h.
2385
2386         * Simplified the backup router protocol by removing the _GLOBAL
2387           types.  Updated protocol specs and the code.  Affected files
2388           are silcd/server_backup.[ch].
2389
2390 Thu Apr 24 19:50:25 EEST 2003  Pekka Riikonen <priikone@silcnet.org>
2391
2392         * Deny '@' and '!' from nicknames since they are reserved
2393           by the SILC_COMMAND_INVITE and SILC_COMMAND_BAN commands.
2394           Updated protocol specs and the code.
2395
2396           Affected files are silcd/server_util.[ch].
2397
2398 Wed Apr  9 18:51:59 EEST 2003  Pekka Riikonen <priikone@silcnet.org>
2399
2400         * Fixed stack overflow in Irssi SILC client.  Affected
2401           file irssi/src/silc/core/client_ops.c.
2402
2403         * Check that Host is set in ServerConnection and RouterConnection
2404           in silcd.conf.  Affected file silcd/serverconfig.c.
2405
2406         * Fixed crash in server with protocol completion callbacks,
2407           namely rekey and backup resuming protocols.  Affected files
2408           are silcd/server_backup.c and silcd/server.c.
2409
2410         * Fixed rekey protocol to not restart if it is started already.
2411           Affected files are lib/silcclient/client.c and
2412           silcd/server.c.c
2413
2414 Mon Mar 17 18:35:24 EET 2003  Pekka Riikonen <priikone@silcnet.org>
2415
2416         * Rewrote SilcList, affected file lib/silcutil/silc*list.h.
2417
2418         * Fixed EOF handling in SILC Config, affected file
2419           lib/silcutil/silcconfig.c.
2420
2421         * Fixed buffer overflows in lib/silcutil/silcstrutil.c.
2422
2423         * Fixed RESOLVING flag handling in JOIN notify and other
2424           notifys to handle the resolvings correctly in client library.
2425           Affected file lib/silcclient/client_notify.c.
2426
2427         * Do not send full INVITE and BAN lists in INVITE and BAN
2428           notifys, only the changed information.  Affected file
2429           silcd/command.c.
2430
2431         * Fixed INVITE notify sending in INVITE command, send it
2432           only when needed.  Affected file silcd/command.c.
2433
2434         * Handle the founder key change properly in CMODE_CHANGE
2435           notify.  Bug #122.  Affected file silcd/packet_receive.c.
2436
2437 Sun Mar  9 16:29:20 EET 2003  Pekka Riikonen <priikone@silcnet.org>
2438
2439         * Remove the mark for output (mark it only for input) after
2440           purging outgoing queue.  Prevents the "Error in select()"
2441           floods.  Affected file silcd/packet_send.c.
2442
2443         * Fixed incorrect connection deletion from client library
2444           after calling "connect" client operation.  Could cause
2445           crashes for example during reconnect timeouts.  Affected
2446           files are lib/silcclient/client.c and
2447           irssi/src/silc/core/client_ops.c.
2448
2449         * Check server private key file permissions before starting
2450           the server.  Affected file silcd/serverconfig.c.
2451
2452 Tue Feb  4 22:53:26 EET 2003  Pekka Riikonen <priikone@silcnet.org>
2453
2454         * NULL terminate allocated string in silc_buffer_strformat.
2455           Affected file lib/silcutil/silcbuffmt.c.
2456
2457         * Rewrote the invite/ban list string handling in server to
2458           use SilcBuffer instead.  Affected files are silcd/command.c
2459           and silcd/server_util.c.
2460
2461 Mon Feb  3 14:43:52 CET 2003  Pekka Riikonen <priikone@silcnet.org>
2462
2463         * Fixed double free in CMODE command when setting new HMAC
2464           for channel.  Affected file silcd/command.c.
2465
2466         * Added couple of missing memset's to zero sensitive memory.
2467           Affected files silcd/command.c, lib/silcclient/command.c.
2468
2469 Sun Jan 26 12:20:30 EET 2003  Pekka Riikonen <priikone@silcnet.org>
2470
2471         * Fixed a double free in INVITE command error handling in
2472           server.  Affected file silcd/command.c.
2473
2474         * Added macros SILC_SWAB_[16|32] to swab byte order of
2475           16-bit and 32-bit unsigned integers.  Affected file
2476           lib/silcutil/silctypes.h.
2477
2478         * Use the SILC_SWAB_16 instead of htons() in server when
2479           handling ports since the ports in structures are always
2480           in little-endian order (regardless of platform).  Affected
2481           file silcd/serverid.c and silcd/server_backup.c.
2482
2483 Tue Jan 21 17:18:04 EET 2003  Pekka Riikonen <priikone@silcnet.org>
2484
2485         * Send DISCONNECT in close admin command in server.  Affected
2486           file silcd/command.c.
2487
2488         * Check whether we are already connecting to a remote router
2489           (in addition of checking whether we are already connected)
2490           before creating new connection.  Affected file silcd/server.c.
2491
2492 Thu Jan 16 18:47:00 EET 2003  Pekka Riikonen <priikone@silcnet.org>
2493
2494         * Added better compiler and compiler flags checking in
2495           configure.
2496
2497         * Check that socket is valid after QoS is applied to data.
2498           Affected file lib/silcutil/unix/silcunixsockconn.c.
2499
2500         * Make sure the socket connecetion is not closed to early
2501           when closing connection in server.  Also make sure the
2502           connection is always closed after error in a protocol.
2503           Affected file silcd/server.c.
2504
2505 Wed Jan 15 11:03:36 CET 2003  Pekka Riikonen <priikone@silcnet.org>
2506
2507         * Removed --session and --dummy options from Irssi SILC Client.
2508           -d option is available only if --enable-debug was given.
2509           Affected files are irssi/src/silc/core/silc-core,
2510           irssi/src/core/session.c and irssi/src/fe-text/silc.c.
2511
2512 Tue Jan 14 12:25:09 CET 2003  Pekka Riikonen <priikone@silcnet.org>
2513
2514         * Added silc_buffer_steal to steal the data from the buffer.
2515           Affected file lib/silcutil/silcbuffer.h.
2516
2517 Sat Jan 11 18:16:29 CET 2003  Giovanni Giacobbi <giovanni@giacobbi.net>
2518
2519         * Fixed server crash with double Primary block in config file.
2520
2521           Fixed also various memory leaks around the config file
2522           parser.  Affected files lib/silcutil/silcconfig.c,
2523           silcd/serverconfig.c.
2524
2525         * Changed my nickname (Johnny Mnemonic) to my real name, this
2526           means that bugs introduced by him were actually introduced
2527           by me!
2528
2529 Tue Jan  7 21:58:53 CET 2003  Jochen Eisinger <c0ffee@penguin-breeder.org>
2530
2531         * Don't display "foo appears as foo\nYou're now known as foo"
2532           messages.  Affected file irssi/src/silc/core/client_ops.c
2533
2534 Tue Jan  7 20:08:15 EET 2003  Pekka Riikonen <priikone@silcnet.org>
2535
2536         * Fixed error handling of invalid client entry when calling
2537           commands in server.  Fixes a crash.  Affected file
2538           silcd/command.c.
2539
2540 Thu Dec 26 14:19:29 EET 2002  Pekka Riikonen <priikone@silcnet.org>
2541
2542         * Added some sanity checks in server for correctness of the
2543           server configuration.  Affected file silcd/serverconfig.c.
2544
2545 Fri Dec 20 10:47:59 CET 2002  Pekka Riikonen <priikone@silcnet.org>
2546
2547         * Prevent endless resolving of user informations in USERS
2548           command by checking the command reply status correctly.
2549           Affected file lib/silcclient/command_reply.c.
2550
2551 Tue Dec 17 10:05:00 CET 2002  Pekka Riikonen <priikone@silcnet.org>
2552
2553         * Fixed file writing on WIN32 to use O_BINARY flag.  Affected
2554           file is lib/silcutil/silcfileutil.c.  A patch by Matthew
2555           Aldous <Matthew@Aldous.com>.
2556
2557         * Added better implementation using CriticalSection of
2558           SilcMutex on WIN32.  A patch by Mikko Lähteenmäki
2559           <mikko.lahteenmaki@pikabaana.net>.
2560
2561         * Added some Winsock WIN32 compatiblity defines into
2562           includes/silcwin32.h.
2563
2564 Mon Dec 16 19:33:05 EET 2002  Pekka Riikonen <priikone@silcnet.org>
2565
2566         * Fixed double free in async host lookup code.  Affected file
2567           lib/silcutil/silcsockconn.c.
2568
2569         * On backup router handle now the SERVER_SIGNOFF from router
2570           for local connected servers too, and close the connections.
2571
2572           Do not process them as normally signing off servers when they
2573           really signoff by sending EOF fe, but always assume that
2574           router sends the SERVER_SIGNOFF.
2575
2576           Affected files silcd/server.c and silcd/packet_receive.c.
2577
2578         * Fixed socket unsetting when closing connections.  Affected
2579           files silcd/server.c and silcd/packet_send.c.
2580
2581         * Do not print the nickname in SERVER_SIGNOFF if we do not
2582           have it.  Prevents asserts in Irssi core.  It is possible we
2583           don't have the nick if it was just being resolved when server
2584           signoff.  Affected file irssi/src/silc/core/client_ops.c.
2585
2586 Thu Dec 12 23:22:50 EET 2002  Pekka Riikonen <priikone@silcnet.org>
2587
2588         * Fixed autonick crashbug in client library.  Affected file
2589           lib/silcclient/client.c.
2590
2591         * Fixed Unix implementation of SilcMutex to really assert if
2592           the mutex is locked/unlcoked already.  Affected file
2593           lib/silcutil/unix/silcunixmutex.c.
2594
2595         * Fixed locking in silc_schedule_uninit.  It didn't lock
2596           when dispatching timeout tasks.  Affected file is
2597           lib/silcutil/silcschedule.c.
2598
2599         * Changed Win32 implementation of SilcThread to use modern
2600           Win32 interface.  Affected file is
2601           lib/silcutil/win32/silcwin32thread.c  A patch by Mikko L.
2602
2603 Thu Dec 12 12:06:59 CET 2002 Jochen Eisinger <c0ffee@penguin-breeder.org>
2604
2605         * Don't print signed messages when sending failed.  Affected files
2606           irssi/src/silc/core/silc-[servers.c/commands.h]
2607
2608         * Send adquate signal when founding a channel by joing it.  Affect
2609           file irssi/src/silc/core/client_ops.c
2610
2611 Wed Dec 11 21:46:19 CET 2002 Jochen Eisinger <c0ffee@penguin-breeder.org>
2612
2613         * Fix theme abstracts parsing.  Affected files irssi/default.theme,
2614           irssi/src/fe-common/core/themes.c
2615
2616 Wed Dec 11 20:20:07 EET 2002 Pekka Riikonen <priikone@silcnet.org>
2617
2618         * Fixed close command to use the port correctly when closing
2619           server connections.  Affected file silcd/idlist.c.
2620
2621         * Check for NULL outbuf in silc_socket_write.  It is possible
2622           that it is NULL is some odd case.  Affected files are
2623           lib/silcutil/[unix/win32]/silc[unix/win32]sockconn.c.
2624
2625         * Do not call final protocol callback for backup router
2626           resuming protocol when closing connection.  It is closed
2627           by timeout in case of error.  Affected file silcd/server.c.
2628
2629         * Backup reconnect to router if backup resuming protocol
2630           failed.  Affected file silcd/server_backup.c.
2631
2632 Wed Dec 11 10:01:26 CET 2002 Pekka Riikonen <priikone@silcnet.org>
2633
2634         * Fixed double free in SKE library error hadling when signature
2635           error occurred.  Affected file lib/silcske/silcske.c.
2636
2637         * Save the fingerprint to new SilcClientEntry after changing
2638           nickname.  Affected file lib/silcclient/client_notify.c.
2639
2640         * Print SIGNOFF in Irssi SILC client only if the nickname is
2641           known.  Prevents asserts in Irssi core.  It is possible we
2642           don't have the nick if it was just being resolved when it
2643           quit.  Affected file irssi/src/silc/core/client_ops.c.
2644
2645 Tue Dec 10 21:47:56 EET 2002  Pekka Riikonen <priikone@silcnet.org>
2646
2647         * Fixed double free in invite list adding code when adding
2648           invite strings.  Affected file silcd/server_util.c.
2649
2650 Fri Dec  6 17:40:24 EET 2002  Pekka Riikonen <priikone@silcnet.org>
2651
2652         * More log printing during backup router protocol.  Affected
2653           file silcd/server_backup.c.
2654
2655         * Removed backwards support for old private key file format.
2656           Affected file lib/silccrypt/silcpkcs.c.
2657
2658         * Removed backwards support for not-so-strict decryption length
2659           check, it's strict now.  Affected lib/silccrypt/silccipher.c.
2660
2661         * GETKEY to update the client entrys fingerprint too.
2662           Affected file lib/silcclient/command_reply.c.
2663
2664         * Added --without-libtoolfix for package builders using weird
2665           wrappers around libtool (BSD at least).
2666
2667 Thu Dec  5 22:29:46 EET 2002  Pekka Riikonen <priikone@silcnet.org>
2668
2669         * Fixed backup router bugs:  When backup resumes router and
2670           receives a CHANNEL_MESSAGE packet the backup must not act
2671           as router since the packet header decryption would be
2672           different.  Also, when relaying packets to channel, do
2673           not re-encrypt packets on backup that came from the primary
2674           since the connection isn't really router-router connection.
2675           Affected files silcd/server.c, silcd/packet_send.c.
2676
2677         * Added checks in encryption/decryption that encryption/decryption
2678           length sent as argument really is multiple by block size.  Helps
2679           catching really weird bugs like the above backup router bugs
2680           when packets are being decrypted in wrong way.  Affected files
2681           lib/silccore/silcpacket.c, and lib/silccrypt/silccipher.c.
2682
2683         * Fixed padding generation in private key file encryption.
2684           Affected file lib/silccrypt/silcpkcs.c.
2685
2686 Thu Dec  5 16:35:23 EET 2002  Pekka Riikonen <priikone@silcnet.org>
2687
2688         * Added ignore_message_signatures setting which can be used
2689           to ignore signatures in messages.  Affected files are
2690           irssi/src/silc/core/client_ops.c, silc-core.c.
2691
2692         * Fixed the libtoolfix to use command line options instead of
2693           environment variables.  They didn't work as expected.  Now,
2694           the libtool is fully run-time configurable.
2695
2696 Wed Dec  4 21:08:52 CET 2002  Jochen Eisinger <c0ffee@penguin-breeder.org>
2697
2698         * Verify signature payload for signed messages. Affected files
2699           irssi/src/silc/core/client_ops.h, irssi/src/silc/core/silc-servers.c,
2700           irssi/src/silc/core/silc-core.h
2701
2702         * Display signature verification result in public and private
2703           messages using theme abstracts. See irssi/default.theme for
2704           examples on their usage. Affected files
2705           irssi/default.theme, irssi/src/fe-common/silc/fe-messages.h,
2706           irssi/src/fe-common/silc/module-formats.[ch],
2707           irssi/src/fe-common/silc/fe-common-silc.c,
2708           irssi/src/fe-common/silc/Makefile.am
2709           irssi/src/fe-common/core/fe-messages.[ch]
2710
2711         * Fixed bugs in Irssi's theme parsing. Affected files
2712           irssi/src/fe-common/core/themes.c
2713
2714 Wed Dec  4 18:29:13 EET 2002  Pekka Riikonen <priikone@silcnet.org>
2715
2716         * Calculate the correct length for signed messages before
2717           encrypting, it must be multiple by block size.  Affected
2718           file lib/silccore/silcmessage.c.
2719
2720         * silc_message_signed_get_public_key returns now both
2721           decoded and encoded public key.  Affected files are
2722           lib/silccore/silcmessage.[ch].
2723
2724         * Added libtoolfix script that makes the libtool more generic
2725           and configurable in run-time.  Now we can specify in run-time
2726           if what kind of libraries we want to create, regardless of
2727           configuration.  SIMs are now creates even if --disable-shared
2728           was explicitly given.
2729
2730 Tue Dec  3 23:26:55 EET 2002  Pekka Riikonen <priikone@silcnet.org>
2731
2732         * Fixed founder key sending in CMODE command in client.
2733           Affected file lib/silcclient/command.c.
2734
2735         * Fixed CUMODE founder authentication in server to not check
2736           for client's public key since it's not supposed to do that.
2737           Affected file silcd/command.c.
2738
2739 Tue Dec  3 12:02:41 CET 2002  Jochen Eisinger <c0ffee@penguin-breeder.org>
2740
2741         * Set realname and hostname in NICK_REC records. Affected file
2742           irssi/src/silc/core/silc-nicklist.c
2743
2744 Mon Dec  2 20:50:20 EET 2002  Pekka Riikonen <priikone@silcnet.org>
2745
2746         * Remove 1.0 protocol backwards compat code from client
2747           library.
2748
2749         * Added more reliable check for whether nickname did change
2750           or not, or whether only Client ID changed in NICK_CHANGE
2751           notify.  Affected file lib/silcclient/client_notify.c.
2752           Fixes bug in '@' character handling in a nickname.
2753
2754         * Added support for automatically parsing signature from
2755           the message payload.  Added new function
2756           silc_message_get_signature to return the payload to
2757           application.  Affected files lib/silccore/silcmessage.[ch].
2758
2759         * Changed the private_message and channel_message client
2760           operations to deliver the SilcMessagePayload to the
2761           application too.  Application can use it fe. to get the
2762           signature from the message for verification.  Affected
2763           file lib/silcclient/silcclient.h, client_channel.c and
2764           client_prvmsg.c.
2765
2766         * Redefined the signed payload for message payloads.
2767           Updated protocol specs and implemented.
2768
2769 Mon Dec  2 16:28:29 EET 2002  Pekka Riikonen <priikone@silcnet.org>
2770
2771         * Fixed wrong invite and ban list handling in server command
2772           reply.  Affected files are silcd/command_reply.c,
2773           silcd/server_util.[ch].
2774
2775 Sun Dec  1 20:48:17 EET 2002  Pekka Riikonen <priikone@silcnet.org>
2776
2777         * Fixed CMODE setting in server when founder mode was set.
2778           Affected file silcd/command.c.  Bug #95.
2779
2780         * Added support to setting specific public key in CMODE in
2781           Irssi SILC client.  Affected file lib/silcclient/command.c.
2782
2783         * Added support to use specific public key in CUMODE in
2784           Irssi SILC Client.  Affected file lib/silcclient/command.c.
2785
2786         * Added support for inviting and banning by public key in
2787           Irssi SILC client.  Affected file lib/silcclient/command.c.
2788
2789         * Fixed fingerprint/babbleprint showing in invite and ban
2790           list command replys.  Affected file is
2791           irssi/src/silc/core/client_ops.c.
2792
2793 Sun Dec  1 16:32:03 CET 2002  Jochen Eisinger <c0ffee@penguin-breeder.org>
2794
2795         * Format CMODE +c and +h to display both the mode and the argument
2796
2797 Sun Dec  1 18:17:22 EET 2002  Pekka Riikonen <priikone@silcnet.org>
2798
2799         * Added test vectors and test programs for SHA-1, MD5,
2800           HMAC-SHA1 and HMAC-MD5.  New tests are located in
2801           lib/silccrypt/tests/.  Fixed also argument decoding bug in
2802           MD5 implementation.  Affected file lib/silccrypt/md5.c.
2803
2804         * Changed the channel private key and private message key
2805           generation (with static keys) to use SHA1 instead of MD5,
2806           as SHA1 is the mandatory hash function in SILC.  Affected
2807           file lib/silcclient/client_[channel/prvmsg].c.
2808
2809         * Changed the private key file encryption to use SHA1 instead
2810           of MD5.  Added support for the old generation and added
2811           automatic change of the key (to be removed later).  Affected
2812           files lib/silccrypt/silcpkcs.c.
2813
2814 Sat Nov 30 19:07:52 EET 2002  Pekka Riikonen <priikone@silcnet.org>
2815
2816         * Load only files with .pub suffix in PublicKeyDir.  Affected
2817           file silcd/serverconfig.c.
2818
2819 Sat Nov 30 14:29:34 CET 2002  Johnny Mnemonic <johnny@themnemonic.org>
2820
2821         * Extended the SILC_SERVER_LOG_ERROR macro to all available logging
2822           channels.  Affected files silcd/silcd.c, silcd/server.h.
2823
2824         * Added the config directive PublicKeyDir for the client block.
2825           Affected files doc/exampe_silcd.conf.in, silcd/serverconfig.[ch].
2826
2827 Sat Nov 30 09:30:55 CET 2002  Pekka Riikonen <priikone@silcnet.org>
2828
2829         * Merged Toni's irssi/silc.conf patch.
2830
2831         * ROBODoc cleanup patch to lib/silccrypt/silcpkcs.h by johnny.
2832
2833         * Max alloc tests in allocation routines.  Affected file
2834           lib/silcutil/silcmemory.c.
2835
2836 Fri Nov 29 23:44:29 EET 2002  Pekka Riikonen <priikone@silcnet.org>
2837
2838         * Fixed a typo in resuming code that fixed detach/resume code
2839           in server.  Bug #93.  Affected file silcd/packet_receive.c.
2840
2841 Thu Nov 28 17:17:11 CET 2002  Jochen Eisinger <c0ffee@penguin-breeder.org>
2842
2843         * Do reverse lookups for server when /connecting. Affected files
2844           irssi/silc.conf, irssi/src/core/servers.c, irssi/src/core/network.c,
2845           irssi/src/core/net-nonblock.*
2846
2847 Thu Nov 28 16:19:18 CET 2002  Pekka Riikonen <priikone@silcnet.org>
2848
2849         * Added library versioning for shared libraries.  Affected
2850           files configure.in.pre and lib/Makefile.am.pre.
2851
2852 Wed Nov 27 21:51:52 CET 2002  Jochen Eisinger <c0ffee@penguin-breeder.org>
2853
2854         * Display INVITE and BAN lists as specified by SILC 1.2
2855
2856 Wed Nov 27 16:01:11 CET 2002  Pekka Riikonen <priikone@silcnet.org>
2857
2858         * Do not send invite list back unless asked (when sending
2859           no arguments) or when list was modified.  Affected file
2860           silcd/command.c.
2861
2862         * Remove client from invite list in KILLED notify and in
2863           KILL command.  Affected file silcd/command.c and
2864           silcd/server.[ch].
2865
2866         * Fixed bugs in invite list handling in INVITE command.
2867           Affected files silcd/command.c and silcd/server_util.c.
2868
2869         * Merged with Irssi 0.8.6.
2870
2871         * Fixed UTF-8 in Irssi SILC Client, setlocale was missing.
2872           Affected file irssi/src/fe-text/silc.c.
2873
2874 Mon Nov 25 18:21:43 EET 2002  Pekka Riikonen <priikone@silcnet.org>
2875
2876         * The silc_argument_get_[first/next] now return the argument
2877           type to caller.  Added silc_argument_payload_encode_one.
2878
2879           Affected files are lib/silccore/silcargument.[ch].
2880
2881         * Added support for the SILC 1.2 INVITE command and new
2882           invite lists to server.  Affected files are silcd/command.c,
2883           silcd/server_util.[ch] and silcd/packet_[receive/send].[ch].
2884
2885         * Added support for the SILC 1.2 BAN command and new
2886           ban lists to server.  Affected files are silcd/command.c,
2887           silcd/server_util.[ch] and silcd/packet_[receive/send].[ch].
2888
2889         * Added support to client sending new INVITE command.  Affected
2890           file is lib/silcclient/command.c.
2891
2892         * Added support to client sending new BAN command.  Affected
2893           file is lib/silcclient/command.c.
2894
2895         * Added support for removing client from invite list when kicked
2896           from channel, as SILC 1.2 dictates.  Affected files are
2897           silcd/packet_receive.c and silcd/command.c.
2898
2899 Sun Nov 24 18:26:42 EET 2002  Pekka Riikonen <priikone@silcnet.org>
2900
2901         * If iv argument to silc_cipher_[encrypt/decrypt] is NULL, use
2902           automatically the cipher's internal IV.  Affected files
2903           lib/silccrypt/silccipher.[ch].
2904
2905         * Assure the RESUME_CLIENT packet is not sent to twice to
2906           backup router if the detached client was originated from
2907           the backup.  Affected file silcd/server.c.  Bug #76.
2908
2909         * Changed silc_sim_symname to not allocate memory.  Affected
2910           file lib/silcsim/silcsimutil.c.
2911
2912         * Fixed memory leaks with SIMs in server.  Affected files
2913           silcd/serverconfig.c, silcd/server.c.
2914
2915         * Fixed channel key distribution after resuming detached
2916           client.  Affected files silcd/packet_receive.c.
2917
2918         * Fixed channel's global_user boolean checking after detaching.
2919           Check it after changing the owner of the client not before.
2920           Affected file silcd/packet_receive.c.
2921
2922         * Fixed few double frees from client library.  Fixes at least
2923           Bug #81, possibly others too.
2924
2925         * UTF-8 decode topics also in JOIN command reply and TOPIC_SET
2926           notifys in Irssi SILC Client.  Affected file is
2927           irssi/src/silc/core/client_ops.c.  Bug #82.
2928
2929         * Applied Ville Räsänen's manual page and --mandir bugfix
2930           patch.  Affected files are configure.in.pre and Makefile.am.pre.
2931           Bug #88.
2932
2933 Fri Nov 22 18:34:20 EET 2002  Pekka Riikonen <priikone@silcnet.org>
2934
2935         * Added support to backup router protocol for backup to tell
2936           normal server that it cannot use the backup router as primary
2937           because the primary isn't really down.  Updated protocol
2938           specs.
2939
2940         * Added support for primary router to tell backup router that
2941           resuming is not possible because the backup really isn't primary
2942           in the cell.  For example if backup disconnected itself the
2943           resuming is not allowed since the primary really did not
2944           go down.  Updated protocol specs.
2945
2946         * Removed MARS from crypto library.
2947
2948         * Defined the CTR mode and Randomized CBC mode in SILC.  The
2949           CTR mode is RECOMMENDED now in specification.  Defined also
2950           Serpent cipher as optional cipher.  Updated the protocol specs.
2951
2952 Thu Nov 21 12:43:28 EET 2002  Pekka Riikonen <priikone@silcnet.org>
2953
2954         * Added support for inviting/banning by IP/MASK, public key,
2955           and explicit Client ID.  Redefined the command and notify
2956           types to allow easier forwards support for other methods
2957           of inviting/banning.  Updated protocol specs.
2958
2959         * Remove the client from channel's invite lists if the client
2960           is kicked or killed.  Updated protocol specs.
2961
2962         * Unified the Channel Message Payload and Private Message
2963           into one Message Payload.  Updated protocol specs and
2964           implemented.
2965
2966 Tue Nov 19 22:30:56 EET 2002  Pekka Riikonen <priikone@silcnet.org>
2967
2968         * Don't wait for EOF after socket error has occurred, but
2969           close the connection.  Affected file is silcd/server.c.
2970
2971 Mon Nov 18 18:58:26 EET 2002  Pekka Riikonen <priikone@silcnet.org>
2972
2973         * Added support for setting FOUNDER mode on channel with
2974           specific public key which can be set with CMODE command.
2975           Updated protocol specs and implemented in client and server.
2976
2977         * Fixed the Irssi SILC client to correctly shutdown the client
2978           library to avoid memory leaks.  Affected files are
2979           irssi/src/silc/core/silc-core.c and silc-servers.c.
2980
2981         * Deprecated the No Reply flag in SKE protocol and introduced
2982           "IV Included" flag which can be used to indicate that the IV
2983           is included in the ciphertext.  This makes it possible to use
2984           SILC on unreliable transport, such as UDP which may cause
2985           packet reordering and losses.  Updated protocol specs, did
2986           not implement yet.
2987
2988 Sun Nov 17 15:50:57 EET 2002  Pekka Riikonen <priikone@silcnet.org>
2989
2990         * Fixed the MPI implementation of silc_mp_sizeinbase to return
2991           < 32 bit values in correct size.  Affected file is
2992           lib/silcmath/mp_mpi.c.
2993
2994 Sat Nov 16 13:14:45 EET 2002  Pekka Riikonen <priikone@silcnet.org>
2995
2996         * Fixed the KE Start Payload parsing to check that mandatory
2997           fields are present.  Affected file lib/silcske/payload.c.
2998
2999         * Fixed compilation warnigs in Irssi SILC Client.  Affected
3000           files are irssi/src/silc/core/silc-query.c. client_ops.c.
3001
3002 Thu Nov 14 19:33:28 CET 2002  Jochen Eisinger <c0ffee@penguin-breeder.org>
3003
3004         * Print "nick now appears as newnick" and update Irssi's nicklist
3005           when you change your nick to "nick". Closes #62
3006
3007         * Never format your own nick. Closes #63
3008
3009 Thu Nov 14 09:44:54 CET 2002  Jochen Eisinger <c0ffee@penguin-breeder.org>
3010
3011         * SILC_UMODE_GONE changes are now propagated correctly to the
3012           Irssi client. Closes #54
3013
3014 Tue Nov 12 19:42:18 CET 2002  Jochen Eisinger <c0ffee@penguin-breeder.org>
3015
3016         * Fixed example in /HELP KEY
3017
3018         * Added expando $j which expands to current SILC Client version
3019
3020 Tue Nov 12 19:46:39 EET 2002  Pekka Riikonen <priikone@silcnet.org>
3021
3022         * Fixed public key decoding in crypto library.
3023
3024         * Added better error printing to SKE library.
3025
3026 Tue Nov 12 08:50:12 CET 2002  Pekka Riikonen <priikone@silcnet.org>
3027
3028         * Fixed NICK command to not crash if nickname was not sent.
3029
3030 Mon Nov 11 19:32:00 EET 2002  Pekka Riikonen <priikone@silcnet.org>
3031
3032         * Added Encrypt-Then-MAC order to SILC packet MAC generation.
3033           Deprecated the old Encrypt-And-MAC order.  Updated protocol
3034           specs and implemented.
3035
3036         * Added Encrypt-Then-MAC order to Channel Message Payload MAC
3037           generation.  Updated specs and implemented.
3038
3039 Sun Nov 10 12:20:56 EET 2002  Pekka Riikonen <priikone@silcnet.org>
3040
3041         * Added support for rekey before 2^32 sequence number wraps.
3042           Affected files in server and client library.
3043
3044         * Padding must be at least 8 bytes now.  Implemented and updated
3045           protocol specs.
3046
3047         * Compute maximum padding for authentication packets to make
3048           passphrase approximation attacks impossible.  Affected files
3049           in client library and in server.
3050
3051         * Fixed PING command sending in client library and handling in
3052           server.  The server ID must be ID Payload, not raw ID data.
3053           Affected files in server and client library.
3054
3055         * Defined that all public keys sent in commands and notify
3056           payloads are actually Public Key Payloads not raw public key
3057           data.  Updated protocol specs and implemented.
3058
3059         * Updated protocol version to 1.2.  Updated specs and code.
3060
3061         * Added ERR_UNSUPPORTED_PUBLIC_KEY and ERR_OPERATION_ALLOWED
3062           status types.  Updated specs and the code.
3063
3064         * Added support for normal client to kill its own entries from
3065           the network.  Updated protocol specs and the code.
3066
3067         * Defined the SILC_MESSAGE_FLAG_SIGNED.  Updated protocol specs
3068           and added initial implementation.
3069
3070         * Added MAC field to the Private Message Payload to protect
3071           against chosen ciphertext attacks.  Updated the protocol specs
3072           and implemented.
3073
3074         * Added idle and signon fields to the ATTRIBUTE_SERVICE
3075           attribute to indicate the user's current idle and signon time
3076           of a service.  Updated protocol specs and implemented.
3077
3078 Thu Nov  7 19:21:10 EET 2002  Pekka Riikonen <priikone@silcnet.org>
3079
3080         * Added "do_not_bind" argument to silc_client_file_send what
3081           can be used to not bind locally but assume the file receiver
3082           provides the point of connect.  Usefull when sender is behind
3083           NAT device.  Affected file lib/silcclient/silcclient.h and
3084           client_ftp.c.
3085
3086         * Added -no-listener option to FILE SEND command in Irssi SILC
3087           client.  Affected file irssi/src/silc/core/silc-servers.c.
3088           Renamed FILE RECEIVE to FILE ACCEPT.
3089
3090         * Confirm passphrase for private key encryption in
3091           silc_create_key_pair and silc_change_private_key_passphrase.
3092           Affected files are lib/silcutil/silcapputil.c.
3093
3094 Thu Nov  7 10:05:28 CET 2002  Pekka Riikonen <priikone@silcnet.org>
3095
3096         * Move silc_client_packet_send back to internal, added
3097           silc_client_send_packet, a bit simpler function for application.
3098           Affected files lib/silcclient/silcclient.h, client.c and
3099           client_internal.h.
3100
3101         * Moved the SilcClientEntry, SilcChannelEntry and
3102           SilcServerEntry to silcclient.h to be public and documented
3103           them for application.  Affected files are
3104           lib/silcclient/silcclient.h and idlist.h.
3105
3106 Wed Nov  6 17:18:13 EET 2002  Pekka Riikonen <priikone@silcnet.org>
3107
3108         * Fixed manual page installation patch by Ville Räsänen.
3109           USERS help page fix patch by Ville Räsänen
3110
3111         * Changed the silc_client_command_call interface to make
3112           the command call simpler for the application.  The library
3113           now handles the command line parsing, command finding and
3114           execution.  Application only needs to call the function
3115           with the command line.  Affected files are
3116           lib/silcclient/silcclient.h, command.[ch].
3117
3118         * Fixed silc_get_input to NULL-terminate the returned input.
3119           Affected file lib/silcutil/silcutil.c.
3120
3121         * Resolve the client's public key in JOIN command if the
3122           founder auth data is being requested but we don't know the
3123           client's public key.  Affected file silcd/command.c.
3124           Bug #53.
3125
3126 Mon Nov  4 16:02:59 EET 2002  Pekka Riikonen <priikone@silcnet.org>
3127
3128         * Print notify for server opers when backup router comes
3129           online.  Affected file silcd/server.c.
3130
3131         * Fixed the INVITE command to send the invite list in
3132           command reply.  Affected file silcd/command_reply.c.
3133
3134         * Fixed MOTD command reply sending.  Affected file
3135           silcd/command.c.
3136
3137         * UTF-8 decode the topic in TOPIC command reply and LIST
3138           command reply in Irssi SILC client.  Affected file is
3139           irssi/src/silc/core/client_ops.c.
3140
3141 Sun Nov  3 17:59:15 EET 2002  Pekka Riikonen <priikone@silcnet.org>
3142
3143         * Fixed the INVITE command to not crash Irssi SILC client
3144           when given without nickname argument.  AFfected file
3145           irssi/src/silc/core/client_ops.c.
3146
3147         * Fixed double free in WHOIS query on normal server when
3148           forwarding query to router.  Affected file is
3149           silcd/server_query.c.
3150
3151         * Fixed WATCH command reply handling on normal server which
3152           was missing altogether.  Affected file silcd/command_reply.c.
3153           Bug #44.
3154
3155 Sun Nov  3 00:42:05 EET 2002  Mika Boström <bostik@lut.fi>
3156
3157         * Added man-pages for silc(1), silcd(8) and silcd.conf(5).
3158           Included yodl sources for each of these. Also modified
3159           Makefile.am prototype to install these files to proper
3160           locations. Updated CREDITS. Affected file Makefile.am.pre,
3161           new files doc/*.yo, doc/silc.1, doc/silcd.conf.5,
3162           doc/silcd.8.
3163
3164 Sat Nov  2 21:26:56 EET 2002  Pekka Riikonen <priikone@silcnet.org>
3165
3166         * Added support for encrypted private key files.  Now
3167           passphrase must be provided when new key pair is created
3168           (can be empty though), and prompted when loading the
3169           private key.  Added support for loading the old-style
3170           non-encrypted private keys as well.  Affected files
3171           lib/silccrypt/silcpkcs.[ch], Irssi SILC client and
3172           SILC Server.
3173
3174         * Fixed silc_get_input to accept input on all terminals.
3175           Affected file lib/silcutil/silcutil.c.
3176
3177         * Moved the Irssi SILC client key loading and other stuff
3178           to be called after the arguments and UI is initialized.
3179           Affected file irssi/src/silc/core/silc-core.c.  Bug #31.
3180
3181         * Added -P option to Irssi SILC client which can be used
3182           to change the passphrase of the private key.  Affected
3183           file irssi/src/silc/core/silc-core.c.
3184
3185         * Added silc_change_private_key_passphrase apputil routine
3186           to lib/silcutil/silcapputil.[ch].
3187
3188 Sat Nov  2 12:53:09 EET 2002  Pekka Riikonen <priikone@silcnet.org>
3189
3190         * Fixed connection closing in client library to not crash.
3191           Moved the connection freeing totally to function
3192           silc_clinet_del_connection.  Affected file
3193           lib/silcclinet/client.c.
3194
3195 Fri Nov  1 18:57:02 EET 2002  Pekka Riikonen <priikone@silcnet.org>
3196
3197         * Changed includes/silcincludes.h to silcincludes.h.in to
3198           include configuration specific information.  The silcdefs.h
3199           is not included in to installation anymore (it's only
3200           compilation time header).
3201
3202 Fri Nov  1 10:30:26 CET 2002  Pekka Riikonen <priikone@silcnet.org>
3203
3204         * Moved the SilcClient and SilcClientConnection from client.h
3205           to the public lib/silcclient/silcclient.h.  Changed the
3206           structures a bit.
3207
3208 Thu Oct 31 22:44:07 EET 2002  Pekka Riikonen <priikone@silcnet.org>
3209
3210         * If version string in silc_clinet_alloc is NULL the library
3211           puts it automatically.  Affected file lib/silcclient/client.c.
3212
3213         * Changed the version strings from variables to #define's
3214           in includes/silcversion.h.
3215
3216 Wed Oct 30 16:17:30 CET 2002  Pekka Riikonen <priikone@silcnet.org>
3217
3218         * Added shared library complation support.
3219
3220 Tue Oct 29 21:48:55 EET 2002  Pekka Riikonen <priikone@silcnet.org>
3221
3222         * Added lib/silcutil/silcapputil.[ch] for application
3223           utility functions.  It includes routines for applications'
3224           convenience.  Added silc_create_key_pair, silc_show_public_key
3225           and silc_load_key_pair functions.
3226
3227 Tue Oct 29 17:36:44 EET 2002  Pekka Riikonen <priikone@silcnet.org>
3228
3229         * Send RESUME_CLIENT packet from router to backup routers
3230           to in resuming.  Affected file silcd/packet_receive.c.
3231
3232 Mon Oct 28 21:23:39 EET 2002  Pekka Riikonen <priikone@silcnet.org>
3233
3234         * In IDENTIFY command parsing, send all other IDs except
3235           Client IDs explicitly to router for resolving on normal
3236           server.  Also check that ID received in WHOIS command is
3237           always Client ID, others are not allowed.  Affected file
3238           silcd/server_query.c.
3239
3240         * Merged latest changes from irssi.org CVS.
3241
3242 Sun Oct 27 11:44:32 EET 2002  Pekka Riikonen <priikone@silcnet.org>
3243
3244         * Merged c0ffee's /set heartbeat patch to Irssi SILC client.
3245           Affected files irssi/src/silc/core/silc-core, silc-server.c.
3246
3247         * Fixed the heartbeat sending in Irssi SILC client.  Moved
3248           the silc_client_packet_send to silcclient.h for application
3249           usage.  Affected files lib/silcclient/client_internal.h
3250           lib/silcclient/silcclient.h.
3251
3252         * Fixed a bug in query resolving in server.  Used wrong
3253           variable in a for loop and crashed.  Affected file is
3254           silcd/server_query.c.
3255
3256         * Server constructs requested attributes only to locally
3257           connected clients.  Affected file silcd/server_query.c.
3258           Bug #36.
3259
3260         * Fixed a bug when sending resolving from router to server
3261           with requested attributes.  The constructed WHOIS command
3262           was incorrect.  Affected file silcd/server_query.c.
3263           Bug #38.
3264
3265         * Fixed Requested Attributes saving in WHOIS command reply.
3266           The length of the data buffer must be saved too.  Affected
3267           file silcd/command_reply.c.
3268
3269         * Update the client entry's servername after detaching is
3270           over.  Affected file silcd/packet_receive.c.  Bug #37.
3271
3272         * Resolve incomplete client entrys in CUMODE_CHANGE and
3273           CMODE_CHANGE notifys.  Affected file is
3274           lib/silcclient/client_notify.c.  Bug #42.
3275
3276 Thu Oct 24 12:22:35 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
3277
3278         * Fixed channel key packet processing bug on backup router
3279           during backup resuming protocol.  Affected file is
3280           silcd/packet_receive.c.
3281
3282         * Fixed memory leaks in server.  Affected files are
3283           silcd/server.c and silcd/packet_receive.c.
3284
3285         * Fixed packet decryption problem when backup router encrypted
3286           channel message with wrong key during backup resuming
3287           protocol.  Affected file silcd/packet_send.c.
3288
3289         * ROBODoc documented lib/silccrypt/silccipher.h.  A patch by
3290           Toni Willberg (toniw@iki.fi)
3291
3292         * Changed the SilcCipher context to be private.  Changed the
3293           silc_cipher_get_iv to just return pointer to the IV.  Added
3294           silc_cipher_get_name to return the name of the cipher.
3295           Fixed code all around to support these changes.  Affected
3296           files are lib/silccrypt/silccipher.[ch], client library and
3297           server.
3298
3299 Wed Oct 23 19:01:41 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
3300
3301         * Fixed unaligned access in lib/silccore/silcattrs.c.
3302
3303         * Fixed libtool linking in lib/silcsim/Makefile.am.
3304
3305         * Fixed services attribute printing.  Affected files is
3306           irssi/src/silc/core/silc-queries.c.
3307
3308 Wed Oct 23 09:51:04 CEST 2002  Pekka Riikonen <priikone@silcnet.org>
3309
3310         * Fixed a crashbug in incoming server accepting.  Affected
3311           file silcd/server.c.
3312
3313 Tue Oct 22 13:02:32 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
3314
3315         * Added automatically generated index to Toolkit Reference
3316           Manual.
3317
3318         * Added support for Postscript Toolkit Reference Manual.
3319
3320 Mon Oct 21 21:30:40 CEST 2002  Pekka Riikonen <priikone@silcnet.org>
3321
3322         * Merged DISCONNECT fix, and autoconn port fix from Irssi
3323           CVS.
3324
3325 Sun Oct 20 19:54:55 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
3326
3327         * Added 'send_events' boolean argument to the function
3328           silc_schedule_set_listen_fd which sends the set events to
3329           the application explicitly if set to TRUE.  Default action
3330           should be FALSE.  Affected file lib/silcutil/silcschedule.[ch],
3331           lib/silcclient/client_internal.h and silcd/server_internal.h.
3332
3333         * Added silc_compare_timeval to determine which time values
3334           is smaller.  Affected file lib/silcutil/silcutil.[ch].
3335
3336         * Added sort-of "Quality of Service" (QoS) support to
3337           SilcSocketConnection.  Data reception can be controlled with
3338           rate limit per second and/or read data length limit.
3339           Added silc_socket_set_qos.  Affected files are
3340           lib/silcutil/silcsockconn.[ch] and unix/silcunixsockconn.c.
3341
3342         * Added the QoS configuration to SILC Server configuration
3343           file.  Affected files are silcd/serverconfig.[ch] and
3344           server.c.
3345
3346 Sun Oct 20 14:12:24 CEST 2002  Pekka Riikonen <priikone@silcnet.org>
3347
3348         * Merged with irssi.org CVS.
3349
3350         * Failed OPER and SILCOPER authentications are now logged.
3351           Affected file silcd/command.c.  Bugs #25.
3352
3353 Sat Oct 19 13:32:15 CEST 2002  Pekka Riikonen <priikone@silcnet.org>
3354
3355         * ROBODoc documented lib/silcutil/silcbuffer.h and
3356           lib/silcutil/silcdlist.h.  Patch by Ville Räsänen
3357           <ville.rasanen@iki.fi>.
3358
3359 Fri Oct 18 10:51:04 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
3360
3361         * Added support for auto-passphrase authentication from the
3362           config file during connecting which was not implemented
3363           yet.  Affected file irssi/src/silc/core/client_ops.c.
3364
3365         * Fixed a bug in authentication protocol failure handling which
3366           was processing wrong callback context.  Affected files
3367           are lib/silcclient/client.c and protocol.c.
3368
3369         * Fixed the /ATTR allow off to actually work.  Affected file
3370           is irssi/src/silc/core/silc-queries.c.
3371
3372         * Fixed the /ATTR -del to work.  Affected file is
3373           irssi/src/silc/core/silc-queries.c.
3374
3375 Thu Oct 17 23:45:12 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
3376
3377         * Fixed string formatting crashbug in lib/silccore/silcattrs.c.
3378
3379         * Fixed mask attribute adding in Irssi SILC client.  Affected
3380           file irssi/src/silc/core/silc-queries.c.
3381
3382 Thu Oct 17 16:40:39 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
3383
3384         * Added support for saving the requested attributes in
3385           WHOIS to directory.  Affected file is
3386           irssi/src/silc/core/silc-queries.c.
3387
3388 Wed Oct 16 17:40:56 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
3389
3390         * Added support for parsing VCard fields that do not have
3391           the TYPE= for types.  Affected file lib/silcutil/silcvcard.c.
3392
3393         * Fixed a double free bug in hash table foreach function
3394           if the entry was deleted in the foreach callback.  Affected
3395           file lib/silcutil/silchashtable.c.
3396
3397 Tue Oct 15 18:05:24 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
3398
3399         * Added silc_attribute_get_verify_data to return the signature
3400           verification data for either user digital signature or
3401           server digital signature in Requested Attributes.  Affected
3402           files are lib/silccore/silcattrs.[ch].
3403
3404         * Added silc_vcard_alloc which is used to allocated dynamic
3405           SilcVCard context.  The silc_vcard_free now checks whether
3406           the context is dynamically allocated or not.  Affected files
3407           are lib/silcutil/silcvcard.[ch].
3408
3409 Mon Oct 14 17:55:44 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
3410
3411         * Periodically remove the NOATTR status from client entry
3412           so that the client may take the attributes in use even after
3413           server has resolved them unsuccessfully earlier.  Affected
3414           file silcd/server_query.c and idlist.h.
3415
3416         * Moved sha1hash and md5hash from client->internal to
3417           SilcClient for application usage.  Affected files are
3418           lib/silcclient/client.h and client_internal.h.
3419
3420         * Fixed attribute encoding and decoding bugs.  Affected
3421           files lib/silccore/silcattrs.[ch].
3422
3423         * Added ATTR command to Irssi SILC Client which is used to
3424           manage user's Requested Attributes sending and values for
3425           WHOIS command.  Affected files around Irssi SILC client.
3426
3427 Mon Oct 14 14:33:54 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
3428
3429         * Added silc_buffer_strformat which can be used to format
3430           strings into a buffer which size is automatically increased.
3431           Affected file lib/silcutil/silcbuffmt.[ch].
3432
3433         * Added implementation of VCard (RFC 2426) which can be used
3434           as part of Requested Attributes in WHOIS command.  Affected
3435           file lib/silcutil/silcvcard.[ch].
3436
3437 Fri Oct 11 23:52:17 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
3438
3439         * Some strncat -> silc_strncat changes our the core and
3440           client library.
3441
3442         * Added SILC_SKE_STATUS_SIGNATURE_ERROR and OUT_OF_MEMORY
3443           errors.  Added better error printing to SKE library.
3444           Affected files lib/silcske/silcske.c, silcske_status.h and
3445           payload.c.
3446
3447         * Save the PKCS key length even if only private key is set to
3448           SilcPKCS.  Affected file lib/silccrypt/silcpkcs.[ch] and rsa.c.
3449
3450         * Fixed the usage of silc_pkcs_get_key_len since it returns the
3451           length in bits not in bytes.  Affected files are
3452           lib/silcske/silcske.c, lib/silccore/silcauth.c and
3453           silcd/server_query.c.
3454
3455 Wed Oct  9 17:22:57 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
3456
3457         * Added silc_attribute_payload_encode_data to directly encode
3458           the data into the attributes buffer.  Renamed function
3459           silc_attribute_payload_parse_list to silc_attribute_payload_parse.
3460           Affected files are lib/silccore/silcattrs.[ch].
3461
3462         * silc_hash_table_find_foreach calls the foreach function now
3463           once even if the nothing was found with context set to NULL.
3464           Affected file lib/silcutil/silchashtable.[ch].
3465
3466         * Remove the RESOLVING flag from client entry after received
3467           the Requested Attributes from the client.  Fixed memory leak
3468           in client entry freeing.  Affected files silcd/server_query.c
3469           and idlist.c.
3470
3471         * Added Requested Attributes support into SILC Client Library.
3472           It is not able to send requested attributes in WHOIS command,
3473           and also receive and process requested attributes.  Added
3474           silc_client_attribute_[add|del] and silc_client_attributes_get
3475           functions.  Added also `ignore_requested_attributes' to the
3476           SilcClientParams to not use attributes in client.  Affected
3477           files are lib/silcclient/command.c, client_attrs.[ch],
3478           silcclient.h, client_internal and client.[ch].
3479
3480         * Changed the silc_client_get_client_by_id to support Requested
3481           Attributes, it takes them as argument now.  Affected file
3482           is lib/silcclient/silcclient.h, and idlist.c.
3483
3484         * Added -details option to WHOIS command in Irssi SILC Client
3485           to support the requested attributes.  By default it requests
3486           all attributes.  Affected file lib/silcclient/command.c and
3487           irssi/doc/help/in/whois.in.
3488
3489 Tue Oct  8 17:58:28 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
3490
3491         * Add also SERVICE attribute for server-constructed attribute
3492           data.  Also digitally sign the attributes and add
3493           SERVER_DIGITAL_SIGNATURE attribute.  Affected file is
3494           silcd/server_query.c.
3495
3496 Mon Oct  7 18:25:35 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
3497
3498         * Changed the silc_attribute_payload_encode to support list
3499           of attributes (function may be called several times to add
3500           a new attribute).  Removed the silc_attribute_payload_encode_list
3501           function.  The encoding function now also automatically encodes
3502           the data, so the caller does not need to do that.  Affected
3503           files lib/silccore/silcattrs.[ch].
3504
3505         * Added support for replying on behalf of the user to the
3506           Requested Attributes in WHOIS command in the server.  Affected
3507           file silcd/server_query.c.
3508
3509         * SILC_NOT_IMPLEMENTED macro use SILC_LOG_INFO now instead of
3510           SILC_LOG_DEBUG.  Affected file lib/silcutil/silclog.h.
3511
3512 Sun Oct  6 16:48:32 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
3513
3514         * Don't swtich to become primary router if we are backup if
3515           decryption error has occurred.  Affected file silcd/server.c.
3516
3517         * Fixed a bug in backup router IP address comparison in
3518           silc_server_backup_get.
3519
3520           Save now also the port of the server/router and use that
3521           in comparison as well.  Affected file silcd/server_backup.c.
3522
3523         * Normal server now reconnects to backup router automatically
3524           if connection is lost to it.  Affected file silcd/server.c.
3525
3526 Thu Sep 26 13:51:02 CEST 2002  Pekka Riikonen <priikone@silcnet.org>
3527
3528         * If packet processing fails (like integrity check fails)
3529           the connection is closed now.  Affected files are
3530           lib/silccore/silcpacket.c and silcd/server.c.
3531
3532 Mon Sep 23 10:59:39 CEST 2002  Pekka Riikonen <priikone@silcnet.org>
3533
3534         * Fixed double free in RSA public key set function
3535           silc_rsa_set_public_key.  Affected file lib/silccrypt/rsa.c.
3536           Bug #29.
3537
3538 Sun Sep 22 14:54:05 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
3539
3540         * Rewrote WHOIS, WHOWAS and IDENTIFY commands in the server.
3541           Added server_query.[ch] which provides one interface for
3542           querying information using all three commands.
3543
3544         * Changed all "typedef unsigned char" in core library to
3545           "typedef SilcUInt8".
3546
3547 Sat Sep 21 21:36:45 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
3548
3549         * Added silc_strncat into lib/silcutil/silcstrutil.[ch].
3550
3551         * Renamed silc_server_get_client_resolve to
3552           silc_server_query_resolve and moved to server_query.[ch].
3553
3554 Wed Sep 18 18:28:04 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
3555
3556         * Resumed client packet handling from server put the resumed
3557           client on wrong list on router and caused the client not
3558           be present on the network anymore.  Now fixed to put the
3559           client to correct list.  Affected file silcd/packet_receive.c.
3560
3561 Wed Sep 18 15:13:48 CEST 2002  Johnny Mnemonic <johnny@themnemonic.org>
3562
3563         * Various cleanup in error message output in config parsing code
3564           and in server init code.  Fixed error log files containing
3565           too many newlines ('\n') in some situations.  Affected files are
3566           silcd/serverconfig.c, silcd/silcd.c, and silcd/server.c.
3567
3568 Wed Sep 18 10:51:23 CEST 2002  Pekka Riikonen <priikone@silcnet.org>
3569
3570         * Use the reverse lookupped hostname in client internals
3571           instead of one user provided us as remote server name.
3572           Affected file lib/silcclient/client.c.
3573
3574 Mon Sep 16 12:02:54 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
3575
3576         * Added 'app_context' to silc_schedule_init.  It is an
3577           application specific context that is delivered to application
3578           in task callback functions.  Affected files are
3579           lib/silcutil/silcutil.[ch].
3580
3581         * The hb_context in SilcSocketConnection is not freed
3582           automatically anymore (application must free it).  Freeing
3583           it automatic is inconsistent.  Affected files are
3584           lib/silcutil/silcsockconn.[ch].
3585
3586 Sun Sep 15 22:16:19 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
3587
3588         * Added support for removing explicitly added client connections
3589           in rehash and closing the client connections if they were
3590           unconfigured in the rehash.  Affected file silcd/server.c.
3591
3592         * Added support for aborting automatically pending commands
3593           that never receives the reply (to avoid memory leaks).
3594           Added also silc_server_command_pending_timed to set the
3595           specific timeout for pending command.  Affected files are
3596           silcd/command[_reply].[ch].
3597
3598         * Added SILC_STATUS_ERR_TIMEDOUT status.  Updated protocol
3599           specs and lib/silccore/silcstatus.h.
3600
3601 Sun Sep 15 12:25:10 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
3602
3603         * Changed the silc_get_time to accept time value as argument
3604           or if zero is sent return current local time.  Affected
3605           file lib/silcutil/silcutil.[ch].
3606
3607         * Added STATS command to client library and Irssi SILC client.
3608           Patch provided by Ville Räsänen <ville.rasanen@iki.fi>.
3609
3610 Wed Sep 11 09:22:00 CEST 2002  Pekka Riikonen <priikone@silcnet.org>
3611
3612         * Assure that channel key is set before sending it.  May
3613           crash server otherwise.  Affected file silcd/packet_send.c.
3614
3615 Tue Sep 10 09:50:08 CEST 2002  Pekka Riikonen <priikone@silcnet.org>
3616
3617         * Assure that endless loop cannot happen with detached client
3618           resolving on normal server.  Added idlist status
3619           SILC_IDLIST_STATUS_RESUME_RES.   Affected files are
3620           silcd/idlist.h and silcd/packet_receive.c.
3621
3622 Mon Sep  9 12:18:18 CEST 2002  Pekka Riikonen <priikone@silcnet.org>
3623
3624         * Incoming file transfer request cannot use same session as
3625           the sending session.  This can happen when sending file to
3626           yourself.  Crashed the client on quit.  Affected file
3627           lib/silcclient/client_ftp.c.  Bug #24.
3628
3629 Sun Sep  8 18:39:25 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
3630
3631         * Implemented the draft-riikonen-precense-attrs draft and
3632           the Attribute Payload into the lib/silccore/silcattrs.[ch].
3633
3634 Sun Sep  8 13:13:44 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
3635
3636         * Distribute the SERVER_SIGNOFF notify also to local backup
3637           routers from the primary router.  The backup router may not
3638           have the signing of local server directly connected and need
3639           to know about the signoff.  Affected file silcd/server_util.c.
3640
3641         * Use the primary router as the origin of the locally connected
3642           server when it is disconnecting from the backup router since
3643           that's where it really is coming from.  Now the clients from
3644           the disconnecting server are removed correctly and "shadow"
3645           clients are not left to the backup router.  Affected file
3646           silcd/server.c.
3647
3648 Sat Sep  7 22:26:50 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
3649
3650         * If normal server is standalone and found existing but disabled
3651           channel, do not re-create the channel since it creates
3652           duplicate same channels.  Affected file silcd/server.c.
3653
3654         * Added anonymous client connections support to server.  New
3655           "anonymous" configuration option to ConnectionParams section
3656           added.  If set to true, the username and hostname information
3657           of the client will be scrambled and anonymous user mode is
3658           set automatically to the user.  Affected files are
3659           silcd/serverconfig.[ch], silcd/packet_receive.c and server.c.
3660
3661 Sat Sep  7 16:02:09 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
3662
3663         * In JOIN notify handling, mark that the cache entry of the
3664           client cannot be expired.  Can cause crashes on normal
3665           server (asserts client->channels).  Affected file is
3666           silcd/packet_receive.c.
3667
3668         * From now on distribution versions are used as protocol versions
3669           instead of by default using the Toolkit base version as protocol
3670           version.  Affected file prepare.
3671
3672         * Do not set the locally resolved hostname for local client
3673           entry but take what server sends.  This way the real hostname
3674           is showed in WHOIS for yourself.  Affected file is
3675           lib/silcclient/idlist.c and lib/silcclient/client.c.
3676
3677         * Resolve local info with IDENTIFY when connecting to server.y
3678
3679 Sat Sep  7 14:22:43 CEST 2002 Lubomir Sedlacik <salo@silcnet.org>
3680
3681         * Rewritten check for POSIX threads.  Use --with-pthreads[=DIR]
3682           for implied search (not needed on platforms which has native
3683           pthreads library).  Use --without-pthreads to disable threads.
3684           Affected file is configure.in.pre
3685
3686         * Fixed --with-iconv on platforms which need to bypass (broken)
3687           native iconv().  Affected file is configure.in.pre
3688
3689 Sat Sep  7 15:08:13 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
3690
3691         * Moved -C option parsing in Irssi SILC client at same time
3692           as other options.  The UI was initialized earlier and caused
3693           problems on command line.  Bug #16.  Affected file is
3694           irssi/src/silc/core/silc-core.c.
3695
3696 Mon Sep  2 23:00:30 CEST 2002 Johnny Mnemonic <johnny@themnemonic.org>
3697
3698         * Added global variable silc_log_timestamp that tells silclog
3699           wether to print or not the timestamp in the logging files.
3700           Affected file lib/silcutil/silclog.[ch].
3701
3702         * Added silcd configuration option Timestamp in the Logging
3703           section.  Affected file silcd/serverconfig.[ch],
3704           doc/example_silcd.conf.in.
3705
3706 Fri Aug 30 08:57:33 CEST 2002 Pekka Riikonen <priikone@silcnet.org>
3707
3708         * Fixed fingerprint checking to check for entirely empty
3709           fingerprint instead of two first bytes when determining
3710           if it is set.  Bug #18.  Affected file silcd/command.c.
3711
3712         * Fixed duplicate PKCS name registering to not allow it.
3713           Bugs #17.  Affected file lib/silccrypt/silcpkcs.c.
3714
3715 Sun Aug 25 08:02:04 CEST 2002 Lubomir Sedlacik <salo@silcnet.org>
3716
3717         * Conditionalize non-gcc compiler optimizations for various
3718           platforms, enable those commented out.  Cleanups.
3719           Affected file lib/silcmath/mpi/configure.in
3720
3721 Sat Aug 24 15:11:32 EEST 2002 Timo Sirainen <tss@iki.fi>
3722
3723         * silc_rng_exec_command() left zombie processes if command
3724           didn't generate any output.  Affected file
3725           lib/silccrypt/silcrng.c
3726
3727 Fri Aug 23 22:05:44 CEST 2002 Lubomir Sedlacik <salo@silcnet.org>
3728
3729         * Rewrote iconv checking, introduce --with-iconv for systems
3730           which rely on libiconv.  Check if iconv() provided by libc
3731           is good enough, otherwise demand libiconv.  Affected file
3732           configure.in.pre
3733
3734 Fri Aug 23 07:10:52 CEST 2002 Lubomir Sedlacik <salo@silcnet.org>
3735
3736         * Search for ldopen() also in libc.  This enables SIM support
3737           on *BSD systems.  Based on patch from Alex Zepeda.  Affected
3738           file configure.in.pre
3739
3740 Sun Aug 18 04:44:30 CEST 2002 Lubomir Sedlacik <salo@silcnet.org>
3741
3742         * Don't call AM_CONDITIONAL conditonally for SILC_THREADS.
3743           This fixes prepare on *BSD systems.  Affected file
3744           configure.in.pre
3745
3746 Sun Aug  4 15:55:40 CEST 2002 Pekka Riikonen <priikone@silcnet.org>
3747
3748         * More fixed for not having purge timeout for global clients
3749           that are on channel.  Affected files silcd/command_reply.c
3750           and server_util.c.
3751
3752         * Fixed the rekey protocol to work with backup router connections.
3753           Rekey packets are now allowed on disabled connections as
3754           well.  Affected files silcd/packet_send.c and server.c.
3755
3756         * Do not switch to be as backup router when shutting down and
3757           closing the primary connection.  Affected file silcd/server.c.
3758
3759         * Fixed memory leaks in backup router deleting.  Added
3760           silc_server_backup_free to free all data during shutdown of
3761           server.  Affected files silcd/server_backup.[ch].
3762
3763 Sun Jul 14 21:33:32 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
3764
3765         * Do not process commands if the sock->user_data is NULL.
3766           Affected file silcd/command.c.
3767
3768 Tue Jul  9 19:03:11 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
3769
3770         * Fixed buffer overflow and security problems (loosing bits
3771           in CFB encryption) in SILC RNG.  Problems reported by
3772           Markku-Juhani O. Saarinen <mjos@saturn.tcs.hut.fi>.
3773
3774 Sun Jul  7 13:10:01 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
3775
3776         * Added yet more checks that client is not expired on global
3777           list if it is on channels.  Affected file is
3778           silcd/command_reply.c.
3779
3780 Sat Jul  6 11:45:11 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
3781
3782         * Merged c0ffee's MIME signal patch which adds support for
3783           sending also MIME messages in Irssi SILC Client, and handling
3784           received MIME messages in a signal (and perhaps doing something
3785           to non-textual MIME messages).
3786
3787 Sun Jun 30 01:30:22 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
3788
3789         * Fixed pending command deletion in server and client library
3790           to check the whole list instead of breaking after first found.
3791           The affected files are silcd/command.[ch] and
3792           lib/silcclient/command.[ch].
3793
3794 Sat Jun 29 17:40:12 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
3795
3796         * Return NO_SUCH_CHANNEL error in USERS for channel that is
3797           secret or private, otherwise it's possible to find out
3798           whether a secret channel exists or not.  Affected file
3799           silcd/command.c.
3800
3801         * If CMODE change fails during the mode setting, assure that
3802           the old mode mask is set for the channel back.  Affected
3803           file silcd/command.c.
3804
3805         * Fixed passphrase saving on +a channel on normal server
3806           after successful JOIN command.  Affected file silcd/command.c.
3807
3808 Fri Jun 28 11:53:25 CEST 2002 Pekka Riikonen <priikone@silcnet.org>
3809
3810         * Remove server/router operator privileges in DETACH command,
3811           since it's possible to resume to server where these
3812           privileges would not be allowed for the client.  Affected
3813           file silcd/command.c.
3814
3815         * Do not set to wait for backup in rehash of the server.
3816           Affected file silcd/server.c.
3817
3818         * Do not check listener sockets when counting how many
3819           socket connections we have.  Affected file is
3820           silcd/server_util.c.
3821
3822         * Do not announce disconnected clients that are remaining
3823           in history (for WHOWAS).  This is because SIGNOFF notify
3824           for these has been sent earlier already.  Affected file
3825           silcd/server.c.
3826
3827 Thu Jun 27 20:07:27 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
3828
3829         * Buffer overflow with CUMODE command's mode->mode character
3830           conversion.  Reported by Ville Räsänen.  Affected file
3831           lib/silcutil/silcutil.c.
3832
3833 Thu Jun 27 16:54:33 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
3834
3835         * Allow heartbeat packets to go disabled connections anyway.
3836           Affected files silcd/server.c and silcd/packet_send.c.
3837
3838         * Do not broadcast New Channel packets with List flag set
3839           in the packet to backup routers.  The router must check
3840           for the correctness of the packets before sending them.
3841           It is possible that router will have enforce Channel ID
3842           change and this would cause desync in the backup router.
3843           Affected file silcd/packet_receive.c.
3844
3845         * Remove SILC_PACKET_FLAG_LIST from the temp packets that
3846           are handled in list parsing.  They are not list packets
3847           anymore.  Affected file silcd/packet_receive.c.
3848
3849 Thu Jun 27 11:27:07 CEST 2002 Pekka Riikonen <priikone@silcnet.org>
3850
3851         * Stop waiting for backup router through the timeout, not
3852           directly after backup router has arrived.  Affected file
3853           silcd/server.c.
3854
3855         * Do not re-create channel keys and send them when removing
3856           clients in server shutdown.  Affected files are
3857           silcd/server_internal.h and silcd/server_util.c.
3858
3859         * Notify distribution to backup routers was missing from
3860           the silc_server_send_notify_dest function which caused
3861           desyncing problems with backup router.  Affected file is
3862           silcd/packet_send.c.
3863
3864         * The client's channel removing was working wrong on
3865           backup router.  It assumed that it doesn't know global
3866           information but backup router does know.  For this reason
3867           it could remove channel when it wasn't supposed to do that.
3868           Affected file silcd/server.c and silcd/server_util.c.
3869
3870 Wed Jun 26 15:14:12 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
3871
3872         * Stop for a couple seconds after badkup router has become
3873           primary router.  Affected file silcd/server.c.
3874
3875         * Added silc_server_remove_servers_by_server, which is used
3876           to remove servers originated from some other server.  Also
3877           clients of those servers can be removed too.  Affected file
3878           silcd/server_util.[ch].
3879
3880         * When removing clients after a server has signed of remove
3881           also all servers behind that server (unless they are known
3882           to be available locally), and send SERVER_SIGNOFF for each
3883           of the server separately.  Also the signed off clients are
3884           sent now separately per signed off server.  The affected files
3885           are silcd/server.c and silcd/server_util.[ch].
3886
3887         * All servers added with silc_idlist_add_server must always
3888           have both "router" and "connection" pointers set.  Otherwise,
3889           bad server entries may be left around in the cache.
3890           Affected file silcd/command_reply.c.
3891
3892         * Do not create the channel key in NEW_CHANNEL packet
3893           processing if the channel is empty.  Affected file
3894           silcd/packet_receive.c.
3895
3896         * Completed backup router support for standalone routers.
3897           Supports also servers in the cell that do not use the backup
3898           at all.
3899
3900 Wed Jun 26 10:38:11 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
3901
3902         * Fixed a bug in silc_string_regexify which did not add '^'
3903           at the start of each string, and thus the matching was
3904           not explicit.  For example ban list iikone@*!*@* would
3905           match also "priikone", which is wrong, it would have to be
3906           *iikone@*!*@* to match also "priikone".  Affected
3907           file lib/silcutil/unix/silcunixutil.c.
3908
3909 Tue Jun 25 18:47:39 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
3910
3911         * Enable all local server connections before updating client
3912           caches when we've become backup router.  Otherwise, signoff
3913           packets may not reach the clients.  Affected files are
3914           silcd/server.c and silcd/server_util.[ch].
3915
3916         * Fixed a bug in version string parsing which could crash
3917           the program with specially formatted version string.
3918           Bug reported and patch provided by Ville Räsänen.  Affected
3919           file lib/silcutil/silcutil.c.
3920
3921         * Handle the disconnection immediately when DISCONNECT
3922           packet is received in server.  Affected file silcd/server.c.
3923
3924         * Primary router now waits a short time (10 seconds) for
3925           backup router connection before accepting any other
3926           connection (except local).  Affected file silcd/server.c,
3927           serverconfig.[ch].
3928
3929         * Fixed a crash in client libary in NICK_CHANGE notify when
3930           NICK_CHANGE arrived for client entry we are resolving
3931           currently.  Affected file lib/silcclient/client_notify.c.
3932
3933         * Call the sconn->callback completion even if error had
3934           occurred.  Start reconnecting always if connection to
3935           primary router fails during backup router protocol.
3936           Affected files silcd/server.c and server_backup.c.
3937
3938 Mon Jun 24 17:47:52 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
3939
3940         * Added functions silc_server_send_opers and
3941           silc_server_send_opers_notify to send packets stricly
3942           to operators.  Added macro SILC_SERVER_SEND_OPERS macro
3943           to send variable argument notify to operators.
3944           Affected files silcd/packet_send.[ch] and silcd/server.h.
3945
3946         * Removed UMODE rights checking with UMODE_CHANGE notify.
3947           Affected file silcd/packet_receive.c.
3948
3949         * Server/router operator now receives notify when network
3950           switches to backup router and when it resumes the use of
3951           primary router.  Affected file silcd/server.c and
3952           silcd/server_backup.c.
3953
3954         * Fixed the updating of client information after backup
3955           resuming protocol is over; update all except local clients
3956           to the new primary router.  The affected file is
3957           silcd/server_util.c.
3958
3959         * Added support for closing active connections in rehash
3960           that were unconfigured by the user.  Supports currently
3961           closing server and router connections.  Affected file
3962           silcd/server.c.
3963
3964         * Rewrote some SILC_LOG_DEBUG's in silcd/server_backup.c.
3965
3966 Sun Jun 23 17:32:31 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
3967
3968         * Don't do SILC_STRING_LANGUAGE encoding if the outbuffer
3969           is NULL since seems that on some platforms NULL is allowed
3970           and on some it's not.  Fallback encoding is used instead.
3971           Affected file lib/silcutil/silcstrutil.c.
3972
3973         * Fixed statistics updating for incoming server connection
3974           which could cause problems when re-connecting.  Affected
3975           file silcd/server.c.
3976
3977         * Preliminary backup router support for standalone router
3978           added.  Affected files in silcd/.
3979
3980         * Mark server connections in backup router disabled before
3981           and after backup protocol.  Affected file is
3982           silcd/server_backup.c.
3983
3984         * Added support for reconnecting to remote server connection
3985           even if the protocol fails, and if the configuration wants
3986           us to keep trying to connect anyway.
3987
3988           Server connection is not allowed to backup router if
3989           backup router does not have connection to primary router yet.
3990
3991           Affected file is silcd/server.c.
3992
3993 Sat Jun 22 21:34:59 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
3994
3995         * Added silc_client_udpate_server function to update changed
3996           server info.  Affected file lib/silcclient/idlist.[ch].
3997
3998         * Added check for server entries that are being resolved when
3999           notify is received.  If being resolved, handle the received
4000           notify only after it's resolved so that all notifys are
4001           handled in same order as received from the server.
4002
4003           Added similar resolver check to channel entries.  Every
4004           notify that cause resolving of any information that affects
4005           channel entry marks the channel entry in waiting state.
4006           After whatever resolving is over the waiters are signalled
4007           and only then the notifys are handled in the same order
4008           as delivered from the server.
4009
4010           Affected files are lib/silcclient/idlist.[ch], and
4011           client_notify.c.
4012
4013         * Fixed KILLED notify handling in normal server.  Affected
4014           file silcd/packet_receive.c.
4015
4016         * Added SILC_IDLIST_STATUS_LOCAL which indicates that entry
4017           is locally connected, or was locally connected (but may
4018           be detached and connection is not active).  Added also
4019           SILC_IS_LOCAL for checking this status.  Affected files
4020           silcd/idlist.h, silcd/packet_receive.c, silcd/server_util.c,
4021           silcd/server.c and silcd/server_internal.h.
4022
4023 Sat Jun 22 17:06:58 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
4024
4025         * Don't send or handle TOPIC_SET if topic is already set and
4026           is same as being set.  Affected files silcd/command.c and
4027           silcd/packet_receive.c.
4028
4029         * Fixed CMODE change rights checking to work correctly when
4030           removing modes by operator.  Affected file is
4031           silcd/server_util.c.
4032
4033         * Fixed some handling with New Channel packet in router and
4034           fixed some CMODE_CHANGE notify handling in server and router.
4035           Affected file is silcd/packet_receive.c.
4036
4037         * Changed "disconnect" client operation to include the
4038           reason of the disconnection and optional disconnection
4039           message.  Affected file lib/silcclient/silcclient.h.
4040
4041         * Made the compilation of lib/contrib/ stuff conditional.
4042           Affected files configure.in.pre, lib/contrib/Makefile.am.
4043
4044 Sat Jun 22 12:49:21 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
4045
4046         * All CMODE_CHANGE and CUMODE_CHANGE notifys are now sent back
4047           to the sender of the notify too, to avoid situation where two
4048           notifys are in the network at the same time going to oppsite
4049           directions.  Affected file silcd/packet_receice.c.
4050
4051 Fri Jun 21 10:00:32 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
4052
4053         * Delete the client from channel even if the cilent->id is
4054           NULL.  It was possible that client was deleted without
4055           removing from channels (theoretically at least).  Affected
4056           file silcd/server.c and silcd/server_util.c.
4057
4058         * Free the client data too when resuming is not successful.
4059           Affected file silcd/packet_receive.c.
4060
4061         * Merged some code from c0ffee's silc-plugin.  Affected files
4062           irssi/src/silc/core/silc-channels.c and silc-expandos.c.
4063
4064         * Added SILC_PRIMARY_ROUTE and SILC_BROADXAST macros to
4065           silcd/server_internal.h.  SILC_PRIMARY_ROUTE Returns pointer
4066           to the primary router connection, the other one returns
4067           TRUE if packet must be broadcasted to network.
4068
4069         * All notifys that are destined to primary router (to network)
4070           are now automatically sent to backup routers even if the
4071           router is standalone (and has backup router).  Affected files
4072           in silcd/.
4073
4074         * Added --without-irssi and --without-silcd configuration
4075           options for disabling the compilation of these applications.
4076           Affected file configure.in.pre and prepare.
4077
4078 Thu Jun 20 13:48:15 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
4079
4080         * Implemented SILC_STRING_BMP and SILC_STRING_UNIVERSAL for
4081           UTF-8 encoding and decoding.  Added also new encodings
4082           SILC_STRING_BMP_LSB and SILC_STRING_UNIVERSAL_LSB.
4083
4084           Added also SILC_STRING_LANGUAGE which is language and charset
4085           specific encoder and decoer for those platforms that support
4086           iconv().  It can convert the UTF-8 to and from the locale
4087           specific character set.
4088
4089           Affected file lib/silcutil/silcstrutil.[ch].
4090
4091         * Added macro SILC_NOT_IMPLEMENTED to lib/silcutil/silclog.h.
4092
4093         * Added function silc_get_command_name to the file
4094           lib/silcutil/silcutil.[ch].
4095
4096         * Improved the server debug output a bit.  Affected files are
4097           in silcd/.
4098
4099 Wed Jun 19 17:46:31 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
4100
4101         * Save the channel passphrase when received succesful JOIN
4102           command reply from router, on normal server.  Otherwise
4103           joinig +a channels from normal server is not possible.
4104           Affected file silcd/command.c.
4105
4106         * Fixed a bug in TOPIC_SET notify handling.  The notifier
4107           may be other than client too, like server or channel.
4108           It expected it to always be only client and ignored the
4109           notify.  Affected file silcd/packet_recieve.c.
4110
4111         * Removed some (unnecessary) debug printing from
4112           lib/silccore/silcid.c and lib/silccore/silcargument.c.
4113
4114         * Do not force CMODE_CHANGE when server is announcing new
4115           channel.
4116
4117           Router announces stuff only after server reannounces channel
4118           after CHANNEL_CHANGE notify.
4119
4120           These fixes optimizes the announcing procedure, and perhaps
4121           fixes some problems too.  Affected file silcd/packet_receive.c.
4122
4123         * Fixed SERVER_SIGNOFF sending to local clients.  It was
4124           totally broken and sent the notify to all local clients,
4125           instead of only to those that was on same channel as the
4126           signing off clients.  Affected file silcd/server_util.c.
4127
4128         * Added -D option to server.  It can be used to give debug
4129           level.  The levels are from 0 - 99, and are predefined for
4130           smooth server debugging.  (see silcd.c for the predefined
4131           levels).  Affected file silcd/server.c.
4132
4133 Wed Jun 19 16:01:51 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
4134
4135         * Fixed a bug in Irssi SILC client to close the connection
4136           properly when disconnecting from server.  Affected file
4137           irssi/src/silc/core/client_ops.c.
4138
4139 Tue Jun 18 17:14:52 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
4140
4141         * When authenticating as founder during JOIN command, check
4142           that the one authenticating becomes the only founder on the
4143           channel.  Affected file silcd/command.c.
4144
4145         * Better checking for founder mode setting when CUMODE_CHANGE
4146           notify is received.  Affected file silcd/packet_receive.c.
4147
4148         * Close all connections when shutting down the server by sending
4149           DISCONNECT packet.  Close all listeners too when shutting
4150           down the server.  Affected file silcd/server.c.
4151
4152         * Handle DISCONNECT packet correctly in client library by
4153           calling the "disconnect" client operation.  Affected file
4154           lib/silcclient/client.c.
4155
4156         * Handle local errors correctly during resuming.  Affected
4157           file lib/silcclient/client.c.
4158
4159 Tue Jun 18 10:26:27 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
4160
4161         * The log file is not dupped internally anymore in
4162           lib/silcutil/silclog.c.  Fixed memory leaks too.
4163
4164         * The scheduler now dispatches all pending timeout tasks
4165           when it is uninitialized with silc_schedule_uninit.
4166           Affected file lib/silcutil/silcschedule.c.
4167
4168 Mon Jun 17 21:30:55 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
4169
4170         * Added --enable-stack-trace option to configure.  Added
4171           memory allocation stack trace support.  Added files
4172           lib/silcutil/stacktrace.[ch].  Affected files are
4173           lib/silcutil/silcmemory.[ch].
4174
4175         * Fixed memory leaks from libraries and server.  Affected
4176           files around the tree.
4177
4178         * Reverted back a fix made to CUMODE which broke it.
4179           Affected file silcd/command.c.
4180
4181 Sun Jun 16 11:49:45 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
4182
4183         * Added SILC_MESSAGE_FLAG_UTF8 to the protocol specs and the
4184           core library, and implemented it.  All textual messages SHOULD
4185           use this flag and the message MUST be UTF-8 encoded.
4186           All text messages sent by Irssi SILC client are now UTF-8
4187           encoded (regardless whether the terminal supports UTF-8 or not).
4188           Affected files are lib/silccore/silcchannel.h,
4189           irssi/src/silc/core/silc-servers.c, silc-channels.c and
4190           client_ops.c.
4191
4192 Sat Jun 15 18:23:39 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
4193
4194         * Added lots of new statistics updating that was missing from
4195           the server and router code.  Affected files in silcd/.
4196
4197         * Sending SIGUSR1 signal to server now dumps the current
4198           server statistics into /tmp directory.  Affected file is
4199           silcd/silcd.c.
4200
4201         * ROBODoc documented the lib/silccrypt/silchash.h.  Improved
4202           the SILC Hash Interface also.  Added new functions
4203           silc_hash_get_name, silc_hash_init, silc_hash_update and
4204           silc_hash_final.  Affected file lib/silccrypt/silchash.c.
4205
4206 Sat Jun 15 12:09:14 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
4207
4208         * Added some better info printing for client during connecting.
4209           Affected file silcd/server_util.c.
4210
4211         * Implemented the SILC_CHANNEL_UMODE_QUIET mode that can be used
4212           to silence a user on a channel.  Affected files are
4213           lib/silcclient/client_channel.c, irssi/src/silc/core/client_ops.c,
4214           irssi/src/fe-common/silc/module-formats.[ch], silcd/command.c
4215           and silcd/packet_receive.c.
4216
4217         * Fixed a fatal bug in handling of malformed command payload.
4218           Affected file silcd/command.c.
4219
4220         * Fixed a double free when announcing channel users to router.
4221           Affected file silcd/server.c.
4222
4223         * After successful authentication to channel founder mode, check
4224           that there isn't anyone else with founder mode on the channel.
4225           The one that authenticated will become founder and anyone
4226           else is demoted.  Affected file silcd/command.c.
4227
4228         * Added error printing of any error that has occurred during
4229           any command in client library.  Affected file is
4230           irssi/src/silc/core/client_ops.c.
4231
4232         * Removed some error printing from the client library and left
4233           it for the application to worry (from the error status it
4234           receives in 'command' client operation.  Affected file is
4235           lib/silcclient/command.c.
4236
4237 Fri Jun 14 22:59:02 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
4238
4239         * Added new status types KEY_AGREEMENT_ALREADY_STARTED and
4240           KEY_AGREEMENT_SELF_DENIED to lib/silcclient/silcclient.h.
4241           Starting key agreement with itself is denied.  Affected file
4242           is lib/silcclient/client_keyagr.c.
4243
4244         * Fixed some error checkings from the SFTP library which caused
4245           misbehaviour.  Affected files are lib/silcsftp/sftp_client.c
4246           and lib/silcsftp/sftp_util.c.
4247
4248         * Added new "debug" and "debug_string" settings to Irssi SILC
4249           client which can be used to print runtime debugging on the
4250           Irssi's screen.  Available when compiled with --enable-debug
4251           option.  Affected file irssi/src/silc/core/silc-core.c.
4252
4253 Tue Jun 11 16:36:02 CEST 2002 Johnny Mnemonic <johnny@themnemonic.org>
4254
4255         * Fixed a missing variadic parameter in a function call that
4256           caused server crash when a non-allowed connection arrived.
4257           Reported by Richard Becker.  Affected file silcd/server.c.
4258
4259 Mon Jun 10 16:29:42 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
4260
4261         * Added WATCH list sending to backup routers from router.
4262           The WATCH command is sent by the router to the backup
4263           router.  Affected file silcd/command.c.
4264
4265         * Mark the backup_router flag for RouterConnection entry
4266           if the backup router stuff is defined in the config file.
4267           Affected file silcd/serverconfig.c.
4268
4269         * Fixed some backup data sending around the code to work better
4270           if the router is standalone router.  Not all places were fixed.
4271           Affected file silcd/packet_receive.c, silcd/packet_send.c,
4272           silcd/server.c.
4273
4274         * Fixed the router connecting when connecting to multiple
4275           routers.  It ignored every other router except the first
4276           one.  Affected file silcd/server.c.
4277
4278 Mon Jun 10 09:28:21 CEST 2002 Pekka Riikonen <priikone@silcnet.org>
4279
4280         * Made the private key generation after expiration optional.
4281           If not created after expiration the old key will re-expire
4282           at a later time (and thus key pair is not necessary to
4283           change).  Affected file irssi/src/silc/core/clientutil.c.
4284
4285 Sun Jun  9 18:58:25 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
4286
4287         * The length arguments in bind() and connect() were wrong
4288           and fixed now to used SIZEOF_SOCKADDR in the
4289           lib/silcutil/unix/silcunixutil.c.
4290
4291 Tue Jun  4 18:36:05 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
4292
4293         * Fixed detach timeout handling to use Client ID and not
4294           the actual client entry which may be freed in the callback.
4295           Affected file silcd/command.c.
4296
4297 Thu May 30 15:53:45 CEST 2002 Pekka Riikonen <priikone@silcnet.org>
4298
4299         * Merged c0ffee's multiple interface support patch.
4300           Affected files in silcd/.
4301
4302 Wed May 29 18:08:15 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
4303
4304         * Cleanup keys properly.  Affected file is
4305           irssi/src/silc/core/clientutil.c.
4306
4307 Tue May 28 20:11:41 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
4308
4309         * Display the user mode on the status bar.  Affected file
4310           irssi/src/silc/core/silc-expandos.c.
4311
4312 Tue May 28 13:56:26 CEST 2002 Pekka Riikonen <priikone@silcnet.org>
4313
4314         * If private message key is not set, but the flag is set in
4315           the packet, ignore the packet since it cannot be decrypted.
4316           Affected file lib/silcclient/client_prvmsg.c.
4317
4318 Thu May 23 12:00:14 CEST 2002 Pekka Riikonen <priikone@silcnet.org>
4319
4320         * When resuming client, remove the old client entry from
4321           the watcher list too.  Affected file silcd/packet_receive.c.
4322
4323         * Do not allow normal server to force founder mode away
4324           from router if the founder mode is already set.  Affected
4325           file silcd/packet_receive.c.
4326
4327         * Remove the client entry with watch notify types with short
4328           timeout, and not directly, so that other notifys can be
4329           retrieved too.  Affected file lib/silcclient/client_notify.c.
4330
4331         * Display notification about data messages that cannot be
4332           displayed.  Affected files irssi/src/silc/core/client_ops.c,
4333           irssi/src/fe-common/silc/module-formats.[ch].
4334
4335 Sun May 19 18:59:00 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
4336
4337         * Fixed the CHANNEL_CHANGE notify handling in client libary
4338           to not use freed memory.  Affected file is
4339           lib/silcclient/client_notify.c.
4340
4341         * Fixed CUMODE_CHANGE notify handling in server.  Affected
4342           file silcd/packet_receive.c.
4343
4344         * Fixed USERS command to support empty channels.  Affected
4345           file silcd/command.c.
4346
4347 Sat May 18 11:35:19 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
4348
4349         * Allow multiple identical pending commands to be registered
4350           in client library.  Affected file is lib/silcclient/command.c.
4351
4352         * Call the completion for resolving client information only
4353           after all resolvers has finished.  This fixes a crash in
4354           the client.  Added support for checking when the resolvers
4355           are finished.  Affected file is lib/silcclient/idlist.c.
4356
4357         * Wait by default 3 seconds before reconnecting to the server
4358           after being disconnected.  Makes the /detach command a bit
4359           more usable.
4360
4361 Fri May 17 17:23:45 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
4362
4363         * Check the watcher list before sending signoff notifys
4364           when closing client connection.  Affected file is
4365           silcd/server.c.
4366
4367         * Added better CMODE command rights checking.  Affected file
4368           silcd/server_util.c.
4369
4370 Fri May 17 08:33:41 CEST 2002 Pekka Riikonen <priikone@silcnet.org>
4371
4372         * Fixed watcher list checking during server signoff.  It
4373           crashed the server.  Affected file silcd/server_util.c.
4374
4375         * The JOIN command reply returns now the founder's public
4376           key.  Affected file is silcd/command.c.
4377
4378         * Announce the channel mode, and the mode properties with
4379           CMODE_CHANGE notify.  Affected file silcd/server.c.
4380
4381         * Mark new channels by default disabled, untill at least
4382           one user joins the channel.  Affected file is
4383           silcd/packet_receive.c.
4384
4385 Thu May 16 13:05:13 CEST 2002 Pekka Riikonen <priikone@silcnet.org>
4386
4387         * The nickname argument to watch notify can be optional.
4388           Fixes a crash in server.  Affected file silcd/packet_send.c.
4389
4390         * Remove the client entry from cache if the WATCH notify type
4391           is KILLED, SERVER_SIGNOFF or SIGNOFF.  Affected file is
4392           lib/silcclient/client_notify.c.
4393
4394         * Check the watcher list before and after changing nickname
4395           when the NICK_CHANGE notify is received.  Affected file is
4396           silcd/idlist.c.
4397
4398         * Fixed a crash in OPER and SILCOPER command sending.  Empty
4399           passphrase caused the crash.  Affected file is
4400           lib/silcclient/command.c.
4401
4402 Wed May 15 19:01:42 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
4403
4404         * Merged with Irssi CVS for Irssi SILC client.
4405
4406 Tue May 14 19:37:48 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
4407
4408         * Completed the protocol specifications.
4409
4410 Tue May  7 20:41:58 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
4411
4412         * Merged with Irssi CVS for Irssi SILC client.
4413
4414 Tue May  7 11:07:16 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
4415
4416         * Added the founder's public key delivery to the
4417           CUMODE_CHANGE notify type as well.  Updated the protocol
4418           specs and the code.  Affected files are silcd/packet_send.[ch],
4419           silcd/packet_receive.c and silcd/command.c.
4420
4421 Mon May  6 19:46:12 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
4422
4423         * Added silc_pkcs_public_key_copy function into the
4424           lib/silccrypt/silcpkcs.[ch].
4425
4426         * Remove the `iv' from the SilcChannelEntry since we can
4427           live without it.  Affected files are silcd/idlist.h and
4428           silcd/packet_receive.c.
4429
4430         * Added support for sending the founder's public key in
4431           the CMODE_CHANGE notify packet in the server.  Affected
4432           files are silcd/packet_send.[ch], silcd/packet_receive.c,
4433           silcd/command.c and silcd/server.c.
4434
4435         * Changed the FOUNDER_AUTH authentication to use only
4436           public key authentication as defined by new protocol
4437           specs.  Passphrase authentication with that mode cannot
4438           be used anymore.  It is now possible to reclaim founder
4439           mode from any server in the network.  Affected files are
4440           silcd/command.c, silcd/idlist.h and silcd/command_reply.c.
4441
4442         * Added permanent channels support by making the channel
4443           permanent when FOUNDER_AUTH mode is set on the channel.
4444           The channel will not be destroyed even if channel is empty
4445           when that mode is set.  Protocol TODO #17.  Affected
4446           files are silcd/server.[ch], server_util.[ch],
4447           silcd/command.c, silcd/packet_receive.c and
4448           lib/silcclient/command.c.
4449
4450 Fri May  3 18:36:51 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
4451
4452         * Added reference counter to the command reply context in
4453           the client library.  Affected files are
4454           lib/silcclient/command_reply.[ch].
4455
4456 Fri May  3 11:37:10 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
4457
4458         * Fixed rekey protocol with PFS in the client library.
4459           Affected file is lib/silcclient/protocol.c.
4460
4461         * Added support for list of errors in client library
4462           command reply handling.  Affected file is
4463           lib/silcclient/command_reply.c.
4464
4465         * Defined that the WHOIS and IDENTIFY commands can send
4466           list of errors.  Updated the protocol specs.  Protocol
4467           TODO #2.
4468
4469         * Added support for sending list of errors to WHOIS and
4470           IDENTIFY commands in server.  Added support for receiving
4471           list of errors in server.  Affected files are
4472           silcd/command.c and silcd/command_reply.c.
4473
4474         * Fixed client info resolving on LEAVE command in client
4475           library to not crash.  Affected file is
4476           lib/silcclient/client_notify.c.
4477
4478 Thu May  2 08:45:11 CEST 2002 Pekka Riikonen <priikone@silcnet.org>
4479
4480         * Defined that the NICK command replies with thew changed
4481           nickname too, to make the nickname changing simpler at
4482           the client's end.  Updated protocol specs and the code
4483           in client and server.  Affected files are
4484           silcd/command.c, lib/silcclient/command_reply.c and
4485           lib/silcclient/command.c.
4486
4487 Mon Apr 29 20:10:42 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
4488
4489         * Added `Compressed' packet flag to indicate that the packet
4490           payload is compressed by the sender.  Updated the protocol
4491           specs and the core library.  The compression still is not
4492           implemented in the sources.  Affected file is
4493           lib/silccore/silcpacket.h.
4494
4495 Mon Apr 29 09:48:12 CEST 2002  Pekka Riikonen <priikone@silcnet.org>
4496
4497         * Remove pending command callbacks also if the connection
4498           to the server is destroyed.  Affected file is
4499           lib/silcclient/client.c.
4500
4501 Sat Apr 27 19:52:32 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
4502
4503         * Added new QUIET channel user mode that can be used to
4504           quiet a user in a channel.  Updated the protocol specs but
4505           it wasn't implemented yet.  Protocol TODO #27.  Affected
4506           file is lib/silccore/silcmode.h.
4507
4508 Mon Apr 22 09:09:44 CEST 2002  Pekka Riikonen <priikone@silcnet.org>
4509
4510         * Added BLOCK_INVITE user mode to be able to block incoming
4511           invite notifications.  Protoocol TODO #26.  Affected files
4512           are lib/silccore/silcmode.h, lib/silcclient/command.c and
4513           silcd/command.c.
4514
4515         * SILC Publickey fields MUST be UTF-8 encoded now.  Updated
4516           the protocol specs and the code.  Affected file is
4517           lib/silccrypt/silcpkcs.c.
4518
4519 Sun Apr 21 19:44:38 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
4520
4521         * Disconnect Payload includes now the status type.  Updated
4522           the protocol specs and the code.  Protocol TODO #25.
4523           Affected files are silcd/server.c, lib/silcclient/client.c.
4524
4525         * Added NOT_AUTHENTICATED, BAD_SERVER_ID, INCOMPLETE_INFORMATION,
4526           KEY_EXCHANGE_FAILED and BAD_VERSION error status types.
4527           Moved the silc_client_command_status_messages table to the
4528           lib/silcutil/silcutil.c and added new funtion
4529           silc_get_status_message, which deprecates function
4530           silc_client_status_message.  Affected files are
4531           lib/silccore/silcstatus.h, lib/silcclient/command_reply.[ch],
4532           lib/silcutil/silcutil.[ch].
4533
4534 Fri Apr 19 17:35:15 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
4535
4536         * Defined that the nickname hash in Client ID MUST be from
4537           lowercase nickname.  This effectively changes nicknames in
4538           SILC to case-insensitive.  Updated the protocol specs and
4539           the code.  Affected files are lib/silcutil/silcutil.[ch],
4540           silcd/serverid.c, and silcd/idlist.c.
4541
4542         * Added new channel user modes BLOCK_MESSAGES_USERS and
4543           BLOCK_MESSAGES_ROBOTS.  Updated the protocol specs and the
4544           code.  Affected files are lib/silccore/silcmode.h,
4545           lib/silcclient/command.c, and silcd/packet_send.c.
4546
4547         * Added new error status ERR_RESOURCE_LIMIT.  Updated protocol
4548           specs and code.  Affected file lib/silccore/silcstatus.h.
4549
4550         * Added support for watch list.  It is possible to add nicknames
4551           to be watched, and when they come to network, leave network
4552           or user mode changes the watcher will be notified of this
4553           change.  Added SILC_COMMAND_WATCH command, added new
4554           notify type SILC_NOTIFY_TYPE_WATCH to deliver the watch
4555           notifications.  Updated the protocol specs and implemented
4556           this to library, client and server.  Protocol TODO #21.
4557           Affected files are lib/silccore/silccomand.h,
4558           lib/silccore/silcnotify.h, lib/silcclient/command[_reply].[ch],
4559           silcd/command[_reply].[ch], lib/silcclient/client_notify.c,
4560           silcd/packet_send.[ch], silcd/packet_receive.c, and
4561           irssi/src/silc/core/client_ops.c.
4562
4563         * Added user mode SILC_UMODE_REJECT_WATCHING to reject
4564           somebody watching you.  Updated the protocol specs and the
4565           code.  Affected files are lib/silccore/silcmode.h, and
4566           lib/silcclient/command.c.
4567
4568 Fri Apr 19 09:02:20 CEST 2002  Pekka Riikonen <priikone@silcnet.org>
4569
4570         * Added service support to SILC protocol.  Added new command
4571           SILC_COMMAND_SERVICE.  Updated the protocol specs and the
4572           core library.  Services are not implemented in server or
4573           client for now.  Protocol TODO #20.  Affected files are
4574           lib/silccore/silcstatus.h, lib/silccore/silccommand.h.
4575
4576         * Added SilcStatus argument to `command' client operation
4577           to return the error status when command sending fails
4578           locally.  Changed all command in client library to return
4579           correct command status.  Affected files are
4580           lib/silcclient/command.c, lib/silcclient/silcclient.h and
4581           irssi/src/silc/core/client_ops.c.
4582
4583 Thu Apr 18 14:09:51 CEST 2002  Pekka Riikonen <priikone@silcnet.org>
4584
4585         * Added silc_mime_parse function to parse MIME headers.
4586           Affected files are lib/silcutil/silcstruti.[ch].
4587
4588         * Added MIME header parsing in Irssi SILC Client.  It displays
4589           all textual MIME objects, others it ignores.  Affected file
4590           is irssi/src/silc/core/clien_ops.c.
4591
4592 Wed Apr 17 22:07:59 CEST 2002  Johnny Mnemonic <johnny@themnemonic.org>
4593
4594         * Fixed a bug in the pid writing function, which couldn't be
4595           written in a root-owned directory.
4596
4597 Tue Apr 16 09:34:40 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
4598
4599         * Defined that channel message to unknown Channel ID must
4600           cause SILC_NOTIFY_TYPE_ERROR notify message to the sender.
4601           Updated the protocol specs and the code in server.  The
4602           affected file is silcd/packet_receive.c.
4603
4604 Mon Apr 15 19:57:57 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
4605
4606         * Added new notify type SILC_NOTIFY_TYPE_ERROR and specified
4607           that it is used to send error notifys if error occurs during
4608           some SILC packet processing, except commands.  The error
4609           types are same as for command reply types.  Defined that
4610           if private message is sent to unknown Client ID the error
4611           is sent in SILC_NOTIFY_TYPE_ERROR instead of command reply.
4612           Updated the protocol specs and code.  Affected files are
4613           lib/silccore/silcnotify.h, added lib/silccore/silcstatus.h,
4614           lib/silcclient/client_notify.c, silcd/packet_receive.c,
4615           and irssi/src/silc/core/client_ops.c.  Renamed the
4616           SilcCommandStatus to SilcStatus.
4617
4618         * Defined the use of extra WHOIS attributes in WHOIS command.
4619           The <Requested Attributes> (defined in a separate document)
4620           can be used to request additional information about user
4621           not returned by standard WHOIS command.  Defined that server
4622           can send WHOIS command directly to client.  Client provides
4623           the requested attributes to the server.  Updated the protocol
4624           specs.  Protocol TODO #4.  Implementation is not done yet
4625           (Protocol TODO #24).
4626
4627         * Renamed function silc_client_command_status_message to
4628           silc_client_status_message.  Affected files are
4629           lib/silcclient/command_reply.[ch].
4630
4631 Sun Apr 14 21:13:42 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
4632
4633         * Changed the WHOIS, IDENTIFY and WHOWAS count arguments to
4634           32 bit integers.  Updated the protcol specs and the code.
4635           Affected files are silcd/command.c and
4636           lib/silcclient/command.c.
4637
4638 Sun Apr 14 19:49:02 CEST 2002  Johnny Mnemonic <johnny@themnemonic.org>
4639
4640         * Fixed a bug in library where sending a bogus authentication
4641           payload would lead to a crash.  Affected file is
4642           lib/silccore/silcauth.c.
4643
4644 Sat Apr 13 13:09:24 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
4645
4646         * Added detach_disabled and detach_timeout server config
4647           options to the server.  Affected files silcd/serverconfig.[ch],
4648           silcd/command.c and silcd/packet_receive.c.
4649
4650 Fri Apr 12 20:09:08 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
4651
4652         * Added resolve_cmd_ident field to the SilcClientEntry structure
4653           too so that if the entry is for example being resolved so
4654           another command may attach to the same pending command reply
4655           without requiring to resolve the same entry again.  Added
4656           support for adding multiple pending commands for one
4657           command idenfier.  Affected files lib/silcclient/command.[ch],
4658           lib/silcclient/command_reply.[ch], lib/silcclient/idlist.h.
4659
4660 Fri Apr 12 10:17:51 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
4661
4662         * Defined that server receives WHOIS command reply for private
4663           and secret channels too.  Updated protocol specs and the
4664           code in server.  Affected file silcd/command.c.
4665
4666         * Defined <channel user mode list> argument to WHOIS command
4667           reply for returning user modes on the channels.  The
4668           channel list now doesn't include the user mode anymore but the
4669           actual channel mode.  Updated protocol specs and the code in
4670           client and server.  Affected files are silcd/command_reply.c,
4671           silcd/command.c, silcd/server.c, irssi/src/silc/core/client_ops.c,
4672           and lib/silcclient/command_reply.c.
4673
4674         * Save the channels list in WHOIS command reply in normal server
4675           so that WHOIS always shows joined channels also in normal
4676           server and not just on router.  Affected file is
4677           silcd/command_reply.c.
4678
4679 Thu Apr 11 22:29:33 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
4680
4681         * Defined that server receives USERS command reply for private
4682           and secret channels too.  Updated protocol specs and the
4683           code in server.  Affected file silcd/command.c.
4684
4685 Thu Apr 11 16:32:08 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
4686
4687         * Changed the UMODE's mode mask argument to be optional.  If
4688           not provided then the command merely returns the current mode
4689           mask to the client.  Updated protocol specs and the server.
4690           Affected file is silcd/command.c.
4691
4692         * Added SILC session detachment/resuming support.  It is possible
4693           to detach by closing the network connection and then re-connect
4694           and resume to the old client session.  Added DETACHED user
4695           mode that server will set for detached client.  Added new
4696           packet RESUME_CLIENT which is used to perform the resuming
4697           process.  Added DETACH command.  Updated the protocol specs,
4698           core library, client and server.  Protocol TODO #22.  Very
4699           many affected files around the tree.
4700
4701 Wed Apr 10 16:32:01 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
4702
4703         * Changed the CMODE's mode mask argument to be optional.  If
4704           not provided then the command merely returns the current mode
4705           mask to the client.  Updated protocol specs and the server.
4706           Affected file is silcd/command.c.
4707
4708         * Changed the Killer's Client ID in KILLED notify to be just
4709           any ID payload since router server is allowed to kill as well.
4710           Updated protocol specs, client libary and server.  Affected
4711           files are lib/silcclient/client_notify.c, silcd/packet_receive.c,
4712           and irssi/src/silc/core/client_ops.c.
4713
4714 Tue Apr  9 17:15:42 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
4715
4716         * Added new user modes ANONYMOUS for special anonymous servers
4717           that may set the mode for client, and BLOCK_PRIVMSG which
4718           client may set to block incoming private messages unless the
4719           Private Message Key flag is set (using private keys to protect
4720           private messages).  Updated protocol specs and code in client
4721           and server and core library.  Protocol TODO #23.  Affected
4722           files are lib/silccore/silcmode.h, silcd/server.[ch],
4723           irssi/src/silc/core/client_ops.c, silcd/packet_receive.c,
4724           irssi/docs/help/in/umode.in, lib/silcclient/command.c.
4725
4726         * Added new channel user mode BLOCK_MESSAGES which the client
4727           may set to itself to tell server not send channel messages.
4728           Other packets such as channel key packets are still sent.
4729           Protocol TODO #23.  Updated the protocol specs, client and
4730           server.  Affected files are lib/silccore/silcmode.h,
4731           irssi/docs/help/in/cumode.in, lib/silcclient/command.c,
4732           lib/silcutil/silcutil.c, silcd/command.c, and
4733           silcd/packet_send.c.
4734
4735 Mon Apr  8 23:57:32 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
4736
4737         * Redefined the Status Payload to include now two 8 bit fields,
4738           instead of one 16 bit field.  This now makes it possible to
4739           send list of errors.  Updated the protocol specs and the code
4740           in core library, client library and server.  Protocol TODO #1.
4741           Affected files are lib/silccore/silccommand.[ch],
4742           lib/silcclient/command_reply.[ch], silcd/command.c,
4743           silcd/command_reply.c and silcd/packet_receive.[ch].
4744
4745 Mon Apr  8 19:57:40 CEST 2002  Johnny Mnemonic <johnny@themnemonic.org>
4746
4747         * Added config parse status SILC_CONFIG_EPRINTLINE, this status
4748           must be handled by the application and should tell the application
4749           that an error message was already printed, and it should print the
4750           config coords (line, filename, ...).  Affected files are
4751           silcd/serverconfig.c, lib/silcutil/silcconfig.[ch].
4752
4753         * Added local macro SILC_SERVER_CONFIG_ALLOCTMP to make the
4754           server config parsing code more readable.
4755
4756           Fixed a bug in the fetch_logging() config callback.
4757
4758           Affected files is silcd/serverconfig.c.
4759
4760         * Drop root privileges when started in foreground.  Don't drop them
4761           if debugging also.  Affected file is silcd/silcd.c.
4762
4763 Mon Apr  8 17:00:41 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
4764
4765         * Added more IM-like features by introducing new user modes
4766           for setting various presence information.  Added new modes:
4767           INDISPOSED, BUSY, PAGE, HYPER and ROBOT.  Updated protocol
4768           specs and code.  Protocol TODO #19. Affected files are
4769           lib/silccore/silcmode.h, irssi/src/silc/core/client_ops.c,
4770           irssi/docs/help/in/umode.in and lib/silcclient/command.c.
4771
4772 Sun Apr  7 17:07:59 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
4773
4774         * Added STATS command to the protocol after all, to return
4775           various statistical information about the network.  It can
4776           be used by clients to retrieve statistical information, and
4777           servers may use it to to fetch cell and network wide
4778           statistics from router.  Updated the protocol specs and
4779           implemented it to the server.  Protocol TODO #16.
4780           Affected files are lib/silccore/silccommand, silcd/command.[ch],
4781           silcd/command_reply.[ch].
4782
4783 Sat Apr  6 17:08:58 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
4784
4785         * The LIST command reply in client libary now adds new channel
4786           entry if the returned channel doesn't exist yet in cache,
4787           and returns the channel entry to the application in the
4788           command_reply client operation.  Affected file is
4789           lib/silcclient/command_reply.c.
4790
4791         * Changed the channel message payload's MAC generation to
4792           include the IV in the MAC as well.  This way all relevant
4793           parts of the channel message payload are authenticated also
4794           with the channel message MAC (and not only by packet MAC).
4795           Causes incompatibility with 1.0 protocol.  Protocol TODO #7.
4796           Affected file is lib/silccore/silcchannel.c.
4797
4798         * Fixed the SKE to save the remote version, since the
4799           silc_ske_parse_version mistakenly checked wrong version,
4800           after it replaced the start payload.  Affected files are
4801           lib/silcske/silcske.[ch].
4802
4803 Fri Apr  5 16:03:03 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
4804
4805         * Splitted lib/silcutil/silcutil.h into silcstrutil.h for
4806           string utility functions.  Added there also new functions
4807           silc_utf8_[encode/decode/valid] for UTF-8 string encoding.
4808           Affected files lib/silcutil/silcstrutil.[ch].
4809
4810         * Renamed silc_*_pem functions to silc_pem_* functions.  Affected
4811           files are lib/silcutil/silcstrutil.[ch].
4812
4813         * Defined that the security property fields in SKE SHOULD be
4814           UTF-8 encoded, defined that version string MUST be US-ASCII
4815           encoded, defined that passphrases sent in connection
4816           authentication protocol MUST be UTF-8 encoded.  Implemented
4817           these to the client and server.  Defined also that other
4818           passphrases sent in the protocol MUST be UTF-8 encoded.
4819           Affected files are lib/silcske/silcske.c,
4820           lib/silcclient/protocol.c, silcd/protocol.c,
4821           silcd/serverconfig.c, and lib/silccore/silcauth.c.
4822
4823         * Changed the silc_client_close_connection interface to not
4824           need the SilcSocketConnection which should not be visible
4825           to application.  Affected files are lib/silcclient/client.c
4826           and lib/silcclient/silcclient.h.
4827
4828         * Rewrote the text for Private Message Key Payload in the
4829           protocol specification.  Protocol TODO #11.
4830
4831 Wed Apr  3 16:24:51 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
4832
4833         * Upgraded the protocol version to 1.1, updated protocol specs
4834           and software.
4835
4836         * Added the nickname as new argument to NICK_CHANGE notify and
4837           added it to protocol specs and implemented it to client and
4838           server.  Protocol TODO #3.  Affected files are silcd/idlist.[ch],
4839           silcd/command.c, silcd/packet_receive.c, packet_send.[ch], and
4840           lib/silcclient/client_notify.c.
4841
4842         * Added the killer's client ID to the KILLED notify and added
4843           it to protocol specs and implemented it to client and server.
4844           Protocol TODO #13.  Affected files are silcd/command.c,
4845           silcd/packet_receive.c, packet_send.[ch],
4846           lib/silcclient/client_notify.c, irssi/src/silc/core/client_ops.c.
4847           The killer's client entry is now returned to application in
4848           the `notify' client operation.
4849
4850         * Fixed the Max Argument fields that had too large value set
4851           in the protocol specs.  Protocol TODO #14.
4852
4853         * Added the LEAVE command reply to return the ID of parted
4854           channel.  Updated protocol specs and implemented it to the
4855           client and server.  Protocol TODO #15.  Affected files are
4856           silcd/command.c, lib/silcclient/command_reply.c.  The channel
4857           entry is now returned to application in the `command_reply'
4858           client operation.
4859
4860         * Rewrote the version SKE version checking in client libary
4861           and in server to use the silc_parse_version_string.  Affected
4862           files are lib/silcclient/protocol.c, silcd/protocol.c.
4863
4864         * Added SILC_STATUS_ERR_NO_CHANNEL_FOPRIV error status to few
4865           commands that was missing it, and updated protocol specs and
4866           the server implementation.  Protocol TODO #10.  The affected
4867           file is silcd/command.c.
4868
4869         * Defined new message flags SILC_MESSAGE_FLAG_REPLY to be
4870           generic reply to a generic request (REQUEST flag), and
4871           SILC_MESSAGE_FLAG_DATA to send any kind of data in a generic
4872           way.  A draft-riikonen-silc-flags-payloads-00.txt is written
4873           to define the payload for DATA flag.  Added the flags to
4874           the implementation.  Protocol TODO #9.  Affected file is
4875           lib/silccore/silcchannel.h.
4876
4877           Changed the client library to return the message length
4878           to application as well in the channel_message and private_message
4879           client operations.  Affected files are
4880           lib/silcclient/client_prvmsg, lib/silcclient/client_channel.c,
4881           lib/silcclient/silcclient.h, irssi/src/silc/core/client_ops.c,
4882           and lib/silcclient/client_ops_example.c.
4883
4884         * Added two new channel modes: SILC_CMODE_SILENCE_USERS
4885           and SILC_CMODE_SILENCE_OPERS which can be used to moderate
4886           the channel.  Updated protocol specs and impelemented this
4887           to client and server.  Protocol TODO #6.  Affected files are
4888           silcd/packet_receive.c, server_util.c, lib/silcclient/command.c,
4889           lib/silcclient/client_channel.c, lib/silccore/silcmode.h.
4890
4891           Added new options m and M to CMODE command in Irssi SILC
4892           client to set these modes.
4893
4894         * Deprecated all administrative commands from SILC protocol
4895           since they are highly implementation specific commands.
4896           Updated protocol specs.  Moved the old commands in
4897           implementations to private range of command types.  Affected
4898           files are silcd/command.c, lib/silcclient/command.c and
4899           lib/silcclient/command_reply.c.  Protocol TODO #8.
4900
4901         * Fixed a bug in server where sending unknown command crashes
4902           the server.  Affected file silcd/command.c.
4903
4904 Wed Apr  3 09:57:47 CEST 2002  Pekka Riikonen <priikone@silcnet.org>
4905
4906         * Added SILC_PROTOCOLVERSION macro to check protocol version
4907           of a socket connection.  The affected file is
4908           lib/silcutil/silcsockconn.h.
4909
4910         * Added better error logging in rekey protocol.  Affected file
4911           silcd/protocol.c.
4912
4913         * Do not check public key types in SKE during rekey.  Affected
4914           file lib/silcske/payload.c.
4915
4916         * Fixed the rekey protocol with PFS, which was totally broken.
4917           Affected file silcd/protocol.c.
4918
4919 Tue Apr  2 14:55:06 CEST 2002  Pekka Riikonen <priikone@silcnet.org>
4920
4921         * Some client implementations quit network by doing first LEAVE
4922           and then immediately SIGNOFF (like Bombyx).  We now do check
4923           after a short time after LEAVE notify and check whether the
4924           client is still valid after LEAVE, and if not we remove it from
4925           cache.  Affected file is lib/silcclient/client_notify.c.
4926
4927 Tue Apr  2 13:39:04 CEST 2002  Johnny Mnemonic <johnny@themnemonic.org>
4928
4929         * Merged version 1.1.4 of zlib. Even if it not currently in use,
4930           it's good not to have security holes here.
4931
4932         * Fixed a negative refcount situtuation for the config context.
4933           Affected file is silcd/serverconfig.c.
4934
4935 Mon Apr  1 20:15:10 CEST 2002  Johnny Mnemonic <johnny@themnemonic.org>
4936
4937         * ROBOdoc documented lib/silcutil/silcutil.h.
4938
4939 Sat Mar 30 21:06:45 EET 2002  Pekka Riikonen <priikone@silcnet.org>
4940
4941         * Optimized even more the SilcPacketContext structure.  Now
4942           totally saved 16 bytes of memory per context after optimization.
4943           Affected files are lib/silccore/silcpacket.[ch].
4944
4945         * Made strict checks for valid SILC IDs.  Affected file is
4946           lib/silccore/silcid.c.
4947
4948 Sat Mar 30 18:15:55 EET 2002  Pekka Riikonen <priikone@silcnet.org>
4949
4950         * Changed the object argument for silc_cipher_register,
4951           silc_hash_register, silc_hmac_register and silc_pkcs_register
4952           to const.  Affected files are lib/silccrypt/silccipher.[ch],
4953           silchash.[ch], silchmac.[ch] and silcpkcs.[ch].
4954
4955         * Changed the silc_get_username and silc_get_real_name to
4956           never fail.  Affected file lib/silcutil/unix/silcunixutil.c.
4957
4958         * Fixed the Irssi SILC Client to use the silc_get_username and
4959           silc_get_real_name insted of glib routines since the glib
4960           routines only corrupt stack.  Fixes the Irssi SILC to work in
4961           Cygwin.  Affected file irssi/src/silc/core/silc-core.c.
4962
4963         * Fixed the Irssi to not use g_get_home_dir since it crashes
4964           or returns garbage on cygwin and corrupts stack.  Added function
4965           get_home_dir to Irssi routines.  Affected files are
4966           irssi/src/core/misc.[ch] and irssi/src/core/core.c.
4967
4968 Fri Mar 29 21:55:41 EET 2002  Pekka Riikonen <priikone@silcnet.org>
4969
4970         * Made some structure optimizations.  SFTP memory FS MemFSEntry
4971           entry structure.  Optimized SilcTask structure.  Optimized
4972           SilcPacketContext structure.
4973
4974           Affected files lib/silcsftp/sftp_fs_memory.c,
4975           lib/silcutil/silcschedule.c, lib/silccore/silcpacket.h.
4976
4977 Fri Mar 29 10:41:07 EET 2002  Pekka Riikonen <priikone@silcnet.org>
4978
4979         * And yet again reverted back the config thing since Johnny
4980           screwed it up.  Affected file silcd/serverconfig.[ch], server.c,
4981           and silcd.c.
4982
4983         * Fixed memory leaks from config object.  Affected files are
4984           silcd/serverconfig.[ch].
4985
4986         * Added support for adding new connections to the server in rehash.
4987           After rehash they take effect.
4988
4989           Added support for changing the maximum allowed connections in
4990           rehash.  The number can grow but going smaller is not supported.
4991
4992           Added function silc_server_num_sockets_by_remote to the
4993           silcd/server_util.[ch].
4994
4995           Affected files are silcd/server.c, and silcd/serverconfig.[ch].
4996
4997 Fri Mar 29 03:26:12 CET 2002 Johnny Mnemonic <johnny@themnemonic.org>
4998
4999         * Added preliminary checking during config parsing for a valid
5000           public/private key and removed further checks in the code.
5001           Affected files are silcd/serverconfig.[ch], server.c.
5002
5003         * Moved functions silc_server_drop() and silc_server_daemonise()
5004           from server.c to silcd.c since they are stricly related to
5005           the application activity.
5006
5007         * Reverted a small part of the automatic ref/unref since
5008           it caused a double unref in some situations.  Affected
5009           files are silcd/silcd.[ch], server.c, serverconfig.c.
5010
5011         * Added some .cvsignore files in the lib directory.
5012
5013 Thu Mar 28 22:51:15 EET 2002  Pekka Riikonen <priikone@silcnet.org>
5014
5015         * Fixed silc_net_gethostbyaddr to correctly resolve by
5016           address.  Affected file lib/silcutil/silcnet.c.
5017
5018         * Fixed the notify relaying to client.  The HMAC to be used
5019           with relayed packets ws wrong and caused decryption failure
5020           at the client end.  Affected file is silcd/packet_receive.c.
5021
5022 Thu Mar 28 19:02:05 EET 2002  Pekka Riikonen <priikone@silcnet.org>
5023
5024         * Created new branch silc_protocol_1_0_branch.
5025
5026         * Reverted the silc_log_quick change in lib/silcutil/silclog.c.
5027
5028         * Changed the silc_server_config_* routines to be SilcServer
5029           independent.  They are now officially application specific code
5030           and not part of generic server implementation.  Affected files
5031           are silcd/serverconfig.[ch], silcd/silcd.c, silcd/server.c.
5032
5033 Thu Mar 28 17:01:43 EET 2002  Pekka Riikonen <priikone@silcnet.org>
5034
5035         * Added automatic referencing of config context in the
5036           silc_server_config_alloc, and automatic unreferencing in the
5037           silc_server_config_destroy.  Affected files are
5038           silcd/serverconfig.[ch], silcd/silcd.c.
5039
5040         * Fixed the silc_log_quick handling in the logging routines.
5041           It didn't log quickly when it was TRUE.  Affected file is
5042           lib/silcutil/silclog.c.  Also the flush delay was set even
5043           if it was 0 in config file.  Affected file is
5044           silcd/serverconfig.c.
5045
5046         * Added support for changing key pair of the server in rehash.
5047           Affected file silcd/server.c.
5048
5049 Thu Mar 28 12:17:21 CET 2002  Pekka Riikonen <priikone@silcnet.org>
5050
5051         * Fixed the TOPIC_SET notify to not cras.  It changed the topic
5052           too early, before getting the channel entry.  Affected file
5053           is silcd/packet_receive.c.
5054
5055 Thu Mar 28 09:58:16 CET 2002  Johnny Mnemonic <johnny@themnemonic.org>
5056
5057         * Added functions silc_server_config_[ref/unref], these are used
5058           to prevent that the config object is destroyed.
5059
5060           No longer directly affect global variables silc_log_quick and
5061           silc_log_delay, they are first cached inside the config object
5062           and then applied with silc_server_config_setlogfiles().
5063
5064           silc_server_config_set_defaults() is now internal to
5065           serverconfig.c, there are no reasons to show this internal stuff
5066           to the server.
5067
5068           Affected files are silcd/serverconfig.[ch].
5069
5070         * Added macro SILC_SERVER_LOG_STDERR(), this should replace most
5071           fprintf's to stderr, since some code may be executed again after
5072           the server went into the background.  Affected files are
5073           silcd/server.[ch].
5074
5075         * Added rehash support. Added function silc_server_rehash() that
5076           will perform all the basic tasks of the rehashing procedure.
5077
5078         * Added command line option `-x, --hexdump'. This will enable the
5079           SILC_LOG_HEXDUMP calls that are no longer enabled with `--debug'.
5080           The option `--hexdump' implies `--debug'.
5081
5082         * Fixed a bad bug in the logging APIs (silcutil library) where
5083           the application would crash after calling silc_log_reset_all().
5084
5085 Wed Mar 27 19:43:16 EET 2002  Pekka Riikonen <priikone@silcnet.org>
5086
5087         * Fixed the KICKED notify handling in client library to
5088           correctly remove the channel and all entries from the
5089           channel when I was kicked.  This bug crashed the client.
5090
5091           Fixed yet another but in KICKED notify handling to remove
5092           the kicked client correctly from the channel.
5093
5094           Affected file is lib/silcclient/client_notify.c.
5095
5096         * Fixed a minor bug in looking up correct client entry
5097           in KICKED notify in server.  Affected file is
5098           silcd/packet_receive.c.
5099
5100         * Fixed the lib/silcmath/Makefile.am to include the MPI and GMP
5101           sources correctly to distribution.  Fixes --with-gmp option.
5102
5103         * Removed the manual rehashing from ID Cache, and changed it
5104           to use the SILC Hash Table's auto rehash feature.  Affected
5105           file is lib/silccore/silcidcache.c.
5106
5107 Wed Mar 27 00:07:11 EET 2002  Pekka Riikonen <priikone@silcnet.org>
5108
5109         * Fixed a bug in the silc_client_nickname_format function that
5110           handles the multiple same nickname formatting.  Two clients
5111           with same nickname caused problems after the first one left
5112           and rejoined.  It didn't format the nickname correctly.
5113           Affected file is lib/silcclient/idlist.c.
5114
5115 Tue Mar 26 19:33:03 CET 2002  Pekka Riikonen <priikone@silcnet.org>
5116
5117         * Don't change the topic if olod topic is same as new one.
5118           Affected file is silcd/packet_receive.c.
5119
5120 Mon Mar 25 21:11:35 EET 2002  Pekka Riikonen <priikone@silcnet.org>
5121
5122         * Added cross-reference support to the SILC Documentation
5123           generator.  All types across all HTML files are now cross-
5124           referenced.  Affected files util/robodoc/generator.c and
5125           scripts/silcdoc/silcdoc.
5126
5127         * Added file lib/silcutil/silctypes.h to include all the
5128           arithmetic type definitions and some macros.  Removed
5129           includes/bitmove.h and moved macros to silctypes.h.
5130
5131 Mon Mar 25 17:19:46 EET 2002  Pekka Riikonen <priikone@silcnet.org>
5132
5133         * Merged bugfixes for Irssi SILC client from irssi.org CVS.
5134
5135 Sun Mar 24 11:21:04 EET 2002  Pekka Riikonen <priikone@silcnet.org>
5136
5137         * Added `type' argument to silc_id_payload_parse_id function which
5138           now returns the type of the ID to the sent pointer.  Affected
5139           file is lib/silccore/silcid.[ch].
5140
5141         * Added check for CMODE_CHANGE notify type that mode change is
5142           allowed by the sender.  Affected file silcd/packet_receive.c.
5143
5144         * Added check for CUMODE_CHANGE notify type that mode change is
5145           allowed by the sender.  Affected file silcd/packet_receive.c.
5146           Added the ID type as CUMODE_CHANGE notify type as argument
5147           to the `notify' client operation.  Affected files are
5148           lib/silcclient/client_notify.c, irssi/src/silc/core/client_ops.c.
5149
5150         * Added function silc_client_add_server to the client library.
5151           Added support for resolving also channel and server info when
5152           received unknown entity in notify packet.  Affected files are
5153           lib/silcclient/idlist.[ch], lib/silcclient/client_notify.c.
5154
5155         * Added function silc_command_get_status to return the command
5156           status from the command reply's argument payload.  Affected files
5157           are lib/silccore/silccommand.[ch].
5158
5159         * Added check for KICKED notify type that the kicking is
5160           allowed by the client.  Affected file silcd/packet_receive.c.
5161
5162         * Created function silc_get_input which can be used to get input
5163           (echo on or off) from user on command line.  Affected files are
5164           lib/silcutil/silcutil.[ch].
5165
5166 Sat Mar 23 09:51:26 EET 2002  Pekka Riikonen <priikone@silcnet.org>
5167
5168         * Optimized silc_server_packet_relay_to_channel function.
5169           Added new function silc_channel_message_payload_encrypt which
5170           can be called directly if channel message payload needs to
5171           be encrypted and is already encoded (no need to call _encode
5172           function).  Packet relaying is now done by router without any
5173           extra memory allocations.  Affected files are
5174           lib/silccore/silcchanel.[ch], silcd/packet_receive.c and
5175           silcd/packet_send.c.
5176
5177         * Fixed the INVITE notify handling.  It took wrong arguments
5178           as invite list and invite delete.  Affected file is
5179           silcd/packet_receive.c.
5180
5181         * Added check for TOPIC_SET notify type that the topic change is
5182           allowed by the client.  Affected file silcd/packet_receive.c.
5183
5184         * Added check for INVITE notify type that inviting is allowed by
5185           the client.  Affected file silcd/packet_receive.c.
5186
5187         * Changed the silc_server_client_on_channel to return the
5188           SilcChannelClientEntry as well.  Moved the function
5189           silc_server_check_cmode_rights to server_util.[ch].
5190           Affected files are silcd/server_util.[ch], silcd/command.c.
5191
5192         * Added function silc_server_check_umode_rights to check whether
5193           changing client's user mode is allowed.  Added check for
5194           UMODE_CHANGE notify type that the umode change is allowed
5195           by the client.  Affected files are silcd/server_util.[ch],
5196           silcd/packet_receive.c and silcd/command.c.
5197
5198 Fri Mar 22 12:25:58 CET 2002  Pekka Riikonen <priikone@silcnet.org>
5199
5200         * Fixed the SILC_PACKET_MAX_ID_LEN to actually be the max
5201           ID length.  It ignored that ID can be IPv6 based as well.
5202           Affected file lib/silccore/silcpacket.h.
5203
5204         * Fixed the silc_id_id2str and silc_id_str2id to take the
5205           IPv6 address offset's into consideration.  Affecte file is
5206           lib/silccore/silcid.c.
5207
5208 Thu Mar 21 20:44:13 EET 2002  Pekka Riikonen <priikone@silcnet.org>
5209
5210         * Fixed the internal Unix scheduler functions to check for
5211           NULL context they may receive.  The affected file is
5212           lib/silcutil/unix/silcunixschedule.c.
5213
5214 Thu Mar 21 19:12:22 EET 2002  Timo Sirainen <tss@iki.fi>
5215
5216         * Changed hardcoded ~/.silc paths to use get_irssi_dir() so you
5217           can specify different directory with --home command line
5218           parameter. Affected files irssi/src/silc/core/client_ops.c,
5219           clientutil.c
5220
5221         * SILC-specific commands aren't now executed if the active server
5222           isn't of SILC-type, so there won't be problems with having
5223           IRC and SILC protocol support in same client. Affected files
5224           irssi/src/silc/core/silc-channels.c, silc-servers.c,
5225           silc-commands.h
5226
5227 Wed Mar 20 11:06:57 CET 2002  Pekka Riikonen <priikone@silcnet.org>
5228
5229         * Improved the signal support in SILC Schedule.  Added new
5230           function silc_schedule_signal_call which is used by application
5231           to mark a signal to be called.  It is now safe to perform
5232           any kind of tasks in signal callbacks since it is guaranteed
5233           that the application specified signal callback is called
5234           after the signal is over.  Affected files are
5235           lib/silcutil/silcschedule.[ch], lib/silcutil/*/silc*schedule.c.
5236
5237 Tue Mar 19 20:42:41 EET 2002  Pekka Riikonen <priikone@silcnet.org>
5238
5239         * Added `name' field to SilcChannelPrivateKey to represent
5240           application given name for the key.  Moved also the context from
5241           lib/silcclient/idlist.h into lib/silcclient/silcclient.h.
5242           Added the `name' argument also to the function
5243           silc_client_add_channel_private_key.
5244
5245           Added function silc_client_current_channel_private_key to set the
5246           current channel private key in use.
5247
5248           Added "change" command to KEY command which can be used to change
5249           the current channel private key.  Bound the command also to
5250           alt+K (Alt+Shift+k).
5251
5252           Also affected files lib/silcclient/client_channel.c,
5253           irssi/src/docs/help/in/key.in, irssi/src/silc/core/silc-channel.c.
5254
5255 Tue Mar 19 16:32:43 CET 2002  Pekka Riikonen <priikone@silcnet.org>
5256
5257         * Added silc_rng_get_byte_fast function in to the
5258           lib/silccrypt/silcrng.[ch].
5259
5260         * Changed the interface of silc_packet_assemble and the
5261           silc_packet_send_prepare.  If silc_packet_assmble is now
5262           called the application does not call silc_packet_send_prepare
5263           because the library will call it automatically.  These
5264           interfaces now also return a reference to the outgoing buffer
5265           which includes the assembled packet, which the application can
5266           use to encrypt the packet.
5267
5268           Affected files are lib/silccore/silcpacket.[ch],
5269           lib/silcclient/client.c, client_channel.c client_prvmsg.c,
5270           silcd/packet_send.c, server_backup.c and packet_receive.c.
5271
5272         * Fixed a packet sending bug on very high load, where outgoing
5273           packet queue wasn't handled correctly and packets got corrupted.
5274           Affected files are lib/silcutil/*/silc*sockconn.c,
5275           lib/silcclient/client.c and silcd/server.c.
5276
5277 Mon Mar 18 21:00:41 EET 2002  Pekka Riikonen <priikone@silcnet.org>
5278
5279         * Added macro SILC_PACKET_DATALEN which can be used during
5280           packet assembling to check whether the data to be added to
5281           the packet will fit to SILC_PACKET_MAX_LEN.  If not the data
5282           len is truncated until it fits it.
5283
5284           Added checks for maximum length of channel message payload and
5285           private message payload also.
5286
5287           Added checks for maximum packet length in server and in
5288           client library.
5289
5290           Affected files are lib/silccore/silcpacket.h, silcd/packet_send.c,
5291           lib/silcclient/client.c, lib/silccore/silcchannel.c and
5292           lib/silccore/silcprivate.c, lib/silcclient/client_channel.c and
5293           lib/silcclient/client_prvmsg.c.
5294
5295 Mon Mar 18 14:54:42 CET 2002  Pekka Riikonen <priikone@silcnet.org>
5296
5297         * Added silc_server_packet_queue_purge call to the
5298           silc_server_disconnect_remote to assure that all data in the
5299           queue before disconnecting is sent to the network.  Affected
5300           file silcd/server.c.
5301
5302 Sun Mar 17 19:26:16 EET 2002  Pekka Riikonen <priikone@silcnet.org>
5303
5304         * Added the deleting of server's own ID cache entry to the
5305           silc_server_free function.  Free also everything else that
5306           has been allocated in silc_server_init.  The affected file
5307           is silcd/server.c.
5308
5309 Sun Mar 17 15:44:56 EET 2002  Pekka Riikonen <priikone@silcnet.org>
5310
5311         * Added functions silc_parse_version_string, silc_version_to_num,
5312           and silc_ske_parse_version to parse SILC protocol style version
5313           strings.  Affected files lib/silcutil/silcutil.[ch] and
5314           lib/silcske/silcske.[ch].
5315
5316         * Added new configuration params: version_protocol, version_software
5317           and version_software_vendor to specify what version the remote
5318           host must at least be to be able to connect to server.  The vendor
5319           string can be regex matched too.  Added new function
5320           silc_server_connection_allowed to check maximum number of allowed
5321           connections, and allowed versions for incoming connections.
5322           Affected files are silcd/server.c, server_util.[ch] and
5323           serverconfig.[ch].
5324
5325 Sun Mar 17 10:24:50 EET 2002  Pekka Riikonen <priikone@silcnet.org>
5326
5327         * Added preliminary support for signals in scheduler.  The
5328           signals we care about are now blocked always when the scheduler
5329           is locked.  This way we can synchronise the use of signal with
5330           scheduler.  It is guaranteed that when signal occurs the scheduler
5331           is not locked, and thus new tasks can be safely added to the
5332           scheduler.
5333
5334           Renamed silc_schedule_wakeup_init and silc_schedule_wakeup_uninit
5335           to silc_schedule_internal_init and silc_schedule_internal_uninit.
5336           Added new platform specific routines
5337           silc_schedule_internal_signals_[un]block and
5338           silc_schedule_internal_signal_[un]register.
5339
5340           Added new functions to SILC Schedule API:
5341           silc_schedule_signal_[un]register.  Each signal that application
5342           is going to use should be registered to the scheduler.
5343
5344           Affected files are lib/silcutil/silcschedule.[ch],
5345           lib/silcutil/*/silc*schedule.c.
5346
5347 Sat Mar 16 22:39:23 EET 2002  Pekka Riikonen <priikone@silcnet.org>
5348
5349         * Check for unauthenticated client and server in the
5350           silc_server_new_client and silc_server_new_server functions.
5351           Affected file silcd/packet_receive.c.
5352
5353         * Added function silc_string_is_ascii to check whether given
5354           string is 7-bit ASCII string.  Affected files are
5355           lib/silcutil/silcutil.[ch].
5356
5357         * Added function silc_id_is_valid_server_id into the
5358           silcd/serverid.c and added checking for valid Server ID's in
5359           silc_server_new_server.  The Server ID must always be based
5360           on the server's public IP address.
5361
5362         * Added logging of DISCONNECT packet message in the server.
5363           Affected file silcd/server.c.
5364
5365 Sat Mar 16 18:04:30 EET 2002  Pekka Riikonen <priikone@silcnet.org>
5366
5367         * Changed all library interfaces that use Global RNG to also
5368           accept SilcRng as argument.  Affected files are
5369           lib/silcclient/command.c, lib/silccore/silcauth.[ch],
5370           lib/silccore/silcchanel.[ch], lib/silcclient/client_channel.c,
5371           silcd/packet_send.c, lib/silccore/silcprivate.[ch],
5372           lib/silcmath/silcprimegen.c, lib/silcmath/silcmath.h, and
5373           lib/silccrypt/rsa.c.
5374
5375         * Added function silc_pkcs_generate_key to the
5376           lib/silccrypt/silcpkcs.[ch] for applications so that they
5377           don't need to do pkcs->pkcs->init calls anymore.
5378
5379         * Remove SilcSocketConnection from the SFTP API since it really
5380           wasn't needed there.  The application has the information
5381           saved in its contexts anyway and the SFTP layer doesn't need
5382           know about it.  Affected files lib/silcsft/silcsftp.h and
5383           lib/silcsftp/sftp_[server/client].c.
5384
5385         * Rewrote the SILC SIM (modules) interface in lib/silcsim.[ch].
5386           The SilcSimContext is not SilcSim.
5387
5388         * Fixed possible buffer overflows in silc_id_render in the
5389           lib/silcutil/silcutil.c.
5390
5391         * On EPOC the global crypto module lists are not used at all
5392           in the crypto library.  Added support for using the constant
5393           algorithm list on EPOC.  Affected files are
5394           lib/silccrypt/silccipher.c, silchash.c, silchmac.c and
5395           silcpkcs.c.
5396
5397         * Fixed the handling of third parameter of KICKED notify, since
5398           it was mistakenly updated to SILC Protocol 1.0 even though it
5399           is to be included in 1.1.  Since it is not in 1.0 it is not
5400           mandatory, and this fix now handles it only if it is provided,
5401           and it is not error if it is not provided.  Affected file
5402           lib/silcclient/client_notify.c.
5403
5404 Sat Mar 16 09:07:27 EET 2002  Pekka Riikonen <priikone@silcnet.org>
5405
5406         * Handled CHANNEL_CHANGE notify (ignore it) in Irssi SILC
5407           client.  Affected file irssi/src/silc/core/client_ops.c.
5408
5409         * Merged with Irssi 0.8.4 from irssi.org CVS.
5410
5411 Thu Mar 14 12:53:57 CET 2002  Pekka Riikonen <priikone@silcnet.org>
5412
5413         * Check for valid socket connection in client entries before
5414           sending any messages.  Fixes a crash, but doesn't fix some
5415           other underlaying bug that is lurking there.  Affected
5416           file silcd/packet_send.c.
5417
5418 Thu Mar 14 13:38:12 EET 2002  Timo Sirainen <tss@iki.fi>
5419
5420         * $usermode, $cumode and $cumode_space expandos shouldn't do
5421           anything with non-SILC server records. Affected file
5422           irssi/src/silc/core/silc-expandos.c
5423
5424 Wed Mar 13 21:38:26 EET 2002  Pekka Riikonen <priikone@silcnet.org>
5425
5426         * Fixed the silc_net_check_[host/local]_by_sock to support
5427           IPv6 bound sockets as well.  Now they can return IPv6 addresses
5428           as well.  Affected file lib/silcutil/silcnet.c.
5429
5430         * Fixed silc_net_addr2bin to correctly convert IPv6 addresses.
5431           Affected lib/silcutil/unix/silcunixnet.c.
5432
5433         * Fixed ID rendering (at least on some platforms, not NetBSD)
5434           for IPv6 addresses.  Affected file lib/silcutil/silcutil.c.
5435
5436 Tue Mar 12 17:58:59 EET 2002  Pekka Riikonen <priikone@silcnet.org>
5437
5438         * Added silc_hash_public_key and silc_hash_public_key_compare
5439           functions to be used with SilcHashTable.  They can be used to
5440           hash public keys and compare public keys in hash table.  Affected
5441           file lib/silcutil/silcutil.[ch].
5442
5443         * Added support for specifying multiple public keys for Client
5444           connection section in server configuration file.  This makes it
5445           possible to accept multiple public keys from same host, or to
5446           make a section that accepts any incoming host, and have the
5447           accepted public keys listed in the section.
5448
5449           Added functions silc_sever_[find/get]_public_key,  added the
5450           support for this actually to all connection sections but only
5451           the Client section is currently allowed to specify multiple
5452           public keys.
5453
5454           Affected files are silcd/server.c, server_internal.h,
5455           command.c, protocol.c, server_util.[ch], packet_receive.c.
5456
5457 Mon Mar 11 23:37:38 EET 2002  Pekka Riikonen <priikone@silcnet.org>
5458
5459         * Merged Irssi 0.8.2 from irssi.org CVS.
5460
5461 Sun Mar 10 23:34:48 CET 2002  Johnny Mnemonic <johnny@themnemonic.org>
5462
5463         * If silc_debug is TRUE, also output standard logging messages
5464           to stderr with the debug output.
5465
5466           Made silc_log_reset_all() flushing all channels before returning.
5467           Also fixed some documentation typos.
5468
5469           Affected files are lib/silcutil/silclog.[ch].
5470
5471 Sun Mar 10 20:07:49 EET 2002  Pekka Riikonen <priikone@silcnet.org>
5472
5473         * Fixed the server to check correctly the amount of connections
5474           from single host, by checking also the type of the connection.
5475           Fixed also the comparison of number of connections and number
5476           of allowed connections.  Affected files are silcd/server.c,
5477           server_util.[ch].
5478
5479 Fri Mar  8 17:16:41 EET 2002  Pekka Riikonen <priikone@silcnet.org>
5480
5481         * Fixed the USERS command reply to save the user's mode on the
5482           channel as well.  Fixed JOIN command reply to check whether a
5483           client is on channel already and not join it twice.  Affected
5484           file lib/silcclient/command_reply.c.
5485
5486         * Added new file silc-expandos.c into irssi/silc/core/ to return
5487           various stuff for various signal for the statusbar etc. updating.
5488           Now Irssi SILC client prints channel user modes etc. on the
5489           statusbar.
5490
5491         * The user mode (like server/router operator changes) is now shown
5492           on the Irssi SILC client's statusbar.  The affected files are
5493           irssi/src/silc/core/client_ops.c, silc-expandos.c.
5494
5495 Thu Mar  7 19:21:22 EET 2002  Pekka Riikonen <priikone@silcnet.org>
5496
5497         * Changed silc_mutex_[un]lock calls in lib/silcutil/silcschedule.c
5498           to SILC_SCHEDULE_[UN]LOCK macros.
5499
5500         * Added more error printing to logs in server code.  Affected
5501           files silcd/server.c and silcd/protocol.c.
5502
5503         * Fixed -S option parsing in Irssi SILC Client.  Affected file
5504           irssi/src/silc/core/silc-core.c.
5505
5506         * Added silc_buffer_alloc_size function.  Affected file is
5507           lib/silcutil/silcbuffer.h.
5508
5509 Tue Mar  5 14:37:27 EET 2002  Pekka Riikonen <priikone@silcnet.org>
5510
5511         * Changed all silc_[hash|hmac|cipher|pkcs]_default tables to
5512           constants.  Affected files in
5513           lib/silccrypt/silcpkcs.[ch], silchash.[ch], silchmac.[ch] and
5514           silccipher.[ch].
5515
5516         * Changed the internal SFTP Memory FS table to const.  Affected
5517           file lib/silcsftp/sftp_fs_memory.c.
5518
5519 Sun Mar  3 18:37:13 EET 2002  Pekka Riikonen <priikone@silcnet.org>
5520
5521         * Fixed the buffer formatting and unformatting routines to
5522           check the size of 64 bits types with sizeof().  Affected
5523           file is lib/silcutil/silcbuffmt.c.
5524
5525 Mon Feb 25 17:19:05 EET 2002  Pekka Riikonen <priikone@silcnet.org>
5526
5527         * Removed 0.6.x backwards support.
5528
5529 Sun Feb 24 12:53:25 EET 2002  Pekka Riikonen <priikone@silcnet.org>
5530
5531         * Changed all integer type names:
5532           [u]int[8/16/32/64] -> Silc[UInt/Int][8/16/32/64].  This is
5533           to avoid collisions with other libraries using same type names
5534           as we did.
5535
5536 Sat Feb 23 20:31:43 EET 2002  Pekka Riikonen <priikone@silcnet.org>
5537
5538         * Added `prefer_ipv6' argument to the functions
5539           silc_net_gethostbyname[_async].  If it is TRUE it will return
5540           IPv6 address over IPv4.  If FALSE IPv4 address is returned
5541           even if IPv6 address was found.  Affected files
5542           lib/silcutil/silcnet.[ch].
5543
5544         * Added support silc_net_create_connection[_async] to fallback
5545           to IPv4 address if IPv6 address could not be used (like if
5546           it doesn't work on a specific system).  Affected file in
5547           lib/silcutil/unix/silcunixnet.c.
5548
5549 Sat Feb 23 15:20:30 EET 2002  Pekka Riikonen <priikone@silcnet.org>
5550
5551         * Added silc_schedule_reinit function to do the enlarging
5552           of the max tasks handling capabilities of the scheduler.
5553           Affected files lib/silcutil/silcschedule.[ch].
5554
5555 Wed Feb 20 20:41:01 EET 2002  Pekka Riikonen <priikone@silcnet.org>
5556
5557         * Added automatic extern "C" { ... } for C++ compilers so the
5558           application does not need to define them.  Affected file
5559           includes/silcincludes.h.
5560
5561         * Renamed lib/silcclient/silcapi.h to silcclient.h as the
5562           old name went against naming convention.  Applications now
5563           include "silcclient.h" instead of "clientlibincludes.h".
5564           Removed includes/clientlibincludes.h, it is redundant now.
5565
5566         * Renamed includes/version.h to silcversion.h.
5567
5568         * Added really preliminary support for OS/2 into the util
5569           library.  Only thread & mutex API is implemented, others
5570           are still to be implemented.  Created the lib/silcutil/os2/
5571           directory.  Created also file includes/silcos2.h.
5572
5573 Wed Feb 20 18:48:49 EET 2002  Pekka Riikonen <priikone@silcnet.org>
5574
5575         * Added preliminary BeOS support into the util library.
5576           Created lib/silcutil/beos/, and implemented all the needed
5577           functions to support SILC on BeOS.  Created also file
5578           includes/silcbeos.h.
5579
5580 Mon Feb 18 15:49:22 EET 2002  Timo Sirainen <tss@iki.fi>
5581
5582         * Added proper initializations to silc's irssi code, so it's
5583           now possible to load it as module.  Affected files
5584           irssi/src/silc/core/silc-core.c,
5585           fe-common/silc/fe-common-silc-core.[ch] and fe-text/silc.c
5586
5587 Sun Feb 17 19:02:56 EET 2002  Pekka Riikonen <priikone@silcnet.org>
5588
5589         * Merged latest Irssi (0.8.1) from the irssi.org's CVS into
5590           the SILC tree.
5591
5592         * Fixed the silcdoc document generator to correct generate
5593           docs from all kinds of filenames.  Affected files are
5594           util/robodoc/Source/generator.c, scripts/silcdoc/silcdoc
5595
5596         * ROBOdoc documented lib/silcutil/silcmemory.h.
5597           Added also new function silc_memdup.
5598
5599         * Removed lib/silcutil/silcbufutil.h and moved those routines
5600           to the lib/silcutil/silcbuffer.h.
5601
5602 Sun Feb 17 15:52:30 EET 2002  Pekka Riikonen <priikone@silcnet.org>
5603
5604         * Added `user_count' to the SilcChannelEntry which now tells the
5605           number of users on the channel.  The user count is now saved
5606           in normal server of global channels as well.  Affected files
5607           silcd/server.c, idlist.h, packet_receive.c and command.c.
5608
5609         * Splitted lib/silcutil/silcutil.[ch] into silcfileutil.[ch] to
5610           include file utility functions.
5611
5612         * Fixed the lib/silcsftp/sftp_fs_memory.c to use silcutil routines
5613           instead of calling directly OS routines.
5614
5615         * Fixed NICK change printing in Irssi SILC Client. Fixed
5616           KICKED notify printing in Irssi SILC Client.  Affected file
5617           irssi/src/silc/core/client_ops.c.
5618
5619         * Fixed a NICK change bug in client library, to not recreate the
5620           client_entry->channels hash table everytime nick is changed.
5621           Affected file lib/silcclient/client.c.
5622
5623 Sun Feb 17 10:10:14 EET 2002  Pekka Riikonen <priikone@silcnet.org>
5624
5625         * ROBOdoc documented the lib/silcske/silcske.h, and improved
5626           the SKE interface a bit.
5627
5628         * Fixed padding problem in PKCS#1. The padding was not actually
5629           random since the random number generator was used incorrectly.
5630           This security bug affects only when encrypting with PKCS#1, and
5631           it is not currently used at all in SILC. SILC only use signing
5632           with PKCS#1. Affected file lib/silccrypt/pkcs1.c.
5633
5634 Sat Feb 16 13:44:24 EET 2002  Pekka Riikonen <priikone@silcnet.org>
5635
5636         * Rewrote the notify handling in Irssi SILC client to not call
5637           the events as signals.  Fixes problems with Perl support.
5638           Affected files irssi/src/silc/core/client_ops.c, silc-channels.c.
5639
5640         * Send the auto-nicking NICK command in client library with
5641           little timeout after connecting.  The affected file is
5642           lib/silcclient/client.c.
5643
5644         * Added following new config file settings:
5645           channel_rekey_secs, key_exchange_rekey, key_exchange_pfs,
5646           key_exchange_timeout, conn_auth_timeout, connections_max,
5647           links_max.
5648
5649           Implemented all the new config settings handling in the server.
5650
5651           Optimized the use of SKE Mutual flag usage.  Use it only
5652           if connection authentication protocol is not based in public
5653           key authentication.
5654
5655           Renamed all SilcServerConfigSection* to SilcServerConfig*
5656           to have a bit shorter names.
5657
5658           Affected files silcd/serverconfig.[ch], server.[ch], and
5659           protocol.[ch].
5660
5661 Sat Feb 16 02:46:43 CET 2002  Johnny Mnemonic <johnny@themnemonic.org>
5662
5663         * Cleaned up the listening sockets code, preparing for the rehash
5664           support.  Affected file is silcd/server.c.
5665
5666         * Fixed some output messages.  Affected files are silcd/silcd.c,
5667           and silcd/server.c.
5668
5669 Fri Feb 15 19:10:20 EET 2002  Pekka Riikonen <priikone@silcnet.org>
5670
5671         * Create lib/doc/silcrng_intro.html document as introduction
5672           to SILC RNG.  ROBOdoc documented lib/silccrypt/silcrng.h.
5673
5674 Fri Feb 15 13:23:03 CET 2002  Johnny Mnemonic <johnny@themnemonic.org>
5675
5676         * Fixes to the silcd config template.  Affected file is
5677           doc/example_silcd.conf.in.
5678
5679         * Removed type casts from silc_calloc(), conforming to the
5680           CodingStyle.  Affected file is lib/silcutil/silcconfig.c.
5681
5682         * Removed param_name member from client, server, and router
5683           section structs, now identifying the param directly.
5684
5685           Added CONFIG_FREE_AUTH macro in config file parsing.
5686
5687           Affected files are silcd/serverconfig.[ch].
5688
5689 Fri Feb 15 12:24:08 EET 2002  Timo Sirainen <tss@iki.fi>
5690
5691         * Fixed command line parameter handling. All SILC initialization
5692           is now done in silc_core_init() which also fixes autoconnecting
5693           to servers.
5694
5695           Affected files irssi/src/silc/core/silc-core.c,
5696           irssi/src/fe-text/silc.c.
5697
5698 Thu Feb 14 22:03:58 EET 2002  Pekka Riikonen <priikone@silcnet.org>
5699
5700         * Added new configuration options and blocks:
5701           keepalive_secs, reconnect_count, reconnect_interval,
5702           reconnect_interval_max, reconnect_keep_trying and
5703           require_reverser_lookup.  Added ConnectionParam block, and
5704           implemented the connection parameters when connecting as
5705           initiator and when accepting connections as responder.
5706
5707           Added CONFIG_IS_DOUBLE macro in config file parsing, to check
5708           whether given configuration value has been given already.
5709
5710           Affected files silcd/serverconfig.[c], server.[c].
5711
5712         * Splitted the doc/example_silcd.conf.in.  Separated the crypto
5713           algorithm parts and created new file silcalgs.conf, that
5714           is now included from the example_silcd.conf.in.
5715
5716         * Optimized the silc_server_connect_to_router_second to take
5717           the connection configuration object from the SilcServerConnection
5718           object instead of finding it during the connecting phase.
5719           Added the configuration object to SilcServerConnection struct.
5720           Affected files silcd/server_internal.h, server.c.
5721
5722 Thu Feb 14 16:02:26 CET 2002  Pekka Riikonen <priikone@silcnet.org>
5723
5724         * Add the client on channel after it was resolved at the
5725           channel message receiving, and it was not already on the
5726           channel.  Affected file lib/silcclient/client_channel.c.
5727
5728 Wed Feb 13 23:16:41 EET 2002  Pekka Riikonen <priikone@silcnet.org>
5729
5730         * Fixed the public key authentication to allocate always the
5731           destination signature buffer instead of using static buffer.
5732           Affected file silcd/protocol.c.
5733
5734 Wed Feb 13 20:51:13 EET 2002  Pekka Riikonen <priikone@silcnet.org>
5735
5736         * Unified the serverconfig.[ch]'s helper function interface.
5737           Affected file silcd/serverconfig.[ch].
5738
5739         * Removed doc/example_silc.conf.in since it is redundant.
5740           The make install will now install irssi/silc.conf file.
5741
5742         * Added new Passphrase and Publickey authentication methods to
5743           config file, allowing both public key and passphrase based
5744           authentication to be set at the same time.
5745
5746           Added `prefer_passphrase_auth' setting in config file which
5747           can be used to set to prefer passwd auth if both passwd and
5748           public key is set.  If not set, public key is preferred.
5749           This has effect only when being initiator (responder will try
5750           both anyway).
5751
5752           Added support for authentication with passphrase and public key
5753           at the same time.  The passphrase is tried first always since
5754           it is faster to check.
5755
5756           Affected file silcd/serverconfig.[ch], server.c, protocol.[ch].
5757
5758 Wed Feb 13 12:46:25 CET 2002  Johnny Mnemonic <johnny@themnemonic.org>
5759
5760         * Merged the new SILC Config library, with the server parsing
5761           support.  Read the header file silcconfig.h or the toolkit
5762           documentation for the news.  Affected files are
5763           doc/example_silcd.conf.in lib/silcutil/silcconfig.[ch]
5764           silcd/command.c silcd/packet_receive.c silcd/packet_send.c
5765           silcd/protocol.c silcd/server.c silcd/server_backup.c
5766           silcd/serverconfig.[ch] silcd/silcd.c.
5767
5768         * Fixed some silclog documentation.  Affected file is
5769           lib/silcutil/silclog.h.
5770
5771 Sun Feb 10 18:11:30 EET 2002  Pekka Riikonen <priikone@silcnet.org>
5772
5773         * The silc_cipher_register, silc_hash_register and
5774           silc_hmac_register now checks if the object to be registered
5775           is registered already.  Affected files are
5776           lib/silccrypt/silccipher.c, silchash.c and silchmac.c.
5777
5778 Sun Feb 10 15:48:38 EET 2002  Pekka Riikonen <priikone@silcnet.org>
5779
5780         * Merged new irssi from irssi.org's CVS, the version 0.7.99.
5781
5782 Sat Feb  9 14:54:33 EET 2002  Pekka Riikonen <priikone@silcnet.org>
5783
5784         * Allow zero length channel messages inside the Channel Message
5785           Payload.  Affected file lib/silccore/silcchannel.c.
5786
5787         * Fixed scripts/silcdoc/silcdoc to support all kinds of filenames
5788           as header filenames.
5789
5790         * Removed lib/silcclient/README and created HTML file
5791           lib/silcclient/silcclient_using.html, which is now included
5792           as part of Toolkit documentation.
5793
5794 Thu Feb  7 10:12:25 CET 2002  Pekka Riikonen <priikone@silcnet.org>
5795
5796         * Fixed CUMODE_CHANGE notify handling to change the mode of
5797           correct client.  Affected file lib/silcclient/client_notify.c.
5798
5799         * Make silc_rng_alloc fail if it cannot allocate the sha1
5800           hash algorithm.  Affected file lib/silccrypt/silcrng.c.
5801
5802 Sun Feb  3 17:20:52 EET 2002  Pekka Riikonen <priikone@silcnet.org>
5803
5804         * Fixed the file transfer's key agreement payload to include
5805           zero port also if the hostname is NULL because it could not
5806           be bound.
5807
5808           Call file transfer monitor callback now also if error occurs
5809           during key agreement protocol.
5810
5811           Changed the silc_client_file_send interface to return the
5812           SilcClientFileError instead of session id.  The session ID
5813           is returned into pointer provided as argument.
5814
5815           Check that the file exists locally before sending the
5816           file transfer request at all.
5817
5818           Affected file lib/silcclient/client_ftp.c, silcapi.h.
5819
5820         * Added SILC_CLIENT_FILE_KEY_AGREEMENT_FAILED file transfer
5821           error than can occur while key agreement protocol.  Affected
5822           file lib/silcclient/silcapi.h.
5823
5824         * Fixed the event_mode CMODE handler to not crash when mode
5825           is changed and +k mode is set in the channel.  Affected file
5826           irssi/src/silc/core/silc-channels.c.
5827
5828         * Fixed SILC_LOG_ERROR to give out Error and not Warning, and
5829           SILC_LOG_WARNING to give out Warning and not Error.  Affected
5830           file lib/silcutil/silclog.c.
5831
5832         * Fixed the channel message payload decryption in the function
5833           silc_channel_message_payload_decrypt to not modify the original
5834           buffer before it is verified that the message decrypted
5835           correctly.  Otherwise, next time it is called with correct
5836           channel key it won't encrypt since the payload is corrupted.
5837           Affected file lib/silccore/silcchannel.c.
5838
5839 Sun Feb  3 11:46:12 EET 2002  Pekka Riikonen <priikone@silcnet.org>
5840
5841         * Do not constantly resize the window.  A fix patch by cras.
5842           Affected file irssi/src/fe-text/screen.c.
5843
5844 Sat Feb  2 16:54:18 EET 2002  Pekka Riikonen <priikone@silcnet.org>
5845
5846         * Applied IPv6 fix patch from Jun-ichiro itojun Hagino.
5847           Affected file lib/silcutil/silcnet.c.
5848
5849 Fri Feb  1 22:33:11 EET 2002  Pekka Riikonen <priikone@silcnet.org>
5850
5851         * Fixed a bug in hash table internal routine for traversing
5852           the table with foreach callback.  The current entry may
5853           become invalid in the callback but it was referenced after
5854           the callback returned.
5855
5856           Do not allow auto rehashing of hash table during the
5857           silc_hash_table_foreach operation, for same reasons as it is
5858           not allowed for SilcHashTableList.  Affected files are
5859           lib/silcutil/silchashtable.[ch].
5860
5861 Fri Feb  1 14:55:00 CET 2002  Pekka Riikonen <priikone@silcnet.org>
5862
5863         * Defined DLLAPI into silcincludes.h and silcwin32.h for
5864           Win32 DLL.  extern's in header files are now declared with
5865           DLLAPI.
5866
5867 Thu Jan 31 23:34:33 EET 2002  Pekka Riikonen <priikone@silcnet.org>
5868
5869         * Fixed private message handling.  It used some old code that
5870           caused the client to crash.  Affecte file is
5871           lib/silcclient/client_prvmsg.c.
5872
5873 Thu Jan 31 19:06:22 EET 2002  Pekka Riikonen <priikone@silcnet.org>
5874
5875         * Added function silc_client_add_channel,
5876           silc_client_replace_channel_id, and removed functions
5877           silc_client_new_channel_id and silc_idlist_get_channel_by_id
5878           from client library.
5879
5880         * Added cross reference of the joined channels to the
5881           SilcClientEntry, and changed the SilcChannelEntry's
5882           users list to SilcHashTable.  The affected files are
5883           lib/silcclient/idlist.[ch].
5884
5885         * Fixed a bug in hash table tarversing.  While the hash table
5886           is traversed with SilcHashTableList the table must not be
5887           rehashed.  It is now guaranteed that auto rehashable tables
5888           are not rehashed while tarversing the list.  Also defined that
5889           silc_hash_table_rehash must not be called while tarversing
5890           the table.  Added function silc_hash_table_list_reset that must
5891           be called after the tarversing is over.  The affected files are
5892           lib/silcutil/silchashtable.[ch].
5893
5894         * Changed all hash table traversing to call the new
5895           silc_hash_table_list_reset in server and in client library.
5896
5897         * Added function silc_client_on_channel to return the
5898           SilcChannelUser entry if the specified client entry is joined
5899           on the specified channel.  This is exported to application as
5900           well.  Affected files lib/silcclient/client_channel.c, silcapi.h.
5901
5902 Wed Jan 30 19:14:31 EET 2002  Pekka Riikonen <priikone@silcnet.org>
5903
5904         * Fixed founder regaining problem with JOIN command on normal
5905           server.  The notify for mode change must be sent always and
5906           not only if !cmd->pending.  Affected file silcd/command.c.
5907
5908         * Fixed the WHOWAS command's reply sending to support the
5909           lists correctly.  Affected file silcd/command.c.
5910
5911 Wed Jan 30 11:11:47 CET 2002  Pekka Riikonen <priikone@silcnet.org>
5912
5913         * When sending JOIN command to router for processing the
5914           sender's old command identifier was not saved back to the
5915           sender's command context, fixed now.  The affected file is
5916           silcd/command.c.
5917
5918         * Create the key in JOIN command of the router did not return
5919           the channel key, added check for this.  Affected file is
5920           silcd/command.c.
5921
5922         * Fixed a channel ID update bug in JOIN command reply.  Do
5923           not directly upgrade the ID but call the function
5924           silc_idlist_replace_channel_id if the ID was changed.
5925           Affected file silcd/command_reply.c.
5926
5927         * Fixed memory leaks from command calling if it would fail.
5928           Affected file silcd/command.c.
5929
5930 Tue Jan 29 19:49:31 EET 2002  Pekka Riikonen <priikone@silcnet.org>
5931
5932         * Applied patches from cras:
5933
5934           Memory leak fixes around libaries, irssi window resize fix,
5935           new silclist.h and silcdlist.h, all extern inline changed to
5936           static inline.
5937
5938         * Removed dotconf from lib/dotconf, not needed anymore.
5939
5940         * Removed TRQ from lib/trq, not needed anymore.
5941
5942         * Do more frequent heartbeats (5 minutes instead of 10 minutes)
5943           with server connections.  Later this will be configurable
5944           in config file after new config file is done.  Affected file
5945           silcd/server.c.
5946
5947 Tue Jan 29 10:35:03 CET 2002  Pekka Riikonen <priikone@silcnet.org>
5948
5949         * Fixed a crash in server related to channel announcements.
5950           Affected file silcd/server.c.
5951
5952 Mon Jan 28 17:49:42 EET 2002  Pekka Riikonen <priikone@silcnet.org>
5953
5954         * Fixed memory leaks in silc_server_create_new_channel*
5955           functions.  Affected file silcd/server.c.
5956
5957         * Fixed the CHANNEL_CHANGE notify to re-announce the channel
5958           which ID was changed.  This way the router will send the
5959           user list for the channel again, and server won't be in
5960           desync in some rare circumstances.  Affected file is
5961           silcd/packet_receive.c.
5962
5963 Sun Jan 27 21:04:19 EET 2002  Pekka Riikonen <priikone@silcnet.org>
5964
5965         * Check for NULL socket pointer in the function
5966           silc_server_packet_send_to_channel_real.  Affected file
5967           silcd/packet_send.c.
5968
5969         * Fixed the BAN notify handling to correctly remove ban
5970           list.  Affected file silcd/packet_receive.c.
5971
5972 Sat Jan 26 23:01:03 EET 2002  Pekka Riikonen <priikone@silcnet.org>
5973
5974         * Fixed some header addition to Toolkit distribution in
5975           lib/silcutil/Makefile.am and lib/trq/Makefile.am.
5976
5977         * Added lib/silcclient/client_ops_example.h as an template
5978           file for application programmers to quickly start using
5979           the SilcClientOperation functions in their application.
5980           Updated the lib/silcclient/README as well to tell about this
5981           nice file made available.
5982
5983 Sat Jan 26 10:45:41 EET 2002  Pekka Riikonen <priikone@silcnet.org>
5984
5985         * Call silc_server_remove_from_channels when removing client
5986           entry when NO_SUCH_CLIENT_ID was received.  Affected file
5987           is silcd/command_reply.c.
5988
5989 Fri Jan 25 19:12:36 EET 2002  Pekka Riikonen <priikone@silcnet.org>
5990
5991         * Added server & router operator statistics updating.  Affected
5992           file silcd/packet_receive.c and silcd/command.c.
5993
5994         * Fixed the SERVER_SIGNOFF notify handling on normal server
5995           not to save the history information for clients.  Same was
5996           fixed earlier in remove_clients_by_server function, but not
5997           here.  Affected file silcd/packet_receive.c.
5998
5999         * Raised the default connection-retry count from 4 to 7 in
6000           server.  Affected file silcd/server.h.
6001
6002         * Cancel any possible reconnect timeouts when we start the
6003           key exchange.  Affected file silcd/server.c.
6004
6005         * Do not reconnect on connection failure when SCONNECT was
6006           given.  Affected files silcd/server.[ch].
6007
6008 Tue Jan 22 18:19:36 EET 2002  Pekka Riikonen <priikone@silcnet.org>
6009
6010         * Removed assert()'s from the lib/silcclient/client_keyagr.c.
6011
6012         * Fixed the NICK command to always give the unformatted
6013           nickname to the one giving the NICK command.  If unformatted
6014           nickname is cached already it will be formatted and the
6015           local entry will always get the unformatted nickname.
6016           Affected file lib/silcclient/idlist.c.
6017
6018         * Fixed some double frees from client library commands.
6019           Affected file is lib/silcclient/command.c.
6020
6021         * Fixed CUMODE command in server to assure that no one can
6022           change founder's mode than the founder itself, there was a
6023           little bug.  Affected file silcd/command.c.
6024
6025 Mon Jan 21 19:07:53 EET 2002  Pekka Riikonen <priikone@silcnet.org>
6026
6027         * Removed the SilcClientCommandDestructor from the client
6028           libary, it is not needed anymore.  Affected files are
6029           lib/silcclient/silcapi.h, command[_reply].[ch],
6030           client_notify, idlist.c.
6031
6032         * Fixed GETKEY command to first resolve client, and then
6033           resolve the server only if the client was not found, instead
6034           of resolving both at the same time.  Affected file is
6035           lib/silcclient/command.c.
6036
6037         * Added silc_client_start_key_exchange_cb and lookup the
6038           remote hostname and IP address before starting the key
6039           exchange with server.  The affected file is
6040           lib/silcclient/client.c.
6041
6042         * The server's public key is now saved using the IP address
6043           of the server and not the servername for the filename.
6044           The hostname public key filename is checked as an fall back
6045           method if the IP address based filename is not found.
6046
6047           Fixed the GETKEY command to save the fetched server key
6048           in correct filename.
6049
6050           Print the remote server's hostname now when new key is
6051           received during connection process.  Affected file is
6052           irssi/src/silc/core/client_ops.c.
6053
6054         * Return always our own public key to the client if it asks
6055           for it with GETKEY command.  Affected file silcd/command.c.
6056
6057         * Removed the use_auto_addr variable from default config
6058           file since it was in wrong section.  Affected file is
6059           irssi/src/config.
6060
6061         * Fixed TOPIC_CHANGE notification to not route it when it
6062           was sent using silc_server_send_notify_to_channel function.
6063           Affected file silcd/command.c.
6064
6065         * Fixed silc_server_send_notify_kicked to send the kicker's
6066           Client ID also, it was missing.  Affected files are
6067           silcd/command.c, silcd/packet_send.[ch].
6068
6069 Thu Jan 17 18:59:11 EET 2002  Pekka Riikonen <priikone@silcnet.org>
6070
6071         * Do not save client history information in SERVER_SIGNOFF.
6072           Fixes the bug in normal server that it does not detect
6073           the client becoming valid after the server becomes back
6074           online.  Affected file silcd/server_util.c.
6075
6076         * Added `sock_error' field  into the SilcSocketConnection
6077           context.  When error occurs during socket operation (read
6078           or write) the error is saved.  Added also new function
6079           silc_socket_get_error to return human readable socket error
6080           message.  Affected files are lib/silcutil/silcsockconn.[ch],
6081           lib/silcutil/unix/silcunixsockconn.c, and
6082           lib/silcutil/win32/silcwin32sockconn.c.
6083
6084         * The server now prints the socket error message in the
6085           signoff for client.  Affected file silcd/server.c.
6086
6087         * Fixed the `created' channel information sending from router
6088           to server in JOIN command.  Checks now whether the channel
6089           really was created or not and set it according that.
6090
6091           Fixed the JOIN command to use the client entry's current
6092           ID during the joining procedure instead of the one it sent
6093           in the command (it is checked though), since it can change
6094           between the packet processing and command processing, and
6095           would just case unnecessary pain in the client end.  Affected
6096           file silcd/command.c.
6097
6098         * Fixed a channel key payload sending to use correct channel
6099           ID when the server was forced to change the channel's ID by
6100           router.  Router sent the key payload with the old Channel ID.
6101           Affected file silcd/packet_receive.c.
6102
6103 Wed Jan 16 22:26:30 EET 2002  Pekka Riikonen <priikone@silcnet.org>
6104
6105         * Call silc_server_save_channel_key only if the key payload
6106           was provided in the JOIN command's command reply.  Affected
6107           file silcd/command_reply.c.
6108
6109 Tue Jan 15 18:49:41 EET 2002  Pekka Riikonen <priikone@silcnet.org>
6110
6111         * Fixed silc_mp_sizeinbase to return the value correctly with
6112           MPI.  Affected file lib/silcmath/mp_mpi.c.
6113
6114         * Fixed the stop_server signal to correctly stop the scheduler
6115           and gracefully stop the server when SIGTERM or SIGINT signals
6116           are received.  Affected file silcd/silcd.c.
6117
6118 Mon Jan  7 23:38:19 CET 2002  Johnny Mnemonic <johnny@themnemonic.org>
6119
6120         * Simple handling of TERM and HUP signals. Also added some log
6121           flushing call around.  Affected file is
6122           silcd/silcd.c.
6123
6124         * Fixed small bugs in silclog.c. Now buffering output will take
6125           effect after 10 seconds since startup: This will ensure that
6126           no important startup messages are lost. Also output redirection
6127           will preserve original format ([Date] [Type] message).
6128           Affected file is lib/silcutil/silclog.c.
6129
6130         * Added two options to the config file, in the logging section:
6131           quicklogs:<yes/no>: and flushdelay:<seconds>:.  Affected files
6132           lib/silcutil/silclog.[ch], silcd/serverconfig.[ch].
6133
6134 Sun Jan  6 12:49:40 EET 2002  Pekka Riikonen <priikone@silcnet.org>
6135
6136         * Do not print the warning about log files not being initialized
6137           more than once to avoid excess logging.  Affected file is
6138           lib/silcutil/silclog.c.
6139
6140         * Fixed the SIM compilation in lib/silcsim/Makefile.am.  Fixed
6141           the SIM copying in make install in Makefile.am.pre.
6142
6143 Sun Jan  6 01:10:21 CET 2001  Johnny Mnemonic <johnny@themnemonic.org>
6144
6145         * Rewritten silclog APIs. Globally interesting changes follows:
6146           silc_log_set_files() changed to silc_log_set_file().
6147           silc_log_set_callbacks() changed to silc_log_set_callback().
6148           ROBOdoc documented silclog header file.
6149           SilcLogCb now returns bool to wether inihibit the default
6150           handler or not (to keep the old behaviour return always TRUE).
6151           The new APIs should also fix the problem of the
6152           silcd_error.log file that was written in the current directory.
6153
6154           New features:
6155           Log files streams will remain opened after silc_log_set_file()
6156           call, means less CPU usage notably on high traffic servers.
6157           File streams are now full buffered, and flushed to the disk
6158           every 5 minutes, lesses HD activity and CPU usage.
6159           Messages can be redirected, allowing admins to configure
6160           one single logfile for all server messages.
6161           the silc_log_quick global variable to activate fast-logging.
6162           Affected files lib/silcutil/silclog.[ch]
6163
6164         * Changed some code to conform new silclog APIs. Affected
6165           files are doc/example_silcd.conf.in, silcd/server.c
6166           irssi/src/silc/core/silc-core.c, silcd/serverconfig.[ch],
6167           silcd/silcd.c.
6168
6169         * Fixed a memory leak that could occur in some situations.
6170           Affected file silcd/serverconfig.c.
6171
6172 Sat Jan  5 13:37:29 EET 2002  Pekka Riikonen <priikone@silcnet.org>
6173
6174         * Added the silc_client_del_client to remove the client from
6175           all channels as well.  Affected file lib/silcclient/idlist.c.
6176
6177         * Fixed the client library to correctly remove the client
6178           from all channels when the client entry is being destroyed.
6179           Affected file lib/silcclient/client_notify.c, command.c.
6180
6181         * Added auto-nicking support to the client library.  If the
6182           applicatio now sets client->nickname it will be sent to the
6183           server after connecting by the library.  This way for example
6184           SILCNICK (or IRCNICK) environment variables will have effect
6185           and always change the nickname automatically to whatever
6186           it is wanted.  Affected file lib/silcclient/client.[ch].
6187
6188         * Renamed silc_server_command_bad_chars to the
6189           silc_server_name_bad_chars and moved it to the
6190           silcd/server_util.[ch].  Added also new function
6191           silc_server_name_modify_bad to return nickname that
6192           includes bad characters as new nickname without those
6193           bad characters.  This check and modify is now used in
6194           silc_server_new_client when the username is initially set
6195           as nickname, so it must be checked to be valid nickname.
6196           Affected file silcd/packet_receive.c.
6197
6198         * The nickname length is now taken from the packet for real
6199           and not trusted to strlen() since it clearly can return
6200           wrong length for nickname including bad characters.  This
6201           also applies to channel names.  Affected file silcd/command.c.
6202
6203         * Removed the lib/silcsilm/modules directory.  Modules are now
6204           compiled into the lib/silcsim.  Fixed the copying of the
6205           modules to follow symbolic links in Makefile.am.pre.
6206
6207 Wed Jan  2 18:56:21 EET 2002  Pekka Riikonen <priikone@silcnet.org>
6208
6209         * Fixed silc_string_regexify list creation.  Fixes bugs with
6210           BAN and INVITE commands in server.  The affected file is
6211           lib/silcutil/unix/silcunixutil.c.
6212
6213 Sun Dec 30 13:41:34 EET 2001  Pekka Riikonen <priikone@silcnet.org>
6214
6215         * Removed the command destructor entirely from the server's
6216           command and command reply routines.  It is not needed, and
6217           its usage was buggy and caused crashes.  Affected files are
6218           silcd/command[_reply].[ch].
6219
6220 Fri Dec 28 12:43:22 EET 2001  Pekka Riikonen <priikone@silcnet.org>
6221
6222         * Cancel protocol and NULL sock->protocol if timeout
6223           occurred during protocol.  Affected file silcd/server.c.
6224
6225         * Cancel protocol timeouts always before calling the final
6226           callback, to assure that after final callback is called
6227           no other state will be called for the protocol anymore.
6228           Affected file silcd/protocol.c.
6229
6230         * Print error log if incoming connection configuration could
6231           not be found.  Affected file silcd/server.c.
6232
6233         * Fixed JOIN command to correctly save the founder mode
6234           to the client on normal SILC server, when the channel
6235           was created by the router.  Affected file silcd/command.c.
6236
6237         * Fixed LIST command (hopefully) to send correct reply
6238           packets.  Affected file silcd/command.c.
6239
6240 Thu Dec 20 16:14:52 CET 2001  Pekka Riikonen <priikone@silcnet.org>
6241
6242         * The silc_packet_receive_process now returns FALSE if the
6243           read data was invalid packet, and TRUE if it was ok.
6244
6245           The server now checks that if unauthenticated connection
6246           sends data and its processing fails the server will close
6247           the connection since it could be a malicious flooder.
6248
6249           Affected files lib/silccore/silcpacket.[ch], silcd/server.c.
6250
6251 Wed Dec 19 21:31:25 EET 2001  Pekka Riikonen <priikone@silcnet.org>
6252
6253         * Make sure the warning about error opening a log file is
6254           printed only once and not everytime it fails (produces
6255           too much useless log).  Affected file lib/silcutil/silclog.c.
6256
6257 Wed Dec 19 18:21:51 CET 2001  Johnny Mnemonic <johnny@themnemonic.org>
6258
6259         * Made the silc_server_daemonise() function more readable.
6260           Affected file silcd/server.c.
6261
6262         * Pid file is now optional, the user may comment it out from
6263           the config file. Removed define SILC_SERVER_PID_FILE, we
6264           don't need a default any longer.  Affected file
6265           configure.in.pre, lib/Makefile.am.pre.
6266
6267         * Make some use of the pid file. The server now dies at startup
6268           if it detects a valid pid file on his path. The server would
6269           die anyway in this circumstance, because of the bind() failure.
6270           Affected file silcd/silcd.c.
6271
6272         * No longer compiling lib/dotconf.
6273
6274 Mon Dec 17 18:24:27 EET 2001  Pekka Riikonen <priikone@silcnet.org>
6275
6276         * Fixed JOIN command parsing not to crash.  Affected file
6277           lib/silcclient/command.c.
6278
6279         * Fied the NICK_CHANGE notify to add the new client entry
6280           even it is resolved.  This removes an <[unknown]> nick
6281           thingy bug in the client.  Affected file is
6282           lib/silcclient/client_notify.c.
6283
6284         * Do not try to allocate 0 bytes (efence does not like it)
6285           in lib/silccore/silccomand.c when encoding payload.
6286
6287         * Do not take IRCNICK as nickname in Irssi SILC client since
6288           it is not possible to set nickname before hand connecting
6289           the server (TODO has an entry about adding auto-nicking
6290           support).
6291
6292         * Changed the silc_server_command_pending to check whether
6293           there already exists an pending entry with the specified
6294           command, command identifier and pending callback.  This is
6295           to fix IDENTIFY and WHOIS related crashes that may register
6296           multiple pending commands with same identifier.  Affected
6297           file silcd/command.c.
6298
6299         * Fixed the server to reconnect to the router even if it
6300           was already reconnecting and EOF was received.  This to
6301           fix a possibility that the server wouldn't ever try to
6302           auto-reconnect to the router.  Affected file silcd/server.c.
6303
6304 Sat Dec 15 20:31:50 EET 2001  Pekka Riikonen <priikone@silcnet.org>
6305
6306         * Fixed the server's password authentication to use the
6307           length of the locally saved password, and not the one
6308           sent in the packet.  Affected file silcd/protocol.c.
6309
6310         * Fixed same password authentication problem in the
6311           Authentication Payload handling routines in
6312           lib/silccore/silcauth.c.
6313
6314         * Yet another password authentication problem fixed with
6315           channel password handling in silcd/command.c.
6316
6317 Mon Dec 10 19:57:40 EET 2001  Pekka Riikonen <priikone@silcnet.org>
6318
6319         * If first character of string in silc_parse_userfqdn is '@'
6320           then do not parse it.  Affected file is
6321           lib/silcutil/silcutil.c.
6322
6323 Sun Dec  9 22:18:50 EET 2001  Pekka Riikonen <priikone@silcnet.org>
6324
6325         * Fixed minor bug in IDENTIFY command reply sending, which
6326           caused various weird problems during JOIN when it was
6327           resolving names for users.  Affected file silcd/command.c.
6328
6329 Sun Dec  9 19:18:41 EET 2001  Pekka Riikonen <priikone@silcnet.org>
6330
6331         * Fixed the IDENTIFY command reply sending to chech better valid
6332           clients.  It was possible to send incomplete list of replies.
6333           Affected file silcd/command.c.
6334
6335 Sat Dec  8 15:58:31 EET 2001  Pekka Riikonen <priikone@silcnet.org>
6336
6337         * Added silc_client_command[s]_[un]register functions now to
6338           dynamically register the commands in client library.  Removed
6339           the static table of commands.  This allows the client library
6340           to call commands without causing the application to know about
6341           what commands library has called.
6342
6343           Removed the INFO command reply kludge to detect when the command
6344           was called by library.  Now library use its own command reply
6345           function for INFO command.
6346
6347           Added function silc_client_command_call to call a command.
6348           Application can use it to call command, not access the structure
6349           directly.
6350
6351           Now all commands that are sent by the client library (not
6352           explicitly sent by application) use own command reply functions.
6353
6354           Affected files around lib/silcclient/ and in
6355           irssi/src/silc/core/.
6356
6357         * Fixed the WHOIS command reply sending to chech better valid
6358           clients.  It was possible to send incomplete list of replies.
6359
6360           Fixed the WHOIS and IDENTIFY to send the request to router
6361           if normal server did not do it and did not find any results.
6362
6363           Affected file silcd/command.c.
6364
6365 Thu Dec  6 17:21:06 EET 2001  Pekka Riikonen <priikone@silcnet.org>
6366
6367         * Moved the internal data from SilcClient context into its
6368           own file, not accesible to application.  Affected files
6369           lib/silcclient/client.h and lib/silcclient/client_internal.h,
6370           and other files in client library.
6371
6372 Thu Dec  6 10:37:55 EET 2001  Pekka Riikonen <priikone@silcnet.org>
6373
6374         * Added doc/examples installation target in Makefile.am.pre.
6375           A patch by salo.
6376
6377 Tue Dec  4 17:43:19 EET 2001  Pekka Riikonen <priikone@silcnet.org>
6378
6379         * If NO_SUCH_CLIENT_ID notify is received for WHOIS or IDENTIFY
6380           commands the found client entry will be removed from the
6381           cache, after notifying application about the error.  Affected
6382           file lib/silcclient/command_reply.c.
6383
6384         * Changed the /MSG to check for exact nickname user gave, and
6385           not let `nick' match `nick@host' if it is only one found.  Now,
6386           user must type the exact nickname (like nick@host2) even if
6387           there are no more than one same nicks found.  This is to avoid
6388           a possibility of sending nickname to wrong nickname since
6389           `nick' could match `nick@host'.  Affected file is
6390           irssi/src/core/silc-servers.c.
6391
6392 Mon Dec  3 18:49:45 EET 2001  Pekka Riikonen <priikone@silcnet.org>
6393
6394         * Do not print "you are now server operator" or similar when
6395           giving /away command.  Affected files are
6396           irssi/src/silc/core/client_ops.c, silc-servers.h.
6397
6398         * Made the silc_server_command_pending_error_check to send
6399           the same command reply payload it received back to the
6400           original sender of the command.  This way all arguments
6401           that was received by the server will be received by the
6402           client too.  Affected file silcd/command.c.
6403
6404         * Added the silc_idcache_add to return the created cache entry
6405           to a pointer.  Affected file lib/silccore/silcidcache.[ch].
6406
6407         * Add global clients to expire if they are not on any channel.
6408           This is because normal server will never know if they signoff
6409           if they are not on any channel.  The cache expiry will take
6410           case of these entries.  This is done by normal servers only.
6411           The affected files are silcd/command_reply.c,
6412           silcd/idlist.[ch], silcd/server and silcd/packet_receive.c.
6413
6414         * If server receives invalid ID notification for WHOIS or
6415           IDENTIFY and the ID exists in the lists, it is removed.
6416           Affected file silcd/command_reply.c.
6417
6418         * If NO_SUCH_CLIENT_ID is received for WHOIS or IDENTIFY command
6419           in client then client entry that it matches is searched and
6420           the nickname is printed on the screen for user.  Affected
6421           file irssi/src/silc/core/client_ops.c.
6422
6423 Mon Dec  3 11:56:59 EET 2001  Pekka Riikonen <priikone@silcnet.org>
6424
6425         * Use cache entry expire time in the LIST command reply to
6426           purge old entries from the cache after the LIST command
6427           reply has been received.  This way we don't have non-existent
6428           entries in the cache for too long.  Affected file is
6429           silcd/command_reply.c.
6430
6431 Sun Dec  2 23:29:07 EET 2001  Pekka Riikonen <priikone@silcnet.org>
6432
6433         * If we are normal server, and we've not resolved client info
6434           in WHOIS or IDENTIFY from router, and it is global client,
6435           we'll check whether it is on some channel.  If it is not
6436           then we cannot be sure about its validity and will resolve it
6437           from router.  Fixes a bug in WHOIS and IDENTIFY.  Affected
6438           file silcd/command.c.
6439
6440         * Search channel by name (if possible) rather than by ID
6441           in IDENTIFY command's command reply.  Affected file is
6442           silcd/command_reply.c.
6443
6444 Sun Dec  2 13:48:46 EET 2001  Pekka Riikonen <priikone@silcnet.org>
6445
6446         * Distribute to the channel passphrase in CMODE_CHANGE notify.
6447           Updated specs and implemented it.  Affected file silcd/command.c,
6448           silcd/packet_send.c and silcd/packet_receive.c.
6449
6450         * Implemented the <founder auth> payload handling in the JOIN
6451           command.  If provided all conditions for channel joining
6452           except requirement to provide correct passphrase can be
6453           overrided by the channel founder.  Updated the protocol specs.
6454           Affected file silcd/command.c.
6455
6456           Added support for founder auth in JOIN command in client
6457           library.  Fixed the parsing of the JOIN command now to support
6458           all options as they should be.  The affected file is
6459           lib/silcclient/command.c.
6460
6461         * Optimized the WHOIS and IDENTIFY commands to send the request
6462           to router only if it includes nicknames or other names.  If
6463           they include only IDs then check the local cache first before
6464           routing.  Affected file is silcd/command.c.
6465
6466         * Added channels topic announcements.  Affected file is
6467           silcd/packet_receive.c and silcd/server.c.
6468
6469         * Fixed the silc_server_send_notify_topic_set to really destine
6470           the packet to channel.  Affected file silcd/packet_send.c.
6471
6472         * Fixed a crash in CHANNEL_CHANGE notify handling in the client
6473           library.  Affected file lib/silcclient/client_notify.c.
6474
6475         * Added UMODE announcements.  Affected file silcd/server.c.
6476
6477 Sat Dec  1 12:52:39 EET 2001  Pekka Riikonen <priikone@silcnet.org>
6478
6479         * Memory leak fixes in:
6480
6481           lib/silcutil/silcsockconn.c
6482           lib/silcske/silcske.c
6483           lib/silcske/groups.c
6484           lib/silccrypt/rsa.c
6485           lib/silccrypt/silcpkcs.c
6486           lib/silccore/silccommand.c
6487           lib/silccore/silcidcache.c
6488           silcd/idlist.c
6489           silcd/packet_send.c
6490           silcd/command.c
6491
6492         * ROBOdoc documented the lib/silcske/groups.h file and a
6493           bit changed the interface for better.
6494
6495 Thu Nov 29 22:12:50 EET 2001  Pekka Riikonen <priikone@silcnet.org>'
6496
6497         * Update the client entry context in the ID cache after
6498           nick change.  Affected file lib/silcclient/command.c.
6499           Fixes the CUMODE command when regaining founder privileges,
6500           and a little WHOIS problem.
6501
6502         * Fixed silc_net_gethostbyname to correctly call the
6503           inet_ntop.  Affected file lib/silcutil/silcnet.c.
6504
6505 Thu Nov 29 19:31:23 EET 2001  Pekka Riikonen <priikone@silcnet.org>'
6506
6507         * Added IPv6 support checking to the configure.in.pre, added
6508           also --enable-ipv6 option to override the check.  Affected
6509           file configure.in.pre.
6510
6511         * The silc_thread_create now calls the start function
6512           directly if threads support is not compiled in.  Removes
6513           ugly #ifdef's from generic code.  Affected files are
6514           lib/silcutil/unix/silcunixthread, win32/silcwin32thread.c.
6515
6516         * Added silc_net_gethostby[name/addr]_async to asynchronously
6517           resolve.  Affected files are lib/silcutil/silcnet.[ch].
6518
6519         * Added support for rendering IPv6 based server, client and
6520           channel IDs.  Affected file lib/silcutil/silcutil.c.
6521
6522         * Added support for creating IPv6 based server IDs.  Affected
6523           file is silcd/serverid.c.
6524
6525 Wed Nov 28 23:46:09 EET 2001  Pekka Riikonen <priikone@silcnet.org>'
6526
6527         * Added silc_net_gethostby[addr/name] into the
6528           lib/silcutil/silcnet.[ch].  Added IPv6 support to Unix network
6529           routines.  Added silc_net_is_ip[4/6].  Affected file is
6530           lib/silcutil/unix/silcunixnet.c.  All routines that take
6531           address as argument now supports both IPv4 and IPv6 addresses.
6532
6533 Mon Nov 26 18:09:48 EET 2001  Pekka Riikonen <priikone@silcnet.org>'
6534
6535         * Fixed LIST command reply sending in server.  Affected file
6536           silcd/command.c.
6537
6538         * Server now sends the kicker's client ID in the KICK notify
6539           to the kicked client.  Affected file silcd/command.c.
6540
6541         * The client library now parses the kickers client ID and
6542           UI displays it.  Affected files lib/silcclient/client_notify.c
6543           and irssi/src/silc/core/silc-channels.c, module-formats.c.
6544
6545         * Made all payload parsing function prototypes consistent.
6546           They all take now const unsigned char * and uint32 pair as
6547           the payload data instead of SilcBuffer.  Changes all around
6548           the source tree.  Other unsigned char* -> const unsigned char*
6549           changes around the tree as well.
6550
6551         * Optimized SFTP client and server packet sending not to
6552           allocate new buffer for each packet but to recycle the
6553           first allocated buffer.  Affected files are
6554           lib/silcsftp/sftp_client.c, sftp_server.c, sftp_util.[ch].
6555
6556         * Optimized the SFTP client to use SilcList instead of
6557           SilcDList for requests, because it is faster.  Affected file
6558           is lib/silcsftp/sftp_client.c.
6559
6560         * Moved the ID Payload routines from lib/silccore/silcpayload.[ch]
6561           into lib/silccore/silcid.[ch].
6562
6563           Renamed silcpayload.[ch] into silcargument.[ch].
6564
6565 Mon Nov 26 15:01:53 CET 2001  Pekka Riikonen <priikone@silcnet.org>
6566
6567         * If client entry is deleted with active key agreement
6568           session, abort the session.
6569
6570           The silc_client_abort_key_agreement now calls the completion
6571           callback with new SILC_KEY_AGREEMENT_ABORTED status.
6572
6573           Affected file lib/silcclient/silcapi.h, client_keyagr.c and
6574           idlist.c.
6575
6576 Sun Nov 25 18:01:45 EET 2001  Pekka Riikonen <priikone@silcnet.org>
6577
6578         * Don't use __restrict in older GCC's.  Affected file is
6579           lib/silcmath/mpi/mpi-priv.h.  A patch by salo.
6580
6581         * silc_net_localhost now attempts to reverse lookup the
6582           IP/hostname.  Affected file lib/silcutil/silcnet.c.
6583
6584         * Defined <founder auth> argument to the SILC_COMMAND_JOIN
6585           command.  It can be used to gain founder privileges at
6586           the same time when joining the channel.
6587
6588           Defined that the SILC_NOTIFY_TYPE_KICKED send the
6589           kicker's client ID as well.  Updated protocol specs.
6590
6591           Defined that the server must send SILC_COMMAND_IDENTIFY
6592           command reply with error status to client who sent
6593           private message with invalid client ID.
6594
6595           Updated the protocol specification.
6596
6597         * Added silc_server_send_command_reply to send any
6598           command reply.  Affected file silcd/packet_send.[ch].
6599
6600         * Added silc_id_payload_encode_data to encode ID payload
6601           from raw ID data.  Affected file lib/silccore/silcpayload.[ch].
6602
6603         * The server now send IDENTIFY command reply with error
6604           status if client ID in private message is invalid.  Affected
6605           file silcd/packet_receive.c.
6606
6607         * Save the server key file with server's IP address in
6608           the filename instead of hostname.  The affected file is
6609           irssi/src/silc/core/client_ops.c.
6610
6611 Sat Nov 24 20:08:22 EET 2001  Pekka Riikonen <priikone@silcnet.org>
6612
6613         * Typo fixes in irssi/src/fe-common/silc/module-formats.c.
6614           A patch by Sunfall.
6615
6616         * Added libtool support for compiling shared objects in
6617           lib/silcsim.  Affected file configure.in.pre and
6618           lib/silcsim/Makefile.am.  Original patch by cras.
6619
6620 Fri Nov 23 23:30:59 EET 2001  Pekka Riikonen <priikone@silcnet.org>
6621
6622         * Pid file configuration, and server's config file fixes
6623           patch by toma.  Updated CREDITS file.
6624
6625 Sun Nov 18 01:34:41 EET 2001  Pekka Riikonen <priikone@silcnet.org>
6626
6627         * Fixed silc_client_channel_message to not try to decrypt
6628           the message twice if it resolved the destination client
6629           information.  This could cause of dropping one channel
6630           message.  Affected file lib/silcclient/client_channel.c.
6631
6632 Wed Nov 14 23:44:56 EET 2001  Pekka Riikonen <priikone@silcnet.org>
6633
6634         * Added silc_client_run_one into lib/silcclient/silcapi.h and
6635           lib/silcclient/client.c. This function is used when the SILC
6636           Client is run under some other scheduler, or event loop or
6637           main loop.  On GUI applications, for example this may be
6638           desired to used to run the client under the GUI application's
6639           main loop.  Typically the GUI application would register an
6640           idle task that calls this function multiple times in a second
6641           to quickly process the SILC specific data.
6642
6643 Wed Nov 14 19:16:52 CET 2001  Johnny Mnemonic <johnny@themnemonic.org>
6644
6645         * Fixed silc_server_drop() for dropping the supplementary
6646           groups as well, this could cause a security hole on some
6647           systems.
6648
6649 Wed Nov 14 16:22:25 EET 2001  Pekka Riikonen <priikone@silcnet.org>
6650
6651         * __pid_t -> pid_t in lib/silccrypt/silcrng.c.  A patch by
6652           johnny.
6653
6654         * Write PID file after dropping privileges.  Added -F option
6655           to run server on foreground.  A patch by debolaz.
6656           Affected files silcd/server.c, silcd/silcd.c.
6657
6658         * Fixed MOTD to return the MOTD file server name.  Affected
6659           file silcd/command.c.
6660
6661         * Added INFO command reply handling to the Irssi SILC Client.
6662           Affected file irssi/src/silc/core/client_ops.c.
6663
6664 Wed Nov 14 00:18:08 EET 2001  Pekka Riikonen <priikone@silcnet.org>
6665
6666         * Fixed the silc_idcache_list_* routines to really support
6667           the dynamic list.  Fixes a crash.  Affected file is
6668           lib/silccore/silcidcache.c.
6669
6670         * Fixed the LIST command reply to really call LIST command's
6671           pending callbacks.  Affected file silcd/command_reply.c.
6672
6673 Tue Nov 13 00:49:17 EET 2001  Pekka Riikonen <priikone@silcnet.org>
6674
6675         * Update conn->local_entry->nickname after giving NICK
6676           command.  Affected file lib/silcclient/command.c.
6677
6678 Sun Nov 11 23:43:02 PST 2001  Brian Costello <bc@wpfr.org>
6679
6680         * Added the [pid] option to the silcd configuration file
6681
6682           Affected files: serverconfig.[ch] and silcd.c
6683
6684 Sun Nov 11 23:56:39 EET 2001  Pekka Riikonen <priikone@silcnet.org>
6685
6686         * Save fingerprint in WHOIS command reply in server.
6687           Affected file silcd/command_reply.c.
6688
6689         * Fixed NICK commands pending callback registration.
6690           Affected file lib/silcclient/command.c.
6691
6692 Sun Nov 11 10:49:10 EET 2001  Pekka Riikonen <priikone@silcnet.org>
6693
6694         * Use ++server->cmd_ident when sending commands in server,
6695           instead of random number.  Affected file silcd/command.c.
6696
6697         * Fixed GETKEY command reply to call actually GETKEY pending
6698           command callbacks.  Affected file silcd/command_reply.c.
6699
6700         * A bit stricter check for nicknames.  Check for same nickname
6701           in NICK command also.  Affected file silcd/command.c.
6702
6703         * Do not call INFO command everytime client ID changes, only
6704           during first connecting.  Affected file lib/silcclient/client.c.
6705
6706         * Set the new nickname only after successful command reply for
6707           NICK command is returned by server.  Affected file
6708           lib/silcclient/command.c.
6709
6710         * Remove nicknames from nicklist during server_signoff notify.
6711           Should fix /NAMES bit more.  The affected file is
6712           irssi/src/silc/core/silc-channels.c.
6713
6714         * Added `fingerprint' field to the SilcIDListData in the
6715           silcd/idlist.h to hold the fingerprint of the client's
6716           public key.
6717
6718           Send the fingerprint of the client's public key in WHOIS
6719           command reply.
6720
6721           Affected files silcd/command.c, and silcd/idlist.[ch].
6722
6723         * Added silc_fingerprint into lib/silcutil/silcutil.[ch] to
6724           create fingerprint from given data.
6725
6726         * Show the fingerprint of the client's public key in WHOIS.
6727           Affected files irssi/src/module-formats.[ch] and
6728           irssi/src/silc/core/client_ops.c.
6729
6730         * Format the multiple same nicknames also during JOIN and
6731           NICK_CHANGE notifys.  Affected file is
6732           lib/silcclient/client_notify.c.
6733
6734         * Do not print error on screen for invalid private message
6735           payload since it can come if someone is sending private
6736           messages with wrong key.  Affected file
6737           lib/silccore/silcprivate.c.
6738
6739         * Fixed multiple concurrent /PING crash.  Affected file
6740           lib/silcclient/command.c.
6741
6742         * Changed the wrong ID encoding.  All IP addresses must be
6743           in MSB first order in encoded format.  They were encoded
6744           wrong and was in LSB format.  Affected files are
6745           silcd/serverid.c, lib/silcutil/silcutil.c.
6746
6747         * Remove silc_net_addr2bin_ne from lib/silcutil/silcnet.[ch].
6748
6749         * Call the `connect' client operation through the scheduler
6750           in case of error.  Affected file lib/silcclient/client.c.
6751
6752         * Call the `failure' client operation even if the error
6753           occurred locally during a protocol.  Affected file is
6754           lib/silcclient/protocol.c.
6755
6756         * Added support of sending LIST command to router from normal
6757           server.  This way normal server can get list of all channels
6758           in the network too.  Fixed the channel list sending in the
6759           server too.  Affected files are silcd/command.c, and
6760           silcd/command_reply.[ch].
6761
6762         * Added silc_server_update_channels_by_server and
6763           silc_server_remove_channels_by_server.  They are used during
6764           disconnection of primary router and in backup router protocol.
6765           Affected file silcd/server_util.[ch], silcd/server.c and
6766           silcd/server_backup.c.
6767
6768         * Fixed channel adding to global list in IDENTIFY command
6769           reply in server.  Affected file silcd/command_reply.c.
6770
6771 Sat Nov 10 21:39:22 EET 2001  Pekka Riikonen <priikone@silcnet.org>
6772
6773         * If the incoming packet type is REKEY or REKEY_DONE process
6774           that packet always synchronously.  Fixes yet another MAC
6775           failed error on slow (dialup) connections.  Affected file
6776           lib/silcclient/client.c and silcd/server.c.
6777
6778 Thu Nov  8 22:21:09 EET 2001  Pekka Riikonen <priikone@silcnet.org>
6779
6780         * Call check_version SKE callback for initiator too.  Affected
6781           file lib/silcske/silcske.c.
6782
6783         * Implemented fix for security hole found in the SKE that was
6784           fixed in the specification few days back; the initiator's
6785           public key is now added to the HASH value computation.
6786           Added backwards support for the old way of doing it too, for
6787           old clients and old servers.  Affected file is
6788           lib/silcske/silcske.c.
6789
6790         * Enabled mutual authentication by default in SKE.  If initiator
6791           is not providing mutual authentication the responder will
6792           force it.  This will provide the proof of posession of the
6793           private key for responder.  The affected files are
6794           lib/silcclient/protocol.c and silcd/protocol.c.
6795
6796         * Do not cache anymore the server's public key during SKE.
6797           We do mutual authentication so the proof of posession of
6798           private key is done, and if the server is authenticated in
6799           conn auth protocol with public key we must have the public
6800           key already.  Affected file silcd/protocol.c.
6801
6802         * Added new global debug variable: silc_debug_hexdump.  If
6803           it is set to TRUE SILC_LOG_HEXDUMP will be printed.  Affected
6804           file lib/silcutil/silclog.[ch].
6805
6806         * Fixed compilation warning due to char * -> const char *.
6807           Affected files lib/silcutil/silcnet.h, and
6808           lib/silccore/silcauth.[ch].
6809
6810 Wed Nov  7 20:43:03 EET 2001  Pekka Riikonen <priikone@silcnet.org>
6811
6812         * Fixed CMODE command when new channel key was created.  If
6813           the creation failed the old key was removed.  Next time giving
6814           same command would crash the server since the old key was
6815           freed already.  Affected file silcd/command.c.
6816
6817         * Fixed the silc_server_announce_get_channels to not crash
6818           on reconnect.  Affected file silcd/server.c.
6819
6820 Wed Nov  7 17:15:07 EET 2001  Pekka Riikonen <priikone@silcnet.org>
6821
6822         * Added silc_log_set_debug_string function to set a regex
6823           string to match for debug output.  Only the function names,
6824           or filenames matching the given debug string is actually
6825           printed.  This way it is possible to filter out those debug
6826           strings that user is not interested in.
6827
6828           Fixed a bug in silc_string_regexify.
6829
6830           Affected files lib/silcutil/silclog.[ch], and
6831           lib/silcutil/unix/silcunixutil.c.
6832
6833         * Changed the -d options in both server and Irssi SILC client
6834           to take the debug string as argument.  Affected files
6835           silcd/silcd.c and irssi/src/silc/core/silc-core.c.
6836
6837 Tue Nov  6 21:31:54 EET 2001  Pekka Riikonen <priikone@silcnet.org>
6838
6839         * Added silc_hash_babbleprint to create a Bubble Babble
6840           Encoded fingerprint.  The encoding is developed by Antti
6841           Huima (draft-huima-babble-01.txt), and it creates human
6842           readable strings out of binary data.  Affected file
6843           lib/silccrypt/silchash.[ch].
6844
6845         * Print the babble print now in addition of fingerprint as well
6846           in Irssi SILC client.  Affected files are
6847           irssi/src/fe-common/silc/module-formats.[ch],
6848           irssi/src/fe-common/silc/core/client_ops.c.
6849
6850 Sun Nov  4 23:37:28 EET 2001  Pekka Riikonen <priikone@silcnet.org>
6851
6852         * Fixed a security problem found in SKE.  The initiator's
6853           public key too is now added to the HASH hash value creation
6854           which is signed by the responder to create the SIGN value.
6855           This will prevent anyone in the middle to lie to the responder
6856           about the initiator's public key.  If this is done now, the
6857           man in the middle will get caught.  Updated the protocol
6858           specification.
6859
6860 Sun Nov  4 11:43:53 EET 2001  Pekka Riikonen <priikone@silcnet.org>
6861
6862         * Better installation directory handling.  Configure module
6863           paths and other paths automatically to example_silc* files
6864           in doc/.  A patch by toma.
6865
6866         * Fixed compiler warning from MPI library, and from SILC RNG.
6867           A patch by johnny.
6868
6869         * Added SILC_SERVER_PID_FILE to define the pid file for server.
6870           It can be configured with ./configure.  A patch by toma.
6871
6872 Sat Nov  3 23:48:23 EET 2001  Pekka Riikonen <priikone@silcnet.org>
6873
6874         * Find correct make to use in prepare-clean.  A patch by
6875           toma.  Affected file prepare-clean.
6876
6877 Sat Nov  3 22:04:00 PST 2001  Brian Costello <bc@mksecure.com>
6878
6879         * Added irssi variables use_auto_addr, auto_bind_ip,
6880           auto_bind_port and auto_public_ip.
6881
6882         * Changed the interface for silc_client_send_key_agreement
6883           in lib/silcclient/silcapi.h
6884
6885         Affected files:
6886
6887          irssi/src/silc/core/silc-core.c
6888          irssi/config
6889          lib/silcclient/silcapi.h
6890          irssi/src/silc/core/silc-channels.c
6891          lib/silcclient/client_keyagr.c
6892          irssi/docs/help/key
6893
6894 Sat Nov  3 17:48:55 EET 2001  Pekka Riikonen <priikone@silcnet.org>
6895
6896         * Added silc_pkcs_public_key_compare to compare two
6897           public keys.  Affected file lib/silccrypt/silcpkcs.[ch].
6898
6899         * Check that the client who set the founder mode on the
6900           channel is the same client that is giving the founder
6901           mode to itself.  It is done by comparing the saved public
6902           key (it is saved even in the authentication is passphrase).
6903           Affected file silcd/command.c.
6904
6905 Fri Nov  2 18:52:08 EST 2001  Pekka Riikonen <priikone@silcnet.org>
6906
6907         * Do not process packet for disconnected socket connection.
6908           Affected file lib/silccore/silcpacket.c.
6909
6910         * Process the DISCONNECT packet through scheduler in the
6911           client library.  Affected file lib/silcclient/client.c.
6912
6913         * Fixed the silc_client_packet_parse to not to increase
6914           the packet sequence number if the conn->sock and the
6915           current socket connection is not same.  This can happen
6916           for example during key agreement when the conn includes
6917           multiple socket connections (listeners).  Affected file
6918           lib/silcclient/client.c.
6919
6920         * The sender of the file transfer request now provides also
6921           the pointer (listener) for the key exchange protocol.  If
6922           the listener cannot be created then it sends empty key
6923           agreement and lets the receiver provide the listener.
6924
6925           Added `local_ip' and `local_port' arguments to the
6926           silc_client_file_send.  If they are provided they are used,
6927           if not then it will attempt to find local IP address, if
6928           not found or bind fails then the remote client will provide
6929           the listener.
6930
6931           Affected files are lib/silcclient/client_ftp.c and
6932           lib/silcclient/silcapi.h.
6933
6934         * Extended the FILE SEND command to support defining the
6935           local IP and port for key exchange listener.  They are
6936           optional.  Affected file irssi/src/silc/core/silc-servers.c.
6937
6938 Thu Nov  1 22:10:07 EST 2001  Pekka Riikonen <priikone@silcnet.org>
6939
6940         * Defined to WHOIS command reply the sending of fingerprint
6941           of the client's public key (if the proof of posession of the
6942           corresponding private key is verified by the server).
6943           Updated to the protocol specification.
6944
6945         * Added support of receiving the client's public key's
6946           fingerprint in command reply in client library.  Affected
6947           file is lib/silcclient/command_reply.c, and
6948           lib/silcclient/idlist.[ch].
6949
6950 Thu Nov  1 18:06:12 EST 2001  Pekka Riikonen <priikone@silcnet.org>
6951
6952         * Do not send over 128 chars long nickname to the server
6953           in NICK command.  Affected file lib/silcclient/command.c.
6954
6955         * Do not send over 256 chars long channel names to the server
6956           in JOIN command.  Affected file lib/silcclient/command.c.
6957
6958 Tue Oct 30 22:48:59 EST 2001  Pekka Riikonen <priikone@silcnet.org>
6959
6960         * Assure that silc_server_close_connection cannot be called
6961           twice for same socket context.  Affected file is
6962           silcd/server.c.
6963
6964 Tue Oct 30 16:58:14 EST 2001  Pekka Riikonen <priikone@silcnet.org>
6965
6966         * Send error message to application if opening file for
6967           writing during file transfer fails.  Affected file is
6968           lib/silcclient/client_ftp.c.
6969
6970           Remove all file transfer sessions for a client that we're
6971           removing from ID cache.
6972
6973           Affected file is lib/silcclient/client_ftp.c.
6974
6975         * Fixed silc_net_addr2bin to return correct address.  Affected
6976           file lib/silcutil/[unix/win32]/silc[unix/win32]net.c.
6977
6978         * Fixed file transfer session removing on signoff notify.
6979           Affected file irssi/src/silc/core/silc-servers.c.
6980
6981         * Added the SilcClientFileError to be returned in the monitor
6982           callback.  Added NO_SUCH_FILE and PERMISSION_DENIED errors.
6983           Affected file lib/silcclient/silcapi.h.
6984
6985 Mon Oct 29 17:43:04 EST 2001  Pekka Riikonen <priikone@silcnet.org>
6986
6987         * Fixed a crash in silc_client_ftp_free_sessions and
6988           silc_client_ftp_session_free_client.  Affected file
6989           lib/silcclient/client_ftp.c.
6990
6991         * Added `disabled' field in the SilcChannelEntry in the server
6992           to indicate if the server entry is disabled.  Affected file
6993           silcd/idlist.h, silcd/command[_reply].c.
6994
6995         * SILC server adds now /var/run/silcd.pid everytime it is
6996           started.  Affected file silcd/silcd.c.
6997
6998         * Added silc_server_packet_send_clients to send a packet to
6999           the provided table of client entries.  Affected file
7000           silcd/packet_send.[ch].
7001
7002         * Fixed a crash in client resolving in client_prvmsg.c in
7003           client library.  Affected file lib/silcclient/client_prvmsg.c.
7004
7005         * Do not actually remove the client directly from ID cache
7006           during SERVER_SIGNOFF, but invalidate it.  This way we
7007           preserve the WHOWAS info for the client.  Affected file
7008           silcd/server_util.c.
7009
7010         * Fixed SERVER_SIGNOFF notify handling in the server.  The
7011           server is now able to process incoming SERVER_SIGNOFF notify
7012           for a server that it doesn't even know about.  It will remove
7013           the clients provided in the notify.  Affected file
7014           silcd/packet_receive.c.
7015
7016         * Check for partial packet in data queue after every packet that
7017           was found from the queue.  Return and wait for more data if
7018           there is partial data in queue.  Affected file is
7019           lib/silccore/silcpacket.c.
7020
7021 Sun Oct 28 18:46:27 EST 2001  Pekka Riikonen <priikone@silcnet.org>
7022
7023         * Added SilcClietFileError enum to indicate error in
7024           file transfer.  Added SILC_CLIENT_FILE_MONITOR_KEY_AGREEMENT
7025           and SILC_CLIENT_FILE_MONITOR_ERROR new monitor statuses.
7026           Affected files lib/silcclient/silcapi.h and
7027           lib/silcclient/client_ftp.c.
7028
7029         * Check that newsize in silc_buffer_realloc is larger than
7030           the old buffer's size.  Affected file lib/silcutil/silcbufutil.h.
7031
7032         * Added better monitor of file transfers.  It now monitors
7033           key agreement protocol during the file transfer too.  Added
7034           error reporting too.  Affected files
7035           irssi/src/silc/core/silc-servers.c,
7036           irssi/src/fe-common/silc/module-formats.[ch].
7037
7038         * Wrote a help file for FILE command.
7039
7040         * Added silc_rng_global_get_byte_fast to get not-so-secure
7041           random data as fast as possible.  Random data is read from
7042           /dev/urandom if available and from the SILC RNG if not
7043           available.  It is used in padding generation.  Affected file
7044           lib/silccrypt/silcrng.[ch].
7045
7046         * All packets in client library are now processed synchronously.
7047           Optimized packet processing a lot.  Affected file
7048           lib/silcclient/client.c.
7049
7050         * All server connection packets are processing synchronously
7051           now in server, to optimize packet processing.  Affected file
7052           silcd/server.c.
7053
7054         * Include files are installed now only in Toolkit distribution
7055           if make install is given.  Affected files: all Makefile.am's.
7056
7057 Thu Oct 25 22:44:06 EDT 2001  Pekka Riikonen <priikone@silcnet.org>
7058
7059         * Assure that silc_client_notify_by_server_resolve does not
7060           resolve the client information multiple times.  If it cannot
7061           be found by the first it cannot be found at all.  Affected
7062           file lib/silcclient/client_notify.c.
7063
7064         * Fixed WHOWAS command reply calling.  Affected file
7065           lib/silcclient/command_reply.c.
7066
7067         * Removed all references to silc_idlist_get_client from the
7068           Irssi SILC client since that call is internal call used by
7069           the library.  The Irssi SILC client will use now client
7070           retrieval functions found in silcapi.h.
7071
7072         * Fixed a bug in resolving nickname info before sending
7073           private message.  It used freed memory.  Affected file
7074           irssi/src/silc/core/silc-servers.c.
7075
7076 Thu Oct 25 19:04:49 EDT 2001  Pekka Riikonen <priikone@silcnet.org>
7077
7078         * Assure my_channels statistics cannot go negative in server.
7079           Affected files silcd/server.c, silcd/server_util.c.
7080
7081 Wed Oct 24 19:53:05 EDT 2001  Pekka Riikonen <priikone@silcnet.org>
7082
7083         * Upgraded dotconf 1.0.2 to 1.0.6 in lib/dotconf.
7084
7085 Tue Oct 23 13:51:19 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
7086
7087         * Win32 Toolkit changes.  Affected files
7088           win32/silc.dsw, win32/libsilc/libsilc.def,
7089           win32/libsilcclient/libsilc.def,
7090           lib/silcutil/silcutil.c, and
7091           lib/sftp/sftp_fs_memory.c.
7092
7093 Mon Oct 22 16:35:05 EDT 2001  Pekka Riikonen <priikone@silcnet.org>
7094
7095         * Added silc_net_localip to return local host's IP address.
7096           Affected file lib/silcutil/silcnet.[ch].
7097
7098         * If key exchange or rekey protocol is active for a connection
7099           parse all packets syncronously since there might be packets
7100           in packet queue that we are not able to process without first
7101           processing packets before them.  Affected file silcd/server,
7102           lib/silcclient/client.c.
7103
7104         * SilcPacketParserCallback now returns TRUE or FALSE to indicate
7105           whether library should continue processing the packet.
7106           Affected file lib/silccore/silcpacket.h.
7107
7108         * Added SilcSFTPMonitor callback, SilcSFTPMonitors and
7109           SilcSFTPMonitorData to SFTP server to monitor various
7110           SFTP client requests.  Affected file lib/silcsftp/silcsftp.h,
7111           lib/silcsftp/sftp_server.c.
7112
7113         * Added silc_file_size to return file size.  Affected file
7114           lib/silcutil/silcutil.[ch].
7115
7116         * Implemented the file transfer support for the client library.
7117           Added preliminary support for simple client to client one-file
7118           transmission.  Affected file lib/silcclient/client_ftp.c,
7119           lib/silccilent/client.[ch].
7120
7121         * Added new local command FILE to the Irssi SILC Client.
7122           It is used to perform the file transfer.  It has subcommands
7123           SEND, RECEIVE, SHOW and CLOSE.  Affected files
7124           irssi/src/silc/core/client_ops.c,
7125           irssi/src/silc/core/silc-server.[ch].
7126
7127 Mon Oct 22 12:50:08 EDT 2001  Pekka Riikonen <priikone@silcnet.org>
7128
7129         * Relay the SILC_PACKET_FTP in the server.  Affected files
7130           silcd/server.c and silcd/packet_receive.c.
7131
7132 Sun Oct 21 20:21:02 EDT 2001  Pekka Riikonen <priikone@silcnet.org>
7133
7134         * Renamed silc_file_read and silc_file_write to functions
7135           silc_file_readfile and silc_file_writefile.  Added function
7136           silc_file_open and silc_file_close.  Affected files
7137           lib/silcutil/silcutil.[ch].
7138
7139 Thu Oct 18 20:58:13 EDT 2001  Pekka Riikonen <priikone@silcnet.org>
7140
7141         * Resolve the client info when received private message or
7142           channel message for a client which nickname we don't know.
7143           Affected files lib/silcclient/client_prvmsg.c and
7144           lib/silcclient/client_channel.c.
7145
7146         * Do not crash in /KEY if client is not connected.  Affected
7147           file irssi/src/silc/core/silc-channels.c.
7148
7149         * Added SilcClientStatus field to the SilcClientEntry in the
7150           lib/silcclient/idlist.h.
7151
7152           Added SILC_CLIENT_STATUS_RESOLVING to mark that the entry
7153           is incomplete and is being resolved, it won't be resolved
7154           twice.
7155
7156           Make sure also that USERS command reply does not resolve
7157           twice information.  Affected file is
7158           lib/silcclient/command_reply.c.
7159
7160           Make sure that silc_client_get_clients_by_list does not
7161           resolve twice same information.
7162
7163         * Check for valid client->id in the silc_server_free_client_data.
7164           Affected file silcd/server.c.
7165
7166         * Fixed /GETKEY nick@server not to crash if the server entry
7167           is not found.  Affected file lib/silcclient/command.c.
7168
7169         * Fixed the silc_server_check_cmode_rights to check the
7170           requested modes correctly.  Affected file silcd/command.c.
7171
7172 Thu Oct 18 12:10:22 CEST 2001  Pekka Riikonen <priikone@silcnet.org>
7173
7174         * Better checks for non-printable chars in nick added.
7175           Affected file silcd/command.c.
7176
7177 Thu Oct 18 09:18:58 EDT 2001  Pekka Riikonen <priikone@silcnet.org>
7178
7179         * Call the silc_server_udpate_servers_by_server in the
7180           primary router that comes back online in the backup resuming
7181           protocol.  Otherwise it routes packets wrong.  Affected file
7182           silcd/server_util.[ch], silcd/server_backup.c.
7183
7184 Wed Oct 17 16:51:18 EDT 2001  Pekka Riikonen <priikone@silcnet.org>
7185
7186         * Added SILC_STR_UI8_[N]STRING[_ALLOC] formats to the
7187           lib/silcutil/silcbuffmt.[ch].
7188
7189         * Redefined the SILC packet header to include the padding
7190           length.  Affected file lib/silccore/silcpacket.[ch].
7191
7192         * Added SILC_PACKET_PADLEN_MAX macro to return the padding
7193           length for maximum padding up to 128 bytes).  Affected
7194           file lib/silccore/silcpacket.h.
7195
7196         * Removed all backwards support for old 0.5.x MAC thingies.
7197           The SILC packet header change makes it impossible to be
7198           backwards compatible.
7199
7200         * Send the ENDING packet with timeout in the backup resuming
7201           protocol.  This is to assure that all routers has connected
7202           to the primary router.  Affected file silcd/server_backup.c.
7203
7204         * Changed the RNG to take the first IV from random data.  It
7205           used to take it from zero actually.  Changed the RNG also
7206           to use /dev/urandom during session.  /dev/random is used
7207           in initialization.  Affected file lib/silccrypt/silcrng.[ch].
7208
7209 Tue Oct 16 20:45:49 EDT 2001  Pekka Riikonen <priikone@silcnet.org>
7210
7211         * Changed the SILC packet header to have the first two bytes
7212           (the packet length) encrypted.  Affected files aroung the
7213           code tree, lib/silccore/silcpacket.[ch].  Removed the
7214           SilcPacketCheckDecrypt callback.  It is not needed anymore
7215           since the silc_packet_receive_process will determine now
7216           whether the packet is normal or special.
7217
7218         * Implemented the unidirectional MAC keys.  Affected files
7219           lib/silcske/silcske.c, silcd/protocol.c and
7220           lib/silcclient/protocol.c.
7221
7222         * Implemented the packet sequence number to the MAC computation.
7223           Affected files lib/silccore/silcpacket.c, silcd/protocol.c,
7224           silcd/packet_send.c, silcd/server.c, lib/silcclient/client.c,
7225           lib/silcclient/protocol.c.
7226
7227 Mon Oct 15 17:42:55 EDT 2001  Pekka Riikonen <priikone@silcnet.org>
7228
7229         * Allow backup router to announce servers.  All servers
7230           announced by backup router are added to the global list
7231           automatically.  Update hte server's socket to our primary
7232           router also when backup router announces a server.
7233           Affected file silcd/packet_receive.c.
7234
7235         * Do not update the client->router in the function
7236           silc_server_udpate_clients_by_server if the client is on
7237           global list.  We might fail to find any specific server
7238           for locally connected clients and local cell clients.  They
7239           should still use the `from' and not `to' as client->router.
7240           This fixes backup router resuming protocol.  Affected file
7241           silcd/server_util.c.
7242
7243         * Decrease channel statistics count only if the channel
7244           deletion worked.  Affected files are silcd/server.c and
7245           silcd/server_util.c.
7246
7247         * Added silc_server_update_servers_by_server to update origin
7248           of all server entries.  Used during backup router protocol.
7249           Affected files silcd/server_util.[ch], silcd/server.c. and
7250           silcd/backup_router.c.
7251
7252         * ROBODoc documented the lib/silccrypt/silchmac.h.  Added new
7253           function silc_hmac_init, silc_hmac_update, silc_hmac_final,
7254           silc_hmac_get_hash and silc_hmac_get_name.  Affected file
7255           lib/silccrypt/silchmac.c.
7256
7257 Sun Oct 14 18:28:22 EDT 2001  Pekka Riikonen <priikone@silcnet.org>
7258
7259         * Assure that router cannot reroute the same channel message
7260           to the sender.  Affected file silcd/packet_receive.c.
7261
7262 Sat Oct 13 12:46:18 EDT 2001  Pekka Riikonen <priikone@silcnet.org>
7263
7264         * Made better checks that the channel message is not sent
7265           to the router it came from.  Affected file is
7266           silcd/packet_send.c.  Fixed memory leak too.
7267
7268         * Announce informations for incoming router connection, but
7269           only after checking if it is replaced by backup router.
7270           Affected file silcd/packet_receive.c.
7271
7272 Fri Oct 12 18:37:24 EDT 2001  Pekka Riikonen <priikone@silcnet.org>
7273
7274         * Fixed the backup resuming protocol to work in multiple
7275           router environment.  Affected file silcd/server_backup.c.
7276
7277         * Route packet only to one router in the function
7278           silc_server_packet_send_to_channel.  Affected file is
7279           silcd/packet_send.c.
7280
7281         * Fixed silc_server_send_notify_dest to set the broadcast
7282           flag.  Fixed the silc_server_send_notify_topic to actually
7283           send the TOPIC_CHANGE notify and not SERVER_SIGNOFF notify.
7284           Affected file silcd/packet_send.c.
7285
7286         * Changed the SFTP Filesystem interface.  Changed the
7287           SilcSFTPFilesystemStruct to SilcSFTPFilesystemOps to include
7288           the filesystem operation function.  The SilcSFTPFilesystem
7289           is now a context that is allocated by all filesystem allocation
7290           functions and it already includes the operations structure
7291           and filesystem specific context.  It is given as argument
7292           now to the silc_sftp_server_start.  This made the interface
7293           a bit cleaner.  Affected file lib/silcsftp/silcsftp[_fs].h,
7294           lib/silcsftp/sftp_fs_memory.c and sftp_server.c.
7295
7296 Thu Oct 11 22:19:26 EDT 2001  Pekka Riikonen <priikone@silcnet.org>
7297
7298         * Changed the backup router adding and getting interfaces
7299           in the server.  The router that will be replaced by the
7300           specified backup router is now sent as argument.  Affected
7301           files silcd/serverconfig.[ch], silcd/backup_router.[ch], and
7302           silcd/server.c.
7303
7304         * Added silc_net_addr2bin_ne to return the binary form of
7305           the IP address in network byte order.  Affected files
7306           lib/silcutil/[unix/win32].silc[unix/win32]net.[ch].
7307
7308 Thu Oct 11 12:14:19 EDT 2001  Pekka Riikonen <priikone@silcnet.org>
7309
7310         * Check for existing server ID in silc_server_new_server
7311           and in silc_server_connect_to_router_final and remove the
7312           old entry if it exists.  Affected file silcd/packet_receive.c,
7313           silcd/server.c.
7314
7315         * Send the channel message always to only one router, either
7316           in upstream or downstream.  Affected file is
7317           silcd/packet_send.c.
7318
7319 Tue Oct  9 17:45:43 EDT 2001  Pekka Riikonen <priikone@silcnet.org>
7320
7321         * Wrote the definition of the backup resuming protocol to the
7322           protocol specification.
7323
7324         * Removed one redundant channel key generation from normal
7325           server during joining procedure.  Removed one redundant
7326           channel key sending from server to router during joining
7327           procedure.  Affected file silcd/command.c.
7328
7329         * Made minor bugfixes to the backup router resuming protocol.
7330           Affected file silcd/server_backup.c, server.c.
7331
7332 Mon Oct  8 16:47:42 EDT 2001  Pekka Riikonen <priikone@silcnet.org>
7333
7334         * Added --disable-asm configuration option.  Affected files
7335           configure.in.pre, lib/silcmath/mpi/configure.in.  A patch
7336           by salo.
7337
7338         * Implemented the backup resuming protocol that is used to
7339           resume the primary router position in the cell after the
7340           primary router comes back online.  Affected files
7341           silcd/server_backup.[ch], silcd/server, silcd/packet_receive.c,
7342           and silcd/server_util.[ch].
7343
7344 Sun Oct  7 12:29:25 EDT 2001  Pekka Riikonen <priikone@silcnet.org>
7345
7346         * Sleep two (2) seconds after sending QUIT command to server.
7347           Affected file lib/silcclient/command.c.
7348
7349         * Assure that if outgoing data buffer is pending do not force
7350           send any data.  Affected file silcd/packet_send.c.
7351
7352         * Assure that if outgoing data buffer is pending do not force
7353           send any data.  Affected file lib/silcclient/client.c.
7354
7355         * Implemented the backup router support when the primary router
7356           goes down.  The servers and routers can now use the backup
7357           router as new primary router without loosing connectivity.
7358
7359 Sat Oct  6 21:18:54 EDT 2001  Pekka Riikonen <priikone@silcnet.org>
7360
7361         * Added new SILC_IDLIST_STATUS_DISABLED flag for entries
7362           in the server to indicate disabled entry.  All data read
7363           from the connection will be ignored and no data is sent
7364           for entry that is disabled.  Affected files are
7365           silcd/idlist.h, silcd/server.c.
7366
7367 Fri Oct  5 00:03:29 EDT 2001  Pekka Riikonen <priikone@silcnet.org>
7368
7369         * Created SFTP client and server test programs in the
7370           lib/silcsftp/tests directory.
7371
7372 Wed Oct  3 23:31:42 EDT 2001  Pekka Riikonen <priikone@silcnet.org>
7373
7374         * Implemented memory filesystem (virtual filesystem) for
7375           SFTP server.  Affected file lib/silcsftp/silcsftp_fs.h,
7376           sftp_fs_memory.c.
7377
7378 Sun Sep 30 22:10:57 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
7379
7380         * Implemented the SFTP (SSH File Transfer Protocol) to the
7381           lib/silcsftp.  It includes SFTP client and SFTP server
7382           implementations.
7383
7384 Sun Sep 30 10:35:44 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
7385
7386         * Moved lib/silccore/silcprotocol.[ch] to the
7387           lib/silcutil library.
7388
7389         * Added silc_buffer_format_vp and silc_buffer_unformat_vp to
7390           take variable argument list pointer as argument.  Affected
7391           file lib/silcutil/silcbuffmt.[ch].
7392
7393         * Added silc_buffer_set function that is used to set data
7394           to a SilcBuffer that is not allocated at all (SilcBufferStruct).
7395           Affected file lib/silcutil/silcbuffer.h.
7396
7397         * Changed various routines in the core library to use the new
7398           silc_buffer_set instead of allocating new buffer only for
7399           temporary purposes.
7400
7401         * Added 64-bit value formatting and unformatting support to the
7402           silc_buffer_[un]format routines.  Affected file is
7403           lib/silcutil/silcbuffmt.[ch].
7404
7405           Added also 64-bit macros: SILC_GET64_MSB and SILC_PUT64_MSB,
7406           to includes/bitmove.h.
7407
7408 Fri Sep 28 21:30:10 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
7409
7410         * Fixed channel user mode saving in client library.  Affected
7411           file lib/silcclient/command[_reply].c.
7412
7413 Thu Sep 27 22:52:30 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
7414
7415         * Defined the file transfer to the SILC Protocol.  Added
7416           new packet type SILC_PACKET_FTP and defined File Transfer
7417           Payload.  The mandatory file transfer protocol is SFTP
7418           (SSH File Transfer Protocol).  Affected file in addition
7419           of the internet draft is lib/silccore/silcpacket.h.
7420
7421         * Deprecated the SILC_PACKET_CELL_ROUTERS and defined new
7422           packet SILC_PACKET_RESUME_ROUTER instead.  The new packet
7423           is used as part of backup router protocol when the primary
7424           router of the cell is back online and wishes to resume
7425           the position as primary router.
7426
7427         * Redefined the MAC generation keys in the protocol.  The
7428           same key is not used anymore in both direction.  Both
7429           direction will now use different keys for sending and
7430           receiving.  This fixes a potential security flaw.  This
7431           change causes incompatibilities in the protocol.
7432
7433         * Redefined also the MAC computation from the packet.
7434           An packet sequence number is now added to the MAC
7435           computation.  This prevents possible replay attacks against
7436           the protocol.  This change too causes incompatibilities
7437           in the protocol.
7438
7439           Added `sequence' field to the SilcPacketContext to hold
7440           the current sequence number for the packet.
7441
7442 Wed Sep 26 20:15:22 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
7443
7444         * Added `created' field to the SilcIDListData in the file
7445           silcd/idlist.h to indicate the time when the entry was
7446           created.
7447
7448         * Added `created' field to the SilcChannelEntry too.  Affected
7449           file silcd/idlist.h.
7450
7451         * Added `creation_time' aguments to all the announcement functions
7452           in the server.  If it is provided then only the entries that
7453           was created after the provided time frame are actually
7454           announced.  Affected file silcd/server.[ch].
7455
7456         * The protocol says that the Channel ID's IP address must be
7457           based on the router's IP address.  Added check for this in
7458           the silc_server_new_channel when processing incoming New Channel
7459           Payload.  Affected file silcd/packet_receive.c.
7460
7461         * Print out the correct version with --version in SILC client.
7462           Affected file irssi/src/silc/core/silc-core.c.
7463
7464 Mon Sep 24 17:19:00 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
7465
7466         * Fixed WHOWAS command to check for completnes of the client
7467           entry always, not just when the command is coming from client.
7468           Affected file silcd/command.c.
7469
7470         * Added new function silc_server_packet_queue_purge to purge the
7471           outgoing data queue to the network.  After the function returns
7472           it is guaranteed that the outgoing packet queue is empty.
7473           Affected file silcd/packet_send.[ch].
7474
7475         * Purge the outgoing packet queue in the rekey protocol's final
7476           callback to assure that all rekey packets go to the network
7477           before quitting the protocol.  Affected file silcd/server.c.
7478
7479         * Added silc_client_packet_queue_parse as similar function as
7480           in server to the client library.  The affected file is
7481           lib/silcclient/client.c.
7482
7483 Sun Sep 23 15:15:53 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
7484
7485         * Splitted silcd/server.c and created silcd/server_util.[ch]
7486           for utility functions.
7487
7488         * Added new socket flag SILC_SF_DISABLED to indicate that the
7489           connection is open but nothing can be sent to or received from
7490           the connection.  Affected file lib/silcutil/silsockconn.[ch].
7491           The checking for disabled socket is checked in the low level
7492           silc_socket_write and silc_socket_read functions.
7493
7494 Thu Sep 20 23:11:28 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
7495
7496         * Allow only nicknames and channel names that fits into the
7497           7-bit unsigned char ASCII set.  Affected file silcd/command.c.
7498
7499 Thu Sep 20 18:04:12 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
7500
7501         * When processing JOIN command reply in server check that if
7502           the channel exists in our global list we'll move it the local
7503           list.  Affected file silcd/command_reply.c.
7504
7505         * Fixed the check whether client is joined on the channel already
7506           in JOIN command.  Affected file lib/silcclient/command.c.
7507
7508         * Fixed the JOIN command reply to check whether the channel
7509           already exists.  Affected file lib/silcclient/command_reply.c.
7510
7511 Wed Sep 19 22:58:32 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
7512
7513         * Added silc_ske_status_string to map the SKE error numbers
7514           to readable strings.  The affected files are
7515           lib/silcske/silcske[_status].[ch].
7516
7517 Tue Sep 18 22:50:41 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
7518
7519         * Do not show the private channels on the WHOIS channel list
7520           as it is not allowed by the protocol.  The affected file is
7521           silcd/server.c.
7522
7523 Sun Sep 16 12:32:58 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
7524
7525         * Assure that the packet length digged from the actual packet
7526           is something sensible in the silc_packet_decrypt_rest_special
7527           in lib/silccrypt/silcpacket.c.
7528
7529         * Free and NULL the allocated pointer in silc_hmac_alloc if
7530           the HMAC allocation fails.  The affected file is
7531           lib/silccrypt/silchmac.c.
7532
7533         * Print the selected security properties to the log files in
7534           the server.  Affected file silcd/protocol.c.
7535
7536         * Add SKE's reference counter even if calling the completion
7537           callback manually.  Otherwise it goes negative, although it
7538           does not cause any problems.  The affected file is
7539           lib/silcske/silcske.c.
7540
7541         * Remove the client entry with short timeout after giving the
7542           KILL command.  Affected file lib/silcclient/command.c.
7543
7544         * Fixed to send error reply in WHOIS and IDENTIFY commands in
7545           case all found clients are already disconnected (WHOWAS would
7546           found them) in the server.  Affected file silcd/command.c.
7547
7548         * Update the last_receive (time of last data received) to be
7549           updated only when received private or channel message so that
7550           the idle time showed in WHOIS makes more sense.
7551
7552         * Added boolean field `valid' in to the SilcClientEntry in the
7553           client library to indicate whether the entry is valid or not.
7554           This fixes the nickname change bug on channel when changing
7555           the nickname to be same than the old (like nick to Nick) the
7556           nickname formatter doesn't set the new nick anymore to Nick@host.
7557           Affected file lib/silcclient/idlist.[ch].
7558
7559         * Now actually fixed the nickname changing on disconnection.
7560           Added new function silc_change_nick to the Irssi SILC Client.
7561           Affected file irssi/src/silc/core/client_ops.c,
7562           irssi/src/silc/core/silc-nicklist.[ch].
7563
7564 Sat Sep 15 13:29:17 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
7565
7566         * Check that the public key exists in the GETKEY command before
7567           trying to encode it.  Affected file silcd/command.c.
7568
7569         * Print some notifications on received public keys with GETKEY
7570           command in the Irssi SILC Client.  Affected files are
7571           irssi/src/fe-common/silc/module-formats.[ch],
7572           irssi/src/silc/core/client_ops.c.
7573
7574         * Use IDENTIFY command to resolve the server information in the
7575           GETKEY command instead of INFO command.  Affected file
7576           lib/silcclient/command.c.
7577
7578         * All command reply functions in the client library now calls
7579           the pending command reply callbacks even if an error has
7580           occurred.  The server has done this a long time and now it was
7581           time to move the client library to this as well.  Now all
7582           errors can be delivered back to the pending command reply
7583           callbacks if necessary.  Affected files are
7584           lib/silcclient/command[_reply].[ch].
7585
7586         * Change the nickname on disconnection back to the username
7587           because in reconnect the server will enforce it to it anyway.
7588           Affected file irssi/src/silc/core/silc-servers.c.
7589
7590         * Fixed a config file parsing bug in the Irssi SILC client.
7591           Affected file irssi/src/silc/core/clientconfig.c.
7592
7593 Thu Sep 13 23:11:18 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
7594
7595         * When printing the channel mode on JOIN, verify that the
7596           channel key and channel's HMAC are valid.  Affected file
7597           irssi/src/silc/core/client_ops.c.
7598
7599 Thu Sep 13 20:24:52 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
7600
7601         * Added defines SILC_DEFAULT_CIPHER, SILC_DEFAULT_HMAC,
7602           SILC_DEFAULT_HASH and SILC_DEFAULT_PKCS in the file
7603           lib/silccrypt/[silccipher.h|silchmac.h|silchash.h|silcpkcs.h].
7604
7605         * Removed channel key rekey task deleting from the function
7606           silc_server_save_channel_key.  Affected file silcd/server.c.
7607           Added explicit timeout task context instead that is used to
7608           delete the task if we are registering a new task before the
7609           new task has elapsed.
7610
7611         * When channel key rekey occurs the client library now saves
7612           the old channel key for a short period of time (10 seconds) and
7613           is able to use it in case some is still sending channel
7614           messages encrypted with the old key after the rekey.  Affected
7615           file lib/silcclient/[idlist.h|client_channel.c].
7616
7617 Sun Sep  9 15:49:16 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
7618
7619         * Added check to the silc_server_new_id_real to not accept
7620           new ID if it is the sender's own ID.  Affected file is
7621           silcd/packet_receive.c.
7622
7623         * Assure that we do not announce ourself or the one we've
7624           sending our announcements when we're router and are announcing
7625           servers to our primary router.  Affected file silcd/server.c.
7626
7627         * Fixed silc_server_command_identify_check_client to assemble
7628           correct WHOIS packet.  It send corrupted WHOIS packet and
7629           caused problem with router to router connections.  Affected
7630           file silcd/command.c.
7631
7632           Fixed also silc_server_command_whois_check the same way
7633           as for the IDENTIFY command.
7634
7635         * Added new SilcIDListStatus to the server in the SilcIDListData
7636           structure.   The status now includes the current status of
7637           the entry (like registered, resolved etc.).  Affected file
7638           silcd/idlist.[ch].  Defined a bunch of different status types
7639           as well.  This replaced the old boolean registered field as well.
7640
7641           Added resolve_cmd_ident field to the SilcClientEntry structure
7642           too so that if the entry is for example being resolved so
7643           another command may attach to the same pending command reply
7644           without requiring to resolve the same entry again.  This concept
7645           should optimize the WHOIS and the IDENTIFY resolving under
7646           heavy load by taking away unnecessary resolving for entries
7647           that are being resolved already.
7648
7649           Added support for adding multiple pending commands for one
7650           command idenfier.  Affected file silcd/command[_reply].[ch].
7651
7652         * Fixed WHOIS and IDENTIFY save to remove the cache entry
7653           before deleting the data.  Otherwise the hash table will have
7654           freed data in comparison functions.  Affected file is
7655           silcd/command_reply.c.
7656
7657         * Fixed silc_idlist_replace_client_id to add the new entry to
7658           the cache with NULL nickname.  Otherwise there will be invalid
7659           memory as the nickname after the nickname is freed.  Affected
7660           file silcd/packet_receive.c.
7661
7662         * Fixed the silc_idlist_get_clients_by_hash.  The entries was
7663           saved into wrong slots because the previous number of entries
7664           was not taken into account.  Affected file silcd/idlist.c.
7665           Fixed same thing in silc_idlist_get_clients_by_nickname too.
7666
7667         * If we are router and we receive JOIN notify to a channel that
7668           does not have any users then notified client is marked as the
7669           channel founder, as it is it.  The affected file is
7670           silcd/packet_receive.c
7671
7672         * Added to the extended hash table API's table_del_*ext functions
7673           the destructor as argument too, so that the caller can decide
7674           which destructor to use or whether to use destructor at all.
7675           Affected file lib/silcutil/silchashtable.[ch].
7676
7677         * Fixed ID Cache purging.  It actually deleted the entries from
7678           the hash table after the data was freed.  The hash table ended
7679           up comparing freed memory.  The affected file is
7680           lib/silccore/silcidcache.c.
7681
7682 Sat Sep  8 10:22:10 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
7683
7684         * Fixed Irssi SILC client's KILL command's HELP syntax.
7685
7686         * The USERS command now resolves the detailed user information
7687           if the userinfo field is missing.  Affected file is
7688           lib/silcclient/command_reply.c.
7689
7690         * Do not print error in silc_file_read if the read file does
7691           not exist.  Just silently return NULL.  Affected file is
7692           lib/silcutil/silcutil.c.
7693
7694         * Fixed the silc_log_output to not wine about NULL filename
7695           and to not create some bogus " " filename.  Affected file is
7696           lib/silcutil/silclog.c.
7697
7698 Fri Sep  7 22:16:38 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
7699
7700         * Fixed various printing bugs on the user interface in the
7701           Irssi SILC Client.  Minor changes that were forgotten from
7702           the release.
7703
7704 Fri Sep  7 17:28:37 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
7705
7706         * Fixed the configure.in.pre and the compilation and distribution
7707           environment to support the new autoconf 2.52.  That version is
7708           now required to compile the CVS trunk.
7709
7710 Thu Sep  6 12:47:37 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
7711
7712         * Renamed function silc_parse_nickname to silc_parse_userfqdn
7713           to generally parse user@fqdn format strings.  Affected file
7714           lib/silcutil/silcutil.c.
7715
7716         * Added nickname_format and nickname_force_format fields to the
7717           SilcClientParams structure.  The first one defines the format
7718           for the nicknames that the library will enforce if the receives
7719           multiple same nicknames.  The second one is boolean value and
7720           can be used to force the library to always enforce the format
7721           to the nicknames regardles whether there are multiple nicknames
7722           or not.  This configurable formatting was employed to flexibly
7723           support accessing multiple nicknames from the user interface.
7724           The userinterface can now set the nicknames to what ever format
7725           they prefer.  Affected file lib/silcclient/silcapi.h.
7726
7727           Added function silc_client_nickname_format to the file
7728           lib/silcclient/idlist.c.  It performs the nickname formatting.
7729
7730           Added new field `hostname´ to the SilcClientEntry context.
7731           It holds the hostname of the client.  Affected file is
7732           lib/silcclient/idlist.h.
7733
7734         * Irssi SILC Client sets the nicknames in nick@hostn format.
7735           Fe. priikone@otaku, priikone@otaku2 etc.  Affected file
7736           irssi/src/silc/core/silc-core.c.
7737
7738           The WHOIS printing now also shows both the real nickname and
7739           the formatted nickname so that user knows how to access the
7740           user if there are multiple same nicknames cached.  Affected
7741           file irssi/src/silc/core/client_ops.c.  Changed the WHOIS
7742           printing formatting too to take the hostname now as a separate
7743           argument.  The Affected file is
7744           irssi/src/fe-common/silc/modules-formats.[ch].
7745
7746         * Changed the silc_client_get_clients_local to accept the formatted
7747           nickname as argument.  It accepts the real nickname too but the
7748           formatted nickname can be used to find the true entry from
7749           multiple entries.  Affected file lib/silcclient/silcapi.h and
7750           lib/silcclient/idlist.c.
7751
7752         * Added nickname_format_parse field to the SilcClientParams.
7753           It is a callback function provided by the application to parse
7754           the nickname out of the formatted nickname string. The library
7755           calls it to get the nickname from the formatted string. Since
7756           the application generally knows better the format of the nickname
7757           string it parses it instead of the library, even though library
7758           encodes the formatted string.  If the callback function is not
7759           provided then the library will use the string as is.  The
7760           affected file is lib/silcclient/silcapi.h.
7761
7762         * All the nickname strings passed to the client library in
7763           commands are now expected to be formatted nickname strings.
7764           If the command does not support the formatted nickname string
7765           it will assume that the sent string is the actual nickname.
7766           Affected file lib/silcclient/command.c.
7767
7768 Tue Sep  4 22:31:28 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
7769
7770         * Added public key authentication support to OPER and SILCOPER
7771           commands in the client library.  Affected file is
7772           lib/silcclient/command.c.
7773
7774 Tue Sep  4 12:39:17 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
7775
7776         * Changed the get_auth_methdod client operation to be asynchronous.
7777           It can be async if the application resolves the authentication
7778           method from the server during the negotiation.  Added new
7779           SilcGetAuthMeth completion callback that the application will
7780           call after resolving the authentication method.
7781
7782           Added function silc_client_request_authentication_method that
7783           the application can use to resolve the authentication method
7784           from the server.  Added also SilcConnectionAuthRequest callback
7785           that the library will call after the server has replied.  The
7786           application can call this function if it does not know the
7787           current authentication method.
7788
7789           Affected files are lib/silcclient/client.c and
7790           lib/silcclient/silcapi.h.
7791
7792         * The Irssi SILC client now automatically resolves the authentication
7793           method incase any configuration information is not present (and
7794           currently there never is).  The affected file is
7795           irssi/src/silc/core/client_ops.c.
7796
7797         * Fixed public key authentication from the client library.
7798           Affected file lib/silcclient/protocol.c.  Changed also the
7799           protocol specification about the public key authentication in
7800           the connection authentication protocol.  The actual data to be
7801           signed is now computed with a hash function before signing.
7802
7803         * Fixed the public key authentication from the server as well.
7804           Affected file silcd/protocol.c.
7805
7806         * Removed the mlock()'s from the memory allocation routines.
7807           Affected file lib/silcutil/silcmemory.c.  The ./configure does
7808           not check anymore for the mlock().  Affected file is
7809           configure.in.pre.
7810
7811         * Fixed USERS command in server to allow the execution of the
7812           command for private and secret channels if the client sending
7813           the command is on the channel.  Affected file silcd/command.c.
7814
7815         * Fixed silc_client_get_clients_local to return the clients
7816           count correctly.  It could return wrong value.  Affected file
7817           lib/silcclient/idlist.c.
7818
7819 Mon Sep  3 20:09:59 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
7820
7821         * Fixed the lib/silcmath/mpi/mpi.h to always use 32-bit data
7822           types.  The assembler optimizations seemed not to like 64-bit
7823           data types.  The assmebler optimizations thus are now enabled
7824           also for BSD systems as opposed to only enable them for Linux.
7825
7826         * Do not check for threads at all on BSD systems.  Affected
7827           file configure.in.pre.
7828
7829         * Removed -n and -h options from the Irssi SILC Client since
7830           they are not used in silc.
7831
7832         * Fixed the prime generation to assure that the first digit
7833           of the generated random number is not zero since our conversion
7834           routines does not like number strings that starts with zero
7835           digit.  If zero digit is seen the random number is regenerated.
7836           This caused some corrupted RSA keys when the zero first digit
7837           was met.  Affected file lib/silcmath/silcprimegen.c.
7838
7839 Sun Sep  2 17:17:24 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
7840
7841         * Fixed WIN32 configuration in the ./configure script.
7842           Fixed to include xti.h on environments that has it.
7843           Patches by Carsten Ilchmann and andrew.
7844
7845 Sat Sep  1 00:29:33 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
7846
7847         * Changed the silc_id_create_client_id to be collision
7848           resistant.  It is now assured that there cannot be created
7849           two same client ID's.  I suspect that some weird bugs in
7850           the server were actually caused by duplicate Client IDs.
7851           Affected file silcd/serverid.[ch].  A router receiving
7852           new ID now also assures and informs the sending server
7853           if the ID caused collision.
7854
7855         * Changed the silc_id_create_channel_id to also assure that
7856           there are no collisions.
7857
7858 Wed Aug 29 17:55:01 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
7859
7860         * Statement about ignoring the Mutual Authentication flag when
7861           performing rekey with PFS was a bit misleading.  It is ignored
7862           if it was set in the initial negotiation, it cannot be even
7863           set in the rekey.  Fixed in the ke-auth draft.  Started the
7864           new versions of the protocol drafts in the doc/.
7865
7866 Sun Aug 26 14:59:15 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
7867
7868         * Fixed a bug in silc_client_command_identify_save when saving
7869           new channel information.  The channel name was no duplicated
7870           and caused crash on exit.  Affected file is
7871           lib/silcclient/command_reply.c.
7872
7873 Fri Aug 17 23:07:45 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
7874
7875         * Fixed the getkey command handling in the server.  Send just
7876           empty OK reply to the sender if the key could not be fetched
7877           (but everything else was ok, like the key just was not available).
7878           Changed the public key parameter to optional in the protocol
7879           specs so that empty OK reply can be sent.  Affected file
7880           silcd/command.c.
7881
7882           Added a message to Irssi SILC client to tell to user if the
7883           server did not return a public key.
7884
7885 Tue Aug 14 07:29:27 CEST 2001  Pekka Riikonen <priikone@silcnet.org>
7886
7887         * Fixed a channel key regeneration bug.  It registered new
7888           timeout tasks exponentially until all system resources were
7889           used.  Affected file silcd/server.c.
7890
7891 Sun Aug 12 20:48:14 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
7892
7893         * Added the SILC Document generator to the scripts/silcdoc.
7894           It can be used to generate the Toolkit Reference Manual out
7895           of the source tree.  Internally it will also use the RoboDoc
7896           generator now imported in util/robodoc.
7897
7898 Sun Aug 12 12:28:17 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
7899
7900         * Added couple of return's in rekey protocol if error orccurred
7901           during the protocol.  The execution must be terminated.
7902           Affected file silcd/protocol.c.  Also, terminate the protocol
7903           always with timeout.
7904
7905 Sat Aug 11 12:36:02 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
7906
7907         * The client's Client ID was created initally from the wrong
7908           nickname (it could have been in format nick@host) in the
7909           silc_server_new_client.  Affected file silcd/packet_receive.c
7910
7911 Sat Aug 11 00:29:57 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
7912
7913         * Added some SILC_LOG_ERROR's to various error conditions
7914           if client could not be added to ID cache.  Affected files
7915           silcd/packet_receive.c and silcd/server.c.
7916
7917         * When client's sock->user_data is freed, NULL also the
7918           client->router and client->connection pointers.  Added check
7919           for these pointers being NULL to various places around the
7920           code.  Affected file silcd/server.c.
7921
7922         * Added client->data.registered == TRUE checks to various
7923           places around the code to assure that unregistered client's
7924           are not handled when it is not allowed.  Affected file
7925           silcd/server.c.
7926
7927         * Added `bool registered' fields to all
7928           silc_idlist_[server|client]_get_* routines to indicate whether
7929           the fetched client needs to be registered or not.  Affected
7930           file silcd/idlist.[ch].
7931
7932         * Add your own entry as registered to the ID cache in the
7933           server.  Affected file server.c.
7934
7935         * Fixed a bug in silc_server_new_server.  The SilcServer was
7936           set as the new server's context instead of SilcServerEntry.
7937           This naturally caused some weird bugs.
7938
7939         * Added "updated" field the SilcChannelEntry which indicates
7940           the time since the channel entry was last accessed.  This
7941           can be used to determine whether it is necessary to
7942           announce the channel after backup resuming protocol.
7943           Affected files silcd/idlist.[ch].
7944
7945 Thu Aug  9 18:28:37 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
7946
7947         * Do not delete the channel rekey task when adding it
7948           for in silc_server_create_channel_key.
7949
7950         * Changed the silc_server_create_channel_key to return
7951           TRUE or FALSE to indicate the success of the channel key
7952           creation.
7953
7954 Thu Jul 26 11:32:31 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
7955
7956         * Fixed MSVC++ project files and added missing files to
7957           Makefiles under win32/.
7958
7959 Wed Jul 25 18:43:54 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
7960
7961         * Do not add TCP_NODELAY flag if the operating system
7962           does not have it defined.  Affected files are
7963           lib/silcutil/[unix/win32]/silc[unix/win32]net.c.
7964
7965         * Fixed buffer overflow from Irssi SILC Client.  Affected
7966           file irssi/src/fe-common/core/themes.c.
7967
7968         * Fixed double free in client library in the file
7969           lib/silcclient/client.c when disconnecting from server.
7970
7971         * Applied double free patch from cras to Irssi SILC client.
7972           Affected files irssi/src/core/[modules/expandos].c
7973
7974         * Fixed the disconnection handling to Irssi SILC Client.
7975           The application must call silc_client_close_connection
7976           in ops->connect client operation in case of failure of
7977           the connection.  Affected file is
7978           irssi/src/silc/core/client_ops.c.
7979
7980         * Do not set sock->protocol to NULL in the function
7981           silc_client_close_connection after executing the protocol's
7982           final callback since the sock might not be valid anymore.
7983           Affected file lib/silcclient/client.c.
7984
7985 Wed Jul 25 16:04:35 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
7986
7987         * Do not enable SILC_THREADS if the linking with libpthread
7988           did not happen.  Affected file configure.in.pre.
7989
7990         * Added notion to protocol specification that server must
7991           verify the sent authentication payload with CMODE when
7992           setting the channel founder key.  Implemented it to the
7993           server.  Affected file silcd/command.c.
7994
7995 Mon Jul 23 18:31:43 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
7996
7997         * Added _EXTRA_DIST SILC distribution variable to the
7998           distributions file.  It is used to conditionally add extra
7999           files or directories to the specific distribution.  Affected
8000           files ./prepare, Makefile.am.pre and distributions.
8001
8002           Removed the `_' from the start of the distribution names.
8003           It is redundant.
8004
8005         * Added README.WIN32 for instructions to compile the Toolkit
8006           under WIN32.
8007
8008 Mon Jul 23 10:12:37 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
8009
8010         * Fixed a double free in disconnection in the server.  Affected
8011           file is silcd/server.c.
8012
8013         * Fixed the lib/silcske/groups.c to work now also with GMP
8014           MP library.  The string conversion did not work when using
8015           specific base and the base is indicated in the string as well.
8016
8017         * Created win32/ directory which now includes MSVC++ specific
8018           stuff so that toolkit (DLLs) may be compiled with MSVC++.
8019           It will appear only in the toolkit distribution
8020
8021 Sun Jul 22 19:40:30 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
8022
8023         * Changed the key material distribution function in case when
8024           the hash output is too short.  The data is now concatenated
8025           a bit differently than it used to.  Made the change to the
8026           SKE protocol specification.
8027
8028         * Added better GMP detection to configure.in.pre.  A patch
8029           by salo.
8030
8031 Fri Jul 20 13:16:00 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
8032
8033         * Fixed a minor bug in SKE that might cause some problem on
8034           some platforms.  Affected file lib/silcske/silcske.c.
8035
8036         * Added the cookie checking for initiator in the SKE.  It checks
8037           that the responder returns the sent cookie unmodified.  The
8038           affected file is lib/silcske/silcske.c.  Added new SKE
8039           error type INVALID_COOKIE that can be sent during the
8040           negotiation.  Fixed some memory leaks as well.
8041
8042         * Added the "invalid cookie" error message to Irssi SILC client's
8043           message formats.
8044
8045 Thu Jul 19 21:44:31 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
8046
8047         * Added `task_max' field to the SilcClientParams to indicate
8048           the maximum tasks the scheduler can handle.  If set to zero,
8049           default values are used.  Affected file lib/silcclient/silcapi.h.
8050
8051         * Fixed memory leaks in silc_client_close_connection.  Affected
8052           file lib/silcclient/client.c.
8053
8054         * Added silc_client_del_client_entry to client library to free
8055           all memory of given client entry.  Affected file is
8056           lib/silcclient/idlist.[ch].
8057
8058         * Added new functions silc_client_del_channel and
8059           silc_client_del_server to delete channel and server entries.
8060           Affected file lib/silcclient/[silcapi.h/idlist.c].
8061
8062         * Removed silc_client_del_client_by_id from silcapi.h.
8063
8064         * Fixed the INFO command to return the server's own info
8065           correctly when querying by Server ID.  Affected file is
8066           silcd/command.c.
8067
8068 Thu Jul 19 14:47:30 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
8069
8070         * Removed the non-blocking settings in WIN32 code in the
8071           silc_sock_[read/write] and added SleepEx instead.  Affected
8072           file lib/silcutil/win32/silcwin32sockconn.c.  The availability
8073           of input data is now checked with FIONREAD and ioctlsocket.
8074
8075 Wed Jul 18 18:34:01 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
8076
8077         * Call silc_schedule_task_del_by_context in the
8078           silc_protocol_cancel instead of silc_schedule_task_del_by_callback.
8079           Affected file lib/silccore/silcprotocol.c.
8080
8081         * Call silc_protocol_cancel for active protocols in the
8082           silc_server_close_connection if the funtion
8083           silc_server_free_sock_user_data has not been called.
8084           Affected file silcd/server.c.
8085
8086         * Generic tasks cannot be deleted using the del_by_fd
8087           task deleting function since generic tasks does not match
8088           any specific fd.  Affected file lib/silcutil/silcschedule.[ch].
8089
8090         * Added a notion to SILCOPER help file that the SILCOPER works
8091           only on router server, not on normal server.
8092
8093 Wed Jul 18 09:40:04 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
8094
8095         * Added for WIN32 support for the new scheduler as well.
8096           Affected file lib/silcutil/win32/silcwin32schedule.c.
8097
8098         * Fixed the SHA1 implementation to work on various platforms.
8099
8100 Tue Jul 17 23:04:10 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
8101
8102         * Rewrote the SILC Scheduler entirely.  Removed the old SILC Task
8103           API.  It is part of the scheduler now.  Everything else is
8104           as previously but some functions has changed their names.
8105           Checkout the lib/silcutil/silcschedule.h for the interface.
8106           Updated all applications to use the new interface.  Affected
8107           files are lib/silcutil/silcschedule.[ch].
8108
8109 Tue Jul 17 16:53:30 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
8110
8111         * Found a bug in the SKE implementation.  The HASH value,
8112           specified by the protocol, was not computed correctly.  The
8113           public key of the responder was not added to the computation
8114           even though it is mandatory.  Affected file lib/silcske/silcske.c.
8115           This unfortunately causes incompatibilities with older
8116           clients and servers.
8117
8118         * Added WIN32 specific network init and uninit functions:
8119           silc_net_win32_init and silc_net_win32_uninit to init and uninit
8120           the Winsock2.  Affected file lib/silcutil/silcnet.h and
8121           lib/silcutil/win32/silcwin32net.c.
8122
8123         * Set the socket always to nonblocking mode on WIN32 after
8124           reading data or writing data.  Affected file is
8125           lib/silcutil/win32/silcwin32sockconn.c.
8126
8127 Mon Jul 16 22:55:26 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
8128
8129         * Fixed various compilation problems under WIN32.  Affected
8130           files lib/silcutil/win32/silcwin32thread.c and
8131           lib/silcutil/win32/silcwin32schedule.c.
8132
8133         * Removed all _internal.h #includes from public header
8134           files.  Internal headers must never be included from
8135           public headers.
8136
8137           Removed also the lib/silcske/payload_internal.h file.
8138
8139         * All include files that may be needed (public and some others
8140           included by the public headers) by application developers are
8141           now copied to the ./includes directory.  It does not copy any
8142           internal headers.  Affected file Makefile.defines.pre and all
8143           Makefile.am's under lib/ and subdirs.
8144
8145 Thu Jul 12 17:49:31 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
8146
8147         * Do not change the ~/.silc directory's permissions automatically.
8148           Affected file irssi/src/silc/core/clientutil.c.
8149
8150 Thu Jul 12 10:18:40 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
8151
8152         * Do not cancel the protocol in silc_server_close_connection
8153           it might cause recursion.  Now cancelled in the function
8154           silc_server_free_sock_user_data.  Affected file silcd/server.c.
8155
8156         * Fixed the silc_server_remove_clients_by_server to regenerate
8157           the channel keys correctly finally.  Added also new function
8158           silc_server_remove_clients_channels to actually do it.
8159           Affected file silcd/server.c.
8160
8161         * Fixed the silc_server_new_channel to not crash by giving
8162           wrong router to the new channel.  Affected file is
8163           silcd/packet_receive.c.
8164
8165 Wed Jul 11 18:31:57 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
8166
8167         * Added SilcClientParams structure to the lib/silcclient/silcapi.h
8168           which is given as argument to the silc_client_alloc now.
8169           It can be used to configure the client and set various parameters
8170           that affect the function of the client.
8171
8172         * The USERS command in server did not check whether the channel
8173           is private or secret.  Affected file silcd/command.c.
8174
8175         * Added new argument to the USERS command in protocol specification.
8176           The USERS command now can take the channel name as argument
8177           as well.  Added support for this in client and server and
8178           updated the protocol specs.
8179
8180         * Completed the GETKEY command in client. It can be now used
8181           to fetch also servers public key not only some clients.
8182           Affected files lib/silcclient/command[_reply].c.
8183
8184         * Added silc_client_get_server to return server entry by the
8185           server name.  Affected files lib/silcclient/silcapi.h and
8186           idlist.c.
8187
8188         * Redefined the IDENTIFY command in protocol specification to be
8189           more generic.  It now can be used to query information about
8190           any entity in the SILC Network, including clients, servers and
8191           channels.  The query may be based either the entity's name
8192           or the ID.  Added support for this in both client and server.
8193
8194           Affected files silcd/command.c and lib/silcclient/command.c
8195           and command_reply.c.
8196
8197         * Optimized the WHOIS and WHOWAS commands in the server. Removed
8198           the _from_client and _from_server functions.  Affected file
8199           silcd/command.c.
8200
8201         * Added silc_client_get_channel_by_id_resolve to the file
8202           lib/silcclient/silcapi.h to resolve channel information by
8203           its ID.  Added also silc_client_get_channel_by_id that
8204           does not resolve it from the server.
8205
8206 Tue Jul 10 18:05:38 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
8207
8208         * Added SilcServerEntry context into the client library
8209           to represent one server.  The INFO command now allocates
8210           these to save the resolved server info.  For now on the
8211           client library will also keep information about servers,
8212           connected and resolved with INFO.
8213
8214           The INFO command now allocates the SilcServerEntry context
8215           and saves the server info there.  The COMMAND_REPLY in
8216           the INFO now returns the parameters to application in
8217           same order as defined in the protocol specification.
8218
8219           The entries are cached in the client->server_cache.
8220
8221         * The INFO command is now issued after received the Client ID
8222           from the server.  Affected file lib/silcclient/client.c.
8223
8224         * The CMODE_CHANGE notify may now return also an SilcServerEntry
8225           to the application as the mode changer might be server.
8226           It is guaranteed that NULL is not returned anymore to the
8227           application.  Affected file lib/silcclient/client_notify.c.
8228
8229           The ID Type is now also passed to the application so that
8230           it can check whether the returned entry is SilcClientEntry
8231           or SilcServerEntry.
8232
8233           Added new function silc_client_get_server_by_id to return
8234           the server entry by ID.  Affected files are the
8235           lib/silcclient/silcapi.h and lib/silcclient/idlist.c.
8236
8237         * Do not create the channel in the Irssi SILC Client when issuing
8238           the JOIN command but when received the sucessful JOIN command
8239           reply.  Otherwise the channel might get created even though we
8240           could not join it.  The Affected file is
8241           irssi/src/silc/core/[silc-channels.c/client_ops.c].
8242
8243         * Fixed a channel joining bug in router.  The router must also
8244           check the channel modes, invite and ban lists etc. when serving
8245           the JOIN command sent by normal server.  Affected file is
8246           silcd/command.c.  The router now resolves the client's
8247           information from the server who sent the JOIN command if it
8248           does not know it, and processes the JOIN command only after
8249           that.
8250
8251         * Changed the SilcCommandCb to take new argument; void *context2.
8252           Affected file lib/silccore/silccommand.h
8253
8254           The second argument in the command callbacks in the server now
8255           includes the SilcServerCommandReplyContext if the command was
8256           called as pending command callback from the command reply.
8257           Otherwise it is NULL. When called as pending the status of the
8258           command reply will be checked and if it was erronous the
8259           error will be sent to the original sender of the command.
8260           This way the client always receives the error messages even
8261           though the server was actually the one who received the error
8262           when it resent the command to router, for example.  Affected
8263           files silcd/command[_reply].[ch].
8264
8265         * Fixed sending WHOWAS command's error message to client if
8266           the requested client could not be found.  It was missing.
8267           silcd/command.c.
8268
8269         * Changed the CMODE and CUMODE commands reply arguments in the
8270           protocol specification.  The Channel ID is now sent in both
8271           of the commands to identify the channel.  Implemented this
8272           new feature to the client and server.  Affected files
8273           lib/silcclient/command_reply.c and silcd/command.c.
8274
8275         * Made better checks for invite and ban lists in the JOIN
8276           command in server.  Affected file silcd/command.c.
8277
8278 Mon Jul  9 18:28:34 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
8279
8280         * The server now performs the incoming host IP/DNS lookup
8281           using the silc_socket_host_lookup and thus does not block
8282           the server anymore.  Affected file silcd/server.c.
8283
8284         * Completed the multi-thread support for SILC Scheduler in
8285           the lib/silcutil/silcschedule.c.
8286
8287         * Fixed the configure.in.pre to detect the pthread correctly
8288           on various systems.
8289
8290         * Fixed a deadlock in silc_task_queue_wakeup in the file
8291           lib/silcutil/silctask.c.
8292
8293 Mon Jul  9 13:40:03 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
8294
8295         * Added new function silc_schedule_wakeup that is used in
8296           multi-threaded environment to wakeup the main thread's
8297           schduler. It needs to be used when a thread adds a new task
8298           or removes a task from task queues. After waking up, the
8299           scheduler will detect the task queue changes. If threads
8300           support is not compiled in this function has no effect.
8301           Implemented the wakeup mechanism to both Unix and WIN32
8302           systems.  Affected files are lib/silcutil/silcschedule.[ch],
8303           lib/silcutil/unix/silcunixschedule.c and the
8304           lib/silcutil/win32/silcwin32schedule.c.
8305
8306         * Added new function silc_task_queue_wakeup to wakeup the
8307           scheduler by the specified task queue.  Affected file
8308           lib/silcutil/silctask.[ch].
8309
8310         * The silc_socket_host_lookup_start now wakes up the scheduler
8311           after adding the timeout task.  Affected file is
8312           lib/silcutil/silcsockconn.c.
8313
8314         * The silc_socket_host_lookup is synchronous now if the threads
8315           support is not compiled in.  However, the callback is still
8316           called asyncronously through the scheduler, anyway.  Affected
8317           file lib/silcutil/silcsockconn.c.
8318
8319 Mon Jul  9 00:24:45 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
8320
8321         * Added new function silc_socket_host_lookup to perform
8322           asynchronous IP and FQDN lookups for the socket connection.
8323           Affected files lib/silcutil/silcsockconn.[ch].
8324
8325 Sun Jul  8 18:44:53 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
8326
8327         * Added SILC_MUTEX_DEFINE to define the mutex on environments
8328           that may or may not compile the mutex support in.
8329
8330           Changed the silc_mutex_alloc interface. It allocates the
8331           mutex now to the sent pointer and returns TRUE or FALSE.
8332
8333           Affected file lib/silcutil/silcmutex.h.
8334
8335         * Wrote the SILC Task Queue interface to support multi-threads.
8336           Affected file lib/silcutil/silctask.[ch].
8337
8338         * Wrote the SILC Scheduler to support multi-threads.  Affected
8339           file lib/silcutil/silcschedule.c.
8340
8341 Sun Jul  8 11:16:01 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
8342
8343         * Implemented the SILC Mutex API and SILC Thread API for WIN32
8344           in lib/silcutil/win32/.
8345
8346 Sun Jul  8 00:18:15 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
8347
8348         * Defined SILC Mutex API and SILC Thread API and implemented
8349           them for Unix.  Affected files are
8350           lib/silcutil/silcmutex.h, lib/silcutil/silcthread.h,
8351           lib/silcutil/unix/silcunixmutex.c and
8352           lib/silcutil/unix/silcunixthread.c.
8353
8354 Sat Jul  7 14:40:31 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
8355
8356         * Fixed the silc_server_remove_clients_by_server's channel
8357           key re-generation.  The hash table handling was incorrect
8358           and would not work with many channels.  Affected file is
8359           silcd/server.c.
8360
8361         * Fixed some memory leaks around the server code.
8362
8363         * Rewrote the silc_server_get_users_on_channel to support IPv6
8364           based Client ID's.  Affected file silcd/server.c.
8365
8366         * Defined the SILC_MESSAGE_FLAG_SIGNED to the protocol
8367           specification.  However, a separate document must be written
8368           to define the detailed signing procedure and the payload
8369           associated with the flag.  Defined the flag to the
8370           lib/silccore/silcchannel.h as well.
8371
8372 Fri Jul  6 18:26:31 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
8373
8374         * Changed the dynamic tables to static size tables in the
8375           lib/silccrypt/silchmac.c.
8376
8377         * Removed GCC dependencies from the code.  A patch by cras.
8378
8379 Fri Jul  6 09:39:35 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
8380
8381         * Do not show the error "Error receiving packet bla bla"
8382           in server if it really was not an error (-2 means that reading
8383           is pending).  Affected file silcd/server.c.
8384
8385 Thu Jul  5 21:22:32 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
8386
8387         * Fixed a possible crash in silc_server_remove_clients_by_server
8388           in silcd/server.c.  Fixed there also some memory leaks.
8389
8390         * Fixed the silc_idlist_replace_client_id.  It could replace
8391           wrong key in the hash table.  Affected file silcd/idlist.c.
8392
8393         * Do not check whether there are global users on the channel
8394           if the channel->global_users is FALSE.  Affected functions
8395           silc_server_remove_from_one_channel and
8396           silc_server_remove_from_channels in silcd/server.c.  Also,
8397           do not check if the removed client is local as we can be
8398           sure that global client was not removed from the channel
8399           and checking for global users is not needed.
8400
8401         * The silc_server_remove_clients_by_server now re-generates
8402           the channel keys correctly for those channels that had
8403           clients removed from them.  Affected file silcd/server.c.
8404
8405 Tue Jul  3 11:39:20 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
8406
8407         * Found the reason of random crashes in the server.  We weren't
8408           ignoring the SIGPIPE signal (which can be sent in write())
8409           and it crashed the server.  Affected file silcd/silcd.c.
8410
8411 Fri Jun 29 20:05:25 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
8412
8413         * Assure that sock->user_data is not NULL in the function
8414           silc_server_packet_send in silcd/packet_send.c.
8415
8416         * Disconnect the remote connection if it could not be added
8417           to any ID lists in the server.  The affected file is
8418           silcd/server.c.
8419
8420         * Check in silc_server_packet_send[_real/dest] that the
8421           socket is not disconnecting and ignore the data if it is.
8422           Affected file silcd/packet_send.c.
8423
8424         * Define inline to __inline on native WIN32 compilation.
8425           Affected file includes/silcwin32.h.
8426
8427         * Added some explicit type casts for inline code since MSVC
8428           require them.  Affected files lib/silcutil/silcbuffer.h,
8429           lib/trq/silcdlist.h and lib/trq/silclist.h.
8430
8431         * Print warning in log files from now on if the packet
8432           decryption fails.  Affected file silcd/server.c.
8433
8434 Thu Jun 28 21:30:39 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
8435
8436         * Changed the `say' client operation's interface to accept
8437           new `type' argument to indicate the type of the message sent
8438           by the library.  The application may filter the library's
8439           messages according the type.  The affected file is the
8440           lib/silcclient/silcapi.h.
8441
8442         * Added two new functions to lib/silcclient/silcapi.h:
8443           silc_client_del_client and silc_client_del_client_by_id.
8444           Affected file lib/silcclient/idlist.c.
8445
8446         * Moved the clientincludes.h from includes/ to silc/ and
8447           serverincludes.h from includes/ to silcd/.
8448
8449         * The modes for the CMODE and CUMODE are now passed as
8450           uint32 for application with COMMAND_REPLY.  The affected
8451           file is lib/silcclient/command_reply.c.
8452
8453 Wed Jun 27 22:24:47 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
8454
8455         * /WHOIS without arguments shows client's own information.
8456           Affected file lib/silcclient/command.c.
8457
8458         * Changed PING to not accept any arguments.  The specs
8459           says that client can ping only the connected server so
8460           requiring an argument is not needed.  Affected file is
8461           lib/silcclient/command.c.
8462
8463 Wed Jun 27 00:10:33 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
8464
8465         * Fixed a fatal bug in private message sending and reception
8466           encryption and decryption when using private message keys.
8467           The implementation was incorrect and did not follow the
8468           specification.  It causd that some of the message were
8469           lost since it did not use the sending and receiving keys
8470           as the protocol suggests.  This has been fixed and will cause
8471           incompatibilities with older clients when sending private
8472           message encrypted with private message keys.  Affected files
8473           lib/silcclient/client_prvmsg.c, lib/silcclient/client_keyagr.c
8474           and various other in Irssi SILC Client.
8475
8476           Added `responder' boolean argument to the functions
8477           silc_client_add_private_message_key[_ske] to indicate when
8478           the key is added as responder or initiator of the key
8479           negotiation.
8480
8481 Tue Jun 26 19:23:07 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
8482
8483         * Removed the silc_ske_check_version function and created
8484           a SilcSKECheckVersion callback.  Added also a function
8485           silc_ske_set_callbacks that is now used to set all SKE
8486           callbacks.  The callback functions are not given to
8487           the SKE functions anymore, but this function is used to
8488           set the callbacks.
8489
8490         * Fixed the WIN32 DLL generation in lib/Makefile.am.pre.
8491
8492         * Added `silc_version' argument to the silc_client_alloc
8493           to define the version of the application for the library.
8494           The library will use the version string to compare it
8495           against the remote host's (usually a server) version
8496           string.  Affected file lib/silcclient/silcapi.h
8497
8498         * Added the KE protocol context to Key Agreement context
8499           in client library so that we can abort the SKE if it
8500           is in process when we get timeout.  Affected file is
8501           lib/silcclient/client_keyagr.c.
8502
8503         * Do not resolve the client ID forever if it returns in the
8504           first time that such client does not exist.  This was done
8505           for example with private message.  Affected file is
8506           lib/silcclient/client_prvmsg.c.
8507
8508 Mon Jun 25 21:42:51 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
8509
8510         * Do not add regex.h for WIN32.  The affected file
8511           includes/silcincludes.h.
8512
8513         * Added WIN32 DLL generation to lib/Makefile.am.pre.  It might
8514           not work yet 100%.  It generates the DLL's automatically
8515           when compiling with --with-win32 under cygwin.
8516
8517 Sun Jun 24 19:49:23 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
8518
8519         * lib/contrib/regex.c is not compiled on WIN32.
8520
8521         * Added silc_net_get_socket_opt function to the
8522           lib/silcutil/silcnet.h.
8523
8524         * Added includes/silcwin32.h for WIN32 specific includes
8525           and definitions.
8526
8527         * Do not use ptime structure or any of the posix process
8528           functions on WIN32 in lib/silccrypt/silrng.c.
8529
8530         * Added silc_gettimeofday to provide generic function
8531           for struct timeval on all platforms.  Added the function
8532           to lib/silcutil/silcutil.h.
8533
8534 Sun Jun 24 12:19:52 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
8535
8536         * Moved the lib/silccore/silcsockconn.[ch] to the utility
8537           library as they clearly belong there.  As a plus side we
8538           can make the actual socket connection routines platform
8539           specific.
8540
8541           Added also new generic function silc_socket_read and
8542           silc_socket_write (that used to be silc_packet_[read/write].
8543           The implementation of these are platform specific.
8544
8545         * Added WIN32 specific routines of silc_socket_[read/write]
8546           to lib/silcutil/win32/silcwin32sockconn.c.
8547
8548 Sat Jun 23 16:01:00 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
8549
8550         * Added preliminary support for native WIN32 compilation under
8551           cygwin (using the -mno-cygwin option for GCC) to the
8552           ./configure.in.pre.  The --with-win32 now prepares the
8553           compilation for native WIN32.
8554
8555         * Rewrote the SILC Scheduler interface in the file
8556           lib/silcutil/silcschedule.h.  The scheduler is now context
8557           based and does not have anymore any global static scheduler.
8558           Moved the Unix scheduler to the lib/silcutil/unix/ directory
8559           and created lib/silcutil/win32 directory for WIN32 based
8560           scheduler.
8561
8562         * Added Unix specific network routines to the
8563           lib/silcutil/unix/silcunixnet.c and the old
8564           lib/silcutil/silcnet.c includes now only generic routines.
8565
8566           Added WIN32 specific network routines to the
8567           lib/silcutil/win32/silcwin32net.c.
8568
8569         * Added Unix specific utility functions from the
8570           lib/silcutil/silcutil.c to lib/silcutil/unix/silcunixutil.c.
8571
8572         * Added WIN32 SILC Scheduler to the file
8573           lib/silcutil/win32/silcwin32schedule.c. The code is of course
8574           untested.
8575
8576 Fri Jun 22 10:44:14 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
8577
8578         * Do not handle JOIN notify in the server if the target client
8579           is not registered (idata->registered == FALSE).  The affected
8580           file is silcd/packet_receive.c.
8581
8582         * Update the nickrec->founder in event_cumode in the Irssi SILC
8583           client.  Affected file irssi/src/silc/core/silc-channels.c.
8584
8585         * Fixed the CUMODE_CHANGE notify handling in the server when
8586           server and router are announcing their clients on channels.
8587           Now the mode changes are saved and notified correctly.  The
8588           affected file is /silcd/packet_receive.c.
8589
8590         * Fixed silc_idlit_replace_[server/client/channel]_id functions.
8591           They really did not replace the cache entry in the ID Cache.
8592           Now they do that.  Affected file silcd/idlist.c.
8593
8594         * Fixed the KICK notify handling in the Irssi SILC client to
8595           update the channel records so that the kicked client does not
8596           appear to be on the channel.  The affected file is
8597           irssi/src/silc/core/silc-channels.c.
8598
8599         * Always update the conn->current_channel when executing command
8600           on a channel.  Affected file irssi/src/silc/core/silc-servers.c.
8601
8602         * Fixed the KILL notify handling in Irssi SILC client to remove
8603           the killed client on all channels.
8604
8605 Thu Jun 21 17:10:08 CEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
8606
8607         * Fixed the silc_parse_command_line to remove extra spaces
8608           from the start and end of the arguments.  Affected file is
8609           lib/silcutil/silcutil.c.
8610
8611         * Cancel and free any active protocol in the function
8612           silc_server_close_connection.  Affected file silcd/server.c.
8613
8614         * Cancel and free any active protocol in the function
8615           silc_client_close_connction.  Affected file is
8616           lib/silcclient/client.c.
8617
8618         * Do not execute the KILL command for clients that are in
8619           history (ie. they are not in the network).  Affected file is
8620           silcd/command.c.
8621
8622         * Fixed KILL notify handling, client does not crash anymore.
8623           Affected file irssi/src/silc/core/silc-channels.c.
8624
8625         * Reduced the default packet buffer size from 2048 to 1024 in
8626           lib/silccore/silcpacket.c.
8627
8628         * Added SILC_SKE_STATUS_FREED SKE status type and a reference
8629           counter to the SKE context that is incresed when the SKE library
8630           performs async operation outside the library.  If the outside
8631           process frees the SKE context and FREED status will be set
8632           and the library will detect after the sync operation that the
8633           libary is freed.  The affected files are
8634           lib/silcske/silcske[_status].[ch].
8635
8636         * Resolve the client entry information in the function
8637           silc_client_channel_message to assure that NULL pointer is not
8638           passed as client entry to the application. */
8639
8640         * Fixed the task timeout calculation to assure that there is
8641           never negative timeouts.  The affected file is
8642           lib/silcutil/silcschedule.c.
8643
8644         * Fixed the channel user mode notification sending in server.
8645           It was sent point-to-point to the router (or to server by router)
8646           but it needs to be destined to a channel.  The routines now
8647           supports sending the channel user mode notifys to the channels
8648           when announcing clients and channels.  Affected files are
8649           silcd/server.c and silcd/packet_receive.c.
8650
8651         * Fixed the CHANNEL_CHANGE notify handling in the client libary.
8652           It did not actually replace the old channel entry in the cache.
8653           Affected file lib/silcclient/client_notify.c.
8654
8655 Tue Jun 19 22:10:36 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
8656
8657         * Fixed a possible crash in silc_packet_send_prepare.  It now
8658           assures always that there is enough space in the buffer and
8659           at the tail area of the buffer (for MAC).
8660
8661           Fixed the inbound buffer reallocation in silc_packet_read.
8662           It was old code and did not handle the reallocation correctly.
8663           Affected
8664
8665           The affected file is lib/silccore/silcpacket.c.
8666
8667         * Fixed buffer overflow in silc_parse_nickname in the file
8668           lib/silcutil/silcutil.c.
8669
8670 Tue Jun 19 13:40:09 CEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
8671
8672         * make install generates new server keys only if there is not
8673           keys already.
8674
8675 Mon Jun 18 18:49:07 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
8676
8677         * Set SILC_MESSAGE_FLAG_NOREPLY when sending the away message.
8678           Added check that if the NOREPLY is set then we will not send
8679           the away message.  This avoids infinite loop of away messages
8680           if both clients are away.  The affected file is
8681           lib/silcclient/client_prvmsg.c.
8682
8683         * Fixed client crash if /NICK was given without arguments.
8684           Affected file lib/silcclient/command.c.
8685
8686         * Server does not send the invite list in INVITE command back
8687           to the client if the list was not altered.  Added this notion
8688           to the protocol spec as well.  Affected file silcd/command.c.
8689
8690           Fixed possible crash in INVITE command by checking the
8691           value of silc_server_get_client_route command.
8692
8693         * Fixed the INVITE notify type handling.  The arguments are now
8694           taken in correct order and client does not crash.  The affected
8695           file is irssi/src/silc/core/silc-channels.c.
8696
8697           Removed the "Inviting xxx to channel" message from the
8698           client library away and let the application handle it.
8699           Affected file lib/silcclient/command.c.  Added that message
8700           to Irssi SILC client's message formats.
8701
8702         * Fixed CMODE command crash in client.  It now checks the
8703           amount of arguments correctly and does not crash.  The affected
8704           file is lib/silcclient/command.c.
8705
8706         * Do not create new channel automatically in silc_channels_join
8707           but check whether the channel by that name already exists.
8708           Affected file irssi/silc/core/silc-channels.c.
8709
8710         * Do not send the SERVER_SIGNOFF to router if the disconnected
8711           entity was the router.  Affected file silcd/server.c.
8712
8713         * Added the handling of the SERVER_SIGNOFF notify to the Irssi
8714           SILC client as it was missing from there.
8715
8716           Added the handling of the KICK notify to the Irssi SILC client
8717           as it was missing.  Added "you have been kicked" message to
8718           Irssi SILC client's message modules formats.
8719
8720           Added the handing of the KILL notify to the Irssi SILC client
8721           as it was missing.  Added the kill message module formats
8722           as well.
8723
8724           The affected file is irssi/src/silc/core/silc-channels.c.
8725
8726         * The router did not save the channel mode the server announced.
8727           Affected file silcd/packet_receive.c.
8728
8729         * Fixed a possible crash in INFO command in server.  If the
8730           server did not provide the server info it crashed.  Affected
8731           file silcd/command.c.
8732
8733 Sun Jun 17 15:26:05 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
8734
8735         * Fixed the GETKEY command in the server to check also the
8736           global list.  Otherwise the GETKEY would not work correctly
8737           in normal SILC server.  Affected file silcd/command.c.
8738
8739 Sat Jun 16 18:00:00 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
8740
8741         * Fixed GETKEY crash, it crashed if the command did not succseed.
8742
8743 Tue Jun 12 21:36:18 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
8744
8745         * Redefined the SILC MP API in lib/silcmath/silcmp.h. The API
8746           is now real and not just an macro interface to GMP.
8747
8748           Removed the entire GMP from the source tree and imported new
8749           NSS MPI library instead.  Reason for removing GMP is that it is
8750           extremely large and compiles extremely slow.  The NSS MPI
8751           is only a few files and compiles in less than 10 seconds.
8752           The speed is also about the same as GMP.  The MPI is imported
8753           to lib/silcmath/mpi.
8754
8755           If the system has GMP installed we will still use the GMP.
8756           If it is not then the NSS MPI will be compiled.
8757
8758 Mon Jun 11 18:07:24 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
8759
8760         * Merged a long nickname (127 characters long) crash bugfix from
8761           Irssi CVS tree.  Affected file irssi/src/core/misc.c.
8762
8763         * Merged a freed memory reference bugfix from Irssi CVS tree.
8764           Affected file irssi/src/core/commands.c.
8765
8766 Sun Jun 10 16:08:35 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
8767
8768         * Added the server's public key sving and verification to the
8769           server when performing the SKE.  This was missing and the
8770           remote server's (or router's) public key was accepted without
8771           checking whether we have it previously or trust it at all.
8772           Affected file silcd/protocol.c.
8773
8774 Sat Jun  9 20:17:30 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
8775
8776         * Check in the silc_server_timeout_remote if protocol is active
8777           and make sure that the protocol's final callback is called so
8778           that all memory if freed.  Affected file silcd/server.c.
8779
8780 Sat Jun  9 12:51:27 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
8781
8782         * silc_server_whois_send_reply crashed the server if the nickname
8783           was 127 characters long.  Affected file silcd/command.c.
8784
8785 Thu Jun  7 16:29:56 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
8786
8787         * Added sanity check to the silc_server_new_client. If the hostname
8788           is provided inside username then check that the provided hostname
8789           really is the same as the resolved one.  If the hostname was not
8790           resolved then check it from the public key.  Affected file is
8791           silcd/packet_receive.c.
8792
8793         * Fixed a fatal bug in Irssi SILC client. Do not send QUIT command
8794           if the server disconnected us and the connection is not valid
8795           anymore.  Affected file irssi/src/silc/core/silc-channels.c.
8796
8797         * Moved the silc_client_[chmode|chumode|chumode_char] away from
8798           the library to the lib/silcutil/silcutil.[ch].
8799
8800 Thu Jun  7 08:57:16 CEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
8801
8802         * Close log file after open.  Affected file
8803           lib/silcutil/silclog.c.
8804
8805         * Check whether sock == NULL in silc_client_send_packet and return
8806           if it is.  Affected file lib/silcclient/silcclient.c.
8807
8808         * Check rec->entry == NULL in the Irssi SILC Client before
8809           sending the channel message.  Affecte file is
8810           irssi/src/silc/core/silc-servers.c.
8811
8812 Tue Jun  5 08:08:21 CEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
8813
8814         * Merged a splitted window bugfix from Irssi CVS tree.  The
8815           affected file is irssi/src/fe-text/textbuffer-view.c.
8816
8817         * Fixed the ME, ACTION and NOTICE printing in Irssi Client.
8818           It did not print nickname.
8819
8820         * Improved the distributions system a bit.
8821
8822 Mon Jun  4 17:57:16 CEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
8823
8824         * Merged /WINDOW bugfix from irssi CVS tree. Affected file is
8825           irssi/src/fe-text/gui-window.c.
8826
8827         * Fixed a fatal bug in Irssi SILC client. Crashed if sent message
8828           to in-active server.  The affected file is
8829           irssi/src/silc/core/client_ops.c.
8830
8831         * Resolve the client in USERS command reply if the entry does
8832           not have username resolved.  The affected file is
8833           lib/silcclient/command_reply.c.  Also, changed the IDENTIFY
8834           command to WHOIS command to really resolve stuff.  The USERS
8835           is not used any more in any critical section so WHOIS can
8836           be used even though it might be slower than IDENTIFY.
8837
8838         * Changed the lib/silcutil/silchashtable.h header to ROBODoc
8839           format.
8840
8841 Sun Jun  3 14:21:32 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
8842
8843         * Changed the protocol API a bit more consistent in the
8844           lib/silccore/silcprotocol.[ch].
8845
8846         * Changed the following headers to ROBODoc format:
8847
8848                 lib/silccore/silcpayload.h
8849                 lib/silccore/silcprotocol.h
8850                 lib/silccore/silcsockconn.h
8851
8852           All core library headers are now formatted.
8853
8854 Sat Jun  2 10:45:09 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
8855
8856         * Fixed a bug in Irssi SILC client; do not show that you are
8857           server/router operator if you really are not.  Affected file is
8858           irssi/src/silc/core/client_ops.c.
8859
8860         * Renamed silc_command_free_payload to silc_command_payload_free.
8861           Affected file lib/silccore/silccommand.h
8862
8863         * Added silcmath.h to include the prototoypes of various routines
8864           in the lib/silcmath.  Removed the old modinv.h, mpbin.h and
8865           silcprimegen.h.
8866
8867         * Changed the following headers to ROBODoc format:
8868
8869                 lib/silccore/silcchannel.h
8870                 lib/silccore/silccommand.h
8871                 lib/silccore/silcid.h
8872                 lib/silccore/silcidcache.h
8873                 lib/silccore/silcmode.h
8874                 lib/silccore/silcnotify.h
8875                 lib/silccore/silcpacket.h
8876                 lib/silcmath/silcmath.h
8877
8878 Fri Jun  1 22:19:37 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
8879
8880         * Added checking to the server code not to start the server if
8881           ciphers and stuff are not configured properly.  Affected files
8882           silcd/serverconfig.[h] and silcd/server.c.
8883
8884         * Changed the layout of the header files of the public interfaces
8885           in the SILC libraries.  The new layout supports ROBODoc
8886           documentation tool (and some others) so that it is easy to create
8887           a library reference manual.  All the other headers and source
8888           code must still follow the CodingStyle document.  Also source
8889           code must not include these ROBODoc stuffs, only the headers.
8890           Furthermore, all public interface headers must now be named
8891           by using `silc' prefix, example: silcapi.h, silccipher.h.
8892           Some files were renamed due to this.  All the other headers
8893           must not be used as public interfaces.  I will update the
8894           CodingStyle document later.  Changed following headers, so far:
8895
8896                 lib/silcclient/silcapi.h
8897                 lib/silccore/silcauth.h
8898                 lib/silccore/silcprivate.h
8899                 lib/silccrypt/silcdh.h
8900
8901 Fri Jun  1 10:28:09 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
8902
8903         * Updated TODO.
8904
8905         * Removed silc_client_packet_send_flush from the client library
8906           as it is not needed.  Affected file lib/silcclient/client.[ch].
8907
8908         * Added printing of message of unresolved authentication method
8909           to the Irssi SILC client.  Added it to the module formats.
8910           Removed the same message from the client library.
8911
8912 Thu May 31 13:57:33 CEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
8913
8914         * Added new distribution feature, DISTLABEL.  Every distribution
8915           can define own preprocessor label that can be used in the
8916           source code.  For example: #ifdef SILC_DIST_CLIENT.  Affected
8917           file distributions, acconfig.h.pre and prepare.
8918
8919 Tue May 29 22:16:40 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
8920
8921         * Added Makefile.defines_int to include the actual definitions
8922           for Makefile.defines.in.  Tested the new distribution system,
8923           created distributions and tested installation.
8924
8925         * Added AWAY message printing to the Irssi SILC client.  Added
8926           the messages to the irssi/src/fe-common/silc/module-formats.[ch].
8927
8928         * Added SCONNECT command to call the SILC's CONNECT command.
8929           Cannot use CONNECT directly since Irssi uses that internally.
8930           Affected file irssi/src/silc/core/silc-servers.c.
8931
8932           Added ACTION local command.  It is same as ME command but takes
8933           the channel as mandatory argument.
8934
8935           Rewrote some of the Irssi's help files to suite for SILC
8936           protocol.
8937
8938 Mon May 28 19:05:22 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
8939
8940         * Added Makefile.defines[.in] that should for now on be included
8941           in all Makefile.am file in the source tree.  That file includes
8942           all common compilation definitions for SILC source tree.
8943
8944 Mon May 28 10:30:51 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
8945
8946         * Minor changes to the ./prepare script to change the package
8947           name according the distribution name to the configure.in.
8948
8949 Sun May 27 22:24:57 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
8950
8951         * Created new distribution system.  Added file `distributions'
8952           that defines all the distributions that can be created out of
8953           the SILC source tree.  The ./prepare script now reads that
8954           file to determine how to prepare the distributions.  The
8955           first argument to the ./prepare is the name of the distribution
8956           and second is the version of the distribution.  If given
8957           without arguments it creates the default (toolkit) distribution
8958           with the default version (defined in ./prepare).
8959
8960           All Makefile.am files that are subject to the distributions
8961           are now named as Makefile.am.pre.  These are ./Makefile.am
8962           and lib/Makefile.am.  Others may be changed later.
8963
8964 Sun May 27 15:57:17 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
8965
8966         * Added invite list, ban list, some key management and connection
8967           error message printing to module formats in the Irssi SILC client.
8968
8969         * Added new silc_client_set_away_message to set the away message
8970           that is back to the person who sent private message.  The
8971           affected file lib/silcclient/silcapi.h and the
8972           lib/silcclient/client_prvmsg.c.
8973
8974 Sun May 27 12:39:48 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
8975
8976         * Fixed the private message sending in the Irssi SILC client,
8977           added local command KEY to the Irssi SILC client.
8978
8979           Added key management and key agreement message formats to the
8980           irssi/src/fe-common/silc/module-formats.[ch].
8981
8982           Added USERS (alias WHO) printing, server/router operator
8983           indication and LIST command printing to the module formats.
8984
8985 Sat May 26 17:43:42 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
8986
8987         * Fixed channel joining notify handling, cumode notify handling
8988           from Irssi SILC client.
8989
8990         * Added SILC specific module-formats to the Irssi SILC client so
8991           that SILC specific message hilighting, colors etc is possible.
8992           Affected file irssi/src/fe-common/silc/module-formats.[ch].
8993
8994           Added channel mode, channel user mode, actions, notices,
8995           whois and whowas printing to the the module-formats.c.
8996
8997         * Fixed a bug in channel deletion in the server.  The channel
8998           is not left to the cache even if the channel founder auth mode
8999           is set when there are no users anymore on the channel.  Affected
9000           file silcd/server.c.
9001
9002         * The silc_net_localhost now resolves the entire hostname including
9003           the domain name.  Affected file lib/silcutil/silcnet.c.
9004
9005 Sat May 26 12:13:37 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9006
9007         * Changed the ask_passphrase client operation to be ascynchronous.
9008           It has now a completion callback and a context that the
9009           application must call after it has got the passphrase from
9010           the user.  Affected files lib/silcclient/silcapi.h,
9011           lib/silcclient/protocol.c, lib/silcclient/command.c and
9012           silc/client_ops.c.
9013
9014           Added SilcAskPassphrase callback that the application calls
9015           to deliver the passphrase to the library.
9016
9017         * Changed the SKE protocol's SilcSKEVerifyCb to be asynchronous.
9018           The public key verification and especially a certificate
9019           verification is asynchronous procedure.
9020
9021           Added new SILC_SKE_STATUS_PENDING status to indicate the
9022           request is pending and a callback will be called to finalize
9023           the request.
9024
9025           Added also SILC_SKE_STATUS_PUBLIC_KEY_NOT_PROVIDED status to
9026           indicate that remote end did not send its public key (or
9027           certificate), even though we require it.  Added check for this
9028           condition in the SKE.  This was a security bug, now fixed.
9029
9030           Defined new SilcSKEVerifyCbCompletion callback that is called
9031           when the verification process is completed.
9032
9033           The affected files lib/silcske/silcske_status.h and
9034           lib/silcske/silcske.[ch].
9035
9036         * Changed the verify_public_key client operation to be async
9037           as well.  Defined SilcVerifyPublicKey callback that is used to
9038           indicate the success of the public key verification process.
9039
9040           Changed the server and client to use the new async client
9041           operations.
9042
9043         * Changed the Irssi SILC client's internal scheduler to be called
9044           twice as many times as it used to be.  As a result the client
9045           should be a bit faster now.  Affected file is
9046           irssi/src/silc/core/silc-core.c.
9047
9048         * Added support to Irssi SILC client of asynchronous public key
9049           verification and passphrase inquiry.  Affected file is
9050           irssi/src/silc/core/silc-core.c.
9051
9052 Fri May 25 14:38:38 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9053
9054         * Do not say "You have left channel %s" in client library.
9055           Moved it to the application.  Affected files are
9056           lib/silcclient/command.c and silc/client_ops.c.
9057
9058         * Fixed silc_client_get_clients.  Command context was not
9059           duplicated and was freed memory in the callback.  Affected
9060           file lib/silcclient/idlist.c.
9061
9062         * Do not say "you are now talking..." on JOIN command in the
9063           client library.  The appliation must handle it.
9064
9065         * Do not say ".. changed topic to" in command reply in the
9066           client libary.  The application must handle it.
9067
9068         * Fixed TOPIC command sending in the client library.
9069
9070         * Fixed a memory leak in silc_client_command_free in the file
9071           lib/silcclient/command.c.
9072
9073 Thu May 24 19:08:55 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9074
9075         * Imported a modified version of Irssi client to the source tree.
9076           The Irssi will be used to create a new client called
9077           Irssi SILC.  Imported to irssi/.
9078
9079           Added silc_core_init_finish function to the Irssi.  Affected
9080           file irssi/configure.in.
9081
9082           A lot changes in the Makefile.ams around the irssi tree.
9083
9084 Tue May 22 22:23:49 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9085
9086         * Do not rehash if the new size is same as the old size of the
9087           hash table, in the silc_hash_table_rehash*.  The affected file
9088           lib/silcutil/silchashtable.c.
9089
9090         * Replaced hash_table_del_by_context calls from the server
9091           (when channel->user_list and client->channels) to the
9092           hash_table_del as it is sufficient and faster.
9093
9094 Tue May 22 17:27:16 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9095
9096         * Added silc_hash_table_list, silc_hash_table_get and the
9097           SilcHashTableList structure to provide an alternative way to
9098           traverse the hash table.  The affected files are
9099           lib/silcutil/silchashtable.[ch].
9100
9101         * Changed the server's idlist routines to use the hash table
9102           routines to optimize the code.
9103
9104 Mon May 21 21:46:20 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9105
9106         * Replaced the client entry's `channel' list and channel entry's
9107           `user_list' list to hash tables for optimized lookup.  Changed
9108           the code to use the hash table interface around the code.
9109           Affected file lib/silcd/idlist.[ch].
9110
9111         * Added `auto_rehash' boolean argument to the function
9112           silc_hash_table_alloc to indicate whether the hash table should
9113           auto-rehash when it thinks is appropriate time.  It will
9114           increase the hash table size if the there is twice as much
9115           entries in the table than the size of the table, and will
9116           decrease the size if there are twice as less entries than
9117           the size of the table.
9118
9119 Mon May 21 09:51:11 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9120
9121         * Fixed silc_xxx_get_supported to not crash at some circumstances.
9122
9123 Sun May 20 13:45:58 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9124
9125         * silc_idcache_purge_by_context deletes the entry now by context
9126           as it is supposed to do.  Affected file lib/silccore/idcache.c.
9127
9128         * Send the ERR_NO_SUCH_NICK in the WHOIS command reply if the
9129           client is not anymore valid (WHOWAS givens the info) and not
9130           the ERR_NO_SUCH_CLIENT_ID if the nickname still exists.
9131
9132 Sat May 19 16:30:03 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9133
9134         * Removed the `data' and `data_len' arguments from the ID Cache
9135           interfaces and added `name' argument.  ID Cache does not handle
9136           anymore the binary data only a names associated with given ID.
9137
9138         * When hashing a Client ID with silc_hash_id the entire ID is
9139           not hashed anymore, instead only the hash of the Client ID is
9140           hashed.  This way we can access the Client ID from the cache
9141           with Client ID but with the hash of the ID (which is a hash of
9142           the nickname) as well without any difference in performance.
9143
9144           Added also silc_idcache_find_by_id_one_ext to do one on one
9145           searching when we have the actual ID.  Added also function
9146           silc_hash_client_id_compare.  The affected files are
9147           lib/silccore/idcache.[ch] and lib/silcutil/silcutil.[ch].
9148
9149         * When hashing the name associated with a ID it is always done
9150           in lowercase.  This way we can access the cache without worrying
9151           about case-sensitivity, even though, for example nicknames are
9152           case sensitive.
9153
9154         * Fixed a bug in server with channel message sending.  It put
9155           wrong ID type as destination ID.  The affected file
9156           silcd/packet_send.c.
9157
9158         * silc_idcache_del_by_context now deletes from all hash tables
9159           by context.  Affected file lib/silccore/idcache.c.
9160
9161 Fri May 18 17:42:00 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9162
9163         * Changed the client library to use the new ID Cache interface.
9164           Changes around the source tree.
9165
9166         * Added silc_hash_table_rehash_ext to rehash with specific
9167           hash function.  Affected file lib/silcutil/silchashtable.[ch].
9168
9169         * Added silc_hash_string_compare to compare two strings in the
9170           hash table.  Affected file lib/silcutil/silcutil.[ch].
9171
9172 Fri May 18 11:18:45 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9173
9174         * Added new function silc_idcache_del_by_context into the
9175           lib/silccore/idcache.[ch].
9176
9177         * Changed the server's ID list routines to use the new ID Cache
9178           interface.  Changes around the source tree.
9179
9180 Fri May 18 08:35:31 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9181
9182         * Added silc_hash_table_del[_by_context]_ext functions in to the
9183           lib/silcutil/silchashtable.[ch].
9184
9185           Removed silc_hash_table_find_all* routines and added new
9186           silc_hash_table_find_foreach to replace them.
9187
9188           Added silc_hash_table_replace_ext function as extended
9189           replacing function.  Separated the simple hash table interface
9190           from the extended hash table interface in the file
9191           lib/silcutil/silchashtable.h.
9192
9193         * Fixed minor bugs and changed it to use some of the new
9194           hash table functions in lib/silccore/idcache.c
9195
9196 Thu May 17 18:15:12 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9197
9198         * Added new function silc_hash_table_find_all to return all keys
9199           in the hash table by the specified key.  As the hash table is
9200           collision resistant it also makes it possible to have several
9201           duplicate keys in the hash table.  This function may be used to
9202           find all of the keys from the hash.
9203
9204           Added user_context arguments to the SilcHashFunction,
9205           SilcHashCompare and SilcHashDestructor to deliver user specified
9206           context.
9207
9208           Added new fuctions silc_hash_table_find[_all]_ext to do
9209           extended lookup with specified hash and compare functions and
9210           specified user contexts.
9211
9212           Added new function silc_hash_table_add_ext to add the key
9213           with specified hash function and user context.
9214
9215           Added new function silc_hash_table_foreach to traverse all
9216           entrys in the hash table.  Added SilcHashForeach callback
9217           function.
9218
9219           Added new function silc_hash_table_del_by_context to delete
9220           the entry only if the context associated with the key matches.
9221
9222           Affected files are lib/silcutil/silchashtable.[ch].
9223
9224         * Removed silc_hash_[server/client/channel]_id and added just
9225           silc_hash_id to the lib/silcutil/silcutil.[ch].  Added also
9226           silc_hash_id_compare to compare two ID's using as the hash table
9227           comparison function.  Added also silc_hash_data to hash
9228           binary data and silc_hash_data_compare to compare it.
9229
9230         * Removed silc_idlist_find_client_by_hash as it is not needed
9231           anymore.  Affected file silcd/idlist.[ch].
9232
9233         * Rewrote the entire ID Cache system (in lib/silccore/idcache.[ch])
9234           to use internally the SilcHashTable.  The new ID Cache is a lot
9235           faster than the old one.  Some of the ID Cache interface was also
9236           rewritten and obsolete and stupid functions were removed.
9237
9238 Wed May 16 23:03:30 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9239
9240         * Added entry_count field to the SilcHashTable to keep the number
9241           of the entries in the table.  Implemented the function
9242           silc_hash_table_rehash.  Added new function
9243           silc_hash_table_count.  Affected file lib/silcutil/silchashtable.c.
9244
9245           Fixed a minor bug in silc_hash_table_free.
9246
9247         * Added silc_hash_string, silc_hash_uint, silc_hash_ptr,
9248           silc_hash_client_id, silc_hash_server_id and silc_hash_channel_id
9249           into the lib/silcutil/silcutil.[ch].
9250
9251 Wed May 16 20:02:47 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9252
9253         * Implemented a collision resistant hash table into the
9254           lib/silcutil/silchashtable[ch].  See the header and the source
9255           for the SilcHashTable API.
9256
9257 Tue May 15 22:05:46 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9258
9259         * Merged dotconf version 1.0.2 into lib/dotconf.
9260
9261 Sun May 13 19:32:09 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9262
9263         * Do not compile anything in lib/silcsim/* if the SIM support
9264           is not enabled.  The tree should now compile without problems
9265           under cygwin.
9266
9267 Thu May 10 22:49:51 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9268
9269         * Compiled the SILC under cygwin.  Compiled and tested briefly
9270           without problems.  More tests needed.  The SIMs didn't compile
9271           though.
9272
9273         * Added various #ifdef HAVE_* stuff to lib/silccrypt/silrng.c.
9274
9275         * Fixed possible crash in silc_get_username in the
9276           lib/silcutil/silcutil.c.
9277
9278 Tue May  8 09:04:03 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9279
9280         * Fixed a va_arg in silc/client_ops.c.
9281
9282         * Oops, RC5 routines were named AES and caused some problems
9283           when not using SIM's.  Affected file lib/silccrypt/rc5.c.
9284
9285 Sun May  6 13:59:48 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9286
9287         * Added new SilcIDIP structure into the lib/silccore/id.h and
9288           replaced the old `ip' fields from all SILC ID's to that type.
9289           This is a step towards IPv6 support.
9290
9291           The silc_id_get_len takes now the ID as an extra argument.
9292           The silc_id_id2str, silc_id_str2id and silc_id_dup now supports
9293           both IPv4 and IPv6 based ID's.
9294
9295           The affected files are lib/silccore/id.[ch] and other files
9296           around the tree using these routines.
9297
9298         * Removed the ID length arguments in server from various
9299           silc_server_send_notify_* routines -> they are not needed
9300           anymore.
9301
9302 Sat May  5 13:56:33 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9303
9304         * Fixed memory leak in silc_encode_pem_file in the file
9305           lib/silcutil/silcutil.c.
9306
9307 Thu May  3 21:23:50 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9308
9309         * Check minor version as well in the SKE.  Affected files are
9310           silcd/protocol.c and lib/silcclient/protocol.c.
9311
9312         * Added --identifier option to the server so that an identifier
9313           can be when creating the public key for the server.  Affected
9314           file is silcd/silcd.c.
9315
9316         * Fixed minor decoding bug in silc_pkcs_decode_identifier in
9317           lib/silccrypt/silcpkcs.c.
9318
9319 Wed May  2 20:50:49 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9320
9321         * Register default ciphers and stuff when using -C option with
9322           the server.  Affected file sildc/silcd.c.
9323
9324         * Put back the servers public key filename format, it is better
9325           than the new one.  For now, the client keys are saved with the
9326           new filename format.  The affected file silc/client_ops.c.
9327
9328         * Implemented the Cipher API for the rest of the ciphers that
9329           did not implement it or implemented it the wrong way.
9330
9331 Wed May  2 13:31:26 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9332
9333         * Register default ciphers and stuff when using the -S option
9334           in the client.  Affected file silc/silc.c.  Same also when
9335           creating new key pair with -C option.
9336
9337 Tue May  1 14:18:13 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9338
9339         * Fixed the silc_verify_public_key client operation function to
9340           save the public keys differently.  The fingerprint is now
9341           used as filename and not the hostname.  This way also the
9342           client keys are saved uniquely and not with hostnames.  The
9343           affected file is silc/client_ops.c.
9344
9345         * Trimmed the silc_hash_fingerprint function to remove extra
9346           whitespaces from the end of the fingerprint.  The affected
9347           file is lib/silccrypt/silchash.c.
9348
9349         * Updated TODO.
9350
9351         * Added silc_cipher_register_default function to register all
9352           default ciphers.  It can be used when configuration files
9353           does not exist and the application does not want any specific
9354           ciphers in any specific order.
9355
9356           The SilcDList is now used as silc_cipher_list dynamically
9357           allocated cipher list.  Removed the static list all together
9358           and now all ciphers must be allocated to the dynamic list.
9359           The silc_cipher_alloc routine was changed to check only the
9360           dynamic list.
9361
9362           All silc_cipher_* routines that used to return int returns
9363           now bool.
9364
9365           The affected files lib/silccrypt/silccrypt.[ch].
9366
9367         * The same thing was done to silc_hash_* as for silc_cipher_*
9368           routines.  Affected files lib/silccrypt/silchash.[ch].
9369
9370         * The same thing was done to silc_pkcs_* as for silc_cipher_*
9371           routines.  Affected files lib/silccrypt/silcpkcs.[ch].
9372           Added also silc_pkcs_[un]register[_default] functions.
9373           Removed the data_context from the PKCS API.
9374
9375         * Added silc_hmac_register_default function to register default
9376           hmacs.  Affected files lib/silccrypt/silchmac.[ch].  Added also
9377           SILC_ALL_HMACS macro that can be used with silc_hmac_unregister
9378           to unregister all hmacs at once.
9379
9380         * Register the default ciphers, hash functions, PKCSs and HMACs
9381           if client's configuration file does not exist.  The affected
9382           file silc/silc.c.
9383
9384         * The client did not load the hash functions from the SIM
9385           modules at all.  Added support for this.  Affected file is
9386           silc/clientconfig.c.
9387
9388         * When decoding public key with silc_pkcs_public_key_decode, check
9389           the supported algorithm only if PKCS are registered.  Affected
9390           file lib/silccrypt/silcpkcs.c.  The same was done with the
9391           silc_pkcs_private_key_decode.
9392
9393         * Fixed the SILC List routines to keep the list always in order.
9394           It used to change the list's order when traversing the list but
9395           not it preserves the order.  Affected file lib/trq/silclist.h.
9396
9397 Mon Apr 30 17:29:03 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9398
9399         * Added the client library to use the SilcSocketConnection's
9400           reference counter (by silc_socket_dup) to prevent the bug that
9401           the socket object may be freed underneath async operation.
9402
9403         * The name resolv library checking fixes in the configure.in.pre.
9404           The patch by salo.
9405
9406         * Created new version of the protocol drafts for future
9407           development. The -03 drafts are the ones that will be changed
9408           in the trunk now and the -02 will remain as they are.
9409
9410         * Send list of CUMODE notifys to the router when announcing
9411           the channel users to the router.  Affected file silcd/server.c.
9412           If the router receiving channel founder CUMODE for a channel
9413           that already has channel founder it will send CUMODE notify
9414           to the sender to remove the channel founder rights from the
9415           announced client.  Affected file silcd/packet_receive.c.
9416
9417         * The CUMODE notify may now use Server ID as well as the entity
9418           who changes the mode.  Updated protocool specs.
9419
9420         * Updated INSTALL and README files.
9421
9422 Sun Apr 29 23:17:50 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9423
9424         * New web pages in the http://silc.pspt.fi.  The pages was
9425           designed by salo.
9426
9427         * Updated CREDITS.
9428
9429 Sun Apr 29 13:33:41 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9430
9431         * Implemented the [DenyConnectin] config section in the server.
9432           Added silc_server_config_denied_conn to check whether incoming
9433           connection is denied.  Affected file silcd/serverconfig.[ch].
9434
9435         * Do not check the ports when checking the incoming configuration
9436           data if the port is 0, meaning any.  Affected file is
9437           silcd/serverconfig.c.
9438
9439 Fri Apr 20 18:58:43 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9440
9441         * Fixed buffer overflow in silc_string_compare in the file
9442           lib/silcutil/silcutil.c.
9443
9444         * Fixed double free in silc_server_command_leave in the file
9445           silcd/command.c.
9446
9447 Fri Apr 20 14:00:11 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9448
9449         * Fixed the version checking in the server.  Affected file is
9450           silcd/protocol.c.
9451
9452 Thu Apr 19 19:52:46 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9453
9454         * Fixed the configuration data fetching when accepting new
9455           connections in the server.  Affected file silcd/server.c.
9456
9457 Thu Apr 19 11:40:20 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9458
9459         * Added `sender_entry' argument to the function
9460           silc_server_packet_relay_to_channel so that we can check
9461           whether some destination actually belongs to the same route
9462           the sender belongs (ie, we must not resend the packet to the
9463           sender).  Affected file silcd/packet_send.[ch].
9464
9465         * Added `servername' field to the SilcClientEntry in the server
9466           to hold the name of the server where client is from.  Affected
9467           file is silcd/idlist.h.
9468
9469 Wed Apr 18 22:19:03 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9470
9471         * Moved the channel message encrypting in the router betwen
9472           router connections from silc_server_channel_message to the
9473           silc_server_packet_relay_to_channel since we want to check
9474           whether we have anybody channel before encrypting anything.
9475           Affected files silcd/packet_[receive/send].c.
9476
9477 Tue Apr 17 21:18:19 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9478
9479         * Fixed the [AdminConnection] server config section to support
9480           multiple entries.  Affected file silcd/serverconfig.c.
9481
9482         * Added support into the server to check the validity of the
9483           incoming connection before executing any KE or authentication
9484           protocols.
9485
9486         * The connection configuration is now saved to the KE and
9487           connection auth protocol contexts and not fetched anymore in
9488           the protocol.  Affected files silcd/server.c, silcd/protocol.[ch].
9489
9490         * The local hosts listenning address and port is also resolved
9491           now when starting the server.  We want to have the socket object
9492           to include the real address and port for the listener.  Added
9493           new function silc_net_check_local_by_sock into the files
9494           lib/silcutil/silcnet.[ch].
9495
9496         * Fixed a broadcast bug in server -> do not broadcast if we
9497           are standalone.
9498
9499         * Fixed a routing bug.  Do not route broadcast packets ever.
9500           Broadcast packets must be processed always and not routed since
9501           they may be destined to some other host than yourself and thus
9502           would get routed without no good reason.  Affected file is
9503           silcd/server.c.
9504
9505         * Added function silc_server_config_is_primary_route to check
9506           whether primary router connection has been configured (a router
9507           configuration that we are initiating).  If there is not, we
9508           will assume that there is only two routers in the SILC network
9509           and we will use the incoming router connection as our primary
9510           route.  Affected files silcd/serverconfig.[ch], silcd/server.c.
9511
9512         * Changed the order of the broadcasting.  Broadcast _after_ the
9513           packet has been processed not before.  Affected file is
9514           silcd/server.c.
9515
9516         * Fixed a [ClientConnection] parsing bug.  The port was never
9517           parsed correctly thus resulting to port 0.  Affected file
9518           silcd/serverconfig.c.
9519
9520         * Fixed silc_server_send_notify_args -> it ignored the `broadcast'
9521           argument and did not set the broadcast packet flag.  Affected
9522           file silcd/packet_send.c.  Fixed same bug in the function
9523           silc_server_send_notify as well.
9524
9525         * If we receive NEW_ID packet for our own ID in the server, ignore
9526           the packet.
9527
9528 Mon Apr 16 12:10:33 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9529
9530         * Updated TODO.
9531
9532         * Removed the nickname from the Private Message Payload.
9533           Updated the code and the protocol specs.
9534
9535         * Updated protocol specs for submitting to the IETF.
9536
9537         * Tweaked the Random Number Generator a bit.  Affected file
9538           lib/silccrypt/silcrng.c.  Exported a new function
9539           silc_rng_[global]_add_noise which can be used to add more
9540           noise to the RNG.
9541
9542 Sat Apr 14 16:21:32 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9543
9544         * Do not parse packets with different timeout when protocol
9545           is active -> may cause problem with rekey.  Affected file
9546           silcd/server.c.
9547
9548         * When server receives signoff notify it must not create
9549           new channel key if the client is on any channels since the
9550           sender of the signoff notify will create it.
9551
9552 Fri Apr 13 17:12:46 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9553
9554         * Added printing of error messages during SKE protocol from the
9555           failure packet sent by server during SKE.  Affected file
9556           silc/client_ops.c.
9557
9558         * Removed the client's failure_callback handling with timeout
9559           and handle it immediately when received.
9560
9561         * The SKE library returned wrong type in SUCCESS and FAILURE
9562           packets.  They must be 32 bit MSB not 16 bit MSB.
9563
9564 Fri Apr 13 00:09:08 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9565
9566         * Ok, rewrote the logic of the re-key and now it seems to work.
9567           I tested it on high traffic with frequent re-keys without
9568           problems.  Added hmac_receive (and renamed hmac to hmac_send)
9569           in SilcClientConnection in lib/silcclient/client.h and
9570           in SilcIDListData in silcd/idlist.h.  Also, removed the
9571           SilcPacketParserContext's cipher and hmac fields as they are
9572           not needed anymore and actually caused some problems when
9573           the ciphers and hmac's changed underneath the packet parser.
9574
9575 Thu Apr 12 14:42:51 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9576
9577         * If re-key protocol is active then process the incoming packets
9578           synchronously since we must assure that icoming packets encrypted
9579           with the old key is processed before the new keys is set to
9580           use.  This is true other packets than for REKEY packets.
9581           Affected file silcd/server.c.  The same was done to client library
9582           as well, affected file lib/silcclient/client.c.
9583
9584 Thu Apr 12 12:01:52 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9585
9586         * Fixed bug in client and server to accept the force send if
9587           the packet is send from silc_[server/client]_packet_process
9588           function.  Otherwise the packets are never delivered, oops.
9589
9590 Wed Apr 11 22:10:15 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9591
9592         * Disable force sending of packets when REKEY protocol is active.
9593           We must assure that no packet is sent directly when rekey is
9594           performed.  All packets must be sent through packet queue.
9595           Added macro SILC_SERVER_IS_REKEY to silcd/server.h and
9596           SILC_CLIENT_IS_REKEY to lib/silcclient/client.h.  Affected
9597           function is silc_[server/client]_packet_send_real to check
9598           the situation.
9599
9600         * Replaced the SIM paths from example config files to
9601           /usr/local/modules.  Also, make install creates now
9602           /usr/local/silc/logs directory to hold all the SILC server
9603           logs.
9604
9605 Wed Apr 11 16:59:59 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9606
9607         * Made the configure.in.pre work on Solaris.  Patch by salo.
9608
9609         * Made all ciphers compatible with non-x86 machines.  Defined
9610           CBC mode macros into lib/silccrypt/ciphers_def.h.
9611
9612 Tue Apr 10 20:32:44 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9613
9614         * Fixed the make install.
9615
9616 Tue Apr 10 16:20:34 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9617
9618         * When MAC computation fails the silc_packet_decrypt returned 0
9619           even though it was supposed to return -1.  Fixed this.  The
9620           affected file is lib/silccore/silcpacket.c.
9621
9622         * Do not replace the config files in /etc/silc (in make install)
9623           if they already exist.  Affected file ./Makefile.am.
9624
9625         * Do not send re-key packets immediately but through packet queue.
9626           Affected file silcd/protocol.c and lib/silcclient/protocol.c.
9627
9628         * Changed silc_net_check_host_by_sock to return FALSE if the
9629           IP/DNS could not be resolved.  Though, it returns the IP address
9630           now even if it could not resolve it (but returns also FALSE).
9631           Affected file lib/silcutil/silcnet.[ch].
9632
9633 Mon Apr  9 21:54:44 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9634
9635         * Added silc_pkcs_decode_identifier to decode the public key's
9636           identifier.  Affected file lib/silccrypt/silpkcs.[ch].
9637           Added also silc_pkcs_free_identifier.  Added also new context
9638           SilcPublicKeyIdentifier.
9639
9640         * Added -S option to the silc client.  It is used to dump the
9641           contents of the specified public key file.
9642
9643         * Changed the PKCS api to return the public key length when
9644           setting the public key.
9645
9646         * Fixed a fatal bug in the public and private key file loading.
9647           Affected file lib/silccrypt/silcpkcs.c.
9648
9649         * Execute the packet parsing for client with zero (0) timeout
9650           if the protocol is active.  Affected file silcd/server.c.
9651
9652 Sun Apr  8 19:30:56 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9653
9654         * Made the key generation options to the silcd program.  Added
9655           -C option, equivalent to client's option.
9656
9657         * Added new [ServerKeys] config section to the server.  It
9658           configures the server's public and private key.
9659
9660         * Defined generic Public Key Payload into the protocol
9661           specification to send specific type of public keys and
9662           certificates.
9663
9664         * Defined new command SILC_COMMAND_GETKEY to fetch a client's
9665           public key or certificate.
9666
9667         * Implemented the GETKEY command to the server and to the
9668           client library and on user interface.
9669
9670 Sun Apr  8 01:37:21 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9671
9672         * Made preliminary `make install' work.
9673
9674 Thu Apr  5 17:42:30 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9675
9676         * Added SilcServerRekey context into silcd/idlist.h.
9677
9678         * Added the PFS support as defined in the specification to the
9679           SKE protocol.  Affected files lib/silcske/*.c.
9680
9681         * Added `ske_group' field to the SilcServerRekey context to hold
9682           the number of the SKE group that is used with PFS in re-key.
9683           Affected file silcd/idlist.h.
9684
9685         * Added PFS re-key support to the server.  Affected file is
9686           silcd/protocol.c.
9687
9688         * Added silc_protocol_cancel to cancel execution of the next
9689           state of the protocol.  Affected file is
9690           lib/silccore/silcprotocol.[ch].
9691
9692         * Added the re-key support with and without PFS to the client
9693           library.  Re-key is performed once in an hour, by default.
9694
9695           Added new protocol type SILC_PROTOCOL_CLIENT_REKEY.
9696           Added silc_client_rekey_callback and silc_client_rekey_final.
9697           Affected files are lib/silcclient/protocol.[ch] and
9698           lib/silcclient/client.[ch].
9699
9700         * Removed the `hmac_key' and `hmac_key_len' fields from the
9701           SilcClientConnection structure; not needed.  Affected file is
9702           lib/silcclient/client.h.
9703
9704         * Updated TODO.
9705
9706 Wed Apr  4 16:32:31 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9707
9708         * Do not ask whether user wants to use the negotiated private key
9709           for private messages, just use it.  Affected file is
9710           silc/local_command.c.
9711
9712         * Added `send_enc_key' and `enc_key_len' fields to the
9713           SilcIDListData structure since they are needed in the re-key
9714           phase.  Affected file is silcd/idlist.[ch].
9715
9716         * Implemented the simple re-key protocol into the server.
9717           Affected files silcd/server.c and silcd/protocol.[ch].  The
9718           re-key will be performed once in an hour, by default.
9719
9720           Added new protocol type SILC_PROTOCOL_SERVER_REKEY.
9721           Added silc_server_rekey, silc_server_rekey_callback and
9722           silc_server_rekey_final.
9723
9724         * Removed Tunneled flag from the protocol.  Updated the code
9725           and the specifications.
9726
9727         * Adde `pfs' field to the SilcIDListData to indicate whether
9728           the PFS is to be performed in the re-key.  Affected file is
9729           silcd/idlist.h.
9730
9731 Tue Apr  3 21:52:42 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9732
9733         * Defined uint8, int8, uint16, int16, uint32, int32, uint64 and
9734           int64 of at least the xintXX size.  If void * is less that 4
9735           bytes uint32 * will be used.  Defined bool as boolean.
9736
9737         * Changed _ALL_ unsigned long and unsigned int to uint32,
9738           unsgined short to uint16 in the source tree.
9739
9740         * Fixed a fatal bug in silc_server_remove_clients_by_server.  Do
9741           not handle clients that has entry->data.registered == FALSE.
9742           They are not in the network anymore.  Affected file is
9743           silcd/server.c.
9744
9745 Tue Apr  3 16:39:19 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9746
9747         * Implemented the sending of the SERVER_SIGNOFF notify in the
9748           server.  Affected file is silcd/server.c.
9749
9750         * Added silc_server_send_notify_args into silcd/packet_send.[ch].
9751           Added also silc_notify_payload_encode_args into the
9752           lib/silccore/silcnotify.[ch].
9753
9754         * Implemented ther SERVER_SIGNOFF notify handling in the server.
9755           Affected file silcd/packet_receive.c.
9756
9757         * Implemented the SERVER_SIGNOFF notify handling in the client
9758           library.  Affected file lib/silcclient/client_notify.c.  Also,
9759           implemnted the printing of the SERVER_SIGNOFF info to the
9760           application.  Affected file silc/client_ops.c.
9761
9762         * The silc_idlist_del_server now returns TRUE or FALSE to indicate
9763           if the deleting was successful.  Affected file silcd/idlist.[ch].
9764
9765         * Added support for public key authentication in the connection
9766           authentication protocol in the client library.  Affected file
9767           lib/silcclient/protocol.c.
9768
9769         * Changed the server's silc_idlist_get_clients_by_* interface
9770           to support already allocated array so that new entries may be
9771           added to pre-allocated array.  Affected file silcd/idlist.[ch].
9772           This fixes some bugs with WHOIS, WHOWAS and IDENTIFY commands
9773           and command replies.
9774
9775         * All command reply functions in the server now calls the
9776           pending command callback even if error occured.  This way the
9777           error will be delivered to the client as well.  Affected files
9778           silcd/command.c and silcd/command_reply.c.
9779
9780         * Fixed INFO command to return local server's info if no server
9781           was provided.  Affected file lib/silcclient/command.c.
9782
9783         * Removed RESTART command for good.  Updated the code and the
9784           protocol specs.
9785
9786         * Rewrote parts of the task system.  It is a bit simpler now.
9787           Removed unsued task priorities. The affected files are
9788           lib/silcutil/silctask.[ch].
9789
9790 Mon Apr  2 20:02:33 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9791
9792         * Moved the USERS printing from the library to the application.
9793           Affected files lib/silcclient/command.c and silc/client_ops.c.
9794
9795 Mon Apr  2 13:13:23 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9796
9797         * Updated TODO.
9798
9799         * Added channel key re-key support.  The re-key is perfomed
9800           only by the router and is done once in an hour.  Added `rekey'
9801           field to the SilcChannelEntry in the server.  Affected files
9802           silcd/server.c and silcd/idlist.h.
9803
9804         * Added silc_task_unregister_by_context into the file
9805           lib/silcutil/silctask.[ch].
9806
9807 Sun Apr  1 19:49:34 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9808
9809         * Added SILC_UMODE_GONE mode to indicate when the client is not
9810           present in the SILC network.  Added also support to the local
9811           command AWAY that will set this mode.  Added support of showing
9812           "xxx is gone" in WHOIS command.  The USERS command shows the
9813           gone status as well.
9814
9815         * Fixed setting server and router operator privileges in the
9816           server's UMODE command.  Affected file silcd/command.c.
9817
9818         * Merged the SKE KE1 and KE2 payloads into one payload.  The
9819           new KE payload is equivalent to the old KE2 payload.
9820
9821           Cleaned up the SKE Start Payload parsing.  It now uses the
9822           simple buffer unformatting to do the parsing.  A lot faster
9823           now.
9824
9825           Added new Mutual Authentication flag (SILC_SKE_SP_FLAG_MUTUAL)
9826           to the SKE that is used to indicate whether both of the SKE
9827           parties should perform authentication.  By default only the
9828           responder performs authentication.  By setting this flag also
9829           the initiator must do authentication.  By default it is unset
9830           since in normal SKE case, client to server connection, only
9831           the responder should do authentication.  When doing SKE between
9832           two clients both should perform authentication.  Updated the
9833           code and the protocol specs.
9834
9835         * A little fix to IDENTIFY command in the server.  Search the
9836           client first by hash not nickname.  Affected file is
9837           silcd/command.c.
9838
9839         * Fixed the silc_client_close_connection to support closing
9840           the client to client connections wihtout deleting too much
9841           data.  Affected file lib/silcclient/client.c.
9842
9843         * Fixed a fatal bug in server and client; if KE1 or KE2 packets
9844           are received if protocol used to be active but is not anymore
9845           the application would crash due to NULL pointer dereference.
9846           Affected files silcd/server.c and lib/silcclient/client.c.
9847
9848         * Added `hash' field to the SilcClientConnection to include
9849           the hash function negotiated in the SKE protocol.
9850
9851         * Added new channel mode SILC_CMODE_FOUNDER_AUTH that is used
9852           to set the channel founder authentication data.  A client can
9853           claim the founder rights later by providing the authentication
9854           data to the CUMODE command using SILC_CUMODE_FOUNDER mode.
9855           This way the channel founder can regain the channel founder
9856           privileges even it is left the channel.  This works only on
9857           local server and the client must be connected to the same
9858           server to be able to regain the founder rights.  Updated the
9859           protocol specs accordingly.
9860
9861           Added support to the CMODE command in the client to set the
9862           founder auth data.  Read the README to see how to set it.
9863
9864           Added support to the CUMODE command to claim the founder
9865           rights.  Read the README to see how to do it.
9866
9867           Added support for the founder authentication to the Channel
9868           Entry in the server.  Affected file silcd/idlist.h.
9869
9870           Added support for the SILC_CMODE_FOUNDER_AUTH mode in the
9871           server's CMODE command.  Affected file silcd/command.c.
9872
9873         * Added the following new functions into lib/silccore/silcauth.[ch]:
9874           silc_auth_get_method and silc_auth_get_data.
9875
9876         * The server now saves the remote hosts public key to the
9877           SilcIDListData pointer.  Affected file silcd/protocol.c.
9878
9879         * The normal server now does not remove the channel entry from
9880           the cache if the founder authentication data is set.  It used
9881           to remove it if the founder was the last one on the channel on
9882           the server and left the channel.  The auth data is saved and
9883           if the channel is re-joined later the old entry is used with
9884           the old auth data.  Affected files silcd/command_reply.c and
9885           silcd/server.c.
9886
9887         * Removed the `pkcs' field from the SilcIDListData structure
9888           in the server; it is not used.  Affected file silcd/idlist.h.
9889
9890 Sat Mar 31 15:38:36 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9891
9892         * Fixed packet processing on slow links.  Partial packets were
9893           never re-processed because the incoming data buffer was cleared
9894           by the application.  Application must not directly clear the
9895           sock->inbuf, the packet processing routines handle it.  Fixed
9896           this in client library and in server.
9897
9898 Fri Mar 30 16:35:27 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9899
9900         * Fixed the WHOIS and IDENTIFY send reply function to really
9901           check whether to send list or just one entry.  Affected file
9902           silcd/command.c.
9903
9904         * Cleaned up the LEAVE command's channel key distribution.  The
9905           affected file silcd/command.c.
9906
9907         * Changed CMODE_CHANGE's <Client ID> to <ID Payload> as server
9908           can enforce the channel mode as well.  In that case the ID
9909           includes the ID of the server.  The code now enforces the
9910           mode change if the router have different mode than the server.
9911
9912         * The notify client operation with CMODE_CHANGE notify can now
9913           return NULL client_entry pointer if the CMODE was not changed
9914           by client.  Application must check for this.
9915
9916         * Added <Server ID> argument to INFO command to support server
9917           info fetching by Server ID.
9918
9919         * Added silc_server_announce_get_channel_users to get assembled
9920           packets of channel users of the specified channel.  Affected
9921           file silcd/server.[ch].
9922
9923         * Fixed bug in CHANNEL_CHANGE notify in the server.  The new ID
9924           was freed underneath the ID Cache.
9925
9926         * Re-announce clients when the server received CHANNEL_CHANGE
9927           notify from the router.  Affected file silcd/packet_send.c.
9928
9929 Thu Mar 29 19:10:28 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9930
9931         * Fixed a fatal bug when client does /join 1 2 3 4 5 6 the server
9932           crashed since it did not handle the fact that there is no cipher
9933           called "3" and didn't check the error condition.  Now fixed.
9934
9935         * Added SILC_MESSAGE_FLAG_REQUEST message flag as generic request
9936           flag.  It can be used to send message requests.
9937
9938 Thu Mar 29 12:26:25 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9939
9940         * Implemented the RESTART command in the client.
9941
9942         * Added SILC_MESSAGE_FLAG_NOTICE message flag for informational
9943           notice type messages.  Added notice printing to the user
9944           interface.
9945
9946         * The channel keys are not re-generated if the channel's mode
9947           is PRIVKEY, ie private key on the channel exists.  Affected
9948           files silcd/server.c and silcd/command.c.
9949
9950         * Fixed a little bug in channel message delivery when channel
9951           private keys are set in the server.  Affected file is
9952           silcd/packet_send.c.
9953
9954         * Changed the setting on channel->on_channel = TRUE from the
9955           silc_client_save_channel_key to the JOIN command reply.  The
9956           key payload is not received if the private channel key is set.
9957           Affected file lib/silcclient/command_reply.c and the
9958           lib/silcclient/client_channel.c.
9959
9960         * When the CMODE_CHANGE notify is sent and the channel private
9961           key mode is removed the channel key must be re-generated in
9962           other cells as well.  Added this support for the router in the
9963           silcd/packet_receive.c.
9964
9965         * Added new local command NOTICE to send notice message on
9966           channel.  Affected file silc/local_command.[ch].
9967
9968 Wed Mar 28 23:55:54 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9969
9970         * Added new local command ME to the client.  It is used to send
9971           message to a channel with SILC_MESSAGE_FLAG_ACTION to indicate
9972           some action.  Affected file silc/local_command.[ch].
9973
9974         * Changed channel_message and private_message client operations
9975           to deliver the message flags to the application.  Added also
9976           the `flags' arguments to the silc_client_send_channel_message
9977           and silc_client_send_private_message functions.  Affected file
9978           silcapi.h.
9979
9980 Wed Mar 28 20:50:47 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9981
9982         * Redefined the Private Message Payload to support private message
9983           keys and to support the new private message flags.  Updated
9984           the protocol specs.  Flags makes it possible to have for example
9985           CTCP style messages.
9986
9987         * Added new type SilcPrivateMessagePayload and defined an API
9988           for it in the lib/silcclient/silcprivate.[ch].
9989
9990         * Tested private message private keys successfully.  Tested the
9991           private message key set, unset and list commands with the new
9992           KEY command.
9993
9994         * Redefined the Channel Message Payload to include the channel
9995           message flags (equal with private message flags) to support
9996           for example CTCP style messages.
9997
9998         * Defined some of the message (for channel and private message)
9999           flags.  Updated the protocol specs and added the flags to the
10000           lib/silccore/silcchannel.h.  The type is SilcMessageFlags.
10001
10002 Wed Mar 28 15:52:36 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
10003
10004         * Added SilcKeyAgreementStatus type to the key agreement routines
10005           to indicate the current status and error if one occured.
10006           The status types are defined in the lib/silcclient/silcapi.h.
10007
10008         * Added new local command KEY that is used to set and unset private
10009           keys for channels, set and unset private keys for private messages
10010           with remote clients and to send key agreement requests and
10011           negotiate the key agreement protocol with remote client.  The
10012           key agreement is supported only to negotiate private message keys,
10013           it currently cannot be used to negotiate private keys for channels,
10014           as it is not convenient for that purpose.
10015
10016         * Fixed a minor pending callback setting bug in the function
10017           silc_client_get_client_by_id_resolve, now the function works.
10018           Affected file lib/silcclient/idlist.c.
10019
10020         * Added function silc_net_get_local_port to get local bound
10021           port by socket.  Added to lib/silcutil/silcnet.[ch].
10022
10023         * Added `sockets' and `sockets_count' fields to the SilcClient
10024           object.  They hold the sockets of the listenning sockets in
10025           the client.  Listenning sockets may be for example the key
10026           agreement server.  Affected file lib/silcclient/client.[ch].
10027           Added functions the silc_client_add_socket and the
10028           silc_client_del_socket.  They are exported to the application
10029           as well.
10030
10031         * Added ~./silc/clientkeys to support other client's public keys.
10032
10033         * Renamed verify_server_key client operation to verify_public_key
10034           and added one argument to indicate the type of the connection
10035           (server, client etc.).
10036
10037 Tue Mar 27 22:22:38 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
10038
10039         * Added silc_server_connection_auth_request to handle the
10040           incoming CONNECTION_AUTH_REQUEST packet.  Affected file is
10041           silcd/packet_receive.[ch].
10042
10043         * Added silc_server_send_connection_auth_request into the
10044           silcd/packet_send.c to send the connection auth request packet.
10045
10046         * Cleaned up the silcd/protocol.c a bit and fixed some memory
10047           leaks.
10048
10049         * Fixed the public key authentication in responder side in the
10050           server.  The `auth_data' pointer includes the SilcPublicKey
10051           not the path to the public key.  Affected file silcd/protocol.c.
10052
10053         * Implemented the public key authentication in the initiator side
10054           in the server.  Affected file silcd/protocol.c.
10055
10056         * Removed the [RedirectClient] config section from the server
10057           configuration.  Is not needed and I don't want to implement it.
10058
10059 Tue Mar 27 12:49:56 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
10060
10061         * Cleaned up the CMODE command in the server.  It now works
10062           correctly and supports all the modes defined in the protocol.
10063           Affected file is silcd/command.c.
10064
10065         * Added `hmac_name' field to the SilcChannelEntry in the server
10066           to hold the default HMAC of the channel.  It can be set when
10067           creating the channel (with JOIN command).  Affected files
10068           silcd/idlist.[ch].
10069
10070         * Added <cipher> and <hmac> argument to the CMODE_CHANGE notify
10071           type to indicate the change of the current cipher and hmac
10072           on the channel.  Client can safely ignore the <cipher> argument
10073           (if it chooses to do so) since the CHANNEL_KEY packet will
10074           force the channel key change anyway.  The <hmac> argument is
10075           important since the client is responsible of setting the new
10076           HMAC and the hmac key into use.
10077
10078         * Fixed the CMODE command in the client library as well.
10079
10080         * Tested CMODE command in router environment successfully.
10081
10082 Mon Mar 26 14:39:48 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
10083
10084         * Show the version of the remote client (or server) when connecting
10085           to the server.  It is logged to the log file.  Affected file
10086           is silcd/protocol.c.
10087
10088         * Fixed the KILLED notify handling in the client library.  The
10089           client must be removed from all channels when receiving the
10090           KILLED notify.
10091
10092           Also, do not remove the client entry when giving the KILL
10093           command but when the KILLED notify is received.
10094
10095         * Removed silc_idlist_find_client_by_nickname from the server.
10096           Not needed anymore.  Affected files silcd/idlist.[ch].
10097
10098         * Implemented the CHANNEL_CHANGE notify type handling to the
10099           server.  Affected file silcd/server.c.
10100
10101         * Updated TODO.
10102
10103 Mon Mar 26 12:11:14 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
10104
10105         * Added silc_server_send_notify_invite to send the INVITE
10106           notify between routers.
10107
10108         * Implemented the INVITE command correctly to the server.
10109
10110         * Implemented the INVITE notify type handling in the server.
10111
10112         * Implemented the INVITE command to the client library and on the
10113           user interface.
10114
10115 Sun Mar 25 20:27:09 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
10116
10117         * Added function silc_server_get_client_resolve to find the
10118           client entry by ID from all ID lists and then resolve it
10119           (using WHOIS) if it cannot be found.  Affected file is
10120           silcd/server.[ch].
10121
10122 Sun Mar 25 13:52:51 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
10123
10124         * Implemented the BAN command to the client library.
10125
10126         * The JOIN command in the server now checks the invite list
10127           and the ban list.
10128
10129         * Changed the silc_command_reply_payload_encode_va and the
10130           silc_command_payload_encode_va to support that if argument is
10131           NULL it ignores and checks the next argument.  Affected file
10132           lib/silccore/silccommand.c.
10133
10134         * Added silc_server_send_notify_ban to send the BAN notify
10135           type between routers.
10136
10137         * Chaned the silc_notify_payload_encode to support that if
10138           argument is NULL it ignores and checks the next argument.
10139           Affected file lib/silccore/silcnotify.c.
10140
10141         * Tested ban lists in router environment successfully.
10142
10143 Sat Mar 24 14:47:25 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
10144
10145         * Implemented BAN command to the server, in silcd/command.[ch].
10146
10147         * Removed the BAN and INVITE_LIST modes from the CMODE command
10148           in the server code.
10149
10150         * Added function silc_string_match to regex match two strings.
10151           Affected files lib/silcutil/silcutil.[ch].
10152
10153 Fri Mar 23 22:02:40 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
10154
10155         * Redefined parts of the SilcChannelEntry in the server to support
10156           the new ban and invite lists.
10157
10158 Fri Mar 23 16:25:11 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
10159
10160         * Redefined the INVITE command.  The same command can be used to
10161           invite individuals to the channel but also to manage the invite
10162           list of the channel (to add to and remove from the invite list).
10163           Updated the protocol specs.
10164
10165         * Added new command SILC_COMMAND_BAN that can be used to manage
10166           the ban list of the channel.  Updated the protocol specs.
10167
10168         * Removed the channel modes: the SILC_CMODE_BAN and the
10169           SILC_CMODE_INVITE_LIST as they were a bit kludge to be included
10170           in the CMODE command.  The equivalent features are now available
10171           using INVITE and BAN commands.  Updated the protocol specs.
10172
10173         * Added new SILC_NOTIFY_TYPE_BAN notify type to notify routers
10174           in the network about change in the current ban list.  The notify
10175           type is not used by the client.
10176
10177         * Redefined parts of the SILC_NOTIFY_TYPE_INVITE command to
10178           support the invite lists.
10179
10180 Thu Mar 22 22:52:23 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
10181
10182         * Added new function silc_string_regexify that converts string
10183           including wildcard characters into regex string that can
10184           be used by the GNU regex library.  Added into the file
10185           lib/silcutil/silcutil.[ch].
10186
10187           Added silc_string_regex_combine to combine to regex strings
10188           into one so that they can be used as one regex string by
10189           the GNU regex library.  Added into the file
10190           lib/silcutil/silcutil.[ch].
10191
10192           Added silc_string_regex_match to match two strings.  It returns
10193           TRUE if the strings match.  Added into lib/silcutil/silcutil.[ch].
10194
10195 Thu Mar 22 15:29:42 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
10196
10197         * Imported GNU regex to the soruce tree into lib/contrib.
10198           Fixed some compiler warning from the regex.c.
10199
10200 Wed Mar 21 15:27:58 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
10201
10202         * Fixed MOTD command in the server to work in router environment.
10203
10204         * Fixed the MOTD command in the client library to support
10205           the server argument in the command.
10206
10207         * Added `nickname_len' argument to the silc_idlist_add_client
10208           in the server, as the `nickname' argument may be binary data
10209           (it may be hash).
10210
10211         * Added silc_idlist_get_channels to return all channels from
10212           the ID list.
10213
10214         * Implemented LIST command to the server.  Affected file is
10215           silcd/command.c.
10216
10217         * Implemented the LIST command to the client library and on the
10218           user interface.
10219
10220         * Added [<user count>] argument to the LIST command reply.
10221           With private channels the user count is not shown.
10222
10223         * Updated TODO and README.
10224
10225 Tue Mar 20 21:05:57 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
10226
10227         * The client entry's data.registered must be TRUE even with
10228           global client entry on global client list.  The data.registered
10229           is used to check whether the client is anymore in the network,
10230           for example with WHOWAS command so it must be valid.
10231
10232         * Fixed the WHOWAS command in the server.  It now actually works
10233           in router environment.  Added function into silcd/command_reply.c
10234           silc_server_command_reply_whowas_save.
10235
10236         * Added silc_idlist_purge function to the silcd/idlist.c
10237           to periodically purge the ID Cache.
10238
10239         * Fixed INFO command in the server.  It works now in router
10240           environment.  Added <server name> argument to the INFO command
10241           reply.  Updated the protocol specs.
10242
10243         * Fixed minor bug in silc_idcache_purge to not purge if the
10244           expire value is zero.
10245
10246         * Fixed various bugs in WHOIS and IDENTIFY command handling as
10247           they were buggy because of the WHOWAS information.
10248
10249         * Fixed local command MSG to handle the async resolving of
10250           the remote client properly.  It used to fail the first MSG.
10251           Affected file silc/local_command.c.
10252
10253         * Added `data_len' field to SilcIDCache context.
10254
10255 Tue Mar 20 16:29:00 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
10256
10257         * Update TODO.  Todo in commands in the server.
10258
10259 Tue Mar 20 15:45:14 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
10260
10261         * Added new notify type SILC_NOTIFY_TYPE_UMODE_CHANGE that is
10262           used by routers as broadcast packet to inform other routers
10263           about the changed user mode.
10264
10265           Implemented the notify handling in the server.  Affected file is
10266           silcd/packet_receive.c.  Added the function
10267           silc_server_send_notify_umode to the silcd/packet_send.[ch].
10268
10269         * Added new generic Channel Payload and deprecated the New Channel
10270           Payload.  The New Channel Payload is now the generic Channel
10271           Payload.
10272
10273         * Added new argument `mode' to the silc_server_send_new_channel
10274           as it is required in the Channel Payload now.
10275
10276         * Renamed the SilcChannelPayload to SilcChannelMessagePayload
10277           and created a new and real SilChannelPayload to represent the
10278           new generic Channel Payload.  Implemented the encode/decode
10279           for Channel Payload.  Affected file lib/silccore/silcchannel.[ch].
10280
10281         * Added silc_server_get_client_channel_list to return the list
10282           of channels the client has joined for WHOIS command reply.
10283           Affected file silcd/server.[ch].
10284
10285         * Implemented the channel list sending in the WHOIS command reply
10286           in server and in the client.
10287
10288           Implemented the channel list displaying on the user interface
10289           as well.  Affected file silc/client_ops.c.
10290
10291         * Added silc_channel_payload_parse_list to parse list of Channel
10292           Payloads.  It returns SilcDList list of SilcChannelPayloads.
10293           Client for example can use this function to parse the list of
10294           channels it receives in the WHOIS command reply.  The caller
10295           must free the list by calling silc_channel_payload_list_free.
10296           Affected files lib/silccore/silcchannel.[ch].
10297
10298 Mon Mar 19 21:39:15 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
10299
10300         * Added one new argument <user mode> to the WHOIS command reply
10301           to return the mode of the user in SILC.  Updated the protocol
10302           specs.
10303
10304           Implemented it to the server and client.
10305
10306 Mon Mar 19 18:43:06 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
10307
10308         * Fixed the mode printing on the user interface on joining.
10309           Affected file silc/client_ops.c.
10310
10311         * Implemented the UMODE command and user modes in general to the
10312           client library and to the user interface.
10313
10314         * Implemented the UMODE command to the server.
10315
10316         * The server now sends UNKNOWN_COMMAND error status if client sends
10317           unknown command.  Affected file silcd/command.c.
10318
10319         * All server commands now handle the command identifier the right
10320           way when sending the command reply to the client.  The client can
10321           use to identify the command replies with the identifier.
10322
10323 Mon Mar 19 16:13:07 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
10324
10325         * Added silc_server_get_client_route to resolve the route to
10326           the client indicated by the client ID.  Affected file is
10327           silcd/server.[ch].
10328
10329         * Added silc_server_relay_packet as general function to relay
10330           packet to arbitrary destination.  This deprecates functions
10331           like _send_private_message_key, _relay_notify etc.  Affected
10332           file is silcd/packet_send.[ch].
10333
10334           Removed silc_server_send_key_agreement,
10335           silc_server_send_private_message_key and
10336           silc_server_packet_relay_notify functions from the file
10337           silcd/packet_send.[ch].
10338
10339         * Updated TODO.
10340
10341         * Implemented the SILC_NOTIFY_TYPE_KILLED notify handling in the
10342           server.  Affected file silcd/packet_receive.[ch].
10343
10344         * Implemented the KILL command to the client.  Implemented the
10345           SILC_NOTIFY_TYPE_KILLED notify handling in the client library.
10346           Affected files lib/silcclient/command[_reply].c and
10347           lib/silcclient/client_notify.c.  Implemented the KILL notify
10348           printing in the user inteface.
10349
10350         * Fixed a lot silc_parse_nick memory leaks from the client
10351           library in the file lib/silcclient/command.c.
10352
10353         * Changed the silc_server_send_notify_on_channels's `sender'
10354           argument from SilcSocketConnection to SilcClientEntry to
10355           check the sender as entry and not as connection object and not
10356           to send to the client provided as argument.  The affected file
10357           is silcd/packet_send.[ch].
10358
10359         * The notify packets that are destined directly to the client used
10360           to not to be processed by the server.  Now changed that and the
10361           server processes all notify packets.  After relaying the packet
10362           to the client the notify packet is processed in the server.
10363
10364         * The silc_server_free_client_data now checks whether there is
10365           pending outgoing traffic for the client and purges the data to
10366           the network before removing the client entry.
10367
10368 Sun Mar 18 21:02:47 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
10369
10370         * Added SILC_NOTIFY_TYPE_KILLED notify type.  It is sent when
10371           an client is killed from the SILC Network.  Updated the protocol
10372           specs accordingly.
10373
10374           Added new function silc_server_send_notify_killed to the
10375           silcd/packet_send.[ch].
10376
10377         * Added function silc_server_packet_relay_notify to relay notify
10378           packets that are destined directly to a client.  In this case
10379           the server does not process the notify packets but merely relays
10380           it to the client.  Affected file silcd/packet_send.[ch].
10381
10382           Added also silc_server_packet_process_relay_notify to check
10383           whereto relay the notify.  Affected file is
10384           silcd/packet_receive.[ch].
10385
10386         * Implemented the KILL command to the server.
10387
10388         * Updated TODO.
10389
10390         * Added the backup schema desgined last fall to the protocol
10391           specs for everyone to see.  The specification is in the
10392           *-spec-xx.txt draft and the packet type definitions for the
10393           backup routers is in *-pp-xx.txt draft.  Thusly, added also
10394           new packet type SILC_PACKET_CELL_ROUTERS.
10395
10396         * A big security problem in the implementation discovered.  The
10397           signoff of an client did not cause new channel key generation
10398           which it of course should've done.  The channel keys must be
10399           always re-generated when client leaves (or signoffs) the channel.
10400           The silc_server_remove_from_channels funtion now handles
10401           the channel key re-generation.
10402
10403         * Added `sender' argument to the silc_server_send_notify_on_channels
10404           to not to send the client provided as argument.  Affected file
10405           silcd/packet_send.[ch].
10406
10407 Fri Mar 16 15:52:49 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
10408
10409         * Implemented OPER and SILCOPER commands into the server and
10410           the client library.
10411
10412         * Added silc_auth_verify and silc_auth_verify_data to verify
10413           the authentication directly from the authentication payload.
10414           It supports verifying both passphrase and public key based
10415           authentication.  Affected file lib/silccore/silcauth.[ch].
10416
10417         * Added `hash' field to the SilcIDListData structure.  It is the
10418           hash negotiated in the SKE protocol.  Affected file is
10419           silcd/idlist.[ch].
10420
10421         * Slight redesigning of the SilcAuthPayload handling routines.
10422           Do not send SilcPKCS but SilcPublicKey as argument.
10423
10424         * Implemented the public key authentication support to the
10425           serverconfig.  The public key is loaded from the provided path
10426           and saved as authentication data to void * pointer.  Thus,
10427           changed the unsigned char *auth_data to void *auth_data;
10428
10429         * Fixed SHUTDOWN command to send the reply before the server
10430           is shutdown. :)  Affected file silcd/command.c.
10431
10432         * Fixed fatal bug in CONNECT command.  The hostname was invalid
10433           memory and server crashed.  Affected file silcd/command.c.
10434
10435         * Fixed fatal bug in CLOSE command.  The server_entry became
10436           invalid but was referenced later in the command.  Affected file
10437           silcd/command.c.
10438
10439 Thu Mar 15 12:46:58 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
10440
10441         * Fixed fatal bug in failure packet handling.  Server ignored
10442           the failure and thus crashed when it came.
10443
10444         * Updated TODO.
10445
10446 Wed Mar 14 20:37:35 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
10447
10448         * Added new SILC_CF_LAG_STRICT command flag that strictly forces
10449           that the command may be executed only once in (about) 2 seconds.
10450           The old SILC_CF_LAG flag is same but allows command bursts up
10451           to five before limiting.
10452
10453           Added the support for CF_LAG and CF_LAG_STRICT flags to the
10454           server code.  Various commands now includes the CF_LAG_STRICT
10455           flag to disallow any kind of miss-use of the command.
10456
10457         * Fixed the silc_buffer_unformat to not to allocate any data
10458           if the length of the data is zero.  It used to allocate the
10459           length + 1.  Affected file lib/silcutil/silcbuffmt.c.
10460
10461 Wed Mar 14 16:10:30 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
10462
10463         * Changed the format of AdminConnection configuration section
10464           in the server.  Added username of the admin to the format.
10465           Affected files silcd/serverconfig.[ch].
10466
10467           Added silc_server_config_find_admin into silcd/serverconfig.[ch]
10468           to return admin configuration data by host, username and/or
10469           nickname.
10470
10471 Wed Mar 14 13:18:16 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
10472
10473         * Implemented WHOWAS command to the server.  Added the functions:
10474
10475           silc_server_command_whowas_parse,
10476           silc_server_command_whowas_send_reply,
10477           silc_server_command_whowas_from_client and
10478           silc_server_command_whowas_from_server
10479
10480         * Added <Client ID> argument to the WHOWAS command reply.  Updated
10481           the protocol specs accordingly.
10482
10483         * Implemented WHOWAS command and command_reply to the client
10484           library.
10485
10486           Implemented the WHOWAS printing on the user interface.
10487
10488 Tue Mar 13 22:17:34 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
10489
10490         * Added new argument to the WHOWAS command reply, the real name.
10491           It is an optional argument.  Updated the protocol specs.
10492
10493         * Added SilcIDCacheDestructor callback that is registered when
10494           the SilcIDCache is allocated.  The callback is called when
10495           an cache entry in the ID Cache expires, or is purged from the
10496           cache.  Added into lib/silccore/idcache.[ch].
10497
10498           Added silc_idlist_client_destructor to the silcd/idlist.[ch]
10499           to destruct the client entries when the cache entry expires.
10500           Other ID Cache's in server and in the client library ignores
10501           the destructor.
10502
10503         * If the ID Cache entry's `expire' field is zero then the entry
10504           never expires.  Added boolean `expire' argument to the
10505           silc_idcache_add function in the lib/silccore/idcache.[ch].
10506           If it is TRUE the default expiry value is used.
10507
10508         * Added silc_server_free_client_data_timeout that is registered
10509           when client disconnects.  By default for 5 minutes we preserve
10510           the client entry for history - for WHOWAS command.
10511
10512 Tue Mar 13 13:26:18 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
10513
10514         * Added support to the server to enforce that commands are not
10515           executed more than once in 2 seconds.  If server receives
10516           commands from client more frequently, timeout is registered
10517           to process the commands.  Affected file silcd/command.c.
10518           Added new function silc_server_command_process_timeout.
10519
10520         * Changed NICK_NOTIFY handling in client library to check that
10521           if the client's nickname was changed, so there is no need to
10522           resolve anything from the server.
10523
10524         * Removed error printing from the WHOIS and IDENTIFY commands.
10525           If error occurs then it is ignored silently in the client library.
10526           The application, however, may map the received error to
10527           human readable error string.  The application currently maps
10528           the NO_SUCH_NICKNAME error to string.
10529
10530         * Made the command status message public to the application.  Moved
10531           them from lib/silcclient/command_reply.c to
10532           lib/silcclient/command_reply.h.  The application can map the
10533           received command status to the string with the
10534           silc_client_command_status_message function.
10535
10536         * Added check to the server to check that client's ID is same
10537           as the Source ID in the packet the client sent.  They must
10538           match.
10539
10540 Tue Mar 13 12:49:21 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
10541
10542         * Added dist-bzip hook to the Makefile.am to make bzip2
10543           compressed distributions.
10544
10545 Mon Mar 12 18:43:38 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
10546
10547         * Server now enforces the maximum length for the nickname and
10548           the channel as protocol specification dictates.  128 bytes for
10549           nickname and 256 bytes for channel name.
10550
10551         * Moved the WHOIS printing to the application.  The client libary
10552           does not print out the WHOIS information anymore, the application
10553           must do it.  Renamed silc_client_command_reply_whois_print to
10554           the silc_client_command_reply_whois_save.
10555
10556           The client's idle time is also sent to the application now, and
10557           the idle is shown on screen.
10558
10559         * Added silc_client_command_reply_identify_save to save the
10560           received IDENTIFY entries.
10561
10562         * Do not check for channel private keys in message sending and
10563           reception if the channel does not have the PRIVKEY mode set.
10564           Affected file lib/silclient/client_channel.c.
10565
10566 Sun Mar 11 20:25:06 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
10567
10568         * Fixed a minor bug if WHOIS and IDENTIFY command parsing that
10569           just surfaced after chaning the JOIN procedure.
10570
10571 Sun Mar 11 14:59:05 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
10572
10573         * Added silc_client_get_clients_by_list to get client entries
10574           from Client ID list, that is returned for example by JOIN
10575           and USERS command replies.  The application should use this
10576           function for example when JOIN command reply is received to
10577           resolve the clients already on the channel (library does not
10578           do that anymore as USERS command reply is not used in the JOIN
10579           procedure anymore).  Affected files lib/silcclient/silcapi.h and
10580           lib/silcclient/idlist.c.
10581
10582         * JOIN command reply and USERS command reply returns now SilcBuffer
10583           pointers instead of unsigned char pointers when returning
10584           the client list and mode list.
10585
10586         * Added <Client ID> argument to the JOIN command reply, mainly
10587           for the server to identify for which client the command was
10588           originally sent.  Updated protocol specs accordingly.
10589
10590         * Added SilcDlist private_key pointer to the SilcChannelEntry
10591           in the client to support the channel private keys.  Affected
10592           file is lib/silcclient/idlist.h.
10593
10594         * Added SilcChannelPrivateKey argument to the function
10595           silc_client_send_channel_message so that application can choose
10596           to use specific private ke if it wants to.  If it is not provided,
10597           the normal channel key is used, unless private keys are set.
10598           In this case the first (key that was added first) is used
10599           as the encryption key.
10600
10601         * Implemented the support for channel private key handling.
10602           Implemented the following functions:
10603
10604           silc_client_add_channel_private_key,
10605           silc_client_del_channel_private_keys,
10606           silc_client_del_channel_private_key,
10607           silc_client_list_channel_private_keys and
10608           silc_client_free_channel_private_keys
10609
10610           Affected file lib/silcclient/client_channel.c.
10611
10612         * Added the support for the private keys in the channel message
10613           sending and encryption and in the message reception and
10614           decryption.  Affected funtions are
10615           silc_client_send_channel_message and silc_client_channel_message.
10616
10617 Sat Mar 10 21:36:22 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
10618
10619         * Added SKE's key verify callback to the client library's
10620           KE protocol context. Affected files lib/silcclient/protocol.[ch].
10621
10622         * Removed the statement that server (or router) must send USERS
10623           command reply when joining to the channel so that the client
10624           knows who are on the channel.  Instead, the client list and
10625           client's mode list is now sent in the JOIN command reply to the
10626           client who joined channel.  This is better solution.
10627
10628         * Added function silc_server_get_users_on_channel and function
10629           silc_server_save_users_on_channel to the silcd/server.[ch].
10630
10631         * Removed function silc_server_command_send_users from the
10632           silcd/command.c.
10633
10634         * Do not show topic on the client library anymore.  The topic is
10635           sent in the command reply notify to the application and the
10636           application must show the topic now.
10637
10638 Sat Mar 10 00:07:37 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
10639
10640         * Added client searching by nickname hash into the IDENTIFY and
10641           WHOIS commands in the server as they were clearly missing from
10642           them.  Affected file is silcd/command.c.
10643
10644         * Fixed a bug in private message receiving in the client library.
10645           The remote ID was freed and it wasn't supposed, now it is
10646           duplicated.
10647
10648 Fri Mar  9 12:40:42 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
10649
10650         * Minor fix to the channel payload; allocate the data area, as it
10651           needs to be of specific length.
10652
10653         * If the key agreement port is zero then the operating
10654           system will define the bound port.  Affected files are
10655           lib/silcclient/silcapi.h and lib/silcclient/client_keyagr.c.
10656
10657         * Added new function silc_channel_payload_decrypt into the file
10658           lib/silccore/silcchannel.[ch].
10659
10660         * Moved the channel message etc, check from silc_packet_decrypt
10661           to applications.  The library calls now a generic
10662           SilcPacketCheckDecrypt callback which is to return TRUE or FALSE
10663           when the packet is either normal or special.  This was done to
10664           allow more wide range of checking that was not allowed when
10665           the code was in library.  Now applications can do virtually any
10666           checks to the packet and return to the library the decision how
10667           the packet should be processed.  Affected files are
10668           lib/silccore/silcpacket.[ch].
10669
10670           Added silc_server_packet_decrypt_check to the server and
10671           silc_client_packet_decrypt_check to the client library.
10672
10673         * Added silc_server_packet_send_srcdest into silcd/packet_send.[ch]
10674           to send with specified source and destination information.
10675
10676         * Channel message delivery between routers was broken after the
10677           channel key distribution was fixed earlier.  The channel key
10678           was used be to distributed to other routers as well which is not
10679           allowed by the protocol.  Now this is fixed and channel keys
10680           really are cell specific and the channel message delivery between
10681           routers comply with the protocol specification.
10682
10683         * Fixed various commands in server to check also the global list
10684           for the channel entry and not just the local list.  The affected
10685           file silcd/command.c.
10686
10687 Thu Mar  8 21:39:03 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
10688
10689         * Added assert()s to buffer formatting and unformatting routines
10690           to assert (if --enable-debug) when error occurs.  Affected
10691           file: lib/silcutil/silcbuffmt.c.
10692
10693         * Changed to auto-reconnect to check whether the remote host is
10694           router and register the re-connect timeout if it is.  It used
10695           to check that whether we are normal server, but router must do
10696           auto-reconnect with another router as well.  Affected file
10697           silcd/server.c.
10698
10699         * Removed the [<key len>] option from CMODE command as the cipher
10700           name decides the key length, nowadays.  See the defined ciphers
10701           from the protocol specification.
10702
10703         * Added [<hmac>] option to the CMODE command to define the HMAC
10704           for the channel.  Added SILC_CMODE_HMAC channel mode.
10705
10706         * Added [<hmac>] option for the JOIN command so that user can
10707           select which HMAC is used to compute the MACs of the channel
10708           messages.
10709
10710         * Added Hmac field to the Channel Message Payload.  The integrity
10711           of plaintext channel messages are now protected by computing
10712           MAC of the message and attaching the MAC to the payload.  The
10713           MAC is encrypted.  Now, it is clear that this causes some
10714           overhead to the size of the packet but rationale for this is that
10715           now the receiver can verify whether the channel message decrypted
10716           correctly and also when private keys are set for the channel the
10717           receiver can decrypt the packet with several keys and check from
10718           the MAC which key decrypted the message correctly.
10719
10720         * Added silc_cipher_encrypt and silc_cipher_decrypt into the
10721           lib/silccrypt/silccipher.[ch].
10722
10723         * Added silc_hash_len to return the digest length into the
10724           lib/silcrypt/silchash.[ch].
10725
10726         * Rewrote parts of Silc Channel Payload interface in the
10727           lib/silccore/silcchannel.[ch].  The encode function now also
10728           encrypts the packet and parse function decrypts it.
10729
10730 Wed Mar  7 20:58:50 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
10731
10732         * Fixed a minor formatting bug in the SKE's key material processing.
10733           It actually might have processed the keys wrong way resulting
10734           into wrong keys.
10735
10736         * Redefined the mandatory HMAC algorithms and added new algorithms.
10737           Added hmac-sha1-96 and hmac-md5-96 which are normal hmac-sha1
10738           and hmac-md5 truncated to 96 bits.  The mandatory is now
10739           hmac-sha1-96.  Rest are optional (including the one that used
10740           to be mandatory).  Rationale for this is that the truncated HMAC
10741           length is sufficient from security point of view and can actually
10742           make the attack against the HMAC harder.  Also, the truncated
10743           HMAC causes less overhead to the packets.  See the RFC2104 for
10744           more information.
10745
10746         * Added new [hmac] configuration section.  The SKE used to use
10747           the hash names (md5 and sha1) in the SKE proposal as HMCAS which
10748           is of course wrong.  The official names that must be proposed in
10749           the SKE are the ones defined in the protocol specification
10750           (hmac-sha1-96 for example).  The user can configure any hmac
10751           using any hash function configured in the [hash] section.  At
10752           least, the mandatory must be configured.
10753
10754           Rewrote the HMAC interface in lib/silccrypt/silchmac.[ch].
10755
10756         * Added HMAC list to the SKE proposal list.  It has now both
10757           hash algorithm list and HMAC list.  This makes the protocol
10758           incompatible with previous versions.  The SKE now seems to work
10759           the way it is supposed to work, for the first time actually.
10760
10761         * Defined plain Hash algorithms to the protocol specification.
10762           Added sha1 and md5.
10763
10764 Tue Mar  6 15:36:11 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
10765
10766         * Implemented support for key agreement packets into the server.
10767           Added functions silc_server_key_agreement and
10768           silc_server_send_key_agreement.  Other than these functions,
10769           server has nothing to do with this packet.
10770
10771         * Added support for private message key packets into the server.
10772           Added functions silc_server_private_message_key and
10773           silc_server_send_private_message_key.
10774
10775         * Updated TODO.
10776
10777         * Changed the silc_[client|server]_protocol_ke_set_keys to be
10778           called in the protocol's final callback instead in the END
10779           protocol state.  This makes a little more sense and in the same
10780           time in client we can use the same protocol routines for normal
10781           key exchange and to key agreement packet handling as well.
10782
10783         * Added to both client's and server's KE protocol context the
10784           SilcSKEKeyMaterial pointer to save the key material.  We will
10785           bring the key material to the protocol's final callback by doing
10786           this.  The final callback must free the key material.
10787
10788         * Added SKE's packet_send callback into client's KE protocol
10789           context so that the caller can choose what packet sending function
10790           is used.  This way we can use different packet sending when
10791           doing normal SKE when doing key agreement packet handling (in
10792           the key agreement packet handling we do not want to encrypt
10793           the packets).
10794
10795         * Implemented the responder side of the key agreement routines
10796           in the client.  The client can now bind to specified port and
10797           accept incoming key negotiation.  The key material is passed
10798           to the application after the protocol is over.
10799
10800         * Implemented the processing of incoming Key Agreement packet
10801           in the client.  Added function silc_client_key_agreement to
10802           process the packet.
10803
10804         * Implemented the intiator side of the key agreement routines
10805           in the client.  The client can now initiate key agreement with
10806           another remote client.  The key material is passed to the
10807           application after the protocol is over.
10808
10809         * Created client_keyagr.c to include all the key agreement
10810           routines.
10811
10812         * Added macro SILC_TASK_CALLBACK_GLOBAL which is equal to the
10813           SILC_TASK_CALLBACK except that it is not static.
10814
10815         * Created client_notify.c and moved the Notify packet handling
10816           from the client.[ch] into that file.
10817
10818         * Created client_prvmsg.c and moved all private message and
10819           private message key routines from the client.[ch] into that file.
10820
10821         * Create client_channel.c and moved all channel message and
10822           channel private key routines from the client.[ch] into that file.
10823
10824         * Changed silc_client_get_client_by_id_resolve to resolve with
10825           WHOIS command instead of IDENTIFY command, in the file
10826           lib/silclient/idlist.c.
10827
10828 Mon Mar  5 18:39:49 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
10829
10830         * Implemented the SKE's responder side to the Client library.
10831
10832         * When FAILURE is received to the protocol do not trust it
10833           blindly.  Register a timeout to wait whether the remote closes
10834           the connection as it should do it, only after that process the
10835           actual failure.  This was changed to both client and server.
10836
10837         * Added client_internal.h to include some of the structures
10838           there instead of client.h in lib/silcclient/.
10839
10840         * Added function silc_task_unregister_by_callback to unregister
10841           timeouts by the callback function.
10842
10843 Sat Mar  3 19:15:43 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
10844
10845         * Some "Incomplete WHOIS info" errors has been appearing on the
10846           log files.  Took away the entry->userinfo check from WHOIS
10847           reply sending.  The entry->userinfo is now " " if client did not
10848           provide one.  I thought this was fixed earlier but something
10849           is wrong still.  Let's see if the error still appears.
10850
10851 Wed Feb 28 20:56:29 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
10852
10853         * Fixed a minor bug in the login when the channel key is
10854           re-generated in the server.  It used to generate the key in
10855           wrong order and thus caused problems in the channel traffic.
10856
10857         * Fixed a minor bug in channel key distsribution after
10858           KICK command.  The key was not sent to the router even though
10859           it should've been.
10860
10861 Tue Feb 27 20:24:25 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
10862
10863         * Added silc_ske_process_key_material_data as generic routine
10864           to process any key material as the SILC protocol dictates.  The
10865           function is used by the actual SKE library but can be used by
10866           applications as well.  This relates to the private message keys
10867           and the channel private keys since they must be processed the
10868           same way the normal SILC session keys.  The protocol dictates
10869           this.  Affected files: lib/silcske/silcske.[ch].
10870
10871           Added also silc_ske_free_key_material to free the
10872           SilcSKEKeyMaterial structure.
10873
10874         * Defined silc_cipher_set_key function to set the key for
10875           cipher without using the object's method function.  The affected
10876           files: lib/silccrypt/silccipher.[ch].
10877
10878         * Implemented silc silc_client_add_private_message_key,
10879           silc_client_add_private_message_key_ske,
10880           silc_client_del_private_message_key,
10881           silc_client_list_private_message_keys and
10882           silc_client_free_private_message_keys functions in the
10883           client library.
10884
10885           Added functions silc_client_send_private_message_key to send
10886           the Private Message Key payload and silc_client_private_message_key
10887           to handle incoming Private Message Key payload.
10888
10889         * Added Cipher field to the Private Message Key payload to set
10890           the cipher to be used.  If ignored, the default cipher defined
10891           in the SILC protocol (aes-256-cbc) is used.
10892
10893 Tue Feb 27 13:30:52 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
10894
10895         * Removed lib/silcclient/ops.h file.
10896
10897           Redefined parts of the SILC Client Library API. Created new
10898           file silcapi.h that deprecates the ops.h file and defines the
10899           published Client Library API.  Defined also private message key
10900           API and channel private key API into the file.
10901
10902           This is the file that the application must include from the
10903           SILC Client Library.  Other files need not be included by
10904           the application anymore.
10905
10906         * Added new key_agreement client operation callback and also
10907           defined the Key Agreement library API for the application.
10908
10909 Tue Feb 27 11:28:31 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
10910
10911         * Added new packet type: SILC_PACKET_KEY_AGREEMENT.  This packet
10912           is used by clients to request key negotiation  between another
10913           client in the SILC network.  If the negotiation is started it
10914           is performed using the SKE protocol.  The result of the
10915           negotiation, the secret key material, can be used for example
10916           as private message key.
10917
10918           Implemented the Key Agreement payload into the files
10919           lib/silccore/silauth.[ch].
10920
10921 Mon Feb 26 12:13:58 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
10922
10923         * Redefined ciphers for the SILC protocol.  Added some new ciphers
10924           and defined the key lengths for the algorithms.  Changed the
10925           code accordingly.  The default key length is now 256 bits.
10926
10927         * Fixed SKE key distribution function silc_ske_process_key_material
10928           when the key length is more than 128 bits.  The default key
10929           length in SILC is now 256 bits.
10930
10931         * Added new command status type: SILC_STATUS_ERR_UNKOWN_ALGORITHM
10932           to indicate unsupported algorithm.
10933
10934         * Renamed rijndael.c to aes.c and all functions as well.
10935
10936         * Fixed a long standing channel key setting bug in client library.
10937           Weird that it has never surfaced before.
10938
10939         * Fixed bug in channel deletion.  If the entire channel is removed
10940           then it must also delete the references of the channel entry
10941           from the client's channel list as the client's channel entry and
10942           the channel's client entry share same memory.
10943
10944 Sun Feb 25 20:47:29 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
10945
10946         * Implemented CONNECT and SHUTDOWN commands in the client.
10947
10948         * Implemented CLOSE command to the client.
10949
10950         * Added the function silc_idlist_find_server_by_name into the
10951           files silcd/idlist.[ch].
10952
10953           Added the function silc_idlist_find_server_by_conn into the
10954           files silcd/idlist.[ch].
10955
10956 Sat Feb 24 23:45:49 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
10957
10958         * DIE command was renamed to SHUTDOWN.  Updated the both code
10959           and protocol specs.
10960
10961         * Defined SILC_UMODE_NONE, SILC_UMODE_SERVER_OPERATOR and
10962           SILC_UMODE_ROUTER_OPERATOR modes into lib/silccore/silcmode.h.
10963
10964         * Implemented CONNECT, CLOSE and SHUTDOWN commands to the server
10965           side.
10966
10967         * Added function silc_server_create_connection function to create
10968           connection to remote router.  My server implementation actually
10969           does not allow router to connect to normal server (it expects
10970           that normal server always initiates the connection to the router)
10971           so the CONNECT command is only good for connecting to another
10972           router.
10973
10974 Sat Feb 24 16:03:45 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
10975
10976         * Added SILC_NOTIFY_TYPE_KICKED to indicate that the client
10977           or some other client was kicked from the channel.
10978
10979           Implemented the handling of the notify type to both client
10980           and server.
10981
10982           Implemented silc_server_send_notify_kicked to send the KICKED
10983           notify.  It is used to send it to the server's primary router.
10984
10985         * Implemented the KICK command into server and client.
10986
10987         * Added `query' argument to the silc_idlist_get_client function
10988           to indicate whether to query the client from server or not if
10989           it was not found.
10990
10991         * Added new command status type SILC_STATUS_ERR_NO_CHANNEL_FOPRIV
10992           to indicate that the client is not channel founder.
10993
10994         * Updated TODO.
10995
10996 Sat Feb 24 00:00:55 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
10997
10998         * Removed the rng context from SilcPacketContext structure and
10999           changed that the packet routine uses the Global RNG API.
11000
11001 Fri Feb 23 11:22:57 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
11002
11003         * Added support for quit message that client can "leave" on the
11004           channel when it quits the SILC.  It is ditributed inside the
11005           SILC_NOTIFY_TYPE_SIGNOFF notify type.
11006
11007           Added silc_server_free_client_data that will take the
11008           signoff message as argument.
11009
11010         * Changed SKE routines to use the silc_pkcs_sign/verify routines.
11011
11012 Thu Feb 22 23:05:36 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
11013
11014         * Updated parts of the protocol specification to keep it up
11015           to date.
11016
11017 Thu Feb 22 15:08:20 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
11018
11019         * Added List flag (SILC_PACKET_FLAG_LIST) to indicate list of
11020           payloads in one packet.
11021
11022         * Deprecated following packet types: NEW_ID_LIST, NEW_CHANNEL_LIST,
11023           NEW_CHANNEL_USER_LIST, SET_MODE and SET_MODE_LIST.  List packets
11024           use now the new List flag.
11025
11026         * Also deprecated the following packet types: REPLACE_ID,
11027           NEW_CHANNEL_USER and REMOVE_CHANNEL_USER packet types.
11028
11029         * Added list support for Notify packet in server.
11030
11031         * Added silc_server_send_notify_channel_change to send the
11032           CHANNEL_CHANGE notify type to replace channel ID's.  Deprecates
11033           the silc_server_send_replace_id.
11034
11035         * Added silc_server_send_notify_nick_change to send the
11036           NICK_CHANGE notify type.  Deprecates the function
11037           silc_server_send_replace_id.
11038
11039         * Added silc_server_send_notify_join to send the JOIN notify type.
11040           Deprecates the function silc_server_send_new_channel_user.
11041
11042         * Added silc_server_send_notify_leave to send LEAVE notify type.
11043           Deprecates the function silc_server_send_remove_channel_user.
11044
11045         * Added silc_server_send_notify_cmode and
11046           silc_server_send_notify_cumode to send CMODE and CUMODE notify
11047           types.  Deprecates the silc_server_send_set_mode function.
11048
11049         * Added SERVER_SIGNOFF notify type to indicate that server has
11050           quit.  This means that all clients on the channel from that
11051           server will drop.  This can be also used when netsplit happens.
11052
11053           Deprecated REMOVE_ID packet type since it is not needed anymore
11054           even from server.
11055
11056           Added silc_server_send_notify_server_signoff to send the
11057           SERVER_SIGNOFF notify type.  Deprecates the function
11058           silc_server_send_remove_id.
11059
11060           Added also silc_server_send_notify_signoff to send the
11061           SIGNOFF notify type.
11062
11063         * Employed the PKCS #1. It is the mandatory way to do RSA in the
11064           SILC protocol from this day on.  Changed the protocol
11065           specification as well.
11066
11067         * Added silc_server_send_notify_topic_set to send TOPIC_SET
11068           notify type.  It is used between routers to notify about
11069           topic changes on a channel.
11070
11071         * Added silc_id_dup into lib/silccore/id.[ch] to duplicate
11072           ID data.
11073
11074         * Partly updated the protocol specification to comply with the
11075           changes now made.  It is still though a bit outdated.
11076
11077         * The JOIN notify type now takes one extra argument <Channel ID>.
11078           The packet used to be destined to the channel but now the
11079           JOIN type may be sent as list thus it is impossible to
11080           destine it to any specific channel.  By adding this argument
11081           it is again possible.
11082
11083 Wed Feb 21 22:39:30 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
11084
11085         * Added CREDITS file.  The CHANGES and CREDITS file will appear
11086           in the distribution as well.
11087
11088 Wed Feb 21 14:17:04 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
11089
11090         * Implemented CMODE_CHANGE, CUMODE_CHANGE and TOPIC_SET notify
11091           types in the server's silcd/packet_receive.c.
11092
11093         * Implemented CMODE and CUMODE to work in router environment.
11094
11095         * Fixed minor encoding and decoding buglet from the
11096           lib/silccore/silcmode.c.
11097
11098         * Fixed buffer overflow from lib/silcclient/command.c in USERS
11099           command parsing.
11100
11101 Wed Feb 21 12:44:00 EET 2001  Mika Boström <bostik@lut.fi>
11102
11103         * Changed all SilcConfigServer* and silc_config_server* to
11104           SilcServerConfig* and silc_server_config*, respectively.
11105           Patch by Bostik.
11106
11107 Wed Feb 21 00:10:00 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
11108
11109         * Associated the ID (client or server ID) to the Authentication
11110           Payload to avoid any possibility of forging.  Updated the
11111           protocol specification and the code accordingly.
11112
11113 Tue Feb 20 14:14:14 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
11114
11115         * The RSA key length is now save to the RsaKey context in the
11116           key generation process in lib/silccrypt/rsa.c.  The key length
11117           is now used to figure out the maximum size of the block allowed
11118           to be encrypted/signed.
11119
11120         * Added silc_mp_mp2bin_noalloc into lib/silcmath/mpbin.[ch].  It
11121           is equivalent to the silc_mp_mp2bin but does not allocate any
11122           memory.
11123
11124         * Changed silc_mp_mp2bin API to take length argument.  If it is
11125           non-zero then the buffer is allocated that large.  If zero, then
11126           the size is approximated using silc_mp_sizeinbase, which however
11127           is not relieable.
11128
11129         * Created Global RNG API which is global RNG that application can
11130           initialize.  After initializing, any routine anywhere in the
11131           code (including library) can use RNG without allocating a new
11132           RNG object.  This was done to allow this sort of use of the
11133           RNG in code that has no chance to allocate RNG object.  All
11134           applications currently allocate this and many routines in the
11135           library use this.  Affected file lib/silccrypt/silcrng.[ch].
11136
11137         * Removed the RNG kludge from lib/silcmath/primegen.c and changed
11138           it to use the Global RNG API.
11139
11140         * Defined Authentication Payload into protocol specification that
11141           is used during SILC session to authenticate entities.  It is
11142           used for example by client to authenticate itself to the server
11143           to obtain server operator privileges.
11144
11145           Implemented this payload into the lib/silccore/silcauth.[ch].
11146           Implemented also routines for public key based authentication
11147           as the new protocol specification dictates.
11148
11149           Moved definitions of different authentication methods from
11150           lib/silccore/silcprotocol.h into lib/silccore/silcauth.h.
11151
11152         * Added silc_pkcs_encrypt, silc_pkcs_decrypt, silc_pkcs_sign,
11153           silc_pkcs_verify and silc_pkcs_sign_with_hash and
11154           silc_pkcs_verify_with_hash functions into the file
11155           lib/silccrypt/silcpkcs.[ch].
11156
11157 Mon Feb 19 19:59:28 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
11158
11159         * The client entry's userinfo pointer must be always valid.
11160           Otherwise the [<unknown>] bug will surface beacuse the WHOIS
11161           will fail since it requires the userinfo.  Now, the userinfo
11162           is allocated as "" if actual userinfo does not exist.  Actually,
11163           it must exist and it is totally Ok to drop client connections
11164           that does not announce the userinfo.  However, we will make
11165           this workaround for now.
11166
11167         * Added silc_net_get_remote_port into lib/silcutil/silcnet.[ch]
11168           to return the remote port by socket.
11169
11170 Mon Feb 19 14:26:49 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
11171
11172         * Changed SILC_SERVER_COMMAND_EXEC_PENDING macro to the name
11173           SILC_SERVER_PENDING_EXEC and added an new macro
11174           SILC_SERVER_PENDING_DESTRUCTOR which is called to free the
11175           data or when error occurs while processing the pending command.
11176
11177           Added new argument `destructor' into silc_server_command_pending
11178           and to the SilcServerCommandPending object.  This destructor is
11179           now called after calling the pending callback or if error occurs
11180           immediately.  If error occurs the actual pending callback won't
11181           be called at all - only the destructor.  The destructor may be
11182           NULL if destructor is not needed.
11183
11184           All this applies for client library code as well.  Similar
11185           changes were made there as well for the pending commands.
11186
11187           In the client, the application must now allocate the
11188           SilcClientCommandContext with the silc_client_command_alloc
11189           function.
11190
11191         * Added reference counter to the SilcServerCommandContext.  Added
11192           function silc_server_command_alloc and silc_server_command_dup
11193           functions.
11194
11195           Same type of functions added to the client library for the same
11196           purpose as well.
11197
11198         * Removed the cmd_ident from IDListData away since it is now
11199           global for all connections.  It is the command identifier used
11200           in command sending and with pending commands.  The affected file
11201           is silcd/idlist.h.
11202
11203         * Added reference counter to the SilcSocketConnection objecet to
11204           indicate the usage count of the object.  The object won't be
11205           freed untill the reference counter hits zero.  Currently only
11206           server uses this, and client ignores it.  The client must be
11207           set to use this too later.  The affected files are
11208           lib/silccore/silcsockconn.[ch].  Added also the function
11209           silc_socket_dup to increase the reference counter.
11210
11211           This was mainly added because it is possible that the socket
11212           is removed underneath of pending command or other async
11213           operation.  Now it won't be free'd and proper DISCONNECTING
11214           flags, etc. can be set to avoid sending data to connection that
11215           is not valid anymore.
11216
11217         * Added SILC_SET_DISCONNECTING to server.c when EOF is read from
11218           the connection.  After that it sets SILC_SET_DISCONNECTED.
11219           It is, however, possible that the socket data is not still freed.
11220           The silc_server_packet_process now checks that data is not
11221           read or written to connection that is DISCONNECTED.  The socket
11222           get's freed when the reference counter hits zero.
11223
11224 Mon Feb 19 00:50:57 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
11225
11226         * Changed the client operation API: channel_message operation's
11227           `sender' is now the client entry of the sender, not the nickname
11228           and the `channel' is the channel entry, not the channel name.
11229
11230           In the private_message operation the `sender' is now also the
11231           client entry of the sender not the nickname.
11232
11233           Affected file is lib/silcclient/ops.h and all applications
11234           using the client operations.
11235
11236 Sat Feb 17 22:11:50 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
11237
11238         * Moved the calling of ops->connect() from connect_to_server_final
11239           into receive_new_id functin since that is the point when the
11240           client is actually allowed to send traffic to network.  The
11241           affected file is lib/silcclient/client.c.
11242
11243 Sat Feb 17 13:15:35 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
11244
11245         * When receiving NEW_CHANNEL_LIST, NEW_CHANNEL_USER_LIST,
11246           NEW_ID_LIST and SET_MODE_LIST packets, broadcast the list packet
11247           (if needs broadcasting) instead of broadcasting the packets one
11248           by one which would make a burst in the network traffic.
11249
11250         * Added `broadcast' argument to the functions in silcd/server.[ch]
11251           silc_server_create_new_channel[_with_id] to indicate whether
11252           to send New Channel packet to primary router.
11253
11254 Sat Feb 17 01:06:44 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
11255
11256         * Added new function into the silcd/server.[ch] files:
11257           silc_server_create_new_channel_with_id to create new channel with
11258           already existing Channel ID.
11259
11260         * Added new packet type SILC_PACKET_SET_MODE_LIST into the file
11261           lib/silccore/silcpacket.h.  This packet is used t send list of
11262           Set Mode payloads inside one packet.  Server uses this to set
11263           the modes for the channels and clients on those channels, that it
11264           announced to the router when it connected to it.  The protocol
11265           specification has been updated accordingly.
11266
11267         * The silc_server_new_channel did not handle the packet coming
11268           from normal server as it normally does not send that.  However,
11269           when it announces its channels it does send it.  Implemented
11270           the support for that.
11271
11272         * Added SILC_ID_CHANNEL_COMPARE macro to compare to Channel ID's
11273           into the file lib/silccore/id.h.
11274
11275 Fri Feb 16 23:57:29 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
11276
11277         * Fixed memory leaks in the functions silc_idlist_del_client,
11278           silc_idlist_del_channel and silc_idlist_del_server in the file
11279           silcd/idlist.c.  All of those leaked like a sieve.
11280
11281         * Fixed some small memory leaks in the client's function
11282           silc_client_notify_by_server.
11283
11284         * Added functions into silcd/server.c: silc_server_announce_clients,
11285           silc_server_announce_channels and silc_server_announce_server.
11286           These functions are used by normal and router server to announce
11287           to its primary router about clients, channels and servers (when
11288           router) that we own.  This is done after we've connected to the
11289           router.
11290
11291           These functions effectively implements the following packet types:
11292           SILC_PACKET_NEW_CHANNEL_LIST, SILC_PACKET_NEW_CHANNEL_USER_LIST
11293           and SILC_PACKET_NEW_ID_LIST.
11294
11295         * Added new functions into the silcd/packet_receive.[ch]:
11296           silc_server_new_id_list, silc_server_new_channel_list and
11297           silc_server_new_channel_user_list to handle the incoming
11298           NEW_ID_LIST, NEW_CHANNEL_LIST and NEW_CHANNEL_USER_LIST packets.
11299
11300         * Added support of changing Channel ID in the function
11301           silc_server_replace_id.  If the server that announces a channel
11302           to the router already exists in the router (with same name but
11303           with different Channel ID), router is responsible to send
11304           Replace ID packet to the server and force the server to change
11305           the Channel ID to the one router has.
11306
11307         * Added new notify type SILC_NOTIFY_TYPE_CHANNEL_CHANGE to notify
11308           client that the Channel ID has been changed by the router.  The
11309           normal server sends this to the client.  Client must start using
11310           the new Channel ID as the channel's ID.
11311
11312           Implemented handling of this new type into lib/silcclient/client.c
11313           into the function silc_client_notify_by_server.
11314
11315         * Added new function silc_idlist_replace_channel_id into the files
11316           silcd/idlist.[ch] to replace the Channel ID.
11317
11318 Fri Feb 16 14:14:00 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
11319
11320         * Call silc_server_command_identify_check always when processing
11321           the IDENTIFY command in silcd/command.c
11322
11323 Thu Feb 15 20:07:37 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
11324
11325         * Added new packet type SILC_PACKET_HEARTBEAT that is used to
11326           send keepalive packets.  The packet can be sent by clients,
11327           servers and routers.
11328
11329           Added function silc_socket_set_heartbeat into the file
11330           lib/silccore/silcsockconn.[ch] to set the heartbeat timeout.
11331           If not set, the heartbeat is not performed.  The actual
11332           heartbeat is implemented in the low level socket connection
11333           library.  However, application is responsible of actually
11334           sending the packet.
11335
11336           Added silc_server_send_heartbeat to send the actual heartbeat
11337           packet into silcd/packet_send.[ch].  Server now performs
11338           keepalive with all connections.
11339
11340         * Added silc_task_get_first function into lib/silcutil/silctask.c
11341           to return the timeout task with shortest timeout.  There was a bug
11342           in task unregistration that caused problems.  TODO has been
11343           updated to include that task system must be rewritten.
11344
11345         * The client library will now resolve the client information when
11346           receiving JOIN notify from server for client that we know but
11347           have incomplete information.
11348
11349         * Rewrote parts of silc_server_remove_from_channels and
11350           silc_server_remove_from_one_channel as they did not remove the
11351           channel in some circumstances even though they should've.
11352
11353         * Encryption problem encountered in server:
11354
11355           The LEAVE command used to send the Channel Key packet to the
11356           router immediately after generating it.  However, the code
11357           had earlier sent Remove Channel user packet but not immediately,
11358           ie. it was put to queue.  The order of packets in the router
11359           was that Channel Key packet was first and Remove Channel User
11360           packet was second, even though they were encrypted in the
11361           reverse order.  For this reason, MAC check failed.  Now, this
11362           is fixed by not sending the Channel Key packet immediately but
11363           putting it to queue.  However, this is more fundamental problem:
11364           packets that are in queue should actually not be encrypted
11365           because packets that are sent immediately gets encrypted
11366           actually with wrong IV (and thus MAC check fails).  So, packets
11367           that are in queue should be encrypted when they are sent to
11368           the wire and not when they put to the queue.
11369
11370           However, the problem is that the current system has not been
11371           designed to work that way.  Instead, the packet is encrypted
11372           as soon as possible and left to the queue.  The queue is then
11373           just purged into wire.  There won't be any fixes for this
11374           any time soon.  So, the current semantic for packet sending
11375           is as follows:
11376
11377           o If you send packet to remote host and do not force the send
11378           (the packet will be in queue) then all subsequent packets to the
11379           same remote host must also be put to the queue.  Only after the
11380           queue has been purged is it safe again to force the packet
11381           send immediately.
11382
11383           o If you send all packets immediately then it safe to send
11384           any of subsequent packets through the queue, however, after
11385           the first packet is put to queue then any subsequent packets
11386           must also be put to the queue.
11387
11388           Follow these rules and everything works fine.
11389
11390 Thu Feb 15 14:24:32 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
11391
11392         * Added new function silc_server_remove_clients_by_server to
11393           remove all client entries from ID list when the server connection
11394           is lost.  In this case it is also important to invalidate all
11395           client entires as they hold the invalid server entry.  This
11396           fixes fatal bug when server has lost connection and will reconnect
11397           again.
11398
11399 Wed Feb 14 16:03:25 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
11400
11401         * Made some sanity checks to silc_server_daemonise like to check
11402           whether the requested user and group actually exists.
11403
11404         * Added sanity check to SKE's silc_ske_responder_finish to check
11405           that the public and private key actually is valid.
11406
11407         * Invalidate the client's nickname when receiving Replace ID
11408           packet and the Client ID is being replaced.  This means that the
11409           server will query the nickname if someone needs it (client)
11410           a bit later.
11411
11412         * Sort the ID Cache in client library when the ID Cache data
11413           has changed (needs sorting).
11414
11415         * Do not allow for SILC client to create several connections to
11416           several servers.  The client does not support windows right now
11417           and generating multiple connections causes weird behaviour.
11418
11419           Irssi-silc client does support windows and can handle several
11420           connections without problems, see: www.irssi.org and SILC plugin.
11421
11422         * Fixed some places where client was added to the IDList.  The
11423           rule of thumb is following (in order to get everything right):
11424           If the client is directly connected local client then the
11425           `connection' argument must be set and `router' argument must be
11426           NULL to silc_idlist_add_client function.  If the client is not
11427           directly connected client then the `router' argument must
11428           bet set and the `connection' argument must be NULL to the
11429           silc_idlist_add_client function.
11430
11431         * The funtion silc_server_packet_send_local_channel actually did
11432           not check whether the client was locally connected or not.  It
11433           does that now.  Fixed a bug related to LEAVE command.
11434
11435         * Fixed Remove Channel User payload parsing bug in server's
11436           silcd/packet_receive.c.  Fixed a bug related to LEAVE command.
11437
11438         * The server's silc_server_save_channel_key now checks also the
11439           global ID list for the channel as it might not be in the local
11440           list.  Fixed a bug related to LEAVE command.
11441
11442         * Is this the end of the [<unknown>] buglet that has been lurking
11443           around for a long time?  A little for loop fix in server's
11444           silc_server_command_whois_parse that is used by both IDENTIFY
11445           and WHOIS command.  At least, this was a clear bug and a cause
11446           of one type of [<unknown>] buglet.
11447
11448         * WHOIS and IDENTIFY commands call the function
11449           silc_server_command_[whois/identify]_check function even if
11450           we are not router server.
11451
11452 Tue Feb 13 19:55:59 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
11453
11454         * Added --with-gmp configuration option.  If set the GMP
11455           is always compiled in the SILC source tree.  If not set then
11456           it is checked whether the system has the GMP3 installed.  If
11457           it has then the GMP won't be compiled (the system's headers
11458           and library is used), if it doesn't have it then the GMP is
11459           compiled in the SILC source tree.
11460
11461 Mon Feb 12 11:20:32 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
11462
11463         * Changed RSA private exponent generation to what PKCS #1
11464           suggests.  We try to find the smallest possible d by doing
11465           modinv(e, lcm(phi)) instead of modinv(e, phi).  Note: this is
11466           not security fix but optimization.
11467
11468 Sun Feb 11 18:19:51 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
11469
11470         * Added new config entry [Identity] to fork the server and run
11471           it as specific user and group.  A patch from Bostik.
11472
11473         * Imported Dotconf configuration library into lib/dotconf.
11474           This will be used to create the SILC configuration files later.
11475           It will appear in the distsribution after this commit.
11476
11477 Sat Feb 10 21:13:45 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
11478
11479         * A big code auditing weekend happening.  Auditing code for
11480           obvious mistakes, bugs and errors.  Also, removing any code
11481           that is obsolete.
11482
11483           Removed files for being obsolete:
11484
11485           o lib/silcutil/silcbuffer.c (the buffer interface is entirely in
11486           inline in the file lib/silcutil/silcbuffer.h)
11487
11488           o lib/silcutil/silcbufutil.c (the header has inline versions)
11489
11490           Changed code to fix possible error conditions:
11491
11492           o The buffer formatting routines now check that the destination
11493           buffer really has enough space to add the data.  This applies for
11494           both buffer formatting and unformatting
11495           (lib/silcutil/silcbuffmt.[ch]).  Also, the entire buffer
11496           unformatting was changed to accomodate following rules:
11497           XXX_*STRING_ALLOC will allocate space for the data into the pointer
11498           sent to the function while XXX_*STRING will not allocate or copy
11499           the data into the buffer.  Instead it sets the pointer from the
11500           buffer into the pointer sent as argument (XXX_*STRING used to
11501           require that the pointer must be allocated already).  This change
11502           makes this whole thing a bit more consistent and more optimized
11503           (note that the data returned in the unformatting with XXX_*STRING
11504           must not be freed now).  The routines return now -1 on error.
11505
11506           o Tried to find all code that use buffer_format and buffer_unformat
11507           and added return value checking to prevent formatting and
11508           especially unformatting errors and possible subsequent fatal
11509           errors.
11510
11511           o Changed ske->x and ske->KEY to mallocated pointers in
11512           lib/silcske/silcske.h.  Fixed possible data and memory leak.
11513
11514           o Added return value checking to all *_parse* functions.  Fixed
11515           many memory leaks as well.
11516
11517           o Added length argument to silc_id_str2id in lib/silccore/id.[ch]
11518           so that buffer overflows would not happen.  All code now also
11519           checks the return value as it can fail.
11520
11521 Mon Feb  5 20:08:30 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
11522
11523         * Added reconnection support to server if the normal server looses
11524           its connection to the router (for example if router is rebooted).
11525           The server performs normal reconnection strategy implemented
11526           to the server.  Affected file silcd/server.c.
11527
11528 Sun Feb  4 13:18:32 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
11529
11530         * Added new packet type SILC_PACKET_SET_MODE that is used to
11531           distribute the information about changed modes (for clients,
11532           channels and clients channel modes) to all routers in the
11533           network.  Updated the protocol specification accordingly.
11534
11535           Added functions into silcd/packet_send.c and
11536           silcd/packet_receive.c: silc_server_send_set_mode,
11537           silc_server_set_mode.
11538
11539           Added new files silcmode.[ch] into lib/silccore that implements
11540           the encoding and decoding of Set Mode Payload.  Added new type
11541           SilcSetModePayload.  Moved the definitions of different modes
11542           from lib/silccore/silcchannel.h into lib/silccore/silcmode.h.
11543
11544 Sat Feb  3 15:44:54 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
11545
11546         * Oops, a little mistake in server's connection authentication
11547           protocol.  The protocol is not ended with FAILURE but with
11548           SUCCESS if the authentication is Ok. :)  Affected file is
11549           silcd/protocol.c.
11550
11551         * Implemented NICK_CHANGE notify handling in server in the file
11552           silcd/packet_receive.c  The NICK_CHANGE notify is distributed to
11553           the local clients on the channel.  After the changing nickname
11554           in router environment snhould work and the [<unknown>] nickname
11555           should appear no more.
11556
11557           The silc_server_replace_id function that receives the Replace ID
11558           payload now sends the NICK_CHANGE notify type also in the file
11559           silcd/packet_receive.c
11560
11561         * Changed WHOIS and IDENTIFY command to support the maximum amount
11562           of arguments defined in protocol specs (3328 arguments).  This
11563           fixed a bug that caused problems when there were more than three
11564           users on a channel.
11565
11566 Fri Feb  2 11:42:56 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
11567
11568         * Added extra parameter, command identifier, to the
11569           silc_client_send_command so that explicit command identifier
11570           can be defined.
11571
11572           Changed that ID list routines uses specific command identifier
11573           when sending WHOIS/IDENTIFY requests to the server so that they
11574           can be identified when the reply comes back.
11575
11576           Affected files lib/silcclient/command.[ch],
11577           lib/silcclient/client.c and lib/silcclient/idlist.[ch].
11578
11579         * Added `sender' argument to silc_server_packet_send_to_channel
11580           to indicaet the sender who originally sent the packet to us
11581           that we are now re-sending.  Ignored if NULL.  Affected file
11582           silcd/packet_send.[ch].
11583
11584         * Added some server statistics support in silcd/server_internal.h
11585           SilcServerStatistics structure and around the server code.  Also
11586           send some nice statistics information when client is connecting
11587           to the client.
11588
11589 Thu Feb  1 23:31:21 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
11590
11591         * Fixed channel ID decoding in server's JOIN command reply in
11592           silcd/command_reply.c
11593
11594         * Fixed braodcasting of replace ID payload to not to send it if
11595           we are standalone server in silcd/packet_receive.c.
11596
11597         * Fixed all channel message sending routines to not to send
11598           packets to clients that has router set, since they are routed
11599           separately in the same function earlier.  Affects file
11600           silcd/packet_send.c and all channel packet sending functions.
11601
11602         * In USERS reply, res_argv[i] are not allocated, the table
11603           is allocated.  Thus changed that free the table, not its
11604           internals.
11605
11606         * In server's whois_check and identify_check if the client is
11607           locally connected do not send any WHOIS commands - they are not
11608           needed.
11609
11610 Thu Feb  1 21:32:27 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
11611
11612         * Fixed some minor bugs in client when sending WHOIS command.  The
11613           arguments was in wrong order.
11614
11615         * Removed statis function add_to_channel from server in
11616           silcd/command.c that was previously used with the joining but
11617           is obsolete now.
11618
11619         * Tested USERS command in router environment successfully with two
11620           routers, two servers and two clients.
11621
11622 Thu Feb  1 00:54:26 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
11623
11624         * Reorganized the USERS command and command reply in client library
11625           in lib/silcclient/command.c and lib/silcclient/command_reply.c.
11626           When the command is given by user we register a pending command
11627           callback that will reprocess the command after the reply has been
11628           received from the server.  When reprocessing the packet we then
11629           display the information.  Thus, the USERS information is displayed
11630           now in the command callback instead of in the command reply
11631           callback.  The processing of the command is same as previously
11632           when server has sent the command reply in the JOINing process.
11633
11634         * Added to USERS command in silcd/command_reply.c to join the client,
11635           we didn't use to know about, to the channel after we've created
11636           a client entry for it.  Also, for clienet we did know already still
11637           check whether it is on the channel or not and add it if not.
11638
11639         * Removed silc_server_command_join_notify as the function and its
11640           use was obsolete.
11641
11642 Tue Jan 30 22:39:15 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
11643
11644         * Changed the client's pending command handling to the same as the
11645           server's pending command handling.  It is also now possible to
11646           execute command reply functions from other command reply
11647           function as the function callbacks for commands and command
11648           replies are one and same.  The pending commands are not static
11649           list anymore, it is mallocated SilcDList in lib/silcclient/client.h
11650           in client connection context.  Thus, pending commands are server
11651           connection specific as it is convenient.
11652
11653           Changed the function silc_client_command_pending and
11654           silc_client_command_pending_del and added new function
11655           silc_client_command_pending_check.  Removed the
11656           SILC_CLIENT_CMD_REPLY_EXEC, and SILC_CLIENT_PENDING_COMMAND_CHECK
11657           macros.
11658
11659         * Added cmd_ident, current command identifier, to the client
11660           connection context in lib/silcclient/client.h to keep track on
11661           command identifiers used in command sending.  Client's command reply
11662           function handling now supports the mandatory command identifiers.
11663
11664         * Added SILC_CLIENT_COMMAND_EXEC_PENDING macros to all command reply
11665           funtions in client to fully support pending command callbacks.
11666
11667         * NOTE: the name_list in USERS (old NAMES) command is NOT sent anymore
11668           as one of the arguments to the application in the command reply
11669           client operation.
11670
11671         * NOTE: The FORWARDED flag is depracated.  It used to be depracated
11672           before first releasing SILC but came back.  Now it is removed again
11673           and should come back nomore.  The FORWARDED flag was used only
11674           by the JOINing procedure by forwarding the command packet to router.
11675           Now, the JOINing procedure has been changed to more generic (due
11676           to various router environment issues) and FORWARDED is not needed
11677           anymore for anything.  The protocol specification is yet to be
11678           updated.
11679
11680           Now, removed silc_server_packet_forward from server and the flag
11681           SILC_PACKET_FORWARDED from lib/silccore/silcpacket.h.
11682
11683 Tue Jan 30 00:05:05 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
11684
11685         * Renamed NAMES command to USERS command.  The NAMES was named that
11686           due to historical reasons.  Now it is renamed.  Also, rewrote
11687           parts of the USERS command.  The nickname list is not sent anymore
11688           by the server.  Only Client ID and mode lists are sent in the USERS
11689           command.  Changed this also to the protocol specification.
11690
11691           The client now resolves the names and stuff after it receives
11692           the USERS list from the server when joining to the channel.
11693
11694         * WHOIS and IDENTIFY commands has been changed to support multiple
11695           Client ID's per command.  One can now search for multiple users
11696           in the network by sending only one WHOIS or IDENTIFY command.
11697           Changed the code and the protocol specifications.
11698
11699         * Removed silc_server_command_identify_parse and changed that IDENTIFY
11700           uses silc_server_command_whois_parse to parse the request. */
11701
11702         * If normal server, do not parse the WHOIS and IDENTIFY requests
11703           before sending it to the router.  Saves some time.
11704
11705 Sun Jan 28 16:19:49 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
11706
11707         * Fixed JOIN command on client library.  Wrong number of arguments
11708           used to crash the client.
11709
11710         * Added silc_server_channel_has_global function to check whether
11711           channel has global users or not.
11712
11713         * Added silc_server_channel_has_local function to check whether channel
11714           has locally connected clients on the channel.
11715
11716         * The silc_server_remove_from_one_channel now checks whether the
11717           channel has global users or not after given client was removed from
11718           the channel.  It also checks whether the channel has local clients
11719           on the channel anymore.  If it does not have then the channel entry
11720           is removed as it is not needed anymore.
11721
11722         * The silc_server_notify now checks on JOIN notify whether the joining
11723           client is one of locally connected or global.  If it is global then
11724           the channel has now global users on the channel and that is marked
11725           to the channel entry.  Also, it now saves the global client to
11726           global list who is joining and JOINs it to the channel.  This is
11727           for normal server, that is.
11728
11729           Changed silc_server_send_notify_on_channel,
11730           silc_server_packet_relay_to_channel and
11731           silc_server_packet_send_to_channel check if we are normal server
11732           and client has router set (ie. global client) do not send the
11733           message to that client, as it is already routed to our router.
11734
11735         * Implemented LEAVE notify type handling in silc_server_notify
11736           function.
11737
11738         * Tested LEAVE command in router environment successfully.  Tested
11739           with two routers, two servers and two clients.
11740
11741         * Updated TODO.
11742
11743         * idlist_find_xxx_by_id routines now dumps the ID on the debug mode.
11744
11745         * Implemented SIGNOFF notify type handling in silc_server_notify
11746           function.
11747
11748         * silc_server_remove_id now removes the client entry from all channels
11749           it has joined and thusly sends SIGNOFF notify type.
11750
11751         * Rewrote the NAMES list generation in server by removing two excess
11752           loops.  The lists are created now inside one loop.
11753
11754 Sat Jan 27 22:34:56 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
11755
11756         * silc_server_remove_channel_user checks now also global list
11757           for channel and client.
11758
11759         * silc_server_new_channel_user checks now both local and global
11760           list for channel and client.  Fixed a bug in client id decoding.
11761           Used to decode wrong buffer.
11762
11763         * silc_server_channel_message checks now both local and global
11764           list for channel entry.
11765
11766         * Tested channel joining (hence JOIN) in router environment
11767           successfully.  Tested with two routers, two servers and two
11768           clients.
11769
11770         * Tested channel message sending in router environment successfully.
11771
11772 Thu Jan 11 03:22:57 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
11773
11774         * Added silc_server_save_channel_key into server.[ch] to save the
11775           received channel key in Channel Key payload processing. It is
11776           also used in JOIN command reply handling.
11777
11778           Equivalent function silc_client_save_channel_key added into
11779           client.[ch] into client library.
11780
11781         * Changed JOIN command reply to send information whether the channel
11782           was created or not (is existing already) and the channel key
11783           payload.  Changed protocol specs accordingly.
11784
11785         * Fixed bugs in WHOIS and IDENTIFY command reply sending when
11786           the request was sent by ID and not by nickname.  Crashed on
11787           NULL dereference.
11788
11789 Sat Dec 23 21:55:07 EET 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
11790
11791         * Fixed a bug in Client library.  IDENTIFY and WHOIS reply functions
11792           now correctly save the received data.
11793
11794         * silc_server_free_sock_user_data now notifies routers in the
11795           network about entities leaving the network.
11796
11797           At the same time implemented functions silc_server_remove_id
11798           and silc_server_send_remove_id to receive and send REMOVE_ID
11799           packets.  The packet is used to notify routers in the network
11800           about leaving entities.  The ID removed will become invalid in
11801           the network.
11802
11803         * Added function silc_idlist_del_server into server. Removes and
11804           free's server entry from ID list.
11805
11806         * silc_server_private_message function now checks, if we are router,
11807           that the destination ID really is valid ID, naturally.
11808
11809         * In router when NEW_ID packet is received (for new client) the
11810           hash of the Client ID is saved in the ID Cache but the
11811           client->nickname is set to NULL, instead of putting the hash
11812           to it as well.
11813
11814           IDENTIFY command now also checks that client->nickname must be
11815           valid. If it is not if will request the data from the server who
11816           owns the client.  Added new function
11817           silc_server_command_identify_check.
11818
11819         * Added silc_command_set_command into lib/silccore/silcommand.[ch]
11820           to set the command to already allocated Command Payload.
11821
11822         * Tested private message sending in router environment with two
11823           routers, two servers and two clients.  Fixed minor bugs and now
11824           it works fine.
11825
11826         * Fixed segfault from client's NAMES command. Used to crash if
11827           not on any channel.
11828
11829         * Forwarded packets must not be routed even if it is not destined
11830           to the receiver.  Changed server code comply with this.
11831
11832 Sun Dec 17 14:40:08 EET 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
11833
11834         * Added `require_reverse_mapping' boolean value to ServerParams
11835           structure. If TRUE (not default) the server will require that
11836           the connecting host has fully qualified domain name.
11837
11838           If the reverse mapping is not required and hostname could not be
11839           found the IP address is used as hostname.
11840
11841 Sat Dec 16 17:39:54 EET 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
11842
11843         * Implemented version string checking to both client and server.
11844           The check is incomplete currently due to the abnormal version
11845           strings used in development version of SILC.
11846
11847         * Changed all command functions in server to use the new
11848           CHECK_ARGS macro.
11849
11850 Fri Dec 15 15:55:12 EET 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
11851
11852         * Changed char *data to unsigned char *data in ID Cache system to
11853           support binary data as ID Cache data. Changed code to support
11854           binary data in lib/silccore/idcache.c.
11855
11856         * Renamed silc_server_packet_relay_command_reply to
11857           silc_server_command_reply as it is normal packet receiving
11858           function. Rewrote the function to accept command replys for
11859           servers and not only for clients.
11860
11861         * Mark remote router always as registered server if we are connecting
11862           to it.  Otherwise, commands sent by the router to us are ignored.
11863
11864         * All ID List find routines now returns the ID Cache Entry pointer
11865           as well if requested.
11866
11867         * WHOIS command works now in router environment, tested with two
11868           routers, two servers and two clients.
11869
11870         * Cleaned up and rewrote IDENTIFY command. IDENTIFY should work now
11871           in router environment (as it is almost equivalent to WHOIS) but
11872           hasn't been tested thoroughly.  Added new functions:
11873
11874           silc_server_command_identify_parse
11875           silc_server_command_identify_send_reply
11876           silc_server_command_identify_from_client
11877           silc_server_command_identify_from_server
11878
11879         * Disabled route cache adding because adding two different ID's with
11880           same IP replaces the old cache entry thus giving wrong route.
11881           The entry->router->connection is always the fastest route anyway
11882           so route cache may not be needed.  Of course, new routes maybe
11883           established after receiving the ID when the entry->router->connection
11884           might not be anymore the most optimal.
11885
11886 Thu Dec 14 15:55:35 EET 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
11887
11888         * Add route cache for received ID for fast routing.
11889
11890         * Added silc_server_packet_route to route received packet on router
11891           that is not destined to us.
11892
11893         * Renamed silc_server_get_route to silc_server_route_get.
11894
11895         * Added id_string and id_string_len fields into SilcServer to
11896           include encoded ServerID for fast comparing without excess
11897           encoding of the ID's.
11898
11899         * Cleaned up WHOIS command on server side. Added following static
11900           functions:
11901
11902           silc_server_command_whois_parse
11903           silc_server_command_whois_check
11904           silc_server_command_whois_send_reply
11905           silc_server_command_whois_from_client
11906           silc_server_command_whois_from_server
11907
11908         * Added macro SILC_SERVER_COMMAND_CHECK_ARGC to check mandatory
11909           arguments in command replies. All command functions should be
11910           updated to use this macro.
11911
11912 Sun Dec 10 23:52:00 EET 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
11913
11914         * Minor typo fixes on command reply handling on server.
11915
11916 Tue Nov 28 11:05:39 EET 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
11917
11918         * Added silc_server_command_add_to_channel internal routine to add
11919           the client to the channel after router has created the channel and
11920           sent command reply to the server.
11921
11922         * Added generic silc_server_send_command to send any command from
11923           server.
11924
11925         * Use static buffer with ID rendering instead of duplicating data.
11926
11927 Mon Nov 27 21:39:40 EET 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
11928
11929         * Fixed a channel user mode bug when joining to a channel server gave
11930           everybody channel founder rights, oops.
11931
11932         * We mark ourselves as the router of the incoming server connection
11933           if we are router ourselves.  This way we can check in some packet
11934           sending functions whether it is locally connected server.  For
11935           incoming router connections we put NULL.
11936
11937         * For router sending packets locally means now always sending the
11938           packet cell wide; to local clients and local servers.  For normal
11939           server sending packet locally means sending it to only local
11940           clients.
11941
11942         * Fixed the JOIN command to really work in router environment.  If the
11943           channel is created it is always created by the router.  Router is
11944           also responsible of making the initial joining to the channel,
11945           sending JOIN notify to the sending server and distributing
11946           NEW_CHANNEL and NEW_CHANNEL_USER packets.  Hence, if the channel
11947           does not exist server doesn't do anything else but forward the
11948           command to the router which performs everything.
11949
11950         * Added silc_server_send_channel_key function to send the Channel Key
11951           payload.
11952
11953         * Added silc_server_create_channel_key to create new channel key.  The
11954           channel key is now re-generated everytime someone joins or leaves
11955           a channel, as protocol dictates.  Note: channel->key_len is the
11956           key length in bits.
11957
11958 Wed Nov 22 22:14:19 EET 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
11959
11960         * Splitted server.[ch] finally.  Created now packet_send.[ch] and
11961           packet_receive.[ch] to separate packet sending and receiving
11962           routines.  The server.[ch] now includes everything else including
11963           actual packet processing (writing and reading data) and other
11964           server issues.
11965
11966           Renamed silc_server_private_message_send_internal to
11967           silc_server_send_private_message.  The routine is still though
11968           used only to relay private messages as server does not send
11969           private messages itself.
11970
11971           Renamed silc_server_new_channel to silc_server_create_new_channel
11972           and added new function sicl_server_new_channel that handles the
11973           incoming New Channel packet.  Added also new sending function
11974           silc_server_send_new_channel to send New Channel Payload.
11975
11976         * Added new function silc_server_notify to process incoming notify
11977           packet to the server/router. Server may then relay the notify
11978           to clients if needed.
11979
11980         * Added new function silc_server_new_channel_user to process incoming
11981           New Channel User packet.  Router will redistribute the packet and
11982           send JOIN notify to its local clients and locally connected servers
11983           if needed.  Normal server will send JOIN notify to its local client
11984           on same channel when received this packet.  Added also corresponding
11985           sending function silc_server_send_new_channel_user to sent the
11986           payload.
11987
11988         * Added boolean route argument to send_notif_to_channel and
11989           packet_send_to_channel functions to attempt to route the packet
11990           if it is TRUE and send only locally if it is FALSE.
11991
11992 Tue Nov 21 19:49:31 EET 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
11993
11994         * silc_server_replace_id now broadcasts the received replace ID
11995           packet if it is not broadcast packet already. The router must
11996           broadcast to inform other routers about changed ID.
11997
11998         * Added backpointer to server's router into SilcServer context in
11999           silcd/server_internal.h.
12000
12001         * Fixed silc_server_packet_broadcast to send correct broadcast
12002           packets.
12003
12004         * The channel key is now distributed to the local client as soon
12005           as it is received from the router (in router environment) so that
12006           no other packet may be sent for the channel until client has
12007           received the key.
12008
12009         * silc_server_remove_channel_user now broadcasts the received
12010           Remove Channel User packet if it is not broadcast packet already.
12011           The router must broadcast to inform other routers about removed
12012           channel user.
12013
12014         * Added users field into SilcPacketContext that is a reference count
12015           of the context.  One can increase the reference count by calling
12016           silc_packet_context_dup which is now changed to just increase the
12017           reference count instead of duplicating the data.  The reference
12018           count is decresed by calling silc_packet_context_free that will
12019           free the data after the reference count hits zero.
12020
12021           For now on the packet context and everything allocated into it
12022           (including the raw packet from network) must be freed by calling
12023           the new silc_packet_context_free function.  Added also new function
12024           silc_packet_context_alloc that must be used now to allocate the
12025           context.  This also means that if a routine is asynchronous from
12026           silc_[client/server]_packet_parse_type the packet context must
12027           be duplicated by calling silc_packet_context_dup.  Otherwise it
12028           gets free'd after silc_[client/server]_packet_parse_type returns.
12029           Also, one must remember that if packet is duplicated then its
12030           reference count must be decresed by calling the free function as
12031           many times as it was duplicated.
12032
12033         * Changed SilcBuffer field from protocol contexts to SilcPacketContext
12034           from both client and server.
12035
12036 Mon Nov 20 23:47:03 EET 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
12037
12038         * Made joining to a channel working in router environment.
12039
12040         * Cleaned up JOIN command on server side and create function
12041           silc_server_command_join_channel internal routine to make the
12042           joining happen.
12043
12044 Thu Nov  9 21:12:39 EET 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
12045
12046         * Changed silc_command_pending list to SilcDList.  Also, added
12047           `ident' field to SilcServerCommandPending structure to identify
12048           the reply and to call correct callback.
12049
12050           Added silc_server_command_pending_check function to replace the
12051           corresnponding macro.  The silc_command_pending list is not
12052           extern anymore.
12053
12054         * Added silc_command_set_ident into lib/silccore/silccommand.[ch]
12055           to set identifier to previously allocated Command Payload.  It
12056           is used to set identifier for command when resending Command
12057           Payload.
12058
12059         * Added silc_command_payload_encode_payload to encode Command
12060           Payload buffer from SilcCommandPayload structure.
12061
12062         * Added silc_argument_payload_encode_payload to encode Argument
12063           payload buffer from SilcArgumentPayload structure.
12064
12065 Wed Nov  8 21:03:28 EET 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
12066
12067         * Changed WHOIS command to support router connection on server side.
12068           The whois request is always sent to router unless the server is
12069           standalone server.  After server has received the reply from the
12070           router will it send the reply to the client.
12071
12072         * Added silc_server_packet_broadcast into silcd/server.[ch] to
12073           broadcast received broadcast packet.  The function is used only
12074           by router.  The broadcast packet is always sent to the router's
12075           primary route.
12076
12077         * Added silc_id_render function in lib/silcutil/silcutil.[ch] to
12078           render given ID to printable string, for log files for example.
12079
12080 Tue Nov  7 22:14:19 EET 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
12081
12082         * Made basic router to router connections working.  At least they
12083           can now connect to each other but nothing really works the way
12084           they are supposed - yet.
12085
12086         * Added new initiator token to RouterConnection configuration
12087           file in silcd/serverconfig.[ch].  It is used to tell whether we
12088           are the initiator to the remote router or whether we'll expect
12089           the other end to connect.
12090
12091         * Moved registering of listener task to silc_server_init, hence
12092           the server starts listenning as soon as it is run, even if it
12093           does not have connections to other routers.  Let's see how well
12094           this will work.
12095
12096         * Changed default connection retry timeouts for more suitable in
12097           silcd/server.h.
12098
12099         * Removed cipher and such arguments from silc_idlist_add_client
12100           and silc_idlist_add_server prototypes from silcd/idlist.[ch].
12101           Added new function silc_idlist_add_data to add the keys and stuff
12102           to any ID entry.
12103
12104         * Added SilcIDListData structure and added it to SilcClientEntry
12105           and SilcServerEntry as their first field in the structure.  This
12106           way we can explicitly cast the ID entries to the SilcIDListData
12107           structure and get common data for the entries.  In past, we had
12108           to first check what type of connection it is and then cast it to
12109           correct ID entry type.  Now, we can directly cast the opaque
12110           pointer to the SilcIDListData (no matter what ID entry it actually
12111           is) and get the data needed.
12112
12113 Mon Nov  6 21:56:12 EET 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
12114
12115         * Wow, found a bug in scheduler.  The scheduler uninitialized itself
12116           in some circumstances even if threre were timeout tasks, though not
12117           IO tasks, but tasks anyway.  Now fixed.
12118
12119         * Defined SilcServerConnection structure to hold connection specific
12120           stuff about directly connected servers and routers.  The definition
12121           is currently in silcd/server_internal.h.  I thought about having
12122           a bit more important role fro this struct but for now it is used
12123           only when connecting to other server (or router actually).
12124
12125         * Added connecting retry support in server when connecting to
12126           router(s).  The retry feature implement exponential backoff
12127           algorithm.  Also, added SilcServerParams structure to hold default
12128           parameters for server.  For now, it include these retry settings
12129           and are hard coded.  After server is moded to be as Silc Server
12130           Library this structure will be more important.
12131
12132 Sun Nov  5 22:28:44 EET 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
12133
12134         * Changed client librarys channel->clients table to SilcList and
12135           changed code accordingly.
12136
12137 Thu Nov  2 16:28:01 EET 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
12138
12139         * Changed client's channel table to SilcList and changed code
12140           accordingly.  Also changed SilcChannelClientEntry to include back-
12141           pointer to the channel so that client entry can use that structure
12142           as list as well and we have fast cross-reference to the channel.
12143           This change dramatically decreased the complexity of channel
12144           handling with client entry and vice versa (removed one extra
12145           loop when searching for channel entry from many functions).
12146
12147         * Changed server->sim from table to SilcDList and changed code
12148           accordingly.
12149
12150         * NAMES command can now be used from user interface.  It will show
12151           the user list on the channel, neatly.
12152
12153         * Added realname pointer to SilcClientEntry in lib/silcclient/idlist.h.
12154           Code now saves realname of the user if it becomes available.
12155
12156         * Renamed configure.in to configure.in.pre and made ./prepare
12157           script to automatically add correct version string to
12158           configure.in which it creates from configure.in.pre.
12159
12160 Wed Nov  1 17:21:26 EET 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
12161
12162         * NAMES command reply now shows users mode with the nickname when
12163           joining to channel.
12164
12165         * Moved silc_client_ch[u]mode[_char] functions from
12166           silc/clientutil.[ch] to lib/silcclient/client.[ch].  Though, that
12167           place sucks, they are utility functions and should be in some
12168           other file.
12169
12170         * Fixed some unsigned int's to unsigned short's.  Patch by cras.
12171
12172         * Fixed contrib/getopt*.[ch] to not require config.h.  Patch by
12173           cras.
12174
12175 Tue Oct 31 20:10:37 EET 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
12176
12177         * Updated README.
12178
12179         * Added TRQ (efficient deque and list library) into lib/trq.  This is
12180           a very good list library that is currently used in the SILC.  Defined
12181           SilcList API over the library because I didn't like the API very
12182           much.  See lib/trq/silclist.h for the API and examples of how to
12183           use the API.  Fixed various places in the code to use the new
12184           SilcList API. The SilcList is meant for lists that has a structure
12185           already defined as a list.  It is not suitable to add just some
12186           context to the list (in TRQ, the context is the list actually).
12187
12188           So, I defined SilcDList that can be used for the purpose where
12189           predefined list structure does not exit.  This can be used as
12190           such list.  Now some context just can be added to the SilcDList.
12191           Currently this list is not used in the SILC just yet, though there
12192           are a lot places where this can replace dynamically allocated
12193           tables and I will fix these places, later, to use SilcDList.
12194           See lib/trq/silcdlist.h for SilcDList (they are all inline functions,
12195           and use TRQ internally).
12196
12197           Also fixed some annoying warning messages that the original TRQ
12198           code generated.  Also minor changes to TRQ's Makefile.in.
12199
12200         * Added support for querying by Client ID to both WHOIS and
12201           IDENTIFY commands into server, as required by the protocol.
12202
12203         * Removed method function pointers from SilcBuffer structure. They
12204           weren't used to anything and just increased the context size for
12205           no good reason.  This change also made silc_buffer_alloc and
12206           silc_buffer_free functions inline functions.
12207
12208         * Disabled command flooding detection support until it's fixed so
12209           that it accepts commands in but does not execute them more than once
12210           in two seconds.
12211
12212         * Added silc_net_localhost(), to return local hostname, into
12213           lib/silcutil/silcnet.[ch].  Also added client->hostname pointer
12214           that must be initialized before calling silc_client_init.
12215
12216         * Added new function: silc_server_send_notify_on_channels to send
12217           notify messages to all channels client has joined.  It is assured
12218           that the message is sent only once per client.
12219
12220         * Moved silc_log_format (from lib/silcutil/silclog.[ch] into
12221           lib/silcutil/silcutil.[ch] as silc_format function.  The new
12222           function is generic and is used by server as well, not only by
12223           the logging routines.
12224
12225         * Added new SKE status type: SILC_SKE_STATUS_BAD_VERSION to indicate
12226           the provided version string was not acceptable.  Added new function:
12227           silc_ske_check_version into lib/silcske/silcske.h.  The function
12228           must be implemented by the application (client or server) and it
12229           does not reside in the SKE library.  The function checks the version
12230           string remote end sent.
12231
12232         * Added back pointers (to opaque context and to SilcSocketConnection)
12233           into SilcPacketContext structure into lib/silccore/silcpacket.h.
12234
12235         * Added silc_packet_context_dup into lib/silccore/silcpacket.[ch] to
12236           duplicate packet context structure.
12237
12238         * Changed `notify' client operation to send same arguments as client
12239           receives from server except for ID's.  ID's are mapped to correct
12240           ID entry and that is returned.  Also, if channel entry is not sent
12241           by server but the notify is for channel the channel entry is sent
12242           to application (otherwise application doesn't know that it is for
12243           channel (library gets it from packet's Destination ID)).
12244
12245         * Added silc_client_remove_from_channels into client library to
12246           remove a client from all channels it has joined to.  Used when
12247           received SIGNOFF notify from server.  Added also new function
12248           silc_client_replace_from_channels to replace old ID entry with
12249           new ID entry on all channels.  Used when received NICK_CHANGE
12250           notify from server.
12251
12252         * Fixed ID Cache list handling in silc_idlist_get_client in
12253           lib/silcclient/idlist.c.  Also, added silc_idlist_get_client_by_id
12254           to get (or query) client by ID.
12255
12256         * Updated TODO list.
12257
12258         * Added connection authentication status message defined by the
12259           protocol: SILC_CONN_AUTH_OK and SILC_CONN_AUTH_FAILED and added the
12260           support for these into the code in client and server side.
12261
12262         * Added generic function silc_client_send_command to send any command
12263           with variable argument list.  Application should use this function
12264           to send commands if the command functions provided by the library
12265           does not suite for the application's user interface needs.
12266
12267         * Added new `failure' client operation.  Application is notified about
12268           received failure packet if client is executing a protocol.  In this
12269           case the protocol's execution has failed.
12270
12271         * Added SKE's end notify to send the SKE_SUCCESS notify message that
12272           is required by the protocol.
12273
12274         * Added SILC_PROTOCOL_STATE_FAILURE to indicate received failure
12275           packet from remote.  SILC_PROTOCOL_STATE_ERROR indicates local
12276           error at our end.
12277
12278         * Added status flag to SilcSKE object to indicate realtime status
12279           of the SKE protocol.
12280
12281         * Application receives now exactly same command reply arguments as
12282           the library receives from server.  However, if ID is received the
12283           corresponding ID entry is returned to the application (eg. Client
12284           ID is mapped to correct SilcClientEntry entry and that is returned).
12285           Changed command_reply client operation due to this change.
12286
12287         * Changed all ID's in commands and in command replys as ID Payloads.
12288           Change affected both client and server side codes.
12289
12290           All ID's sent in SILC network (with execption of ID's in SILC
12291           Packet header) are sent in ID Payload to support variable length
12292           ID's.
12293
12294         * Server now notifies nick changes and notifies all clients on
12295           the channels about the new nickname (about the new Client ID,
12296           actually).
12297
12298         * Implemented CMODE command to change channel modes. Supports all
12299           channel modes defined by the protocol specs except ban and invite
12300           lists. (Also, private channel key mode is supported but support for
12301           setting private channel key in client is missing, thus, this mode
12302           has no effect on client side (except that server requires that the
12303           client uses private channel key and normal channel traffic does not
12304           work anymore)).
12305
12306           Also, invite mode works per se, but INVITE command does not work
12307           yet correctly, so you can set channel as invite only channel but
12308           inviting clients to the channel does not work (it is yet to be
12309           thought what's the best way to do it).
12310
12311         * Added new command SILC_COMMAND_CUMODE to change user mode on the
12312           channel.  Defined user modes: CHANNEL_FOUNDER and CHANNEL_OPERATOR.
12313           Implemented CUMODE command to change user's mode on the channel.
12314           Supports all modes defined by the protocol specs.
12315
12316         * Added NAMES command reply to return users modes on the channel.
12317
12318         * Removed unnecessary and slow ciphers from lib/silccrypt.
12319
12320         * Set SO_KEEPALIVE option to connection sockets by default.
12321
12322         * Added new command reply status: SILC_STATUS_USER_NOT_ON_CHANNEL.
12323
12324         * Added notify types: MOTD, CMODE_CHANGE and CUMODE_CHANGE.  Also,
12325           redefined the Notify Payload into protocol specs.
12326
12327         * Added silc_id_payload_parse_id to get ID directly from raw
12328           ID payload data.
12329
12330 Mon Oct  9 20:57:02 EEST 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
12331
12332         * Changed SILC_COMMAND_IDENTIFY in protocol specification to
12333           accept searching by Client ID as well.
12334
12335         * Added support for LEAVE and SIGNOFF notify types in client library.
12336
12337         * Added silc_id_payload_parse_data into lib/silccore/silcpayload.[ch]
12338           to parse ID Payload from raw data.
12339
12340 Sun Oct  8 19:33:08 EEST 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
12341
12342         * Added flags parameter into silc_ske_assemble_security_properties
12343           function in lib/silcske/silcske.[ch].
12344
12345         * Changed notify client operation to fit better for notify messages
12346           sent by server.  The notify payload received from server is now
12347           passed to the application (after parsing it to SilcNotifyPayload).
12348           It is application's responsibility to retrieve the arguments
12349           from the payload and show the message the way it wants.  The message
12350           sent by server is implementation specific.
12351
12352         * Changed public keys to comply with the protocol specification.
12353           Old public keys are not supported anymore and are not compatible.
12354
12355         * Removed nickname from Channel Payload as the latest draft removed
12356           it.  The client must resolve the nickname from the NAMES command
12357           reply received when it joined the channel.
12358
12359           Also, changed all channel_xxxx_payload to channel_payload_xxxx.
12360
12361 Sat Oct  7 21:55:01 EEST 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
12362
12363         * Fixed some errors in protocol specification drafts.
12364
12365         * Created lib/silccore/silcnotify.c to implement Notify Payload
12366           encoding and decoding, lib/silccore/silcpayload.[ch] to implement
12367           generic payloads described by protocol specifications.  The file
12368           includes implementations for ID Payload and Argument Payload.
12369
12370         * Changed Command Payload implementation to use the new Argument
12371           Payload.  Changed command_xxxx_payload to command_payload_xxxx
12372           to comply with SILC coding conventions.
12373
12374         * Added suppport for Argument Payload handling in Notify Payload
12375           implementation as protocol requires it.  Added the new support
12376           into server and client lib as well.
12377
12378 Thu Oct  5 21:16:28 EEST 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
12379
12380         * Added support for multiple nicknames on same channel.  [n] is
12381           added locally to the nickname if there are more than one same
12382           nicknames on the channel.
12383
12384         * Server now sends all nicknames that matched WHOIS request.
12385           Client also shows the list received from server.
12386
12387         * Added TOPIC command to client side.  User can now set and show
12388           current topic on channel.
12389
12390         * Added MOTD command to client and server.  Also, server sends the
12391           motd when client connects to the server.
12392
12393         * Changed version strings to comply ISO 8601.
12394
12395 Wed Oct  4 23:29:06 EEST 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
12396
12397         * Fixed protocol error handling in client library.  It should now
12398           cope even if the SKE fails for some reason.
12399
12400         * Made new protocol specification drafts for submitting to IETF.
12401
12402         * Implemented TOPIC command to server in silcd/command.c.
12403
12404         * Added two new notify types into lib/silccore/silcnotify.h:
12405           SILC_NOTIFY_TYPE_NICK_CHANGE and SILC_NOTIFY_TYPE_TOPIC_SET to
12406           notify nickname change and topic setting/change on a channel.
12407
12408         * API change of command_reply operation in client library.  The
12409           application gets now the status type received from server as well.
12410
12411 Sat Sep 30 16:57:42 EEST 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
12412
12413         * Removed the function just added to lib/silcutil/silcschedule.[ch].
12414
12415         * Cras fixed and optimized the packet handling even further and
12416           it should work now.  Minor change to the prototype of function
12417           silc_packet_receive_process in lib/silccore/silcpacket.[ch].
12418
12419 Sat Sep 30 08:48:47 EEST 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
12420
12421         * Added new function into lib/silcutil/silcschedule.[ch]:
12422           silc_schedule_with_fd to select() a specified fd.  The function
12423           returns after timeout expires or data arrives or goes.  The
12424           function is used by packet routines to wait that all data is
12425           received from network.
12426
12427         * Fixed data reading from network in lib/silccore/silcpacket.c.
12428           The code now assures that all data is read from the fd and then
12429           continues packet processing.  This was a bug fix since the code
12430           used to drop some data in some circumstances.
12431
12432         * Added new function into lib/silcclient/client.[ch]:
12433           silc_client_start_key_exchange to start key exchange after
12434           connection has been established to server.  The code internally
12435           now uses this funtion but its main purpose was to provide it
12436           for applications that perform their own connecting.  After
12437           application has created a connection it merely calls this
12438           function to start the key exchange between client and server.
12439           The library takes care of everything else after that.
12440
12441           Updated also lib/silcclient/README to explain the usage of
12442           this new function.
12443
12444         * Do not send to application information that connection has
12445           been established.  Application gets notified it by connect
12446           operation anyway.
12447
12448 Thu Sep 28 23:40:19 EEST 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
12449
12450         * Applied cras's patch to add silc_schedule_one function.  The
12451           function runs scheduler once and returns.
12452
12453         * Fixed the scheduler after cras messed it up.  The timeout
12454           handling works now as it's supposed to work.
12455
12456         * Added into lib/silccore/ silcnotify.h to include notify
12457           message types support.  Changed silc_server_send_notify*
12458           functions, in server.[ch], to support those new notify types.
12459           Added the support for the notify types into client library,
12460           as well.  Added new notify client operation into ops.h in
12461           lib/silcclient/.
12462
12463         * Changed silc_server_packet_send_to_channel to send normal
12464           packets instead of just channel message packets.  The function
12465           is now used to send the notify packets to channels.  It is not
12466           used to send channel message packets anymore, as server never
12467           sends them anymore.
12468
12469         * Added explicit casting into lib/silcutil/silcbuffmt.c to few
12470           va_arg()s as it seems to require it nowadays.  I guess, if SILC
12471           is compiled with older va_arg() the new code should work anyway.
12472
12473 Wed Sep 13 18:10:14 EEST 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
12474
12475         * Splitted core library.  Core library (lib/silccore) includes
12476           now only SILC protocol specific core (and common) components.
12477           Created new utility library (lib/silcutil) that includes more
12478           generic purpose stuff.  The stuff for util library was taken
12479           from the old core library.  This was minor and easy split.
12480
12481         * Created SILC Client Library (lib/silcclient) that includes
12482           implementation of the SILC client without user interface.  This
12483           was major move from silc/ directory.  The code has been changed
12484           so that it is transparent towards the user interface.  The
12485           silc/ directory includes now the same user interface as before
12486           and it uses the new client library.  Read lib/silcclient/README.
12487           Basicly, the client library performs everything else related
12488           to SILC except user interface handling.  Also, configuration
12489           files are considered to be part of user interface and library
12490           does not handle them.
12491
12492           This change also changed a lot of structures, function naming etc.
12493           Most important change was that SilcClientWindow object was
12494           renamed to SilcClientConnection in the client library.  Created
12495           also new file lib/silcclient/ops.h.  Also added new files
12496           silc/local_command.[ch] and silc/client_ops.[ch].
12497
12498           All these changes were made to make it easier for user interface
12499           designers to create what ever user interface for the SILC client
12500           they want.
12501
12502           It is also expected that the server will be moved to lib
12503           directory as well and SILC Server Library will be created;
12504           sometimes in the future.
12505
12506         * Removed Local commands from lib/silccore/silccommand.h as
12507           they are application specific and new client library does not
12508           handle any of those anymore.
12509
12510         * Several functions moved to lib/silcutil/silcutilc.[ch] from
12511           old client implementation in silc/.
12512
12513         * Added support for callback functions in SILC_LOG_* macros.
12514           Application can now set its own callbacks that will be called
12515           instead of using the default functions that will always print
12516           the debug messages to stderr (or stdout).  Also, debugging can
12517           now be disabled by setting silc_debug to FALSE and re-enabled by
12518           setting it to TRUE.  Note, that logging will still work even
12519           if debugging is disabled.
12520
12521           New functions in lib/silcutil/silclog.[ch]: silc_log_set_callbacks,
12522           silc_log_reset_callbacks, silc_log_set_debug_callbacks and
12523           silc_log_reset_debug_callbacks.
12524
12525         * To enable debugging in silc client one must give now -d
12526           option on command line.
12527
12528         * Changed silc_schedule_init to automatically allocate task queues
12529           if they are not allocated before calling it.
12530
12531 Thu Sep  7 10:49:33 EEST 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
12532
12533         * Added GMP 3.1 into math library.
12534
12535 Sun Aug 20 21:27:26 EEST 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
12536
12537         * Added SILC_PACKET_REMOVE_CHANNEL_USER to remove a client from
12538           a channel in SILC network.  The packet is used by servers and
12539           routers to notify other routers that user has left a channel.
12540           This little feature was missing until now.  Added the feature
12541           to protocol specification as well.
12542
12543           Added functions: silc_server_send_remove_channel_user and
12544           silc_server_remove_channel_user into server.[ch].
12545
12546         * Added SILC_PACKET_REKEY and SILC_PACKET_REKEY_DONE into
12547           lib/silccore/silcpacket.h.  However, they are not implemented
12548           yet.
12549
12550 Sat Aug 19 23:04:16 EEST 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
12551
12552         * Fixed joining to a channel and sending channel messages
12553           between server and router.  The channel message sending should
12554           now work inside a cell.
12555
12556 Tue Jul 25 20:46:13 EEST 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
12557
12558         * Fixed the private message sending between server and router.
12559           The private message sending should now work inside a cell.
12560
12561         * Added silc_server_replace_id into server.[ch] to replace
12562           existing ID in the SILC network.
12563
12564         * Added silc_idlist_find_server_by, silc_idlist_replace_client_id
12565           and silc_idlist_replace_server_id into idlist.[ch] in server.
12566
12567 Mon Jul 24 18:33:31 EEST 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
12568
12569         * Fixed the server to server connections.  Server can again now
12570           connect to router.  Router to router connections probably does
12571           not work just yet.
12572
12573 Thu Jul 20 13:15:01 EEST 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
12574
12575         * Added dynamic protocol registering support.  Now protocols can
12576           registered and unregistered on the fly.  Patch by cras.
12577
12578 Wed Jul 19 19:08:46 EEST 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
12579
12580         * Added lib/contrib directory to hold routines that some platforms
12581           don't have but are needed by SILC.
12582
12583         * Added getopt.c, getopt1.c and getopt.h from GNU C library
12584           into lin/contrib to provide getopt() and getopt_long() for
12585           those who don't have it.
12586
12587 Tue Jul 18 20:41:20 EEST 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
12588
12589         * Added AWAY command to client.  When away message is set and
12590           client receives a private message packet the client automatically
12591           replies to the sender with the away message.
12592
12593         * Fixed a bug in lib/silcmath/mpbin.c: silc_mp_mp2bin.  This
12594           bug seemed to be the cause of recent problems when compiling
12595           with gcc-2.95.
12596
12597         * Added version detection support to SKE protocol specification
12598           and added the new changes to the SKE implementation as well.
12599           There were other minor changes in the SKE protocol as well.
12600
12601           Many changes in lib/silcske/silcske.[ch] and in
12602           lib/silcske/payload.[ch].
12603
12604         * Added ^U functionality, clear input line.  Patch from cras.
12605
12606 Mon Jul 17 23:33:26 EEST 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
12607
12608         * Mainly small bugfixes on core library.  Fixed some debugging
12609           logging and buffer overflow in silclog.c.
12610
12611         * Updated config.sub and config.guess on the distribution tree.
12612
12613 Sat Jul 15 15:33:48 EEST 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
12614
12615         * Added command lagging support in server. Client may execute
12616           commands now only once in two seconds.
12617
12618 Thu Jul 13 22:10:21 EEST 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
12619
12620         * Optimized packet reception. MAC computation and checking is now
12621           also more optimized.  A lot previously duplicated code is now
12622           used as generic by both client and server.
12623
12624         * Fixed key pair generation in clientutil.c
12625
12626 Wed Jul 12 18:28:07 EEST 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
12627
12628         * Added into lib/silccore/silcbufutil.[ch] new function;
12629           silc_buffer_realloc.
12630
12631         * Moved generic packet sending/encryption functions to
12632           lib/silccore/silcpacket.[ch] from client and server.  Some
12633           rewriting of the functions.
12634
12635         * Moved all generic packet reception/decryption functions to
12636           lib/silccore/silcpacket.[ch] from client and server.  The
12637           packet processing is now much cleaner in both client and server.
12638           These were major changes in both client and server.
12639
12640         * Created many common functions in server to do packet sending.
12641           Previously code were duplicated a lot, this has been removed
12642           with these changes.
12643
12644 Tue Jul 11 20:27:26 EEST 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
12645
12646         * Rewrote major parts of the ID cache system.  Don't know
12647           whether it is better now or not but at least the API is more
12648           cleaner now.
12649
12650         * Major rewrite on ID cache stuff on client because of the ID
12651           cache API changes.  Added idlist.c to client.
12652
12653         * Also major rewrite on ID cache stuff on server as well.
12654           Major rewrite of idlist.[ch]. SilcXXXList's are now named
12655           SilcXXXEntry's.  We won't keep anymore idlist specific pointers
12656           in hand, instead they are all put into the ID cache system now.
12657           All server_idlist_* routines uses ID cache now instead of
12658           traversing its own lists (those lists does not exist anymore).
12659           SilcIDList though still exists.  Also, SilcXXXEntry's are
12660           now pointers.
12661
12662 Sun Jul  9 15:19:24 EEST 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
12663
12664         * Finally made the SKE implementation compliant to the protocol
12665           specification.  All mp integers are now binary encoded as
12666           opposed being HEX encoded.
12667
12668         * Added lib/silcmath/mpbin.[ch].  Encoding mp intergers to and
12669           from binary data.
12670
12671         * Added into lib/silccore/silcutil.[ch] PEM encoding/decoding
12672           functions: silc_[encode/decode]_pem.  Also added function
12673           silc_encode_pem_file to PEM encode with newlines ('\n') for
12674           saving into a file.
12675
12676         * SILC public keys are now encoded either PEM or binary.  Same
12677           option is for private keys as well.  By default private keys
12678           are binary encoded and public keys PEM encoded.  Silly HEX
12679           encoding were removed.
12680
12681         * Added into lib/silccrypt/silchash.[ch] silc_hash_fingerprint
12682           function to create fingerprints.
12683
12684         * Fixed a bug in SHA1; does not change the original data anymore.
12685
12686         * Partly implemented INFO command on client and server side.
12687           Fixed CLEAR command.  Changes to SERVER command; show current
12688           server(s) when giving command without arguments.  Added
12689           VERSION command to client.
12690
12691         * Added check to server that unregistered connections cannot
12692           execute commands (unless it is specificly allowed).
12693
12694 Thu Jul  6 18:12:24 EEST 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
12695
12696         * Fixed screen refresh.
12697
12698         * Fixed channel joining bug from client.  On some circumstances
12699           client tried to join to a channel it had already joined.
12700
12701         * Added public key verification process into client's protocol.c.
12702           The client now verifies the public key from user and saves
12703           it into ~./silc/serverkeys/ directory.
12704
12705           Added into: clientutil.[ch]: silc_client_verify_server_key.
12706
12707         * Changed SKE protocol's silc_ske_initiator_finish function
12708           to accept callback function that verifies the received public
12709           key.  Removed old silc_ske_verify_public_key function.
12710
12711 Wed Jul  5 19:19:02 EEST 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
12712
12713         * Added into silcpkcs[ch]: silc_pkcs_public_key[_data]_set and
12714           silc_pkcs_private_key[_data]_set.
12715
12716         * Made the password and public authentication more cleaner in
12717           server's protocol.c.
12718
12719         * Removed historic and obsolete protocol `channel_auth' from
12720           both client and server.
12721
12722         * Removed wrong way of sending command status messages from
12723           server to client in server's command.c.  The old way violated
12724           protocol specification.
12725
12726           Changes to silccore/silccommand.[ch]: removed
12727           silc_command_encode_status_payload -> not needed anymore,
12728           changed silc_command_encode_payload_va to accept extra
12729           argument on variable argument list.  The argument type must
12730           now be provided to the function.  Also, added new function:
12731           silc_command_encode_reply_payload_va which is same as
12732           normal command_encode_payload_va except command status type
12733           is provided as extra argument.
12734
12735 Tue Jul  4 18:26:39 EEST 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
12736
12737         * Added ~./silc directory handling.  The directory includes the
12738           public and private keys for the client.
12739
12740           Added silc_client_check_silc_dir, silc_client_create_identifier
12741           and silc_client_load_keys.
12742
12743         * Implemented SILC protocol compliant public key.  Added public
12744           and private key saving to and loading from files.
12745
12746           Added into silcpkcs.[ch]: silc_pkcs_encode_identifier,
12747           silc_pkcs_public_key_encode[_data], silc_pkcs_public_key_decode,
12748           silc_pkcs_private_key_encode[_data], silc_pkcs_private_key_decode,
12749           silc_pkcs_public_key_alloc, silc_pkcs_public_key_free,
12750           silc_pkcs_private_key_alloc and silc_pkcs_private_key_free.
12751
12752           Implemented: silc_pkcs_save_[public/private]_key[_data] and
12753           silc_pkcs_load_[public/private]_key.
12754
12755 Mon Jul  3 18:51:27 EEST 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
12756
12757         * Added silc_server_get_route (route.[ch]) to get connection
12758           data for the fastest route for given ID.
12759
12760         * Implemented INVITE command on client and server.  The command
12761           were re-defined in the SILC Protocol Specification and the
12762           implementation now complies with the specification.
12763
12764         * Implemented PING command on client and server.
12765
12766         * Implemented NAMES command on client and server.  The server side
12767           supports currently only normal server not router server yet.
12768           Some changes to NAMES definition in SILC protocol specification.
12769
12770 Sun Jul  2 18:23:01 EEST 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
12771
12772         * Implemented LEAVE command on client and server.
12773
12774         * Previously deprecated SILC_PACKET_FORWARDED flag is now in use
12775           again.  This change was made to the protocol as well.  Server
12776           should not violate the protocol specification anymore.
12777
12778 Fri Jun 30 14:03:26 EEST 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
12779
12780         * Added SOCKS4 and SOCKS5 support to SILC client.  SOCKS5
12781           was tested.  SOCKS4 was not but should work anyway.