Fixed format string.
[silc.git] / CHANGES
1 Tue Aug  7 20:56:06 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
2
3         * Fixed alignment issues with 64-bit CPUs.  Affected files
4           are lib/silcutil/silcschedule.c and unix/silcunixschedule.c.
5
6         * Added "There are now xx nick's" to "are xx nicks".  Affected
7           file is apps/irssi/src/fe-common/silc/module-formats.c.
8
9 Sat Aug 4 18:37:22 EEST 2007 Pekka Riikonen <priikone@silcnet.org>
10
11         * Fixed USERS command user mode handling (integer overflow).
12           Affected file is lib/silcclient/command_reply.c.
13
14 Thu Jul 19 21:08:49 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
15
16         * Fixed big-endian issues from aes implementation.  Affected
17           files are lib/silccrypt/aes.c.
18
19         * Fixed lib/silcutil/silcatomic.h compilation on IA64.  Patch
20           from Jérémy Bobbio.
21
22         * Fixed public key identifier parsing to check lengths
23           correctly.  Affected file is lib/silccrypt/silcpk.c.
24
25 Wed Jul  4 08:06:38 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
26
27         * SILC Toolkit 1.1.2.
28
29         * SILC Client 1.1.2.
30
31 Mon Jul  2 17:28:47 CEST 2007  Pekka Riikonen <priikone@silcnet.org>
32
33         * In silc_client_free check that scheduler is allocated before
34           trying to free it.  Affected file is lib/silcclient/client.c.
35
36         * Fixed buffer overflow in NICK_CHANGE notify.  The destination
37           buffer for old nickname was too small.  Affected file is
38           lib/silclient/client_notify.c.
39
40 Sun Jul  1 19:15:15 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
41
42         * SILC Server 1.1 Beta1.
43
44 Sun Jul  1 12:40:06 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
45
46         * Added support for rekey with PFS when using CTR mode
47           encryption.  Affected file is lib/silcske/silcske.c.
48
49         * Added silc_idcache_move that can be used to move entries
50           between caches.  Affected files are
51           lib/silcapputil/silcidcache.[ch].
52
53         * Added better checks for invalid argument and notify payloads.
54           Affected files are lib/silccore/silcnotify.c and
55           silcargument.c.
56
57         * Fixed SILC_PACKET_FLAG_LONG_PAD bitmask value.  Affected
58           file lib/silccore/silcpacket.h.
59
60 Sat Jun 30 21:48:08 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
61
62         * Set the destination ID to packet stream as SKE responder
63           if ID was present in key exchange packet.  Affected file
64           is lib/silcske/silcske.[ch].
65
66         * Handle also zero timeouts in the scheduler notify callback
67           to avoid problems with SILC Plugin.  Affected file is
68           apps/irssi/src/silc/core/silc-core.c.
69
70 Thu Jun 28 19:19:13 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
71
72         * SILC Client 1.1.1.
73
74 Sun Jun 24 18:47:55 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
75
76         * SILC Toolkit 1.1.1.
77
78         * Compile sources with _GNU_SOURCE on Linux systems.  Affected
79           file is configure.ad.
80
81 Sun Jun 24 16:33:59 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
82
83         * Fixed Unix signal task dispatching to not lock the signals
84           when dispatching the callback to avoid deadlocks.  Affected
85           file is lib/silcutil/unix/silcunixschedule.c.
86
87 Sun Jun 24 14:43:21 CEST 2007  Jochen Eisinger <coffee@silcnet.org>
88
89         * Fix configure output for with-plugin.  Affected file is
90           apps/irssi/configure.ad
91
92 Tue Jun 19 17:05:48 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
93
94         * Added SILC_VERSION macro for checking package versions at
95           compile time.  Affected files are configure.ad,
96           includes/silc.h.in and includes/silcversion.h.in.
97
98 Mon Jun 18 23:47:22 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
99
100         * Use SILC_VERIFY to assert that silc_rwlock_wrlock can be
101           called only once per thread on Unix.  Affected file is
102           lib/silcutil/unix/silcunixthread.c.  Added same for mutex
103           as well.   Documented same on the API in 
104           lib/silcutil/silcmutex.h.
105
106         * Fixed USERS command reply write-lock unlocking.  Affected file
107           is lib/silcclient/command_reply.c.
108
109 Mon Jun 18 08:14:26 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
110
111         * Fixed silc_create_key_pair to check for valid identifier.
112           Affected file is lib/silcapputil/silcapputil.c.
113
114 Sun Jun 17 20:08:26 CEST 2007  Jochen Eisinger <coffee@silcnet.org>
115
116         * Rewrite signed public message handling, adopting the new
117           hilight interface.  Affected file is
118           apps/irssi/src/fe-common/silc/fe-silc-messages.c
119
120 Thu Jun 14 21:15:31 CEST 2007  Jochen Eisinger <coffee@silcnet.org>
121
122         * Fix off by one error when loading modules.  Affected file is
123           apps/irssi/src/core/modules-load.c
124
125         * Don't delete hilight entry (because it's just a pointer, not a
126           copy).  Affected file is 
127           apps/irssi/src/fe-common/silc/fe-silc-messages.c
128
129 Mon Jun 11 22:10:17 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
130
131         * Added __SILC_TOOLKIT_x_x_x macro to all Toolkit distribution
132           which can be used to check for Toolkit version in third-party
133           software.  Affected file is configure.ad, includes/silc.h.in.
134
135 Sun Jun 10 17:32:15 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
136
137         * Added support for channel@server channel name strings to
138           client library (SILC protocol version 1.3 change).  Affected
139           files are lib/silcclient/silcclient_entry.h, client_entry.c.
140
141         * Added full_nicknames and full_channel_names settings to
142           SilcClientParams that can be used to specify whether client
143           library returns full nickname and channel name strings.
144           Full strings are nick@server and channel@server.  Affected
145           file is lib/silcclient/client_entry.c and command.c.
146
147 Sat Jun  9 19:43:25 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
148
149         * Fixed unix connecting failure to return error code correctly.
150           Affected file is lib/silcutil/unix/silcunixnet.c.
151
152 Fri Jun  8 23:32:33 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
153
154         * Fixed SKE timeout double free crash.  Affected file is
155           lib/silcske/silcske.c.
156
157         * Fixed MIME multipart decoding buffer overflow.  Affected file
158           is lib/silcutil/silcmime.c.  Thanks to Matt Miller for patch.
159
160 Fri Jun  8 18:39:34 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
161
162         * Fixed connection auth protocol timeout crash.  Affected
163           file is lib/silcske/silconnauth.c.
164
165         * Fixed FSM machine finishing to check for existing threads
166           at the final free callback to allow time for the threads to
167           finish.  Affected file lib/silcutil/silcfsm.c.
168
169 Thu Jun  7 21:25:31 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
170
171         * Fixed silc_client_get_clients_local to check the nick's
172           server also if nick@server nickname string is given to the
173           function.  Affected file is lib/silcclient/client_entry.c.
174
175 Wed Jun  6 18:33:05 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
176
177         * Added notify callback to silc_schedule_init which can be used to 
178           set a notify callback for scheduler which is called when task is
179           added to scheduler or deleted from scheduler.  Affected file
180           is lib/silcutil/silcschedule.[ch].
181
182         * Dispatch timeout tasks after dispatching FD tasks if the timeout
183           was very short.  Affected file is lib/silcutil/silcschedule.c.
184
185         * Rewrote the SILC scheduler handling in SILC Client to not poll
186           every few msecs but to use the new notify callback.  Affected 
187           file is apps/irssi/src/silc/core/silc-core.c.
188
189         * Fixed SFTP client library read buffer size which was too small.
190           Affected file is lib/silcsftp/sftp_client.c.
191
192         * Fixed file transfer crash bug in /QUIT in SILC Client.  Close
193           the FTP sessions before quitting the client.  Affected file
194           is apps/irssi/src/silc/core/silc-servers.c.
195
196 Tue Jun  5 20:48:40 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
197
198         * Fixed silc_packet_get_ids to decode the IDs correctly.
199           Affected file is lib/silccore/silcpacket.c.
200
201         * Fixed silc_client_get_clients_local to parse correctly nickname
202           string that may have server name in it (nick@server) regardless
203           whether it was formatted nickname or not.  Affected file is
204           lib/silcclient/client_entry.c.
205
206 Mon Jun  4 22:02:53 CEST 2007  Jochen Eisinger <jochen@penguin-breeder.org>
207
208         * Only destroy sendbuffers, if they still exist (they cease to
209           exist during /upgrade).  Affected file is
210           apps/irssi/src/silc/core/silc-servers.c
211
212 Mon Jun  4 21:24:17 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
213
214         * Removed --enable-silc-plugin.  Added --with-silc-plugin.
215           Affected files are configure.ad, lib/configure.ad,
216           apps/irssi/configure.ad, apps/irssi/configure.in,
217           apps/irssi/scripts/Makefile.am,
218           apps/irssi/scripts/examples/Makefile.am,
219           apps/irssi/src/silc/core/silc/Makefile.am,
220           apps/irssi/src/fe-common/silc/Makefile.am.
221
222 Mon Jun  4 08:35:59 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
223
224         * SILC Client 1.1.
225
226 Sun Jun  3 14:00:09 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
227
228         * Fixed DESTDIR handling in make install.
229
230 Sat Jun  2 21:04:32 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
231
232         * SIM modules are not delivered to SILC CLient distribution
233           anymore.
234
235         * Changed default installation path from /usr/local/silc to
236           /usr/local for all distributions.
237
238         * Removed --with-etcdir and --with-docdir.  The etcdir is now
239           the system's default.  The Docdir is system's default.
240
241 Sat Jun  2 00:51:57 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
242
243         * If public key/private key loading fails set the return
244           pointer to NULL.  Affected file is lib/silccrypt/silcpkcs.c.
245
246         * If private key loading fails in silc_load_key_pair free the
247           loaded public key.  Affected file is
248           lib/silcapputil/silcapputil.c.
249
250         * Fixed key pair loading crash with SILC Plugin if key pair
251           loading fails.  Affected file is
252           apps/irssi/src/silc/core/silc-core.c.
253
254         * Fixed SILC Client help and script file installation path
255           to go to prefix/share/silc.  Affected files are
256           apps/irssi/src/scripts/Makefile.am and
257           apps/irssi/docs/help/Makefile.am.gen.
258
259 Thu May 31 16:49:13 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
260
261         * Fixed UTC offset minutes to be actually minutes.  Affected
262           file is lib/silcutil/silctime.c.
263
264 Thu May 31 09:40:56 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
265
266         * SILC Toolkit 1.1.
267
268         * Added support for checking for timezone and tm_gmtoff.
269           Affected files are configure.ad and lib/silcutil/silctime.c.
270
271 Wed May 30 18:46:34 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
272
273         * Added silc-toolkit.spec.in RPM spec file.
274
275 Mon May 28 23:21:39 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
276
277         * Fixed nickname formatting crash when updating existing
278           client entry.  Affected file is lib/silcclient/client_entry.c.
279
280         * Fixed MIME object encoding in attribute payload encoding.
281           Affected file is lib/silccore/silcattrs.c.
282
283 Mon May 28 09:02:26 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
284
285         * SILC Client 1.1 Beta6
286
287 Sun May 27 20:38:30 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
288
289         * Copy SILC Plugin's libfe_common_silc.so to libfe_silc.so so
290           that user's don't have to do it manually.  Affected file
291           is apps/irssi/src/fe-common/silc/core/Makefile.am.
292
293 Thu May 24 15:30:31 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
294
295         * SILC Toolkit 1.1 Beta4.
296
297         * Fixed channel and server entry freeing in client library.
298           Affected file is lib/silcclient/client_entry.c.
299
300         * Do not allow stopping client before it has been started.
301           Affected file is lib/silcclient/client.c.
302
303 Wed May 23 23:21:03 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
304
305         * Fixed formatted nickname renaming to rename also irssi's
306           nicklist (/NAMES etc).  Affected file is
307           apps/irssi/src/silc/core/client_ops.c.
308
309         * Fixed SILC Plugin crash when stopping client library before
310           it has been started.  Affected file is
311           apps/irssi/src/silc/core/silc-core.c.
312
313 Tue May 22 17:18:54 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
314
315         * For SILC Client and SILC Server check for 1.1 Toolkit
316           in configure.  Affected file is configure.ad.
317
318         * Added better library linking flags and orders for SILC Client.
319           Affected file is configure.ad, Makefile.defines_int.in and
320           apps/irssi/src/fe-text/Makefile.am
321
322 Mon May 21 08:26:38 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
323
324         * SILC Client 1.1 Beta5.
325
326 Sun May 20 18:34:22 CEST 2007  Jochen Eisinger <coffee@silcnet.org>
327
328         * Add hooks for Irssi 0.8.11 module functions.  Affected file
329           is apps/irssi/src/fe-common/silc/fe-common-silc.c
330
331 Sat May 19 14:46:36 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
332
333         * Fixed passphrase authentication with server.  Affected file
334           is lib/silcclient/client_connect.c.
335
336         * Fixed passphrase authentication as responder.  Affected file is
337           lib/silcske/silcconnauth.c.
338
339         * Changed SilcAskPassphrase and SilcGetAuthMeth callbacks to
340           return data as const.  Affected file is
341           lib/silcclient/silcclient.h.
342
343         * Fixed timeout calculation in Symbian scheduler.  Affected
344           file is lib/silcutil/symbian/silcsymbianscheduler.c.
345
346 Fri May 18 21:10:38 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
347
348         * Do not uninitialize u.m.threads atomic int in finish but in
349           free.  Fixes crash on any platform using atomic operations
350           using mutexes (like Symbian).  Affected file is
351           lib/silcutil/silcfsm.c.
352
353         * Fixes Symbian scheduler wakeup synchronization.  Affected file
354           is lib/silcutil/symbian/silcsymbianscheduler.c.
355
356 Fri May 18 18:10:36 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
357
358         * Fixed nickname formatting to handle already formatted nicknames
359           better.  Affected file is lib/silccilent/client_entry.c.
360
361         * Added "foo#2 appears as foo" support to SILC Client when user
362           leaves or quits and one formatted nickname remain.  Affected file 
363           is apps/irssi/src/silc/core/client_ops.c.
364
365         * Send SilcChannelEntry to application in SILC_NOTIFY_TYPE_SIGNOFF.
366           Affected file is lib/silcclient/client_notify.c.
367
368 Thu May 17 18:05:10 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
369
370         * Fixed silc_show_public_key to not free public key in case of
371           failure.  Affected file is lib/silcapputil/silcapputil.c.
372
373 Thu May 17 17:09:50 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
374
375         * SILC Toolkit 1.1 Beta3.
376
377         * Porting Toolkit to Symbian.  It should work while some sporadic
378           odd crashes remain.  However I was able to run mybot on SILCNet.
379           Basically tested scheduler, net routines, socket  routines,
380           threads and some other utility routines.  Affected files are
381           in lib/silcutil/symbian/.
382
383 Thu May 17 11:57:40 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
384
385         * Show realname and email address from public key when verifying
386           cached public keys with GETKEY.  Affected files are
387           apps/irssi/src/fe-common/module-formats.[ch] and
388           apps/irssi/src/silc/core/client_ops.c.
389
390 Wed May 16 20:41:04 CEST 2007  Jochen Eisinger <coffee@silcnet.org>
391
392         * Include SILC Plugin theme.  Affected file is apps/irssi/plugin.theme
393
394         * Include SILC Plugin /silc command help.  Affected file is
395           apps/irssi/docs/help/silc
396
397         * Create channels before joining them.  Affected file is
398           apps/irssi/src/silc/core/client_ops.c
399
400 Wed May 16 18:59:22 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
401
402         * Fixed channel private key listing with /key.  Affected file
403           is apps/irssi/src/silc/core/silc-channels.c.
404
405         * Fixed the public headers from anonymous structures.  Affected
406           files are lib/.
407
408         * Changed silc_buffer_*len macros to inline functions.  Affected
409           file is lib/silcutil/silcbuffer.h.
410
411 Wed May 16 10:21:45 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
412
413         * Fixed nickname format parsing in JOIN notify handling and
414           in WHOIS command reply.  Affected file is
415           apps/irssi/src/silc/core/client_ops.c.
416
417 Wed May 16 09:34:10 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
418
419         * SILC Client 1.1 Beta4.
420
421 Tue May 15 23:55:41 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
422
423         * Added SILC_VERIFY macro which is equivalent to SILC_ASSERT
424           but is compiled always in.  Affected file is 
425           lib/silcutil/silclog.h.
426
427         * Use SILC_VERIFY in FSM macros instead of SILC_ASSERT which is
428           not there in release builds.  Affected file is
429           lib/silcutil/silcfsm.h.
430
431 Tue May 15 21:19:09 CEST 2007  Jochen Eisinger <coffee@silcnet.org>
432
433         * SILC Client 1.1-beta3
434
435 Mon May 14 23:20:59 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
436
437         * Added silc_utf8_c2w and silc_utf8_w2c to do UTF-8 to widechar
438           and widechar to UTF-8 conversions.  Affected files are
439           lib/silcutil/silcutf8.[ch].
440
441 Mon May 14 19:45:14 CEST 2007  Jochen Eisinger <coffee@silcnet.org>
442
443         * Include a README for the SILC Plugin
444
445 Sun May 13 22:08:59 CEST 2007  Jochen Eisinger <coffee@silcnet.org>
446
447         * Adopt perl Makefiles for SILC Plugin.
448
449 Sun May 13 18:27:13 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
450
451         * Fixed client library initialization when the running callback
452           is not given to silc_client_init.  Affected file is
453           lib/silcclient/client.c.
454
455         * Fixed Symbian compilation problems around the tree.  Added
456           new Carbide.c++ project files to symbian/ directory.
457
458         * Fixed SilcLog API to work on Symbian.  On Symbian it doesn't
459           use any globals.  Affected files are lib/silcutil/silclog.c
460           and silclog_i.h.
461
462 Sun May 13 16:54:35 CEST 2007  Jochen Eisinger <coffee@silcnet.org>
463
464         * Fix several warnings in Irssi's Makefiles.
465
466 Sun May 13 12:16:30 CEST 2007  Jochen Eisinger <coffee@silcnet.org>
467
468         * Disable ASM if --with-pic was given.  Affected file is
469           lib/silccrypt/configure.ad
470
471 Fri May 11 19:10:54 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
472
473         * Wakeup scheduler in silc_fsm_continue and silc_fsm_next_later
474           in case they are called from a thread.  Affected file is
475           lib/silcutil/silcfsm.c.
476
477         * Fixed WIN32 thread creation to handle the Tls correctly.
478           Affected file is lib/silcutil/win32/silcwin32thread.c.
479
480 Thu May 10 18:29:18 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
481
482         * SILC Toolkit 1.1-beta2.
483
484 Thu May 10 18:21:10 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
485
486         * Fixed silc_net_tcp_connect crash on Unix and Win32.  Handle
487           the socket async operation correctly.  Changed that DNS lookup
488           is now done during connecting.  Affected files are
489           lib/silcutil/[unix|win32]/silc[unix|win32]net.c.
490
491         * Changed also silc_net_tcp_connect on Symbian to do DNS lookup.
492           Affected file is lib/silcutil/symbian/silcsymbiannet.c.
493
494         * Optimize silc_net_gethostbyname to check if the name is already
495           IP address.  Affected file is lib/silcutil/silcnet.c.
496
497 Wed May  9 19:51:28 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
498
499         * Print filename instead of empty function name in debug output
500           on WIN32.  Affected files are lib/silcutil/silclog_i.h and
501           silclog.c.
502
503         * Rewrote WIN32 SILC Scheduler.  It now handles non-blocking file 
504           descriptors and sockets better.  Though, room for optimization
505           remains.  Affected file is lib/silcutil/win32/silcwin32schedule.c.
506
507         * Removed silc_net_win32_[init|uninit].  They are called now
508           automatically when SILC Scheduler is allocated.  Wrote IPv4
509           address parser because inet_addr seemed not to work on my WIN32.
510           Affected file is lib/silcutil/win32/silcwin32net.c.
511
512         * Improved socketstream.h and stream.h documentation.
513
514 Tue May  8 18:13:38 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
515
516         * Changed private message waiting API in client library to make
517           it work better with multiple waiting threads.  The waiting is
518           not always per client entry instead of per connection.  Affected
519           files are lib/silcclient/client_prvmsg.c, client.h and
520           silcclient.h.
521
522         * Changed silc_packet_wait_init function to accept the the expected
523           Source ID of the packet as argument.  If specified only packets
524           with the specified types and Source ID are delivered.  Affected
525           files are lib/silccore/silcpacket.[ch].
526
527         * Fixed file transfer disconnection crash when closing the session
528           directly in the monitor callback after disconnection.  Affected
529           file is lib/silcclient/client_ftp.c.
530
531         * Make Toolkit compile on WIN32.  Affected files in win32/
532           and in lib/silcutil/win32/.
533
534         * Changed silc_compare_timeval to return negative, zero or
535           positive instead of just TRUE or FALSE.  This fixes 0 timeout
536           task dispatching on Windows.  Affected files are
537           lib/silcutil/silctime.[ch] and silcschedule.c.
538
539 Mon May  7 18:18:48 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
540
541         * Fixed CMODE channel auth public key retrieval.  Affected
542           file is lib/silcclient/command.c.
543
544         * Fixed CMODE command reply to return channel public keys
545           correctly.  Affected files are lib/silcclient/command_reply.c
546           and client_channel.c.
547
548 Sun May  6 12:43:19 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
549
550         * Added current channel key cipher name and HMAC name to
551           SilcChannelEntry.  Fixed channel private key creation.
552           Affected files are lib/silcclient/client_channel.c,
553           client_entry and silcclient_entry.h.
554
555         * Allow formatted nicknames as input to silc_client_get_clients
556           and silc_client_get_clients_whois.  Affected file is
557           lib/silcclient/client_entry.c.
558
559         * Fixed silc_message_payload_free crash.  Affected file is
560           lib/silccore/silcmessage.c.
561
562         * Added SILC_STATUS_ERR_NO_SUCH_PUBLIC_KEY to
563           lib/silccore/silcstatus.h.
564
565 Thu May  3 18:07:50 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
566
567         * Imported libtommath 0.41.  Renamed all mp_* functions to
568           tma_mp_* functions to avoid rare linking problems on systems
569           with mp_* functions.  Affected files are in lib/silcmath/.
570
571 Wed May  2 17:46:25 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
572
573         * SILC Toolkit 1.1 Beta1.
574
575 Wed May  2 11:38:17 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
576
577         * Set the server and router operator modes to local entry after
578           successful OPER or SILCOPER commands.  Affected file is
579           lib/silcclient/command_reply.c.
580
581 Tue May  1 14:17:06 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
582
583         * Ported SILC Socket Stream API, SILC Net API, SILC Schedule API,
584           and other smaller APIs to WIN32.  Affected files are in
585           lib/silcutil/win32/.
586
587         * Changed the various regex APIs as generic code in util library.
588           Affected files are lib/silcutil/silcstrutil.[ch].
589
590 Sat Apr 28 13:47:47 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
591
592         * Ported SILC Server to the new Toolkit API, working towards
593           SILC Server 1.1.  Affected files are in apps/silcd/.
594
595         * Added silc_skr_del_public_key, silc_skr_[ref|unref]_public_key
596           to lib/silcskr/silcskr.[ch].
597
598         * Fixed SILC public key copying to copy the identifier also.
599           Affected file is lib/silccrypt/silcpk.c.
600
601         * Added silc_packet_error_string to lib/silccore/silcpacket.[ch].
602
603         * Fixed OPER and SILCOPER passphrase asking in Client library.
604           Affected file is lib/silcclient/command.c.
605
606 Tue Apr 24 17:55:24 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
607
608         * Fixed command queue enabling after connecting to server.
609           The comparisons was from after changing to silc_utf8_strcasecmp.
610           Affected file is apps/irssi/src/silc/core/silc-servers.c.
611
612         * Fixed nickname setting with own client entry with 1.3 protocol
613           version server.  Affected file lib/silcclient/client_register.c.
614
615         * Ignore error notify for local client entry.  Affected file is
616           lib/silcclient/client_notify.c.
617
618         * Implemented responder rekey to SKE library.  Affected files are
619           lib/silcske/silcske.[ch].
620
621         * Fixed connection auth protocol completion sending.  Affected
622           file lib/silcske/silcconnauth.c.
623
624 Mon Apr 23 17:20:01 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
625
626         * Do not call TCP network listener callback with any error
627           status, as documented.  Affected file is
628           lib/silcutil/unix/silcunixnet.c.
629
630 Sun Apr 22 21:13:28 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
631
632         * Preliminary SILC Server 1.1 changes committed to apps/silcd/.
633
634         * Added SILC_SKR_USAGE_SERVICE_AUTHORIZATION SKR key usage type.
635           Changed silc_skr_find to have SilcSchedule argument and removed
636           it from silc_skr_[alloc|init].  Affected files are
637           lib/silcskr/silcskr.[ch].
638
639         * Allow NULL id for silc_idcache_add.  Affected file is
640           lib/silcapputil/silcidcache.c.
641
642         * Added silc_packet_stream_is_valid, silc_packet_get_ids and
643           silc_packet_engine_get_streams to lib/silccore/silcpacket.[ch].
644           Fixed also channel message encryption with router-to-router
645           packets.
646
647         * Added silc_id_str2id2 to lib/silccore/silcid.[ch].
648
649         * Added silc_net_get_error_string, silc_net_listener_get_ip and
650           silc_net_listener_get_hostname to lib/silcutil/silcnet.[ch].
651
652 Tue Apr 10 15:55:42 CEST 2007  Jochen Eisinger <coffee@silcnet.org>
653
654         * Add option --enable-silc-plugin.  Affected files are
655           apps/irssi/configure.{ad,in}
656
657         * Only compile the SILC Plugin if required.  Affected files are
658           apps/irssi/src/Makefile.am, apps/irssi/src/fe-common/Makefile.am
659
660         * Conditionally build the SILC Plugin.  Affected files are
661           apps/irssi/src/silc/core/Makefile.am,
662           apps/irssi/src/fe-common/silc/Makefile.am
663
664         * Backout delayed protocol exit and replace with a lame busy
665           wait.  Affected files are apps/irssi/src/fe-text/silc.c,
666           apps/irssi/src/silc/core/silc-core.c
667
668         * Fix key generation for SILC Plugin.  Affected file
669           apps/irssi/src/silc/core/clientutil.c
670
671 Tue Apr 10 12:40:19 CEST 2007  Jochen Eisinger <coffee@silcnet.org>
672
673         * Only pass -rpath to libtool when building shared libraries.
674           Affected file lib/Makefile.ad
675
676         * Removing the stray "s" in configure.ad
677
678 Sat Mar 24 19:13:58 CET 2007  Jochen Eisinger <coffee@silcnet.org>
679
680         * Redraw the screen after creating a new key.  Affected file
681           apps/irssi/src/silc/core/clientutil.c
682
683 Sun Mar 18 15:54:10 EET 2007  Pekka Riikonen <priikone@silcnet.org>
684
685         * Added SILC Client setting /set nickname_format that specifies
686           the nickname format string.  Changed default nickname format
687           string to "%n#%a".  Affected file is
688           apps/irssi/src/silc/core/silc-core.c, apps/irssi/silc.conf.
689
690         * Fixed nickname parsing with WHOIS command to accept formatted
691           nicknames.  Changed the silc_client_get_clients_local to allow
692           the searched nickname to be formatted nickname.  Removed %s and
693           %S nickname formatters.  Affected files are in lib/silcclient/.
694
695         * Added silc_client_nickname_parse to Client library API.  Affected
696           file is lib/silcclient/silcclient.h.
697
698         * Fixed nickname parsing and resolving with /MSG, /FILE and /KEY
699           commands.  Affected file are
700           apps/irssi/src/silc/core/silc-servers.c and silc-channels.c.
701
702 Sat Mar 17 19:07:15 CET 2007  Jochen Eisinger <coffee@silcnet.org>
703
704         * Incorporate SILC Plugin patches.  Affected files are
705           apps/irssi/src/fe-common/silc/module-formats.{c,h},
706           apps/irssi/src/silc/core/clientutil.{c,h},
707           apps/irssi/src/silc/core/silc-core.c,
708           apps/irssi/src/silc/core/silc-chatnets.{c,h},
709           apps/irssi/src/fe-common/silc/fe-silcnet.c, and
710           apps/irssi/src/fe-common/silc/module.h
711
712 Wed Mar 14 17:31:28 EET 2007  Pekka Riikonen <priikone@silcnet.org>
713
714         * In notify handling resolve user entries many times if the
715           resolving timedout.  Affected file lib/silcclient/client_notify.c.
716
717         * silc_client_get_clients_local do not return any invalid entries.
718           Affected file is lib/silcclient/client_entry.c.
719
720         * Do not print "there are now xx user on this channel" for users
721           that actually aren't anymore on the channel.  Affected file
722           is apps/irssi/src/client_ops.c.
723
724 Sun Mar 11 17:43:18 CET 2007  Jochen Eisinger <coffee@silcnet.org>
725
726         * When joining channels with a password given in the config file,
727           use it.  Also use it when cycling (it would be better to get
728           the password from the server, but this isn't possible in SILC).
729           Affected files apps/irssi/src/silc/core/silc-servers.c,
730           apps/irssi/src/silc/core/silc-channels.c
731
732 Sun Mar 11 15:22:42 CET 2007  Jochen Eisinger <coffee@silcnet.org>
733
734         * Import perl script for sign_messages from silc-plugin.  Affected
735           file apps/irssi/scripts/silc.pl
736
737 Sun Mar 11 15:19:10 CET 2007  Jochen Eisinger <coffee@silcnet.org>
738
739         * Only wait for a nick on connecting, when it differs
740           (not counting case) from the username.  Affected file
741           is apps/irssi/src/silc/core/silc-servers.c
742
743 Sun Mar 11 13:50:53 CET 2007  Jochen Eisinger <coffee@silcnet.org>
744
745         * Use time settings for lag settings.  Affected file is
746           apps/irssi/src/silc/core/silc-lag.c
747
748 Tue Feb 27 17:07:34 EET 2007  Pekka Riikonen <priikone@silcnet.org>
749
750         * Added silc_thread_yield.  Affected file is
751           lib/silcutil/silcmutex.h.
752
753 Wed Feb 21 17:01:01 EET 2007  Pekka Riikonen <priikone@silcnet.org>
754
755         * Fixed WHOIS command and requested attributes handling in
756           client library.  Affected files are lib/silcclient/command.c
757           and lib/silcclient/client_attrs.c.
758
759         * Fixed silc_time_value to actually work.  Added new function
760           silc_timezone.  Affected files are lib/silcutil/silctime.[ch].
761
762 Tue Feb 20 08:31:28 EET 2007  Pekka Riikonen <priikone@silcnet.org>
763
764         * SILC Client 1.1 beta2.
765
766 Mon Feb 19 16:06:27 EET 2007  Pekka Riikonen <priikone@silcnet.org>
767
768         * Fixed client to properly abort TCP stream creation when
769           giving /QUIT.  Affected file
770           apps/irssi/src/silc/core/silc-servers.c.
771
772         * Fixed several connecting aborting crashes from the client
773           library, packet engine and socket stream.  Affected files
774           are in lib/silclient/, lib/silccore/silcpacket.c and
775           lib/silcutil/unix/silcunixsocketstream.c.
776
777         * Fixed private key export double free crash in key generation.
778           Affected file is lib/silccrypt/silcpk.c.
779
780         * Fixed FSM event waiting when there are multiple signallers
781           and the waiter goes away after the first signal.  Affected
782           file in lib/silcutil/silcfsm.c.
783
784 Sun Feb 18 22:02:22 EET 2007  Pekka Riikonen <priikone@silcnet.org>
785
786         * Fixed FSM event signalling to check if the waiter has gone
787           away already.  Affected file is lib/silcutil/silcfsm.c.
788
789         * Fixed counter mode encryption/decryption to handle non-padded
790           SILC packets correctly.  The silc_cipher_set_iv now
791           in counter mode resets for a new block.  Affected files are
792           in lib/silcske/, lib/silccrypt/, lib/silcpacket/.
793
794 Sun Feb 18 12:15:21 EET 2007  Pekka Riikonen <priikone@silcnet.org>
795
796         * SILC Client 1.1 beta1.
797
798         * Memory leak fixes around the libraries.
799
800 Fri Feb 16 16:53:16 EET 2007  Pekka Riikonen <priikone@silcnet.org>
801
802         * Added better check for epoll() in configure.  Affected file
803           is lib/configure.ad.
804
805 Thu Feb 15 16:50:34 EET 2007  Pekka Riikonen <priikone@silcnet.org>
806
807         * Fixed per scheduler data input buffer in packet engine.  Use
808           list of inbufs instead of just one so that multiple streams
809           can do partial reads to different buffers.  Affected file is
810           lib/silccore/silcpacket.c.
811
812         * Fixed WATCH notify handling in client library.  Affected file
813           is lib/silcclient/client_notify.c.
814
815 Wed Feb 14 17:05:38 EET 2007  Pekka Riikonen <priikone@silcnet.org>
816
817         * Fixed packet wrapper stream API to support encoder/decoder
818           for packets, and to handle partial reading correctly.  Fixed
819           also inbuf size checking in reading to have enough space before
820           reading.  Affected files are lib/silccore/silcpacket.[ch].
821
822         * Rewrote file transfer in client library.  Affected files are
823           in lib/silcclient/.
824
825         * Added TCP/UDP listener (internal) API to client library to have
826           generic way of dealing with listeners.  Fixed Key Agreement and
827           file transfer to use it.  Affected files are in lib/silcclient/.
828
829         * Fixed SKE to process SUCCESS packets synchronously and to call
830           completion synchronously.  Affected file is lib/silcske/silske.c.
831
832         * Fixed pthread rwlock detection.  Affected file includes/silc.h.in.
833
834         * Implemented SILC_ATTRIBYUTE_PHONE_NUMBER.  Affected files are
835           lib/silccore/silcattrs.[ch].  SILC Protocol version 1.3 change.
836
837 Fri Feb  2 22:24:11 EET 2007  Pekka Riikonen <priikone@silcnet.org>
838
839         * Added support for SILC protocol version 1.3 NEW_CLIENT packet
840           to client library.  Affected file is
841           lib/silcclient/client_register.c.
842
843         * Serialize NICK and JOIN commands to avoid problems locally
844           with changing ID while joining to channel.  Affected file is
845           lib/silcclient/command.c.
846
847         * Fixed entry resolving while handling incoming JOIN notify.
848           Handle properly cases, in re-processing of notify packets, where
849           the IDs may become invalid while resolving the entry (like nick
850           change).  Entry is invalid if it doesn't have nickname, and such
851           entries are not delivered to application anymore.  These fixes
852           problems of not seeing JOINs when remote user changes nickname
853           at the same time.  Affected files are in lib/silcclient/.
854
855 Thu Feb  1 18:35:58 EET 2007  Pekka Riikonen <priikone@silcnet.org>
856
857         * Added support for computing message payload MAC in new way
858           (SILC Protocol version 1.3).  Bakcwards support for old way
859           remains.  Affected files are lib/silccore/silcmessage.[ch].
860
861 Sat Jan 27 22:37:30 EET 2007  Pekka Riikonen <priikone@silcnet.org>
862
863         * Added SilcRwLock API, a read/write lock.  Affected files are
864           lib/silcutil/silcmutex.h and in lib/silcutil/[unix|win32|symbian]/.
865
866 Wed Jan 24 18:55:21 EET 2007  Pekka Riikonen <priikone@silcnet.org>
867
868         * Merged Irssi SVN (irssi 0.8.11).  Affected files in apps/irssi/.
869
870 Tue Jan 23 16:05:27 EET 2007  Pekka Riikonen <priikone@silcnet.org>
871
872         * The silc_schedule_set_listen_fd now returns boolean value.
873           Fixed FD task adding to check correctly for already added
874           FD tasks.  Added stricter error checking for FD scheduling
875           with epoll().  Affected files are lib/silcutil/silcschedule.[ch]
876           and lib/silcutil/unix/silcunixschedule.c.
877
878         * The silc_stream_set_notifier now returns boolean value.  Changed
879           all streams to support and check for the error condition.
880           Affected files are in lib/silcutil/.
881
882         * Fixed SKE library session aborting and deletion.  Affected
883           file are lib/silcske/silcske.c.
884
885 Tue Jan 16 18:22:08 EET 2007  Pekka Riikonen <priikone@silcnet.org>
886
887         * Implemented PKCS #1 with appendix with hash OID in the
888           signature.  Affected files are lib/silccrypt/silcpkcs1.[ch],
889           lib/silccrypt/silchash.[ch] and
890           lib/silcasn1/silcasn1[_encode|decode].[ch].
891
892 Sun Jan 14 23:12:41 EET 2007  Pekka Riikonen <priikone@silcnet.org>
893
894         * Added support for Version (V) SILC public key identifier.
895           Affected files are lib/silccrypt/silcpk.[ch].
896
897 Tue Jan  9 19:37:51 EET 2007  Pekka Riikonen <priikone@silcnet.org>
898
899         * Rewrote connection auth request in client library.  It is now
900           done automatically by the library and the resolved method given
901           as a hint to get_auth_method client operation.  Affected files
902           are lib/silcclient/.
903
904 Wed Jan  3 18:06:33 EET 2007  Pekka Riikonen <priikone@silcnet.org>
905
906         * Added silc_packet_stream_wrap into lib/silccore/silcpacket.[ch].
907           It can be used to wrap SilcPacketStream into SilcStream.
908
909         * Fixed %p formatting from silc_snprintf.  Affected file is
910           lib/silcutil/silcsnprintf.c.
911
912         * Ported SFTP library to new utility library.  Ported also
913           the SFTP testers.  Affected files in lib/silcsftp/.
914
915 Tue Jan  2 17:18:46 EET 2007  Pekka Riikonen <priikone@silcnet.org>
916
917         * Added lib/silcutil/silcsnprintf.[ch].  Added in addition
918           of silc_snprintf, silc_vsnprintf, silc_asprintf and
919           silc_vasprintf.
920
921 Sat Dec 30 23:23:17 EET 2006  Pekka Riikonen <priikone@silcnet.org>
922
923         * Added preliminary Symbian support.  Changes around the source
924           tree.  The symbian/ directory now includes Carbide.c++ project
925           files to compile the sources.
926
927         * Added silc_snprintf.  Affected files are
928           lib/silcutil/silcstrutil.[ch].
929
930 Thu Dec 21 18:01:51 EET 2006  Pekka Riikonen <priikone@silcnet.org>
931
932         * Changed SILC_FSM_[CONTINUE|YIELD|WAIT|FINISH] enums to
933           macros.  SILC_FSM_CONTINUE macro now immediately calls the
934           next state instead of first returning back to FSM.  Helps
935           in debugging crashes etc.
936
937           Removed FSM Semaphores.  Introduced FSM Event which is
938           asynchronous event.   Affected files are in lib/.
939
940         * Added epoll(7) support to SILC Scheduler.  It is used by default
941           if it is available.  Affected files are
942           lib/silcutil/silcschedule.[ch],
943           lib/silcutil/unix/silcunixschedule.c.
944
945 Tue Dec 19 20:39:35 EET 2006  Pekka Riikonen <priikone@silcnet.org>
946
947         * Added CTR mode to AES.  Simplified cipher implementation API
948           more.  Affected files are in lib/silccrypt/.
949
950 Sun Dec 17 16:46:55 EET 2006  Pekka Riikonen <priikone@silcnet.org>
951
952         * Removed `detach' client operation.  The detachment data is
953           now delivered in SILC_COMMAND_DETACH command reply to
954           application.  Affected file in lib/silcclient/.
955
956         * Rewrote resuming/detaching in client library.
957
958         * Added boolean encryption indicator for silc_cipher_set_key.
959           Affected files lib/silccrypt/silccipher.[ch].
960
961 Wed Dec 13 18:05:50 EET 2006  Pekka Riikonen <priikone@silcnet.org>
962
963         * Added silc_likely and silc_unlikely macros for GCC branch
964           prediction optimizations.  Affected file lib/silcutil/silctypes.h.
965
966         * Added assembler AES optimization.  Cleaned up the SILC Cipher
967           implementation API.  Affected files are in lib/silccrypt/.
968
969 Tue Dec 12 18:56:14 EET 2006  Pekka Riikonen <priikone@silcnet.org>
970
971         * Changed back the SILC_FSM_THREAD_WAIT operation to not
972           continue to next state if thread is finished already.  That
973           check is not done anymore.  Affected files are
974           lib/silcutil/silcfsm.[ch].
975
976 Sun Dec 10 13:54:52 EET 2006  Pekka Riikonen <priikone@silcnet.org>
977
978         * Removed silc_packet_[get|set]_ciphers and
979           silc_packet_[get|set]_hmacs.  Added silc_packet_set_keys that
980           handle REKEY_DONE packet sending in rekey.  Affected files
981           are lib/silccore/silcpacket.[ch].
982
983         * Added silc_fsm_is_started.  Affected files are
984           lib/silcutil/silcfsm.[ch].
985
986         * Added settings sign_channel_message, sign_private_message
987           and key_exchange_rekey_pfs to SILC Client.  Added UDP transport
988           support for key agreement in /KEY command. Affected files
989           in apps/irssi/src/silc/core/.
990
991         * During SILC Client initialization forward log messages to
992           stderr.   Affected files in apps/irssi/src/silc/core/.
993
994 Thu Dec  7 19:07:21 EET 2006  Pekka Riikonen <priikone@silcnet.org>
995
996         * Added silc_ske_get_key_material.  Affected files are
997           lib/silcske/silcske.[ch].
998
999         * Added silc_packet_stream_is_udp.  Affected files are
1000           lib/silccore/silcpacket.[ch].
1001
1002         * Added SKE packet retransmission support with UDP transport.
1003           Affected file is lib/silcske/silcske.c.
1004
1005 Sun Dec  3 22:00:12 EET 2006  Pekka Riikonen <priikone@silcnet.org>
1006
1007         * Added silc_socket_stream_is_udp.  Affected file is
1008           lib/silcutil/silcsocketstream.[ch].
1009
1010         * Added UDP transport support to packet engine.  Affected file
1011           is lib/silccore/silcpacket.c.
1012
1013         * Added silc_socket_stream_is_udp.  Affected file is
1014           lib/silcutil/silcsocketstream.[ch].
1015
1016 Sat Nov 18 11:33:03 EET 2006  Pekka Riikonen <priikone@silcnet.org>
1017
1018         * Added silc_packet_send_va[_ext] to send variable argument
1019           formatted buffers.  Affected files lib/silcore/silcpacket.[ch].
1020
1021         * Timeout freelist garbage collection added to scheduler.
1022           Affected file lib/silcutil/silcschedule.c.
1023
1024 Thu Nov  9 18:12:15 EET 2006  Pekka Riikonen <priikone@silcnet.org>
1025
1026         * Added silc_show_public_key_file to
1027           lib/silcapputil/silcapputil.[ch].
1028
1029         * Added SILC_STR_ADVANCE support for buffer unformatting.
1030           Affected file lib/silcutil/silcbuffmt.c.
1031
1032 Tue Nov  7 18:04:36 EET 2006  Pekka Riikonen <priikone@silcnet.org
1033
1034         * Added silc_string_split to lib/silcutil/silcstrutil.[ch].
1035
1036         * Added silc_mutex_assert_locked to lib/silcutil/silcmutex.h.
1037
1038         * silc_fsm_continue[_sync] now cancels erlier timeout set with
1039           silc_fsm_next_later.  Affected file lib/silcutil/silcfsm.c.
1040
1041 Sat Nov  4 21:50:37 EET 2006  Pekka Riikonen <priikone@silcnet.org
1042
1043         * Added SILC_STR_FUNC to buffer format API.  Affected files
1044           are lib/silcutil/silcbuffmt.[ch].
1045
1046         * Added silc_buffer_[s]enlarge to lib/silcutil/silcbuffer.h.
1047
1048         * No more memory allocation for message payload parsing.
1049           Pre-allocated buffer can be used with message payload encoding.
1050           Affected files lib/silccore/silcmessage.[ch].
1051
1052 Fri Oct 27 21:01:26 EEST 2006  Pekka Riikonen <priikone@silcnet.org
1053
1054         * Added silc_buffer_sunformat and silc_buffer_sunformat_vp
1055           to silcutil/silcbuffmt.[ch].
1056
1057 Sun Oct 22 13:03:07 EEST 2006  Pekka Riikonen <priikone@silcnet.org
1058
1059         * Added SILC_STR_BUFFER to format and unformat SilcBuffer.
1060           Affected file lib/silcutil/silcbuffmt.[ch].
1061
1062         * Removed silc_schedule_signal_[un]register and
1063           silc_schedule_signal_call.  Added silc_schedule_task_add_signal
1064           to add signal task.  Only one callback per signal may be
1065           added.  The signals are now automatically called back to
1066           caller.  Affected files lib/silcutil/silcschedule.[ch] and
1067           silcutil/[unix/win32]/silc[unix/win32]schedule.c.
1068
1069         * Added silc_time_msec and silc_time_usec to silcutil/silctime.[ch].
1070
1071         * Added SilcSKEParams for SKE parameters and simplied even more
1072           the SKE interface.  Affected files are lib/silcske/silcske.[ch].
1073           Added support for IV included and session port handling with
1074           UDP/IP connections.
1075
1076         * Added Secure ID (SID) support with IV Included flag (for UDP/IP)
1077           in lib/silccore/silcpacket.[ch].  Added silc_packet_set_sid
1078           which is called after every rekey when IV Included flag is used.
1079           See SILC specifications for details.
1080
1081 Thu Oct 19 10:03:03 EEST 2006  Pekka Riikonen <priikone@silcnet.org
1082
1083         * Added lib/silcapputil and moved SILC application specific
1084           utility routines from the generic util library lib/silcutil
1085           to the new library.  Removed lib/silcidcache and moved that
1086           to lib/silcapputil as well.
1087
1088 Tue Sep 19 00:14:11 EEST 2006  Pekka Riikonen <priikone@silcnet.org>
1089
1090         * Added SILC_STR_ADVANCE.  Affected file is
1091           lib/silcutil/silcbuffmt.[ch].
1092
1093         * The silc_buffer_strformat preserves buffer locations now.
1094
1095         * Added lib/silcutil/silcatomic.h for atomic operations.
1096
1097 Sat Sep 16 11:23:06 EEST 2006  Pekka Riikonen <priikone@silcnet.org>
1098
1099         * Added lib/silchttp, SILC HTTP server, a very simple HTTP
1100           server.
1101
1102         * Fixed MIME deocing when data portion is not present.
1103           Affected file lib/silcutil/silcmime.c.
1104
1105 Wed Jul 19 12:06:38 EEST 2006  Pekka Riikonen <priikone@silcnet.org>
1106
1107         * Moved lib/silccore/silcidcache.[ch] to lib/silcutil/.
1108
1109         * Added IV Included support to packet routines, to allow
1110           packet sending and receiving on UDP/IP.  Affected files are
1111           lib/silccore/silcpacket.[ch].
1112
1113         * Added SILC_FSM_YIELD.  Affected files lib/silcutil/silcfsm.[ch].
1114
1115 Tue Jul 18 20:10:28 EEST 2006  Pekka Riikonen <priikone@silcnet.org>
1116
1117         * Added UDP support to network and socket stream library.
1118
1119 Sat Jun 24 22:33:18 EEST 2006  Pekka Riikonen <priikone@silcnet.org>
1120
1121         * Added conditional variables.  New files are
1122           lib/silcutil/silcondvar.h and platform specific implementations.
1123
1124 Thu Jan  5 20:02:31 CET 2006 Patrik Weiskircher <pat@icore.at>
1125
1126         * make sure session->hostname and session->port are valid before the
1127           application callback is done, since things will go wrong if the
1128           application immediately calls silc_client_file_receive. Affected
1129           file lib/silcclient/client_ftp.c.
1130           Patch received from Stefan Siegel <stesie@brokenpipe.de>, thanks!
1131
1132 Fri Dec 30 22:54:21 EET 2005  Pekka Riikonen <priikone@silcnet.org>
1133
1134         * New SILC PKCS API enabling support for other public keys
1135           and certificates, lib/silccrypt/silcpkcs.[ch], silcpk.[ch].
1136
1137         * Separated SILC Public Key Payload routines from the PKCS API
1138           to lib/silccore/silcpubkey.[ch].
1139
1140 Wed Dec 28 13:55:22 EET 2005  Pekka Riikonen <priikone@silcnet.org>
1141
1142         * Added SILC Key Repository library, lib/silcskr.
1143
1144         * Added SILC Server library, lib/silcserver.
1145
1146 Mon Dec 19 18:04:24 EET 2005  Pekka Riikonen <priikone@silcnet.org>
1147
1148         * MIME objects in attributes now use SilcMime.  Affected files
1149           are lib/silccore/silcattrs.[ch].
1150
1151 Sat Dec 17 20:13:31 EET 2005  Pekka Riikonen <priikone@silcnet.org>
1152
1153         * Synchronize semaphore posting for real threads in FSM.
1154           Affected files are lib/silcutil/silcfsm.c, silcfsm_i.h.
1155
1156 Mon Nov 28 17:06:54 EET 2005  Pekka Riikonen <priikone@silcnet.org>
1157
1158         * Added silc_file_set_nonblock.  Affected file is
1159           lib/silcutil/silcfileutil.h.
1160
1161         * Added silc_fd_stream_file to lib/silcutil/silcfdstream.[ch].
1162
1163 Sat Nov 26 16:13:40 EET 2005  Pekka Riikonen <priikone@silcnet.org>
1164
1165         * FSM based implementation of SILC SKE.  Simpler interface also.
1166           Affected files are in lib/silcske/.
1167
1168         * Added SilcBool type.  Affected file lib/silcutil/silctypes.h.
1169
1170 Sat Nov 19 17:34:51 EET 2005  Pekka Riikonen <priikone@silcnet.org>
1171
1172         * Added SilcMime API to lib/silcutil/silcmime.[ch].  The old
1173           silc_mime_parse is available but deprecated.
1174
1175         * Check that packet is valid when processing key exchange,
1176           authentication and rekey protocols.  Fixes a crashbug.
1177           Affected files are apps/silcd/protocol.c and
1178           lib/silcclient/protocol.c.
1179
1180         * Added SILC_HASH_MAXLEN to lib/silccrypt/silchash.h, and changed
1181           all hash buffers to use that instead of fixed values.
1182
1183 Wed Nov 16 15:47:12 EET 2005  Pekka Riikonen <priikone@silcnet.org>
1184
1185         * Added SHA-256 to crypto library.  The SHA-256 takes now
1186           precedence over SHA-1.
1187
1188 Thu May 26 20:31:06 EEST 2005  Pekka Riikonen <priikone@silcnet.org>
1189
1190         * Check for valid return value from regcomp.  Affected file
1191           lib/silcutil/unix/silcunixutil.c.
1192
1193 Tue May 10 23:11:17 EEST 2005  Pekka Riikonen <priikone@silcnet.org>
1194
1195         * Fixed silc_hash_uint to work with integers.  Affected
1196           file lib/silcutil/silcutil.c.
1197
1198 Tue May 10 15:11:53 EEST 2005  Pekka Riikonen <priikone@silcnet.org>
1199
1200         * Rewritten SILC Log API.  Affected files lib/silcutil/silclog.[ch].
1201
1202 Mon May  9 12:00:08 EEST 2005  Pekka Riikonen <priikone@silcnet.org>
1203
1204         * Fixed channel public key list saving on JOIN command reply
1205           on backup router.  Affected file apps/silcd/command_reply.c.
1206
1207 Mon May  2 10:42:49 EEST 2005  Pekka Riikonen <priikone@silcnet.org>
1208
1209         * Added default limit how many channels client can join,
1210           default is 50.  Added 'channel_join_limit' configuration
1211           option to server too.  Affected files are apps/silcd/command.c
1212           and serverconfig.[ch].
1213
1214 Sun May  1 17:42:55 EEST 2005  Pekka Riikonen <priikone@silcnet.org>
1215
1216         * --without-silc -> --with-silc, --without-irssi -> --with-irssi.
1217           On Toolkit the server and client are not compiled by default.
1218           Affected file configure.ad.
1219
1220 Thu Apr 28 15:57:37 EEST 2005  Pekka Riikonen <priikone@silcnet.org>
1221
1222         * Added lib/contrib/getopt.[ch] for platforms that don't
1223           have it (it is not GPL implementation).
1224
1225         * Fixed compilation when pkg-config is used.
1226
1227 Wed Apr 27 11:49:41 EEST 2005  Pekka Riikonen <priikone@silcnet.org>
1228
1229         * A comma in invite/ban string is invalid, check for it.
1230           Affected file apps/silcd/server_util.c.
1231
1232         * Added SERVICE command to the server.  It parses the command
1233           request but SILC Server does not support services for the
1234           time being.  Affected file apps/silcd/command.[ch].
1235
1236         * Added SERVICE command and command reply to client library.
1237           It is however incomplete.  Updated Toolkit documentation.
1238           Affected files are lib/silcclient/command[_reply].[ch].
1239
1240         * Fixed IDENTIFY/WHOWAS command reply to send the username
1241           correctly (uninitialized buffer).  Affected file is
1242           apps/silcd/server_query.c.
1243
1244 Mon Apr 25 14:25:24 EEST 2005  Pekka Riikonen <priikone@silcnet.org>
1245
1246         * Moved silcer/, silc/, silcd/ and irssi/ to apps/.  This
1247           finalizes the major restructuring of the CVS tree.
1248
1249 Mon Apr 25 00:39:30 EEST 2005  Pekka Riikonen <priikone@silcnet.org>
1250
1251         * Send empty MOTD reply if MOTD file cannot be read.
1252           Affected file silcd/command.c.
1253
1254 Sun Apr 24 12:01:37 EEST 2005  Pekka Riikonen <priikone@silcnet.org>
1255
1256         * Optimized primer number generator to use simpler conversion
1257           routines.  Also assure that the prime number will have the
1258           highest bit set after modifying it.  Affected file is
1259           lib/silcmath/silcprimegen.c.
1260
1261         * Added LibTomMath to SILC Math library (SILC_DIST_TMA).
1262
1263         * Added FastTomMath to SILC Math Library (SILC_DIST_TFM),
1264           for now only for testing purposes, it will not be delivered
1265           in any distribution for now.
1266
1267         * Removed NSS MPI from the source tree.  Due to upcoming
1268           license change for the SILC Toolkit, we cannot deliver the
1269           NSS MPI anymore.  I decided to replace it in all distributions
1270           with public domain library.
1271
1272         * Removed GNU regex from lib/contrib and introduced free
1273           GNU compatible regex, lib/contrib/regexpr.[ch].  Added
1274           GNU regex compatible API to it (only partial).
1275
1276         * Removed getopt routines from lib/contrib.
1277
1278 Fri Apr 22 12:21:44 EEST 2005  Pekka Riikonen <priikone@silcnet.org>
1279
1280         * Use silc_server_send_command_reply to send replies instead
1281           of encoding packet itself.  Affected file silcd/command.c.
1282
1283         * Added command sending and receiving statistics to server.
1284           Affected files in silcd/.
1285
1286         * GCC 4 warning fixes.  -Wno-pointer-sign option is now used
1287           with GCC, for it not to warn about pointer signedness.
1288
1289 Tue Apr 19 11:57:35 EEST 2005  Pekka Riikonen <priikone@silcnet.org>
1290
1291         * Added context to the SilcIDCache destructor.  Affected
1292           files are lib/silccore/silcidcache.[ch],
1293           lib/silcclient/client.c and silcd/server.c.
1294
1295 Mon Apr 18 09:53:28 EEST 2005  Pekka Riikonen <priikone@silcnet.org>
1296
1297         * Added pkg-config check to configure.
1298
1299         * The PublicKeyDir must not be used with Admin block in server
1300           config.  Affected file silcd/serverconfig.c.
1301
1302 Sat Apr 16 20:23:48 EEST 2005  Pekka Riikonen <priikone@silcnet.org>
1303
1304         * Added Autodist.
1305
1306 Thu Apr 14 20:25:08 EEST 2005  Pekka Riikonen <priikone@silcnet.org>
1307
1308         * Handle empty LIST command reply correcttly in server.  Affected
1309           file silcd/command_reply.c.
1310
1311         * Handle empty LIST command reply correctly in client library.
1312           The application will now receive one LIST command reply with
1313           all arguments set to NULL if there are no channels.  Updated
1314           Client Library documentation accordingly.  Affected file
1315           lib/silcclient/command_reply.c.
1316
1317 Tue Apr 12 00:02:09 EEST 2005  Pekka Riikonen <priikone@silcnet.org>
1318
1319         * Added channel name string stringprep profile to the protocol
1320           and implementation to allow a little free'er channel name
1321           strings.  Affected files are lib/silcutil/silcstringprep.[ch].
1322
1323         * Added silc_channel_name_[check|verify] to check and verify
1324           channel name strings.  Affected files are
1325           lib/silcutil/silcstrutil.[ch].
1326
1327         * Added support for the new channel name preparation in client
1328           library and server.  Affected files in lib/silcclient and
1329           silcd/.
1330
1331 Mon Apr 11 13:40:27 EEST 2005  Pekka Riikonen <priikone@silcnet.org>
1332
1333         * Added the Autodist into the source tree.  It replaces the
1334           old ./prepare.  It can be used to create distributions as
1335           previously.  See README.CVS and README.DIST.  See
1336           distributions in distdir/.
1337
1338 Sun Apr 10 11:30:56 EEST 2005  Pekka Riikonen <priikone@silcnet.org>
1339
1340         * Make sure query sends at least an error back if nothing
1341           more is sent.  Affected file silcd/server_query.c.
1342
1343 Thu Apr  7 14:50:01 EEST 2005  Pekka Riikonen <priikone@silcnet.org>
1344
1345         * During query, check if the original command caller goes
1346           away.  If it does, stop the query.  Affected file
1347           silcd/server_query.c.
1348
1349         * Check for valid channel creation in JOIN command reply.
1350           Affected file lib/silcclient/command_reply.c.
1351
1352         * Handle the resolver counter in silc_client_get_users_by_channel
1353           callback correctly.  Fixed auto-join bug in Gaim.  Affected
1354           file lib/silcclient/idlist.c.
1355
1356 Wed Apr  6 16:56:53 EEST 2005  Pekka Riikonen <priikone@silcnet.org>
1357
1358         * Added some better error messages.  Affected file
1359           silcd/command_reply.c and packet_receive.c.
1360
1361         * Handle error in WATCH command propely on backup router.
1362           Affected file silcd/command.c.
1363
1364         * Fixed freeing of unfreeable variable in WHOIS command reply.
1365           Affected file silcd/command_reply.c.
1366
1367 Wed Apr  6 09:10:31 CEST 2005  Pekka Riikonen <priikone@silcnet.org>
1368
1369         * Added pkg-config .pc file creation for silc core library
1370           and silcclient library.  A patch by c0ffee.
1371
1372         * Removed the need for GNU Libidn.  Added the simple stringprep
1373           from libidn into lib/contrib/.  It is now used also on Windows
1374           build.
1375
1376 Mon Apr  4 15:15:46 EEST 2005  Pekka Riikonen <priikone@silcnet.org>
1377
1378         * Simplified the invite and ban string handling in the
1379           server.  Check for valid invite and ban arguments also.
1380           Affected file silcd/server_util.c.
1381
1382 Sun Apr  3 14:58:53 EEST 2005  Pekka Riikonen <priikone@silcnet.org>
1383
1384         * Added WATCH list announcing in backup router protocol.
1385           Affected files are silcd/command.c, server.c, server_backup.c.
1386
1387         * Do not change users mode to founder on normal server/backup
1388           if the founder mode is set, and user is first one to join.
1389           Affected file silcd/pcaket_receive.c.
1390
1391         * Do not send CUMODE_CHANGE notify back to sender.  Affected
1392           file silcd/packet_receive.c.
1393
1394         * Added getrusage() to take noise in SILC RNG.  A patch by
1395           Mika Boström.  Affected files are configure.in.pre,
1396           includes/silcincludes.h.in, lib/silccrypt/silcrng.c.
1397
1398 Sat Apr  2 18:09:30 EEST 2005  Pekka Riikonen <priikone@silcnet.org>
1399
1400         * Splitted the SILC libraries configuration into a configure
1401           fragment into lib/configure.ad.  It is now possible, once
1402           this feature is added, to specify whether to compile or not
1403           compile included SILC libraries.  Affected files are
1404           configure.in.pre, lib/silcmath/mpi/configure.ad,
1405           lib/configure.ad, Makefile.defines.pre and
1406           Makefile.defines_int.pre.
1407
1408         * Added --with-silc-includes and --with-silc-libs to configure.
1409           If specified the included libs are not compiled, but the
1410           specified libs are used.  Pkg-config is not yet supported.
1411           Affected file configure.in.pre.
1412
1413         * Fixed WATCH command handling on backup router.  Router does not
1414           send the watch command any more to backup if it originates from
1415           backup.  Affected file silcd/command.c.
1416
1417 Fri Apr  1 18:52:47 EEST 2005  Pekka Riikonen <priikone@silcnet.org>
1418
1419         * Changed announcing to not announce unregistered clients.
1420           Affected file silcd/server.c.
1421
1422         * Fixed username handling in command reply.  Affected file
1423           silcd/command_reply.c.
1424
1425         * Log files are now 0600.  Affected file lib/silcutil/silclog.c.
1426
1427 Thu Mar 31 22:34:22 CEST 2005  Patrik Weiskircher <pat@icore.at>
1428
1429         * Added new define SILC_MACOSX, if __APPLE__ and __MACH__ is defined.
1430           Affected file: includes/silcincludes.h.in
1431
1432         * bool is defined as _Bool on Mac OS X now.
1433           Affected file: lib/silcutil/silctypes.h
1434
1435 Thu Mar 31 08:52:06 EEST 2005  Pekka Riikonen <priikone@silcnet.org>
1436
1437         * Added support for UTF-8 nicknames, channel names and
1438           server names in client library.  Affected files in
1439           lib/silcclient/.
1440
1441         * Added __SILC_HAVE_PTHREAD, __SILC_HAVE_SIM, __SILC_HAVE_LIBIDN,
1442           and __SILC_ENABLE_DEBUG to include/silcclient.h for third-party
1443           software to check how Toolkit has been compiled.
1444
1445 Wed Mar 30 22:16:35 EEST 2005  Pekka Riikonen <priikone@silcnet.org>
1446
1447         * Added silc_utf8_str[n]casecmp into lib/silcutil/silcutf8.[ch].
1448
1449         * Use silc_utf8_str[n]casecmp instead of strcmp routines
1450           in library and in SILC Client when dealing with nicknames
1451           and other identifier strings.  Affected file in client lib
1452           and irssi.
1453
1454         * Convert nickname to UTF-8 in /msg and /smsg.  Affected file
1455           irssi/src/silc/core/silc-servers.c.
1456
1457 Wed Mar 30 10:50:02 EEST 2005  Pekka Riikonen <priikone@silcnet.org>
1458
1459         * Fixed idcache to work with the new identifier strings.
1460           Affected file lib/silccore/silcidcache.c.
1461
1462         * Added UTF-8 hash and compare function for SilcHashTable.
1463           Affected file lib/silcutil/silcutil.[ch].
1464
1465         * Added casefolding stringprep, SILC_CASEFOLD_PREP.
1466           Affected file lib/silcutil/silcstringprep.[ch].
1467
1468         * Changed the identifier string handling to include the original
1469           format in client, server, channel entries and normalized
1470           format in cache.  Affected files in silcd/.
1471
1472 Tue Mar 29 16:51:35 EEST 2005  Pekka Riikonen <priikone@silcnet.org>
1473
1474         * Added support for the new identifier strings and their
1475           validity checking.  Nicknames, channel names and usernames
1476           can now include practically any kind of letters and various
1477           other characters.  Affected files in silcd/ and in libraries.
1478
1479           NOTE: comparing these strings should now be done with memcmp()
1480           to check binary compatibility.  All these strings are normalized
1481           and casing is irrelevant.
1482
1483         * Added silc_identifier_check to lib/silcutil/silcstrutil.[ch]
1484           as easy function for applications to check whether identifier
1485           strings are valid.
1486
1487 Tue Mar 29 00:45:11 EEST 2005  Pekka Riikonen <priikone@silcnet.org>
1488
1489         * Fixed SILC_STRING_LDAP_DN encoding and decoding.  Affected
1490           file lib/silcutil/silcutf8.c.
1491
1492         * Added SILC_STRING_UTF8_ESCAPE to lib/silcutil/silcstrutil.h.
1493
1494 Mon Mar 28 22:46:23 CEST 2005  Jochen Eisinger <jochen@penguin-breeder.org>
1495
1496         * Make public key in getkey reply mandatory.  Affected file
1497           lib/silcclient/command_reply.c
1498
1499 Sun Mar 27 19:03:31 CEST 2005  Patrik Weiskircher <pat@icore.at>
1500
1501         * Added Parameter dont_register_crypto_library to
1502           SilcClientParam. If set to TRUE, silcclient library will
1503           not initalize the Crypto Libraries and application
1504           will need to do it. Affected file lib/silcclient/silcclient.h,
1505           lib/silcclient/client.c.
1506
1507 Sun Mar 27 19:02:48 EEST 2005  Pekka Riikonen <priikone@silcnet.org>
1508
1509         * Imported new silc_utf8_[encode|decode] routines from
1510           my internal SILC 1.1 source tree.  New encodings added:
1511           SILC_STRING_LOCALE (SILC_STRING_LANGUAGE is deprecated),
1512           SILC_STRING_UTF8, SILC_STRING_PRINTABLE, SILC_STRING_VISIBLE,
1513           SILC_STRING_TELETEX, SILC_STRING_NUMERICAL and
1514           SILC_STRING_LDAP_DN.
1515
1516         * Splitted UTF-8 routines into lib/silcutil/silcutf8.[ch].
1517
1518         * Implemented stringprep (RFC 3454) API.  Internally we use
1519           GNU Libidn's stringprep, for now, so it is required now to
1520           compile SILC sources.  Added lib/silcutil/silcstringprep.[ch].
1521
1522         * Added checking for GNU Libidn and --with-libidn to configure.
1523
1524 Wed Mar 23 11:20:33 CET 2005  Jochen Eisinger <jochen@penguin-breeder.org>
1525
1526         * If the passphrases entered do not match while generating a new key,
1527           completly start over instead of going into an infinite loop asking
1528           the user to re-enter the passphrase correctly.  Affected file
1529           lib/silcutil/silcapputil.c
1530
1531 Sun Jan  9 14:28:51 CET 2005  Pekka Riikonen <priikone@silcnet.org>
1532
1533         * Make sure server is removed from backup list when it is
1534           deleted.  Affected files silcd/command.c, server.c,
1535           server_util.c.
1536
1537         * Close socket when connecting to router fails.  Affected
1538           file silcd/server.c.
1539
1540 Tue Jan  4 13:06:26 CET 2005  Jochen Eisinger <jochen@penguin-breeder.org>
1541
1542         * Adopt configuration toolchain to current auto-tools.
1543           Affected files prepare, irssi/configure.in
1544         * Revert most of the UTF-8 fixes to SILC Client 1.0.1.  Will
1545           redo that.  Affected files irssi/src/silc/core/client_ops.c,
1546           irssi/src/fe-common/silc/fe-silc-channels.c
1547         * Take over command line options into silcclient data structure.
1548           Affected file irssi/src/silc/core/silc-core.c
1549
1550 Wed Dec  8 16:15:11 CET 2004  Pekka Riikonen <priikone@silcnet.org>
1551
1552         * Do not try to initiate backup resuming protocol forever.
1553           Affected file silcd/server_backup.c.
1554
1555 Wed Nov 24 18:24:05 CET 2004  Pekka Riikonen <priikone@silcnet.org>
1556
1557         * ID change in resuming has to be done before changing
1558           detached client's modes, since the ID change may fail and
1559           leave ghosts on the network.  Affected file is
1560           silcd/packet_receive.c.
1561
1562 Tue Nov 23 16:54:35 CET 2004  Pekka Riikonen <priikone@silcnet.org>
1563
1564         * Fixed Win32 scheduler to not stuck anymore.  A patch from
1565           Juha Räsänen.  Affected file is
1566           lib/silcutil/win32/silcwin32schedule.c.
1567
1568         * Fixed QoS parsing for connection blocks in server.  Affected
1569           file is silcd/serverconfig.c.
1570
1571         * Fixed server statistics increasing in server.  Affected file
1572           is silcd/server.c.
1573
1574         * The CLOSE command now marks backup router as self disconnected
1575           to avoid resuming problems.  Affected file silcd/command.c.
1576
1577 Wed Sep 22 19:46:32 CEST 2004  Patrik Weiskircher <pat@icore.at>
1578
1579         * When using silc_net_create_connection[_async], and your system can
1580           create IPv6 sockets, it will try to connect to the IPv6 host.
1581           Now it tries to connect to an IPv4 host if IPv6 fails. Affected
1582           file lib/silcutil/unix/silcunixnet.c
1583
1584 Fri Jun 18 19:26:58 CEST 2004  Pekka Riikonen <priikone@silcnet.org>
1585
1586         * Check for valid route when receiving packet from router and
1587           when routing it to local server in the cell.  A patch from
1588           Matt Miller.  Affected files silcd/router.c and server.c.
1589
1590 Sat May  1 13:55:54 CEST 2004  Patrik Weiskircher <pat@icore.at>
1591
1592         * Couldn't detach and reattach twice, because of the previous
1593           commit. Affected file silcd/packet_receive.c
1594
1595 Fri Apr 30 19:40:28 CEST 2004  Patrik Weiskircher <pat@icore.at>
1596
1597         * Added check to ignore Port value if Initiator is FALSE.
1598           Remote router coudln't connect if Port was set. Affected file
1599           silcd/serverconfig.c
1600
1601         * If some client tries to resume more than once at the same time,
1602           server crashed. Router didn't crash, but showed odd behaviour
1603           (didn't allow clients to join anymore, ..). Affected files
1604           silcd/packet_receive.c silcd/idlist.h
1605
1606 Mon Mar 15 21:10:08 EET 2004  Pekka Riikonen <priikone@silcnet.org>
1607
1608         * Destroy the file transfer session in silc_client_file_close
1609           with timeout.  Affected file lib/silcclient/client_ftp.c.
1610
1611         * Call SFTP server monitor in READ and WRITE after the actual
1612           operations.  Affected file lib/silcsftp/sftp_server.c.
1613
1614 Wed Mar 10 21:30:02 EET 2004  Pekka Riikonen <priikone@silcnet.org>
1615
1616         * Create one configure script from configure fragments
1617           (configure.ad).  This is a first step towards new distribution
1618           system.  Affected files prepare, configure.in.pre,
1619           lib/silcmath/mpi/configure.ad.
1620
1621 Wed Mar 10 18:35:24 CET 2004  Jochen Eisinger <jochen@penguin-breeder.org>
1622
1623         * Removed expiring of client key pair.  Affected file is
1624           irssi/src/silc/core/clientutil.c
1625
1626 Tue Mar  9 17:11:58 EET 2004  Pekka Riikonen <priikone@silcnet.org>
1627
1628         * Check the number of connections from real number of
1629           connections instead of socket number, when deciding if
1630           server is full.  Affected files are silcd/server.c,
1631           server_internal.h and silcd.c.
1632
1633         * Clarified the connections_max meaning in General section
1634           in doc/example_silcd.conf.in.
1635
1636         * The reconnect_keep_trying default value set to TRUE
1637           if it is not defined in the config file.  Affected file
1638           silcd/serverconfig.c.
1639
1640 Wed Mar  3 15:13:49 CET 2004  Pekka Riikonen <priikone@silcnet.org>
1641
1642         * Fixed crashbug in connection closing, after a protocol
1643           completion callback, which might have closed it already.
1644           Affected file silcd/server.c.
1645
1646         * Fixed rekey with PFS in backup router.  It did not allow
1647           rekeys with PFS, and when the rekey protocol timedout
1648           it crashed the backup router without the above fix.  Affected
1649           file silcd/packet_send.c and server.c.
1650
1651 Sat Feb 28 16:25:09 EET 2004  Pekka Riikonen <priikone@silcnet.org>
1652
1653         * The silc_client_add_channel_private_key now returns the
1654           private key context if pointer is given as argument.
1655           Affected files are lib/silcclient/silcclient.h and
1656           client_channel.c.
1657
1658         * Added support for using channel private keys in SILC
1659           Client Library even if the private key mode is not set
1660           on the channel.  Affected file lib/silcclient/client_channel.c.
1661
1662         * The channel private key used to decrypt message is now
1663           delivered to the application in the 'channel_messageÃ' client
1664           operation.  Affected files are lib/silcclient/silcclient.h
1665           and client_channel.c.
1666
1667         * Fixed wrong arg type for user limit in CMODE command reply.
1668           Affected file silcd/command.c.
1669
1670         * The user limit is now taken and saved to SilcClientEntry in
1671           JOIN and CMODE command replies and in CMODE_CHANGE notify.
1672           Affected files lib/silcclient/silcclient.h, command_reply.c
1673           and client_notify.c.
1674
1675         * Added support to the new private message key indicator
1676           packet.  Added a new function to the client library:
1677           silc_client_send_private_message_key_request.  The sender
1678           indicates to be initiator, and receiver is responder.
1679           Added the indicator to the SilcClientEntry as 'prv_resp'
1680           boolean.  Affected files are lib/silcclient/silcclient.h
1681           client.[ch], and client_prvmsg.c.
1682
1683 Fri Feb 27 11:25:26 CET 2004  Pekka Riikonen <priikone@silcnet.org>
1684
1685         * Fixed the JOIN command calling when called with both
1686          -auth and -founder.  Affected file is lib/silcclien/command.c.
1687
1688 Wed Feb 25 23:12:11 EET 2004  Pekka Riikonen <priikone@silcnet.org>
1689
1690         * Check watcher list for resumed clients as well.  Affected
1691           file is silcd/packet_receive.c.
1692
1693 Tue Feb 24 16:49:10 EET 2004  Pekka Riikonen <priikone@silcnet.org>
1694
1695         * Implemented the user limit to the CMODE_CHANGE notify,
1696           CMODE command reply and JOIN command reply in server.
1697           Affected files are silcd/server.c, command.c, command_reply.c,
1698           packet_send.c and packet_receive.c.
1699
1700 Mon Feb 23 23:31:15 EET 2004  Pekka Riikonen <priikone@silcnet.org>
1701
1702         * Defined SILC_STRFMT_END that must be used now with
1703           silc_buffer_strformat, instead of SILC_STR_END.  Fixes
1704           crashes on AMD64.  Affected files are lib/silcutil/silcbuffmt.h,
1705           lib/silcclient/silcvcard.c, silcd/server_util.c.
1706
1707         * Fixed the adding of public key to the WATCH list in server.
1708           Fixed the WATCH notify sending to client.  Affected files
1709           are silcd/packet_send.[ch], command.c, server_util.c.
1710
1711         * Implemented the watching by public key in the SILC Client
1712           Library and SILC Client.  Affected files are
1713           lib/silcclient/command.c and client_notify.c.
1714
1715 Mon Feb 23 09:30:30 CET 2004  Pekka Riikonen <priikone@silcnet.org>
1716
1717         * Added support for public key watching in server.  Affected
1718           files are silcd/server.c, server_internal.h, command.c,
1719           server_util.c.
1720
1721 Sun Feb 22 19:03:59 EET 2004  Pekka Riikonen <priikone@silcnet.org>
1722
1723         * Added public key to the SIlcClientEntry.  Affected files
1724           are lib/silcclient/silcclient.h, command_reply.c, idlist.c
1725
1726         * Fixed the get_clients_whois reply processing to return
1727           exactly same entries server returned.  Makes it possible
1728           to search using attributes.  Affected file is
1729           lib/silcclient/idlist.c.
1730
1731 Sat Feb 21 19:21:57 EET 2004  Pekka Riikonen <priikone@silcnet.org>
1732
1733         * Save founder key to SilcChannelEntry.  Affected files are
1734           lib/silcclient/silcclient.h, command_reply.c, idlist.c.
1735
1736 Fri Feb 20 20:37:38 EET 2004  Pekka Riikonen <priikone@silcnet.org>
1737
1738         * Call the monitor callback with _CLOSED status from the
1739           silc_client_file_close.  Affected files are
1740           lib/silcclient/client_fpt.c, silcclient.h
1741
1742         * Added silc_client_get_clients_whois which resolves using
1743           WHOIS, and supports requested attributes as well.
1744           Affected files are lib/silcclient/silcclient.h, idlist.c.
1745
1746 Fri Feb 19 21:09:22 EET 2004  Pekka Riikonen <priikone@silcnet.org>
1747
1748         * Added support for asking the destination filename where
1749           the downloaded file is saved in the file transfer.  Affected
1750           files are lib/silccilent/silcclient.h, client_ftp.c.
1751
1752 Wed Feb 18 02:46:17 EET 2004  Pekka Riikonen <priikone@silcnet.org>
1753
1754         * Fixed error handling in resuming data processing.  Affected
1755           files are lib/silcclient/client_resume.c and client.c.
1756
1757 Tue Feb 17 19:34:30 EET 2004  Pekka Riikonen <priikone@silcnet.org>
1758
1759         * Fixed silc_client_send_private_message to return TRUE correctly.
1760           Affected file lib/silcclient/client_prvmsg.c.
1761
1762         * Added topic to the SilcChannelEntry.  Affected files are
1763           lib/silcclient/silcclient.h, command_reply.c, client_notify.c.
1764
1765 Fri Feb 13 14:19:14 CET 2004  Jochen Eisinger <jochen@penguin-breeder.org>
1766
1767         * Use conn->cmd_ident for all silc_client_command_call()s.  Affected
1768           file lib/silcclient/command.c
1769
1770 Fri Feb 13 13:53:45 CET 2004  Jochen Eisinger <jochen@penguin-breeder.org>
1771
1772         * Convert all commands to UTF-8 before passing them to the
1773           client library.  Still need to convert replies from UTF-8 to
1774           the locale encoding.  Affected file
1775           irssi/src/silc/core/silc-cmdqueue.c
1776
1777 Fri Feb 13 13:13:07 CET 2004  Jochen Eisinger <jochen@penguin-breeder.org>
1778
1779         * redirect all silc_client_command_calls through a queueing framework.
1780           This fixes /CYCLE and the annoying "nick change after auto-joining
1781           a channel".  Furthermore it defines one central point where
1782           command parameters can be UTF-8-ified.  Affected files
1783           irssi/src/silc/core/Makefile, client_ops.c, silc-channels.c,
1784           silc-servers.[ch], silc-core.c, silc-cmdqueue.[ch], silc-lag.c
1785
1786 Fri Feb 13 12:04:41 CET 2004  Jochen Eisinger <jochen@penguin-breeder.org>
1787
1788         * use asynchronous connect() to establish router connections.
1789           Fixes problem when the primary router goes down.  Affected files
1790           silcd/server.c, silcd/server_backup.c
1791
1792 Thu Feb 12 20:09:59 EET 2004  Pekka Riikonen <priikone@silcnet.org>
1793
1794         * Added SILC_[32|64]_TO_PTR and SILC_PTR_TO_[32|64] macros.
1795           Fixed various compilation warnings when type casting ints
1796           to pointers or vice versa, of different size.  Updates around
1797           the source free.
1798
1799 Tue Feb  3 23:25:17 EET 2004  Pekka Riikonen <priikone@silcnet.org>
1800
1801         * Surrogates not allowed in UTF-8 strings, updated decoder.
1802           Affected file lib/silcutil/silcstrutil.c.  Added UTF-8
1803           testers in lib/silcutil/tests/ directory.
1804
1805 Wed Jan 14 18:42:44 EET 2004  Pekka Riikonen <priikone@silcnet.org>
1806
1807         * Added SILC_CLIENT_CONN_ERROR_KE, ERROR_AUTH, ERROR_RESUME and
1808           ERROR_TIMEOUT SilcClientConnectionStatus errors.  Affected
1809           files are lib/silcclient/silcclient.h, client.c.
1810
1811 Mon Jan 12 13:01:10 CET 2004  Jochen Eisinger <jochen@penguin-breeder.org>
1812
1813         * When resuming a session fails, notify the user that the session
1814           file needs to be removed eventually.  Affected files
1815           irssi/src/fe-common/silc/module-formats.[ch],
1816           irssi/src/silc/core/client_ops.c.
1817
1818 Tue Jan 04 12:16:04 CET 2004  Jochen Eisinger <jochen@penguin-breeder.org>
1819
1820         * Added DIST_SUBDIRS symbols to include all subdirs in distributions.
1821           Affected files lib/silcutil/Makefile.am, lib/silcmath/Makefile.am
1822
1823         * Typofix in Irssi::Silc module.  Affected file
1824           irssi/src/perl/silc/Silc.xs.
1825
1826 Tue Jan 04 02:43:44 CET 2004  Jochen Eisinger <jochen@penguin-breeder.org>
1827
1828         * Changed the way NOTICE flagged messages are treated. Added support
1829           for notices in queries and signing notices.  Affected files
1830           irssi/default.theme; irssi/docs/help/in/notice.in;
1831           irssi/src/fe-common/silc/module-formats.[ch], fe-silc-messages.c;
1832           irssi/src/silc/core/client_ops.c, silc-channels.c, silc-servers.c
1833
1834         * Fixed typo in /ACTION help.  Affected file
1835           irssi/docs/help/in/action.in
1836
1837 Mon Jan 03 23:26:38 CET 2004  Jochen Eisinger <jochen@penguin-breeder.org>
1838
1839         * Fixed typo in perl module.  Affected file
1840           irssi/src/perl/silc/Server.xs
1841
1842         * Changed the way ACTION flagged messages are treated. Added support
1843           for actions in queries and signing actions.  Affected files
1844           irssi/default.theme; irssi/docs/help/in/action.in;
1845           irssi/src/fe-common/silc/module-formats.[ch], fe-silc-messages.c,
1846           fe-silc-queries.c; irssi/src/silc/core/client_ops.c, silc-channels.c,
1847           silc-servers.[ch]
1848
1849 Mon Jan 03 16:04:29 CET 2004  Jochen Eisinger <jochen@penguin-breeder.org>
1850
1851         * Incorrectly reported error when client had to be resolved from
1852           server in /SMSG.  Affected file irssi/src/silc/core/silc-servers.c
1853
1854 Sat Jan  3 16:37:15 EET 2004  Pekka Riikonen <priikone@silcnet.org>
1855
1856         * Fixed whois public key hash table deleting and adding in
1857           detached client case.  Affected file silcd/packet_receive.c.
1858
1859 Sat Jan 03 12:15:38 CET 2004  Jochen Eisinger <jochen@penguin-breeder.org>
1860
1861         * Changed filenames of silc/fe module not to collide with filenames
1862           from core/fe.  Also seperated public messages printing from
1863           query messages printing.  Affected files are all in
1864           irssi/src/fe-common/silc.
1865
1866 Sat Jan  3 12:18:07 EET 2004  Pekka Riikonen <priikone@silcnet.org>
1867
1868         * Fixed the invite process handling during joining to use
1869           correct server name for the client that is matched against
1870           the invite string for the channel.  Wrong server name caused
1871           inability to join the channel.  Affected file is
1872           silcd/command.c.
1873
1874 Fri Jan  2 23:34:17 EET 2004  Pekka Riikonen <priikone@silcnet.org>
1875
1876         * Fixed the CUMODE channel founder authentication on normal
1877           server to not remove the founder rights on existing founder
1878           before checking that router accepts the mode change.  Affected
1879           files are silcd/command.c and silcd/packet_receive.c.
1880
1881         * Remove the server entry correctly when rekey timeouts and
1882           remote router connection on normal server is closed.  Fixes
1883           a crash where server uses the freed server entry.  Affected
1884           file silcd/server.c.
1885
1886 Fri Jan 02 10:28:15 CET 2004  Jochen Eisinger <jochen@penguin-breeder.org>
1887
1888         * Add /SILCNET [ADD|REMOVE|LIST] command to manage different SILC
1889           networks.  This is the first step in solving the bug about
1890           /SERVER ADD -silcnet <silcnet>.  Affected files
1891           irssi/docs/in/silcnet.in; irssi/src/fe-common/silc/Makefile.am,
1892           fe-silcnet.c, fe-common-silc.c, module-formats.[ch];
1893           irssi/src/silc/core/silc-chatnets.[ch], silc-core.c, Makefile.am
1894
1895 Thu Jan 01 20:11:32 CET 2004  Jochen Eisinger <jochen@penguin-breeder.org>
1896
1897         * /SMSG and /MMSG now correctly create new queries. Affected files
1898           irssi/src/fe-common/silc/fe-messages.c, irssi/scripts/silc-mime.pl
1899
1900         * Add basic support for SILC protocol specific variables in perl.
1901           Affected files irssi/src/perl/silc/*, irssi/configure.in,
1902           irssi/src/perl/Makefile.am
1903
1904 Wed Dec 31 17:06:55 CET 2003  Jochen Eisinger <jochen@penguin-breeder.org>
1905
1906         * Don't use silc_get_input, it's obviously not reliable.  Fixes
1907           issue when the current key expires.  Affect file
1908           irssi/src/silc/core/clientutils.c
1909
1910         * Make the session data filename configurable.  This makes it
1911           possible to have different session files for different
1912           SILC networks.  Affected files irssi/src/silc/core/silc-core.c,
1913           client_ops.[ch], silc-servers.c,
1914           irssi/src/silc/fe-common/silc/module-formats.[ch]
1915
1916         * Use the same set of libtool files for the MPI lib as for the
1917           rest of the toolkit.  Affected files lib/silcmath/mpi/config.guess,
1918           config.sub, configure.in, install-sh, missing, mkinstalldirs
1919
1920 Sun Dec 28 21:57:39 EET 2003  Pekka Riikonen <priikone@silcnet.org>
1921
1922         * Fixed server statistics decrementing error to not go to
1923           negative.  Affected file silcd/packet_receive.c.
1924
1925 Sat Dec 20 14:42:36 EET 2003  Pekka Riikonen <priikone@silcnet.org>
1926
1927         * Use silc_server_query_add_error to add error in public key
1928           search error.  Added support in send_reply to send errors
1929           without specific argument.  Affected file silcd/server_query.c.
1930
1931         * Fixed the WHOIS, IDENTIFY and WHOWAS error handling in SILC
1932           Client for NO_SUCH_NICK.  It was against the protocol specs.
1933           Affected file irssi/src/silc/core/client_ops.c.
1934
1935         * Added backwards support for the wrong NO_SUCH_NICK error sending
1936           in server.  To be removed in SILC Server 1.0.  Both old clients
1937           and clients with fixed error handling now works.  Affected file
1938           silcd/server_query.c.
1939
1940 Sat Dec 20 00:44:47 CET 2003  Patrik Weiskircher <pat@icore.at>
1941
1942         * fixed a bug in the whois using attributes function where no
1943           error was sent if no nickname and client id but the attributes were
1944           given to whois. Affected file silcd/server_query.c
1945
1946 Tue Dec 16 21:34:59 CET 2003  Patrik Weiskircher <pat@icore.at>
1947
1948         * remove public key from public key hashtable on detach. Affected
1949           file silcd/packet_receive.c
1950
1951         * free public key hashtable before removing clients on server
1952           shutdown. Affected file silcd/server.c
1953
1954         * remove public key prior deleting client-data on killing a client.
1955           Affected file silcd/server_util.c
1956
1957 Sat Dec 06 21:35:14 CET 2003  Patrik Weiskircher <pat@icore.at>
1958
1959         * Getting the MOTD from other servers works now. Affected
1960           files are silcd/command.c and silcd/command_reply.c
1961
1962 Thu Dec 04 11:33:46 CET 2003  Jochen Eisinger <jochen@penguin-breeder.org>
1963
1964         * Initialize the variable idletag, since it is tested in
1965           silc_core_deinit for its default value.  Affected file
1966           irssi/src/silc/core/silc-core.c
1967
1968 Sun Nov 30 19:47:02 CET 2003  Patrik Weiskircher <pat@icore.at>
1969
1970         * Fixed signed channel messages across cells. Affected file
1971           silcd/packet_send.c
1972
1973 Fri Nov 28 19:13:21 EET 2003  Pekka Riikonen <priikone@silcnet.org>
1974
1975         * Changed the SILC_LOG_* macros to not be empty if SILC_DEBUG
1976           is not defined.  They can now be safely used in if-statements
1977           without braces.  Affected file lib/silcutil/silclog.h.
1978
1979         * Added the checks for backup closing connection due to error
1980           (local or remote) and thus not allow the resuming to occur
1981           in reconnect.  Affected files are silcd/packet_send.c
1982           and server.c.
1983
1984 Tue Nov 25 15:20:59 EET 2003  Pekka Riikonen <priikone@silcnet.org>
1985
1986         * Help file updates.  Affected files in irssi/src/docs/help/in/.
1987
1988 Wed Nov 23 20:51:21 CET 2003  Patrik Weiskircher <pat@icore.at>
1989
1990         * Fixed channel messages across cells. Affected file
1991           silcd/packet_send.c
1992
1993 Wed Nov 12 11:34:56 EET 2003  Pekka Riikonen <priikone@silcnet.org>
1994
1995         * Fixed file transmission accepting in client library to not
1996           start the negotiation if user hasn't accepted the transfer,
1997           instead create new session for resent transfer.  Affected
1998           file lib/silcclient/client_ftp.c.
1999
2000         * Show the session ID in the file transmision list.  Remove
2001           session from list that failed to transfer.  Switch the current
2002           session automatically after transmission, and in errors, to new
2003           session if other sessions exists in the transfer list.  Affected
2004           files are irssi/src/silc/core/silc-servers.c,
2005           irssi/src/fe-common/silc/modfule-formats.c.
2006
2007 Mon Nov 10 14:41:40 CET 2003  Jochen Eisinger <jochen@penguin-breeder.org>
2008
2009         * Fixed MIME header parsing for the hopefully last time.  Affected
2010           file lib/silcutil/silcstrutil.c
2011
2012 Mon Nov 10 13:03:46 EET 2003  Pekka Riikonen <priikone@silcnet.org>
2013
2014         * Rewrote the PKCS#1 routines.  Added lib/silccrypt/silcpkcs1.[ch].
2015
2016         * The SILC RNG is now gauranteed to return non-zero random
2017           values.  Affected files are lib/silccrypt/silcrng.[ch].
2018
2019 Sun Nov  9 20:44:56 EET 2003  Pekka Riikonen <priikone@silcnet.org>
2020
2021         * Fixed nickname formatting when changing only case of the
2022           nickname.  Affected file lib/silcclient/idlist.c.
2023
2024 Sun Nov  9 19:33:59 CET 2003  Jochen Eisinger <jochen@penguin-breeder.org>
2025
2026         * Fixed a memory leak and incorrect printing of the "appears as"
2027           message.  Affected file irssi/src/silc/core/client_ops.c
2028
2029 Sun Nov  9 17:45:11 EET 2003  Pekka Riikonen <priikone@silcnet.org>
2030
2031         * Added CRT (Chinese Remainder Theorem) supported RSA
2032           private keys and private key operations.  This significantly
2033           increases private key operation efficiency.  No compatibility
2034           issues with new or old private keys.  Affected files are
2035           lib/silccrypt/rsa.[ch], rsa_internal.h and pkcs1.c.
2036
2037 Sat Nov  8 13:08:53 EET 2003  Pekka Riikonen <priikone@silcnet.org>
2038
2039         * Fixed GCC-3.3.2 related compilation warnings from the
2040           source tree.
2041
2042 Fri Nov  7 23:01:47 EET 2003  Pekka Riikonen <priikone@silcnet.org>
2043
2044         * Removed RC6 from distributions.
2045
2046 Fri Nov  7 19:38:42 EET 2003  Pekka Riikonen <priikone@silcnet.org>
2047
2048         * Added some better comments to lib/silccrypt/silcpkcs.h,
2049           optimized some routines in lib/silccrypt/silcpkcs.c.
2050           Added test_silcpkcs into lib/silccrypt/tests/.
2051
2052         * Fixed silc_rng_global_init to actually init the global RNG
2053           if RNG wasn't provided for it.  Affected file is
2054           lib/silccrypt/silrng.c.
2055
2056 Thu Nov  6 21:08:28 EET 2003  Pekka Riikonen <priikone@silcnet.org>
2057
2058         * Added silc_hash_table_find_by_context_ext.  Affected files
2059           lib/silcutil/silchashtable.[ch].
2060
2061         * Save the public key on normal server in WHOIS command reply
2062           from attributes, if present, and add it to public key hash
2063           table.  Fixes WHOIS resolving by public key on normal server.
2064
2065           Optimized the attributes resolving on normal server to not
2066           resolve if we resolved them already from router.
2067
2068           Affected files are silcd/server_query.c, command_reply.c.
2069
2070 Wed Nov  5 19:36:30 CET 2003 Patrik Weiskircher <pat@icore.at>
2071
2072         * Added support for whois using attributes.
2073           Affected files silcd/command_reply.c, silcd/packet_receive.c,
2074           silcd/server.c, silcd/server_internal.h, silcd/server_query.c,
2075           silcd/server_util.c
2076
2077         * Added support for whois using public key attribute to /WHOIS i
2078           client command. Affected files irssi/docs/help/in/whois.in,
2079           irssi/src/silc/core/silc-servers.c, lib/silcclient/command.c
2080
2081 Wed Nov  5 23:37:36 EET 2003 Pekka Riikonen <priikone@silcnet.org>
2082
2083         * Fixed UMODE setting in server when the client has anonymous
2084           mode set.  The mode setting was not working.  Affected file
2085           silcd/command.c.
2086
2087 Mon Nov  2 11:36:08 CET 2003 Jochen Eisinger <jochen@penguin-breeder.org>
2088
2089         * Fixed some bugs and typos related to sending split messages.
2090           Print notification when sending messages with /MMSG.  Affected
2091           files irssi/scripts/silc-mime.pl, irssi/src/silc/core/client_ops.c
2092
2093 Fri Oct 31 12:33:59 EET 2003 Pekka Riikonen <priikone@silcnet.org>
2094
2095         * Optimized the socket referencing in packet routines, client
2096           library and server.  Affected files are lib/silccore/silcpacket.c,
2097           lib/silcclient/client.c and silcd/server.c.
2098
2099         * If silc_socket_set_qos is given with NULL arguments the QoS is
2100           reset from the socket.  Affected files are
2101           lib/silcutil/silcsockconn.[ch].
2102
2103 Thu Oct 30 21:23:24 CET 2003 Jochen Eisinger <jochen@penguin-breeder.org>
2104
2105         * Add a /LISTKEYS command which lists the locally cached
2106           client and server keys.  Affected files
2107           irssi/src/fe-common/module-formats.[ch],
2108           irssi/src/silc/core/silc-{channels,servers}.c
2109           irssi/docs/help/in/listkeys.in
2110
2111 Thu Oct 30 20:23:40 EET 2003 Pekka Riikonen <priikone@silcnet.org>
2112
2113         * Check that packet queue purging was successful.  Affected
2114           files lib/silcclient/client.c and silcd/packet_send.c.  Related
2115           to MAC failed errors.
2116
2117         * Do not clear the inbuf even if it is empty if QoS was applied
2118           to it.  Otherwise the QoS data is cleared and MAC failed error
2119           will occur.  Affected file lib/silccore/silcpacket.c.
2120
2121         * Use the rekey period time as rekey protocol timeout value.
2122           If the rekey does not succeed during the rekey period there's
2123           something very wrong, and we most likely end up with wrong keys,
2124           do graceful reconnect then.   Affected file silcd/server.c.
2125
2126         * Take reference of the socket in the parser context, as it's
2127           possible to have the parsers in queue after the socket is
2128           disconnected and this may cause crash.  Affected files are
2129           lib/silccore/silcpacket.c, lib/silcclient/client.c and
2130           silcd/server.c.
2131
2132 Thu Oct 30 17:01:01 EET 2003 Pekka Riikonen <priikone@silcnet.org>
2133
2134         * Fixed KICK command reply sending, it sent to replies.
2135           Affected file silcd/command.c.
2136
2137 Wed Oct 30 14:06:52 CET 2003 Jochen Eisinger <jochen@penguin-breeder.org>
2138
2139         * Finish the silc-mime.pl script. It now supports MIME type
2140           guessing using magic files, signing data messages, executing
2141           MIME handlers in background. Affected files
2142           irssi/scripts/silc-mime.pl and irssi/docs/help/in/mmsg.in
2143
2144         * Changed MIME signal handler to make things easier for the perl
2145           script. Affected files irssi/src/silc/core/client_ops.c,
2146           silc-servers.c, and irssi/docs/signals.txt
2147
2148         * Cleaned up the silc_mime_parse function and fixed detection
2149           of wrapped header lines. Affected file lib/silcutil/silcstrutil.c
2150
2151 Sun Oct 26 21:19:02 EET 2003 Pekka Riikonen <priikone@silcnet.org>
2152
2153         * Resolve the IP for file transfer listener from the connection
2154           socket.  Affected file lib/silcclient/client_ftp.c.
2155
2156         * Accept NULL hostname parameter in the functions
2157           silc_net_check_[local|remote]_by_socket.  Do not reverse lookup
2158           if hostname is not wanted.
2159
2160 Fri Oct 24 21:24:12 CEST 2003  Jochen Eisinger <jochen@penguin-breeder.org>
2161
2162         * Fixed race condition between silc_client_init and
2163           my_silc_scheduler. Affected file irssi/src/silc/core/silc-core.c
2164
2165 Fri Oct 24 16:43:40 EEST 2003  Pekka Riikonen <priikone@silcnet.org>
2166
2167         * Fixed file transfer connection closing when SIGNOFF for
2168           the client is received from server.  Affected file is
2169           lib/silcclient/client_ftp.c.
2170
2171 Tue Oct 21 13:35:57 CEST 2003  Pekka Riikonen <priikone@silcnet.org>
2172
2173         * Check for disconnected socket in QUIT callback.  Affected
2174           file silcd/command.c.
2175
2176 Thu Oct 21 09:43:17 CEST 2003  Jochen Eisinger <jochen@penguin-breeder.org>
2177
2178         * Modified the MIME parsing to allow \n and \r\n as delimiters.
2179           Affected files lib/silcutil/silcstrutil.c
2180
2181         * Cleaned up the escape/unescape functions for correctness and
2182           speed. Affected file irssi/src/silc/core/client_ops.c
2183
2184         * Removed handling for data messages with Content-Type: text/*,
2185           moved parsing of MIME headers to the signal handler, added
2186           support for signing and verifying data messages. Affected
2187           files are irssi/docs/signals.txt, irssi/src/silc/core/client_ops.c,
2188           irssi/src/silc/core/silc-{servers,channels}.c
2189
2190         * Added a perl script for handling data messages based on
2191           information read from Mailcap files. New file
2192           irssi/scripts/silc-mime.pl
2193
2194 Mon Oct 20 16:08:22 EEST 2003  Pekka Riikonen <priikone@silcnet.org>
2195
2196         * Added new SILC_MESSAGE_FLAG_ACK that can  be used to
2197           acknowledge recepetion of a message to the sender.  Updated
2198           protocol specs.
2199
2200 Sat Oct 18 11:55:33 EEST 2003  Pekka Riikonen <priikone@silcnet.org>
2201
2202         * Unregister channel key saving callback when deleting channel.
2203           Affected file lib/silcclient/idlist.c.
2204
2205         * Do not remove the client from channels in NOTIFY_TYPE_SIGNOFF
2206           before calling notify client operation.  Affected file is
2207           lib/silcclient/client_notify.c.
2208
2209         * Unregister QoS tasks when deleting the socket connection.
2210           Affected files lib/silcutil/silcsockconn.[ch],
2211           unix/silcunixsockconn.c.
2212
2213         * Implemented latest presence-attrs draft changes.  Affected
2214           files lib/silccore/silcattrs.h and
2215           irssi/src/silc/core/silc-queries.c.
2216
2217 Tue Oct 14 18:24:53 EEST 2003  Pekka Riikonen <priikone@silcnet.org>
2218
2219         * Save old channel keys in list to allow more rapid change
2220           of channel keys if server for some reason does that.  This
2221           avoids loosing so many channel messages due to not having
2222           key to decrypt.  Affected file lib/silcclient/silcclient.h,
2223           idlist.c and client_channel.c.
2224
2225 Mon Oct 13 21:37:47 EEST 2003  Pekka Riikonen <priikone@silcnet.org>
2226
2227         * Continued backup router tests and fixes.  Affected files
2228           silcd/server_backup, server_util.c, server.c.  See TODO.
2229
2230 Sun Oct 12 19:58:18 EEST 2003  Pekka Riikonen <priikone@silcnet.org>
2231
2232         * Fixed SERVER_SIGNOFF handling in servers.  The client
2233           was removed from wrong list thus not removing the client
2234           at all.  Affected file silcd/packet_receive.c.
2235
2236         * Do not execute rekey protocol for disabled connections as
2237           it would never go through.  Affected file silcd/server.c.
2238
2239         * Added timeout for rekey protocol to catch if the protocol
2240           never executes successfully.  Affected files silcd/server.c
2241           and protocol.h.
2242
2243 Sat Oct 11 15:39:22 EEST 2003  Pekka Riikonen <priikone@silcnet.org>
2244
2245         * Abandon packet processing for disconnected sockets.  Check
2246           this always after calling packet processing callback.
2247           Affected file lib/silccore/silcpacket.c.
2248
2249         * Fixed double registration disconnection code in server.
2250           Closed wrong connection.  Affected file silcd/packet_receive.c.
2251
2252 Fri Oct 10 16:27:12 EEST 2003  Pekka Riikonen <priikone@silcnet.org>
2253
2254         * On normal server reconnect to primary during resuming 4
2255           times, then give up.  Affected file silcd/server_backup.c.
2256
2257         * If during reconnecting to routers we notice we have router
2258           connection but no primary router set, the server is in desync.
2259           Reconnect to primary to restore network.  Affected file
2260           silcd/server.c.
2261
2262         * Assure that only one protocol is exeucting at the same time.
2263           Added checks for all protocols.  Affected files are
2264           silcd/server.c and server_backup.c.
2265
2266 Thu Oct  9 20:24:09 EEST 2003  Pekka Riikonen <priikone@silcnet.org>
2267
2268         * Check that a string is not already part on invite/ban
2269           string when processing it.  Affected file silcd/server_util.c.
2270
2271 Thu Oct  9 12:06:40 CEST 2003  Pekka Riikonen <priikone@silcnet.org>
2272
2273         * Fixed the CUMODE_CHANGE for founder mode changes to comply
2274           with 1.2 version of the protocol.  Affected file is
2275           silcd/packet_receive.c.
2276
2277 Wed Oct  8 19:41:15 EEST 2003  Pekka Riikonen <priikone@silcnet.org>
2278
2279         * ERR_BAD_PASSWORD now returns the Channel ID of the channel
2280           where the passphrase was given.  Affected file is
2281           silcd/command.c.
2282
2283 Wed Oct  8 09:32:12 CEST 2003  Pekka Riikonen <priikone@silcnet.org>
2284
2285         * INVITE and BAN notifys are now delivered from routers to
2286           servers (but not clients) on the channel.  Updated specs and
2287           code.  Affected files silcd/packet_[send|receive].[ch],
2288           command.c, server.c and server_util.c.
2289
2290         * Implemented INVITE and BAN announcing.  Affected files are
2291           silcd/server.[ch], server_util.c.
2292
2293         * Implemented SilcStatus error type argument returning in
2294           command reply error in server.  Affected file silcd/command.c.
2295
2296         * Implemented SilcStatus argument returning in comand reply
2297           in client library.  The command_reply client operation now
2298           returns error specific arguments as well.  Affected files
2299           are lib/silcclient/command_reply.[ch], client_resume.c,
2300           lib/silccore/silcstatus.[ch].
2301
2302 Sun Oct  5 20:22:08 EEST 2003  Pekka Riikonen <priikone@silcnet.org>
2303
2304         * Backup router protocol version 1.2 implemented.  Testing still
2305           required.  Affected files in silcd/server_backup.[ch], server.c,
2306           packet_receive.c and server_internal.h.
2307
2308 Sun Oct  5 12:36:37 EEST 2003  Pekka Riikonen <priikone@silcnet.org>
2309
2310         * silc_client_send_[channel|private]_message now return TRUE
2311           or FALSE.  Affected file lib/silcclien/client_channel.c and
2312           client_prvmsg.c.
2313
2314 Thu Oct  2 17:03:09 EEST 2003  Pekka Riikonen <priikone@silcnet.org>
2315
2316         * Check for explicit nickname in INVITE and BAN processing
2317           during join as well (and don't expect only wildcards in
2318           invite/ban strings).  Affected file silcd/command.c.
2319
2320         * Fixed the INVITE and BAN by public key.  The public key saved
2321           is the PK payload (as specified) not the raw data.  Affected
2322           file silcd/server_util.c.
2323
2324 Wed Oct  1 20:29:06 EEST 2003  Pekka Riikonen <priikone@silcnet.org>
2325
2326         * UTF-8 text message support for actions and notices in SILC
2327           Client.  Affected file irssi/src/silc/core/client_ops.c.
2328
2329         * silc_get_username and silc_get_real_name now returns sensible
2330           data on Win32.  Patch by Toni Willberg.  Affected file is
2331           lib/silcutil/win32/silcwin32util.c.
2332
2333 Sun Aug 24 23:35:19 CEST 2003  Jochen Eisinger <c0ffee@penguin-breeder.org>
2334
2335         * Provide a signal handler to send MIME encoded messages and emit
2336           a signal when a MIME encoded message is received. Also document
2337           the signals for usage with the perl interface.
2338
2339           A sample perl script will be supplied at a later point.
2340
2341           Affected files are irssi/docs/signals.txt,
2342           irssi/src/silc/core/client_ops.[ch],
2343           irssi/src/silc/core/silc-{channels,servers}.c
2344
2345 Sun Aug 24 12:58:30 CEST 2003  Jochen Eisinger <c0ffee@penguin-breeder.org>
2346
2347         * Use SILC_COMMAND_PING to estimate the round-trip time to the
2348           server. Use this time to display a lag and disconnect when it
2349           exceeds a specified limit.
2350
2351           Affected files are irssi/src/silc/core/silc-{lag,core}.c.
2352
2353 Mon Aug 11 17:14:17 EEST 2003  Pekka Riikonen <priikone@silcnet.org>
2354
2355         * Remove the channel auth list in normal server if router
2356           encofrces its list during connecting.  Send notify to channel
2357           to remove the mode to remove the list.  Affected files are
2358           silcd/server_util.c and silcd/packet_receive.c.
2359
2360 Wed Aug  6 14:52:04 EEST 2003  Pekka Riikonen <priikone@silcnet.org>
2361
2362         * Added support for channel public keys.  Updated protocol specs
2363           and implemented it.  Affected files are
2364           silcd/command.c, command_reply.c, lib/silcclient/command.c,
2365           lib/silcclient/command_reply.c.
2366
2367 Wed Jul 23 12:17:01 EEST 2003  Pekka Riikonen <priikone@silcnet.org>
2368
2369         * Ignore SIGXFSZ and SIGXCPU signals in server.  They can
2370           terminate the process on Linux.  Affected file silcd/silcd.c.
2371
2372 Mon Jun  2 19:13:27 EEST 2003  Pekka Riikonen <priikone@silcnet.org>
2373
2374         * Check for NULL buffer in silc_buffer_clear.  Affected file
2375           is lib/silcutil/silcbuffer.h.
2376
2377         * Simplified the backup router protocol by removing the _GLOBAL
2378           types.  Updated protocol specs and the code.  Affected files
2379           are silcd/server_backup.[ch].
2380
2381 Thu Apr 24 19:50:25 EEST 2003  Pekka Riikonen <priikone@silcnet.org>
2382
2383         * Deny '@' and '!' from nicknames since they are reserved
2384           by the SILC_COMMAND_INVITE and SILC_COMMAND_BAN commands.
2385           Updated protocol specs and the code.
2386
2387           Affected files are silcd/server_util.[ch].
2388
2389 Wed Apr  9 18:51:59 EEST 2003  Pekka Riikonen <priikone@silcnet.org>
2390
2391         * Fixed stack overflow in Irssi SILC client.  Affected
2392           file irssi/src/silc/core/client_ops.c.
2393
2394         * Check that Host is set in ServerConnection and RouterConnection
2395           in silcd.conf.  Affected file silcd/serverconfig.c.
2396
2397         * Fixed crash in server with protocol completion callbacks,
2398           namely rekey and backup resuming protocols.  Affected files
2399           are silcd/server_backup.c and silcd/server.c.
2400
2401         * Fixed rekey protocol to not restart if it is started already.
2402           Affected files are lib/silcclient/client.c and
2403           silcd/server.c.c
2404
2405 Mon Mar 17 18:35:24 EET 2003  Pekka Riikonen <priikone@silcnet.org>
2406
2407         * Rewrote SilcList, affected file lib/silcutil/silc*list.h.
2408
2409         * Fixed EOF handling in SILC Config, affected file
2410           lib/silcutil/silcconfig.c.
2411
2412         * Fixed buffer overflows in lib/silcutil/silcstrutil.c.
2413
2414         * Fixed RESOLVING flag handling in JOIN notify and other
2415           notifys to handle the resolvings correctly in client library.
2416           Affected file lib/silcclient/client_notify.c.
2417
2418         * Do not send full INVITE and BAN lists in INVITE and BAN
2419           notifys, only the changed information.  Affected file
2420           silcd/command.c.
2421
2422         * Fixed INVITE notify sending in INVITE command, send it
2423           only when needed.  Affected file silcd/command.c.
2424
2425         * Handle the founder key change properly in CMODE_CHANGE
2426           notify.  Bug #122.  Affected file silcd/packet_receive.c.
2427
2428 Sun Mar  9 16:29:20 EET 2003  Pekka Riikonen <priikone@silcnet.org>
2429
2430         * Remove the mark for output (mark it only for input) after
2431           purging outgoing queue.  Prevents the "Error in select()"
2432           floods.  Affected file silcd/packet_send.c.
2433
2434         * Fixed incorrect connection deletion from client library
2435           after calling "connect" client operation.  Could cause
2436           crashes for example during reconnect timeouts.  Affected
2437           files are lib/silcclient/client.c and
2438           irssi/src/silc/core/client_ops.c.
2439
2440         * Check server private key file permissions before starting
2441           the server.  Affected file silcd/serverconfig.c.
2442
2443 Tue Feb  4 22:53:26 EET 2003  Pekka Riikonen <priikone@silcnet.org>
2444
2445         * NULL terminate allocated string in silc_buffer_strformat.
2446           Affected file lib/silcutil/silcbuffmt.c.
2447
2448         * Rewrote the invite/ban list string handling in server to
2449           use SilcBuffer instead.  Affected files are silcd/command.c
2450           and silcd/server_util.c.
2451
2452 Mon Feb  3 14:43:52 CET 2003  Pekka Riikonen <priikone@silcnet.org>
2453
2454         * Fixed double free in CMODE command when setting new HMAC
2455           for channel.  Affected file silcd/command.c.
2456
2457         * Added couple of missing memset's to zero sensitive memory.
2458           Affected files silcd/command.c, lib/silcclient/command.c.
2459
2460 Sun Jan 26 12:20:30 EET 2003  Pekka Riikonen <priikone@silcnet.org>
2461
2462         * Fixed a double free in INVITE command error handling in
2463           server.  Affected file silcd/command.c.
2464
2465         * Added macros SILC_SWAB_[16|32] to swab byte order of
2466           16-bit and 32-bit unsigned integers.  Affected file
2467           lib/silcutil/silctypes.h.
2468
2469         * Use the SILC_SWAB_16 instead of htons() in server when
2470           handling ports since the ports in structures are always
2471           in little-endian order (regardless of platform).  Affected
2472           file silcd/serverid.c and silcd/server_backup.c.
2473
2474 Tue Jan 21 17:18:04 EET 2003  Pekka Riikonen <priikone@silcnet.org>
2475
2476         * Send DISCONNECT in close admin command in server.  Affected
2477           file silcd/command.c.
2478
2479         * Check whether we are already connecting to a remote router
2480           (in addition of checking whether we are already connected)
2481           before creating new connection.  Affected file silcd/server.c.
2482
2483 Thu Jan 16 18:47:00 EET 2003  Pekka Riikonen <priikone@silcnet.org>
2484
2485         * Added better compiler and compiler flags checking in
2486           configure.
2487
2488         * Check that socket is valid after QoS is applied to data.
2489           Affected file lib/silcutil/unix/silcunixsockconn.c.
2490
2491         * Make sure the socket connecetion is not closed to early
2492           when closing connection in server.  Also make sure the
2493           connection is always closed after error in a protocol.
2494           Affected file silcd/server.c.
2495
2496 Wed Jan 15 11:03:36 CET 2003  Pekka Riikonen <priikone@silcnet.org>
2497
2498         * Removed --session and --dummy options from Irssi SILC Client.
2499           -d option is available only if --enable-debug was given.
2500           Affected files are irssi/src/silc/core/silc-core,
2501           irssi/src/core/session.c and irssi/src/fe-text/silc.c.
2502
2503 Tue Jan 14 12:25:09 CET 2003  Pekka Riikonen <priikone@silcnet.org>
2504
2505         * Added silc_buffer_steal to steal the data from the buffer.
2506           Affected file lib/silcutil/silcbuffer.h.
2507
2508 Sat Jan 11 18:16:29 CET 2003  Giovanni Giacobbi <giovanni@giacobbi.net>
2509
2510         * Fixed server crash with double Primary block in config file.
2511
2512           Fixed also various memory leaks around the config file
2513           parser.  Affected files lib/silcutil/silcconfig.c,
2514           silcd/serverconfig.c.
2515
2516         * Changed my nickname (Johnny Mnemonic) to my real name, this
2517           means that bugs introduced by him were actually introduced
2518           by me!
2519
2520 Tue Jan  7 21:58:53 CET 2003  Jochen Eisinger <c0ffee@penguin-breeder.org>
2521
2522         * Don't display "foo appears as foo\nYou're now known as foo"
2523           messages.  Affected file irssi/src/silc/core/client_ops.c
2524
2525 Tue Jan  7 20:08:15 EET 2003  Pekka Riikonen <priikone@silcnet.org>
2526
2527         * Fixed error handling of invalid client entry when calling
2528           commands in server.  Fixes a crash.  Affected file
2529           silcd/command.c.
2530
2531 Thu Dec 26 14:19:29 EET 2002  Pekka Riikonen <priikone@silcnet.org>
2532
2533         * Added some sanity checks in server for correctness of the
2534           server configuration.  Affected file silcd/serverconfig.c.
2535
2536 Fri Dec 20 10:47:59 CET 2002  Pekka Riikonen <priikone@silcnet.org>
2537
2538         * Prevent endless resolving of user informations in USERS
2539           command by checking the command reply status correctly.
2540           Affected file lib/silcclient/command_reply.c.
2541
2542 Tue Dec 17 10:05:00 CET 2002  Pekka Riikonen <priikone@silcnet.org>
2543
2544         * Fixed file writing on WIN32 to use O_BINARY flag.  Affected
2545           file is lib/silcutil/silcfileutil.c.  A patch by Matthew
2546           Aldous <Matthew@Aldous.com>.
2547
2548         * Added better implementation using CriticalSection of
2549           SilcMutex on WIN32.  A patch by Mikko Lähteenmäki
2550           <mikko.lahteenmaki@pikabaana.net>.
2551
2552         * Added some Winsock WIN32 compatiblity defines into
2553           includes/silcwin32.h.
2554
2555 Mon Dec 16 19:33:05 EET 2002  Pekka Riikonen <priikone@silcnet.org>
2556
2557         * Fixed double free in async host lookup code.  Affected file
2558           lib/silcutil/silcsockconn.c.
2559
2560         * On backup router handle now the SERVER_SIGNOFF from router
2561           for local connected servers too, and close the connections.
2562
2563           Do not process them as normally signing off servers when they
2564           really signoff by sending EOF fe, but always assume that
2565           router sends the SERVER_SIGNOFF.
2566
2567           Affected files silcd/server.c and silcd/packet_receive.c.
2568
2569         * Fixed socket unsetting when closing connections.  Affected
2570           files silcd/server.c and silcd/packet_send.c.
2571
2572         * Do not print the nickname in SERVER_SIGNOFF if we do not
2573           have it.  Prevents asserts in Irssi core.  It is possible we
2574           don't have the nick if it was just being resolved when server
2575           signoff.  Affected file irssi/src/silc/core/client_ops.c.
2576
2577 Thu Dec 12 23:22:50 EET 2002  Pekka Riikonen <priikone@silcnet.org>
2578
2579         * Fixed autonick crashbug in client library.  Affected file
2580           lib/silcclient/client.c.
2581
2582         * Fixed Unix implementation of SilcMutex to really assert if
2583           the mutex is locked/unlcoked already.  Affected file
2584           lib/silcutil/unix/silcunixmutex.c.
2585
2586         * Fixed locking in silc_schedule_uninit.  It didn't lock
2587           when dispatching timeout tasks.  Affected file is
2588           lib/silcutil/silcschedule.c.
2589
2590         * Changed Win32 implementation of SilcThread to use modern
2591           Win32 interface.  Affected file is
2592           lib/silcutil/win32/silcwin32thread.c  A patch by Mikko L.
2593
2594 Thu Dec 12 12:06:59 CET 2002 Jochen Eisinger <c0ffee@penguin-breeder.org>
2595
2596         * Don't print signed messages when sending failed.  Affected files
2597           irssi/src/silc/core/silc-[servers.c/commands.h]
2598
2599         * Send adquate signal when founding a channel by joing it.  Affect
2600           file irssi/src/silc/core/client_ops.c
2601
2602 Wed Dec 11 21:46:19 CET 2002 Jochen Eisinger <c0ffee@penguin-breeder.org>
2603
2604         * Fix theme abstracts parsing.  Affected files irssi/default.theme,
2605           irssi/src/fe-common/core/themes.c
2606
2607 Wed Dec 11 20:20:07 EET 2002 Pekka Riikonen <priikone@silcnet.org>
2608
2609         * Fixed close command to use the port correctly when closing
2610           server connections.  Affected file silcd/idlist.c.
2611
2612         * Check for NULL outbuf in silc_socket_write.  It is possible
2613           that it is NULL is some odd case.  Affected files are
2614           lib/silcutil/[unix/win32]/silc[unix/win32]sockconn.c.
2615
2616         * Do not call final protocol callback for backup router
2617           resuming protocol when closing connection.  It is closed
2618           by timeout in case of error.  Affected file silcd/server.c.
2619
2620         * Backup reconnect to router if backup resuming protocol
2621           failed.  Affected file silcd/server_backup.c.
2622
2623 Wed Dec 11 10:01:26 CET 2002 Pekka Riikonen <priikone@silcnet.org>
2624
2625         * Fixed double free in SKE library error hadling when signature
2626           error occurred.  Affected file lib/silcske/silcske.c.
2627
2628         * Save the fingerprint to new SilcClientEntry after changing
2629           nickname.  Affected file lib/silcclient/client_notify.c.
2630
2631         * Print SIGNOFF in Irssi SILC client only if the nickname is
2632           known.  Prevents asserts in Irssi core.  It is possible we
2633           don't have the nick if it was just being resolved when it
2634           quit.  Affected file irssi/src/silc/core/client_ops.c.
2635
2636 Tue Dec 10 21:47:56 EET 2002  Pekka Riikonen <priikone@silcnet.org>
2637
2638         * Fixed double free in invite list adding code when adding
2639           invite strings.  Affected file silcd/server_util.c.
2640
2641 Fri Dec  6 17:40:24 EET 2002  Pekka Riikonen <priikone@silcnet.org>
2642
2643         * More log printing during backup router protocol.  Affected
2644           file silcd/server_backup.c.
2645
2646         * Removed backwards support for old private key file format.
2647           Affected file lib/silccrypt/silcpkcs.c.
2648
2649         * Removed backwards support for not-so-strict decryption length
2650           check, it's strict now.  Affected lib/silccrypt/silccipher.c.
2651
2652         * GETKEY to update the client entrys fingerprint too.
2653           Affected file lib/silcclient/command_reply.c.
2654
2655         * Added --without-libtoolfix for package builders using weird
2656           wrappers around libtool (BSD at least).
2657
2658 Thu Dec  5 22:29:46 EET 2002  Pekka Riikonen <priikone@silcnet.org>
2659
2660         * Fixed backup router bugs:  When backup resumes router and
2661           receives a CHANNEL_MESSAGE packet the backup must not act
2662           as router since the packet header decryption would be
2663           different.  Also, when relaying packets to channel, do
2664           not re-encrypt packets on backup that came from the primary
2665           since the connection isn't really router-router connection.
2666           Affected files silcd/server.c, silcd/packet_send.c.
2667
2668         * Added checks in encryption/decryption that encryption/decryption
2669           length sent as argument really is multiple by block size.  Helps
2670           catching really weird bugs like the above backup router bugs
2671           when packets are being decrypted in wrong way.  Affected files
2672           lib/silccore/silcpacket.c, and lib/silccrypt/silccipher.c.
2673
2674         * Fixed padding generation in private key file encryption.
2675           Affected file lib/silccrypt/silcpkcs.c.
2676
2677 Thu Dec  5 16:35:23 EET 2002  Pekka Riikonen <priikone@silcnet.org>
2678
2679         * Added ignore_message_signatures setting which can be used
2680           to ignore signatures in messages.  Affected files are
2681           irssi/src/silc/core/client_ops.c, silc-core.c.
2682
2683         * Fixed the libtoolfix to use command line options instead of
2684           environment variables.  They didn't work as expected.  Now,
2685           the libtool is fully run-time configurable.
2686
2687 Wed Dec  4 21:08:52 CET 2002  Jochen Eisinger <c0ffee@penguin-breeder.org>
2688
2689         * Verify signature payload for signed messages. Affected files
2690           irssi/src/silc/core/client_ops.h, irssi/src/silc/core/silc-servers.c,
2691           irssi/src/silc/core/silc-core.h
2692
2693         * Display signature verification result in public and private
2694           messages using theme abstracts. See irssi/default.theme for
2695           examples on their usage. Affected files
2696           irssi/default.theme, irssi/src/fe-common/silc/fe-messages.h,
2697           irssi/src/fe-common/silc/module-formats.[ch],
2698           irssi/src/fe-common/silc/fe-common-silc.c,
2699           irssi/src/fe-common/silc/Makefile.am
2700           irssi/src/fe-common/core/fe-messages.[ch]
2701
2702         * Fixed bugs in Irssi's theme parsing. Affected files
2703           irssi/src/fe-common/core/themes.c
2704
2705 Wed Dec  4 18:29:13 EET 2002  Pekka Riikonen <priikone@silcnet.org>
2706
2707         * Calculate the correct length for signed messages before
2708           encrypting, it must be multiple by block size.  Affected
2709           file lib/silccore/silcmessage.c.
2710
2711         * silc_message_signed_get_public_key returns now both
2712           decoded and encoded public key.  Affected files are
2713           lib/silccore/silcmessage.[ch].
2714
2715         * Added libtoolfix script that makes the libtool more generic
2716           and configurable in run-time.  Now we can specify in run-time
2717           if what kind of libraries we want to create, regardless of
2718           configuration.  SIMs are now creates even if --disable-shared
2719           was explicitly given.
2720
2721 Tue Dec  3 23:26:55 EET 2002  Pekka Riikonen <priikone@silcnet.org>
2722
2723         * Fixed founder key sending in CMODE command in client.
2724           Affected file lib/silcclient/command.c.
2725
2726         * Fixed CUMODE founder authentication in server to not check
2727           for client's public key since it's not supposed to do that.
2728           Affected file silcd/command.c.
2729
2730 Tue Dec  3 12:02:41 CET 2002  Jochen Eisinger <c0ffee@penguin-breeder.org>
2731
2732         * Set realname and hostname in NICK_REC records. Affected file
2733           irssi/src/silc/core/silc-nicklist.c
2734
2735 Mon Dec  2 20:50:20 EET 2002  Pekka Riikonen <priikone@silcnet.org>
2736
2737         * Remove 1.0 protocol backwards compat code from client
2738           library.
2739
2740         * Added more reliable check for whether nickname did change
2741           or not, or whether only Client ID changed in NICK_CHANGE
2742           notify.  Affected file lib/silcclient/client_notify.c.
2743           Fixes bug in '@' character handling in a nickname.
2744
2745         * Added support for automatically parsing signature from
2746           the message payload.  Added new function
2747           silc_message_get_signature to return the payload to
2748           application.  Affected files lib/silccore/silcmessage.[ch].
2749
2750         * Changed the private_message and channel_message client
2751           operations to deliver the SilcMessagePayload to the
2752           application too.  Application can use it fe. to get the
2753           signature from the message for verification.  Affected
2754           file lib/silcclient/silcclient.h, client_channel.c and
2755           client_prvmsg.c.
2756
2757         * Redefined the signed payload for message payloads.
2758           Updated protocol specs and implemented.
2759
2760 Mon Dec  2 16:28:29 EET 2002  Pekka Riikonen <priikone@silcnet.org>
2761
2762         * Fixed wrong invite and ban list handling in server command
2763           reply.  Affected files are silcd/command_reply.c,
2764           silcd/server_util.[ch].
2765
2766 Sun Dec  1 20:48:17 EET 2002  Pekka Riikonen <priikone@silcnet.org>
2767
2768         * Fixed CMODE setting in server when founder mode was set.
2769           Affected file silcd/command.c.  Bug #95.
2770
2771         * Added support to setting specific public key in CMODE in
2772           Irssi SILC client.  Affected file lib/silcclient/command.c.
2773
2774         * Added support to use specific public key in CUMODE in
2775           Irssi SILC Client.  Affected file lib/silcclient/command.c.
2776
2777         * Added support for inviting and banning by public key in
2778           Irssi SILC client.  Affected file lib/silcclient/command.c.
2779
2780         * Fixed fingerprint/babbleprint showing in invite and ban
2781           list command replys.  Affected file is
2782           irssi/src/silc/core/client_ops.c.
2783
2784 Sun Dec  1 16:32:03 CET 2002  Jochen Eisinger <c0ffee@penguin-breeder.org>
2785
2786         * Format CMODE +c and +h to display both the mode and the argument
2787
2788 Sun Dec  1 18:17:22 EET 2002  Pekka Riikonen <priikone@silcnet.org>
2789
2790         * Added test vectors and test programs for SHA-1, MD5,
2791           HMAC-SHA1 and HMAC-MD5.  New tests are located in
2792           lib/silccrypt/tests/.  Fixed also argument decoding bug in
2793           MD5 implementation.  Affected file lib/silccrypt/md5.c.
2794
2795         * Changed the channel private key and private message key
2796           generation (with static keys) to use SHA1 instead of MD5,
2797           as SHA1 is the mandatory hash function in SILC.  Affected
2798           file lib/silcclient/client_[channel/prvmsg].c.
2799
2800         * Changed the private key file encryption to use SHA1 instead
2801           of MD5.  Added support for the old generation and added
2802           automatic change of the key (to be removed later).  Affected
2803           files lib/silccrypt/silcpkcs.c.
2804
2805 Sat Nov 30 19:07:52 EET 2002  Pekka Riikonen <priikone@silcnet.org>
2806
2807         * Load only files with .pub suffix in PublicKeyDir.  Affected
2808           file silcd/serverconfig.c.
2809
2810 Sat Nov 30 14:29:34 CET 2002  Johnny Mnemonic <johnny@themnemonic.org>
2811
2812         * Extended the SILC_SERVER_LOG_ERROR macro to all available logging
2813           channels.  Affected files silcd/silcd.c, silcd/server.h.
2814
2815         * Added the config directive PublicKeyDir for the client block.
2816           Affected files doc/exampe_silcd.conf.in, silcd/serverconfig.[ch].
2817
2818 Sat Nov 30 09:30:55 CET 2002  Pekka Riikonen <priikone@silcnet.org>
2819
2820         * Merged Toni's irssi/silc.conf patch.
2821
2822         * ROBODoc cleanup patch to lib/silccrypt/silcpkcs.h by johnny.
2823
2824         * Max alloc tests in allocation routines.  Affected file
2825           lib/silcutil/silcmemory.c.
2826
2827 Fri Nov 29 23:44:29 EET 2002  Pekka Riikonen <priikone@silcnet.org>
2828
2829         * Fixed a typo in resuming code that fixed detach/resume code
2830           in server.  Bug #93.  Affected file silcd/packet_receive.c.
2831
2832 Thu Nov 28 17:17:11 CET 2002  Jochen Eisinger <c0ffee@penguin-breeder.org>
2833
2834         * Do reverse lookups for server when /connecting. Affected files
2835           irssi/silc.conf, irssi/src/core/servers.c, irssi/src/core/network.c,
2836           irssi/src/core/net-nonblock.*
2837
2838 Thu Nov 28 16:19:18 CET 2002  Pekka Riikonen <priikone@silcnet.org>
2839
2840         * Added library versioning for shared libraries.  Affected
2841           files configure.in.pre and lib/Makefile.am.pre.
2842
2843 Wed Nov 27 21:51:52 CET 2002  Jochen Eisinger <c0ffee@penguin-breeder.org>
2844
2845         * Display INVITE and BAN lists as specified by SILC 1.2
2846
2847 Wed Nov 27 16:01:11 CET 2002  Pekka Riikonen <priikone@silcnet.org>
2848
2849         * Do not send invite list back unless asked (when sending
2850           no arguments) or when list was modified.  Affected file
2851           silcd/command.c.
2852
2853         * Remove client from invite list in KILLED notify and in
2854           KILL command.  Affected file silcd/command.c and
2855           silcd/server.[ch].
2856
2857         * Fixed bugs in invite list handling in INVITE command.
2858           Affected files silcd/command.c and silcd/server_util.c.
2859
2860         * Merged with Irssi 0.8.6.
2861
2862         * Fixed UTF-8 in Irssi SILC Client, setlocale was missing.
2863           Affected file irssi/src/fe-text/silc.c.
2864
2865 Mon Nov 25 18:21:43 EET 2002  Pekka Riikonen <priikone@silcnet.org>
2866
2867         * The silc_argument_get_[first/next] now return the argument
2868           type to caller.  Added silc_argument_payload_encode_one.
2869
2870           Affected files are lib/silccore/silcargument.[ch].
2871
2872         * Added support for the SILC 1.2 INVITE command and new
2873           invite lists to server.  Affected files are silcd/command.c,
2874           silcd/server_util.[ch] and silcd/packet_[receive/send].[ch].
2875
2876         * Added support for the SILC 1.2 BAN command and new
2877           ban lists to server.  Affected files are silcd/command.c,
2878           silcd/server_util.[ch] and silcd/packet_[receive/send].[ch].
2879
2880         * Added support to client sending new INVITE command.  Affected
2881           file is lib/silcclient/command.c.
2882
2883         * Added support to client sending new BAN command.  Affected
2884           file is lib/silcclient/command.c.
2885
2886         * Added support for removing client from invite list when kicked
2887           from channel, as SILC 1.2 dictates.  Affected files are
2888           silcd/packet_receive.c and silcd/command.c.
2889
2890 Sun Nov 24 18:26:42 EET 2002  Pekka Riikonen <priikone@silcnet.org>
2891
2892         * If iv argument to silc_cipher_[encrypt/decrypt] is NULL, use
2893           automatically the cipher's internal IV.  Affected files
2894           lib/silccrypt/silccipher.[ch].
2895
2896         * Assure the RESUME_CLIENT packet is not sent to twice to
2897           backup router if the detached client was originated from
2898           the backup.  Affected file silcd/server.c.  Bug #76.
2899
2900         * Changed silc_sim_symname to not allocate memory.  Affected
2901           file lib/silcsim/silcsimutil.c.
2902
2903         * Fixed memory leaks with SIMs in server.  Affected files
2904           silcd/serverconfig.c, silcd/server.c.
2905
2906         * Fixed channel key distribution after resuming detached
2907           client.  Affected files silcd/packet_receive.c.
2908
2909         * Fixed channel's global_user boolean checking after detaching.
2910           Check it after changing the owner of the client not before.
2911           Affected file silcd/packet_receive.c.
2912
2913         * Fixed few double frees from client library.  Fixes at least
2914           Bug #81, possibly others too.
2915
2916         * UTF-8 decode topics also in JOIN command reply and TOPIC_SET
2917           notifys in Irssi SILC Client.  Affected file is
2918           irssi/src/silc/core/client_ops.c.  Bug #82.
2919
2920         * Applied Ville Räsänen's manual page and --mandir bugfix
2921           patch.  Affected files are configure.in.pre and Makefile.am.pre.
2922           Bug #88.
2923
2924 Fri Nov 22 18:34:20 EET 2002  Pekka Riikonen <priikone@silcnet.org>
2925
2926         * Added support to backup router protocol for backup to tell
2927           normal server that it cannot use the backup router as primary
2928           because the primary isn't really down.  Updated protocol
2929           specs.
2930
2931         * Added support for primary router to tell backup router that
2932           resuming is not possible because the backup really isn't primary
2933           in the cell.  For example if backup disconnected itself the
2934           resuming is not allowed since the primary really did not
2935           go down.  Updated protocol specs.
2936
2937         * Removed MARS from crypto library.
2938
2939         * Defined the CTR mode and Randomized CBC mode in SILC.  The
2940           CTR mode is RECOMMENDED now in specification.  Defined also
2941           Serpent cipher as optional cipher.  Updated the protocol specs.
2942
2943 Thu Nov 21 12:43:28 EET 2002  Pekka Riikonen <priikone@silcnet.org>
2944
2945         * Added support for inviting/banning by IP/MASK, public key,
2946           and explicit Client ID.  Redefined the command and notify
2947           types to allow easier forwards support for other methods
2948           of inviting/banning.  Updated protocol specs.
2949
2950         * Remove the client from channel's invite lists if the client
2951           is kicked or killed.  Updated protocol specs.
2952
2953         * Unified the Channel Message Payload and Private Message
2954           into one Message Payload.  Updated protocol specs and
2955           implemented.
2956
2957 Tue Nov 19 22:30:56 EET 2002  Pekka Riikonen <priikone@silcnet.org>
2958
2959         * Don't wait for EOF after socket error has occurred, but
2960           close the connection.  Affected file is silcd/server.c.
2961
2962 Mon Nov 18 18:58:26 EET 2002  Pekka Riikonen <priikone@silcnet.org>
2963
2964         * Added support for setting FOUNDER mode on channel with
2965           specific public key which can be set with CMODE command.
2966           Updated protocol specs and implemented in client and server.
2967
2968         * Fixed the Irssi SILC client to correctly shutdown the client
2969           library to avoid memory leaks.  Affected files are
2970           irssi/src/silc/core/silc-core.c and silc-servers.c.
2971
2972         * Deprecated the No Reply flag in SKE protocol and introduced
2973           "IV Included" flag which can be used to indicate that the IV
2974           is included in the ciphertext.  This makes it possible to use
2975           SILC on unreliable transport, such as UDP which may cause
2976           packet reordering and losses.  Updated protocol specs, did
2977           not implement yet.
2978
2979 Sun Nov 17 15:50:57 EET 2002  Pekka Riikonen <priikone@silcnet.org>
2980
2981         * Fixed the MPI implementation of silc_mp_sizeinbase to return
2982           < 32 bit values in correct size.  Affected file is
2983           lib/silcmath/mp_mpi.c.
2984
2985 Sat Nov 16 13:14:45 EET 2002  Pekka Riikonen <priikone@silcnet.org>
2986
2987         * Fixed the KE Start Payload parsing to check that mandatory
2988           fields are present.  Affected file lib/silcske/payload.c.
2989
2990         * Fixed compilation warnigs in Irssi SILC Client.  Affected
2991           files are irssi/src/silc/core/silc-query.c. client_ops.c.
2992
2993 Thu Nov 14 19:33:28 CET 2002  Jochen Eisinger <c0ffee@penguin-breeder.org>
2994
2995         * Print "nick now appears as newnick" and update Irssi's nicklist
2996           when you change your nick to "nick". Closes #62
2997
2998         * Never format your own nick. Closes #63
2999
3000 Thu Nov 14 09:44:54 CET 2002  Jochen Eisinger <c0ffee@penguin-breeder.org>
3001
3002         * SILC_UMODE_GONE changes are now propagated correctly to the
3003           Irssi client. Closes #54
3004
3005 Tue Nov 12 19:42:18 CET 2002  Jochen Eisinger <c0ffee@penguin-breeder.org>
3006
3007         * Fixed example in /HELP KEY
3008
3009         * Added expando $j which expands to current SILC Client version
3010
3011 Tue Nov 12 19:46:39 EET 2002  Pekka Riikonen <priikone@silcnet.org>
3012
3013         * Fixed public key decoding in crypto library.
3014
3015         * Added better error printing to SKE library.
3016
3017 Tue Nov 12 08:50:12 CET 2002  Pekka Riikonen <priikone@silcnet.org>
3018
3019         * Fixed NICK command to not crash if nickname was not sent.
3020
3021 Mon Nov 11 19:32:00 EET 2002  Pekka Riikonen <priikone@silcnet.org>
3022
3023         * Added Encrypt-Then-MAC order to SILC packet MAC generation.
3024           Deprecated the old Encrypt-And-MAC order.  Updated protocol
3025           specs and implemented.
3026
3027         * Added Encrypt-Then-MAC order to Channel Message Payload MAC
3028           generation.  Updated specs and implemented.
3029
3030 Sun Nov 10 12:20:56 EET 2002  Pekka Riikonen <priikone@silcnet.org>
3031
3032         * Added support for rekey before 2^32 sequence number wraps.
3033           Affected files in server and client library.
3034
3035         * Padding must be at least 8 bytes now.  Implemented and updated
3036           protocol specs.
3037
3038         * Compute maximum padding for authentication packets to make
3039           passphrase approximation attacks impossible.  Affected files
3040           in client library and in server.
3041
3042         * Fixed PING command sending in client library and handling in
3043           server.  The server ID must be ID Payload, not raw ID data.
3044           Affected files in server and client library.
3045
3046         * Defined that all public keys sent in commands and notify
3047           payloads are actually Public Key Payloads not raw public key
3048           data.  Updated protocol specs and implemented.
3049
3050         * Updated protocol version to 1.2.  Updated specs and code.
3051
3052         * Added ERR_UNSUPPORTED_PUBLIC_KEY and ERR_OPERATION_ALLOWED
3053           status types.  Updated specs and the code.
3054
3055         * Added support for normal client to kill its own entries from
3056           the network.  Updated protocol specs and the code.
3057
3058         * Defined the SILC_MESSAGE_FLAG_SIGNED.  Updated protocol specs
3059           and added initial implementation.
3060
3061         * Added MAC field to the Private Message Payload to protect
3062           against chosen ciphertext attacks.  Updated the protocol specs
3063           and implemented.
3064
3065         * Added idle and signon fields to the ATTRIBUTE_SERVICE
3066           attribute to indicate the user's current idle and signon time
3067           of a service.  Updated protocol specs and implemented.
3068
3069 Thu Nov  7 19:21:10 EET 2002  Pekka Riikonen <priikone@silcnet.org>
3070
3071         * Added "do_not_bind" argument to silc_client_file_send what
3072           can be used to not bind locally but assume the file receiver
3073           provides the point of connect.  Usefull when sender is behind
3074           NAT device.  Affected file lib/silcclient/silcclient.h and
3075           client_ftp.c.
3076
3077         * Added -no-listener option to FILE SEND command in Irssi SILC
3078           client.  Affected file irssi/src/silc/core/silc-servers.c.
3079           Renamed FILE RECEIVE to FILE ACCEPT.
3080
3081         * Confirm passphrase for private key encryption in
3082           silc_create_key_pair and silc_change_private_key_passphrase.
3083           Affected files are lib/silcutil/silcapputil.c.
3084
3085 Thu Nov  7 10:05:28 CET 2002  Pekka Riikonen <priikone@silcnet.org>
3086
3087         * Move silc_client_packet_send back to internal, added
3088           silc_client_send_packet, a bit simpler function for application.
3089           Affected files lib/silcclient/silcclient.h, client.c and
3090           client_internal.h.
3091
3092         * Moved the SilcClientEntry, SilcChannelEntry and
3093           SilcServerEntry to silcclient.h to be public and documented
3094           them for application.  Affected files are
3095           lib/silcclient/silcclient.h and idlist.h.
3096
3097 Wed Nov  6 17:18:13 EET 2002  Pekka Riikonen <priikone@silcnet.org>
3098
3099         * Fixed manual page installation patch by Ville Räsänen.
3100           USERS help page fix patch by Ville Räsänen
3101
3102         * Changed the silc_client_command_call interface to make
3103           the command call simpler for the application.  The library
3104           now handles the command line parsing, command finding and
3105           execution.  Application only needs to call the function
3106           with the command line.  Affected files are
3107           lib/silcclient/silcclient.h, command.[ch].
3108
3109         * Fixed silc_get_input to NULL-terminate the returned input.
3110           Affected file lib/silcutil/silcutil.c.
3111
3112         * Resolve the client's public key in JOIN command if the
3113           founder auth data is being requested but we don't know the
3114           client's public key.  Affected file silcd/command.c.
3115           Bug #53.
3116
3117 Mon Nov  4 16:02:59 EET 2002  Pekka Riikonen <priikone@silcnet.org>
3118
3119         * Print notify for server opers when backup router comes
3120           online.  Affected file silcd/server.c.
3121
3122         * Fixed the INVITE command to send the invite list in
3123           command reply.  Affected file silcd/command_reply.c.
3124
3125         * Fixed MOTD command reply sending.  Affected file
3126           silcd/command.c.
3127
3128         * UTF-8 decode the topic in TOPIC command reply and LIST
3129           command reply in Irssi SILC client.  Affected file is
3130           irssi/src/silc/core/client_ops.c.
3131
3132 Sun Nov  3 17:59:15 EET 2002  Pekka Riikonen <priikone@silcnet.org>
3133
3134         * Fixed the INVITE command to not crash Irssi SILC client
3135           when given without nickname argument.  AFfected file
3136           irssi/src/silc/core/client_ops.c.
3137
3138         * Fixed double free in WHOIS query on normal server when
3139           forwarding query to router.  Affected file is
3140           silcd/server_query.c.
3141
3142         * Fixed WATCH command reply handling on normal server which
3143           was missing altogether.  Affected file silcd/command_reply.c.
3144           Bug #44.
3145
3146 Sun Nov  3 00:42:05 EET 2002  Mika Boström <bostik@lut.fi>
3147
3148         * Added man-pages for silc(1), silcd(8) and silcd.conf(5).
3149           Included yodl sources for each of these. Also modified
3150           Makefile.am prototype to install these files to proper
3151           locations. Updated CREDITS. Affected file Makefile.am.pre,
3152           new files doc/*.yo, doc/silc.1, doc/silcd.conf.5,
3153           doc/silcd.8.
3154
3155 Sat Nov  2 21:26:56 EET 2002  Pekka Riikonen <priikone@silcnet.org>
3156
3157         * Added support for encrypted private key files.  Now
3158           passphrase must be provided when new key pair is created
3159           (can be empty though), and prompted when loading the
3160           private key.  Added support for loading the old-style
3161           non-encrypted private keys as well.  Affected files
3162           lib/silccrypt/silcpkcs.[ch], Irssi SILC client and
3163           SILC Server.
3164
3165         * Fixed silc_get_input to accept input on all terminals.
3166           Affected file lib/silcutil/silcutil.c.
3167
3168         * Moved the Irssi SILC client key loading and other stuff
3169           to be called after the arguments and UI is initialized.
3170           Affected file irssi/src/silc/core/silc-core.c.  Bug #31.
3171
3172         * Added -P option to Irssi SILC client which can be used
3173           to change the passphrase of the private key.  Affected
3174           file irssi/src/silc/core/silc-core.c.
3175
3176         * Added silc_change_private_key_passphrase apputil routine
3177           to lib/silcutil/silcapputil.[ch].
3178
3179 Sat Nov  2 12:53:09 EET 2002  Pekka Riikonen <priikone@silcnet.org>
3180
3181         * Fixed connection closing in client library to not crash.
3182           Moved the connection freeing totally to function
3183           silc_clinet_del_connection.  Affected file
3184           lib/silcclinet/client.c.
3185
3186 Fri Nov  1 18:57:02 EET 2002  Pekka Riikonen <priikone@silcnet.org>
3187
3188         * Changed includes/silcincludes.h to silcincludes.h.in to
3189           include configuration specific information.  The silcdefs.h
3190           is not included in to installation anymore (it's only
3191           compilation time header).
3192
3193 Fri Nov  1 10:30:26 CET 2002  Pekka Riikonen <priikone@silcnet.org>
3194
3195         * Moved the SilcClient and SilcClientConnection from client.h
3196           to the public lib/silcclient/silcclient.h.  Changed the
3197           structures a bit.
3198
3199 Thu Oct 31 22:44:07 EET 2002  Pekka Riikonen <priikone@silcnet.org>
3200
3201         * If version string in silc_clinet_alloc is NULL the library
3202           puts it automatically.  Affected file lib/silcclient/client.c.
3203
3204         * Changed the version strings from variables to #define's
3205           in includes/silcversion.h.
3206
3207 Wed Oct 30 16:17:30 CET 2002  Pekka Riikonen <priikone@silcnet.org>
3208
3209         * Added shared library complation support.
3210
3211 Tue Oct 29 21:48:55 EET 2002  Pekka Riikonen <priikone@silcnet.org>
3212
3213         * Added lib/silcutil/silcapputil.[ch] for application
3214           utility functions.  It includes routines for applications'
3215           convenience.  Added silc_create_key_pair, silc_show_public_key
3216           and silc_load_key_pair functions.
3217
3218 Tue Oct 29 17:36:44 EET 2002  Pekka Riikonen <priikone@silcnet.org>
3219
3220         * Send RESUME_CLIENT packet from router to backup routers
3221           to in resuming.  Affected file silcd/packet_receive.c.
3222
3223 Mon Oct 28 21:23:39 EET 2002  Pekka Riikonen <priikone@silcnet.org>
3224
3225         * In IDENTIFY command parsing, send all other IDs except
3226           Client IDs explicitly to router for resolving on normal
3227           server.  Also check that ID received in WHOIS command is
3228           always Client ID, others are not allowed.  Affected file
3229           silcd/server_query.c.
3230
3231         * Merged latest changes from irssi.org CVS.
3232
3233 Sun Oct 27 11:44:32 EET 2002  Pekka Riikonen <priikone@silcnet.org>
3234
3235         * Merged c0ffee's /set heartbeat patch to Irssi SILC client.
3236           Affected files irssi/src/silc/core/silc-core, silc-server.c.
3237
3238         * Fixed the heartbeat sending in Irssi SILC client.  Moved
3239           the silc_client_packet_send to silcclient.h for application
3240           usage.  Affected files lib/silcclient/client_internal.h
3241           lib/silcclient/silcclient.h.
3242
3243         * Fixed a bug in query resolving in server.  Used wrong
3244           variable in a for loop and crashed.  Affected file is
3245           silcd/server_query.c.
3246
3247         * Server constructs requested attributes only to locally
3248           connected clients.  Affected file silcd/server_query.c.
3249           Bug #36.
3250
3251         * Fixed a bug when sending resolving from router to server
3252           with requested attributes.  The constructed WHOIS command
3253           was incorrect.  Affected file silcd/server_query.c.
3254           Bug #38.
3255
3256         * Fixed Requested Attributes saving in WHOIS command reply.
3257           The length of the data buffer must be saved too.  Affected
3258           file silcd/command_reply.c.
3259
3260         * Update the client entry's servername after detaching is
3261           over.  Affected file silcd/packet_receive.c.  Bug #37.
3262
3263         * Resolve incomplete client entrys in CUMODE_CHANGE and
3264           CMODE_CHANGE notifys.  Affected file is
3265           lib/silcclient/client_notify.c.  Bug #42.
3266
3267 Thu Oct 24 12:22:35 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
3268
3269         * Fixed channel key packet processing bug on backup router
3270           during backup resuming protocol.  Affected file is
3271           silcd/packet_receive.c.
3272
3273         * Fixed memory leaks in server.  Affected files are
3274           silcd/server.c and silcd/packet_receive.c.
3275
3276         * Fixed packet decryption problem when backup router encrypted
3277           channel message with wrong key during backup resuming
3278           protocol.  Affected file silcd/packet_send.c.
3279
3280         * ROBODoc documented lib/silccrypt/silccipher.h.  A patch by
3281           Toni Willberg (toniw@iki.fi)
3282
3283         * Changed the SilcCipher context to be private.  Changed the
3284           silc_cipher_get_iv to just return pointer to the IV.  Added
3285           silc_cipher_get_name to return the name of the cipher.
3286           Fixed code all around to support these changes.  Affected
3287           files are lib/silccrypt/silccipher.[ch], client library and
3288           server.
3289
3290 Wed Oct 23 19:01:41 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
3291
3292         * Fixed unaligned access in lib/silccore/silcattrs.c.
3293
3294         * Fixed libtool linking in lib/silcsim/Makefile.am.
3295
3296         * Fixed services attribute printing.  Affected files is
3297           irssi/src/silc/core/silc-queries.c.
3298
3299 Wed Oct 23 09:51:04 CEST 2002  Pekka Riikonen <priikone@silcnet.org>
3300
3301         * Fixed a crashbug in incoming server accepting.  Affected
3302           file silcd/server.c.
3303
3304 Tue Oct 22 13:02:32 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
3305
3306         * Added automatically generated index to Toolkit Reference
3307           Manual.
3308
3309         * Added support for Postscript Toolkit Reference Manual.
3310
3311 Mon Oct 21 21:30:40 CEST 2002  Pekka Riikonen <priikone@silcnet.org>
3312
3313         * Merged DISCONNECT fix, and autoconn port fix from Irssi
3314           CVS.
3315
3316 Sun Oct 20 19:54:55 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
3317
3318         * Added 'send_events' boolean argument to the function
3319           silc_schedule_set_listen_fd which sends the set events to
3320           the application explicitly if set to TRUE.  Default action
3321           should be FALSE.  Affected file lib/silcutil/silcschedule.[ch],
3322           lib/silcclient/client_internal.h and silcd/server_internal.h.
3323
3324         * Added silc_compare_timeval to determine which time values
3325           is smaller.  Affected file lib/silcutil/silcutil.[ch].
3326
3327         * Added sort-of "Quality of Service" (QoS) support to
3328           SilcSocketConnection.  Data reception can be controlled with
3329           rate limit per second and/or read data length limit.
3330           Added silc_socket_set_qos.  Affected files are
3331           lib/silcutil/silcsockconn.[ch] and unix/silcunixsockconn.c.
3332
3333         * Added the QoS configuration to SILC Server configuration
3334           file.  Affected files are silcd/serverconfig.[ch] and
3335           server.c.
3336
3337 Sun Oct 20 14:12:24 CEST 2002  Pekka Riikonen <priikone@silcnet.org>
3338
3339         * Merged with irssi.org CVS.
3340
3341         * Failed OPER and SILCOPER authentications are now logged.
3342           Affected file silcd/command.c.  Bugs #25.
3343
3344 Sat Oct 19 13:32:15 CEST 2002  Pekka Riikonen <priikone@silcnet.org>
3345
3346         * ROBODoc documented lib/silcutil/silcbuffer.h and
3347           lib/silcutil/silcdlist.h.  Patch by Ville Räsänen
3348           <ville.rasanen@iki.fi>.
3349
3350 Fri Oct 18 10:51:04 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
3351
3352         * Added support for auto-passphrase authentication from the
3353           config file during connecting which was not implemented
3354           yet.  Affected file irssi/src/silc/core/client_ops.c.
3355
3356         * Fixed a bug in authentication protocol failure handling which
3357           was processing wrong callback context.  Affected files
3358           are lib/silcclient/client.c and protocol.c.
3359
3360         * Fixed the /ATTR allow off to actually work.  Affected file
3361           is irssi/src/silc/core/silc-queries.c.
3362
3363         * Fixed the /ATTR -del to work.  Affected file is
3364           irssi/src/silc/core/silc-queries.c.
3365
3366 Thu Oct 17 23:45:12 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
3367
3368         * Fixed string formatting crashbug in lib/silccore/silcattrs.c.
3369
3370         * Fixed mask attribute adding in Irssi SILC client.  Affected
3371           file irssi/src/silc/core/silc-queries.c.
3372
3373 Thu Oct 17 16:40:39 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
3374
3375         * Added support for saving the requested attributes in
3376           WHOIS to directory.  Affected file is
3377           irssi/src/silc/core/silc-queries.c.
3378
3379 Wed Oct 16 17:40:56 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
3380
3381         * Added support for parsing VCard fields that do not have
3382           the TYPE= for types.  Affected file lib/silcutil/silcvcard.c.
3383
3384         * Fixed a double free bug in hash table foreach function
3385           if the entry was deleted in the foreach callback.  Affected
3386           file lib/silcutil/silchashtable.c.
3387
3388 Tue Oct 15 18:05:24 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
3389
3390         * Added silc_attribute_get_verify_data to return the signature
3391           verification data for either user digital signature or
3392           server digital signature in Requested Attributes.  Affected
3393           files are lib/silccore/silcattrs.[ch].
3394
3395         * Added silc_vcard_alloc which is used to allocated dynamic
3396           SilcVCard context.  The silc_vcard_free now checks whether
3397           the context is dynamically allocated or not.  Affected files
3398           are lib/silcutil/silcvcard.[ch].
3399
3400 Mon Oct 14 17:55:44 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
3401
3402         * Periodically remove the NOATTR status from client entry
3403           so that the client may take the attributes in use even after
3404           server has resolved them unsuccessfully earlier.  Affected
3405           file silcd/server_query.c and idlist.h.
3406
3407         * Moved sha1hash and md5hash from client->internal to
3408           SilcClient for application usage.  Affected files are
3409           lib/silcclient/client.h and client_internal.h.
3410
3411         * Fixed attribute encoding and decoding bugs.  Affected
3412           files lib/silccore/silcattrs.[ch].
3413
3414         * Added ATTR command to Irssi SILC Client which is used to
3415           manage user's Requested Attributes sending and values for
3416           WHOIS command.  Affected files around Irssi SILC client.
3417
3418 Mon Oct 14 14:33:54 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
3419
3420         * Added silc_buffer_strformat which can be used to format
3421           strings into a buffer which size is automatically increased.
3422           Affected file lib/silcutil/silcbuffmt.[ch].
3423
3424         * Added implementation of VCard (RFC 2426) which can be used
3425           as part of Requested Attributes in WHOIS command.  Affected
3426           file lib/silcutil/silcvcard.[ch].
3427
3428 Fri Oct 11 23:52:17 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
3429
3430         * Some strncat -> silc_strncat changes our the core and
3431           client library.
3432
3433         * Added SILC_SKE_STATUS_SIGNATURE_ERROR and OUT_OF_MEMORY
3434           errors.  Added better error printing to SKE library.
3435           Affected files lib/silcske/silcske.c, silcske_status.h and
3436           payload.c.
3437
3438         * Save the PKCS key length even if only private key is set to
3439           SilcPKCS.  Affected file lib/silccrypt/silcpkcs.[ch] and rsa.c.
3440
3441         * Fixed the usage of silc_pkcs_get_key_len since it returns the
3442           length in bits not in bytes.  Affected files are
3443           lib/silcske/silcske.c, lib/silccore/silcauth.c and
3444           silcd/server_query.c.
3445
3446 Wed Oct  9 17:22:57 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
3447
3448         * Added silc_attribute_payload_encode_data to directly encode
3449           the data into the attributes buffer.  Renamed function
3450           silc_attribute_payload_parse_list to silc_attribute_payload_parse.
3451           Affected files are lib/silccore/silcattrs.[ch].
3452
3453         * silc_hash_table_find_foreach calls the foreach function now
3454           once even if the nothing was found with context set to NULL.
3455           Affected file lib/silcutil/silchashtable.[ch].
3456
3457         * Remove the RESOLVING flag from client entry after received
3458           the Requested Attributes from the client.  Fixed memory leak
3459           in client entry freeing.  Affected files silcd/server_query.c
3460           and idlist.c.
3461
3462         * Added Requested Attributes support into SILC Client Library.
3463           It is not able to send requested attributes in WHOIS command,
3464           and also receive and process requested attributes.  Added
3465           silc_client_attribute_[add|del] and silc_client_attributes_get
3466           functions.  Added also `ignore_requested_attributes' to the
3467           SilcClientParams to not use attributes in client.  Affected
3468           files are lib/silcclient/command.c, client_attrs.[ch],
3469           silcclient.h, client_internal and client.[ch].
3470
3471         * Changed the silc_client_get_client_by_id to support Requested
3472           Attributes, it takes them as argument now.  Affected file
3473           is lib/silcclient/silcclient.h, and idlist.c.
3474
3475         * Added -details option to WHOIS command in Irssi SILC Client
3476           to support the requested attributes.  By default it requests
3477           all attributes.  Affected file lib/silcclient/command.c and
3478           irssi/doc/help/in/whois.in.
3479
3480 Tue Oct  8 17:58:28 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
3481
3482         * Add also SERVICE attribute for server-constructed attribute
3483           data.  Also digitally sign the attributes and add
3484           SERVER_DIGITAL_SIGNATURE attribute.  Affected file is
3485           silcd/server_query.c.
3486
3487 Mon Oct  7 18:25:35 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
3488
3489         * Changed the silc_attribute_payload_encode to support list
3490           of attributes (function may be called several times to add
3491           a new attribute).  Removed the silc_attribute_payload_encode_list
3492           function.  The encoding function now also automatically encodes
3493           the data, so the caller does not need to do that.  Affected
3494           files lib/silccore/silcattrs.[ch].
3495
3496         * Added support for replying on behalf of the user to the
3497           Requested Attributes in WHOIS command in the server.  Affected
3498           file silcd/server_query.c.
3499
3500         * SILC_NOT_IMPLEMENTED macro use SILC_LOG_INFO now instead of
3501           SILC_LOG_DEBUG.  Affected file lib/silcutil/silclog.h.
3502
3503 Sun Oct  6 16:48:32 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
3504
3505         * Don't swtich to become primary router if we are backup if
3506           decryption error has occurred.  Affected file silcd/server.c.
3507
3508         * Fixed a bug in backup router IP address comparison in
3509           silc_server_backup_get.
3510
3511           Save now also the port of the server/router and use that
3512           in comparison as well.  Affected file silcd/server_backup.c.
3513
3514         * Normal server now reconnects to backup router automatically
3515           if connection is lost to it.  Affected file silcd/server.c.
3516
3517 Thu Sep 26 13:51:02 CEST 2002  Pekka Riikonen <priikone@silcnet.org>
3518
3519         * If packet processing fails (like integrity check fails)
3520           the connection is closed now.  Affected files are
3521           lib/silccore/silcpacket.c and silcd/server.c.
3522
3523 Mon Sep 23 10:59:39 CEST 2002  Pekka Riikonen <priikone@silcnet.org>
3524
3525         * Fixed double free in RSA public key set function
3526           silc_rsa_set_public_key.  Affected file lib/silccrypt/rsa.c.
3527           Bug #29.
3528
3529 Sun Sep 22 14:54:05 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
3530
3531         * Rewrote WHOIS, WHOWAS and IDENTIFY commands in the server.
3532           Added server_query.[ch] which provides one interface for
3533           querying information using all three commands.
3534
3535         * Changed all "typedef unsigned char" in core library to
3536           "typedef SilcUInt8".
3537
3538 Sat Sep 21 21:36:45 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
3539
3540         * Added silc_strncat into lib/silcutil/silcstrutil.[ch].
3541
3542         * Renamed silc_server_get_client_resolve to
3543           silc_server_query_resolve and moved to server_query.[ch].
3544
3545 Wed Sep 18 18:28:04 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
3546
3547         * Resumed client packet handling from server put the resumed
3548           client on wrong list on router and caused the client not
3549           be present on the network anymore.  Now fixed to put the
3550           client to correct list.  Affected file silcd/packet_receive.c.
3551
3552 Wed Sep 18 15:13:48 CEST 2002  Johnny Mnemonic <johnny@themnemonic.org>
3553
3554         * Various cleanup in error message output in config parsing code
3555           and in server init code.  Fixed error log files containing
3556           too many newlines ('\n') in some situations.  Affected files are
3557           silcd/serverconfig.c, silcd/silcd.c, and silcd/server.c.
3558
3559 Wed Sep 18 10:51:23 CEST 2002  Pekka Riikonen <priikone@silcnet.org>
3560
3561         * Use the reverse lookupped hostname in client internals
3562           instead of one user provided us as remote server name.
3563           Affected file lib/silcclient/client.c.
3564
3565 Mon Sep 16 12:02:54 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
3566
3567         * Added 'app_context' to silc_schedule_init.  It is an
3568           application specific context that is delivered to application
3569           in task callback functions.  Affected files are
3570           lib/silcutil/silcutil.[ch].
3571
3572         * The hb_context in SilcSocketConnection is not freed
3573           automatically anymore (application must free it).  Freeing
3574           it automatic is inconsistent.  Affected files are
3575           lib/silcutil/silcsockconn.[ch].
3576
3577 Sun Sep 15 22:16:19 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
3578
3579         * Added support for removing explicitly added client connections
3580           in rehash and closing the client connections if they were
3581           unconfigured in the rehash.  Affected file silcd/server.c.
3582
3583         * Added support for aborting automatically pending commands
3584           that never receives the reply (to avoid memory leaks).
3585           Added also silc_server_command_pending_timed to set the
3586           specific timeout for pending command.  Affected files are
3587           silcd/command[_reply].[ch].
3588
3589         * Added SILC_STATUS_ERR_TIMEDOUT status.  Updated protocol
3590           specs and lib/silccore/silcstatus.h.
3591
3592 Sun Sep 15 12:25:10 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
3593
3594         * Changed the silc_get_time to accept time value as argument
3595           or if zero is sent return current local time.  Affected
3596           file lib/silcutil/silcutil.[ch].
3597
3598         * Added STATS command to client library and Irssi SILC client.
3599           Patch provided by Ville Räsänen <ville.rasanen@iki.fi>.
3600
3601 Wed Sep 11 09:22:00 CEST 2002  Pekka Riikonen <priikone@silcnet.org>
3602
3603         * Assure that channel key is set before sending it.  May
3604           crash server otherwise.  Affected file silcd/packet_send.c.
3605
3606 Tue Sep 10 09:50:08 CEST 2002  Pekka Riikonen <priikone@silcnet.org>
3607
3608         * Assure that endless loop cannot happen with detached client
3609           resolving on normal server.  Added idlist status
3610           SILC_IDLIST_STATUS_RESUME_RES.   Affected files are
3611           silcd/idlist.h and silcd/packet_receive.c.
3612
3613 Mon Sep  9 12:18:18 CEST 2002  Pekka Riikonen <priikone@silcnet.org>
3614
3615         * Incoming file transfer request cannot use same session as
3616           the sending session.  This can happen when sending file to
3617           yourself.  Crashed the client on quit.  Affected file
3618           lib/silcclient/client_ftp.c.  Bug #24.
3619
3620 Sun Sep  8 18:39:25 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
3621
3622         * Implemented the draft-riikonen-precense-attrs draft and
3623           the Attribute Payload into the lib/silccore/silcattrs.[ch].
3624
3625 Sun Sep  8 13:13:44 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
3626
3627         * Distribute the SERVER_SIGNOFF notify also to local backup
3628           routers from the primary router.  The backup router may not
3629           have the signing of local server directly connected and need
3630           to know about the signoff.  Affected file silcd/server_util.c.
3631
3632         * Use the primary router as the origin of the locally connected
3633           server when it is disconnecting from the backup router since
3634           that's where it really is coming from.  Now the clients from
3635           the disconnecting server are removed correctly and "shadow"
3636           clients are not left to the backup router.  Affected file
3637           silcd/server.c.
3638
3639 Sat Sep  7 22:26:50 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
3640
3641         * If normal server is standalone and found existing but disabled
3642           channel, do not re-create the channel since it creates
3643           duplicate same channels.  Affected file silcd/server.c.
3644
3645         * Added anonymous client connections support to server.  New
3646           "anonymous" configuration option to ConnectionParams section
3647           added.  If set to true, the username and hostname information
3648           of the client will be scrambled and anonymous user mode is
3649           set automatically to the user.  Affected files are
3650           silcd/serverconfig.[ch], silcd/packet_receive.c and server.c.
3651
3652 Sat Sep  7 16:02:09 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
3653
3654         * In JOIN notify handling, mark that the cache entry of the
3655           client cannot be expired.  Can cause crashes on normal
3656           server (asserts client->channels).  Affected file is
3657           silcd/packet_receive.c.
3658
3659         * From now on distribution versions are used as protocol versions
3660           instead of by default using the Toolkit base version as protocol
3661           version.  Affected file prepare.
3662
3663         * Do not set the locally resolved hostname for local client
3664           entry but take what server sends.  This way the real hostname
3665           is showed in WHOIS for yourself.  Affected file is
3666           lib/silcclient/idlist.c and lib/silcclient/client.c.
3667
3668         * Resolve local info with IDENTIFY when connecting to server.y
3669
3670 Sat Sep  7 14:22:43 CEST 2002 Lubomir Sedlacik <salo@silcnet.org>
3671
3672         * Rewritten check for POSIX threads.  Use --with-pthreads[=DIR]
3673           for implied search (not needed on platforms which has native
3674           pthreads library).  Use --without-pthreads to disable threads.
3675           Affected file is configure.in.pre
3676
3677         * Fixed --with-iconv on platforms which need to bypass (broken)
3678           native iconv().  Affected file is configure.in.pre
3679
3680 Sat Sep  7 15:08:13 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
3681
3682         * Moved -C option parsing in Irssi SILC client at same time
3683           as other options.  The UI was initialized earlier and caused
3684           problems on command line.  Bug #16.  Affected file is
3685           irssi/src/silc/core/silc-core.c.
3686
3687 Mon Sep  2 23:00:30 CEST 2002 Johnny Mnemonic <johnny@themnemonic.org>
3688
3689         * Added global variable silc_log_timestamp that tells silclog
3690           wether to print or not the timestamp in the logging files.
3691           Affected file lib/silcutil/silclog.[ch].
3692
3693         * Added silcd configuration option Timestamp in the Logging
3694           section.  Affected file silcd/serverconfig.[ch],
3695           doc/example_silcd.conf.in.
3696
3697 Fri Aug 30 08:57:33 CEST 2002 Pekka Riikonen <priikone@silcnet.org>
3698
3699         * Fixed fingerprint checking to check for entirely empty
3700           fingerprint instead of two first bytes when determining
3701           if it is set.  Bug #18.  Affected file silcd/command.c.
3702
3703         * Fixed duplicate PKCS name registering to not allow it.
3704           Bugs #17.  Affected file lib/silccrypt/silcpkcs.c.
3705
3706 Sun Aug 25 08:02:04 CEST 2002 Lubomir Sedlacik <salo@silcnet.org>
3707
3708         * Conditionalize non-gcc compiler optimizations for various
3709           platforms, enable those commented out.  Cleanups.
3710           Affected file lib/silcmath/mpi/configure.in
3711
3712 Sat Aug 24 15:11:32 EEST 2002 Timo Sirainen <tss@iki.fi>
3713
3714         * silc_rng_exec_command() left zombie processes if command
3715           didn't generate any output.  Affected file
3716           lib/silccrypt/silcrng.c
3717
3718 Fri Aug 23 22:05:44 CEST 2002 Lubomir Sedlacik <salo@silcnet.org>
3719
3720         * Rewrote iconv checking, introduce --with-iconv for systems
3721           which rely on libiconv.  Check if iconv() provided by libc
3722           is good enough, otherwise demand libiconv.  Affected file
3723           configure.in.pre
3724
3725 Fri Aug 23 07:10:52 CEST 2002 Lubomir Sedlacik <salo@silcnet.org>
3726
3727         * Search for ldopen() also in libc.  This enables SIM support
3728           on *BSD systems.  Based on patch from Alex Zepeda.  Affected
3729           file configure.in.pre
3730
3731 Sun Aug 18 04:44:30 CEST 2002 Lubomir Sedlacik <salo@silcnet.org>
3732
3733         * Don't call AM_CONDITIONAL conditonally for SILC_THREADS.
3734           This fixes prepare on *BSD systems.  Affected file
3735           configure.in.pre
3736
3737 Sun Aug  4 15:55:40 CEST 2002 Pekka Riikonen <priikone@silcnet.org>
3738
3739         * More fixed for not having purge timeout for global clients
3740           that are on channel.  Affected files silcd/command_reply.c
3741           and server_util.c.
3742
3743         * Fixed the rekey protocol to work with backup router connections.
3744           Rekey packets are now allowed on disabled connections as
3745           well.  Affected files silcd/packet_send.c and server.c.
3746
3747         * Do not switch to be as backup router when shutting down and
3748           closing the primary connection.  Affected file silcd/server.c.
3749
3750         * Fixed memory leaks in backup router deleting.  Added
3751           silc_server_backup_free to free all data during shutdown of
3752           server.  Affected files silcd/server_backup.[ch].
3753
3754 Sun Jul 14 21:33:32 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
3755
3756         * Do not process commands if the sock->user_data is NULL.
3757           Affected file silcd/command.c.
3758
3759 Tue Jul  9 19:03:11 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
3760
3761         * Fixed buffer overflow and security problems (loosing bits
3762           in CFB encryption) in SILC RNG.  Problems reported by
3763           Markku-Juhani O. Saarinen <mjos@saturn.tcs.hut.fi>.
3764
3765 Sun Jul  7 13:10:01 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
3766
3767         * Added yet more checks that client is not expired on global
3768           list if it is on channels.  Affected file is
3769           silcd/command_reply.c.
3770
3771 Sat Jul  6 11:45:11 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
3772
3773         * Merged c0ffee's MIME signal patch which adds support for
3774           sending also MIME messages in Irssi SILC Client, and handling
3775           received MIME messages in a signal (and perhaps doing something
3776           to non-textual MIME messages).
3777
3778 Sun Jun 30 01:30:22 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
3779
3780         * Fixed pending command deletion in server and client library
3781           to check the whole list instead of breaking after first found.
3782           The affected files are silcd/command.[ch] and
3783           lib/silcclient/command.[ch].
3784
3785 Sat Jun 29 17:40:12 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
3786
3787         * Return NO_SUCH_CHANNEL error in USERS for channel that is
3788           secret or private, otherwise it's possible to find out
3789           whether a secret channel exists or not.  Affected file
3790           silcd/command.c.
3791
3792         * If CMODE change fails during the mode setting, assure that
3793           the old mode mask is set for the channel back.  Affected
3794           file silcd/command.c.
3795
3796         * Fixed passphrase saving on +a channel on normal server
3797           after successful JOIN command.  Affected file silcd/command.c.
3798
3799 Fri Jun 28 11:53:25 CEST 2002 Pekka Riikonen <priikone@silcnet.org>
3800
3801         * Remove server/router operator privileges in DETACH command,
3802           since it's possible to resume to server where these
3803           privileges would not be allowed for the client.  Affected
3804           file silcd/command.c.
3805
3806         * Do not set to wait for backup in rehash of the server.
3807           Affected file silcd/server.c.
3808
3809         * Do not check listener sockets when counting how many
3810           socket connections we have.  Affected file is
3811           silcd/server_util.c.
3812
3813         * Do not announce disconnected clients that are remaining
3814           in history (for WHOWAS).  This is because SIGNOFF notify
3815           for these has been sent earlier already.  Affected file
3816           silcd/server.c.
3817
3818 Thu Jun 27 20:07:27 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
3819
3820         * Buffer overflow with CUMODE command's mode->mode character
3821           conversion.  Reported by Ville Räsänen.  Affected file
3822           lib/silcutil/silcutil.c.
3823
3824 Thu Jun 27 16:54:33 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
3825
3826         * Allow heartbeat packets to go disabled connections anyway.
3827           Affected files silcd/server.c and silcd/packet_send.c.
3828
3829         * Do not broadcast New Channel packets with List flag set
3830           in the packet to backup routers.  The router must check
3831           for the correctness of the packets before sending them.
3832           It is possible that router will have enforce Channel ID
3833           change and this would cause desync in the backup router.
3834           Affected file silcd/packet_receive.c.
3835
3836         * Remove SILC_PACKET_FLAG_LIST from the temp packets that
3837           are handled in list parsing.  They are not list packets
3838           anymore.  Affected file silcd/packet_receive.c.
3839
3840 Thu Jun 27 11:27:07 CEST 2002 Pekka Riikonen <priikone@silcnet.org>
3841
3842         * Stop waiting for backup router through the timeout, not
3843           directly after backup router has arrived.  Affected file
3844           silcd/server.c.
3845
3846         * Do not re-create channel keys and send them when removing
3847           clients in server shutdown.  Affected files are
3848           silcd/server_internal.h and silcd/server_util.c.
3849
3850         * Notify distribution to backup routers was missing from
3851           the silc_server_send_notify_dest function which caused
3852           desyncing problems with backup router.  Affected file is
3853           silcd/packet_send.c.
3854
3855         * The client's channel removing was working wrong on
3856           backup router.  It assumed that it doesn't know global
3857           information but backup router does know.  For this reason
3858           it could remove channel when it wasn't supposed to do that.
3859           Affected file silcd/server.c and silcd/server_util.c.
3860
3861 Wed Jun 26 15:14:12 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
3862
3863         * Stop for a couple seconds after badkup router has become
3864           primary router.  Affected file silcd/server.c.
3865
3866         * Added silc_server_remove_servers_by_server, which is used
3867           to remove servers originated from some other server.  Also
3868           clients of those servers can be removed too.  Affected file
3869           silcd/server_util.[ch].
3870
3871         * When removing clients after a server has signed of remove
3872           also all servers behind that server (unless they are known
3873           to be available locally), and send SERVER_SIGNOFF for each
3874           of the server separately.  Also the signed off clients are
3875           sent now separately per signed off server.  The affected files
3876           are silcd/server.c and silcd/server_util.[ch].
3877
3878         * All servers added with silc_idlist_add_server must always
3879           have both "router" and "connection" pointers set.  Otherwise,
3880           bad server entries may be left around in the cache.
3881           Affected file silcd/command_reply.c.
3882
3883         * Do not create the channel key in NEW_CHANNEL packet
3884           processing if the channel is empty.  Affected file
3885           silcd/packet_receive.c.
3886
3887         * Completed backup router support for standalone routers.
3888           Supports also servers in the cell that do not use the backup
3889           at all.
3890
3891 Wed Jun 26 10:38:11 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
3892
3893         * Fixed a bug in silc_string_regexify which did not add '^'
3894           at the start of each string, and thus the matching was
3895           not explicit.  For example ban list iikone@*!*@* would
3896           match also "priikone", which is wrong, it would have to be
3897           *iikone@*!*@* to match also "priikone".  Affected
3898           file lib/silcutil/unix/silcunixutil.c.
3899
3900 Tue Jun 25 18:47:39 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
3901
3902         * Enable all local server connections before updating client
3903           caches when we've become backup router.  Otherwise, signoff
3904           packets may not reach the clients.  Affected files are
3905           silcd/server.c and silcd/server_util.[ch].
3906
3907         * Fixed a bug in version string parsing which could crash
3908           the program with specially formatted version string.
3909           Bug reported and patch provided by Ville Räsänen.  Affected
3910           file lib/silcutil/silcutil.c.
3911
3912         * Handle the disconnection immediately when DISCONNECT
3913           packet is received in server.  Affected file silcd/server.c.
3914
3915         * Primary router now waits a short time (10 seconds) for
3916           backup router connection before accepting any other
3917           connection (except local).  Affected file silcd/server.c,
3918           serverconfig.[ch].
3919
3920         * Fixed a crash in client libary in NICK_CHANGE notify when
3921           NICK_CHANGE arrived for client entry we are resolving
3922           currently.  Affected file lib/silcclient/client_notify.c.
3923
3924         * Call the sconn->callback completion even if error had
3925           occurred.  Start reconnecting always if connection to
3926           primary router fails during backup router protocol.
3927           Affected files silcd/server.c and server_backup.c.
3928
3929 Mon Jun 24 17:47:52 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
3930
3931         * Added functions silc_server_send_opers and
3932           silc_server_send_opers_notify to send packets stricly
3933           to operators.  Added macro SILC_SERVER_SEND_OPERS macro
3934           to send variable argument notify to operators.
3935           Affected files silcd/packet_send.[ch] and silcd/server.h.
3936
3937         * Removed UMODE rights checking with UMODE_CHANGE notify.
3938           Affected file silcd/packet_receive.c.
3939
3940         * Server/router operator now receives notify when network
3941           switches to backup router and when it resumes the use of
3942           primary router.  Affected file silcd/server.c and
3943           silcd/server_backup.c.
3944
3945         * Fixed the updating of client information after backup
3946           resuming protocol is over; update all except local clients
3947           to the new primary router.  The affected file is
3948           silcd/server_util.c.
3949
3950         * Added support for closing active connections in rehash
3951           that were unconfigured by the user.  Supports currently
3952           closing server and router connections.  Affected file
3953           silcd/server.c.
3954
3955         * Rewrote some SILC_LOG_DEBUG's in silcd/server_backup.c.
3956
3957 Sun Jun 23 17:32:31 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
3958
3959         * Don't do SILC_STRING_LANGUAGE encoding if the outbuffer
3960           is NULL since seems that on some platforms NULL is allowed
3961           and on some it's not.  Fallback encoding is used instead.
3962           Affected file lib/silcutil/silcstrutil.c.
3963
3964         * Fixed statistics updating for incoming server connection
3965           which could cause problems when re-connecting.  Affected
3966           file silcd/server.c.
3967
3968         * Preliminary backup router support for standalone router
3969           added.  Affected files in silcd/.
3970
3971         * Mark server connections in backup router disabled before
3972           and after backup protocol.  Affected file is
3973           silcd/server_backup.c.
3974
3975         * Added support for reconnecting to remote server connection
3976           even if the protocol fails, and if the configuration wants
3977           us to keep trying to connect anyway.
3978
3979           Server connection is not allowed to backup router if
3980           backup router does not have connection to primary router yet.
3981
3982           Affected file is silcd/server.c.
3983
3984 Sat Jun 22 21:34:59 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
3985
3986         * Added silc_client_udpate_server function to update changed
3987           server info.  Affected file lib/silcclient/idlist.[ch].
3988
3989         * Added check for server entries that are being resolved when
3990           notify is received.  If being resolved, handle the received
3991           notify only after it's resolved so that all notifys are
3992           handled in same order as received from the server.
3993
3994           Added similar resolver check to channel entries.  Every
3995           notify that cause resolving of any information that affects
3996           channel entry marks the channel entry in waiting state.
3997           After whatever resolving is over the waiters are signalled
3998           and only then the notifys are handled in the same order
3999           as delivered from the server.
4000
4001           Affected files are lib/silcclient/idlist.[ch], and
4002           client_notify.c.
4003
4004         * Fixed KILLED notify handling in normal server.  Affected
4005           file silcd/packet_receive.c.
4006
4007         * Added SILC_IDLIST_STATUS_LOCAL which indicates that entry
4008           is locally connected, or was locally connected (but may
4009           be detached and connection is not active).  Added also
4010           SILC_IS_LOCAL for checking this status.  Affected files
4011           silcd/idlist.h, silcd/packet_receive.c, silcd/server_util.c,
4012           silcd/server.c and silcd/server_internal.h.
4013
4014 Sat Jun 22 17:06:58 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
4015
4016         * Don't send or handle TOPIC_SET if topic is already set and
4017           is same as being set.  Affected files silcd/command.c and
4018           silcd/packet_receive.c.
4019
4020         * Fixed CMODE change rights checking to work correctly when
4021           removing modes by operator.  Affected file is
4022           silcd/server_util.c.
4023
4024         * Fixed some handling with New Channel packet in router and
4025           fixed some CMODE_CHANGE notify handling in server and router.
4026           Affected file is silcd/packet_receive.c.
4027
4028         * Changed "disconnect" client operation to include the
4029           reason of the disconnection and optional disconnection
4030           message.  Affected file lib/silcclient/silcclient.h.
4031
4032         * Made the compilation of lib/contrib/ stuff conditional.
4033           Affected files configure.in.pre, lib/contrib/Makefile.am.
4034
4035 Sat Jun 22 12:49:21 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
4036
4037         * All CMODE_CHANGE and CUMODE_CHANGE notifys are now sent back
4038           to the sender of the notify too, to avoid situation where two
4039           notifys are in the network at the same time going to oppsite
4040           directions.  Affected file silcd/packet_receice.c.
4041
4042 Fri Jun 21 10:00:32 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
4043
4044         * Delete the client from channel even if the cilent->id is
4045           NULL.  It was possible that client was deleted without
4046           removing from channels (theoretically at least).  Affected
4047           file silcd/server.c and silcd/server_util.c.
4048
4049         * Free the client data too when resuming is not successful.
4050           Affected file silcd/packet_receive.c.
4051
4052         * Merged some code from c0ffee's silc-plugin.  Affected files
4053           irssi/src/silc/core/silc-channels.c and silc-expandos.c.
4054
4055         * Added SILC_PRIMARY_ROUTE and SILC_BROADXAST macros to
4056           silcd/server_internal.h.  SILC_PRIMARY_ROUTE Returns pointer
4057           to the primary router connection, the other one returns
4058           TRUE if packet must be broadcasted to network.
4059
4060         * All notifys that are destined to primary router (to network)
4061           are now automatically sent to backup routers even if the
4062           router is standalone (and has backup router).  Affected files
4063           in silcd/.
4064
4065         * Added --without-irssi and --without-silcd configuration
4066           options for disabling the compilation of these applications.
4067           Affected file configure.in.pre and prepare.
4068
4069 Thu Jun 20 13:48:15 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
4070
4071         * Implemented SILC_STRING_BMP and SILC_STRING_UNIVERSAL for
4072           UTF-8 encoding and decoding.  Added also new encodings
4073           SILC_STRING_BMP_LSB and SILC_STRING_UNIVERSAL_LSB.
4074
4075           Added also SILC_STRING_LANGUAGE which is language and charset
4076           specific encoder and decoer for those platforms that support
4077           iconv().  It can convert the UTF-8 to and from the locale
4078           specific character set.
4079
4080           Affected file lib/silcutil/silcstrutil.[ch].
4081
4082         * Added macro SILC_NOT_IMPLEMENTED to lib/silcutil/silclog.h.
4083
4084         * Added function silc_get_command_name to the file
4085           lib/silcutil/silcutil.[ch].
4086
4087         * Improved the server debug output a bit.  Affected files are
4088           in silcd/.
4089
4090 Wed Jun 19 17:46:31 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
4091
4092         * Save the channel passphrase when received succesful JOIN
4093           command reply from router, on normal server.  Otherwise
4094           joinig +a channels from normal server is not possible.
4095           Affected file silcd/command.c.
4096
4097         * Fixed a bug in TOPIC_SET notify handling.  The notifier
4098           may be other than client too, like server or channel.
4099           It expected it to always be only client and ignored the
4100           notify.  Affected file silcd/packet_recieve.c.
4101
4102         * Removed some (unnecessary) debug printing from
4103           lib/silccore/silcid.c and lib/silccore/silcargument.c.
4104
4105         * Do not force CMODE_CHANGE when server is announcing new
4106           channel.
4107
4108           Router announces stuff only after server reannounces channel
4109           after CHANNEL_CHANGE notify.
4110
4111           These fixes optimizes the announcing procedure, and perhaps
4112           fixes some problems too.  Affected file silcd/packet_receive.c.
4113
4114         * Fixed SERVER_SIGNOFF sending to local clients.  It was
4115           totally broken and sent the notify to all local clients,
4116           instead of only to those that was on same channel as the
4117           signing off clients.  Affected file silcd/server_util.c.
4118
4119         * Added -D option to server.  It can be used to give debug
4120           level.  The levels are from 0 - 99, and are predefined for
4121           smooth server debugging.  (see silcd.c for the predefined
4122           levels).  Affected file silcd/server.c.
4123
4124 Wed Jun 19 16:01:51 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
4125
4126         * Fixed a bug in Irssi SILC client to close the connection
4127           properly when disconnecting from server.  Affected file
4128           irssi/src/silc/core/client_ops.c.
4129
4130 Tue Jun 18 17:14:52 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
4131
4132         * When authenticating as founder during JOIN command, check
4133           that the one authenticating becomes the only founder on the
4134           channel.  Affected file silcd/command.c.
4135
4136         * Better checking for founder mode setting when CUMODE_CHANGE
4137           notify is received.  Affected file silcd/packet_receive.c.
4138
4139         * Close all connections when shutting down the server by sending
4140           DISCONNECT packet.  Close all listeners too when shutting
4141           down the server.  Affected file silcd/server.c.
4142
4143         * Handle DISCONNECT packet correctly in client library by
4144           calling the "disconnect" client operation.  Affected file
4145           lib/silcclient/client.c.
4146
4147         * Handle local errors correctly during resuming.  Affected
4148           file lib/silcclient/client.c.
4149
4150 Tue Jun 18 10:26:27 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
4151
4152         * The log file is not dupped internally anymore in
4153           lib/silcutil/silclog.c.  Fixed memory leaks too.
4154
4155         * The scheduler now dispatches all pending timeout tasks
4156           when it is uninitialized with silc_schedule_uninit.
4157           Affected file lib/silcutil/silcschedule.c.
4158
4159 Mon Jun 17 21:30:55 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
4160
4161         * Added --enable-stack-trace option to configure.  Added
4162           memory allocation stack trace support.  Added files
4163           lib/silcutil/stacktrace.[ch].  Affected files are
4164           lib/silcutil/silcmemory.[ch].
4165
4166         * Fixed memory leaks from libraries and server.  Affected
4167           files around the tree.
4168
4169         * Reverted back a fix made to CUMODE which broke it.
4170           Affected file silcd/command.c.
4171
4172 Sun Jun 16 11:49:45 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
4173
4174         * Added SILC_MESSAGE_FLAG_UTF8 to the protocol specs and the
4175           core library, and implemented it.  All textual messages SHOULD
4176           use this flag and the message MUST be UTF-8 encoded.
4177           All text messages sent by Irssi SILC client are now UTF-8
4178           encoded (regardless whether the terminal supports UTF-8 or not).
4179           Affected files are lib/silccore/silcchannel.h,
4180           irssi/src/silc/core/silc-servers.c, silc-channels.c and
4181           client_ops.c.
4182
4183 Sat Jun 15 18:23:39 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
4184
4185         * Added lots of new statistics updating that was missing from
4186           the server and router code.  Affected files in silcd/.
4187
4188         * Sending SIGUSR1 signal to server now dumps the current
4189           server statistics into /tmp directory.  Affected file is
4190           silcd/silcd.c.
4191
4192         * ROBODoc documented the lib/silccrypt/silchash.h.  Improved
4193           the SILC Hash Interface also.  Added new functions
4194           silc_hash_get_name, silc_hash_init, silc_hash_update and
4195           silc_hash_final.  Affected file lib/silccrypt/silchash.c.
4196
4197 Sat Jun 15 12:09:14 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
4198
4199         * Added some better info printing for client during connecting.
4200           Affected file silcd/server_util.c.
4201
4202         * Implemented the SILC_CHANNEL_UMODE_QUIET mode that can be used
4203           to silence a user on a channel.  Affected files are
4204           lib/silcclient/client_channel.c, irssi/src/silc/core/client_ops.c,
4205           irssi/src/fe-common/silc/module-formats.[ch], silcd/command.c
4206           and silcd/packet_receive.c.
4207
4208         * Fixed a fatal bug in handling of malformed command payload.
4209           Affected file silcd/command.c.
4210
4211         * Fixed a double free when announcing channel users to router.
4212           Affected file silcd/server.c.
4213
4214         * After successful authentication to channel founder mode, check
4215           that there isn't anyone else with founder mode on the channel.
4216           The one that authenticated will become founder and anyone
4217           else is demoted.  Affected file silcd/command.c.
4218
4219         * Added error printing of any error that has occurred during
4220           any command in client library.  Affected file is
4221           irssi/src/silc/core/client_ops.c.
4222
4223         * Removed some error printing from the client library and left
4224           it for the application to worry (from the error status it
4225           receives in 'command' client operation.  Affected file is
4226           lib/silcclient/command.c.
4227
4228 Fri Jun 14 22:59:02 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
4229
4230         * Added new status types KEY_AGREEMENT_ALREADY_STARTED and
4231           KEY_AGREEMENT_SELF_DENIED to lib/silcclient/silcclient.h.
4232           Starting key agreement with itself is denied.  Affected file
4233           is lib/silcclient/client_keyagr.c.
4234
4235         * Fixed some error checkings from the SFTP library which caused
4236           misbehaviour.  Affected files are lib/silcsftp/sftp_client.c
4237           and lib/silcsftp/sftp_util.c.
4238
4239         * Added new "debug" and "debug_string" settings to Irssi SILC
4240           client which can be used to print runtime debugging on the
4241           Irssi's screen.  Available when compiled with --enable-debug
4242           option.  Affected file irssi/src/silc/core/silc-core.c.
4243
4244 Tue Jun 11 16:36:02 CEST 2002 Johnny Mnemonic <johnny@themnemonic.org>
4245
4246         * Fixed a missing variadic parameter in a function call that
4247           caused server crash when a non-allowed connection arrived.
4248           Reported by Richard Becker.  Affected file silcd/server.c.
4249
4250 Mon Jun 10 16:29:42 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
4251
4252         * Added WATCH list sending to backup routers from router.
4253           The WATCH command is sent by the router to the backup
4254           router.  Affected file silcd/command.c.
4255
4256         * Mark the backup_router flag for RouterConnection entry
4257           if the backup router stuff is defined in the config file.
4258           Affected file silcd/serverconfig.c.
4259
4260         * Fixed some backup data sending around the code to work better
4261           if the router is standalone router.  Not all places were fixed.
4262           Affected file silcd/packet_receive.c, silcd/packet_send.c,
4263           silcd/server.c.
4264
4265         * Fixed the router connecting when connecting to multiple
4266           routers.  It ignored every other router except the first
4267           one.  Affected file silcd/server.c.
4268
4269 Mon Jun 10 09:28:21 CEST 2002 Pekka Riikonen <priikone@silcnet.org>
4270
4271         * Made the private key generation after expiration optional.
4272           If not created after expiration the old key will re-expire
4273           at a later time (and thus key pair is not necessary to
4274           change).  Affected file irssi/src/silc/core/clientutil.c.
4275
4276 Sun Jun  9 18:58:25 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
4277
4278         * The length arguments in bind() and connect() were wrong
4279           and fixed now to used SIZEOF_SOCKADDR in the
4280           lib/silcutil/unix/silcunixutil.c.
4281
4282 Tue Jun  4 18:36:05 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
4283
4284         * Fixed detach timeout handling to use Client ID and not
4285           the actual client entry which may be freed in the callback.
4286           Affected file silcd/command.c.
4287
4288 Thu May 30 15:53:45 CEST 2002 Pekka Riikonen <priikone@silcnet.org>
4289
4290         * Merged c0ffee's multiple interface support patch.
4291           Affected files in silcd/.
4292
4293 Wed May 29 18:08:15 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
4294
4295         * Cleanup keys properly.  Affected file is
4296           irssi/src/silc/core/clientutil.c.
4297
4298 Tue May 28 20:11:41 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
4299
4300         * Display the user mode on the status bar.  Affected file
4301           irssi/src/silc/core/silc-expandos.c.
4302
4303 Tue May 28 13:56:26 CEST 2002 Pekka Riikonen <priikone@silcnet.org>
4304
4305         * If private message key is not set, but the flag is set in
4306           the packet, ignore the packet since it cannot be decrypted.
4307           Affected file lib/silcclient/client_prvmsg.c.
4308
4309 Thu May 23 12:00:14 CEST 2002 Pekka Riikonen <priikone@silcnet.org>
4310
4311         * When resuming client, remove the old client entry from
4312           the watcher list too.  Affected file silcd/packet_receive.c.
4313
4314         * Do not allow normal server to force founder mode away
4315           from router if the founder mode is already set.  Affected
4316           file silcd/packet_receive.c.
4317
4318         * Remove the client entry with watch notify types with short
4319           timeout, and not directly, so that other notifys can be
4320           retrieved too.  Affected file lib/silcclient/client_notify.c.
4321
4322         * Display notification about data messages that cannot be
4323           displayed.  Affected files irssi/src/silc/core/client_ops.c,
4324           irssi/src/fe-common/silc/module-formats.[ch].
4325
4326 Sun May 19 18:59:00 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
4327
4328         * Fixed the CHANNEL_CHANGE notify handling in client libary
4329           to not use freed memory.  Affected file is
4330           lib/silcclient/client_notify.c.
4331
4332         * Fixed CUMODE_CHANGE notify handling in server.  Affected
4333           file silcd/packet_receive.c.
4334
4335         * Fixed USERS command to support empty channels.  Affected
4336           file silcd/command.c.
4337
4338 Sat May 18 11:35:19 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
4339
4340         * Allow multiple identical pending commands to be registered
4341           in client library.  Affected file is lib/silcclient/command.c.
4342
4343         * Call the completion for resolving client information only
4344           after all resolvers has finished.  This fixes a crash in
4345           the client.  Added support for checking when the resolvers
4346           are finished.  Affected file is lib/silcclient/idlist.c.
4347
4348         * Wait by default 3 seconds before reconnecting to the server
4349           after being disconnected.  Makes the /detach command a bit
4350           more usable.
4351
4352 Fri May 17 17:23:45 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
4353
4354         * Check the watcher list before sending signoff notifys
4355           when closing client connection.  Affected file is
4356           silcd/server.c.
4357
4358         * Added better CMODE command rights checking.  Affected file
4359           silcd/server_util.c.
4360
4361 Fri May 17 08:33:41 CEST 2002 Pekka Riikonen <priikone@silcnet.org>
4362
4363         * Fixed watcher list checking during server signoff.  It
4364           crashed the server.  Affected file silcd/server_util.c.
4365
4366         * The JOIN command reply returns now the founder's public
4367           key.  Affected file is silcd/command.c.
4368
4369         * Announce the channel mode, and the mode properties with
4370           CMODE_CHANGE notify.  Affected file silcd/server.c.
4371
4372         * Mark new channels by default disabled, untill at least
4373           one user joins the channel.  Affected file is
4374           silcd/packet_receive.c.
4375
4376 Thu May 16 13:05:13 CEST 2002 Pekka Riikonen <priikone@silcnet.org>
4377
4378         * The nickname argument to watch notify can be optional.
4379           Fixes a crash in server.  Affected file silcd/packet_send.c.
4380
4381         * Remove the client entry from cache if the WATCH notify type
4382           is KILLED, SERVER_SIGNOFF or SIGNOFF.  Affected file is
4383           lib/silcclient/client_notify.c.
4384
4385         * Check the watcher list before and after changing nickname
4386           when the NICK_CHANGE notify is received.  Affected file is
4387           silcd/idlist.c.
4388
4389         * Fixed a crash in OPER and SILCOPER command sending.  Empty
4390           passphrase caused the crash.  Affected file is
4391           lib/silcclient/command.c.
4392
4393 Wed May 15 19:01:42 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
4394
4395         * Merged with Irssi CVS for Irssi SILC client.
4396
4397 Tue May 14 19:37:48 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
4398
4399         * Completed the protocol specifications.
4400
4401 Tue May  7 20:41:58 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
4402
4403         * Merged with Irssi CVS for Irssi SILC client.
4404
4405 Tue May  7 11:07:16 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
4406
4407         * Added the founder's public key delivery to the
4408           CUMODE_CHANGE notify type as well.  Updated the protocol
4409           specs and the code.  Affected files are silcd/packet_send.[ch],
4410           silcd/packet_receive.c and silcd/command.c.
4411
4412 Mon May  6 19:46:12 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
4413
4414         * Added silc_pkcs_public_key_copy function into the
4415           lib/silccrypt/silcpkcs.[ch].
4416
4417         * Remove the `iv' from the SilcChannelEntry since we can
4418           live without it.  Affected files are silcd/idlist.h and
4419           silcd/packet_receive.c.
4420
4421         * Added support for sending the founder's public key in
4422           the CMODE_CHANGE notify packet in the server.  Affected
4423           files are silcd/packet_send.[ch], silcd/packet_receive.c,
4424           silcd/command.c and silcd/server.c.
4425
4426         * Changed the FOUNDER_AUTH authentication to use only
4427           public key authentication as defined by new protocol
4428           specs.  Passphrase authentication with that mode cannot
4429           be used anymore.  It is now possible to reclaim founder
4430           mode from any server in the network.  Affected files are
4431           silcd/command.c, silcd/idlist.h and silcd/command_reply.c.
4432
4433         * Added permanent channels support by making the channel
4434           permanent when FOUNDER_AUTH mode is set on the channel.
4435           The channel will not be destroyed even if channel is empty
4436           when that mode is set.  Protocol TODO #17.  Affected
4437           files are silcd/server.[ch], server_util.[ch],
4438           silcd/command.c, silcd/packet_receive.c and
4439           lib/silcclient/command.c.
4440
4441 Fri May  3 18:36:51 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
4442
4443         * Added reference counter to the command reply context in
4444           the client library.  Affected files are
4445           lib/silcclient/command_reply.[ch].
4446
4447 Fri May  3 11:37:10 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
4448
4449         * Fixed rekey protocol with PFS in the client library.
4450           Affected file is lib/silcclient/protocol.c.
4451
4452         * Added support for list of errors in client library
4453           command reply handling.  Affected file is
4454           lib/silcclient/command_reply.c.
4455
4456         * Defined that the WHOIS and IDENTIFY commands can send
4457           list of errors.  Updated the protocol specs.  Protocol
4458           TODO #2.
4459
4460         * Added support for sending list of errors to WHOIS and
4461           IDENTIFY commands in server.  Added support for receiving
4462           list of errors in server.  Affected files are
4463           silcd/command.c and silcd/command_reply.c.
4464
4465         * Fixed client info resolving on LEAVE command in client
4466           library to not crash.  Affected file is
4467           lib/silcclient/client_notify.c.
4468
4469 Thu May  2 08:45:11 CEST 2002 Pekka Riikonen <priikone@silcnet.org>
4470
4471         * Defined that the NICK command replies with thew changed
4472           nickname too, to make the nickname changing simpler at
4473           the client's end.  Updated protocol specs and the code
4474           in client and server.  Affected files are
4475           silcd/command.c, lib/silcclient/command_reply.c and
4476           lib/silcclient/command.c.
4477
4478 Mon Apr 29 20:10:42 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
4479
4480         * Added `Compressed' packet flag to indicate that the packet
4481           payload is compressed by the sender.  Updated the protocol
4482           specs and the core library.  The compression still is not
4483           implemented in the sources.  Affected file is
4484           lib/silccore/silcpacket.h.
4485
4486 Mon Apr 29 09:48:12 CEST 2002  Pekka Riikonen <priikone@silcnet.org>
4487
4488         * Remove pending command callbacks also if the connection
4489           to the server is destroyed.  Affected file is
4490           lib/silcclient/client.c.
4491
4492 Sat Apr 27 19:52:32 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
4493
4494         * Added new QUIET channel user mode that can be used to
4495           quiet a user in a channel.  Updated the protocol specs but
4496           it wasn't implemented yet.  Protocol TODO #27.  Affected
4497           file is lib/silccore/silcmode.h.
4498
4499 Mon Apr 22 09:09:44 CEST 2002  Pekka Riikonen <priikone@silcnet.org>
4500
4501         * Added BLOCK_INVITE user mode to be able to block incoming
4502           invite notifications.  Protoocol TODO #26.  Affected files
4503           are lib/silccore/silcmode.h, lib/silcclient/command.c and
4504           silcd/command.c.
4505
4506         * SILC Publickey fields MUST be UTF-8 encoded now.  Updated
4507           the protocol specs and the code.  Affected file is
4508           lib/silccrypt/silcpkcs.c.
4509
4510 Sun Apr 21 19:44:38 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
4511
4512         * Disconnect Payload includes now the status type.  Updated
4513           the protocol specs and the code.  Protocol TODO #25.
4514           Affected files are silcd/server.c, lib/silcclient/client.c.
4515
4516         * Added NOT_AUTHENTICATED, BAD_SERVER_ID, INCOMPLETE_INFORMATION,
4517           KEY_EXCHANGE_FAILED and BAD_VERSION error status types.
4518           Moved the silc_client_command_status_messages table to the
4519           lib/silcutil/silcutil.c and added new funtion
4520           silc_get_status_message, which deprecates function
4521           silc_client_status_message.  Affected files are
4522           lib/silccore/silcstatus.h, lib/silcclient/command_reply.[ch],
4523           lib/silcutil/silcutil.[ch].
4524
4525 Fri Apr 19 17:35:15 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
4526
4527         * Defined that the nickname hash in Client ID MUST be from
4528           lowercase nickname.  This effectively changes nicknames in
4529           SILC to case-insensitive.  Updated the protocol specs and
4530           the code.  Affected files are lib/silcutil/silcutil.[ch],
4531           silcd/serverid.c, and silcd/idlist.c.
4532
4533         * Added new channel user modes BLOCK_MESSAGES_USERS and
4534           BLOCK_MESSAGES_ROBOTS.  Updated the protocol specs and the
4535           code.  Affected files are lib/silccore/silcmode.h,
4536           lib/silcclient/command.c, and silcd/packet_send.c.
4537
4538         * Added new error status ERR_RESOURCE_LIMIT.  Updated protocol
4539           specs and code.  Affected file lib/silccore/silcstatus.h.
4540
4541         * Added support for watch list.  It is possible to add nicknames
4542           to be watched, and when they come to network, leave network
4543           or user mode changes the watcher will be notified of this
4544           change.  Added SILC_COMMAND_WATCH command, added new
4545           notify type SILC_NOTIFY_TYPE_WATCH to deliver the watch
4546           notifications.  Updated the protocol specs and implemented
4547           this to library, client and server.  Protocol TODO #21.
4548           Affected files are lib/silccore/silccomand.h,
4549           lib/silccore/silcnotify.h, lib/silcclient/command[_reply].[ch],
4550           silcd/command[_reply].[ch], lib/silcclient/client_notify.c,
4551           silcd/packet_send.[ch], silcd/packet_receive.c, and
4552           irssi/src/silc/core/client_ops.c.
4553
4554         * Added user mode SILC_UMODE_REJECT_WATCHING to reject
4555           somebody watching you.  Updated the protocol specs and the
4556           code.  Affected files are lib/silccore/silcmode.h, and
4557           lib/silcclient/command.c.
4558
4559 Fri Apr 19 09:02:20 CEST 2002  Pekka Riikonen <priikone@silcnet.org>
4560
4561         * Added service support to SILC protocol.  Added new command
4562           SILC_COMMAND_SERVICE.  Updated the protocol specs and the
4563           core library.  Services are not implemented in server or
4564           client for now.  Protocol TODO #20.  Affected files are
4565           lib/silccore/silcstatus.h, lib/silccore/silccommand.h.
4566
4567         * Added SilcStatus argument to `command' client operation
4568           to return the error status when command sending fails
4569           locally.  Changed all command in client library to return
4570           correct command status.  Affected files are
4571           lib/silcclient/command.c, lib/silcclient/silcclient.h and
4572           irssi/src/silc/core/client_ops.c.
4573
4574 Thu Apr 18 14:09:51 CEST 2002  Pekka Riikonen <priikone@silcnet.org>
4575
4576         * Added silc_mime_parse function to parse MIME headers.
4577           Affected files are lib/silcutil/silcstruti.[ch].
4578
4579         * Added MIME header parsing in Irssi SILC Client.  It displays
4580           all textual MIME objects, others it ignores.  Affected file
4581           is irssi/src/silc/core/clien_ops.c.
4582
4583 Wed Apr 17 22:07:59 CEST 2002  Johnny Mnemonic <johnny@themnemonic.org>
4584
4585         * Fixed a bug in the pid writing function, which couldn't be
4586           written in a root-owned directory.
4587
4588 Tue Apr 16 09:34:40 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
4589
4590         * Defined that channel message to unknown Channel ID must
4591           cause SILC_NOTIFY_TYPE_ERROR notify message to the sender.
4592           Updated the protocol specs and the code in server.  The
4593           affected file is silcd/packet_receive.c.
4594
4595 Mon Apr 15 19:57:57 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
4596
4597         * Added new notify type SILC_NOTIFY_TYPE_ERROR and specified
4598           that it is used to send error notifys if error occurs during
4599           some SILC packet processing, except commands.  The error
4600           types are same as for command reply types.  Defined that
4601           if private message is sent to unknown Client ID the error
4602           is sent in SILC_NOTIFY_TYPE_ERROR instead of command reply.
4603           Updated the protocol specs and code.  Affected files are
4604           lib/silccore/silcnotify.h, added lib/silccore/silcstatus.h,
4605           lib/silcclient/client_notify.c, silcd/packet_receive.c,
4606           and irssi/src/silc/core/client_ops.c.  Renamed the
4607           SilcCommandStatus to SilcStatus.
4608
4609         * Defined the use of extra WHOIS attributes in WHOIS command.
4610           The <Requested Attributes> (defined in a separate document)
4611           can be used to request additional information about user
4612           not returned by standard WHOIS command.  Defined that server
4613           can send WHOIS command directly to client.  Client provides
4614           the requested attributes to the server.  Updated the protocol
4615           specs.  Protocol TODO #4.  Implementation is not done yet
4616           (Protocol TODO #24).
4617
4618         * Renamed function silc_client_command_status_message to
4619           silc_client_status_message.  Affected files are
4620           lib/silcclient/command_reply.[ch].
4621
4622 Sun Apr 14 21:13:42 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
4623
4624         * Changed the WHOIS, IDENTIFY and WHOWAS count arguments to
4625           32 bit integers.  Updated the protcol specs and the code.
4626           Affected files are silcd/command.c and
4627           lib/silcclient/command.c.
4628
4629 Sun Apr 14 19:49:02 CEST 2002  Johnny Mnemonic <johnny@themnemonic.org>
4630
4631         * Fixed a bug in library where sending a bogus authentication
4632           payload would lead to a crash.  Affected file is
4633           lib/silccore/silcauth.c.
4634
4635 Sat Apr 13 13:09:24 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
4636
4637         * Added detach_disabled and detach_timeout server config
4638           options to the server.  Affected files silcd/serverconfig.[ch],
4639           silcd/command.c and silcd/packet_receive.c.
4640
4641 Fri Apr 12 20:09:08 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
4642
4643         * Added resolve_cmd_ident field to the SilcClientEntry structure
4644           too so that if the entry is for example being resolved so
4645           another command may attach to the same pending command reply
4646           without requiring to resolve the same entry again.  Added
4647           support for adding multiple pending commands for one
4648           command idenfier.  Affected files lib/silcclient/command.[ch],
4649           lib/silcclient/command_reply.[ch], lib/silcclient/idlist.h.
4650
4651 Fri Apr 12 10:17:51 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
4652
4653         * Defined that server receives WHOIS command reply for private
4654           and secret channels too.  Updated protocol specs and the
4655           code in server.  Affected file silcd/command.c.
4656
4657         * Defined <channel user mode list> argument to WHOIS command
4658           reply for returning user modes on the channels.  The
4659           channel list now doesn't include the user mode anymore but the
4660           actual channel mode.  Updated protocol specs and the code in
4661           client and server.  Affected files are silcd/command_reply.c,
4662           silcd/command.c, silcd/server.c, irssi/src/silc/core/client_ops.c,
4663           and lib/silcclient/command_reply.c.
4664
4665         * Save the channels list in WHOIS command reply in normal server
4666           so that WHOIS always shows joined channels also in normal
4667           server and not just on router.  Affected file is
4668           silcd/command_reply.c.
4669
4670 Thu Apr 11 22:29:33 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
4671
4672         * Defined that server receives USERS command reply for private
4673           and secret channels too.  Updated protocol specs and the
4674           code in server.  Affected file silcd/command.c.
4675
4676 Thu Apr 11 16:32:08 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
4677
4678         * Changed the UMODE's mode mask argument to be optional.  If
4679           not provided then the command merely returns the current mode
4680           mask to the client.  Updated protocol specs and the server.
4681           Affected file is silcd/command.c.
4682
4683         * Added SILC session detachment/resuming support.  It is possible
4684           to detach by closing the network connection and then re-connect
4685           and resume to the old client session.  Added DETACHED user
4686           mode that server will set for detached client.  Added new
4687           packet RESUME_CLIENT which is used to perform the resuming
4688           process.  Added DETACH command.  Updated the protocol specs,
4689           core library, client and server.  Protocol TODO #22.  Very
4690           many affected files around the tree.
4691
4692 Wed Apr 10 16:32:01 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
4693
4694         * Changed the CMODE's mode mask argument to be optional.  If
4695           not provided then the command merely returns the current mode
4696           mask to the client.  Updated protocol specs and the server.
4697           Affected file is silcd/command.c.
4698
4699         * Changed the Killer's Client ID in KILLED notify to be just
4700           any ID payload since router server is allowed to kill as well.
4701           Updated protocol specs, client libary and server.  Affected
4702           files are lib/silcclient/client_notify.c, silcd/packet_receive.c,
4703           and irssi/src/silc/core/client_ops.c.
4704
4705 Tue Apr  9 17:15:42 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
4706
4707         * Added new user modes ANONYMOUS for special anonymous servers
4708           that may set the mode for client, and BLOCK_PRIVMSG which
4709           client may set to block incoming private messages unless the
4710           Private Message Key flag is set (using private keys to protect
4711           private messages).  Updated protocol specs and code in client
4712           and server and core library.  Protocol TODO #23.  Affected
4713           files are lib/silccore/silcmode.h, silcd/server.[ch],
4714           irssi/src/silc/core/client_ops.c, silcd/packet_receive.c,
4715           irssi/docs/help/in/umode.in, lib/silcclient/command.c.
4716
4717         * Added new channel user mode BLOCK_MESSAGES which the client
4718           may set to itself to tell server not send channel messages.
4719           Other packets such as channel key packets are still sent.
4720           Protocol TODO #23.  Updated the protocol specs, client and
4721           server.  Affected files are lib/silccore/silcmode.h,
4722           irssi/docs/help/in/cumode.in, lib/silcclient/command.c,
4723           lib/silcutil/silcutil.c, silcd/command.c, and
4724           silcd/packet_send.c.
4725
4726 Mon Apr  8 23:57:32 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
4727
4728         * Redefined the Status Payload to include now two 8 bit fields,
4729           instead of one 16 bit field.  This now makes it possible to
4730           send list of errors.  Updated the protocol specs and the code
4731           in core library, client library and server.  Protocol TODO #1.
4732           Affected files are lib/silccore/silccommand.[ch],
4733           lib/silcclient/command_reply.[ch], silcd/command.c,
4734           silcd/command_reply.c and silcd/packet_receive.[ch].
4735
4736 Mon Apr  8 19:57:40 CEST 2002  Johnny Mnemonic <johnny@themnemonic.org>
4737
4738         * Added config parse status SILC_CONFIG_EPRINTLINE, this status
4739           must be handled by the application and should tell the application
4740           that an error message was already printed, and it should print the
4741           config coords (line, filename, ...).  Affected files are
4742           silcd/serverconfig.c, lib/silcutil/silcconfig.[ch].
4743
4744         * Added local macro SILC_SERVER_CONFIG_ALLOCTMP to make the
4745           server config parsing code more readable.
4746
4747           Fixed a bug in the fetch_logging() config callback.
4748
4749           Affected files is silcd/serverconfig.c.
4750
4751         * Drop root privileges when started in foreground.  Don't drop them
4752           if debugging also.  Affected file is silcd/silcd.c.
4753
4754 Mon Apr  8 17:00:41 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
4755
4756         * Added more IM-like features by introducing new user modes
4757           for setting various presence information.  Added new modes:
4758           INDISPOSED, BUSY, PAGE, HYPER and ROBOT.  Updated protocol
4759           specs and code.  Protocol TODO #19. Affected files are
4760           lib/silccore/silcmode.h, irssi/src/silc/core/client_ops.c,
4761           irssi/docs/help/in/umode.in and lib/silcclient/command.c.
4762
4763 Sun Apr  7 17:07:59 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
4764
4765         * Added STATS command to the protocol after all, to return
4766           various statistical information about the network.  It can
4767           be used by clients to retrieve statistical information, and
4768           servers may use it to to fetch cell and network wide
4769           statistics from router.  Updated the protocol specs and
4770           implemented it to the server.  Protocol TODO #16.
4771           Affected files are lib/silccore/silccommand, silcd/command.[ch],
4772           silcd/command_reply.[ch].
4773
4774 Sat Apr  6 17:08:58 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
4775
4776         * The LIST command reply in client libary now adds new channel
4777           entry if the returned channel doesn't exist yet in cache,
4778           and returns the channel entry to the application in the
4779           command_reply client operation.  Affected file is
4780           lib/silcclient/command_reply.c.
4781
4782         * Changed the channel message payload's MAC generation to
4783           include the IV in the MAC as well.  This way all relevant
4784           parts of the channel message payload are authenticated also
4785           with the channel message MAC (and not only by packet MAC).
4786           Causes incompatibility with 1.0 protocol.  Protocol TODO #7.
4787           Affected file is lib/silccore/silcchannel.c.
4788
4789         * Fixed the SKE to save the remote version, since the
4790           silc_ske_parse_version mistakenly checked wrong version,
4791           after it replaced the start payload.  Affected files are
4792           lib/silcske/silcske.[ch].
4793
4794 Fri Apr  5 16:03:03 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
4795
4796         * Splitted lib/silcutil/silcutil.h into silcstrutil.h for
4797           string utility functions.  Added there also new functions
4798           silc_utf8_[encode/decode/valid] for UTF-8 string encoding.
4799           Affected files lib/silcutil/silcstrutil.[ch].
4800
4801         * Renamed silc_*_pem functions to silc_pem_* functions.  Affected
4802           files are lib/silcutil/silcstrutil.[ch].
4803
4804         * Defined that the security property fields in SKE SHOULD be
4805           UTF-8 encoded, defined that version string MUST be US-ASCII
4806           encoded, defined that passphrases sent in connection
4807           authentication protocol MUST be UTF-8 encoded.  Implemented
4808           these to the client and server.  Defined also that other
4809           passphrases sent in the protocol MUST be UTF-8 encoded.
4810           Affected files are lib/silcske/silcske.c,
4811           lib/silcclient/protocol.c, silcd/protocol.c,
4812           silcd/serverconfig.c, and lib/silccore/silcauth.c.
4813
4814         * Changed the silc_client_close_connection interface to not
4815           need the SilcSocketConnection which should not be visible
4816           to application.  Affected files are lib/silcclient/client.c
4817           and lib/silcclient/silcclient.h.
4818
4819         * Rewrote the text for Private Message Key Payload in the
4820           protocol specification.  Protocol TODO #11.
4821
4822 Wed Apr  3 16:24:51 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
4823
4824         * Upgraded the protocol version to 1.1, updated protocol specs
4825           and software.
4826
4827         * Added the nickname as new argument to NICK_CHANGE notify and
4828           added it to protocol specs and implemented it to client and
4829           server.  Protocol TODO #3.  Affected files are silcd/idlist.[ch],
4830           silcd/command.c, silcd/packet_receive.c, packet_send.[ch], and
4831           lib/silcclient/client_notify.c.
4832
4833         * Added the killer's client ID to the KILLED notify and added
4834           it to protocol specs and implemented it to client and server.
4835           Protocol TODO #13.  Affected files are silcd/command.c,
4836           silcd/packet_receive.c, packet_send.[ch],
4837           lib/silcclient/client_notify.c, irssi/src/silc/core/client_ops.c.
4838           The killer's client entry is now returned to application in
4839           the `notify' client operation.
4840
4841         * Fixed the Max Argument fields that had too large value set
4842           in the protocol specs.  Protocol TODO #14.
4843
4844         * Added the LEAVE command reply to return the ID of parted
4845           channel.  Updated protocol specs and implemented it to the
4846           client and server.  Protocol TODO #15.  Affected files are
4847           silcd/command.c, lib/silcclient/command_reply.c.  The channel
4848           entry is now returned to application in the `command_reply'
4849           client operation.
4850
4851         * Rewrote the version SKE version checking in client libary
4852           and in server to use the silc_parse_version_string.  Affected
4853           files are lib/silcclient/protocol.c, silcd/protocol.c.
4854
4855         * Added SILC_STATUS_ERR_NO_CHANNEL_FOPRIV error status to few
4856           commands that was missing it, and updated protocol specs and
4857           the server implementation.  Protocol TODO #10.  The affected
4858           file is silcd/command.c.
4859
4860         * Defined new message flags SILC_MESSAGE_FLAG_REPLY to be
4861           generic reply to a generic request (REQUEST flag), and
4862           SILC_MESSAGE_FLAG_DATA to send any kind of data in a generic
4863           way.  A draft-riikonen-silc-flags-payloads-00.txt is written
4864           to define the payload for DATA flag.  Added the flags to
4865           the implementation.  Protocol TODO #9.  Affected file is
4866           lib/silccore/silcchannel.h.
4867
4868           Changed the client library to return the message length
4869           to application as well in the channel_message and private_message
4870           client operations.  Affected files are
4871           lib/silcclient/client_prvmsg, lib/silcclient/client_channel.c,
4872           lib/silcclient/silcclient.h, irssi/src/silc/core/client_ops.c,
4873           and lib/silcclient/client_ops_example.c.
4874
4875         * Added two new channel modes: SILC_CMODE_SILENCE_USERS
4876           and SILC_CMODE_SILENCE_OPERS which can be used to moderate
4877           the channel.  Updated protocol specs and impelemented this
4878           to client and server.  Protocol TODO #6.  Affected files are
4879           silcd/packet_receive.c, server_util.c, lib/silcclient/command.c,
4880           lib/silcclient/client_channel.c, lib/silccore/silcmode.h.
4881
4882           Added new options m and M to CMODE command in Irssi SILC
4883           client to set these modes.
4884
4885         * Deprecated all administrative commands from SILC protocol
4886           since they are highly implementation specific commands.
4887           Updated protocol specs.  Moved the old commands in
4888           implementations to private range of command types.  Affected
4889           files are silcd/command.c, lib/silcclient/command.c and
4890           lib/silcclient/command_reply.c.  Protocol TODO #8.
4891
4892         * Fixed a bug in server where sending unknown command crashes
4893           the server.  Affected file silcd/command.c.
4894
4895 Wed Apr  3 09:57:47 CEST 2002  Pekka Riikonen <priikone@silcnet.org>
4896
4897         * Added SILC_PROTOCOLVERSION macro to check protocol version
4898           of a socket connection.  The affected file is
4899           lib/silcutil/silcsockconn.h.
4900
4901         * Added better error logging in rekey protocol.  Affected file
4902           silcd/protocol.c.
4903
4904         * Do not check public key types in SKE during rekey.  Affected
4905           file lib/silcske/payload.c.
4906
4907         * Fixed the rekey protocol with PFS, which was totally broken.
4908           Affected file silcd/protocol.c.
4909
4910 Tue Apr  2 14:55:06 CEST 2002  Pekka Riikonen <priikone@silcnet.org>
4911
4912         * Some client implementations quit network by doing first LEAVE
4913           and then immediately SIGNOFF (like Bombyx).  We now do check
4914           after a short time after LEAVE notify and check whether the
4915           client is still valid after LEAVE, and if not we remove it from
4916           cache.  Affected file is lib/silcclient/client_notify.c.
4917
4918 Tue Apr  2 13:39:04 CEST 2002  Johnny Mnemonic <johnny@themnemonic.org>
4919
4920         * Merged version 1.1.4 of zlib. Even if it not currently in use,
4921           it's good not to have security holes here.
4922
4923         * Fixed a negative refcount situtuation for the config context.
4924           Affected file is silcd/serverconfig.c.
4925
4926 Mon Apr  1 20:15:10 CEST 2002  Johnny Mnemonic <johnny@themnemonic.org>
4927
4928         * ROBOdoc documented lib/silcutil/silcutil.h.
4929
4930 Sat Mar 30 21:06:45 EET 2002  Pekka Riikonen <priikone@silcnet.org>
4931
4932         * Optimized even more the SilcPacketContext structure.  Now
4933           totally saved 16 bytes of memory per context after optimization.
4934           Affected files are lib/silccore/silcpacket.[ch].
4935
4936         * Made strict checks for valid SILC IDs.  Affected file is
4937           lib/silccore/silcid.c.
4938
4939 Sat Mar 30 18:15:55 EET 2002  Pekka Riikonen <priikone@silcnet.org>
4940
4941         * Changed the object argument for silc_cipher_register,
4942           silc_hash_register, silc_hmac_register and silc_pkcs_register
4943           to const.  Affected files are lib/silccrypt/silccipher.[ch],
4944           silchash.[ch], silchmac.[ch] and silcpkcs.[ch].
4945
4946         * Changed the silc_get_username and silc_get_real_name to
4947           never fail.  Affected file lib/silcutil/unix/silcunixutil.c.
4948
4949         * Fixed the Irssi SILC Client to use the silc_get_username and
4950           silc_get_real_name insted of glib routines since the glib
4951           routines only corrupt stack.  Fixes the Irssi SILC to work in
4952           Cygwin.  Affected file irssi/src/silc/core/silc-core.c.
4953
4954         * Fixed the Irssi to not use g_get_home_dir since it crashes
4955           or returns garbage on cygwin and corrupts stack.  Added function
4956           get_home_dir to Irssi routines.  Affected files are
4957           irssi/src/core/misc.[ch] and irssi/src/core/core.c.
4958
4959 Fri Mar 29 21:55:41 EET 2002  Pekka Riikonen <priikone@silcnet.org>
4960
4961         * Made some structure optimizations.  SFTP memory FS MemFSEntry
4962           entry structure.  Optimized SilcTask structure.  Optimized
4963           SilcPacketContext structure.
4964
4965           Affected files lib/silcsftp/sftp_fs_memory.c,
4966           lib/silcutil/silcschedule.c, lib/silccore/silcpacket.h.
4967
4968 Fri Mar 29 10:41:07 EET 2002  Pekka Riikonen <priikone@silcnet.org>
4969
4970         * And yet again reverted back the config thing since Johnny
4971           screwed it up.  Affected file silcd/serverconfig.[ch], server.c,
4972           and silcd.c.
4973
4974         * Fixed memory leaks from config object.  Affected files are
4975           silcd/serverconfig.[ch].
4976
4977         * Added support for adding new connections to the server in rehash.
4978           After rehash they take effect.
4979
4980           Added support for changing the maximum allowed connections in
4981           rehash.  The number can grow but going smaller is not supported.
4982
4983           Added function silc_server_num_sockets_by_remote to the
4984           silcd/server_util.[ch].
4985
4986           Affected files are silcd/server.c, and silcd/serverconfig.[ch].
4987
4988 Fri Mar 29 03:26:12 CET 2002 Johnny Mnemonic <johnny@themnemonic.org>
4989
4990         * Added preliminary checking during config parsing for a valid
4991           public/private key and removed further checks in the code.
4992           Affected files are silcd/serverconfig.[ch], server.c.
4993
4994         * Moved functions silc_server_drop() and silc_server_daemonise()
4995           from server.c to silcd.c since they are stricly related to
4996           the application activity.
4997
4998         * Reverted a small part of the automatic ref/unref since
4999           it caused a double unref in some situations.  Affected
5000           files are silcd/silcd.[ch], server.c, serverconfig.c.
5001
5002         * Added some .cvsignore files in the lib directory.
5003
5004 Thu Mar 28 22:51:15 EET 2002  Pekka Riikonen <priikone@silcnet.org>
5005
5006         * Fixed silc_net_gethostbyaddr to correctly resolve by
5007           address.  Affected file lib/silcutil/silcnet.c.
5008
5009         * Fixed the notify relaying to client.  The HMAC to be used
5010           with relayed packets ws wrong and caused decryption failure
5011           at the client end.  Affected file is silcd/packet_receive.c.
5012
5013 Thu Mar 28 19:02:05 EET 2002  Pekka Riikonen <priikone@silcnet.org>
5014
5015         * Created new branch silc_protocol_1_0_branch.
5016
5017         * Reverted the silc_log_quick change in lib/silcutil/silclog.c.
5018
5019         * Changed the silc_server_config_* routines to be SilcServer
5020           independent.  They are now officially application specific code
5021           and not part of generic server implementation.  Affected files
5022           are silcd/serverconfig.[ch], silcd/silcd.c, silcd/server.c.
5023
5024 Thu Mar 28 17:01:43 EET 2002  Pekka Riikonen <priikone@silcnet.org>
5025
5026         * Added automatic referencing of config context in the
5027           silc_server_config_alloc, and automatic unreferencing in the
5028           silc_server_config_destroy.  Affected files are
5029           silcd/serverconfig.[ch], silcd/silcd.c.
5030
5031         * Fixed the silc_log_quick handling in the logging routines.
5032           It didn't log quickly when it was TRUE.  Affected file is
5033           lib/silcutil/silclog.c.  Also the flush delay was set even
5034           if it was 0 in config file.  Affected file is
5035           silcd/serverconfig.c.
5036
5037         * Added support for changing key pair of the server in rehash.
5038           Affected file silcd/server.c.
5039
5040 Thu Mar 28 12:17:21 CET 2002  Pekka Riikonen <priikone@silcnet.org>
5041
5042         * Fixed the TOPIC_SET notify to not cras.  It changed the topic
5043           too early, before getting the channel entry.  Affected file
5044           is silcd/packet_receive.c.
5045
5046 Thu Mar 28 09:58:16 CET 2002  Johnny Mnemonic <johnny@themnemonic.org>
5047
5048         * Added functions silc_server_config_[ref/unref], these are used
5049           to prevent that the config object is destroyed.
5050
5051           No longer directly affect global variables silc_log_quick and
5052           silc_log_delay, they are first cached inside the config object
5053           and then applied with silc_server_config_setlogfiles().
5054
5055           silc_server_config_set_defaults() is now internal to
5056           serverconfig.c, there are no reasons to show this internal stuff
5057           to the server.
5058
5059           Affected files are silcd/serverconfig.[ch].
5060
5061         * Added macro SILC_SERVER_LOG_STDERR(), this should replace most
5062           fprintf's to stderr, since some code may be executed again after
5063           the server went into the background.  Affected files are
5064           silcd/server.[ch].
5065
5066         * Added rehash support. Added function silc_server_rehash() that
5067           will perform all the basic tasks of the rehashing procedure.
5068
5069         * Added command line option `-x, --hexdump'. This will enable the
5070           SILC_LOG_HEXDUMP calls that are no longer enabled with `--debug'.
5071           The option `--hexdump' implies `--debug'.
5072
5073         * Fixed a bad bug in the logging APIs (silcutil library) where
5074           the application would crash after calling silc_log_reset_all().
5075
5076 Wed Mar 27 19:43:16 EET 2002  Pekka Riikonen <priikone@silcnet.org>
5077
5078         * Fixed the KICKED notify handling in client library to
5079           correctly remove the channel and all entries from the
5080           channel when I was kicked.  This bug crashed the client.
5081
5082           Fixed yet another but in KICKED notify handling to remove
5083           the kicked client correctly from the channel.
5084
5085           Affected file is lib/silcclient/client_notify.c.
5086
5087         * Fixed a minor bug in looking up correct client entry
5088           in KICKED notify in server.  Affected file is
5089           silcd/packet_receive.c.
5090
5091         * Fixed the lib/silcmath/Makefile.am to include the MPI and GMP
5092           sources correctly to distribution.  Fixes --with-gmp option.
5093
5094         * Removed the manual rehashing from ID Cache, and changed it
5095           to use the SILC Hash Table's auto rehash feature.  Affected
5096           file is lib/silccore/silcidcache.c.
5097
5098 Wed Mar 27 00:07:11 EET 2002  Pekka Riikonen <priikone@silcnet.org>
5099
5100         * Fixed a bug in the silc_client_nickname_format function that
5101           handles the multiple same nickname formatting.  Two clients
5102           with same nickname caused problems after the first one left
5103           and rejoined.  It didn't format the nickname correctly.
5104           Affected file is lib/silcclient/idlist.c.
5105
5106 Tue Mar 26 19:33:03 CET 2002  Pekka Riikonen <priikone@silcnet.org>
5107
5108         * Don't change the topic if olod topic is same as new one.
5109           Affected file is silcd/packet_receive.c.
5110
5111 Mon Mar 25 21:11:35 EET 2002  Pekka Riikonen <priikone@silcnet.org>
5112
5113         * Added cross-reference support to the SILC Documentation
5114           generator.  All types across all HTML files are now cross-
5115           referenced.  Affected files util/robodoc/generator.c and
5116           scripts/silcdoc/silcdoc.
5117
5118         * Added file lib/silcutil/silctypes.h to include all the
5119           arithmetic type definitions and some macros.  Removed
5120           includes/bitmove.h and moved macros to silctypes.h.
5121
5122 Mon Mar 25 17:19:46 EET 2002  Pekka Riikonen <priikone@silcnet.org>
5123
5124         * Merged bugfixes for Irssi SILC client from irssi.org CVS.
5125
5126 Sun Mar 24 11:21:04 EET 2002  Pekka Riikonen <priikone@silcnet.org>
5127
5128         * Added `type' argument to silc_id_payload_parse_id function which
5129           now returns the type of the ID to the sent pointer.  Affected
5130           file is lib/silccore/silcid.[ch].
5131
5132         * Added check for CMODE_CHANGE notify type that mode change is
5133           allowed by the sender.  Affected file silcd/packet_receive.c.
5134
5135         * Added check for CUMODE_CHANGE notify type that mode change is
5136           allowed by the sender.  Affected file silcd/packet_receive.c.
5137           Added the ID type as CUMODE_CHANGE notify type as argument
5138           to the `notify' client operation.  Affected files are
5139           lib/silcclient/client_notify.c, irssi/src/silc/core/client_ops.c.
5140
5141         * Added function silc_client_add_server to the client library.
5142           Added support for resolving also channel and server info when
5143           received unknown entity in notify packet.  Affected files are
5144           lib/silcclient/idlist.[ch], lib/silcclient/client_notify.c.
5145
5146         * Added function silc_command_get_status to return the command
5147           status from the command reply's argument payload.  Affected files
5148           are lib/silccore/silccommand.[ch].
5149
5150         * Added check for KICKED notify type that the kicking is
5151           allowed by the client.  Affected file silcd/packet_receive.c.
5152
5153         * Created function silc_get_input which can be used to get input
5154           (echo on or off) from user on command line.  Affected files are
5155           lib/silcutil/silcutil.[ch].
5156
5157 Sat Mar 23 09:51:26 EET 2002  Pekka Riikonen <priikone@silcnet.org>
5158
5159         * Optimized silc_server_packet_relay_to_channel function.
5160           Added new function silc_channel_message_payload_encrypt which
5161           can be called directly if channel message payload needs to
5162           be encrypted and is already encoded (no need to call _encode
5163           function).  Packet relaying is now done by router without any
5164           extra memory allocations.  Affected files are
5165           lib/silccore/silcchanel.[ch], silcd/packet_receive.c and
5166           silcd/packet_send.c.
5167
5168         * Fixed the INVITE notify handling.  It took wrong arguments
5169           as invite list and invite delete.  Affected file is
5170           silcd/packet_receive.c.
5171
5172         * Added check for TOPIC_SET notify type that the topic change is
5173           allowed by the client.  Affected file silcd/packet_receive.c.
5174
5175         * Added check for INVITE notify type that inviting is allowed by
5176           the client.  Affected file silcd/packet_receive.c.
5177
5178         * Changed the silc_server_client_on_channel to return the
5179           SilcChannelClientEntry as well.  Moved the function
5180           silc_server_check_cmode_rights to server_util.[ch].
5181           Affected files are silcd/server_util.[ch], silcd/command.c.
5182
5183         * Added function silc_server_check_umode_rights to check whether
5184           changing client's user mode is allowed.  Added check for
5185           UMODE_CHANGE notify type that the umode change is allowed
5186           by the client.  Affected files are silcd/server_util.[ch],
5187           silcd/packet_receive.c and silcd/command.c.
5188
5189 Fri Mar 22 12:25:58 CET 2002  Pekka Riikonen <priikone@silcnet.org>
5190
5191         * Fixed the SILC_PACKET_MAX_ID_LEN to actually be the max
5192           ID length.  It ignored that ID can be IPv6 based as well.
5193           Affected file lib/silccore/silcpacket.h.
5194
5195         * Fixed the silc_id_id2str and silc_id_str2id to take the
5196           IPv6 address offset's into consideration.  Affecte file is
5197           lib/silccore/silcid.c.
5198
5199 Thu Mar 21 20:44:13 EET 2002  Pekka Riikonen <priikone@silcnet.org>
5200
5201         * Fixed the internal Unix scheduler functions to check for
5202           NULL context they may receive.  The affected file is
5203           lib/silcutil/unix/silcunixschedule.c.
5204
5205 Thu Mar 21 19:12:22 EET 2002  Timo Sirainen <tss@iki.fi>
5206
5207         * Changed hardcoded ~/.silc paths to use get_irssi_dir() so you
5208           can specify different directory with --home command line
5209           parameter. Affected files irssi/src/silc/core/client_ops.c,
5210           clientutil.c
5211
5212         * SILC-specific commands aren't now executed if the active server
5213           isn't of SILC-type, so there won't be problems with having
5214           IRC and SILC protocol support in same client. Affected files
5215           irssi/src/silc/core/silc-channels.c, silc-servers.c,
5216           silc-commands.h
5217
5218 Wed Mar 20 11:06:57 CET 2002  Pekka Riikonen <priikone@silcnet.org>
5219
5220         * Improved the signal support in SILC Schedule.  Added new
5221           function silc_schedule_signal_call which is used by application
5222           to mark a signal to be called.  It is now safe to perform
5223           any kind of tasks in signal callbacks since it is guaranteed
5224           that the application specified signal callback is called
5225           after the signal is over.  Affected files are
5226           lib/silcutil/silcschedule.[ch], lib/silcutil/*/silc*schedule.c.
5227
5228 Tue Mar 19 20:42:41 EET 2002  Pekka Riikonen <priikone@silcnet.org>
5229
5230         * Added `name' field to SilcChannelPrivateKey to represent
5231           application given name for the key.  Moved also the context from
5232           lib/silcclient/idlist.h into lib/silcclient/silcclient.h.
5233           Added the `name' argument also to the function
5234           silc_client_add_channel_private_key.
5235
5236           Added function silc_client_current_channel_private_key to set the
5237           current channel private key in use.
5238
5239           Added "change" command to KEY command which can be used to change
5240           the current channel private key.  Bound the command also to
5241           alt+K (Alt+Shift+k).
5242
5243           Also affected files lib/silcclient/client_channel.c,
5244           irssi/src/docs/help/in/key.in, irssi/src/silc/core/silc-channel.c.
5245
5246 Tue Mar 19 16:32:43 CET 2002  Pekka Riikonen <priikone@silcnet.org>
5247
5248         * Added silc_rng_get_byte_fast function in to the
5249           lib/silccrypt/silcrng.[ch].
5250
5251         * Changed the interface of silc_packet_assemble and the
5252           silc_packet_send_prepare.  If silc_packet_assmble is now
5253           called the application does not call silc_packet_send_prepare
5254           because the library will call it automatically.  These
5255           interfaces now also return a reference to the outgoing buffer
5256           which includes the assembled packet, which the application can
5257           use to encrypt the packet.
5258
5259           Affected files are lib/silccore/silcpacket.[ch],
5260           lib/silcclient/client.c, client_channel.c client_prvmsg.c,
5261           silcd/packet_send.c, server_backup.c and packet_receive.c.
5262
5263         * Fixed a packet sending bug on very high load, where outgoing
5264           packet queue wasn't handled correctly and packets got corrupted.
5265           Affected files are lib/silcutil/*/silc*sockconn.c,
5266           lib/silcclient/client.c and silcd/server.c.
5267
5268 Mon Mar 18 21:00:41 EET 2002  Pekka Riikonen <priikone@silcnet.org>
5269
5270         * Added macro SILC_PACKET_DATALEN which can be used during
5271           packet assembling to check whether the data to be added to
5272           the packet will fit to SILC_PACKET_MAX_LEN.  If not the data
5273           len is truncated until it fits it.
5274
5275           Added checks for maximum length of channel message payload and
5276           private message payload also.
5277
5278           Added checks for maximum packet length in server and in
5279           client library.
5280
5281           Affected files are lib/silccore/silcpacket.h, silcd/packet_send.c,
5282           lib/silcclient/client.c, lib/silccore/silcchannel.c and
5283           lib/silccore/silcprivate.c, lib/silcclient/client_channel.c and
5284           lib/silcclient/client_prvmsg.c.
5285
5286 Mon Mar 18 14:54:42 CET 2002  Pekka Riikonen <priikone@silcnet.org>
5287
5288         * Added silc_server_packet_queue_purge call to the
5289           silc_server_disconnect_remote to assure that all data in the
5290           queue before disconnecting is sent to the network.  Affected
5291           file silcd/server.c.
5292
5293 Sun Mar 17 19:26:16 EET 2002  Pekka Riikonen <priikone@silcnet.org>
5294
5295         * Added the deleting of server's own ID cache entry to the
5296           silc_server_free function.  Free also everything else that
5297           has been allocated in silc_server_init.  The affected file
5298           is silcd/server.c.
5299
5300 Sun Mar 17 15:44:56 EET 2002  Pekka Riikonen <priikone@silcnet.org>
5301
5302         * Added functions silc_parse_version_string, silc_version_to_num,
5303           and silc_ske_parse_version to parse SILC protocol style version
5304           strings.  Affected files lib/silcutil/silcutil.[ch] and
5305           lib/silcske/silcske.[ch].
5306
5307         * Added new configuration params: version_protocol, version_software
5308           and version_software_vendor to specify what version the remote
5309           host must at least be to be able to connect to server.  The vendor
5310           string can be regex matched too.  Added new function
5311           silc_server_connection_allowed to check maximum number of allowed
5312           connections, and allowed versions for incoming connections.
5313           Affected files are silcd/server.c, server_util.[ch] and
5314           serverconfig.[ch].
5315
5316 Sun Mar 17 10:24:50 EET 2002  Pekka Riikonen <priikone@silcnet.org>
5317
5318         * Added preliminary support for signals in scheduler.  The
5319           signals we care about are now blocked always when the scheduler
5320           is locked.  This way we can synchronise the use of signal with
5321           scheduler.  It is guaranteed that when signal occurs the scheduler
5322           is not locked, and thus new tasks can be safely added to the
5323           scheduler.
5324
5325           Renamed silc_schedule_wakeup_init and silc_schedule_wakeup_uninit
5326           to silc_schedule_internal_init and silc_schedule_internal_uninit.
5327           Added new platform specific routines
5328           silc_schedule_internal_signals_[un]block and
5329           silc_schedule_internal_signal_[un]register.
5330
5331           Added new functions to SILC Schedule API:
5332           silc_schedule_signal_[un]register.  Each signal that application
5333           is going to use should be registered to the scheduler.
5334
5335           Affected files are lib/silcutil/silcschedule.[ch],
5336           lib/silcutil/*/silc*schedule.c.
5337
5338 Sat Mar 16 22:39:23 EET 2002  Pekka Riikonen <priikone@silcnet.org>
5339
5340         * Check for unauthenticated client and server in the
5341           silc_server_new_client and silc_server_new_server functions.
5342           Affected file silcd/packet_receive.c.
5343
5344         * Added function silc_string_is_ascii to check whether given
5345           string is 7-bit ASCII string.  Affected files are
5346           lib/silcutil/silcutil.[ch].
5347
5348         * Added function silc_id_is_valid_server_id into the
5349           silcd/serverid.c and added checking for valid Server ID's in
5350           silc_server_new_server.  The Server ID must always be based
5351           on the server's public IP address.
5352
5353         * Added logging of DISCONNECT packet message in the server.
5354           Affected file silcd/server.c.
5355
5356 Sat Mar 16 18:04:30 EET 2002  Pekka Riikonen <priikone@silcnet.org>
5357
5358         * Changed all library interfaces that use Global RNG to also
5359           accept SilcRng as argument.  Affected files are
5360           lib/silcclient/command.c, lib/silccore/silcauth.[ch],
5361           lib/silccore/silcchanel.[ch], lib/silcclient/client_channel.c,
5362           silcd/packet_send.c, lib/silccore/silcprivate.[ch],
5363           lib/silcmath/silcprimegen.c, lib/silcmath/silcmath.h, and
5364           lib/silccrypt/rsa.c.
5365
5366         * Added function silc_pkcs_generate_key to the
5367           lib/silccrypt/silcpkcs.[ch] for applications so that they
5368           don't need to do pkcs->pkcs->init calls anymore.
5369
5370         * Remove SilcSocketConnection from the SFTP API since it really
5371           wasn't needed there.  The application has the information
5372           saved in its contexts anyway and the SFTP layer doesn't need
5373           know about it.  Affected files lib/silcsft/silcsftp.h and
5374           lib/silcsftp/sftp_[server/client].c.
5375
5376         * Rewrote the SILC SIM (modules) interface in lib/silcsim.[ch].
5377           The SilcSimContext is not SilcSim.
5378
5379         * Fixed possible buffer overflows in silc_id_render in the
5380           lib/silcutil/silcutil.c.
5381
5382         * On EPOC the global crypto module lists are not used at all
5383           in the crypto library.  Added support for using the constant
5384           algorithm list on EPOC.  Affected files are
5385           lib/silccrypt/silccipher.c, silchash.c, silchmac.c and
5386           silcpkcs.c.
5387
5388         * Fixed the handling of third parameter of KICKED notify, since
5389           it was mistakenly updated to SILC Protocol 1.0 even though it
5390           is to be included in 1.1.  Since it is not in 1.0 it is not
5391           mandatory, and this fix now handles it only if it is provided,
5392           and it is not error if it is not provided.  Affected file
5393           lib/silcclient/client_notify.c.
5394
5395 Sat Mar 16 09:07:27 EET 2002  Pekka Riikonen <priikone@silcnet.org>
5396
5397         * Handled CHANNEL_CHANGE notify (ignore it) in Irssi SILC
5398           client.  Affected file irssi/src/silc/core/client_ops.c.
5399
5400         * Merged with Irssi 0.8.4 from irssi.org CVS.
5401
5402 Thu Mar 14 12:53:57 CET 2002  Pekka Riikonen <priikone@silcnet.org>
5403
5404         * Check for valid socket connection in client entries before
5405           sending any messages.  Fixes a crash, but doesn't fix some
5406           other underlaying bug that is lurking there.  Affected
5407           file silcd/packet_send.c.
5408
5409 Thu Mar 14 13:38:12 EET 2002  Timo Sirainen <tss@iki.fi>
5410
5411         * $usermode, $cumode and $cumode_space expandos shouldn't do
5412           anything with non-SILC server records. Affected file
5413           irssi/src/silc/core/silc-expandos.c
5414
5415 Wed Mar 13 21:38:26 EET 2002  Pekka Riikonen <priikone@silcnet.org>
5416
5417         * Fixed the silc_net_check_[host/local]_by_sock to support
5418           IPv6 bound sockets as well.  Now they can return IPv6 addresses
5419           as well.  Affected file lib/silcutil/silcnet.c.
5420
5421         * Fixed silc_net_addr2bin to correctly convert IPv6 addresses.
5422           Affected lib/silcutil/unix/silcunixnet.c.
5423
5424         * Fixed ID rendering (at least on some platforms, not NetBSD)
5425           for IPv6 addresses.  Affected file lib/silcutil/silcutil.c.
5426
5427 Tue Mar 12 17:58:59 EET 2002  Pekka Riikonen <priikone@silcnet.org>
5428
5429         * Added silc_hash_public_key and silc_hash_public_key_compare
5430           functions to be used with SilcHashTable.  They can be used to
5431           hash public keys and compare public keys in hash table.  Affected
5432           file lib/silcutil/silcutil.[ch].
5433
5434         * Added support for specifying multiple public keys for Client
5435           connection section in server configuration file.  This makes it
5436           possible to accept multiple public keys from same host, or to
5437           make a section that accepts any incoming host, and have the
5438           accepted public keys listed in the section.
5439
5440           Added functions silc_sever_[find/get]_public_key,  added the
5441           support for this actually to all connection sections but only
5442           the Client section is currently allowed to specify multiple
5443           public keys.
5444
5445           Affected files are silcd/server.c, server_internal.h,
5446           command.c, protocol.c, server_util.[ch], packet_receive.c.
5447
5448 Mon Mar 11 23:37:38 EET 2002  Pekka Riikonen <priikone@silcnet.org>
5449
5450         * Merged Irssi 0.8.2 from irssi.org CVS.
5451
5452 Sun Mar 10 23:34:48 CET 2002  Johnny Mnemonic <johnny@themnemonic.org>
5453
5454         * If silc_debug is TRUE, also output standard logging messages
5455           to stderr with the debug output.
5456
5457           Made silc_log_reset_all() flushing all channels before returning.
5458           Also fixed some documentation typos.
5459
5460           Affected files are lib/silcutil/silclog.[ch].
5461
5462 Sun Mar 10 20:07:49 EET 2002  Pekka Riikonen <priikone@silcnet.org>
5463
5464         * Fixed the server to check correctly the amount of connections
5465           from single host, by checking also the type of the connection.
5466           Fixed also the comparison of number of connections and number
5467           of allowed connections.  Affected files are silcd/server.c,
5468           server_util.[ch].
5469
5470 Fri Mar  8 17:16:41 EET 2002  Pekka Riikonen <priikone@silcnet.org>
5471
5472         * Fixed the USERS command reply to save the user's mode on the
5473           channel as well.  Fixed JOIN command reply to check whether a
5474           client is on channel already and not join it twice.  Affected
5475           file lib/silcclient/command_reply.c.
5476
5477         * Added new file silc-expandos.c into irssi/silc/core/ to return
5478           various stuff for various signal for the statusbar etc. updating.
5479           Now Irssi SILC client prints channel user modes etc. on the
5480           statusbar.
5481
5482         * The user mode (like server/router operator changes) is now shown
5483           on the Irssi SILC client's statusbar.  The affected files are
5484           irssi/src/silc/core/client_ops.c, silc-expandos.c.
5485
5486 Thu Mar  7 19:21:22 EET 2002  Pekka Riikonen <priikone@silcnet.org>
5487
5488         * Changed silc_mutex_[un]lock calls in lib/silcutil/silcschedule.c
5489           to SILC_SCHEDULE_[UN]LOCK macros.
5490
5491         * Added more error printing to logs in server code.  Affected
5492           files silcd/server.c and silcd/protocol.c.
5493
5494         * Fixed -S option parsing in Irssi SILC Client.  Affected file
5495           irssi/src/silc/core/silc-core.c.
5496
5497         * Added silc_buffer_alloc_size function.  Affected file is
5498           lib/silcutil/silcbuffer.h.
5499
5500 Tue Mar  5 14:37:27 EET 2002  Pekka Riikonen <priikone@silcnet.org>
5501
5502         * Changed all silc_[hash|hmac|cipher|pkcs]_default tables to
5503           constants.  Affected files in
5504           lib/silccrypt/silcpkcs.[ch], silchash.[ch], silchmac.[ch] and
5505           silccipher.[ch].
5506
5507         * Changed the internal SFTP Memory FS table to const.  Affected
5508           file lib/silcsftp/sftp_fs_memory.c.
5509
5510 Sun Mar  3 18:37:13 EET 2002  Pekka Riikonen <priikone@silcnet.org>
5511
5512         * Fixed the buffer formatting and unformatting routines to
5513           check the size of 64 bits types with sizeof().  Affected
5514           file is lib/silcutil/silcbuffmt.c.
5515
5516 Mon Feb 25 17:19:05 EET 2002  Pekka Riikonen <priikone@silcnet.org>
5517
5518         * Removed 0.6.x backwards support.
5519
5520 Sun Feb 24 12:53:25 EET 2002  Pekka Riikonen <priikone@silcnet.org>
5521
5522         * Changed all integer type names:
5523           [u]int[8/16/32/64] -> Silc[UInt/Int][8/16/32/64].  This is
5524           to avoid collisions with other libraries using same type names
5525           as we did.
5526
5527 Sat Feb 23 20:31:43 EET 2002  Pekka Riikonen <priikone@silcnet.org>
5528
5529         * Added `prefer_ipv6' argument to the functions
5530           silc_net_gethostbyname[_async].  If it is TRUE it will return
5531           IPv6 address over IPv4.  If FALSE IPv4 address is returned
5532           even if IPv6 address was found.  Affected files
5533           lib/silcutil/silcnet.[ch].
5534
5535         * Added support silc_net_create_connection[_async] to fallback
5536           to IPv4 address if IPv6 address could not be used (like if
5537           it doesn't work on a specific system).  Affected file in
5538           lib/silcutil/unix/silcunixnet.c.
5539
5540 Sat Feb 23 15:20:30 EET 2002  Pekka Riikonen <priikone@silcnet.org>
5541
5542         * Added silc_schedule_reinit function to do the enlarging
5543           of the max tasks handling capabilities of the scheduler.
5544           Affected files lib/silcutil/silcschedule.[ch].
5545
5546 Wed Feb 20 20:41:01 EET 2002  Pekka Riikonen <priikone@silcnet.org>
5547
5548         * Added automatic extern "C" { ... } for C++ compilers so the
5549           application does not need to define them.  Affected file
5550           includes/silcincludes.h.
5551
5552         * Renamed lib/silcclient/silcapi.h to silcclient.h as the
5553           old name went against naming convention.  Applications now
5554           include "silcclient.h" instead of "clientlibincludes.h".
5555           Removed includes/clientlibincludes.h, it is redundant now.
5556
5557         * Renamed includes/version.h to silcversion.h.
5558
5559         * Added really preliminary support for OS/2 into the util
5560           library.  Only thread & mutex API is implemented, others
5561           are still to be implemented.  Created the lib/silcutil/os2/
5562           directory.  Created also file includes/silcos2.h.
5563
5564 Wed Feb 20 18:48:49 EET 2002  Pekka Riikonen <priikone@silcnet.org>
5565
5566         * Added preliminary BeOS support into the util library.
5567           Created lib/silcutil/beos/, and implemented all the needed
5568           functions to support SILC on BeOS.  Created also file
5569           includes/silcbeos.h.
5570
5571 Mon Feb 18 15:49:22 EET 2002  Timo Sirainen <tss@iki.fi>
5572
5573         * Added proper initializations to silc's irssi code, so it's
5574           now possible to load it as module.  Affected files
5575           irssi/src/silc/core/silc-core.c,
5576           fe-common/silc/fe-common-silc-core.[ch] and fe-text/silc.c
5577
5578 Sun Feb 17 19:02:56 EET 2002  Pekka Riikonen <priikone@silcnet.org>
5579
5580         * Merged latest Irssi (0.8.1) from the irssi.org's CVS into
5581           the SILC tree.
5582
5583         * Fixed the silcdoc document generator to correct generate
5584           docs from all kinds of filenames.  Affected files are
5585           util/robodoc/Source/generator.c, scripts/silcdoc/silcdoc
5586
5587         * ROBOdoc documented lib/silcutil/silcmemory.h.
5588           Added also new function silc_memdup.
5589
5590         * Removed lib/silcutil/silcbufutil.h and moved those routines
5591           to the lib/silcutil/silcbuffer.h.
5592
5593 Sun Feb 17 15:52:30 EET 2002  Pekka Riikonen <priikone@silcnet.org>
5594
5595         * Added `user_count' to the SilcChannelEntry which now tells the
5596           number of users on the channel.  The user count is now saved
5597           in normal server of global channels as well.  Affected files
5598           silcd/server.c, idlist.h, packet_receive.c and command.c.
5599
5600         * Splitted lib/silcutil/silcutil.[ch] into silcfileutil.[ch] to
5601           include file utility functions.
5602
5603         * Fixed the lib/silcsftp/sftp_fs_memory.c to use silcutil routines
5604           instead of calling directly OS routines.
5605
5606         * Fixed NICK change printing in Irssi SILC Client. Fixed
5607           KICKED notify printing in Irssi SILC Client.  Affected file
5608           irssi/src/silc/core/client_ops.c.
5609
5610         * Fixed a NICK change bug in client library, to not recreate the
5611           client_entry->channels hash table everytime nick is changed.
5612           Affected file lib/silcclient/client.c.
5613
5614 Sun Feb 17 10:10:14 EET 2002  Pekka Riikonen <priikone@silcnet.org>
5615
5616         * ROBOdoc documented the lib/silcske/silcske.h, and improved
5617           the SKE interface a bit.
5618
5619         * Fixed padding problem in PKCS#1. The padding was not actually
5620           random since the random number generator was used incorrectly.
5621           This security bug affects only when encrypting with PKCS#1, and
5622           it is not currently used at all in SILC. SILC only use signing
5623           with PKCS#1. Affected file lib/silccrypt/pkcs1.c.
5624
5625 Sat Feb 16 13:44:24 EET 2002  Pekka Riikonen <priikone@silcnet.org>
5626
5627         * Rewrote the notify handling in Irssi SILC client to not call
5628           the events as signals.  Fixes problems with Perl support.
5629           Affected files irssi/src/silc/core/client_ops.c, silc-channels.c.
5630
5631         * Send the auto-nicking NICK command in client library with
5632           little timeout after connecting.  The affected file is
5633           lib/silcclient/client.c.
5634
5635         * Added following new config file settings:
5636           channel_rekey_secs, key_exchange_rekey, key_exchange_pfs,
5637           key_exchange_timeout, conn_auth_timeout, connections_max,
5638           links_max.
5639
5640           Implemented all the new config settings handling in the server.
5641
5642           Optimized the use of SKE Mutual flag usage.  Use it only
5643           if connection authentication protocol is not based in public
5644           key authentication.
5645
5646           Renamed all SilcServerConfigSection* to SilcServerConfig*
5647           to have a bit shorter names.
5648
5649           Affected files silcd/serverconfig.[ch], server.[ch], and
5650           protocol.[ch].
5651
5652 Sat Feb 16 02:46:43 CET 2002  Johnny Mnemonic <johnny@themnemonic.org>
5653
5654         * Cleaned up the listening sockets code, preparing for the rehash
5655           support.  Affected file is silcd/server.c.
5656
5657         * Fixed some output messages.  Affected files are silcd/silcd.c,
5658           and silcd/server.c.
5659
5660 Fri Feb 15 19:10:20 EET 2002  Pekka Riikonen <priikone@silcnet.org>
5661
5662         * Create lib/doc/silcrng_intro.html document as introduction
5663           to SILC RNG.  ROBOdoc documented lib/silccrypt/silcrng.h.
5664
5665 Fri Feb 15 13:23:03 CET 2002  Johnny Mnemonic <johnny@themnemonic.org>
5666
5667         * Fixes to the silcd config template.  Affected file is
5668           doc/example_silcd.conf.in.
5669
5670         * Removed type casts from silc_calloc(), conforming to the
5671           CodingStyle.  Affected file is lib/silcutil/silcconfig.c.
5672
5673         * Removed param_name member from client, server, and router
5674           section structs, now identifying the param directly.
5675
5676           Added CONFIG_FREE_AUTH macro in config file parsing.
5677
5678           Affected files are silcd/serverconfig.[ch].
5679
5680 Fri Feb 15 12:24:08 EET 2002  Timo Sirainen <tss@iki.fi>
5681
5682         * Fixed command line parameter handling. All SILC initialization
5683           is now done in silc_core_init() which also fixes autoconnecting
5684           to servers.
5685
5686           Affected files irssi/src/silc/core/silc-core.c,
5687           irssi/src/fe-text/silc.c.
5688
5689 Thu Feb 14 22:03:58 EET 2002  Pekka Riikonen <priikone@silcnet.org>
5690
5691         * Added new configuration options and blocks:
5692           keepalive_secs, reconnect_count, reconnect_interval,
5693           reconnect_interval_max, reconnect_keep_trying and
5694           require_reverser_lookup.  Added ConnectionParam block, and
5695           implemented the connection parameters when connecting as
5696           initiator and when accepting connections as responder.
5697
5698           Added CONFIG_IS_DOUBLE macro in config file parsing, to check
5699           whether given configuration value has been given already.
5700
5701           Affected files silcd/serverconfig.[c], server.[c].
5702
5703         * Splitted the doc/example_silcd.conf.in.  Separated the crypto
5704           algorithm parts and created new file silcalgs.conf, that
5705           is now included from the example_silcd.conf.in.
5706
5707         * Optimized the silc_server_connect_to_router_second to take
5708           the connection configuration object from the SilcServerConnection
5709           object instead of finding it during the connecting phase.
5710           Added the configuration object to SilcServerConnection struct.
5711           Affected files silcd/server_internal.h, server.c.
5712
5713 Thu Feb 14 16:02:26 CET 2002  Pekka Riikonen <priikone@silcnet.org>
5714
5715         * Add the client on channel after it was resolved at the
5716           channel message receiving, and it was not already on the
5717           channel.  Affected file lib/silcclient/client_channel.c.
5718
5719 Wed Feb 13 23:16:41 EET 2002  Pekka Riikonen <priikone@silcnet.org>
5720
5721         * Fixed the public key authentication to allocate always the
5722           destination signature buffer instead of using static buffer.
5723           Affected file silcd/protocol.c.
5724
5725 Wed Feb 13 20:51:13 EET 2002  Pekka Riikonen <priikone@silcnet.org>
5726
5727         * Unified the serverconfig.[ch]'s helper function interface.
5728           Affected file silcd/serverconfig.[ch].
5729
5730         * Removed doc/example_silc.conf.in since it is redundant.
5731           The make install will now install irssi/silc.conf file.
5732
5733         * Added new Passphrase and Publickey authentication methods to
5734           config file, allowing both public key and passphrase based
5735           authentication to be set at the same time.
5736
5737           Added `prefer_passphrase_auth' setting in config file which
5738           can be used to set to prefer passwd auth if both passwd and
5739           public key is set.  If not set, public key is preferred.
5740           This has effect only when being initiator (responder will try
5741           both anyway).
5742
5743           Added support for authentication with passphrase and public key
5744           at the same time.  The passphrase is tried first always since
5745           it is faster to check.
5746
5747           Affected file silcd/serverconfig.[ch], server.c, protocol.[ch].
5748
5749 Wed Feb 13 12:46:25 CET 2002  Johnny Mnemonic <johnny@themnemonic.org>
5750
5751         * Merged the new SILC Config library, with the server parsing
5752           support.  Read the header file silcconfig.h or the toolkit
5753           documentation for the news.  Affected files are
5754           doc/example_silcd.conf.in lib/silcutil/silcconfig.[ch]
5755           silcd/command.c silcd/packet_receive.c silcd/packet_send.c
5756           silcd/protocol.c silcd/server.c silcd/server_backup.c
5757           silcd/serverconfig.[ch] silcd/silcd.c.
5758
5759         * Fixed some silclog documentation.  Affected file is
5760           lib/silcutil/silclog.h.
5761
5762 Sun Feb 10 18:11:30 EET 2002  Pekka Riikonen <priikone@silcnet.org>
5763
5764         * The silc_cipher_register, silc_hash_register and
5765           silc_hmac_register now checks if the object to be registered
5766           is registered already.  Affected files are
5767           lib/silccrypt/silccipher.c, silchash.c and silchmac.c.
5768
5769 Sun Feb 10 15:48:38 EET 2002  Pekka Riikonen <priikone@silcnet.org>
5770
5771         * Merged new irssi from irssi.org's CVS, the version 0.7.99.
5772
5773 Sat Feb  9 14:54:33 EET 2002  Pekka Riikonen <priikone@silcnet.org>
5774
5775         * Allow zero length channel messages inside the Channel Message
5776           Payload.  Affected file lib/silccore/silcchannel.c.
5777
5778         * Fixed scripts/silcdoc/silcdoc to support all kinds of filenames
5779           as header filenames.
5780
5781         * Removed lib/silcclient/README and created HTML file
5782           lib/silcclient/silcclient_using.html, which is now included
5783           as part of Toolkit documentation.
5784
5785 Thu Feb  7 10:12:25 CET 2002  Pekka Riikonen <priikone@silcnet.org>
5786
5787         * Fixed CUMODE_CHANGE notify handling to change the mode of
5788           correct client.  Affected file lib/silcclient/client_notify.c.
5789
5790         * Make silc_rng_alloc fail if it cannot allocate the sha1
5791           hash algorithm.  Affected file lib/silccrypt/silcrng.c.
5792
5793 Sun Feb  3 17:20:52 EET 2002  Pekka Riikonen <priikone@silcnet.org>
5794
5795         * Fixed the file transfer's key agreement payload to include
5796           zero port also if the hostname is NULL because it could not
5797           be bound.
5798
5799           Call file transfer monitor callback now also if error occurs
5800           during key agreement protocol.
5801
5802           Changed the silc_client_file_send interface to return the
5803           SilcClientFileError instead of session id.  The session ID
5804           is returned into pointer provided as argument.
5805
5806           Check that the file exists locally before sending the
5807           file transfer request at all.
5808
5809           Affected file lib/silcclient/client_ftp.c, silcapi.h.
5810
5811         * Added SILC_CLIENT_FILE_KEY_AGREEMENT_FAILED file transfer
5812           error than can occur while key agreement protocol.  Affected
5813           file lib/silcclient/silcapi.h.
5814
5815         * Fixed the event_mode CMODE handler to not crash when mode
5816           is changed and +k mode is set in the channel.  Affected file
5817           irssi/src/silc/core/silc-channels.c.
5818
5819         * Fixed SILC_LOG_ERROR to give out Error and not Warning, and
5820           SILC_LOG_WARNING to give out Warning and not Error.  Affected
5821           file lib/silcutil/silclog.c.
5822
5823         * Fixed the channel message payload decryption in the function
5824           silc_channel_message_payload_decrypt to not modify the original
5825           buffer before it is verified that the message decrypted
5826           correctly.  Otherwise, next time it is called with correct
5827           channel key it won't encrypt since the payload is corrupted.
5828           Affected file lib/silccore/silcchannel.c.
5829
5830 Sun Feb  3 11:46:12 EET 2002  Pekka Riikonen <priikone@silcnet.org>
5831
5832         * Do not constantly resize the window.  A fix patch by cras.
5833           Affected file irssi/src/fe-text/screen.c.
5834
5835 Sat Feb  2 16:54:18 EET 2002  Pekka Riikonen <priikone@silcnet.org>
5836
5837         * Applied IPv6 fix patch from Jun-ichiro itojun Hagino.
5838           Affected file lib/silcutil/silcnet.c.
5839
5840 Fri Feb  1 22:33:11 EET 2002  Pekka Riikonen <priikone@silcnet.org>
5841
5842         * Fixed a bug in hash table internal routine for traversing
5843           the table with foreach callback.  The current entry may
5844           become invalid in the callback but it was referenced after
5845           the callback returned.
5846
5847           Do not allow auto rehashing of hash table during the
5848           silc_hash_table_foreach operation, for same reasons as it is
5849           not allowed for SilcHashTableList.  Affected files are
5850           lib/silcutil/silchashtable.[ch].
5851
5852 Fri Feb  1 14:55:00 CET 2002  Pekka Riikonen <priikone@silcnet.org>
5853
5854         * Defined DLLAPI into silcincludes.h and silcwin32.h for
5855           Win32 DLL.  extern's in header files are now declared with
5856           DLLAPI.
5857
5858 Thu Jan 31 23:34:33 EET 2002  Pekka Riikonen <priikone@silcnet.org>
5859
5860         * Fixed private message handling.  It used some old code that
5861           caused the client to crash.  Affecte file is
5862           lib/silcclient/client_prvmsg.c.
5863
5864 Thu Jan 31 19:06:22 EET 2002  Pekka Riikonen <priikone@silcnet.org>
5865
5866         * Added function silc_client_add_channel,
5867           silc_client_replace_channel_id, and removed functions
5868           silc_client_new_channel_id and silc_idlist_get_channel_by_id
5869           from client library.
5870
5871         * Added cross reference of the joined channels to the
5872           SilcClientEntry, and changed the SilcChannelEntry's
5873           users list to SilcHashTable.  The affected files are
5874           lib/silcclient/idlist.[ch].
5875
5876         * Fixed a bug in hash table tarversing.  While the hash table
5877           is traversed with SilcHashTableList the table must not be
5878           rehashed.  It is now guaranteed that auto rehashable tables
5879           are not rehashed while tarversing the list.  Also defined that
5880           silc_hash_table_rehash must not be called while tarversing
5881           the table.  Added function silc_hash_table_list_reset that must
5882           be called after the tarversing is over.  The affected files are
5883           lib/silcutil/silchashtable.[ch].
5884
5885         * Changed all hash table traversing to call the new
5886           silc_hash_table_list_reset in server and in client library.
5887
5888         * Added function silc_client_on_channel to return the
5889           SilcChannelUser entry if the specified client entry is joined
5890           on the specified channel.  This is exported to application as
5891           well.  Affected files lib/silcclient/client_channel.c, silcapi.h.
5892
5893 Wed Jan 30 19:14:31 EET 2002  Pekka Riikonen <priikone@silcnet.org>
5894
5895         * Fixed founder regaining problem with JOIN command on normal
5896           server.  The notify for mode change must be sent always and
5897           not only if !cmd->pending.  Affected file silcd/command.c.
5898
5899         * Fixed the WHOWAS command's reply sending to support the
5900           lists correctly.  Affected file silcd/command.c.
5901
5902 Wed Jan 30 11:11:47 CET 2002  Pekka Riikonen <priikone@silcnet.org>
5903
5904         * When sending JOIN command to router for processing the
5905           sender's old command identifier was not saved back to the
5906           sender's command context, fixed now.  The affected file is
5907           silcd/command.c.
5908
5909         * Create the key in JOIN command of the router did not return
5910           the channel key, added check for this.  Affected file is
5911           silcd/command.c.
5912
5913         * Fixed a channel ID update bug in JOIN command reply.  Do
5914           not directly upgrade the ID but call the function
5915           silc_idlist_replace_channel_id if the ID was changed.
5916           Affected file silcd/command_reply.c.
5917
5918         * Fixed memory leaks from command calling if it would fail.
5919           Affected file silcd/command.c.
5920
5921 Tue Jan 29 19:49:31 EET 2002  Pekka Riikonen <priikone@silcnet.org>
5922
5923         * Applied patches from cras:
5924
5925           Memory leak fixes around libaries, irssi window resize fix,
5926           new silclist.h and silcdlist.h, all extern inline changed to
5927           static inline.
5928
5929         * Removed dotconf from lib/dotconf, not needed anymore.
5930
5931         * Removed TRQ from lib/trq, not needed anymore.
5932
5933         * Do more frequent heartbeats (5 minutes instead of 10 minutes)
5934           with server connections.  Later this will be configurable
5935           in config file after new config file is done.  Affected file
5936           silcd/server.c.
5937
5938 Tue Jan 29 10:35:03 CET 2002  Pekka Riikonen <priikone@silcnet.org>
5939
5940         * Fixed a crash in server related to channel announcements.
5941           Affected file silcd/server.c.
5942
5943 Mon Jan 28 17:49:42 EET 2002  Pekka Riikonen <priikone@silcnet.org>
5944
5945         * Fixed memory leaks in silc_server_create_new_channel*
5946           functions.  Affected file silcd/server.c.
5947
5948         * Fixed the CHANNEL_CHANGE notify to re-announce the channel
5949           which ID was changed.  This way the router will send the
5950           user list for the channel again, and server won't be in
5951           desync in some rare circumstances.  Affected file is
5952           silcd/packet_receive.c.
5953
5954 Sun Jan 27 21:04:19 EET 2002  Pekka Riikonen <priikone@silcnet.org>
5955
5956         * Check for NULL socket pointer in the function
5957           silc_server_packet_send_to_channel_real.  Affected file
5958           silcd/packet_send.c.
5959
5960         * Fixed the BAN notify handling to correctly remove ban
5961           list.  Affected file silcd/packet_receive.c.
5962
5963 Sat Jan 26 23:01:03 EET 2002  Pekka Riikonen <priikone@silcnet.org>
5964
5965         * Fixed some header addition to Toolkit distribution in
5966           lib/silcutil/Makefile.am and lib/trq/Makefile.am.
5967
5968         * Added lib/silcclient/client_ops_example.h as an template
5969           file for application programmers to quickly start using
5970           the SilcClientOperation functions in their application.
5971           Updated the lib/silcclient/README as well to tell about this
5972           nice file made available.
5973
5974 Sat Jan 26 10:45:41 EET 2002  Pekka Riikonen <priikone@silcnet.org>
5975
5976         * Call silc_server_remove_from_channels when removing client
5977           entry when NO_SUCH_CLIENT_ID was received.  Affected file
5978           is silcd/command_reply.c.
5979
5980 Fri Jan 25 19:12:36 EET 2002  Pekka Riikonen <priikone@silcnet.org>
5981
5982         * Added server & router operator statistics updating.  Affected
5983           file silcd/packet_receive.c and silcd/command.c.
5984
5985         * Fixed the SERVER_SIGNOFF notify handling on normal server
5986           not to save the history information for clients.  Same was
5987           fixed earlier in remove_clients_by_server function, but not
5988           here.  Affected file silcd/packet_receive.c.
5989
5990         * Raised the default connection-retry count from 4 to 7 in
5991           server.  Affected file silcd/server.h.
5992
5993         * Cancel any possible reconnect timeouts when we start the
5994           key exchange.  Affected file silcd/server.c.
5995
5996         * Do not reconnect on connection failure when SCONNECT was
5997           given.  Affected files silcd/server.[ch].
5998
5999 Tue Jan 22 18:19:36 EET 2002  Pekka Riikonen <priikone@silcnet.org>
6000
6001         * Removed assert()'s from the lib/silcclient/client_keyagr.c.
6002
6003         * Fixed the NICK command to always give the unformatted
6004           nickname to the one giving the NICK command.  If unformatted
6005           nickname is cached already it will be formatted and the
6006           local entry will always get the unformatted nickname.
6007           Affected file lib/silcclient/idlist.c.
6008
6009         * Fixed some double frees from client library commands.
6010           Affected file is lib/silcclient/command.c.
6011
6012         * Fixed CUMODE command in server to assure that no one can
6013           change founder's mode than the founder itself, there was a
6014           little bug.  Affected file silcd/command.c.
6015
6016 Mon Jan 21 19:07:53 EET 2002  Pekka Riikonen <priikone@silcnet.org>
6017
6018         * Removed the SilcClientCommandDestructor from the client
6019           libary, it is not needed anymore.  Affected files are
6020           lib/silcclient/silcapi.h, command[_reply].[ch],
6021           client_notify, idlist.c.
6022
6023         * Fixed GETKEY command to first resolve client, and then
6024           resolve the server only if the client was not found, instead
6025           of resolving both at the same time.  Affected file is
6026           lib/silcclient/command.c.
6027
6028         * Added silc_client_start_key_exchange_cb and lookup the
6029           remote hostname and IP address before starting the key
6030           exchange with server.  The affected file is
6031           lib/silcclient/client.c.
6032
6033         * The server's public key is now saved using the IP address
6034           of the server and not the servername for the filename.
6035           The hostname public key filename is checked as an fall back
6036           method if the IP address based filename is not found.
6037
6038           Fixed the GETKEY command to save the fetched server key
6039           in correct filename.
6040
6041           Print the remote server's hostname now when new key is
6042           received during connection process.  Affected file is
6043           irssi/src/silc/core/client_ops.c.
6044
6045         * Return always our own public key to the client if it asks
6046           for it with GETKEY command.  Affected file silcd/command.c.
6047
6048         * Removed the use_auto_addr variable from default config
6049           file since it was in wrong section.  Affected file is
6050           irssi/src/config.
6051
6052         * Fixed TOPIC_CHANGE notification to not route it when it
6053           was sent using silc_server_send_notify_to_channel function.
6054           Affected file silcd/command.c.
6055
6056         * Fixed silc_server_send_notify_kicked to send the kicker's
6057           Client ID also, it was missing.  Affected files are
6058           silcd/command.c, silcd/packet_send.[ch].
6059
6060 Thu Jan 17 18:59:11 EET 2002  Pekka Riikonen <priikone@silcnet.org>
6061
6062         * Do not save client history information in SERVER_SIGNOFF.
6063           Fixes the bug in normal server that it does not detect
6064           the client becoming valid after the server becomes back
6065           online.  Affected file silcd/server_util.c.
6066
6067         * Added `sock_error' field  into the SilcSocketConnection
6068           context.  When error occurs during socket operation (read
6069           or write) the error is saved.  Added also new function
6070           silc_socket_get_error to return human readable socket error
6071           message.  Affected files are lib/silcutil/silcsockconn.[ch],
6072           lib/silcutil/unix/silcunixsockconn.c, and
6073           lib/silcutil/win32/silcwin32sockconn.c.
6074
6075         * The server now prints the socket error message in the
6076           signoff for client.  Affected file silcd/server.c.
6077
6078         * Fixed the `created' channel information sending from router
6079           to server in JOIN command.  Checks now whether the channel
6080           really was created or not and set it according that.
6081
6082           Fixed the JOIN command to use the client entry's current
6083           ID during the joining procedure instead of the one it sent
6084           in the command (it is checked though), since it can change
6085           between the packet processing and command processing, and
6086           would just case unnecessary pain in the client end.  Affected
6087           file silcd/command.c.
6088
6089         * Fixed a channel key payload sending to use correct channel
6090           ID when the server was forced to change the channel's ID by
6091           router.  Router sent the key payload with the old Channel ID.
6092           Affected file silcd/packet_receive.c.
6093
6094 Wed Jan 16 22:26:30 EET 2002  Pekka Riikonen <priikone@silcnet.org>
6095
6096         * Call silc_server_save_channel_key only if the key payload
6097           was provided in the JOIN command's command reply.  Affected
6098           file silcd/command_reply.c.
6099
6100 Tue Jan 15 18:49:41 EET 2002  Pekka Riikonen <priikone@silcnet.org>
6101
6102         * Fixed silc_mp_sizeinbase to return the value correctly with
6103           MPI.  Affected file lib/silcmath/mp_mpi.c.
6104
6105         * Fixed the stop_server signal to correctly stop the scheduler
6106           and gracefully stop the server when SIGTERM or SIGINT signals
6107           are received.  Affected file silcd/silcd.c.
6108
6109 Mon Jan  7 23:38:19 CET 2002  Johnny Mnemonic <johnny@themnemonic.org>
6110
6111         * Simple handling of TERM and HUP signals. Also added some log
6112           flushing call around.  Affected file is
6113           silcd/silcd.c.
6114
6115         * Fixed small bugs in silclog.c. Now buffering output will take
6116           effect after 10 seconds since startup: This will ensure that
6117           no important startup messages are lost. Also output redirection
6118           will preserve original format ([Date] [Type] message).
6119           Affected file is lib/silcutil/silclog.c.
6120
6121         * Added two options to the config file, in the logging section:
6122           quicklogs:<yes/no>: and flushdelay:<seconds>:.  Affected files
6123           lib/silcutil/silclog.[ch], silcd/serverconfig.[ch].
6124
6125 Sun Jan  6 12:49:40 EET 2002  Pekka Riikonen <priikone@silcnet.org>
6126
6127         * Do not print the warning about log files not being initialized
6128           more than once to avoid excess logging.  Affected file is
6129           lib/silcutil/silclog.c.
6130
6131         * Fixed the SIM compilation in lib/silcsim/Makefile.am.  Fixed
6132           the SIM copying in make install in Makefile.am.pre.
6133
6134 Sun Jan  6 01:10:21 CET 2001  Johnny Mnemonic <johnny@themnemonic.org>
6135
6136         * Rewritten silclog APIs. Globally interesting changes follows:
6137           silc_log_set_files() changed to silc_log_set_file().
6138           silc_log_set_callbacks() changed to silc_log_set_callback().
6139           ROBOdoc documented silclog header file.
6140           SilcLogCb now returns bool to wether inihibit the default
6141           handler or not (to keep the old behaviour return always TRUE).
6142           The new APIs should also fix the problem of the
6143           silcd_error.log file that was written in the current directory.
6144
6145           New features:
6146           Log files streams will remain opened after silc_log_set_file()
6147           call, means less CPU usage notably on high traffic servers.
6148           File streams are now full buffered, and flushed to the disk
6149           every 5 minutes, lesses HD activity and CPU usage.
6150           Messages can be redirected, allowing admins to configure
6151           one single logfile for all server messages.
6152           the silc_log_quick global variable to activate fast-logging.
6153           Affected files lib/silcutil/silclog.[ch]
6154
6155         * Changed some code to conform new silclog APIs. Affected
6156           files are doc/example_silcd.conf.in, silcd/server.c
6157           irssi/src/silc/core/silc-core.c, silcd/serverconfig.[ch],
6158           silcd/silcd.c.
6159
6160         * Fixed a memory leak that could occur in some situations.
6161           Affected file silcd/serverconfig.c.
6162
6163 Sat Jan  5 13:37:29 EET 2002  Pekka Riikonen <priikone@silcnet.org>
6164
6165         * Added the silc_client_del_client to remove the client from
6166           all channels as well.  Affected file lib/silcclient/idlist.c.
6167
6168         * Fixed the client library to correctly remove the client
6169           from all channels when the client entry is being destroyed.
6170           Affected file lib/silcclient/client_notify.c, command.c.
6171
6172         * Added auto-nicking support to the client library.  If the
6173           applicatio now sets client->nickname it will be sent to the
6174           server after connecting by the library.  This way for example
6175           SILCNICK (or IRCNICK) environment variables will have effect
6176           and always change the nickname automatically to whatever
6177           it is wanted.  Affected file lib/silcclient/client.[ch].
6178
6179         * Renamed silc_server_command_bad_chars to the
6180           silc_server_name_bad_chars and moved it to the
6181           silcd/server_util.[ch].  Added also new function
6182           silc_server_name_modify_bad to return nickname that
6183           includes bad characters as new nickname without those
6184           bad characters.  This check and modify is now used in
6185           silc_server_new_client when the username is initially set
6186           as nickname, so it must be checked to be valid nickname.
6187           Affected file silcd/packet_receive.c.
6188
6189         * The nickname length is now taken from the packet for real
6190           and not trusted to strlen() since it clearly can return
6191           wrong length for nickname including bad characters.  This
6192           also applies to channel names.  Affected file silcd/command.c.
6193
6194         * Removed the lib/silcsilm/modules directory.  Modules are now
6195           compiled into the lib/silcsim.  Fixed the copying of the
6196           modules to follow symbolic links in Makefile.am.pre.
6197
6198 Wed Jan  2 18:56:21 EET 2002  Pekka Riikonen <priikone@silcnet.org>
6199
6200         * Fixed silc_string_regexify list creation.  Fixes bugs with
6201           BAN and INVITE commands in server.  The affected file is
6202           lib/silcutil/unix/silcunixutil.c.
6203
6204 Sun Dec 30 13:41:34 EET 2001  Pekka Riikonen <priikone@silcnet.org>
6205
6206         * Removed the command destructor entirely from the server's
6207           command and command reply routines.  It is not needed, and
6208           its usage was buggy and caused crashes.  Affected files are
6209           silcd/command[_reply].[ch].
6210
6211 Fri Dec 28 12:43:22 EET 2001  Pekka Riikonen <priikone@silcnet.org>
6212
6213         * Cancel protocol and NULL sock->protocol if timeout
6214           occurred during protocol.  Affected file silcd/server.c.
6215
6216         * Cancel protocol timeouts always before calling the final
6217           callback, to assure that after final callback is called
6218           no other state will be called for the protocol anymore.
6219           Affected file silcd/protocol.c.
6220
6221         * Print error log if incoming connection configuration could
6222           not be found.  Affected file silcd/server.c.
6223
6224         * Fixed JOIN command to correctly save the founder mode
6225           to the client on normal SILC server, when the channel
6226           was created by the router.  Affected file silcd/command.c.
6227
6228         * Fixed LIST command (hopefully) to send correct reply
6229           packets.  Affected file silcd/command.c.
6230
6231 Thu Dec 20 16:14:52 CET 2001  Pekka Riikonen <priikone@silcnet.org>
6232
6233         * The silc_packet_receive_process now returns FALSE if the
6234           read data was invalid packet, and TRUE if it was ok.
6235
6236           The server now checks that if unauthenticated connection
6237           sends data and its processing fails the server will close
6238           the connection since it could be a malicious flooder.
6239
6240           Affected files lib/silccore/silcpacket.[ch], silcd/server.c.
6241
6242 Wed Dec 19 21:31:25 EET 2001  Pekka Riikonen <priikone@silcnet.org>
6243
6244         * Make sure the warning about error opening a log file is
6245           printed only once and not everytime it fails (produces
6246           too much useless log).  Affected file lib/silcutil/silclog.c.
6247
6248 Wed Dec 19 18:21:51 CET 2001  Johnny Mnemonic <johnny@themnemonic.org>
6249
6250         * Made the silc_server_daemonise() function more readable.
6251           Affected file silcd/server.c.
6252
6253         * Pid file is now optional, the user may comment it out from
6254           the config file. Removed define SILC_SERVER_PID_FILE, we
6255           don't need a default any longer.  Affected file
6256           configure.in.pre, lib/Makefile.am.pre.
6257
6258         * Make some use of the pid file. The server now dies at startup
6259           if it detects a valid pid file on his path. The server would
6260           die anyway in this circumstance, because of the bind() failure.
6261           Affected file silcd/silcd.c.
6262
6263         * No longer compiling lib/dotconf.
6264
6265 Mon Dec 17 18:24:27 EET 2001  Pekka Riikonen <priikone@silcnet.org>
6266
6267         * Fixed JOIN command parsing not to crash.  Affected file
6268           lib/silcclient/command.c.
6269
6270         * Fied the NICK_CHANGE notify to add the new client entry
6271           even it is resolved.  This removes an <[unknown]> nick
6272           thingy bug in the client.  Affected file is
6273           lib/silcclient/client_notify.c.
6274
6275         * Do not try to allocate 0 bytes (efence does not like it)
6276           in lib/silccore/silccomand.c when encoding payload.
6277
6278         * Do not take IRCNICK as nickname in Irssi SILC client since
6279           it is not possible to set nickname before hand connecting
6280           the server (TODO has an entry about adding auto-nicking
6281           support).
6282
6283         * Changed the silc_server_command_pending to check whether
6284           there already exists an pending entry with the specified
6285           command, command identifier and pending callback.  This is
6286           to fix IDENTIFY and WHOIS related crashes that may register
6287           multiple pending commands with same identifier.  Affected
6288           file silcd/command.c.
6289
6290         * Fixed the server to reconnect to the router even if it
6291           was already reconnecting and EOF was received.  This to
6292           fix a possibility that the server wouldn't ever try to
6293           auto-reconnect to the router.  Affected file silcd/server.c.
6294
6295 Sat Dec 15 20:31:50 EET 2001  Pekka Riikonen <priikone@silcnet.org>
6296
6297         * Fixed the server's password authentication to use the
6298           length of the locally saved password, and not the one
6299           sent in the packet.  Affected file silcd/protocol.c.
6300
6301         * Fixed same password authentication problem in the
6302           Authentication Payload handling routines in
6303           lib/silccore/silcauth.c.
6304
6305         * Yet another password authentication problem fixed with
6306           channel password handling in silcd/command.c.
6307
6308 Mon Dec 10 19:57:40 EET 2001  Pekka Riikonen <priikone@silcnet.org>
6309
6310         * If first character of string in silc_parse_userfqdn is '@'
6311           then do not parse it.  Affected file is
6312           lib/silcutil/silcutil.c.
6313
6314 Sun Dec  9 22:18:50 EET 2001  Pekka Riikonen <priikone@silcnet.org>
6315
6316         * Fixed minor bug in IDENTIFY command reply sending, which
6317           caused various weird problems during JOIN when it was
6318           resolving names for users.  Affected file silcd/command.c.
6319
6320 Sun Dec  9 19:18:41 EET 2001  Pekka Riikonen <priikone@silcnet.org>
6321
6322         * Fixed the IDENTIFY command reply sending to chech better valid
6323           clients.  It was possible to send incomplete list of replies.
6324           Affected file silcd/command.c.
6325
6326 Sat Dec  8 15:58:31 EET 2001  Pekka Riikonen <priikone@silcnet.org>
6327
6328         * Added silc_client_command[s]_[un]register functions now to
6329           dynamically register the commands in client library.  Removed
6330           the static table of commands.  This allows the client library
6331           to call commands without causing the application to know about
6332           what commands library has called.
6333
6334           Removed the INFO command reply kludge to detect when the command
6335           was called by library.  Now library use its own command reply
6336           function for INFO command.
6337
6338           Added function silc_client_command_call to call a command.
6339           Application can use it to call command, not access the structure
6340           directly.
6341
6342           Now all commands that are sent by the client library (not
6343           explicitly sent by application) use own command reply functions.
6344
6345           Affected files around lib/silcclient/ and in
6346           irssi/src/silc/core/.
6347
6348         * Fixed the WHOIS command reply sending to chech better valid
6349           clients.  It was possible to send incomplete list of replies.
6350
6351           Fixed the WHOIS and IDENTIFY to send the request to router
6352           if normal server did not do it and did not find any results.
6353
6354           Affected file silcd/command.c.
6355
6356 Thu Dec  6 17:21:06 EET 2001  Pekka Riikonen <priikone@silcnet.org>
6357
6358         * Moved the internal data from SilcClient context into its
6359           own file, not accesible to application.  Affected files
6360           lib/silcclient/client.h and lib/silcclient/client_internal.h,
6361           and other files in client library.
6362
6363 Thu Dec  6 10:37:55 EET 2001  Pekka Riikonen <priikone@silcnet.org>
6364
6365         * Added doc/examples installation target in Makefile.am.pre.
6366           A patch by salo.
6367
6368 Tue Dec  4 17:43:19 EET 2001  Pekka Riikonen <priikone@silcnet.org>
6369
6370         * If NO_SUCH_CLIENT_ID notify is received for WHOIS or IDENTIFY
6371           commands the found client entry will be removed from the
6372           cache, after notifying application about the error.  Affected
6373           file lib/silcclient/command_reply.c.
6374
6375         * Changed the /MSG to check for exact nickname user gave, and
6376           not let `nick' match `nick@host' if it is only one found.  Now,
6377           user must type the exact nickname (like nick@host2) even if
6378           there are no more than one same nicks found.  This is to avoid
6379           a possibility of sending nickname to wrong nickname since
6380           `nick' could match `nick@host'.  Affected file is
6381           irssi/src/core/silc-servers.c.
6382
6383 Mon Dec  3 18:49:45 EET 2001  Pekka Riikonen <priikone@silcnet.org>
6384
6385         * Do not print "you are now server operator" or similar when
6386           giving /away command.  Affected files are
6387           irssi/src/silc/core/client_ops.c, silc-servers.h.
6388
6389         * Made the silc_server_command_pending_error_check to send
6390           the same command reply payload it received back to the
6391           original sender of the command.  This way all arguments
6392           that was received by the server will be received by the
6393           client too.  Affected file silcd/command.c.
6394
6395         * Added the silc_idcache_add to return the created cache entry
6396           to a pointer.  Affected file lib/silccore/silcidcache.[ch].
6397
6398         * Add global clients to expire if they are not on any channel.
6399           This is because normal server will never know if they signoff
6400           if they are not on any channel.  The cache expiry will take
6401           case of these entries.  This is done by normal servers only.
6402           The affected files are silcd/command_reply.c,
6403           silcd/idlist.[ch], silcd/server and silcd/packet_receive.c.
6404
6405         * If server receives invalid ID notification for WHOIS or
6406           IDENTIFY and the ID exists in the lists, it is removed.
6407           Affected file silcd/command_reply.c.
6408
6409         * If NO_SUCH_CLIENT_ID is received for WHOIS or IDENTIFY command
6410           in client then client entry that it matches is searched and
6411           the nickname is printed on the screen for user.  Affected
6412           file irssi/src/silc/core/client_ops.c.
6413
6414 Mon Dec  3 11:56:59 EET 2001  Pekka Riikonen <priikone@silcnet.org>
6415
6416         * Use cache entry expire time in the LIST command reply to
6417           purge old entries from the cache after the LIST command
6418           reply has been received.  This way we don't have non-existent
6419           entries in the cache for too long.  Affected file is
6420           silcd/command_reply.c.
6421
6422 Sun Dec  2 23:29:07 EET 2001  Pekka Riikonen <priikone@silcnet.org>
6423
6424         * If we are normal server, and we've not resolved client info
6425           in WHOIS or IDENTIFY from router, and it is global client,
6426           we'll check whether it is on some channel.  If it is not
6427           then we cannot be sure about its validity and will resolve it
6428           from router.  Fixes a bug in WHOIS and IDENTIFY.  Affected
6429           file silcd/command.c.
6430
6431         * Search channel by name (if possible) rather than by ID
6432           in IDENTIFY command's command reply.  Affected file is
6433           silcd/command_reply.c.
6434
6435 Sun Dec  2 13:48:46 EET 2001  Pekka Riikonen <priikone@silcnet.org>
6436
6437         * Distribute to the channel passphrase in CMODE_CHANGE notify.
6438           Updated specs and implemented it.  Affected file silcd/command.c,
6439           silcd/packet_send.c and silcd/packet_receive.c.
6440
6441         * Implemented the <founder auth> payload handling in the JOIN
6442           command.  If provided all conditions for channel joining
6443           except requirement to provide correct passphrase can be
6444           overrided by the channel founder.  Updated the protocol specs.
6445           Affected file silcd/command.c.
6446
6447           Added support for founder auth in JOIN command in client
6448           library.  Fixed the parsing of the JOIN command now to support
6449           all options as they should be.  The affected file is
6450           lib/silcclient/command.c.
6451
6452         * Optimized the WHOIS and IDENTIFY commands to send the request
6453           to router only if it includes nicknames or other names.  If
6454           they include only IDs then check the local cache first before
6455           routing.  Affected file is silcd/command.c.
6456
6457         * Added channels topic announcements.  Affected file is
6458           silcd/packet_receive.c and silcd/server.c.
6459
6460         * Fixed the silc_server_send_notify_topic_set to really destine
6461           the packet to channel.  Affected file silcd/packet_send.c.
6462
6463         * Fixed a crash in CHANNEL_CHANGE notify handling in the client
6464           library.  Affected file lib/silcclient/client_notify.c.
6465
6466         * Added UMODE announcements.  Affected file silcd/server.c.
6467
6468 Sat Dec  1 12:52:39 EET 2001  Pekka Riikonen <priikone@silcnet.org>
6469
6470         * Memory leak fixes in:
6471
6472           lib/silcutil/silcsockconn.c
6473           lib/silcske/silcske.c
6474           lib/silcske/groups.c
6475           lib/silccrypt/rsa.c
6476           lib/silccrypt/silcpkcs.c
6477           lib/silccore/silccommand.c
6478           lib/silccore/silcidcache.c
6479           silcd/idlist.c
6480           silcd/packet_send.c
6481           silcd/command.c
6482
6483         * ROBOdoc documented the lib/silcske/groups.h file and a
6484           bit changed the interface for better.
6485
6486 Thu Nov 29 22:12:50 EET 2001  Pekka Riikonen <priikone@silcnet.org>'
6487
6488         * Update the client entry context in the ID cache after
6489           nick change.  Affected file lib/silcclient/command.c.
6490           Fixes the CUMODE command when regaining founder privileges,
6491           and a little WHOIS problem.
6492
6493         * Fixed silc_net_gethostbyname to correctly call the
6494           inet_ntop.  Affected file lib/silcutil/silcnet.c.
6495
6496 Thu Nov 29 19:31:23 EET 2001  Pekka Riikonen <priikone@silcnet.org>'
6497
6498         * Added IPv6 support checking to the configure.in.pre, added
6499           also --enable-ipv6 option to override the check.  Affected
6500           file configure.in.pre.
6501
6502         * The silc_thread_create now calls the start function
6503           directly if threads support is not compiled in.  Removes
6504           ugly #ifdef's from generic code.  Affected files are
6505           lib/silcutil/unix/silcunixthread, win32/silcwin32thread.c.
6506
6507         * Added silc_net_gethostby[name/addr]_async to asynchronously
6508           resolve.  Affected files are lib/silcutil/silcnet.[ch].
6509
6510         * Added support for rendering IPv6 based server, client and
6511           channel IDs.  Affected file lib/silcutil/silcutil.c.
6512
6513         * Added support for creating IPv6 based server IDs.  Affected
6514           file is silcd/serverid.c.
6515
6516 Wed Nov 28 23:46:09 EET 2001  Pekka Riikonen <priikone@silcnet.org>'
6517
6518         * Added silc_net_gethostby[addr/name] into the
6519           lib/silcutil/silcnet.[ch].  Added IPv6 support to Unix network
6520           routines.  Added silc_net_is_ip[4/6].  Affected file is
6521           lib/silcutil/unix/silcunixnet.c.  All routines that take
6522           address as argument now supports both IPv4 and IPv6 addresses.
6523
6524 Mon Nov 26 18:09:48 EET 2001  Pekka Riikonen <priikone@silcnet.org>'
6525
6526         * Fixed LIST command reply sending in server.  Affected file
6527           silcd/command.c.
6528
6529         * Server now sends the kicker's client ID in the KICK notify
6530           to the kicked client.  Affected file silcd/command.c.
6531
6532         * The client library now parses the kickers client ID and
6533           UI displays it.  Affected files lib/silcclient/client_notify.c
6534           and irssi/src/silc/core/silc-channels.c, module-formats.c.
6535
6536         * Made all payload parsing function prototypes consistent.
6537           They all take now const unsigned char * and uint32 pair as
6538           the payload data instead of SilcBuffer.  Changes all around
6539           the source tree.  Other unsigned char* -> const unsigned char*
6540           changes around the tree as well.
6541
6542         * Optimized SFTP client and server packet sending not to
6543           allocate new buffer for each packet but to recycle the
6544           first allocated buffer.  Affected files are
6545           lib/silcsftp/sftp_client.c, sftp_server.c, sftp_util.[ch].
6546
6547         * Optimized the SFTP client to use SilcList instead of
6548           SilcDList for requests, because it is faster.  Affected file
6549           is lib/silcsftp/sftp_client.c.
6550
6551         * Moved the ID Payload routines from lib/silccore/silcpayload.[ch]
6552           into lib/silccore/silcid.[ch].
6553
6554           Renamed silcpayload.[ch] into silcargument.[ch].
6555
6556 Mon Nov 26 15:01:53 CET 2001  Pekka Riikonen <priikone@silcnet.org>
6557
6558         * If client entry is deleted with active key agreement
6559           session, abort the session.
6560
6561           The silc_client_abort_key_agreement now calls the completion
6562           callback with new SILC_KEY_AGREEMENT_ABORTED status.
6563
6564           Affected file lib/silcclient/silcapi.h, client_keyagr.c and
6565           idlist.c.
6566
6567 Sun Nov 25 18:01:45 EET 2001  Pekka Riikonen <priikone@silcnet.org>
6568
6569         * Don't use __restrict in older GCC's.  Affected file is
6570           lib/silcmath/mpi/mpi-priv.h.  A patch by salo.
6571
6572         * silc_net_localhost now attempts to reverse lookup the
6573           IP/hostname.  Affected file lib/silcutil/silcnet.c.
6574
6575         * Defined <founder auth> argument to the SILC_COMMAND_JOIN
6576           command.  It can be used to gain founder privileges at
6577           the same time when joining the channel.
6578
6579           Defined that the SILC_NOTIFY_TYPE_KICKED send the
6580           kicker's client ID as well.  Updated protocol specs.
6581
6582           Defined that the server must send SILC_COMMAND_IDENTIFY
6583           command reply with error status to client who sent
6584           private message with invalid client ID.
6585
6586           Updated the protocol specification.
6587
6588         * Added silc_server_send_command_reply to send any
6589           command reply.  Affected file silcd/packet_send.[ch].
6590
6591         * Added silc_id_payload_encode_data to encode ID payload
6592           from raw ID data.  Affected file lib/silccore/silcpayload.[ch].
6593
6594         * The server now send IDENTIFY command reply with error
6595           status if client ID in private message is invalid.  Affected
6596           file silcd/packet_receive.c.
6597
6598         * Save the server key file with server's IP address in
6599           the filename instead of hostname.  The affected file is
6600           irssi/src/silc/core/client_ops.c.
6601
6602 Sat Nov 24 20:08:22 EET 2001  Pekka Riikonen <priikone@silcnet.org>
6603
6604         * Typo fixes in irssi/src/fe-common/silc/module-formats.c.
6605           A patch by Sunfall.
6606
6607         * Added libtool support for compiling shared objects in
6608           lib/silcsim.  Affected file configure.in.pre and
6609           lib/silcsim/Makefile.am.  Original patch by cras.
6610
6611 Fri Nov 23 23:30:59 EET 2001  Pekka Riikonen <priikone@silcnet.org>
6612
6613         * Pid file configuration, and server's config file fixes
6614           patch by toma.  Updated CREDITS file.
6615
6616 Sun Nov 18 01:34:41 EET 2001  Pekka Riikonen <priikone@silcnet.org>
6617
6618         * Fixed silc_client_channel_message to not try to decrypt
6619           the message twice if it resolved the destination client
6620           information.  This could cause of dropping one channel
6621           message.  Affected file lib/silcclient/client_channel.c.
6622
6623 Wed Nov 14 23:44:56 EET 2001  Pekka Riikonen <priikone@silcnet.org>
6624
6625         * Added silc_client_run_one into lib/silcclient/silcapi.h and
6626           lib/silcclient/client.c. This function is used when the SILC
6627           Client is run under some other scheduler, or event loop or
6628           main loop.  On GUI applications, for example this may be
6629           desired to used to run the client under the GUI application's
6630           main loop.  Typically the GUI application would register an
6631           idle task that calls this function multiple times in a second
6632           to quickly process the SILC specific data.
6633
6634 Wed Nov 14 19:16:52 CET 2001  Johnny Mnemonic <johnny@themnemonic.org>
6635
6636         * Fixed silc_server_drop() for dropping the supplementary
6637           groups as well, this could cause a security hole on some
6638           systems.
6639
6640 Wed Nov 14 16:22:25 EET 2001  Pekka Riikonen <priikone@silcnet.org>
6641
6642         * __pid_t -> pid_t in lib/silccrypt/silcrng.c.  A patch by
6643           johnny.
6644
6645         * Write PID file after dropping privileges.  Added -F option
6646           to run server on foreground.  A patch by debolaz.
6647           Affected files silcd/server.c, silcd/silcd.c.
6648
6649         * Fixed MOTD to return the MOTD file server name.  Affected
6650           file silcd/command.c.
6651
6652         * Added INFO command reply handling to the Irssi SILC Client.
6653           Affected file irssi/src/silc/core/client_ops.c.
6654
6655 Wed Nov 14 00:18:08 EET 2001  Pekka Riikonen <priikone@silcnet.org>
6656
6657         * Fixed the silc_idcache_list_* routines to really support
6658           the dynamic list.  Fixes a crash.  Affected file is
6659           lib/silccore/silcidcache.c.
6660
6661         * Fixed the LIST command reply to really call LIST command's
6662           pending callbacks.  Affected file silcd/command_reply.c.
6663
6664 Tue Nov 13 00:49:17 EET 2001  Pekka Riikonen <priikone@silcnet.org>
6665
6666         * Update conn->local_entry->nickname after giving NICK
6667           command.  Affected file lib/silcclient/command.c.
6668
6669 Sun Nov 11 23:43:02 PST 2001  Brian Costello <bc@wpfr.org>
6670
6671         * Added the [pid] option to the silcd configuration file
6672
6673           Affected files: serverconfig.[ch] and silcd.c
6674
6675 Sun Nov 11 23:56:39 EET 2001  Pekka Riikonen <priikone@silcnet.org>
6676
6677         * Save fingerprint in WHOIS command reply in server.
6678           Affected file silcd/command_reply.c.
6679
6680         * Fixed NICK commands pending callback registration.
6681           Affected file lib/silcclient/command.c.
6682
6683 Sun Nov 11 10:49:10 EET 2001  Pekka Riikonen <priikone@silcnet.org>
6684
6685         * Use ++server->cmd_ident when sending commands in server,
6686           instead of random number.  Affected file silcd/command.c.
6687
6688         * Fixed GETKEY command reply to call actually GETKEY pending
6689           command callbacks.  Affected file silcd/command_reply.c.
6690
6691         * A bit stricter check for nicknames.  Check for same nickname
6692           in NICK command also.  Affected file silcd/command.c.
6693
6694         * Do not call INFO command everytime client ID changes, only
6695           during first connecting.  Affected file lib/silcclient/client.c.
6696
6697         * Set the new nickname only after successful command reply for
6698           NICK command is returned by server.  Affected file
6699           lib/silcclient/command.c.
6700
6701         * Remove nicknames from nicklist during server_signoff notify.
6702           Should fix /NAMES bit more.  The affected file is
6703           irssi/src/silc/core/silc-channels.c.
6704
6705         * Added `fingerprint' field to the SilcIDListData in the
6706           silcd/idlist.h to hold the fingerprint of the client's
6707           public key.
6708
6709           Send the fingerprint of the client's public key in WHOIS
6710           command reply.
6711
6712           Affected files silcd/command.c, and silcd/idlist.[ch].
6713
6714         * Added silc_fingerprint into lib/silcutil/silcutil.[ch] to
6715           create fingerprint from given data.
6716
6717         * Show the fingerprint of the client's public key in WHOIS.
6718           Affected files irssi/src/module-formats.[ch] and
6719           irssi/src/silc/core/client_ops.c.
6720
6721         * Format the multiple same nicknames also during JOIN and
6722           NICK_CHANGE notifys.  Affected file is
6723           lib/silcclient/client_notify.c.
6724
6725         * Do not print error on screen for invalid private message
6726           payload since it can come if someone is sending private
6727           messages with wrong key.  Affected file
6728           lib/silccore/silcprivate.c.
6729
6730         * Fixed multiple concurrent /PING crash.  Affected file
6731           lib/silcclient/command.c.
6732
6733         * Changed the wrong ID encoding.  All IP addresses must be
6734           in MSB first order in encoded format.  They were encoded
6735           wrong and was in LSB format.  Affected files are
6736           silcd/serverid.c, lib/silcutil/silcutil.c.
6737
6738         * Remove silc_net_addr2bin_ne from lib/silcutil/silcnet.[ch].
6739
6740         * Call the `connect' client operation through the scheduler
6741           in case of error.  Affected file lib/silcclient/client.c.
6742
6743         * Call the `failure' client operation even if the error
6744           occurred locally during a protocol.  Affected file is
6745           lib/silcclient/protocol.c.
6746
6747         * Added support of sending LIST command to router from normal
6748           server.  This way normal server can get list of all channels
6749           in the network too.  Fixed the channel list sending in the
6750           server too.  Affected files are silcd/command.c, and
6751           silcd/command_reply.[ch].
6752
6753         * Added silc_server_update_channels_by_server and
6754           silc_server_remove_channels_by_server.  They are used during
6755           disconnection of primary router and in backup router protocol.
6756           Affected file silcd/server_util.[ch], silcd/server.c and
6757           silcd/server_backup.c.
6758
6759         * Fixed channel adding to global list in IDENTIFY command
6760           reply in server.  Affected file silcd/command_reply.c.
6761
6762 Sat Nov 10 21:39:22 EET 2001  Pekka Riikonen <priikone@silcnet.org>
6763
6764         * If the incoming packet type is REKEY or REKEY_DONE process
6765           that packet always synchronously.  Fixes yet another MAC
6766           failed error on slow (dialup) connections.  Affected file
6767           lib/silcclient/client.c and silcd/server.c.
6768
6769 Thu Nov  8 22:21:09 EET 2001  Pekka Riikonen <priikone@silcnet.org>
6770
6771         * Call check_version SKE callback for initiator too.  Affected
6772           file lib/silcske/silcske.c.
6773
6774         * Implemented fix for security hole found in the SKE that was
6775           fixed in the specification few days back; the initiator's
6776           public key is now added to the HASH value computation.
6777           Added backwards support for the old way of doing it too, for
6778           old clients and old servers.  Affected file is
6779           lib/silcske/silcske.c.
6780
6781         * Enabled mutual authentication by default in SKE.  If initiator
6782           is not providing mutual authentication the responder will
6783           force it.  This will provide the proof of posession of the
6784           private key for responder.  The affected files are
6785           lib/silcclient/protocol.c and silcd/protocol.c.
6786
6787         * Do not cache anymore the server's public key during SKE.
6788           We do mutual authentication so the proof of posession of
6789           private key is done, and if the server is authenticated in
6790           conn auth protocol with public key we must have the public
6791           key already.  Affected file silcd/protocol.c.
6792
6793         * Added new global debug variable: silc_debug_hexdump.  If
6794           it is set to TRUE SILC_LOG_HEXDUMP will be printed.  Affected
6795           file lib/silcutil/silclog.[ch].
6796
6797         * Fixed compilation warning due to char * -> const char *.
6798           Affected files lib/silcutil/silcnet.h, and
6799           lib/silccore/silcauth.[ch].
6800
6801 Wed Nov  7 20:43:03 EET 2001  Pekka Riikonen <priikone@silcnet.org>
6802
6803         * Fixed CMODE command when new channel key was created.  If
6804           the creation failed the old key was removed.  Next time giving
6805           same command would crash the server since the old key was
6806           freed already.  Affected file silcd/command.c.
6807
6808         * Fixed the silc_server_announce_get_channels to not crash
6809           on reconnect.  Affected file silcd/server.c.
6810
6811 Wed Nov  7 17:15:07 EET 2001  Pekka Riikonen <priikone@silcnet.org>
6812
6813         * Added silc_log_set_debug_string function to set a regex
6814           string to match for debug output.  Only the function names,
6815           or filenames matching the given debug string is actually
6816           printed.  This way it is possible to filter out those debug
6817           strings that user is not interested in.
6818
6819           Fixed a bug in silc_string_regexify.
6820
6821           Affected files lib/silcutil/silclog.[ch], and
6822           lib/silcutil/unix/silcunixutil.c.
6823
6824         * Changed the -d options in both server and Irssi SILC client
6825           to take the debug string as argument.  Affected files
6826           silcd/silcd.c and irssi/src/silc/core/silc-core.c.
6827
6828 Tue Nov  6 21:31:54 EET 2001  Pekka Riikonen <priikone@silcnet.org>
6829
6830         * Added silc_hash_babbleprint to create a Bubble Babble
6831           Encoded fingerprint.  The encoding is developed by Antti
6832           Huima (draft-huima-babble-01.txt), and it creates human
6833           readable strings out of binary data.  Affected file
6834           lib/silccrypt/silchash.[ch].
6835
6836         * Print the babble print now in addition of fingerprint as well
6837           in Irssi SILC client.  Affected files are
6838           irssi/src/fe-common/silc/module-formats.[ch],
6839           irssi/src/fe-common/silc/core/client_ops.c.
6840
6841 Sun Nov  4 23:37:28 EET 2001  Pekka Riikonen <priikone@silcnet.org>
6842
6843         * Fixed a security problem found in SKE.  The initiator's
6844           public key too is now added to the HASH hash value creation
6845           which is signed by the responder to create the SIGN value.
6846           This will prevent anyone in the middle to lie to the responder
6847           about the initiator's public key.  If this is done now, the
6848           man in the middle will get caught.  Updated the protocol
6849           specification.
6850
6851 Sun Nov  4 11:43:53 EET 2001  Pekka Riikonen <priikone@silcnet.org>
6852
6853         * Better installation directory handling.  Configure module
6854           paths and other paths automatically to example_silc* files
6855           in doc/.  A patch by toma.
6856
6857         * Fixed compiler warning from MPI library, and from SILC RNG.
6858           A patch by johnny.
6859
6860         * Added SILC_SERVER_PID_FILE to define the pid file for server.
6861           It can be configured with ./configure.  A patch by toma.
6862
6863 Sat Nov  3 23:48:23 EET 2001  Pekka Riikonen <priikone@silcnet.org>
6864
6865         * Find correct make to use in prepare-clean.  A patch by
6866           toma.  Affected file prepare-clean.
6867
6868 Sat Nov  3 22:04:00 PST 2001  Brian Costello <bc@mksecure.com>
6869
6870         * Added irssi variables use_auto_addr, auto_bind_ip,
6871           auto_bind_port and auto_public_ip.
6872
6873         * Changed the interface for silc_client_send_key_agreement
6874           in lib/silcclient/silcapi.h
6875
6876         Affected files:
6877
6878          irssi/src/silc/core/silc-core.c
6879          irssi/config
6880          lib/silcclient/silcapi.h
6881          irssi/src/silc/core/silc-channels.c
6882          lib/silcclient/client_keyagr.c
6883          irssi/docs/help/key
6884
6885 Sat Nov  3 17:48:55 EET 2001  Pekka Riikonen <priikone@silcnet.org>
6886
6887         * Added silc_pkcs_public_key_compare to compare two
6888           public keys.  Affected file lib/silccrypt/silcpkcs.[ch].
6889
6890         * Check that the client who set the founder mode on the
6891           channel is the same client that is giving the founder
6892           mode to itself.  It is done by comparing the saved public
6893           key (it is saved even in the authentication is passphrase).
6894           Affected file silcd/command.c.
6895
6896 Fri Nov  2 18:52:08 EST 2001  Pekka Riikonen <priikone@silcnet.org>
6897
6898         * Do not process packet for disconnected socket connection.
6899           Affected file lib/silccore/silcpacket.c.
6900
6901         * Process the DISCONNECT packet through scheduler in the
6902           client library.  Affected file lib/silcclient/client.c.
6903
6904         * Fixed the silc_client_packet_parse to not to increase
6905           the packet sequence number if the conn->sock and the
6906           current socket connection is not same.  This can happen
6907           for example during key agreement when the conn includes
6908           multiple socket connections (listeners).  Affected file
6909           lib/silcclient/client.c.
6910
6911         * The sender of the file transfer request now provides also
6912           the pointer (listener) for the key exchange protocol.  If
6913           the listener cannot be created then it sends empty key
6914           agreement and lets the receiver provide the listener.
6915
6916           Added `local_ip' and `local_port' arguments to the
6917           silc_client_file_send.  If they are provided they are used,
6918           if not then it will attempt to find local IP address, if
6919           not found or bind fails then the remote client will provide
6920           the listener.
6921
6922           Affected files are lib/silcclient/client_ftp.c and
6923           lib/silcclient/silcapi.h.
6924
6925         * Extended the FILE SEND command to support defining the
6926           local IP and port for key exchange listener.  They are
6927           optional.  Affected file irssi/src/silc/core/silc-servers.c.
6928
6929 Thu Nov  1 22:10:07 EST 2001  Pekka Riikonen <priikone@silcnet.org>
6930
6931         * Defined to WHOIS command reply the sending of fingerprint
6932           of the client's public key (if the proof of posession of the
6933           corresponding private key is verified by the server).
6934           Updated to the protocol specification.
6935
6936         * Added support of receiving the client's public key's
6937           fingerprint in command reply in client library.  Affected
6938           file is lib/silcclient/command_reply.c, and
6939           lib/silcclient/idlist.[ch].
6940
6941 Thu Nov  1 18:06:12 EST 2001  Pekka Riikonen <priikone@silcnet.org>
6942
6943         * Do not send over 128 chars long nickname to the server
6944           in NICK command.  Affected file lib/silcclient/command.c.
6945
6946         * Do not send over 256 chars long channel names to the server
6947           in JOIN command.  Affected file lib/silcclient/command.c.
6948
6949 Tue Oct 30 22:48:59 EST 2001  Pekka Riikonen <priikone@silcnet.org>
6950
6951         * Assure that silc_server_close_connection cannot be called
6952           twice for same socket context.  Affected file is
6953           silcd/server.c.
6954
6955 Tue Oct 30 16:58:14 EST 2001  Pekka Riikonen <priikone@silcnet.org>
6956
6957         * Send error message to application if opening file for
6958           writing during file transfer fails.  Affected file is
6959           lib/silcclient/client_ftp.c.
6960
6961           Remove all file transfer sessions for a client that we're
6962           removing from ID cache.
6963
6964           Affected file is lib/silcclient/client_ftp.c.
6965
6966         * Fixed silc_net_addr2bin to return correct address.  Affected
6967           file lib/silcutil/[unix/win32]/silc[unix/win32]net.c.
6968
6969         * Fixed file transfer session removing on signoff notify.
6970           Affected file irssi/src/silc/core/silc-servers.c.
6971
6972         * Added the SilcClientFileError to be returned in the monitor
6973           callback.  Added NO_SUCH_FILE and PERMISSION_DENIED errors.
6974           Affected file lib/silcclient/silcapi.h.
6975
6976 Mon Oct 29 17:43:04 EST 2001  Pekka Riikonen <priikone@silcnet.org>
6977
6978         * Fixed a crash in silc_client_ftp_free_sessions and
6979           silc_client_ftp_session_free_client.  Affected file
6980           lib/silcclient/client_ftp.c.
6981
6982         * Added `disabled' field in the SilcChannelEntry in the server
6983           to indicate if the server entry is disabled.  Affected file
6984           silcd/idlist.h, silcd/command[_reply].c.
6985
6986         * SILC server adds now /var/run/silcd.pid everytime it is
6987           started.  Affected file silcd/silcd.c.
6988
6989         * Added silc_server_packet_send_clients to send a packet to
6990           the provided table of client entries.  Affected file
6991           silcd/packet_send.[ch].
6992
6993         * Fixed a crash in client resolving in client_prvmsg.c in
6994           client library.  Affected file lib/silcclient/client_prvmsg.c.
6995
6996         * Do not actually remove the client directly from ID cache
6997           during SERVER_SIGNOFF, but invalidate it.  This way we
6998           preserve the WHOWAS info for the client.  Affected file
6999           silcd/server_util.c.
7000
7001         * Fixed SERVER_SIGNOFF notify handling in the server.  The
7002           server is now able to process incoming SERVER_SIGNOFF notify
7003           for a server that it doesn't even know about.  It will remove
7004           the clients provided in the notify.  Affected file
7005           silcd/packet_receive.c.
7006
7007         * Check for partial packet in data queue after every packet that
7008           was found from the queue.  Return and wait for more data if
7009           there is partial data in queue.  Affected file is
7010           lib/silccore/silcpacket.c.
7011
7012 Sun Oct 28 18:46:27 EST 2001  Pekka Riikonen <priikone@silcnet.org>
7013
7014         * Added SilcClietFileError enum to indicate error in
7015           file transfer.  Added SILC_CLIENT_FILE_MONITOR_KEY_AGREEMENT
7016           and SILC_CLIENT_FILE_MONITOR_ERROR new monitor statuses.
7017           Affected files lib/silcclient/silcapi.h and
7018           lib/silcclient/client_ftp.c.
7019
7020         * Check that newsize in silc_buffer_realloc is larger than
7021           the old buffer's size.  Affected file lib/silcutil/silcbufutil.h.
7022
7023         * Added better monitor of file transfers.  It now monitors
7024           key agreement protocol during the file transfer too.  Added
7025           error reporting too.  Affected files
7026           irssi/src/silc/core/silc-servers.c,
7027           irssi/src/fe-common/silc/module-formats.[ch].
7028
7029         * Wrote a help file for FILE command.
7030
7031         * Added silc_rng_global_get_byte_fast to get not-so-secure
7032           random data as fast as possible.  Random data is read from
7033           /dev/urandom if available and from the SILC RNG if not
7034           available.  It is used in padding generation.  Affected file
7035           lib/silccrypt/silcrng.[ch].
7036
7037         * All packets in client library are now processed synchronously.
7038           Optimized packet processing a lot.  Affected file
7039           lib/silcclient/client.c.
7040
7041         * All server connection packets are processing synchronously
7042           now in server, to optimize packet processing.  Affected file
7043           silcd/server.c.
7044
7045         * Include files are installed now only in Toolkit distribution
7046           if make install is given.  Affected files: all Makefile.am's.
7047
7048 Thu Oct 25 22:44:06 EDT 2001  Pekka Riikonen <priikone@silcnet.org>
7049
7050         * Assure that silc_client_notify_by_server_resolve does not
7051           resolve the client information multiple times.  If it cannot
7052           be found by the first it cannot be found at all.  Affected
7053           file lib/silcclient/client_notify.c.
7054
7055         * Fixed WHOWAS command reply calling.  Affected file
7056           lib/silcclient/command_reply.c.
7057
7058         * Removed all references to silc_idlist_get_client from the
7059           Irssi SILC client since that call is internal call used by
7060           the library.  The Irssi SILC client will use now client
7061           retrieval functions found in silcapi.h.
7062
7063         * Fixed a bug in resolving nickname info before sending
7064           private message.  It used freed memory.  Affected file
7065           irssi/src/silc/core/silc-servers.c.
7066
7067 Thu Oct 25 19:04:49 EDT 2001  Pekka Riikonen <priikone@silcnet.org>
7068
7069         * Assure my_channels statistics cannot go negative in server.
7070           Affected files silcd/server.c, silcd/server_util.c.
7071
7072 Wed Oct 24 19:53:05 EDT 2001  Pekka Riikonen <priikone@silcnet.org>
7073
7074         * Upgraded dotconf 1.0.2 to 1.0.6 in lib/dotconf.
7075
7076 Tue Oct 23 13:51:19 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
7077
7078         * Win32 Toolkit changes.  Affected files
7079           win32/silc.dsw, win32/libsilc/libsilc.def,
7080           win32/libsilcclient/libsilc.def,
7081           lib/silcutil/silcutil.c, and
7082           lib/sftp/sftp_fs_memory.c.
7083
7084 Mon Oct 22 16:35:05 EDT 2001  Pekka Riikonen <priikone@silcnet.org>
7085
7086         * Added silc_net_localip to return local host's IP address.
7087           Affected file lib/silcutil/silcnet.[ch].
7088
7089         * If key exchange or rekey protocol is active for a connection
7090           parse all packets syncronously since there might be packets
7091           in packet queue that we are not able to process without first
7092           processing packets before them.  Affected file silcd/server,
7093           lib/silcclient/client.c.
7094
7095         * SilcPacketParserCallback now returns TRUE or FALSE to indicate
7096           whether library should continue processing the packet.
7097           Affected file lib/silccore/silcpacket.h.
7098
7099         * Added SilcSFTPMonitor callback, SilcSFTPMonitors and
7100           SilcSFTPMonitorData to SFTP server to monitor various
7101           SFTP client requests.  Affected file lib/silcsftp/silcsftp.h,
7102           lib/silcsftp/sftp_server.c.
7103
7104         * Added silc_file_size to return file size.  Affected file
7105           lib/silcutil/silcutil.[ch].
7106
7107         * Implemented the file transfer support for the client library.
7108           Added preliminary support for simple client to client one-file
7109           transmission.  Affected file lib/silcclient/client_ftp.c,
7110           lib/silccilent/client.[ch].
7111
7112         * Added new local command FILE to the Irssi SILC Client.
7113           It is used to perform the file transfer.  It has subcommands
7114           SEND, RECEIVE, SHOW and CLOSE.  Affected files
7115           irssi/src/silc/core/client_ops.c,
7116           irssi/src/silc/core/silc-server.[ch].
7117
7118 Mon Oct 22 12:50:08 EDT 2001  Pekka Riikonen <priikone@silcnet.org>
7119
7120         * Relay the SILC_PACKET_FTP in the server.  Affected files
7121           silcd/server.c and silcd/packet_receive.c.
7122
7123 Sun Oct 21 20:21:02 EDT 2001  Pekka Riikonen <priikone@silcnet.org>
7124
7125         * Renamed silc_file_read and silc_file_write to functions
7126           silc_file_readfile and silc_file_writefile.  Added function
7127           silc_file_open and silc_file_close.  Affected files
7128           lib/silcutil/silcutil.[ch].
7129
7130 Thu Oct 18 20:58:13 EDT 2001  Pekka Riikonen <priikone@silcnet.org>
7131
7132         * Resolve the client info when received private message or
7133           channel message for a client which nickname we don't know.
7134           Affected files lib/silcclient/client_prvmsg.c and
7135           lib/silcclient/client_channel.c.
7136
7137         * Do not crash in /KEY if client is not connected.  Affected
7138           file irssi/src/silc/core/silc-channels.c.
7139
7140         * Added SilcClientStatus field to the SilcClientEntry in the
7141           lib/silcclient/idlist.h.
7142
7143           Added SILC_CLIENT_STATUS_RESOLVING to mark that the entry
7144           is incomplete and is being resolved, it won't be resolved
7145           twice.
7146
7147           Make sure also that USERS command reply does not resolve
7148           twice information.  Affected file is
7149           lib/silcclient/command_reply.c.
7150
7151           Make sure that silc_client_get_clients_by_list does not
7152           resolve twice same information.
7153
7154         * Check for valid client->id in the silc_server_free_client_data.
7155           Affected file silcd/server.c.
7156
7157         * Fixed /GETKEY nick@server not to crash if the server entry
7158           is not found.  Affected file lib/silcclient/command.c.
7159
7160         * Fixed the silc_server_check_cmode_rights to check the
7161           requested modes correctly.  Affected file silcd/command.c.
7162
7163 Thu Oct 18 12:10:22 CEST 2001  Pekka Riikonen <priikone@silcnet.org>
7164
7165         * Better checks for non-printable chars in nick added.
7166           Affected file silcd/command.c.
7167
7168 Thu Oct 18 09:18:58 EDT 2001  Pekka Riikonen <priikone@silcnet.org>
7169
7170         * Call the silc_server_udpate_servers_by_server in the
7171           primary router that comes back online in the backup resuming
7172           protocol.  Otherwise it routes packets wrong.  Affected file
7173           silcd/server_util.[ch], silcd/server_backup.c.
7174
7175 Wed Oct 17 16:51:18 EDT 2001  Pekka Riikonen <priikone@silcnet.org>
7176
7177         * Added SILC_STR_UI8_[N]STRING[_ALLOC] formats to the
7178           lib/silcutil/silcbuffmt.[ch].
7179
7180         * Redefined the SILC packet header to include the padding
7181           length.  Affected file lib/silccore/silcpacket.[ch].
7182
7183         * Added SILC_PACKET_PADLEN_MAX macro to return the padding
7184           length for maximum padding up to 128 bytes).  Affected
7185           file lib/silccore/silcpacket.h.
7186
7187         * Removed all backwards support for old 0.5.x MAC thingies.
7188           The SILC packet header change makes it impossible to be
7189           backwards compatible.
7190
7191         * Send the ENDING packet with timeout in the backup resuming
7192           protocol.  This is to assure that all routers has connected
7193           to the primary router.  Affected file silcd/server_backup.c.
7194
7195         * Changed the RNG to take the first IV from random data.  It
7196           used to take it from zero actually.  Changed the RNG also
7197           to use /dev/urandom during session.  /dev/random is used
7198           in initialization.  Affected file lib/silccrypt/silcrng.[ch].
7199
7200 Tue Oct 16 20:45:49 EDT 2001  Pekka Riikonen <priikone@silcnet.org>
7201
7202         * Changed the SILC packet header to have the first two bytes
7203           (the packet length) encrypted.  Affected files aroung the
7204           code tree, lib/silccore/silcpacket.[ch].  Removed the
7205           SilcPacketCheckDecrypt callback.  It is not needed anymore
7206           since the silc_packet_receive_process will determine now
7207           whether the packet is normal or special.
7208
7209         * Implemented the unidirectional MAC keys.  Affected files
7210           lib/silcske/silcske.c, silcd/protocol.c and
7211           lib/silcclient/protocol.c.
7212
7213         * Implemented the packet sequence number to the MAC computation.
7214           Affected files lib/silccore/silcpacket.c, silcd/protocol.c,
7215           silcd/packet_send.c, silcd/server.c, lib/silcclient/client.c,
7216           lib/silcclient/protocol.c.
7217
7218 Mon Oct 15 17:42:55 EDT 2001  Pekka Riikonen <priikone@silcnet.org>
7219
7220         * Allow backup router to announce servers.  All servers
7221           announced by backup router are added to the global list
7222           automatically.  Update hte server's socket to our primary
7223           router also when backup router announces a server.
7224           Affected file silcd/packet_receive.c.
7225
7226         * Do not update the client->router in the function
7227           silc_server_udpate_clients_by_server if the client is on
7228           global list.  We might fail to find any specific server
7229           for locally connected clients and local cell clients.  They
7230           should still use the `from' and not `to' as client->router.
7231           This fixes backup router resuming protocol.  Affected file
7232           silcd/server_util.c.
7233
7234         * Decrease channel statistics count only if the channel
7235           deletion worked.  Affected files are silcd/server.c and
7236           silcd/server_util.c.
7237
7238         * Added silc_server_update_servers_by_server to update origin
7239           of all server entries.  Used during backup router protocol.
7240           Affected files silcd/server_util.[ch], silcd/server.c. and
7241           silcd/backup_router.c.
7242
7243         * ROBODoc documented the lib/silccrypt/silchmac.h.  Added new
7244           function silc_hmac_init, silc_hmac_update, silc_hmac_final,
7245           silc_hmac_get_hash and silc_hmac_get_name.  Affected file
7246           lib/silccrypt/silchmac.c.
7247
7248 Sun Oct 14 18:28:22 EDT 2001  Pekka Riikonen <priikone@silcnet.org>
7249
7250         * Assure that router cannot reroute the same channel message
7251           to the sender.  Affected file silcd/packet_receive.c.
7252
7253 Sat Oct 13 12:46:18 EDT 2001  Pekka Riikonen <priikone@silcnet.org>
7254
7255         * Made better checks that the channel message is not sent
7256           to the router it came from.  Affected file is
7257           silcd/packet_send.c.  Fixed memory leak too.
7258
7259         * Announce informations for incoming router connection, but
7260           only after checking if it is replaced by backup router.
7261           Affected file silcd/packet_receive.c.
7262
7263 Fri Oct 12 18:37:24 EDT 2001  Pekka Riikonen <priikone@silcnet.org>
7264
7265         * Fixed the backup resuming protocol to work in multiple
7266           router environment.  Affected file silcd/server_backup.c.
7267
7268         * Route packet only to one router in the function
7269           silc_server_packet_send_to_channel.  Affected file is
7270           silcd/packet_send.c.
7271
7272         * Fixed silc_server_send_notify_dest to set the broadcast
7273           flag.  Fixed the silc_server_send_notify_topic to actually
7274           send the TOPIC_CHANGE notify and not SERVER_SIGNOFF notify.
7275           Affected file silcd/packet_send.c.
7276
7277         * Changed the SFTP Filesystem interface.  Changed the
7278           SilcSFTPFilesystemStruct to SilcSFTPFilesystemOps to include
7279           the filesystem operation function.  The SilcSFTPFilesystem
7280           is now a context that is allocated by all filesystem allocation
7281           functions and it already includes the operations structure
7282           and filesystem specific context.  It is given as argument
7283           now to the silc_sftp_server_start.  This made the interface
7284           a bit cleaner.  Affected file lib/silcsftp/silcsftp[_fs].h,
7285           lib/silcsftp/sftp_fs_memory.c and sftp_server.c.
7286
7287 Thu Oct 11 22:19:26 EDT 2001  Pekka Riikonen <priikone@silcnet.org>
7288
7289         * Changed the backup router adding and getting interfaces
7290           in the server.  The router that will be replaced by the
7291           specified backup router is now sent as argument.  Affected
7292           files silcd/serverconfig.[ch], silcd/backup_router.[ch], and
7293           silcd/server.c.
7294
7295         * Added silc_net_addr2bin_ne to return the binary form of
7296           the IP address in network byte order.  Affected files
7297           lib/silcutil/[unix/win32].silc[unix/win32]net.[ch].
7298
7299 Thu Oct 11 12:14:19 EDT 2001  Pekka Riikonen <priikone@silcnet.org>
7300
7301         * Check for existing server ID in silc_server_new_server
7302           and in silc_server_connect_to_router_final and remove the
7303           old entry if it exists.  Affected file silcd/packet_receive.c,
7304           silcd/server.c.
7305
7306         * Send the channel message always to only one router, either
7307           in upstream or downstream.  Affected file is
7308           silcd/packet_send.c.
7309
7310 Tue Oct  9 17:45:43 EDT 2001  Pekka Riikonen <priikone@silcnet.org>
7311
7312         * Wrote the definition of the backup resuming protocol to the
7313           protocol specification.
7314
7315         * Removed one redundant channel key generation from normal
7316           server during joining procedure.  Removed one redundant
7317           channel key sending from server to router during joining
7318           procedure.  Affected file silcd/command.c.
7319
7320         * Made minor bugfixes to the backup router resuming protocol.
7321           Affected file silcd/server_backup.c, server.c.
7322
7323 Mon Oct  8 16:47:42 EDT 2001  Pekka Riikonen <priikone@silcnet.org>
7324
7325         * Added --disable-asm configuration option.  Affected files
7326           configure.in.pre, lib/silcmath/mpi/configure.in.  A patch
7327           by salo.
7328
7329         * Implemented the backup resuming protocol that is used to
7330           resume the primary router position in the cell after the
7331           primary router comes back online.  Affected files
7332           silcd/server_backup.[ch], silcd/server, silcd/packet_receive.c,
7333           and silcd/server_util.[ch].
7334
7335 Sun Oct  7 12:29:25 EDT 2001  Pekka Riikonen <priikone@silcnet.org>
7336
7337         * Sleep two (2) seconds after sending QUIT command to server.
7338           Affected file lib/silcclient/command.c.
7339
7340         * Assure that if outgoing data buffer is pending do not force
7341           send any data.  Affected file silcd/packet_send.c.
7342
7343         * Assure that if outgoing data buffer is pending do not force
7344           send any data.  Affected file lib/silcclient/client.c.
7345
7346         * Implemented the backup router support when the primary router
7347           goes down.  The servers and routers can now use the backup
7348           router as new primary router without loosing connectivity.
7349
7350 Sat Oct  6 21:18:54 EDT 2001  Pekka Riikonen <priikone@silcnet.org>
7351
7352         * Added new SILC_IDLIST_STATUS_DISABLED flag for entries
7353           in the server to indicate disabled entry.  All data read
7354           from the connection will be ignored and no data is sent
7355           for entry that is disabled.  Affected files are
7356           silcd/idlist.h, silcd/server.c.
7357
7358 Fri Oct  5 00:03:29 EDT 2001  Pekka Riikonen <priikone@silcnet.org>
7359
7360         * Created SFTP client and server test programs in the
7361           lib/silcsftp/tests directory.
7362
7363 Wed Oct  3 23:31:42 EDT 2001  Pekka Riikonen <priikone@silcnet.org>
7364
7365         * Implemented memory filesystem (virtual filesystem) for
7366           SFTP server.  Affected file lib/silcsftp/silcsftp_fs.h,
7367           sftp_fs_memory.c.
7368
7369 Sun Sep 30 22:10:57 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
7370
7371         * Implemented the SFTP (SSH File Transfer Protocol) to the
7372           lib/silcsftp.  It includes SFTP client and SFTP server
7373           implementations.
7374
7375 Sun Sep 30 10:35:44 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
7376
7377         * Moved lib/silccore/silcprotocol.[ch] to the
7378           lib/silcutil library.
7379
7380         * Added silc_buffer_format_vp and silc_buffer_unformat_vp to
7381           take variable argument list pointer as argument.  Affected
7382           file lib/silcutil/silcbuffmt.[ch].
7383
7384         * Added silc_buffer_set function that is used to set data
7385           to a SilcBuffer that is not allocated at all (SilcBufferStruct).
7386           Affected file lib/silcutil/silcbuffer.h.
7387
7388         * Changed various routines in the core library to use the new
7389           silc_buffer_set instead of allocating new buffer only for
7390           temporary purposes.
7391
7392         * Added 64-bit value formatting and unformatting support to the
7393           silc_buffer_[un]format routines.  Affected file is
7394           lib/silcutil/silcbuffmt.[ch].
7395
7396           Added also 64-bit macros: SILC_GET64_MSB and SILC_PUT64_MSB,
7397           to includes/bitmove.h.
7398
7399 Fri Sep 28 21:30:10 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
7400
7401         * Fixed channel user mode saving in client library.  Affected
7402           file lib/silcclient/command[_reply].c.
7403
7404 Thu Sep 27 22:52:30 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
7405
7406         * Defined the file transfer to the SILC Protocol.  Added
7407           new packet type SILC_PACKET_FTP and defined File Transfer
7408           Payload.  The mandatory file transfer protocol is SFTP
7409           (SSH File Transfer Protocol).  Affected file in addition
7410           of the internet draft is lib/silccore/silcpacket.h.
7411
7412         * Deprecated the SILC_PACKET_CELL_ROUTERS and defined new
7413           packet SILC_PACKET_RESUME_ROUTER instead.  The new packet
7414           is used as part of backup router protocol when the primary
7415           router of the cell is back online and wishes to resume
7416           the position as primary router.
7417
7418         * Redefined the MAC generation keys in the protocol.  The
7419           same key is not used anymore in both direction.  Both
7420           direction will now use different keys for sending and
7421           receiving.  This fixes a potential security flaw.  This
7422           change causes incompatibilities in the protocol.
7423
7424         * Redefined also the MAC computation from the packet.
7425           An packet sequence number is now added to the MAC
7426           computation.  This prevents possible replay attacks against
7427           the protocol.  This change too causes incompatibilities
7428           in the protocol.
7429
7430           Added `sequence' field to the SilcPacketContext to hold
7431           the current sequence number for the packet.
7432
7433 Wed Sep 26 20:15:22 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
7434
7435         * Added `created' field to the SilcIDListData in the file
7436           silcd/idlist.h to indicate the time when the entry was
7437           created.
7438
7439         * Added `created' field to the SilcChannelEntry too.  Affected
7440           file silcd/idlist.h.
7441
7442         * Added `creation_time' aguments to all the announcement functions
7443           in the server.  If it is provided then only the entries that
7444           was created after the provided time frame are actually
7445           announced.  Affected file silcd/server.[ch].
7446
7447         * The protocol says that the Channel ID's IP address must be
7448           based on the router's IP address.  Added check for this in
7449           the silc_server_new_channel when processing incoming New Channel
7450           Payload.  Affected file silcd/packet_receive.c.
7451
7452         * Print out the correct version with --version in SILC client.
7453           Affected file irssi/src/silc/core/silc-core.c.
7454
7455 Mon Sep 24 17:19:00 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
7456
7457         * Fixed WHOWAS command to check for completnes of the client
7458           entry always, not just when the command is coming from client.
7459           Affected file silcd/command.c.
7460
7461         * Added new function silc_server_packet_queue_purge to purge the
7462           outgoing data queue to the network.  After the function returns
7463           it is guaranteed that the outgoing packet queue is empty.
7464           Affected file silcd/packet_send.[ch].
7465
7466         * Purge the outgoing packet queue in the rekey protocol's final
7467           callback to assure that all rekey packets go to the network
7468           before quitting the protocol.  Affected file silcd/server.c.
7469
7470         * Added silc_client_packet_queue_parse as similar function as
7471           in server to the client library.  The affected file is
7472           lib/silcclient/client.c.
7473
7474 Sun Sep 23 15:15:53 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
7475
7476         * Splitted silcd/server.c and created silcd/server_util.[ch]
7477           for utility functions.
7478
7479         * Added new socket flag SILC_SF_DISABLED to indicate that the
7480           connection is open but nothing can be sent to or received from
7481           the connection.  Affected file lib/silcutil/silsockconn.[ch].
7482           The checking for disabled socket is checked in the low level
7483           silc_socket_write and silc_socket_read functions.
7484
7485 Thu Sep 20 23:11:28 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
7486
7487         * Allow only nicknames and channel names that fits into the
7488           7-bit unsigned char ASCII set.  Affected file silcd/command.c.
7489
7490 Thu Sep 20 18:04:12 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
7491
7492         * When processing JOIN command reply in server check that if
7493           the channel exists in our global list we'll move it the local
7494           list.  Affected file silcd/command_reply.c.
7495
7496         * Fixed the check whether client is joined on the channel already
7497           in JOIN command.  Affected file lib/silcclient/command.c.
7498
7499         * Fixed the JOIN command reply to check whether the channel
7500           already exists.  Affected file lib/silcclient/command_reply.c.
7501
7502 Wed Sep 19 22:58:32 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
7503
7504         * Added silc_ske_status_string to map the SKE error numbers
7505           to readable strings.  The affected files are
7506           lib/silcske/silcske[_status].[ch].
7507
7508 Tue Sep 18 22:50:41 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
7509
7510         * Do not show the private channels on the WHOIS channel list
7511           as it is not allowed by the protocol.  The affected file is
7512           silcd/server.c.
7513
7514 Sun Sep 16 12:32:58 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
7515
7516         * Assure that the packet length digged from the actual packet
7517           is something sensible in the silc_packet_decrypt_rest_special
7518           in lib/silccrypt/silcpacket.c.
7519
7520         * Free and NULL the allocated pointer in silc_hmac_alloc if
7521           the HMAC allocation fails.  The affected file is
7522           lib/silccrypt/silchmac.c.
7523
7524         * Print the selected security properties to the log files in
7525           the server.  Affected file silcd/protocol.c.
7526
7527         * Add SKE's reference counter even if calling the completion
7528           callback manually.  Otherwise it goes negative, although it
7529           does not cause any problems.  The affected file is
7530           lib/silcske/silcske.c.
7531
7532         * Remove the client entry with short timeout after giving the
7533           KILL command.  Affected file lib/silcclient/command.c.
7534
7535         * Fixed to send error reply in WHOIS and IDENTIFY commands in
7536           case all found clients are already disconnected (WHOWAS would
7537           found them) in the server.  Affected file silcd/command.c.
7538
7539         * Update the last_receive (time of last data received) to be
7540           updated only when received private or channel message so that
7541           the idle time showed in WHOIS makes more sense.
7542
7543         * Added boolean field `valid' in to the SilcClientEntry in the
7544           client library to indicate whether the entry is valid or not.
7545           This fixes the nickname change bug on channel when changing
7546           the nickname to be same than the old (like nick to Nick) the
7547           nickname formatter doesn't set the new nick anymore to Nick@host.
7548           Affected file lib/silcclient/idlist.[ch].
7549
7550         * Now actually fixed the nickname changing on disconnection.
7551           Added new function silc_change_nick to the Irssi SILC Client.
7552           Affected file irssi/src/silc/core/client_ops.c,
7553           irssi/src/silc/core/silc-nicklist.[ch].
7554
7555 Sat Sep 15 13:29:17 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
7556
7557         * Check that the public key exists in the GETKEY command before
7558           trying to encode it.  Affected file silcd/command.c.
7559
7560         * Print some notifications on received public keys with GETKEY
7561           command in the Irssi SILC Client.  Affected files are
7562           irssi/src/fe-common/silc/module-formats.[ch],
7563           irssi/src/silc/core/client_ops.c.
7564
7565         * Use IDENTIFY command to resolve the server information in the
7566           GETKEY command instead of INFO command.  Affected file
7567           lib/silcclient/command.c.
7568
7569         * All command reply functions in the client library now calls
7570           the pending command reply callbacks even if an error has
7571           occurred.  The server has done this a long time and now it was
7572           time to move the client library to this as well.  Now all
7573           errors can be delivered back to the pending command reply
7574           callbacks if necessary.  Affected files are
7575           lib/silcclient/command[_reply].[ch].
7576
7577         * Change the nickname on disconnection back to the username
7578           because in reconnect the server will enforce it to it anyway.
7579           Affected file irssi/src/silc/core/silc-servers.c.
7580
7581         * Fixed a config file parsing bug in the Irssi SILC client.
7582           Affected file irssi/src/silc/core/clientconfig.c.
7583
7584 Thu Sep 13 23:11:18 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
7585
7586         * When printing the channel mode on JOIN, verify that the
7587           channel key and channel's HMAC are valid.  Affected file
7588           irssi/src/silc/core/client_ops.c.
7589
7590 Thu Sep 13 20:24:52 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
7591
7592         * Added defines SILC_DEFAULT_CIPHER, SILC_DEFAULT_HMAC,
7593           SILC_DEFAULT_HASH and SILC_DEFAULT_PKCS in the file
7594           lib/silccrypt/[silccipher.h|silchmac.h|silchash.h|silcpkcs.h].
7595
7596         * Removed channel key rekey task deleting from the function
7597           silc_server_save_channel_key.  Affected file silcd/server.c.
7598           Added explicit timeout task context instead that is used to
7599           delete the task if we are registering a new task before the
7600           new task has elapsed.
7601
7602         * When channel key rekey occurs the client library now saves
7603           the old channel key for a short period of time (10 seconds) and
7604           is able to use it in case some is still sending channel
7605           messages encrypted with the old key after the rekey.  Affected
7606           file lib/silcclient/[idlist.h|client_channel.c].
7607
7608 Sun Sep  9 15:49:16 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
7609
7610         * Added check to the silc_server_new_id_real to not accept
7611           new ID if it is the sender's own ID.  Affected file is
7612           silcd/packet_receive.c.
7613
7614         * Assure that we do not announce ourself or the one we've
7615           sending our announcements when we're router and are announcing
7616           servers to our primary router.  Affected file silcd/server.c.
7617
7618         * Fixed silc_server_command_identify_check_client to assemble
7619           correct WHOIS packet.  It send corrupted WHOIS packet and
7620           caused problem with router to router connections.  Affected
7621           file silcd/command.c.
7622
7623           Fixed also silc_server_command_whois_check the same way
7624           as for the IDENTIFY command.
7625
7626         * Added new SilcIDListStatus to the server in the SilcIDListData
7627           structure.   The status now includes the current status of
7628           the entry (like registered, resolved etc.).  Affected file
7629           silcd/idlist.[ch].  Defined a bunch of different status types
7630           as well.  This replaced the old boolean registered field as well.
7631
7632           Added resolve_cmd_ident field to the SilcClientEntry structure
7633           too so that if the entry is for example being resolved so
7634           another command may attach to the same pending command reply
7635           without requiring to resolve the same entry again.  This concept
7636           should optimize the WHOIS and the IDENTIFY resolving under
7637           heavy load by taking away unnecessary resolving for entries
7638           that are being resolved already.
7639
7640           Added support for adding multiple pending commands for one
7641           command idenfier.  Affected file silcd/command[_reply].[ch].
7642
7643         * Fixed WHOIS and IDENTIFY save to remove the cache entry
7644           before deleting the data.  Otherwise the hash table will have
7645           freed data in comparison functions.  Affected file is
7646           silcd/command_reply.c.
7647
7648         * Fixed silc_idlist_replace_client_id to add the new entry to
7649           the cache with NULL nickname.  Otherwise there will be invalid
7650           memory as the nickname after the nickname is freed.  Affected
7651           file silcd/packet_receive.c.
7652
7653         * Fixed the silc_idlist_get_clients_by_hash.  The entries was
7654           saved into wrong slots because the previous number of entries
7655           was not taken into account.  Affected file silcd/idlist.c.
7656           Fixed same thing in silc_idlist_get_clients_by_nickname too.
7657
7658         * If we are router and we receive JOIN notify to a channel that
7659           does not have any users then notified client is marked as the
7660           channel founder, as it is it.  The affected file is
7661           silcd/packet_receive.c
7662
7663         * Added to the extended hash table API's table_del_*ext functions
7664           the destructor as argument too, so that the caller can decide
7665           which destructor to use or whether to use destructor at all.
7666           Affected file lib/silcutil/silchashtable.[ch].
7667
7668         * Fixed ID Cache purging.  It actually deleted the entries from
7669           the hash table after the data was freed.  The hash table ended
7670           up comparing freed memory.  The affected file is
7671           lib/silccore/silcidcache.c.
7672
7673 Sat Sep  8 10:22:10 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
7674
7675         * Fixed Irssi SILC client's KILL command's HELP syntax.
7676
7677         * The USERS command now resolves the detailed user information
7678           if the userinfo field is missing.  Affected file is
7679           lib/silcclient/command_reply.c.
7680
7681         * Do not print error in silc_file_read if the read file does
7682           not exist.  Just silently return NULL.  Affected file is
7683           lib/silcutil/silcutil.c.
7684
7685         * Fixed the silc_log_output to not wine about NULL filename
7686           and to not create some bogus " " filename.  Affected file is
7687           lib/silcutil/silclog.c.
7688
7689 Fri Sep  7 22:16:38 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
7690
7691         * Fixed various printing bugs on the user interface in the
7692           Irssi SILC Client.  Minor changes that were forgotten from
7693           the release.
7694
7695 Fri Sep  7 17:28:37 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
7696
7697         * Fixed the configure.in.pre and the compilation and distribution
7698           environment to support the new autoconf 2.52.  That version is
7699           now required to compile the CVS trunk.
7700
7701 Thu Sep  6 12:47:37 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
7702
7703         * Renamed function silc_parse_nickname to silc_parse_userfqdn
7704           to generally parse user@fqdn format strings.  Affected file
7705           lib/silcutil/silcutil.c.
7706
7707         * Added nickname_format and nickname_force_format fields to the
7708           SilcClientParams structure.  The first one defines the format
7709           for the nicknames that the library will enforce if the receives
7710           multiple same nicknames.  The second one is boolean value and
7711           can be used to force the library to always enforce the format
7712           to the nicknames regardles whether there are multiple nicknames
7713           or not.  This configurable formatting was employed to flexibly
7714           support accessing multiple nicknames from the user interface.
7715           The userinterface can now set the nicknames to what ever format
7716           they prefer.  Affected file lib/silcclient/silcapi.h.
7717
7718           Added function silc_client_nickname_format to the file
7719           lib/silcclient/idlist.c.  It performs the nickname formatting.
7720
7721           Added new field `hostname´ to the SilcClientEntry context.
7722           It holds the hostname of the client.  Affected file is
7723           lib/silcclient/idlist.h.
7724
7725         * Irssi SILC Client sets the nicknames in nick@hostn format.
7726           Fe. priikone@otaku, priikone@otaku2 etc.  Affected file
7727           irssi/src/silc/core/silc-core.c.
7728
7729           The WHOIS printing now also shows both the real nickname and
7730           the formatted nickname so that user knows how to access the
7731           user if there are multiple same nicknames cached.  Affected
7732           file irssi/src/silc/core/client_ops.c.  Changed the WHOIS
7733           printing formatting too to take the hostname now as a separate
7734           argument.  The Affected file is
7735           irssi/src/fe-common/silc/modules-formats.[ch].
7736
7737         * Changed the silc_client_get_clients_local to accept the formatted
7738           nickname as argument.  It accepts the real nickname too but the
7739           formatted nickname can be used to find the true entry from
7740           multiple entries.  Affected file lib/silcclient/silcapi.h and
7741           lib/silcclient/idlist.c.
7742
7743         * Added nickname_format_parse field to the SilcClientParams.
7744           It is a callback function provided by the application to parse
7745           the nickname out of the formatted nickname string. The library
7746           calls it to get the nickname from the formatted string. Since
7747           the application generally knows better the format of the nickname
7748           string it parses it instead of the library, even though library
7749           encodes the formatted string.  If the callback function is not
7750           provided then the library will use the string as is.  The
7751           affected file is lib/silcclient/silcapi.h.
7752
7753         * All the nickname strings passed to the client library in
7754           commands are now expected to be formatted nickname strings.
7755           If the command does not support the formatted nickname string
7756           it will assume that the sent string is the actual nickname.
7757           Affected file lib/silcclient/command.c.
7758
7759 Tue Sep  4 22:31:28 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
7760
7761         * Added public key authentication support to OPER and SILCOPER
7762           commands in the client library.  Affected file is
7763           lib/silcclient/command.c.
7764
7765 Tue Sep  4 12:39:17 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
7766
7767         * Changed the get_auth_methdod client operation to be asynchronous.
7768           It can be async if the application resolves the authentication
7769           method from the server during the negotiation.  Added new
7770           SilcGetAuthMeth completion callback that the application will
7771           call after resolving the authentication method.
7772
7773           Added function silc_client_request_authentication_method that
7774           the application can use to resolve the authentication method
7775           from the server.  Added also SilcConnectionAuthRequest callback
7776           that the library will call after the server has replied.  The
7777           application can call this function if it does not know the
7778           current authentication method.
7779
7780           Affected files are lib/silcclient/client.c and
7781           lib/silcclient/silcapi.h.
7782
7783         * The Irssi SILC client now automatically resolves the authentication
7784           method incase any configuration information is not present (and
7785           currently there never is).  The affected file is
7786           irssi/src/silc/core/client_ops.c.
7787
7788         * Fixed public key authentication from the client library.
7789           Affected file lib/silcclient/protocol.c.  Changed also the
7790           protocol specification about the public key authentication in
7791           the connection authentication protocol.  The actual data to be
7792           signed is now computed with a hash function before signing.
7793
7794         * Fixed the public key authentication from the server as well.
7795           Affected file silcd/protocol.c.
7796
7797         * Removed the mlock()'s from the memory allocation routines.
7798           Affected file lib/silcutil/silcmemory.c.  The ./configure does
7799           not check anymore for the mlock().  Affected file is
7800           configure.in.pre.
7801
7802         * Fixed USERS command in server to allow the execution of the
7803           command for private and secret channels if the client sending
7804           the command is on the channel.  Affected file silcd/command.c.
7805
7806         * Fixed silc_client_get_clients_local to return the clients
7807           count correctly.  It could return wrong value.  Affected file
7808           lib/silcclient/idlist.c.
7809
7810 Mon Sep  3 20:09:59 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
7811
7812         * Fixed the lib/silcmath/mpi/mpi.h to always use 32-bit data
7813           types.  The assembler optimizations seemed not to like 64-bit
7814           data types.  The assmebler optimizations thus are now enabled
7815           also for BSD systems as opposed to only enable them for Linux.
7816
7817         * Do not check for threads at all on BSD systems.  Affected
7818           file configure.in.pre.
7819
7820         * Removed -n and -h options from the Irssi SILC Client since
7821           they are not used in silc.
7822
7823         * Fixed the prime generation to assure that the first digit
7824           of the generated random number is not zero since our conversion
7825           routines does not like number strings that starts with zero
7826           digit.  If zero digit is seen the random number is regenerated.
7827           This caused some corrupted RSA keys when the zero first digit
7828           was met.  Affected file lib/silcmath/silcprimegen.c.
7829
7830 Sun Sep  2 17:17:24 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
7831
7832         * Fixed WIN32 configuration in the ./configure script.
7833           Fixed to include xti.h on environments that has it.
7834           Patches by Carsten Ilchmann and andrew.
7835
7836 Sat Sep  1 00:29:33 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
7837
7838         * Changed the silc_id_create_client_id to be collision
7839           resistant.  It is now assured that there cannot be created
7840           two same client ID's.  I suspect that some weird bugs in
7841           the server were actually caused by duplicate Client IDs.
7842           Affected file silcd/serverid.[ch].  A router receiving
7843           new ID now also assures and informs the sending server
7844           if the ID caused collision.
7845
7846         * Changed the silc_id_create_channel_id to also assure that
7847           there are no collisions.
7848
7849 Wed Aug 29 17:55:01 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
7850
7851         * Statement about ignoring the Mutual Authentication flag when
7852           performing rekey with PFS was a bit misleading.  It is ignored
7853           if it was set in the initial negotiation, it cannot be even
7854           set in the rekey.  Fixed in the ke-auth draft.  Started the
7855           new versions of the protocol drafts in the doc/.
7856
7857 Sun Aug 26 14:59:15 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
7858
7859         * Fixed a bug in silc_client_command_identify_save when saving
7860           new channel information.  The channel name was no duplicated
7861           and caused crash on exit.  Affected file is
7862           lib/silcclient/command_reply.c.
7863
7864 Fri Aug 17 23:07:45 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
7865
7866         * Fixed the getkey command handling in the server.  Send just
7867           empty OK reply to the sender if the key could not be fetched
7868           (but everything else was ok, like the key just was not available).
7869           Changed the public key parameter to optional in the protocol
7870           specs so that empty OK reply can be sent.  Affected file
7871           silcd/command.c.
7872
7873           Added a message to Irssi SILC client to tell to user if the
7874           server did not return a public key.
7875
7876 Tue Aug 14 07:29:27 CEST 2001  Pekka Riikonen <priikone@silcnet.org>
7877
7878         * Fixed a channel key regeneration bug.  It registered new
7879           timeout tasks exponentially until all system resources were
7880           used.  Affected file silcd/server.c.
7881
7882 Sun Aug 12 20:48:14 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
7883
7884         * Added the SILC Document generator to the scripts/silcdoc.
7885           It can be used to generate the Toolkit Reference Manual out
7886           of the source tree.  Internally it will also use the RoboDoc
7887           generator now imported in util/robodoc.
7888
7889 Sun Aug 12 12:28:17 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
7890
7891         * Added couple of return's in rekey protocol if error orccurred
7892           during the protocol.  The execution must be terminated.
7893           Affected file silcd/protocol.c.  Also, terminate the protocol
7894           always with timeout.
7895
7896 Sat Aug 11 12:36:02 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
7897
7898         * The client's Client ID was created initally from the wrong
7899           nickname (it could have been in format nick@host) in the
7900           silc_server_new_client.  Affected file silcd/packet_receive.c
7901
7902 Sat Aug 11 00:29:57 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
7903
7904         * Added some SILC_LOG_ERROR's to various error conditions
7905           if client could not be added to ID cache.  Affected files
7906           silcd/packet_receive.c and silcd/server.c.
7907
7908         * When client's sock->user_data is freed, NULL also the
7909           client->router and client->connection pointers.  Added check
7910           for these pointers being NULL to various places around the
7911           code.  Affected file silcd/server.c.
7912
7913         * Added client->data.registered == TRUE checks to various
7914           places around the code to assure that unregistered client's
7915           are not handled when it is not allowed.  Affected file
7916           silcd/server.c.
7917
7918         * Added `bool registered' fields to all
7919           silc_idlist_[server|client]_get_* routines to indicate whether
7920           the fetched client needs to be registered or not.  Affected
7921           file silcd/idlist.[ch].
7922
7923         * Add your own entry as registered to the ID cache in the
7924           server.  Affected file server.c.
7925
7926         * Fixed a bug in silc_server_new_server.  The SilcServer was
7927           set as the new server's context instead of SilcServerEntry.
7928           This naturally caused some weird bugs.
7929
7930         * Added "updated" field the SilcChannelEntry which indicates
7931           the time since the channel entry was last accessed.  This
7932           can be used to determine whether it is necessary to
7933           announce the channel after backup resuming protocol.
7934           Affected files silcd/idlist.[ch].
7935
7936 Thu Aug  9 18:28:37 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
7937
7938         * Do not delete the channel rekey task when adding it
7939           for in silc_server_create_channel_key.
7940
7941         * Changed the silc_server_create_channel_key to return
7942           TRUE or FALSE to indicate the success of the channel key
7943           creation.
7944
7945 Thu Jul 26 11:32:31 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
7946
7947         * Fixed MSVC++ project files and added missing files to
7948           Makefiles under win32/.
7949
7950 Wed Jul 25 18:43:54 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
7951
7952         * Do not add TCP_NODELAY flag if the operating system
7953           does not have it defined.  Affected files are
7954           lib/silcutil/[unix/win32]/silc[unix/win32]net.c.
7955
7956         * Fixed buffer overflow from Irssi SILC Client.  Affected
7957           file irssi/src/fe-common/core/themes.c.
7958
7959         * Fixed double free in client library in the file
7960           lib/silcclient/client.c when disconnecting from server.
7961
7962         * Applied double free patch from cras to Irssi SILC client.
7963           Affected files irssi/src/core/[modules/expandos].c
7964
7965         * Fixed the disconnection handling to Irssi SILC Client.
7966           The application must call silc_client_close_connection
7967           in ops->connect client operation in case of failure of
7968           the connection.  Affected file is
7969           irssi/src/silc/core/client_ops.c.
7970
7971         * Do not set sock->protocol to NULL in the function
7972           silc_client_close_connection after executing the protocol's
7973           final callback since the sock might not be valid anymore.
7974           Affected file lib/silcclient/client.c.
7975
7976 Wed Jul 25 16:04:35 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
7977
7978         * Do not enable SILC_THREADS if the linking with libpthread
7979           did not happen.  Affected file configure.in.pre.
7980
7981         * Added notion to protocol specification that server must
7982           verify the sent authentication payload with CMODE when
7983           setting the channel founder key.  Implemented it to the
7984           server.  Affected file silcd/command.c.
7985
7986 Mon Jul 23 18:31:43 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
7987
7988         * Added _EXTRA_DIST SILC distribution variable to the
7989           distributions file.  It is used to conditionally add extra
7990           files or directories to the specific distribution.  Affected
7991           files ./prepare, Makefile.am.pre and distributions.
7992
7993           Removed the `_' from the start of the distribution names.
7994           It is redundant.
7995
7996         * Added README.WIN32 for instructions to compile the Toolkit
7997           under WIN32.
7998
7999 Mon Jul 23 10:12:37 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
8000
8001         * Fixed a double free in disconnection in the server.  Affected
8002           file is silcd/server.c.
8003
8004         * Fixed the lib/silcske/groups.c to work now also with GMP
8005           MP library.  The string conversion did not work when using
8006           specific base and the base is indicated in the string as well.
8007
8008         * Created win32/ directory which now includes MSVC++ specific
8009           stuff so that toolkit (DLLs) may be compiled with MSVC++.
8010           It will appear only in the toolkit distribution
8011
8012 Sun Jul 22 19:40:30 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
8013
8014         * Changed the key material distribution function in case when
8015           the hash output is too short.  The data is now concatenated
8016           a bit differently than it used to.  Made the change to the
8017           SKE protocol specification.
8018
8019         * Added better GMP detection to configure.in.pre.  A patch
8020           by salo.
8021
8022 Fri Jul 20 13:16:00 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
8023
8024         * Fixed a minor bug in SKE that might cause some problem on
8025           some platforms.  Affected file lib/silcske/silcske.c.
8026
8027         * Added the cookie checking for initiator in the SKE.  It checks
8028           that the responder returns the sent cookie unmodified.  The
8029           affected file is lib/silcske/silcske.c.  Added new SKE
8030           error type INVALID_COOKIE that can be sent during the
8031           negotiation.  Fixed some memory leaks as well.
8032
8033         * Added the "invalid cookie" error message to Irssi SILC client's
8034           message formats.
8035
8036 Thu Jul 19 21:44:31 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
8037
8038         * Added `task_max' field to the SilcClientParams to indicate
8039           the maximum tasks the scheduler can handle.  If set to zero,
8040           default values are used.  Affected file lib/silcclient/silcapi.h.
8041
8042         * Fixed memory leaks in silc_client_close_connection.  Affected
8043           file lib/silcclient/client.c.
8044
8045         * Added silc_client_del_client_entry to client library to free
8046           all memory of given client entry.  Affected file is
8047           lib/silcclient/idlist.[ch].
8048
8049         * Added new functions silc_client_del_channel and
8050           silc_client_del_server to delete channel and server entries.
8051           Affected file lib/silcclient/[silcapi.h/idlist.c].
8052
8053         * Removed silc_client_del_client_by_id from silcapi.h.
8054
8055         * Fixed the INFO command to return the server's own info
8056           correctly when querying by Server ID.  Affected file is
8057           silcd/command.c.
8058
8059 Thu Jul 19 14:47:30 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
8060
8061         * Removed the non-blocking settings in WIN32 code in the
8062           silc_sock_[read/write] and added SleepEx instead.  Affected
8063           file lib/silcutil/win32/silcwin32sockconn.c.  The availability
8064           of input data is now checked with FIONREAD and ioctlsocket.
8065
8066 Wed Jul 18 18:34:01 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
8067
8068         * Call silc_schedule_task_del_by_context in the
8069           silc_protocol_cancel instead of silc_schedule_task_del_by_callback.
8070           Affected file lib/silccore/silcprotocol.c.
8071
8072         * Call silc_protocol_cancel for active protocols in the
8073           silc_server_close_connection if the funtion
8074           silc_server_free_sock_user_data has not been called.
8075           Affected file silcd/server.c.
8076
8077         * Generic tasks cannot be deleted using the del_by_fd
8078           task deleting function since generic tasks does not match
8079           any specific fd.  Affected file lib/silcutil/silcschedule.[ch].
8080
8081         * Added a notion to SILCOPER help file that the SILCOPER works
8082           only on router server, not on normal server.
8083
8084 Wed Jul 18 09:40:04 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
8085
8086         * Added for WIN32 support for the new scheduler as well.
8087           Affected file lib/silcutil/win32/silcwin32schedule.c.
8088
8089         * Fixed the SHA1 implementation to work on various platforms.
8090
8091 Tue Jul 17 23:04:10 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
8092
8093         * Rewrote the SILC Scheduler entirely.  Removed the old SILC Task
8094           API.  It is part of the scheduler now.  Everything else is
8095           as previously but some functions has changed their names.
8096           Checkout the lib/silcutil/silcschedule.h for the interface.
8097           Updated all applications to use the new interface.  Affected
8098           files are lib/silcutil/silcschedule.[ch].
8099
8100 Tue Jul 17 16:53:30 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
8101
8102         * Found a bug in the SKE implementation.  The HASH value,
8103           specified by the protocol, was not computed correctly.  The
8104           public key of the responder was not added to the computation
8105           even though it is mandatory.  Affected file lib/silcske/silcske.c.
8106           This unfortunately causes incompatibilities with older
8107           clients and servers.
8108
8109         * Added WIN32 specific network init and uninit functions:
8110           silc_net_win32_init and silc_net_win32_uninit to init and uninit
8111           the Winsock2.  Affected file lib/silcutil/silcnet.h and
8112           lib/silcutil/win32/silcwin32net.c.
8113
8114         * Set the socket always to nonblocking mode on WIN32 after
8115           reading data or writing data.  Affected file is
8116           lib/silcutil/win32/silcwin32sockconn.c.
8117
8118 Mon Jul 16 22:55:26 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
8119
8120         * Fixed various compilation problems under WIN32.  Affected
8121           files lib/silcutil/win32/silcwin32thread.c and
8122           lib/silcutil/win32/silcwin32schedule.c.
8123
8124         * Removed all _internal.h #includes from public header
8125           files.  Internal headers must never be included from
8126           public headers.
8127
8128           Removed also the lib/silcske/payload_internal.h file.
8129
8130         * All include files that may be needed (public and some others
8131           included by the public headers) by application developers are
8132           now copied to the ./includes directory.  It does not copy any
8133           internal headers.  Affected file Makefile.defines.pre and all
8134           Makefile.am's under lib/ and subdirs.
8135
8136 Thu Jul 12 17:49:31 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
8137
8138         * Do not change the ~/.silc directory's permissions automatically.
8139           Affected file irssi/src/silc/core/clientutil.c.
8140
8141 Thu Jul 12 10:18:40 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
8142
8143         * Do not cancel the protocol in silc_server_close_connection
8144           it might cause recursion.  Now cancelled in the function
8145           silc_server_free_sock_user_data.  Affected file silcd/server.c.
8146
8147         * Fixed the silc_server_remove_clients_by_server to regenerate
8148           the channel keys correctly finally.  Added also new function
8149           silc_server_remove_clients_channels to actually do it.
8150           Affected file silcd/server.c.
8151
8152         * Fixed the silc_server_new_channel to not crash by giving
8153           wrong router to the new channel.  Affected file is
8154           silcd/packet_receive.c.
8155
8156 Wed Jul 11 18:31:57 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
8157
8158         * Added SilcClientParams structure to the lib/silcclient/silcapi.h
8159           which is given as argument to the silc_client_alloc now.
8160           It can be used to configure the client and set various parameters
8161           that affect the function of the client.
8162
8163         * The USERS command in server did not check whether the channel
8164           is private or secret.  Affected file silcd/command.c.
8165
8166         * Added new argument to the USERS command in protocol specification.
8167           The USERS command now can take the channel name as argument
8168           as well.  Added support for this in client and server and
8169           updated the protocol specs.
8170
8171         * Completed the GETKEY command in client. It can be now used
8172           to fetch also servers public key not only some clients.
8173           Affected files lib/silcclient/command[_reply].c.
8174
8175         * Added silc_client_get_server to return server entry by the
8176           server name.  Affected files lib/silcclient/silcapi.h and
8177           idlist.c.
8178
8179         * Redefined the IDENTIFY command in protocol specification to be
8180           more generic.  It now can be used to query information about
8181           any entity in the SILC Network, including clients, servers and
8182           channels.  The query may be based either the entity's name
8183           or the ID.  Added support for this in both client and server.
8184
8185           Affected files silcd/command.c and lib/silcclient/command.c
8186           and command_reply.c.
8187
8188         * Optimized the WHOIS and WHOWAS commands in the server. Removed
8189           the _from_client and _from_server functions.  Affected file
8190           silcd/command.c.
8191
8192         * Added silc_client_get_channel_by_id_resolve to the file
8193           lib/silcclient/silcapi.h to resolve channel information by
8194           its ID.  Added also silc_client_get_channel_by_id that
8195           does not resolve it from the server.
8196
8197 Tue Jul 10 18:05:38 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
8198
8199         * Added SilcServerEntry context into the client library
8200           to represent one server.  The INFO command now allocates
8201           these to save the resolved server info.  For now on the
8202           client library will also keep information about servers,
8203           connected and resolved with INFO.
8204
8205           The INFO command now allocates the SilcServerEntry context
8206           and saves the server info there.  The COMMAND_REPLY in
8207           the INFO now returns the parameters to application in
8208           same order as defined in the protocol specification.
8209
8210           The entries are cached in the client->server_cache.
8211
8212         * The INFO command is now issued after received the Client ID
8213           from the server.  Affected file lib/silcclient/client.c.
8214
8215         * The CMODE_CHANGE notify may now return also an SilcServerEntry
8216           to the application as the mode changer might be server.
8217           It is guaranteed that NULL is not returned anymore to the
8218           application.  Affected file lib/silcclient/client_notify.c.
8219
8220           The ID Type is now also passed to the application so that
8221           it can check whether the returned entry is SilcClientEntry
8222           or SilcServerEntry.
8223
8224           Added new function silc_client_get_server_by_id to return
8225           the server entry by ID.  Affected files are the
8226           lib/silcclient/silcapi.h and lib/silcclient/idlist.c.
8227
8228         * Do not create the channel in the Irssi SILC Client when issuing
8229           the JOIN command but when received the sucessful JOIN command
8230           reply.  Otherwise the channel might get created even though we
8231           could not join it.  The Affected file is
8232           irssi/src/silc/core/[silc-channels.c/client_ops.c].
8233
8234         * Fixed a channel joining bug in router.  The router must also
8235           check the channel modes, invite and ban lists etc. when serving
8236           the JOIN command sent by normal server.  Affected file is
8237           silcd/command.c.  The router now resolves the client's
8238           information from the server who sent the JOIN command if it
8239           does not know it, and processes the JOIN command only after
8240           that.
8241
8242         * Changed the SilcCommandCb to take new argument; void *context2.
8243           Affected file lib/silccore/silccommand.h
8244
8245           The second argument in the command callbacks in the server now
8246           includes the SilcServerCommandReplyContext if the command was
8247           called as pending command callback from the command reply.
8248           Otherwise it is NULL. When called as pending the status of the
8249           command reply will be checked and if it was erronous the
8250           error will be sent to the original sender of the command.
8251           This way the client always receives the error messages even
8252           though the server was actually the one who received the error
8253           when it resent the command to router, for example.  Affected
8254           files silcd/command[_reply].[ch].
8255
8256         * Fixed sending WHOWAS command's error message to client if
8257           the requested client could not be found.  It was missing.
8258           silcd/command.c.
8259
8260         * Changed the CMODE and CUMODE commands reply arguments in the
8261           protocol specification.  The Channel ID is now sent in both
8262           of the commands to identify the channel.  Implemented this
8263           new feature to the client and server.  Affected files
8264           lib/silcclient/command_reply.c and silcd/command.c.
8265
8266         * Made better checks for invite and ban lists in the JOIN
8267           command in server.  Affected file silcd/command.c.
8268
8269 Mon Jul  9 18:28:34 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
8270
8271         * The server now performs the incoming host IP/DNS lookup
8272           using the silc_socket_host_lookup and thus does not block
8273           the server anymore.  Affected file silcd/server.c.
8274
8275         * Completed the multi-thread support for SILC Scheduler in
8276           the lib/silcutil/silcschedule.c.
8277
8278         * Fixed the configure.in.pre to detect the pthread correctly
8279           on various systems.
8280
8281         * Fixed a deadlock in silc_task_queue_wakeup in the file
8282           lib/silcutil/silctask.c.
8283
8284 Mon Jul  9 13:40:03 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
8285
8286         * Added new function silc_schedule_wakeup that is used in
8287           multi-threaded environment to wakeup the main thread's
8288           schduler. It needs to be used when a thread adds a new task
8289           or removes a task from task queues. After waking up, the
8290           scheduler will detect the task queue changes. If threads
8291           support is not compiled in this function has no effect.
8292           Implemented the wakeup mechanism to both Unix and WIN32
8293           systems.  Affected files are lib/silcutil/silcschedule.[ch],
8294           lib/silcutil/unix/silcunixschedule.c and the
8295           lib/silcutil/win32/silcwin32schedule.c.
8296
8297         * Added new function silc_task_queue_wakeup to wakeup the
8298           scheduler by the specified task queue.  Affected file
8299           lib/silcutil/silctask.[ch].
8300
8301         * The silc_socket_host_lookup_start now wakes up the scheduler
8302           after adding the timeout task.  Affected file is
8303           lib/silcutil/silcsockconn.c.
8304
8305         * The silc_socket_host_lookup is synchronous now if the threads
8306           support is not compiled in.  However, the callback is still
8307           called asyncronously through the scheduler, anyway.  Affected
8308           file lib/silcutil/silcsockconn.c.
8309
8310 Mon Jul  9 00:24:45 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
8311
8312         * Added new function silc_socket_host_lookup to perform
8313           asynchronous IP and FQDN lookups for the socket connection.
8314           Affected files lib/silcutil/silcsockconn.[ch].
8315
8316 Sun Jul  8 18:44:53 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
8317
8318         * Added SILC_MUTEX_DEFINE to define the mutex on environments
8319           that may or may not compile the mutex support in.
8320
8321           Changed the silc_mutex_alloc interface. It allocates the
8322           mutex now to the sent pointer and returns TRUE or FALSE.
8323
8324           Affected file lib/silcutil/silcmutex.h.
8325
8326         * Wrote the SILC Task Queue interface to support multi-threads.
8327           Affected file lib/silcutil/silctask.[ch].
8328
8329         * Wrote the SILC Scheduler to support multi-threads.  Affected
8330           file lib/silcutil/silcschedule.c.
8331
8332 Sun Jul  8 11:16:01 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
8333
8334         * Implemented the SILC Mutex API and SILC Thread API for WIN32
8335           in lib/silcutil/win32/.
8336
8337 Sun Jul  8 00:18:15 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
8338
8339         * Defined SILC Mutex API and SILC Thread API and implemented
8340           them for Unix.  Affected files are
8341           lib/silcutil/silcmutex.h, lib/silcutil/silcthread.h,
8342           lib/silcutil/unix/silcunixmutex.c and
8343           lib/silcutil/unix/silcunixthread.c.
8344
8345 Sat Jul  7 14:40:31 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
8346
8347         * Fixed the silc_server_remove_clients_by_server's channel
8348           key re-generation.  The hash table handling was incorrect
8349           and would not work with many channels.  Affected file is
8350           silcd/server.c.
8351
8352         * Fixed some memory leaks around the server code.
8353
8354         * Rewrote the silc_server_get_users_on_channel to support IPv6
8355           based Client ID's.  Affected file silcd/server.c.
8356
8357         * Defined the SILC_MESSAGE_FLAG_SIGNED to the protocol
8358           specification.  However, a separate document must be written
8359           to define the detailed signing procedure and the payload
8360           associated with the flag.  Defined the flag to the
8361           lib/silccore/silcchannel.h as well.
8362
8363 Fri Jul  6 18:26:31 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
8364
8365         * Changed the dynamic tables to static size tables in the
8366           lib/silccrypt/silchmac.c.
8367
8368         * Removed GCC dependencies from the code.  A patch by cras.
8369
8370 Fri Jul  6 09:39:35 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
8371
8372         * Do not show the error "Error receiving packet bla bla"
8373           in server if it really was not an error (-2 means that reading
8374           is pending).  Affected file silcd/server.c.
8375
8376 Thu Jul  5 21:22:32 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
8377
8378         * Fixed a possible crash in silc_server_remove_clients_by_server
8379           in silcd/server.c.  Fixed there also some memory leaks.
8380
8381         * Fixed the silc_idlist_replace_client_id.  It could replace
8382           wrong key in the hash table.  Affected file silcd/idlist.c.
8383
8384         * Do not check whether there are global users on the channel
8385           if the channel->global_users is FALSE.  Affected functions
8386           silc_server_remove_from_one_channel and
8387           silc_server_remove_from_channels in silcd/server.c.  Also,
8388           do not check if the removed client is local as we can be
8389           sure that global client was not removed from the channel
8390           and checking for global users is not needed.
8391
8392         * The silc_server_remove_clients_by_server now re-generates
8393           the channel keys correctly for those channels that had
8394           clients removed from them.  Affected file silcd/server.c.
8395
8396 Tue Jul  3 11:39:20 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
8397
8398         * Found the reason of random crashes in the server.  We weren't
8399           ignoring the SIGPIPE signal (which can be sent in write())
8400           and it crashed the server.  Affected file silcd/silcd.c.
8401
8402 Fri Jun 29 20:05:25 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
8403
8404         * Assure that sock->user_data is not NULL in the function
8405           silc_server_packet_send in silcd/packet_send.c.
8406
8407         * Disconnect the remote connection if it could not be added
8408           to any ID lists in the server.  The affected file is
8409           silcd/server.c.
8410
8411         * Check in silc_server_packet_send[_real/dest] that the
8412           socket is not disconnecting and ignore the data if it is.
8413           Affected file silcd/packet_send.c.
8414
8415         * Define inline to __inline on native WIN32 compilation.
8416           Affected file includes/silcwin32.h.
8417
8418         * Added some explicit type casts for inline code since MSVC
8419           require them.  Affected files lib/silcutil/silcbuffer.h,
8420           lib/trq/silcdlist.h and lib/trq/silclist.h.
8421
8422         * Print warning in log files from now on if the packet
8423           decryption fails.  Affected file silcd/server.c.
8424
8425 Thu Jun 28 21:30:39 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
8426
8427         * Changed the `say' client operation's interface to accept
8428           new `type' argument to indicate the type of the message sent
8429           by the library.  The application may filter the library's
8430           messages according the type.  The affected file is the
8431           lib/silcclient/silcapi.h.
8432
8433         * Added two new functions to lib/silcclient/silcapi.h:
8434           silc_client_del_client and silc_client_del_client_by_id.
8435           Affected file lib/silcclient/idlist.c.
8436
8437         * Moved the clientincludes.h from includes/ to silc/ and
8438           serverincludes.h from includes/ to silcd/.
8439
8440         * The modes for the CMODE and CUMODE are now passed as
8441           uint32 for application with COMMAND_REPLY.  The affected
8442           file is lib/silcclient/command_reply.c.
8443
8444 Wed Jun 27 22:24:47 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
8445
8446         * /WHOIS without arguments shows client's own information.
8447           Affected file lib/silcclient/command.c.
8448
8449         * Changed PING to not accept any arguments.  The specs
8450           says that client can ping only the connected server so
8451           requiring an argument is not needed.  Affected file is
8452           lib/silcclient/command.c.
8453
8454 Wed Jun 27 00:10:33 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
8455
8456         * Fixed a fatal bug in private message sending and reception
8457           encryption and decryption when using private message keys.
8458           The implementation was incorrect and did not follow the
8459           specification.  It causd that some of the message were
8460           lost since it did not use the sending and receiving keys
8461           as the protocol suggests.  This has been fixed and will cause
8462           incompatibilities with older clients when sending private
8463           message encrypted with private message keys.  Affected files
8464           lib/silcclient/client_prvmsg.c, lib/silcclient/client_keyagr.c
8465           and various other in Irssi SILC Client.
8466
8467           Added `responder' boolean argument to the functions
8468           silc_client_add_private_message_key[_ske] to indicate when
8469           the key is added as responder or initiator of the key
8470           negotiation.
8471
8472 Tue Jun 26 19:23:07 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
8473
8474         * Removed the silc_ske_check_version function and created
8475           a SilcSKECheckVersion callback.  Added also a function
8476           silc_ske_set_callbacks that is now used to set all SKE
8477           callbacks.  The callback functions are not given to
8478           the SKE functions anymore, but this function is used to
8479           set the callbacks.
8480
8481         * Fixed the WIN32 DLL generation in lib/Makefile.am.pre.
8482
8483         * Added `silc_version' argument to the silc_client_alloc
8484           to define the version of the application for the library.
8485           The library will use the version string to compare it
8486           against the remote host's (usually a server) version
8487           string.  Affected file lib/silcclient/silcapi.h
8488
8489         * Added the KE protocol context to Key Agreement context
8490           in client library so that we can abort the SKE if it
8491           is in process when we get timeout.  Affected file is
8492           lib/silcclient/client_keyagr.c.
8493
8494         * Do not resolve the client ID forever if it returns in the
8495           first time that such client does not exist.  This was done
8496           for example with private message.  Affected file is
8497           lib/silcclient/client_prvmsg.c.
8498
8499 Mon Jun 25 21:42:51 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
8500
8501         * Do not add regex.h for WIN32.  The affected file
8502           includes/silcincludes.h.
8503
8504         * Added WIN32 DLL generation to lib/Makefile.am.pre.  It might
8505           not work yet 100%.  It generates the DLL's automatically
8506           when compiling with --with-win32 under cygwin.
8507
8508 Sun Jun 24 19:49:23 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
8509
8510         * lib/contrib/regex.c is not compiled on WIN32.
8511
8512         * Added silc_net_get_socket_opt function to the
8513           lib/silcutil/silcnet.h.
8514
8515         * Added includes/silcwin32.h for WIN32 specific includes
8516           and definitions.
8517
8518         * Do not use ptime structure or any of the posix process
8519           functions on WIN32 in lib/silccrypt/silrng.c.
8520
8521         * Added silc_gettimeofday to provide generic function
8522           for struct timeval on all platforms.  Added the function
8523           to lib/silcutil/silcutil.h.
8524
8525 Sun Jun 24 12:19:52 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
8526
8527         * Moved the lib/silccore/silcsockconn.[ch] to the utility
8528           library as they clearly belong there.  As a plus side we
8529           can make the actual socket connection routines platform
8530           specific.
8531
8532           Added also new generic function silc_socket_read and
8533           silc_socket_write (that used to be silc_packet_[read/write].
8534           The implementation of these are platform specific.
8535
8536         * Added WIN32 specific routines of silc_socket_[read/write]
8537           to lib/silcutil/win32/silcwin32sockconn.c.
8538
8539 Sat Jun 23 16:01:00 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
8540
8541         * Added preliminary support for native WIN32 compilation under
8542           cygwin (using the -mno-cygwin option for GCC) to the
8543           ./configure.in.pre.  The --with-win32 now prepares the
8544           compilation for native WIN32.
8545
8546         * Rewrote the SILC Scheduler interface in the file
8547           lib/silcutil/silcschedule.h.  The scheduler is now context
8548           based and does not have anymore any global static scheduler.
8549           Moved the Unix scheduler to the lib/silcutil/unix/ directory
8550           and created lib/silcutil/win32 directory for WIN32 based
8551           scheduler.
8552
8553         * Added Unix specific network routines to the
8554           lib/silcutil/unix/silcunixnet.c and the old
8555           lib/silcutil/silcnet.c includes now only generic routines.
8556
8557           Added WIN32 specific network routines to the
8558           lib/silcutil/win32/silcwin32net.c.
8559
8560         * Added Unix specific utility functions from the
8561           lib/silcutil/silcutil.c to lib/silcutil/unix/silcunixutil.c.
8562
8563         * Added WIN32 SILC Scheduler to the file
8564           lib/silcutil/win32/silcwin32schedule.c. The code is of course
8565           untested.
8566
8567 Fri Jun 22 10:44:14 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
8568
8569         * Do not handle JOIN notify in the server if the target client
8570           is not registered (idata->registered == FALSE).  The affected
8571           file is silcd/packet_receive.c.
8572
8573         * Update the nickrec->founder in event_cumode in the Irssi SILC
8574           client.  Affected file irssi/src/silc/core/silc-channels.c.
8575
8576         * Fixed the CUMODE_CHANGE notify handling in the server when
8577           server and router are announcing their clients on channels.
8578           Now the mode changes are saved and notified correctly.  The
8579           affected file is /silcd/packet_receive.c.
8580
8581         * Fixed silc_idlit_replace_[server/client/channel]_id functions.
8582           They really did not replace the cache entry in the ID Cache.
8583           Now they do that.  Affected file silcd/idlist.c.
8584
8585         * Fixed the KICK notify handling in the Irssi SILC client to
8586           update the channel records so that the kicked client does not
8587           appear to be on the channel.  The affected file is
8588           irssi/src/silc/core/silc-channels.c.
8589
8590         * Always update the conn->current_channel when executing command
8591           on a channel.  Affected file irssi/src/silc/core/silc-servers.c.
8592
8593         * Fixed the KILL notify handling in Irssi SILC client to remove
8594           the killed client on all channels.
8595
8596 Thu Jun 21 17:10:08 CEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
8597
8598         * Fixed the silc_parse_command_line to remove extra spaces
8599           from the start and end of the arguments.  Affected file is
8600           lib/silcutil/silcutil.c.
8601
8602         * Cancel and free any active protocol in the function
8603           silc_server_close_connection.  Affected file silcd/server.c.
8604
8605         * Cancel and free any active protocol in the function
8606           silc_client_close_connction.  Affected file is
8607           lib/silcclient/client.c.
8608
8609         * Do not execute the KILL command for clients that are in
8610           history (ie. they are not in the network).  Affected file is
8611           silcd/command.c.
8612
8613         * Fixed KILL notify handling, client does not crash anymore.
8614           Affected file irssi/src/silc/core/silc-channels.c.
8615
8616         * Reduced the default packet buffer size from 2048 to 1024 in
8617           lib/silccore/silcpacket.c.
8618
8619         * Added SILC_SKE_STATUS_FREED SKE status type and a reference
8620           counter to the SKE context that is incresed when the SKE library
8621           performs async operation outside the library.  If the outside
8622           process frees the SKE context and FREED status will be set
8623           and the library will detect after the sync operation that the
8624           libary is freed.  The affected files are
8625           lib/silcske/silcske[_status].[ch].
8626
8627         * Resolve the client entry information in the function
8628           silc_client_channel_message to assure that NULL pointer is not
8629           passed as client entry to the application. */
8630
8631         * Fixed the task timeout calculation to assure that there is
8632           never negative timeouts.  The affected file is
8633           lib/silcutil/silcschedule.c.
8634
8635         * Fixed the channel user mode notification sending in server.
8636           It was sent point-to-point to the router (or to server by router)
8637           but it needs to be destined to a channel.  The routines now
8638           supports sending the channel user mode notifys to the channels
8639           when announcing clients and channels.  Affected files are
8640           silcd/server.c and silcd/packet_receive.c.
8641
8642         * Fixed the CHANNEL_CHANGE notify handling in the client libary.
8643           It did not actually replace the old channel entry in the cache.
8644           Affected file lib/silcclient/client_notify.c.
8645
8646 Tue Jun 19 22:10:36 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
8647
8648         * Fixed a possible crash in silc_packet_send_prepare.  It now
8649           assures always that there is enough space in the buffer and
8650           at the tail area of the buffer (for MAC).
8651
8652           Fixed the inbound buffer reallocation in silc_packet_read.
8653           It was old code and did not handle the reallocation correctly.
8654           Affected
8655
8656           The affected file is lib/silccore/silcpacket.c.
8657
8658         * Fixed buffer overflow in silc_parse_nickname in the file
8659           lib/silcutil/silcutil.c.
8660
8661 Tue Jun 19 13:40:09 CEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
8662
8663         * make install generates new server keys only if there is not
8664           keys already.
8665
8666 Mon Jun 18 18:49:07 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
8667
8668         * Set SILC_MESSAGE_FLAG_NOREPLY when sending the away message.
8669           Added check that if the NOREPLY is set then we will not send
8670           the away message.  This avoids infinite loop of away messages
8671           if both clients are away.  The affected file is
8672           lib/silcclient/client_prvmsg.c.
8673
8674         * Fixed client crash if /NICK was given without arguments.
8675           Affected file lib/silcclient/command.c.
8676
8677         * Server does not send the invite list in INVITE command back
8678           to the client if the list was not altered.  Added this notion
8679           to the protocol spec as well.  Affected file silcd/command.c.
8680
8681           Fixed possible crash in INVITE command by checking the
8682           value of silc_server_get_client_route command.
8683
8684         * Fixed the INVITE notify type handling.  The arguments are now
8685           taken in correct order and client does not crash.  The affected
8686           file is irssi/src/silc/core/silc-channels.c.
8687
8688           Removed the "Inviting xxx to channel" message from the
8689           client library away and let the application handle it.
8690           Affected file lib/silcclient/command.c.  Added that message
8691           to Irssi SILC client's message formats.
8692
8693         * Fixed CMODE command crash in client.  It now checks the
8694           amount of arguments correctly and does not crash.  The affected
8695           file is lib/silcclient/command.c.
8696
8697         * Do not create new channel automatically in silc_channels_join
8698           but check whether the channel by that name already exists.
8699           Affected file irssi/silc/core/silc-channels.c.
8700
8701         * Do not send the SERVER_SIGNOFF to router if the disconnected
8702           entity was the router.  Affected file silcd/server.c.
8703
8704         * Added the handling of the SERVER_SIGNOFF notify to the Irssi
8705           SILC client as it was missing from there.
8706
8707           Added the handling of the KICK notify to the Irssi SILC client
8708           as it was missing.  Added "you have been kicked" message to
8709           Irssi SILC client's message modules formats.
8710
8711           Added the handing of the KILL notify to the Irssi SILC client
8712           as it was missing.  Added the kill message module formats
8713           as well.
8714
8715           The affected file is irssi/src/silc/core/silc-channels.c.
8716
8717         * The router did not save the channel mode the server announced.
8718           Affected file silcd/packet_receive.c.
8719
8720         * Fixed a possible crash in INFO command in server.  If the
8721           server did not provide the server info it crashed.  Affected
8722           file silcd/command.c.
8723
8724 Sun Jun 17 15:26:05 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
8725
8726         * Fixed the GETKEY command in the server to check also the
8727           global list.  Otherwise the GETKEY would not work correctly
8728           in normal SILC server.  Affected file silcd/command.c.
8729
8730 Sat Jun 16 18:00:00 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
8731
8732         * Fixed GETKEY crash, it crashed if the command did not succseed.
8733
8734 Tue Jun 12 21:36:18 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
8735
8736         * Redefined the SILC MP API in lib/silcmath/silcmp.h. The API
8737           is now real and not just an macro interface to GMP.
8738
8739           Removed the entire GMP from the source tree and imported new
8740           NSS MPI library instead.  Reason for removing GMP is that it is
8741           extremely large and compiles extremely slow.  The NSS MPI
8742           is only a few files and compiles in less than 10 seconds.
8743           The speed is also about the same as GMP.  The MPI is imported
8744           to lib/silcmath/mpi.
8745
8746           If the system has GMP installed we will still use the GMP.
8747           If it is not then the NSS MPI will be compiled.
8748
8749 Mon Jun 11 18:07:24 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
8750
8751         * Merged a long nickname (127 characters long) crash bugfix from
8752           Irssi CVS tree.  Affected file irssi/src/core/misc.c.
8753
8754         * Merged a freed memory reference bugfix from Irssi CVS tree.
8755           Affected file irssi/src/core/commands.c.
8756
8757 Sun Jun 10 16:08:35 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
8758
8759         * Added the server's public key sving and verification to the
8760           server when performing the SKE.  This was missing and the
8761           remote server's (or router's) public key was accepted without
8762           checking whether we have it previously or trust it at all.
8763           Affected file silcd/protocol.c.
8764
8765 Sat Jun  9 20:17:30 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
8766
8767         * Check in the silc_server_timeout_remote if protocol is active
8768           and make sure that the protocol's final callback is called so
8769           that all memory if freed.  Affected file silcd/server.c.
8770
8771 Sat Jun  9 12:51:27 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
8772
8773         * silc_server_whois_send_reply crashed the server if the nickname
8774           was 127 characters long.  Affected file silcd/command.c.
8775
8776 Thu Jun  7 16:29:56 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
8777
8778         * Added sanity check to the silc_server_new_client. If the hostname
8779           is provided inside username then check that the provided hostname
8780           really is the same as the resolved one.  If the hostname was not
8781           resolved then check it from the public key.  Affected file is
8782           silcd/packet_receive.c.
8783
8784         * Fixed a fatal bug in Irssi SILC client. Do not send QUIT command
8785           if the server disconnected us and the connection is not valid
8786           anymore.  Affected file irssi/src/silc/core/silc-channels.c.
8787
8788         * Moved the silc_client_[chmode|chumode|chumode_char] away from
8789           the library to the lib/silcutil/silcutil.[ch].
8790
8791 Thu Jun  7 08:57:16 CEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
8792
8793         * Close log file after open.  Affected file
8794           lib/silcutil/silclog.c.
8795
8796         * Check whether sock == NULL in silc_client_send_packet and return
8797           if it is.  Affected file lib/silcclient/silcclient.c.
8798
8799         * Check rec->entry == NULL in the Irssi SILC Client before
8800           sending the channel message.  Affecte file is
8801           irssi/src/silc/core/silc-servers.c.
8802
8803 Tue Jun  5 08:08:21 CEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
8804
8805         * Merged a splitted window bugfix from Irssi CVS tree.  The
8806           affected file is irssi/src/fe-text/textbuffer-view.c.
8807
8808         * Fixed the ME, ACTION and NOTICE printing in Irssi Client.
8809           It did not print nickname.
8810
8811         * Improved the distributions system a bit.
8812
8813 Mon Jun  4 17:57:16 CEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
8814
8815         * Merged /WINDOW bugfix from irssi CVS tree. Affected file is
8816           irssi/src/fe-text/gui-window.c.
8817
8818         * Fixed a fatal bug in Irssi SILC client. Crashed if sent message
8819           to in-active server.  The affected file is
8820           irssi/src/silc/core/client_ops.c.
8821
8822         * Resolve the client in USERS command reply if the entry does
8823           not have username resolved.  The affected file is
8824           lib/silcclient/command_reply.c.  Also, changed the IDENTIFY
8825           command to WHOIS command to really resolve stuff.  The USERS
8826           is not used any more in any critical section so WHOIS can
8827           be used even though it might be slower than IDENTIFY.
8828
8829         * Changed the lib/silcutil/silchashtable.h header to ROBODoc
8830           format.
8831
8832 Sun Jun  3 14:21:32 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
8833
8834         * Changed the protocol API a bit more consistent in the
8835           lib/silccore/silcprotocol.[ch].
8836
8837         * Changed the following headers to ROBODoc format:
8838
8839                 lib/silccore/silcpayload.h
8840                 lib/silccore/silcprotocol.h
8841                 lib/silccore/silcsockconn.h
8842
8843           All core library headers are now formatted.
8844
8845 Sat Jun  2 10:45:09 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
8846
8847         * Fixed a bug in Irssi SILC client; do not show that you are
8848           server/router operator if you really are not.  Affected file is
8849           irssi/src/silc/core/client_ops.c.
8850
8851         * Renamed silc_command_free_payload to silc_command_payload_free.
8852           Affected file lib/silccore/silccommand.h
8853
8854         * Added silcmath.h to include the prototoypes of various routines
8855           in the lib/silcmath.  Removed the old modinv.h, mpbin.h and
8856           silcprimegen.h.
8857
8858         * Changed the following headers to ROBODoc format:
8859
8860                 lib/silccore/silcchannel.h
8861                 lib/silccore/silccommand.h
8862                 lib/silccore/silcid.h
8863                 lib/silccore/silcidcache.h
8864                 lib/silccore/silcmode.h
8865                 lib/silccore/silcnotify.h
8866                 lib/silccore/silcpacket.h
8867                 lib/silcmath/silcmath.h
8868
8869 Fri Jun  1 22:19:37 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
8870
8871         * Added checking to the server code not to start the server if
8872           ciphers and stuff are not configured properly.  Affected files
8873           silcd/serverconfig.[h] and silcd/server.c.
8874
8875         * Changed the layout of the header files of the public interfaces
8876           in the SILC libraries.  The new layout supports ROBODoc
8877           documentation tool (and some others) so that it is easy to create
8878           a library reference manual.  All the other headers and source
8879           code must still follow the CodingStyle document.  Also source
8880           code must not include these ROBODoc stuffs, only the headers.
8881           Furthermore, all public interface headers must now be named
8882           by using `silc' prefix, example: silcapi.h, silccipher.h.
8883           Some files were renamed due to this.  All the other headers
8884           must not be used as public interfaces.  I will update the
8885           CodingStyle document later.  Changed following headers, so far:
8886
8887                 lib/silcclient/silcapi.h
8888                 lib/silccore/silcauth.h
8889                 lib/silccore/silcprivate.h
8890                 lib/silccrypt/silcdh.h
8891
8892 Fri Jun  1 10:28:09 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
8893
8894         * Updated TODO.
8895
8896         * Removed silc_client_packet_send_flush from the client library
8897           as it is not needed.  Affected file lib/silcclient/client.[ch].
8898
8899         * Added printing of message of unresolved authentication method
8900           to the Irssi SILC client.  Added it to the module formats.
8901           Removed the same message from the client library.
8902
8903 Thu May 31 13:57:33 CEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
8904
8905         * Added new distribution feature, DISTLABEL.  Every distribution
8906           can define own preprocessor label that can be used in the
8907           source code.  For example: #ifdef SILC_DIST_CLIENT.  Affected
8908           file distributions, acconfig.h.pre and prepare.
8909
8910 Tue May 29 22:16:40 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
8911
8912         * Added Makefile.defines_int to include the actual definitions
8913           for Makefile.defines.in.  Tested the new distribution system,
8914           created distributions and tested installation.
8915
8916         * Added AWAY message printing to the Irssi SILC client.  Added
8917           the messages to the irssi/src/fe-common/silc/module-formats.[ch].
8918
8919         * Added SCONNECT command to call the SILC's CONNECT command.
8920           Cannot use CONNECT directly since Irssi uses that internally.
8921           Affected file irssi/src/silc/core/silc-servers.c.
8922
8923           Added ACTION local command.  It is same as ME command but takes
8924           the channel as mandatory argument.
8925
8926           Rewrote some of the Irssi's help files to suite for SILC
8927           protocol.
8928
8929 Mon May 28 19:05:22 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
8930
8931         * Added Makefile.defines[.in] that should for now on be included
8932           in all Makefile.am file in the source tree.  That file includes
8933           all common compilation definitions for SILC source tree.
8934
8935 Mon May 28 10:30:51 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
8936
8937         * Minor changes to the ./prepare script to change the package
8938           name according the distribution name to the configure.in.
8939
8940 Sun May 27 22:24:57 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
8941
8942         * Created new distribution system.  Added file `distributions'
8943           that defines all the distributions that can be created out of
8944           the SILC source tree.  The ./prepare script now reads that
8945           file to determine how to prepare the distributions.  The
8946           first argument to the ./prepare is the name of the distribution
8947           and second is the version of the distribution.  If given
8948           without arguments it creates the default (toolkit) distribution
8949           with the default version (defined in ./prepare).
8950
8951           All Makefile.am files that are subject to the distributions
8952           are now named as Makefile.am.pre.  These are ./Makefile.am
8953           and lib/Makefile.am.  Others may be changed later.
8954
8955 Sun May 27 15:57:17 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
8956
8957         * Added invite list, ban list, some key management and connection
8958           error message printing to module formats in the Irssi SILC client.
8959
8960         * Added new silc_client_set_away_message to set the away message
8961           that is back to the person who sent private message.  The
8962           affected file lib/silcclient/silcapi.h and the
8963           lib/silcclient/client_prvmsg.c.
8964
8965 Sun May 27 12:39:48 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
8966
8967         * Fixed the private message sending in the Irssi SILC client,
8968           added local command KEY to the Irssi SILC client.
8969
8970           Added key management and key agreement message formats to the
8971           irssi/src/fe-common/silc/module-formats.[ch].
8972
8973           Added USERS (alias WHO) printing, server/router operator
8974           indication and LIST command printing to the module formats.
8975
8976 Sat May 26 17:43:42 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
8977
8978         * Fixed channel joining notify handling, cumode notify handling
8979           from Irssi SILC client.
8980
8981         * Added SILC specific module-formats to the Irssi SILC client so
8982           that SILC specific message hilighting, colors etc is possible.
8983           Affected file irssi/src/fe-common/silc/module-formats.[ch].
8984
8985           Added channel mode, channel user mode, actions, notices,
8986           whois and whowas printing to the the module-formats.c.
8987
8988         * Fixed a bug in channel deletion in the server.  The channel
8989           is not left to the cache even if the channel founder auth mode
8990           is set when there are no users anymore on the channel.  Affected
8991           file silcd/server.c.
8992
8993         * The silc_net_localhost now resolves the entire hostname including
8994           the domain name.  Affected file lib/silcutil/silcnet.c.
8995
8996 Sat May 26 12:13:37 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
8997
8998         * Changed the ask_passphrase client operation to be ascynchronous.
8999           It has now a completion callback and a context that the
9000           application must call after it has got the passphrase from
9001           the user.  Affected files lib/silcclient/silcapi.h,
9002           lib/silcclient/protocol.c, lib/silcclient/command.c and
9003           silc/client_ops.c.
9004
9005           Added SilcAskPassphrase callback that the application calls
9006           to deliver the passphrase to the library.
9007
9008         * Changed the SKE protocol's SilcSKEVerifyCb to be asynchronous.
9009           The public key verification and especially a certificate
9010           verification is asynchronous procedure.
9011
9012           Added new SILC_SKE_STATUS_PENDING status to indicate the
9013           request is pending and a callback will be called to finalize
9014           the request.
9015
9016           Added also SILC_SKE_STATUS_PUBLIC_KEY_NOT_PROVIDED status to
9017           indicate that remote end did not send its public key (or
9018           certificate), even though we require it.  Added check for this
9019           condition in the SKE.  This was a security bug, now fixed.
9020
9021           Defined new SilcSKEVerifyCbCompletion callback that is called
9022           when the verification process is completed.
9023
9024           The affected files lib/silcske/silcske_status.h and
9025           lib/silcske/silcske.[ch].
9026
9027         * Changed the verify_public_key client operation to be async
9028           as well.  Defined SilcVerifyPublicKey callback that is used to
9029           indicate the success of the public key verification process.
9030
9031           Changed the server and client to use the new async client
9032           operations.
9033
9034         * Changed the Irssi SILC client's internal scheduler to be called
9035           twice as many times as it used to be.  As a result the client
9036           should be a bit faster now.  Affected file is
9037           irssi/src/silc/core/silc-core.c.
9038
9039         * Added support to Irssi SILC client of asynchronous public key
9040           verification and passphrase inquiry.  Affected file is
9041           irssi/src/silc/core/silc-core.c.
9042
9043 Fri May 25 14:38:38 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9044
9045         * Do not say "You have left channel %s" in client library.
9046           Moved it to the application.  Affected files are
9047           lib/silcclient/command.c and silc/client_ops.c.
9048
9049         * Fixed silc_client_get_clients.  Command context was not
9050           duplicated and was freed memory in the callback.  Affected
9051           file lib/silcclient/idlist.c.
9052
9053         * Do not say "you are now talking..." on JOIN command in the
9054           client library.  The appliation must handle it.
9055
9056         * Do not say ".. changed topic to" in command reply in the
9057           client libary.  The application must handle it.
9058
9059         * Fixed TOPIC command sending in the client library.
9060
9061         * Fixed a memory leak in silc_client_command_free in the file
9062           lib/silcclient/command.c.
9063
9064 Thu May 24 19:08:55 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9065
9066         * Imported a modified version of Irssi client to the source tree.
9067           The Irssi will be used to create a new client called
9068           Irssi SILC.  Imported to irssi/.
9069
9070           Added silc_core_init_finish function to the Irssi.  Affected
9071           file irssi/configure.in.
9072
9073           A lot changes in the Makefile.ams around the irssi tree.
9074
9075 Tue May 22 22:23:49 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9076
9077         * Do not rehash if the new size is same as the old size of the
9078           hash table, in the silc_hash_table_rehash*.  The affected file
9079           lib/silcutil/silchashtable.c.
9080
9081         * Replaced hash_table_del_by_context calls from the server
9082           (when channel->user_list and client->channels) to the
9083           hash_table_del as it is sufficient and faster.
9084
9085 Tue May 22 17:27:16 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9086
9087         * Added silc_hash_table_list, silc_hash_table_get and the
9088           SilcHashTableList structure to provide an alternative way to
9089           traverse the hash table.  The affected files are
9090           lib/silcutil/silchashtable.[ch].
9091
9092         * Changed the server's idlist routines to use the hash table
9093           routines to optimize the code.
9094
9095 Mon May 21 21:46:20 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9096
9097         * Replaced the client entry's `channel' list and channel entry's
9098           `user_list' list to hash tables for optimized lookup.  Changed
9099           the code to use the hash table interface around the code.
9100           Affected file lib/silcd/idlist.[ch].
9101
9102         * Added `auto_rehash' boolean argument to the function
9103           silc_hash_table_alloc to indicate whether the hash table should
9104           auto-rehash when it thinks is appropriate time.  It will
9105           increase the hash table size if the there is twice as much
9106           entries in the table than the size of the table, and will
9107           decrease the size if there are twice as less entries than
9108           the size of the table.
9109
9110 Mon May 21 09:51:11 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9111
9112         * Fixed silc_xxx_get_supported to not crash at some circumstances.
9113
9114 Sun May 20 13:45:58 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9115
9116         * silc_idcache_purge_by_context deletes the entry now by context
9117           as it is supposed to do.  Affected file lib/silccore/idcache.c.
9118
9119         * Send the ERR_NO_SUCH_NICK in the WHOIS command reply if the
9120           client is not anymore valid (WHOWAS givens the info) and not
9121           the ERR_NO_SUCH_CLIENT_ID if the nickname still exists.
9122
9123 Sat May 19 16:30:03 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9124
9125         * Removed the `data' and `data_len' arguments from the ID Cache
9126           interfaces and added `name' argument.  ID Cache does not handle
9127           anymore the binary data only a names associated with given ID.
9128
9129         * When hashing a Client ID with silc_hash_id the entire ID is
9130           not hashed anymore, instead only the hash of the Client ID is
9131           hashed.  This way we can access the Client ID from the cache
9132           with Client ID but with the hash of the ID (which is a hash of
9133           the nickname) as well without any difference in performance.
9134
9135           Added also silc_idcache_find_by_id_one_ext to do one on one
9136           searching when we have the actual ID.  Added also function
9137           silc_hash_client_id_compare.  The affected files are
9138           lib/silccore/idcache.[ch] and lib/silcutil/silcutil.[ch].
9139
9140         * When hashing the name associated with a ID it is always done
9141           in lowercase.  This way we can access the cache without worrying
9142           about case-sensitivity, even though, for example nicknames are
9143           case sensitive.
9144
9145         * Fixed a bug in server with channel message sending.  It put
9146           wrong ID type as destination ID.  The affected file
9147           silcd/packet_send.c.
9148
9149         * silc_idcache_del_by_context now deletes from all hash tables
9150           by context.  Affected file lib/silccore/idcache.c.
9151
9152 Fri May 18 17:42:00 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9153
9154         * Changed the client library to use the new ID Cache interface.
9155           Changes around the source tree.
9156
9157         * Added silc_hash_table_rehash_ext to rehash with specific
9158           hash function.  Affected file lib/silcutil/silchashtable.[ch].
9159
9160         * Added silc_hash_string_compare to compare two strings in the
9161           hash table.  Affected file lib/silcutil/silcutil.[ch].
9162
9163 Fri May 18 11:18:45 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9164
9165         * Added new function silc_idcache_del_by_context into the
9166           lib/silccore/idcache.[ch].
9167
9168         * Changed the server's ID list routines to use the new ID Cache
9169           interface.  Changes around the source tree.
9170
9171 Fri May 18 08:35:31 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9172
9173         * Added silc_hash_table_del[_by_context]_ext functions in to the
9174           lib/silcutil/silchashtable.[ch].
9175
9176           Removed silc_hash_table_find_all* routines and added new
9177           silc_hash_table_find_foreach to replace them.
9178
9179           Added silc_hash_table_replace_ext function as extended
9180           replacing function.  Separated the simple hash table interface
9181           from the extended hash table interface in the file
9182           lib/silcutil/silchashtable.h.
9183
9184         * Fixed minor bugs and changed it to use some of the new
9185           hash table functions in lib/silccore/idcache.c
9186
9187 Thu May 17 18:15:12 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9188
9189         * Added new function silc_hash_table_find_all to return all keys
9190           in the hash table by the specified key.  As the hash table is
9191           collision resistant it also makes it possible to have several
9192           duplicate keys in the hash table.  This function may be used to
9193           find all of the keys from the hash.
9194
9195           Added user_context arguments to the SilcHashFunction,
9196           SilcHashCompare and SilcHashDestructor to deliver user specified
9197           context.
9198
9199           Added new fuctions silc_hash_table_find[_all]_ext to do
9200           extended lookup with specified hash and compare functions and
9201           specified user contexts.
9202
9203           Added new function silc_hash_table_add_ext to add the key
9204           with specified hash function and user context.
9205
9206           Added new function silc_hash_table_foreach to traverse all
9207           entrys in the hash table.  Added SilcHashForeach callback
9208           function.
9209
9210           Added new function silc_hash_table_del_by_context to delete
9211           the entry only if the context associated with the key matches.
9212
9213           Affected files are lib/silcutil/silchashtable.[ch].
9214
9215         * Removed silc_hash_[server/client/channel]_id and added just
9216           silc_hash_id to the lib/silcutil/silcutil.[ch].  Added also
9217           silc_hash_id_compare to compare two ID's using as the hash table
9218           comparison function.  Added also silc_hash_data to hash
9219           binary data and silc_hash_data_compare to compare it.
9220
9221         * Removed silc_idlist_find_client_by_hash as it is not needed
9222           anymore.  Affected file silcd/idlist.[ch].
9223
9224         * Rewrote the entire ID Cache system (in lib/silccore/idcache.[ch])
9225           to use internally the SilcHashTable.  The new ID Cache is a lot
9226           faster than the old one.  Some of the ID Cache interface was also
9227           rewritten and obsolete and stupid functions were removed.
9228
9229 Wed May 16 23:03:30 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9230
9231         * Added entry_count field to the SilcHashTable to keep the number
9232           of the entries in the table.  Implemented the function
9233           silc_hash_table_rehash.  Added new function
9234           silc_hash_table_count.  Affected file lib/silcutil/silchashtable.c.
9235
9236           Fixed a minor bug in silc_hash_table_free.
9237
9238         * Added silc_hash_string, silc_hash_uint, silc_hash_ptr,
9239           silc_hash_client_id, silc_hash_server_id and silc_hash_channel_id
9240           into the lib/silcutil/silcutil.[ch].
9241
9242 Wed May 16 20:02:47 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9243
9244         * Implemented a collision resistant hash table into the
9245           lib/silcutil/silchashtable[ch].  See the header and the source
9246           for the SilcHashTable API.
9247
9248 Tue May 15 22:05:46 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9249
9250         * Merged dotconf version 1.0.2 into lib/dotconf.
9251
9252 Sun May 13 19:32:09 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9253
9254         * Do not compile anything in lib/silcsim/* if the SIM support
9255           is not enabled.  The tree should now compile without problems
9256           under cygwin.
9257
9258 Thu May 10 22:49:51 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9259
9260         * Compiled the SILC under cygwin.  Compiled and tested briefly
9261           without problems.  More tests needed.  The SIMs didn't compile
9262           though.
9263
9264         * Added various #ifdef HAVE_* stuff to lib/silccrypt/silrng.c.
9265
9266         * Fixed possible crash in silc_get_username in the
9267           lib/silcutil/silcutil.c.
9268
9269 Tue May  8 09:04:03 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9270
9271         * Fixed a va_arg in silc/client_ops.c.
9272
9273         * Oops, RC5 routines were named AES and caused some problems
9274           when not using SIM's.  Affected file lib/silccrypt/rc5.c.
9275
9276 Sun May  6 13:59:48 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9277
9278         * Added new SilcIDIP structure into the lib/silccore/id.h and
9279           replaced the old `ip' fields from all SILC ID's to that type.
9280           This is a step towards IPv6 support.
9281
9282           The silc_id_get_len takes now the ID as an extra argument.
9283           The silc_id_id2str, silc_id_str2id and silc_id_dup now supports
9284           both IPv4 and IPv6 based ID's.
9285
9286           The affected files are lib/silccore/id.[ch] and other files
9287           around the tree using these routines.
9288
9289         * Removed the ID length arguments in server from various
9290           silc_server_send_notify_* routines -> they are not needed
9291           anymore.
9292
9293 Sat May  5 13:56:33 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9294
9295         * Fixed memory leak in silc_encode_pem_file in the file
9296           lib/silcutil/silcutil.c.
9297
9298 Thu May  3 21:23:50 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9299
9300         * Check minor version as well in the SKE.  Affected files are
9301           silcd/protocol.c and lib/silcclient/protocol.c.
9302
9303         * Added --identifier option to the server so that an identifier
9304           can be when creating the public key for the server.  Affected
9305           file is silcd/silcd.c.
9306
9307         * Fixed minor decoding bug in silc_pkcs_decode_identifier in
9308           lib/silccrypt/silcpkcs.c.
9309
9310 Wed May  2 20:50:49 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9311
9312         * Register default ciphers and stuff when using -C option with
9313           the server.  Affected file sildc/silcd.c.
9314
9315         * Put back the servers public key filename format, it is better
9316           than the new one.  For now, the client keys are saved with the
9317           new filename format.  The affected file silc/client_ops.c.
9318
9319         * Implemented the Cipher API for the rest of the ciphers that
9320           did not implement it or implemented it the wrong way.
9321
9322 Wed May  2 13:31:26 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9323
9324         * Register default ciphers and stuff when using the -S option
9325           in the client.  Affected file silc/silc.c.  Same also when
9326           creating new key pair with -C option.
9327
9328 Tue May  1 14:18:13 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9329
9330         * Fixed the silc_verify_public_key client operation function to
9331           save the public keys differently.  The fingerprint is now
9332           used as filename and not the hostname.  This way also the
9333           client keys are saved uniquely and not with hostnames.  The
9334           affected file is silc/client_ops.c.
9335
9336         * Trimmed the silc_hash_fingerprint function to remove extra
9337           whitespaces from the end of the fingerprint.  The affected
9338           file is lib/silccrypt/silchash.c.
9339
9340         * Updated TODO.
9341
9342         * Added silc_cipher_register_default function to register all
9343           default ciphers.  It can be used when configuration files
9344           does not exist and the application does not want any specific
9345           ciphers in any specific order.
9346
9347           The SilcDList is now used as silc_cipher_list dynamically
9348           allocated cipher list.  Removed the static list all together
9349           and now all ciphers must be allocated to the dynamic list.
9350           The silc_cipher_alloc routine was changed to check only the
9351           dynamic list.
9352
9353           All silc_cipher_* routines that used to return int returns
9354           now bool.
9355
9356           The affected files lib/silccrypt/silccrypt.[ch].
9357
9358         * The same thing was done to silc_hash_* as for silc_cipher_*
9359           routines.  Affected files lib/silccrypt/silchash.[ch].
9360
9361         * The same thing was done to silc_pkcs_* as for silc_cipher_*
9362           routines.  Affected files lib/silccrypt/silcpkcs.[ch].
9363           Added also silc_pkcs_[un]register[_default] functions.
9364           Removed the data_context from the PKCS API.
9365
9366         * Added silc_hmac_register_default function to register default
9367           hmacs.  Affected files lib/silccrypt/silchmac.[ch].  Added also
9368           SILC_ALL_HMACS macro that can be used with silc_hmac_unregister
9369           to unregister all hmacs at once.
9370
9371         * Register the default ciphers, hash functions, PKCSs and HMACs
9372           if client's configuration file does not exist.  The affected
9373           file silc/silc.c.
9374
9375         * The client did not load the hash functions from the SIM
9376           modules at all.  Added support for this.  Affected file is
9377           silc/clientconfig.c.
9378
9379         * When decoding public key with silc_pkcs_public_key_decode, check
9380           the supported algorithm only if PKCS are registered.  Affected
9381           file lib/silccrypt/silcpkcs.c.  The same was done with the
9382           silc_pkcs_private_key_decode.
9383
9384         * Fixed the SILC List routines to keep the list always in order.
9385           It used to change the list's order when traversing the list but
9386           not it preserves the order.  Affected file lib/trq/silclist.h.
9387
9388 Mon Apr 30 17:29:03 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9389
9390         * Added the client library to use the SilcSocketConnection's
9391           reference counter (by silc_socket_dup) to prevent the bug that
9392           the socket object may be freed underneath async operation.
9393
9394         * The name resolv library checking fixes in the configure.in.pre.
9395           The patch by salo.
9396
9397         * Created new version of the protocol drafts for future
9398           development. The -03 drafts are the ones that will be changed
9399           in the trunk now and the -02 will remain as they are.
9400
9401         * Send list of CUMODE notifys to the router when announcing
9402           the channel users to the router.  Affected file silcd/server.c.
9403           If the router receiving channel founder CUMODE for a channel
9404           that already has channel founder it will send CUMODE notify
9405           to the sender to remove the channel founder rights from the
9406           announced client.  Affected file silcd/packet_receive.c.
9407
9408         * The CUMODE notify may now use Server ID as well as the entity
9409           who changes the mode.  Updated protocool specs.
9410
9411         * Updated INSTALL and README files.
9412
9413 Sun Apr 29 23:17:50 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9414
9415         * New web pages in the http://silc.pspt.fi.  The pages was
9416           designed by salo.
9417
9418         * Updated CREDITS.
9419
9420 Sun Apr 29 13:33:41 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9421
9422         * Implemented the [DenyConnectin] config section in the server.
9423           Added silc_server_config_denied_conn to check whether incoming
9424           connection is denied.  Affected file silcd/serverconfig.[ch].
9425
9426         * Do not check the ports when checking the incoming configuration
9427           data if the port is 0, meaning any.  Affected file is
9428           silcd/serverconfig.c.
9429
9430 Fri Apr 20 18:58:43 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9431
9432         * Fixed buffer overflow in silc_string_compare in the file
9433           lib/silcutil/silcutil.c.
9434
9435         * Fixed double free in silc_server_command_leave in the file
9436           silcd/command.c.
9437
9438 Fri Apr 20 14:00:11 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9439
9440         * Fixed the version checking in the server.  Affected file is
9441           silcd/protocol.c.
9442
9443 Thu Apr 19 19:52:46 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9444
9445         * Fixed the configuration data fetching when accepting new
9446           connections in the server.  Affected file silcd/server.c.
9447
9448 Thu Apr 19 11:40:20 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9449
9450         * Added `sender_entry' argument to the function
9451           silc_server_packet_relay_to_channel so that we can check
9452           whether some destination actually belongs to the same route
9453           the sender belongs (ie, we must not resend the packet to the
9454           sender).  Affected file silcd/packet_send.[ch].
9455
9456         * Added `servername' field to the SilcClientEntry in the server
9457           to hold the name of the server where client is from.  Affected
9458           file is silcd/idlist.h.
9459
9460 Wed Apr 18 22:19:03 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9461
9462         * Moved the channel message encrypting in the router betwen
9463           router connections from silc_server_channel_message to the
9464           silc_server_packet_relay_to_channel since we want to check
9465           whether we have anybody channel before encrypting anything.
9466           Affected files silcd/packet_[receive/send].c.
9467
9468 Tue Apr 17 21:18:19 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9469
9470         * Fixed the [AdminConnection] server config section to support
9471           multiple entries.  Affected file silcd/serverconfig.c.
9472
9473         * Added support into the server to check the validity of the
9474           incoming connection before executing any KE or authentication
9475           protocols.
9476
9477         * The connection configuration is now saved to the KE and
9478           connection auth protocol contexts and not fetched anymore in
9479           the protocol.  Affected files silcd/server.c, silcd/protocol.[ch].
9480
9481         * The local hosts listenning address and port is also resolved
9482           now when starting the server.  We want to have the socket object
9483           to include the real address and port for the listener.  Added
9484           new function silc_net_check_local_by_sock into the files
9485           lib/silcutil/silcnet.[ch].
9486
9487         * Fixed a broadcast bug in server -> do not broadcast if we
9488           are standalone.
9489
9490         * Fixed a routing bug.  Do not route broadcast packets ever.
9491           Broadcast packets must be processed always and not routed since
9492           they may be destined to some other host than yourself and thus
9493           would get routed without no good reason.  Affected file is
9494           silcd/server.c.
9495
9496         * Added function silc_server_config_is_primary_route to check
9497           whether primary router connection has been configured (a router
9498           configuration that we are initiating).  If there is not, we
9499           will assume that there is only two routers in the SILC network
9500           and we will use the incoming router connection as our primary
9501           route.  Affected files silcd/serverconfig.[ch], silcd/server.c.
9502
9503         * Changed the order of the broadcasting.  Broadcast _after_ the
9504           packet has been processed not before.  Affected file is
9505           silcd/server.c.
9506
9507         * Fixed a [ClientConnection] parsing bug.  The port was never
9508           parsed correctly thus resulting to port 0.  Affected file
9509           silcd/serverconfig.c.
9510
9511         * Fixed silc_server_send_notify_args -> it ignored the `broadcast'
9512           argument and did not set the broadcast packet flag.  Affected
9513           file silcd/packet_send.c.  Fixed same bug in the function
9514           silc_server_send_notify as well.
9515
9516         * If we receive NEW_ID packet for our own ID in the server, ignore
9517           the packet.
9518
9519 Mon Apr 16 12:10:33 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9520
9521         * Updated TODO.
9522
9523         * Removed the nickname from the Private Message Payload.
9524           Updated the code and the protocol specs.
9525
9526         * Updated protocol specs for submitting to the IETF.
9527
9528         * Tweaked the Random Number Generator a bit.  Affected file
9529           lib/silccrypt/silcrng.c.  Exported a new function
9530           silc_rng_[global]_add_noise which can be used to add more
9531           noise to the RNG.
9532
9533 Sat Apr 14 16:21:32 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9534
9535         * Do not parse packets with different timeout when protocol
9536           is active -> may cause problem with rekey.  Affected file
9537           silcd/server.c.
9538
9539         * When server receives signoff notify it must not create
9540           new channel key if the client is on any channels since the
9541           sender of the signoff notify will create it.
9542
9543 Fri Apr 13 17:12:46 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9544
9545         * Added printing of error messages during SKE protocol from the
9546           failure packet sent by server during SKE.  Affected file
9547           silc/client_ops.c.
9548
9549         * Removed the client's failure_callback handling with timeout
9550           and handle it immediately when received.
9551
9552         * The SKE library returned wrong type in SUCCESS and FAILURE
9553           packets.  They must be 32 bit MSB not 16 bit MSB.
9554
9555 Fri Apr 13 00:09:08 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9556
9557         * Ok, rewrote the logic of the re-key and now it seems to work.
9558           I tested it on high traffic with frequent re-keys without
9559           problems.  Added hmac_receive (and renamed hmac to hmac_send)
9560           in SilcClientConnection in lib/silcclient/client.h and
9561           in SilcIDListData in silcd/idlist.h.  Also, removed the
9562           SilcPacketParserContext's cipher and hmac fields as they are
9563           not needed anymore and actually caused some problems when
9564           the ciphers and hmac's changed underneath the packet parser.
9565
9566 Thu Apr 12 14:42:51 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9567
9568         * If re-key protocol is active then process the incoming packets
9569           synchronously since we must assure that icoming packets encrypted
9570           with the old key is processed before the new keys is set to
9571           use.  This is true other packets than for REKEY packets.
9572           Affected file silcd/server.c.  The same was done to client library
9573           as well, affected file lib/silcclient/client.c.
9574
9575 Thu Apr 12 12:01:52 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9576
9577         * Fixed bug in client and server to accept the force send if
9578           the packet is send from silc_[server/client]_packet_process
9579           function.  Otherwise the packets are never delivered, oops.
9580
9581 Wed Apr 11 22:10:15 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9582
9583         * Disable force sending of packets when REKEY protocol is active.
9584           We must assure that no packet is sent directly when rekey is
9585           performed.  All packets must be sent through packet queue.
9586           Added macro SILC_SERVER_IS_REKEY to silcd/server.h and
9587           SILC_CLIENT_IS_REKEY to lib/silcclient/client.h.  Affected
9588           function is silc_[server/client]_packet_send_real to check
9589           the situation.
9590
9591         * Replaced the SIM paths from example config files to
9592           /usr/local/modules.  Also, make install creates now
9593           /usr/local/silc/logs directory to hold all the SILC server
9594           logs.
9595
9596 Wed Apr 11 16:59:59 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9597
9598         * Made the configure.in.pre work on Solaris.  Patch by salo.
9599
9600         * Made all ciphers compatible with non-x86 machines.  Defined
9601           CBC mode macros into lib/silccrypt/ciphers_def.h.
9602
9603 Tue Apr 10 20:32:44 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9604
9605         * Fixed the make install.
9606
9607 Tue Apr 10 16:20:34 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9608
9609         * When MAC computation fails the silc_packet_decrypt returned 0
9610           even though it was supposed to return -1.  Fixed this.  The
9611           affected file is lib/silccore/silcpacket.c.
9612
9613         * Do not replace the config files in /etc/silc (in make install)
9614           if they already exist.  Affected file ./Makefile.am.
9615
9616         * Do not send re-key packets immediately but through packet queue.
9617           Affected file silcd/protocol.c and lib/silcclient/protocol.c.
9618
9619         * Changed silc_net_check_host_by_sock to return FALSE if the
9620           IP/DNS could not be resolved.  Though, it returns the IP address
9621           now even if it could not resolve it (but returns also FALSE).
9622           Affected file lib/silcutil/silcnet.[ch].
9623
9624 Mon Apr  9 21:54:44 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9625
9626         * Added silc_pkcs_decode_identifier to decode the public key's
9627           identifier.  Affected file lib/silccrypt/silpkcs.[ch].
9628           Added also silc_pkcs_free_identifier.  Added also new context
9629           SilcPublicKeyIdentifier.
9630
9631         * Added -S option to the silc client.  It is used to dump the
9632           contents of the specified public key file.
9633
9634         * Changed the PKCS api to return the public key length when
9635           setting the public key.
9636
9637         * Fixed a fatal bug in the public and private key file loading.
9638           Affected file lib/silccrypt/silcpkcs.c.
9639
9640         * Execute the packet parsing for client with zero (0) timeout
9641           if the protocol is active.  Affected file silcd/server.c.
9642
9643 Sun Apr  8 19:30:56 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9644
9645         * Made the key generation options to the silcd program.  Added
9646           -C option, equivalent to client's option.
9647
9648         * Added new [ServerKeys] config section to the server.  It
9649           configures the server's public and private key.
9650
9651         * Defined generic Public Key Payload into the protocol
9652           specification to send specific type of public keys and
9653           certificates.
9654
9655         * Defined new command SILC_COMMAND_GETKEY to fetch a client's
9656           public key or certificate.
9657
9658         * Implemented the GETKEY command to the server and to the
9659           client library and on user interface.
9660
9661 Sun Apr  8 01:37:21 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9662
9663         * Made preliminary `make install' work.
9664
9665 Thu Apr  5 17:42:30 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9666
9667         * Added SilcServerRekey context into silcd/idlist.h.
9668
9669         * Added the PFS support as defined in the specification to the
9670           SKE protocol.  Affected files lib/silcske/*.c.
9671
9672         * Added `ske_group' field to the SilcServerRekey context to hold
9673           the number of the SKE group that is used with PFS in re-key.
9674           Affected file silcd/idlist.h.
9675
9676         * Added PFS re-key support to the server.  Affected file is
9677           silcd/protocol.c.
9678
9679         * Added silc_protocol_cancel to cancel execution of the next
9680           state of the protocol.  Affected file is
9681           lib/silccore/silcprotocol.[ch].
9682
9683         * Added the re-key support with and without PFS to the client
9684           library.  Re-key is performed once in an hour, by default.
9685
9686           Added new protocol type SILC_PROTOCOL_CLIENT_REKEY.
9687           Added silc_client_rekey_callback and silc_client_rekey_final.
9688           Affected files are lib/silcclient/protocol.[ch] and
9689           lib/silcclient/client.[ch].
9690
9691         * Removed the `hmac_key' and `hmac_key_len' fields from the
9692           SilcClientConnection structure; not needed.  Affected file is
9693           lib/silcclient/client.h.
9694
9695         * Updated TODO.
9696
9697 Wed Apr  4 16:32:31 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9698
9699         * Do not ask whether user wants to use the negotiated private key
9700           for private messages, just use it.  Affected file is
9701           silc/local_command.c.
9702
9703         * Added `send_enc_key' and `enc_key_len' fields to the
9704           SilcIDListData structure since they are needed in the re-key
9705           phase.  Affected file is silcd/idlist.[ch].
9706
9707         * Implemented the simple re-key protocol into the server.
9708           Affected files silcd/server.c and silcd/protocol.[ch].  The
9709           re-key will be performed once in an hour, by default.
9710
9711           Added new protocol type SILC_PROTOCOL_SERVER_REKEY.
9712           Added silc_server_rekey, silc_server_rekey_callback and
9713           silc_server_rekey_final.
9714
9715         * Removed Tunneled flag from the protocol.  Updated the code
9716           and the specifications.
9717
9718         * Adde `pfs' field to the SilcIDListData to indicate whether
9719           the PFS is to be performed in the re-key.  Affected file is
9720           silcd/idlist.h.
9721
9722 Tue Apr  3 21:52:42 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9723
9724         * Defined uint8, int8, uint16, int16, uint32, int32, uint64 and
9725           int64 of at least the xintXX size.  If void * is less that 4
9726           bytes uint32 * will be used.  Defined bool as boolean.
9727
9728         * Changed _ALL_ unsigned long and unsigned int to uint32,
9729           unsgined short to uint16 in the source tree.
9730
9731         * Fixed a fatal bug in silc_server_remove_clients_by_server.  Do
9732           not handle clients that has entry->data.registered == FALSE.
9733           They are not in the network anymore.  Affected file is
9734           silcd/server.c.
9735
9736 Tue Apr  3 16:39:19 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9737
9738         * Implemented the sending of the SERVER_SIGNOFF notify in the
9739           server.  Affected file is silcd/server.c.
9740
9741         * Added silc_server_send_notify_args into silcd/packet_send.[ch].
9742           Added also silc_notify_payload_encode_args into the
9743           lib/silccore/silcnotify.[ch].
9744
9745         * Implemented ther SERVER_SIGNOFF notify handling in the server.
9746           Affected file silcd/packet_receive.c.
9747
9748         * Implemented the SERVER_SIGNOFF notify handling in the client
9749           library.  Affected file lib/silcclient/client_notify.c.  Also,
9750           implemnted the printing of the SERVER_SIGNOFF info to the
9751           application.  Affected file silc/client_ops.c.
9752
9753         * The silc_idlist_del_server now returns TRUE or FALSE to indicate
9754           if the deleting was successful.  Affected file silcd/idlist.[ch].
9755
9756         * Added support for public key authentication in the connection
9757           authentication protocol in the client library.  Affected file
9758           lib/silcclient/protocol.c.
9759
9760         * Changed the server's silc_idlist_get_clients_by_* interface
9761           to support already allocated array so that new entries may be
9762           added to pre-allocated array.  Affected file silcd/idlist.[ch].
9763           This fixes some bugs with WHOIS, WHOWAS and IDENTIFY commands
9764           and command replies.
9765
9766         * All command reply functions in the server now calls the
9767           pending command callback even if error occured.  This way the
9768           error will be delivered to the client as well.  Affected files
9769           silcd/command.c and silcd/command_reply.c.
9770
9771         * Fixed INFO command to return local server's info if no server
9772           was provided.  Affected file lib/silcclient/command.c.
9773
9774         * Removed RESTART command for good.  Updated the code and the
9775           protocol specs.
9776
9777         * Rewrote parts of the task system.  It is a bit simpler now.
9778           Removed unsued task priorities. The affected files are
9779           lib/silcutil/silctask.[ch].
9780
9781 Mon Apr  2 20:02:33 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9782
9783         * Moved the USERS printing from the library to the application.
9784           Affected files lib/silcclient/command.c and silc/client_ops.c.
9785
9786 Mon Apr  2 13:13:23 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9787
9788         * Updated TODO.
9789
9790         * Added channel key re-key support.  The re-key is perfomed
9791           only by the router and is done once in an hour.  Added `rekey'
9792           field to the SilcChannelEntry in the server.  Affected files
9793           silcd/server.c and silcd/idlist.h.
9794
9795         * Added silc_task_unregister_by_context into the file
9796           lib/silcutil/silctask.[ch].
9797
9798 Sun Apr  1 19:49:34 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9799
9800         * Added SILC_UMODE_GONE mode to indicate when the client is not
9801           present in the SILC network.  Added also support to the local
9802           command AWAY that will set this mode.  Added support of showing
9803           "xxx is gone" in WHOIS command.  The USERS command shows the
9804           gone status as well.
9805
9806         * Fixed setting server and router operator privileges in the
9807           server's UMODE command.  Affected file silcd/command.c.
9808
9809         * Merged the SKE KE1 and KE2 payloads into one payload.  The
9810           new KE payload is equivalent to the old KE2 payload.
9811
9812           Cleaned up the SKE Start Payload parsing.  It now uses the
9813           simple buffer unformatting to do the parsing.  A lot faster
9814           now.
9815
9816           Added new Mutual Authentication flag (SILC_SKE_SP_FLAG_MUTUAL)
9817           to the SKE that is used to indicate whether both of the SKE
9818           parties should perform authentication.  By default only the
9819           responder performs authentication.  By setting this flag also
9820           the initiator must do authentication.  By default it is unset
9821           since in normal SKE case, client to server connection, only
9822           the responder should do authentication.  When doing SKE between
9823           two clients both should perform authentication.  Updated the
9824           code and the protocol specs.
9825
9826         * A little fix to IDENTIFY command in the server.  Search the
9827           client first by hash not nickname.  Affected file is
9828           silcd/command.c.
9829
9830         * Fixed the silc_client_close_connection to support closing
9831           the client to client connections wihtout deleting too much
9832           data.  Affected file lib/silcclient/client.c.
9833
9834         * Fixed a fatal bug in server and client; if KE1 or KE2 packets
9835           are received if protocol used to be active but is not anymore
9836           the application would crash due to NULL pointer dereference.
9837           Affected files silcd/server.c and lib/silcclient/client.c.
9838
9839         * Added `hash' field to the SilcClientConnection to include
9840           the hash function negotiated in the SKE protocol.
9841
9842         * Added new channel mode SILC_CMODE_FOUNDER_AUTH that is used
9843           to set the channel founder authentication data.  A client can
9844           claim the founder rights later by providing the authentication
9845           data to the CUMODE command using SILC_CUMODE_FOUNDER mode.
9846           This way the channel founder can regain the channel founder
9847           privileges even it is left the channel.  This works only on
9848           local server and the client must be connected to the same
9849           server to be able to regain the founder rights.  Updated the
9850           protocol specs accordingly.
9851
9852           Added support to the CMODE command in the client to set the
9853           founder auth data.  Read the README to see how to set it.
9854
9855           Added support to the CUMODE command to claim the founder
9856           rights.  Read the README to see how to do it.
9857
9858           Added support for the founder authentication to the Channel
9859           Entry in the server.  Affected file silcd/idlist.h.
9860
9861           Added support for the SILC_CMODE_FOUNDER_AUTH mode in the
9862           server's CMODE command.  Affected file silcd/command.c.
9863
9864         * Added the following new functions into lib/silccore/silcauth.[ch]:
9865           silc_auth_get_method and silc_auth_get_data.
9866
9867         * The server now saves the remote hosts public key to the
9868           SilcIDListData pointer.  Affected file silcd/protocol.c.
9869
9870         * The normal server now does not remove the channel entry from
9871           the cache if the founder authentication data is set.  It used
9872           to remove it if the founder was the last one on the channel on
9873           the server and left the channel.  The auth data is saved and
9874           if the channel is re-joined later the old entry is used with
9875           the old auth data.  Affected files silcd/command_reply.c and
9876           silcd/server.c.
9877
9878         * Removed the `pkcs' field from the SilcIDListData structure
9879           in the server; it is not used.  Affected file silcd/idlist.h.
9880
9881 Sat Mar 31 15:38:36 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9882
9883         * Fixed packet processing on slow links.  Partial packets were
9884           never re-processed because the incoming data buffer was cleared
9885           by the application.  Application must not directly clear the
9886           sock->inbuf, the packet processing routines handle it.  Fixed
9887           this in client library and in server.
9888
9889 Fri Mar 30 16:35:27 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9890
9891         * Fixed the WHOIS and IDENTIFY send reply function to really
9892           check whether to send list or just one entry.  Affected file
9893           silcd/command.c.
9894
9895         * Cleaned up the LEAVE command's channel key distribution.  The
9896           affected file silcd/command.c.
9897
9898         * Changed CMODE_CHANGE's <Client ID> to <ID Payload> as server
9899           can enforce the channel mode as well.  In that case the ID
9900           includes the ID of the server.  The code now enforces the
9901           mode change if the router have different mode than the server.
9902
9903         * The notify client operation with CMODE_CHANGE notify can now
9904           return NULL client_entry pointer if the CMODE was not changed
9905           by client.  Application must check for this.
9906
9907         * Added <Server ID> argument to INFO command to support server
9908           info fetching by Server ID.
9909
9910         * Added silc_server_announce_get_channel_users to get assembled
9911           packets of channel users of the specified channel.  Affected
9912           file silcd/server.[ch].
9913
9914         * Fixed bug in CHANNEL_CHANGE notify in the server.  The new ID
9915           was freed underneath the ID Cache.
9916
9917         * Re-announce clients when the server received CHANNEL_CHANGE
9918           notify from the router.  Affected file silcd/packet_send.c.
9919
9920 Thu Mar 29 19:10:28 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9921
9922         * Fixed a fatal bug when client does /join 1 2 3 4 5 6 the server
9923           crashed since it did not handle the fact that there is no cipher
9924           called "3" and didn't check the error condition.  Now fixed.
9925
9926         * Added SILC_MESSAGE_FLAG_REQUEST message flag as generic request
9927           flag.  It can be used to send message requests.
9928
9929 Thu Mar 29 12:26:25 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9930
9931         * Implemented the RESTART command in the client.
9932
9933         * Added SILC_MESSAGE_FLAG_NOTICE message flag for informational
9934           notice type messages.  Added notice printing to the user
9935           interface.
9936
9937         * The channel keys are not re-generated if the channel's mode
9938           is PRIVKEY, ie private key on the channel exists.  Affected
9939           files silcd/server.c and silcd/command.c.
9940
9941         * Fixed a little bug in channel message delivery when channel
9942           private keys are set in the server.  Affected file is
9943           silcd/packet_send.c.
9944
9945         * Changed the setting on channel->on_channel = TRUE from the
9946           silc_client_save_channel_key to the JOIN command reply.  The
9947           key payload is not received if the private channel key is set.
9948           Affected file lib/silcclient/command_reply.c and the
9949           lib/silcclient/client_channel.c.
9950
9951         * When the CMODE_CHANGE notify is sent and the channel private
9952           key mode is removed the channel key must be re-generated in
9953           other cells as well.  Added this support for the router in the
9954           silcd/packet_receive.c.
9955
9956         * Added new local command NOTICE to send notice message on
9957           channel.  Affected file silc/local_command.[ch].
9958
9959 Wed Mar 28 23:55:54 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9960
9961         * Added new local command ME to the client.  It is used to send
9962           message to a channel with SILC_MESSAGE_FLAG_ACTION to indicate
9963           some action.  Affected file silc/local_command.[ch].
9964
9965         * Changed channel_message and private_message client operations
9966           to deliver the message flags to the application.  Added also
9967           the `flags' arguments to the silc_client_send_channel_message
9968           and silc_client_send_private_message functions.  Affected file
9969           silcapi.h.
9970
9971 Wed Mar 28 20:50:47 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9972
9973         * Redefined the Private Message Payload to support private message
9974           keys and to support the new private message flags.  Updated
9975           the protocol specs.  Flags makes it possible to have for example
9976           CTCP style messages.
9977
9978         * Added new type SilcPrivateMessagePayload and defined an API
9979           for it in the lib/silcclient/silcprivate.[ch].
9980
9981         * Tested private message private keys successfully.  Tested the
9982           private message key set, unset and list commands with the new
9983           KEY command.
9984
9985         * Redefined the Channel Message Payload to include the channel
9986           message flags (equal with private message flags) to support
9987           for example CTCP style messages.
9988
9989         * Defined some of the message (for channel and private message)
9990           flags.  Updated the protocol specs and added the flags to the
9991           lib/silccore/silcchannel.h.  The type is SilcMessageFlags.
9992
9993 Wed Mar 28 15:52:36 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9994
9995         * Added SilcKeyAgreementStatus type to the key agreement routines
9996           to indicate the current status and error if one occured.
9997           The status types are defined in the lib/silcclient/silcapi.h.
9998
9999         * Added new local command KEY that is used to set and unset private
10000           keys for channels, set and unset private keys for private messages
10001           with remote clients and to send key agreement requests and
10002           negotiate the key agreement protocol with remote client.  The
10003           key agreement is supported only to negotiate private message keys,
10004           it currently cannot be used to negotiate private keys for channels,
10005           as it is not convenient for that purpose.
10006
10007         * Fixed a minor pending callback setting bug in the function
10008           silc_client_get_client_by_id_resolve, now the function works.
10009           Affected file lib/silcclient/idlist.c.
10010
10011         * Added function silc_net_get_local_port to get local bound
10012           port by socket.  Added to lib/silcutil/silcnet.[ch].
10013
10014         * Added `sockets' and `sockets_count' fields to the SilcClient
10015           object.  They hold the sockets of the listenning sockets in
10016           the client.  Listenning sockets may be for example the key
10017           agreement server.  Affected file lib/silcclient/client.[ch].
10018           Added functions the silc_client_add_socket and the
10019           silc_client_del_socket.  They are exported to the application
10020           as well.
10021
10022         * Added ~./silc/clientkeys to support other client's public keys.
10023
10024         * Renamed verify_server_key client operation to verify_public_key
10025           and added one argument to indicate the type of the connection
10026           (server, client etc.).
10027
10028 Tue Mar 27 22:22:38 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
10029
10030         * Added silc_server_connection_auth_request to handle the
10031           incoming CONNECTION_AUTH_REQUEST packet.  Affected file is
10032           silcd/packet_receive.[ch].
10033
10034         * Added silc_server_send_connection_auth_request into the
10035           silcd/packet_send.c to send the connection auth request packet.
10036
10037         * Cleaned up the silcd/protocol.c a bit and fixed some memory
10038           leaks.
10039
10040         * Fixed the public key authentication in responder side in the
10041           server.  The `auth_data' pointer includes the SilcPublicKey
10042           not the path to the public key.  Affected file silcd/protocol.c.
10043
10044         * Implemented the public key authentication in the initiator side
10045           in the server.  Affected file silcd/protocol.c.
10046
10047         * Removed the [RedirectClient] config section from the server
10048           configuration.  Is not needed and I don't want to implement it.
10049
10050 Tue Mar 27 12:49:56 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
10051
10052         * Cleaned up the CMODE command in the server.  It now works
10053           correctly and supports all the modes defined in the protocol.
10054           Affected file is silcd/command.c.
10055
10056         * Added `hmac_name' field to the SilcChannelEntry in the server
10057           to hold the default HMAC of the channel.  It can be set when
10058           creating the channel (with JOIN command).  Affected files
10059           silcd/idlist.[ch].
10060
10061         * Added <cipher> and <hmac> argument to the CMODE_CHANGE notify
10062           type to indicate the change of the current cipher and hmac
10063           on the channel.  Client can safely ignore the <cipher> argument
10064           (if it chooses to do so) since the CHANNEL_KEY packet will
10065           force the channel key change anyway.  The <hmac> argument is
10066           important since the client is responsible of setting the new
10067           HMAC and the hmac key into use.
10068
10069         * Fixed the CMODE command in the client library as well.
10070
10071         * Tested CMODE command in router environment successfully.
10072
10073 Mon Mar 26 14:39:48 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
10074
10075         * Show the version of the remote client (or server) when connecting
10076           to the server.  It is logged to the log file.  Affected file
10077           is silcd/protocol.c.
10078
10079         * Fixed the KILLED notify handling in the client library.  The
10080           client must be removed from all channels when receiving the
10081           KILLED notify.
10082
10083           Also, do not remove the client entry when giving the KILL
10084           command but when the KILLED notify is received.
10085
10086         * Removed silc_idlist_find_client_by_nickname from the server.
10087           Not needed anymore.  Affected files silcd/idlist.[ch].
10088
10089         * Implemented the CHANNEL_CHANGE notify type handling to the
10090           server.  Affected file silcd/server.c.
10091
10092         * Updated TODO.
10093
10094 Mon Mar 26 12:11:14 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
10095
10096         * Added silc_server_send_notify_invite to send the INVITE
10097           notify between routers.
10098
10099         * Implemented the INVITE command correctly to the server.
10100
10101         * Implemented the INVITE notify type handling in the server.
10102
10103         * Implemented the INVITE command to the client library and on the
10104           user interface.
10105
10106 Sun Mar 25 20:27:09 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
10107
10108         * Added function silc_server_get_client_resolve to find the
10109           client entry by ID from all ID lists and then resolve it
10110           (using WHOIS) if it cannot be found.  Affected file is
10111           silcd/server.[ch].
10112
10113 Sun Mar 25 13:52:51 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
10114
10115         * Implemented the BAN command to the client library.
10116
10117         * The JOIN command in the server now checks the invite list
10118           and the ban list.
10119
10120         * Changed the silc_command_reply_payload_encode_va and the
10121           silc_command_payload_encode_va to support that if argument is
10122           NULL it ignores and checks the next argument.  Affected file
10123           lib/silccore/silccommand.c.
10124
10125         * Added silc_server_send_notify_ban to send the BAN notify
10126           type between routers.
10127
10128         * Chaned the silc_notify_payload_encode to support that if
10129           argument is NULL it ignores and checks the next argument.
10130           Affected file lib/silccore/silcnotify.c.
10131
10132         * Tested ban lists in router environment successfully.
10133
10134 Sat Mar 24 14:47:25 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
10135
10136         * Implemented BAN command to the server, in silcd/command.[ch].
10137
10138         * Removed the BAN and INVITE_LIST modes from the CMODE command
10139           in the server code.
10140
10141         * Added function silc_string_match to regex match two strings.
10142           Affected files lib/silcutil/silcutil.[ch].
10143
10144 Fri Mar 23 22:02:40 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
10145
10146         * Redefined parts of the SilcChannelEntry in the server to support
10147           the new ban and invite lists.
10148
10149 Fri Mar 23 16:25:11 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
10150
10151         * Redefined the INVITE command.  The same command can be used to
10152           invite individuals to the channel but also to manage the invite
10153           list of the channel (to add to and remove from the invite list).
10154           Updated the protocol specs.
10155
10156         * Added new command SILC_COMMAND_BAN that can be used to manage
10157           the ban list of the channel.  Updated the protocol specs.
10158
10159         * Removed the channel modes: the SILC_CMODE_BAN and the
10160           SILC_CMODE_INVITE_LIST as they were a bit kludge to be included
10161           in the CMODE command.  The equivalent features are now available
10162           using INVITE and BAN commands.  Updated the protocol specs.
10163
10164         * Added new SILC_NOTIFY_TYPE_BAN notify type to notify routers
10165           in the network about change in the current ban list.  The notify
10166           type is not used by the client.
10167
10168         * Redefined parts of the SILC_NOTIFY_TYPE_INVITE command to
10169           support the invite lists.
10170
10171 Thu Mar 22 22:52:23 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
10172
10173         * Added new function silc_string_regexify that converts string
10174           including wildcard characters into regex string that can
10175           be used by the GNU regex library.  Added into the file
10176           lib/silcutil/silcutil.[ch].
10177
10178           Added silc_string_regex_combine to combine to regex strings
10179           into one so that they can be used as one regex string by
10180           the GNU regex library.  Added into the file
10181           lib/silcutil/silcutil.[ch].
10182
10183           Added silc_string_regex_match to match two strings.  It returns
10184           TRUE if the strings match.  Added into lib/silcutil/silcutil.[ch].
10185
10186 Thu Mar 22 15:29:42 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
10187
10188         * Imported GNU regex to the soruce tree into lib/contrib.
10189           Fixed some compiler warning from the regex.c.
10190
10191 Wed Mar 21 15:27:58 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
10192
10193         * Fixed MOTD command in the server to work in router environment.
10194
10195         * Fixed the MOTD command in the client library to support
10196           the server argument in the command.
10197
10198         * Added `nickname_len' argument to the silc_idlist_add_client
10199           in the server, as the `nickname' argument may be binary data
10200           (it may be hash).
10201
10202         * Added silc_idlist_get_channels to return all channels from
10203           the ID list.
10204
10205         * Implemented LIST command to the server.  Affected file is
10206           silcd/command.c.
10207
10208         * Implemented the LIST command to the client library and on the
10209           user interface.
10210
10211         * Added [<user count>] argument to the LIST command reply.
10212           With private channels the user count is not shown.
10213
10214         * Updated TODO and README.
10215
10216 Tue Mar 20 21:05:57 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
10217
10218         * The client entry's data.registered must be TRUE even with
10219           global client entry on global client list.  The data.registered
10220           is used to check whether the client is anymore in the network,
10221           for example with WHOWAS command so it must be valid.
10222
10223         * Fixed the WHOWAS command in the server.  It now actually works
10224           in router environment.  Added function into silcd/command_reply.c
10225           silc_server_command_reply_whowas_save.
10226
10227         * Added silc_idlist_purge function to the silcd/idlist.c
10228           to periodically purge the ID Cache.
10229
10230         * Fixed INFO command in the server.  It works now in router
10231           environment.  Added <server name> argument to the INFO command
10232           reply.  Updated the protocol specs.
10233
10234         * Fixed minor bug in silc_idcache_purge to not purge if the
10235           expire value is zero.
10236
10237         * Fixed various bugs in WHOIS and IDENTIFY command handling as
10238           they were buggy because of the WHOWAS information.
10239
10240         * Fixed local command MSG to handle the async resolving of
10241           the remote client properly.  It used to fail the first MSG.
10242           Affected file silc/local_command.c.
10243
10244         * Added `data_len' field to SilcIDCache context.
10245
10246 Tue Mar 20 16:29:00 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
10247
10248         * Update TODO.  Todo in commands in the server.
10249
10250 Tue Mar 20 15:45:14 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
10251
10252         * Added new notify type SILC_NOTIFY_TYPE_UMODE_CHANGE that is
10253           used by routers as broadcast packet to inform other routers
10254           about the changed user mode.
10255
10256           Implemented the notify handling in the server.  Affected file is
10257           silcd/packet_receive.c.  Added the function
10258           silc_server_send_notify_umode to the silcd/packet_send.[ch].
10259
10260         * Added new generic Channel Payload and deprecated the New Channel
10261           Payload.  The New Channel Payload is now the generic Channel
10262           Payload.
10263
10264         * Added new argument `mode' to the silc_server_send_new_channel
10265           as it is required in the Channel Payload now.
10266
10267         * Renamed the SilcChannelPayload to SilcChannelMessagePayload
10268           and created a new and real SilChannelPayload to represent the
10269           new generic Channel Payload.  Implemented the encode/decode
10270           for Channel Payload.  Affected file lib/silccore/silcchannel.[ch].
10271
10272         * Added silc_server_get_client_channel_list to return the list
10273           of channels the client has joined for WHOIS command reply.
10274           Affected file silcd/server.[ch].
10275
10276         * Implemented the channel list sending in the WHOIS command reply
10277           in server and in the client.
10278
10279           Implemented the channel list displaying on the user interface
10280           as well.  Affected file silc/client_ops.c.
10281
10282         * Added silc_channel_payload_parse_list to parse list of Channel
10283           Payloads.  It returns SilcDList list of SilcChannelPayloads.
10284           Client for example can use this function to parse the list of
10285           channels it receives in the WHOIS command reply.  The caller
10286           must free the list by calling silc_channel_payload_list_free.
10287           Affected files lib/silccore/silcchannel.[ch].
10288
10289 Mon Mar 19 21:39:15 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
10290
10291         * Added one new argument <user mode> to the WHOIS command reply
10292           to return the mode of the user in SILC.  Updated the protocol
10293           specs.
10294
10295           Implemented it to the server and client.
10296
10297 Mon Mar 19 18:43:06 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
10298
10299         * Fixed the mode printing on the user interface on joining.
10300           Affected file silc/client_ops.c.
10301
10302         * Implemented the UMODE command and user modes in general to the
10303           client library and to the user interface.
10304
10305         * Implemented the UMODE command to the server.
10306
10307         * The server now sends UNKNOWN_COMMAND error status if client sends
10308           unknown command.  Affected file silcd/command.c.
10309
10310         * All server commands now handle the command identifier the right
10311           way when sending the command reply to the client.  The client can
10312           use to identify the command replies with the identifier.
10313
10314 Mon Mar 19 16:13:07 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
10315
10316         * Added silc_server_get_client_route to resolve the route to
10317           the client indicated by the client ID.  Affected file is
10318           silcd/server.[ch].
10319
10320         * Added silc_server_relay_packet as general function to relay
10321           packet to arbitrary destination.  This deprecates functions
10322           like _send_private_message_key, _relay_notify etc.  Affected
10323           file is silcd/packet_send.[ch].
10324
10325           Removed silc_server_send_key_agreement,
10326           silc_server_send_private_message_key and
10327           silc_server_packet_relay_notify functions from the file
10328           silcd/packet_send.[ch].
10329
10330         * Updated TODO.
10331
10332         * Implemented the SILC_NOTIFY_TYPE_KILLED notify handling in the
10333           server.  Affected file silcd/packet_receive.[ch].
10334
10335         * Implemented the KILL command to the client.  Implemented the
10336           SILC_NOTIFY_TYPE_KILLED notify handling in the client library.
10337           Affected files lib/silcclient/command[_reply].c and
10338           lib/silcclient/client_notify.c.  Implemented the KILL notify
10339           printing in the user inteface.
10340
10341         * Fixed a lot silc_parse_nick memory leaks from the client
10342           library in the file lib/silcclient/command.c.
10343
10344         * Changed the silc_server_send_notify_on_channels's `sender'
10345           argument from SilcSocketConnection to SilcClientEntry to
10346           check the sender as entry and not as connection object and not
10347           to send to the client provided as argument.  The affected file
10348           is silcd/packet_send.[ch].
10349
10350         * The notify packets that are destined directly to the client used
10351           to not to be processed by the server.  Now changed that and the
10352           server processes all notify packets.  After relaying the packet
10353           to the client the notify packet is processed in the server.
10354
10355         * The silc_server_free_client_data now checks whether there is
10356           pending outgoing traffic for the client and purges the data to
10357           the network before removing the client entry.
10358
10359 Sun Mar 18 21:02:47 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
10360
10361         * Added SILC_NOTIFY_TYPE_KILLED notify type.  It is sent when
10362           an client is killed from the SILC Network.  Updated the protocol
10363           specs accordingly.
10364
10365           Added new function silc_server_send_notify_killed to the
10366           silcd/packet_send.[ch].
10367
10368         * Added function silc_server_packet_relay_notify to relay notify
10369           packets that are destined directly to a client.  In this case
10370           the server does not process the notify packets but merely relays
10371           it to the client.  Affected file silcd/packet_send.[ch].
10372
10373           Added also silc_server_packet_process_relay_notify to check
10374           whereto relay the notify.  Affected file is
10375           silcd/packet_receive.[ch].
10376
10377         * Implemented the KILL command to the server.
10378
10379         * Updated TODO.
10380
10381         * Added the backup schema desgined last fall to the protocol
10382           specs for everyone to see.  The specification is in the
10383           *-spec-xx.txt draft and the packet type definitions for the
10384           backup routers is in *-pp-xx.txt draft.  Thusly, added also
10385           new packet type SILC_PACKET_CELL_ROUTERS.
10386
10387         * A big security problem in the implementation discovered.  The
10388           signoff of an client did not cause new channel key generation
10389           which it of course should've done.  The channel keys must be
10390           always re-generated when client leaves (or signoffs) the channel.
10391           The silc_server_remove_from_channels funtion now handles
10392           the channel key re-generation.
10393
10394         * Added `sender' argument to the silc_server_send_notify_on_channels
10395           to not to send the client provided as argument.  Affected file
10396           silcd/packet_send.[ch].
10397
10398 Fri Mar 16 15:52:49 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
10399
10400         * Implemented OPER and SILCOPER commands into the server and
10401           the client library.
10402
10403         * Added silc_auth_verify and silc_auth_verify_data to verify
10404           the authentication directly from the authentication payload.
10405           It supports verifying both passphrase and public key based
10406           authentication.  Affected file lib/silccore/silcauth.[ch].
10407
10408         * Added `hash' field to the SilcIDListData structure.  It is the
10409           hash negotiated in the SKE protocol.  Affected file is
10410           silcd/idlist.[ch].
10411
10412         * Slight redesigning of the SilcAuthPayload handling routines.
10413           Do not send SilcPKCS but SilcPublicKey as argument.
10414
10415         * Implemented the public key authentication support to the
10416           serverconfig.  The public key is loaded from the provided path
10417           and saved as authentication data to void * pointer.  Thus,
10418           changed the unsigned char *auth_data to void *auth_data;
10419
10420         * Fixed SHUTDOWN command to send the reply before the server
10421           is shutdown. :)  Affected file silcd/command.c.
10422
10423         * Fixed fatal bug in CONNECT command.  The hostname was invalid
10424           memory and server crashed.  Affected file silcd/command.c.
10425
10426         * Fixed fatal bug in CLOSE command.  The server_entry became
10427           invalid but was referenced later in the command.  Affected file
10428           silcd/command.c.
10429
10430 Thu Mar 15 12:46:58 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
10431
10432         * Fixed fatal bug in failure packet handling.  Server ignored
10433           the failure and thus crashed when it came.
10434
10435         * Updated TODO.
10436
10437 Wed Mar 14 20:37:35 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
10438
10439         * Added new SILC_CF_LAG_STRICT command flag that strictly forces
10440           that the command may be executed only once in (about) 2 seconds.
10441           The old SILC_CF_LAG flag is same but allows command bursts up
10442           to five before limiting.
10443
10444           Added the support for CF_LAG and CF_LAG_STRICT flags to the
10445           server code.  Various commands now includes the CF_LAG_STRICT
10446           flag to disallow any kind of miss-use of the command.
10447
10448         * Fixed the silc_buffer_unformat to not to allocate any data
10449           if the length of the data is zero.  It used to allocate the
10450           length + 1.  Affected file lib/silcutil/silcbuffmt.c.
10451
10452 Wed Mar 14 16:10:30 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
10453
10454         * Changed the format of AdminConnection configuration section
10455           in the server.  Added username of the admin to the format.
10456           Affected files silcd/serverconfig.[ch].
10457
10458           Added silc_server_config_find_admin into silcd/serverconfig.[ch]
10459           to return admin configuration data by host, username and/or
10460           nickname.
10461
10462 Wed Mar 14 13:18:16 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
10463
10464         * Implemented WHOWAS command to the server.  Added the functions:
10465
10466           silc_server_command_whowas_parse,
10467           silc_server_command_whowas_send_reply,
10468           silc_server_command_whowas_from_client and
10469           silc_server_command_whowas_from_server
10470
10471         * Added <Client ID> argument to the WHOWAS command reply.  Updated
10472           the protocol specs accordingly.
10473
10474         * Implemented WHOWAS command and command_reply to the client
10475           library.
10476
10477           Implemented the WHOWAS printing on the user interface.
10478
10479 Tue Mar 13 22:17:34 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
10480
10481         * Added new argument to the WHOWAS command reply, the real name.
10482           It is an optional argument.  Updated the protocol specs.
10483
10484         * Added SilcIDCacheDestructor callback that is registered when
10485           the SilcIDCache is allocated.  The callback is called when
10486           an cache entry in the ID Cache expires, or is purged from the
10487           cache.  Added into lib/silccore/idcache.[ch].
10488
10489           Added silc_idlist_client_destructor to the silcd/idlist.[ch]
10490           to destruct the client entries when the cache entry expires.
10491           Other ID Cache's in server and in the client library ignores
10492           the destructor.
10493
10494         * If the ID Cache entry's `expire' field is zero then the entry
10495           never expires.  Added boolean `expire' argument to the
10496           silc_idcache_add function in the lib/silccore/idcache.[ch].
10497           If it is TRUE the default expiry value is used.
10498
10499         * Added silc_server_free_client_data_timeout that is registered
10500           when client disconnects.  By default for 5 minutes we preserve
10501           the client entry for history - for WHOWAS command.
10502
10503 Tue Mar 13 13:26:18 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
10504
10505         * Added support to the server to enforce that commands are not
10506           executed more than once in 2 seconds.  If server receives
10507           commands from client more frequently, timeout is registered
10508           to process the commands.  Affected file silcd/command.c.
10509           Added new function silc_server_command_process_timeout.
10510
10511         * Changed NICK_NOTIFY handling in client library to check that
10512           if the client's nickname was changed, so there is no need to
10513           resolve anything from the server.
10514
10515         * Removed error printing from the WHOIS and IDENTIFY commands.
10516           If error occurs then it is ignored silently in the client library.
10517           The application, however, may map the received error to
10518           human readable error string.  The application currently maps
10519           the NO_SUCH_NICKNAME error to string.
10520
10521         * Made the command status message public to the application.  Moved
10522           them from lib/silcclient/command_reply.c to
10523           lib/silcclient/command_reply.h.  The application can map the
10524           received command status to the string with the
10525           silc_client_command_status_message function.
10526
10527         * Added check to the server to check that client's ID is same
10528           as the Source ID in the packet the client sent.  They must
10529           match.
10530
10531 Tue Mar 13 12:49:21 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
10532
10533         * Added dist-bzip hook to the Makefile.am to make bzip2
10534           compressed distributions.
10535
10536 Mon Mar 12 18:43:38 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
10537
10538         * Server now enforces the maximum length for the nickname and
10539           the channel as protocol specification dictates.  128 bytes for
10540           nickname and 256 bytes for channel name.
10541
10542         * Moved the WHOIS printing to the application.  The client libary
10543           does not print out the WHOIS information anymore, the application
10544           must do it.  Renamed silc_client_command_reply_whois_print to
10545           the silc_client_command_reply_whois_save.
10546
10547           The client's idle time is also sent to the application now, and
10548           the idle is shown on screen.
10549
10550         * Added silc_client_command_reply_identify_save to save the
10551           received IDENTIFY entries.
10552
10553         * Do not check for channel private keys in message sending and
10554           reception if the channel does not have the PRIVKEY mode set.
10555           Affected file lib/silclient/client_channel.c.
10556
10557 Sun Mar 11 20:25:06 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
10558
10559         * Fixed a minor bug if WHOIS and IDENTIFY command parsing that
10560           just surfaced after chaning the JOIN procedure.
10561
10562 Sun Mar 11 14:59:05 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
10563
10564         * Added silc_client_get_clients_by_list to get client entries
10565           from Client ID list, that is returned for example by JOIN
10566           and USERS command replies.  The application should use this
10567           function for example when JOIN command reply is received to
10568           resolve the clients already on the channel (library does not
10569           do that anymore as USERS command reply is not used in the JOIN
10570           procedure anymore).  Affected files lib/silcclient/silcapi.h and
10571           lib/silcclient/idlist.c.
10572
10573         * JOIN command reply and USERS command reply returns now SilcBuffer
10574           pointers instead of unsigned char pointers when returning
10575           the client list and mode list.
10576
10577         * Added <Client ID> argument to the JOIN command reply, mainly
10578           for the server to identify for which client the command was
10579           originally sent.  Updated protocol specs accordingly.
10580
10581         * Added SilcDlist private_key pointer to the SilcChannelEntry
10582           in the client to support the channel private keys.  Affected
10583           file is lib/silcclient/idlist.h.
10584
10585         * Added SilcChannelPrivateKey argument to the function
10586           silc_client_send_channel_message so that application can choose
10587           to use specific private ke if it wants to.  If it is not provided,
10588           the normal channel key is used, unless private keys are set.
10589           In this case the first (key that was added first) is used
10590           as the encryption key.
10591
10592         * Implemented the support for channel private key handling.
10593           Implemented the following functions:
10594
10595           silc_client_add_channel_private_key,
10596           silc_client_del_channel_private_keys,
10597           silc_client_del_channel_private_key,
10598           silc_client_list_channel_private_keys and
10599           silc_client_free_channel_private_keys
10600
10601           Affected file lib/silcclient/client_channel.c.
10602
10603         * Added the support for the private keys in the channel message
10604           sending and encryption and in the message reception and
10605           decryption.  Affected funtions are
10606           silc_client_send_channel_message and silc_client_channel_message.
10607
10608 Sat Mar 10 21:36:22 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
10609
10610         * Added SKE's key verify callback to the client library's
10611           KE protocol context. Affected files lib/silcclient/protocol.[ch].
10612
10613         * Removed the statement that server (or router) must send USERS
10614           command reply when joining to the channel so that the client
10615           knows who are on the channel.  Instead, the client list and
10616           client's mode list is now sent in the JOIN command reply to the
10617           client who joined channel.  This is better solution.
10618
10619         * Added function silc_server_get_users_on_channel and function
10620           silc_server_save_users_on_channel to the silcd/server.[ch].
10621
10622         * Removed function silc_server_command_send_users from the
10623           silcd/command.c.
10624
10625         * Do not show topic on the client library anymore.  The topic is
10626           sent in the command reply notify to the application and the
10627           application must show the topic now.
10628
10629 Sat Mar 10 00:07:37 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
10630
10631         * Added client searching by nickname hash into the IDENTIFY and
10632           WHOIS commands in the server as they were clearly missing from
10633           them.  Affected file is silcd/command.c.
10634
10635         * Fixed a bug in private message receiving in the client library.
10636           The remote ID was freed and it wasn't supposed, now it is
10637           duplicated.
10638
10639 Fri Mar  9 12:40:42 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
10640
10641         * Minor fix to the channel payload; allocate the data area, as it
10642           needs to be of specific length.
10643
10644         * If the key agreement port is zero then the operating
10645           system will define the bound port.  Affected files are
10646           lib/silcclient/silcapi.h and lib/silcclient/client_keyagr.c.
10647
10648         * Added new function silc_channel_payload_decrypt into the file
10649           lib/silccore/silcchannel.[ch].
10650
10651         * Moved the channel message etc, check from silc_packet_decrypt
10652           to applications.  The library calls now a generic
10653           SilcPacketCheckDecrypt callback which is to return TRUE or FALSE
10654           when the packet is either normal or special.  This was done to
10655           allow more wide range of checking that was not allowed when
10656           the code was in library.  Now applications can do virtually any
10657           checks to the packet and return to the library the decision how
10658           the packet should be processed.  Affected files are
10659           lib/silccore/silcpacket.[ch].
10660
10661           Added silc_server_packet_decrypt_check to the server and
10662           silc_client_packet_decrypt_check to the client library.
10663
10664         * Added silc_server_packet_send_srcdest into silcd/packet_send.[ch]
10665           to send with specified source and destination information.
10666
10667         * Channel message delivery between routers was broken after the
10668           channel key distribution was fixed earlier.  The channel key
10669           was used be to distributed to other routers as well which is not
10670           allowed by the protocol.  Now this is fixed and channel keys
10671           really are cell specific and the channel message delivery between
10672           routers comply with the protocol specification.
10673
10674         * Fixed various commands in server to check also the global list
10675           for the channel entry and not just the local list.  The affected
10676           file silcd/command.c.
10677
10678 Thu Mar  8 21:39:03 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
10679
10680         * Added assert()s to buffer formatting and unformatting routines
10681           to assert (if --enable-debug) when error occurs.  Affected
10682           file: lib/silcutil/silcbuffmt.c.
10683
10684         * Changed to auto-reconnect to check whether the remote host is
10685           router and register the re-connect timeout if it is.  It used
10686           to check that whether we are normal server, but router must do
10687           auto-reconnect with another router as well.  Affected file
10688           silcd/server.c.
10689
10690         * Removed the [<key len>] option from CMODE command as the cipher
10691           name decides the key length, nowadays.  See the defined ciphers
10692           from the protocol specification.
10693
10694         * Added [<hmac>] option to the CMODE command to define the HMAC
10695           for the channel.  Added SILC_CMODE_HMAC channel mode.
10696
10697         * Added [<hmac>] option for the JOIN command so that user can
10698           select which HMAC is used to compute the MACs of the channel
10699           messages.
10700
10701         * Added Hmac field to the Channel Message Payload.  The integrity
10702           of plaintext channel messages are now protected by computing
10703           MAC of the message and attaching the MAC to the payload.  The
10704           MAC is encrypted.  Now, it is clear that this causes some
10705           overhead to the size of the packet but rationale for this is that
10706           now the receiver can verify whether the channel message decrypted
10707           correctly and also when private keys are set for the channel the
10708           receiver can decrypt the packet with several keys and check from
10709           the MAC which key decrypted the message correctly.
10710
10711         * Added silc_cipher_encrypt and silc_cipher_decrypt into the
10712           lib/silccrypt/silccipher.[ch].
10713
10714         * Added silc_hash_len to return the digest length into the
10715           lib/silcrypt/silchash.[ch].
10716
10717         * Rewrote parts of Silc Channel Payload interface in the
10718           lib/silccore/silcchannel.[ch].  The encode function now also
10719           encrypts the packet and parse function decrypts it.
10720
10721 Wed Mar  7 20:58:50 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
10722
10723         * Fixed a minor formatting bug in the SKE's key material processing.
10724           It actually might have processed the keys wrong way resulting
10725           into wrong keys.
10726
10727         * Redefined the mandatory HMAC algorithms and added new algorithms.
10728           Added hmac-sha1-96 and hmac-md5-96 which are normal hmac-sha1
10729           and hmac-md5 truncated to 96 bits.  The mandatory is now
10730           hmac-sha1-96.  Rest are optional (including the one that used
10731           to be mandatory).  Rationale for this is that the truncated HMAC
10732           length is sufficient from security point of view and can actually
10733           make the attack against the HMAC harder.  Also, the truncated
10734           HMAC causes less overhead to the packets.  See the RFC2104 for
10735           more information.
10736
10737         * Added new [hmac] configuration section.  The SKE used to use
10738           the hash names (md5 and sha1) in the SKE proposal as HMCAS which
10739           is of course wrong.  The official names that must be proposed in
10740           the SKE are the ones defined in the protocol specification
10741           (hmac-sha1-96 for example).  The user can configure any hmac
10742           using any hash function configured in the [hash] section.  At
10743           least, the mandatory must be configured.
10744
10745           Rewrote the HMAC interface in lib/silccrypt/silchmac.[ch].
10746
10747         * Added HMAC list to the SKE proposal list.  It has now both
10748           hash algorithm list and HMAC list.  This makes the protocol
10749           incompatible with previous versions.  The SKE now seems to work
10750           the way it is supposed to work, for the first time actually.
10751
10752         * Defined plain Hash algorithms to the protocol specification.
10753           Added sha1 and md5.
10754
10755 Tue Mar  6 15:36:11 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
10756
10757         * Implemented support for key agreement packets into the server.
10758           Added functions silc_server_key_agreement and
10759           silc_server_send_key_agreement.  Other than these functions,
10760           server has nothing to do with this packet.
10761
10762         * Added support for private message key packets into the server.
10763           Added functions silc_server_private_message_key and
10764           silc_server_send_private_message_key.
10765
10766         * Updated TODO.
10767
10768         * Changed the silc_[client|server]_protocol_ke_set_keys to be
10769           called in the protocol's final callback instead in the END
10770           protocol state.  This makes a little more sense and in the same
10771           time in client we can use the same protocol routines for normal
10772           key exchange and to key agreement packet handling as well.
10773
10774         * Added to both client's and server's KE protocol context the
10775           SilcSKEKeyMaterial pointer to save the key material.  We will
10776           bring the key material to the protocol's final callback by doing
10777           this.  The final callback must free the key material.
10778
10779         * Added SKE's packet_send callback into client's KE protocol
10780           context so that the caller can choose what packet sending function
10781           is used.  This way we can use different packet sending when
10782           doing normal SKE when doing key agreement packet handling (in
10783           the key agreement packet handling we do not want to encrypt
10784           the packets).
10785
10786         * Implemented the responder side of the key agreement routines
10787           in the client.  The client can now bind to specified port and
10788           accept incoming key negotiation.  The key material is passed
10789           to the application after the protocol is over.
10790
10791         * Implemented the processing of incoming Key Agreement packet
10792           in the client.  Added function silc_client_key_agreement to
10793           process the packet.
10794
10795         * Implemented the intiator side of the key agreement routines
10796           in the client.  The client can now initiate key agreement with
10797           another remote client.  The key material is passed to the
10798           application after the protocol is over.
10799
10800         * Created client_keyagr.c to include all the key agreement
10801           routines.
10802
10803         * Added macro SILC_TASK_CALLBACK_GLOBAL which is equal to the
10804           SILC_TASK_CALLBACK except that it is not static.
10805
10806         * Created client_notify.c and moved the Notify packet handling
10807           from the client.[ch] into that file.
10808
10809         * Created client_prvmsg.c and moved all private message and
10810           private message key routines from the client.[ch] into that file.
10811
10812         * Create client_channel.c and moved all channel message and
10813           channel private key routines from the client.[ch] into that file.
10814
10815         * Changed silc_client_get_client_by_id_resolve to resolve with
10816           WHOIS command instead of IDENTIFY command, in the file
10817           lib/silclient/idlist.c.
10818
10819 Mon Mar  5 18:39:49 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
10820
10821         * Implemented the SKE's responder side to the Client library.
10822
10823         * When FAILURE is received to the protocol do not trust it
10824           blindly.  Register a timeout to wait whether the remote closes
10825           the connection as it should do it, only after that process the
10826           actual failure.  This was changed to both client and server.
10827
10828         * Added client_internal.h to include some of the structures
10829           there instead of client.h in lib/silcclient/.
10830
10831         * Added function silc_task_unregister_by_callback to unregister
10832           timeouts by the callback function.
10833
10834 Sat Mar  3 19:15:43 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
10835
10836         * Some "Incomplete WHOIS info" errors has been appearing on the
10837           log files.  Took away the entry->userinfo check from WHOIS
10838           reply sending.  The entry->userinfo is now " " if client did not
10839           provide one.  I thought this was fixed earlier but something
10840           is wrong still.  Let's see if the error still appears.
10841
10842 Wed Feb 28 20:56:29 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
10843
10844         * Fixed a minor bug in the login when the channel key is
10845           re-generated in the server.  It used to generate the key in
10846           wrong order and thus caused problems in the channel traffic.
10847
10848         * Fixed a minor bug in channel key distsribution after
10849           KICK command.  The key was not sent to the router even though
10850           it should've been.
10851
10852 Tue Feb 27 20:24:25 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
10853
10854         * Added silc_ske_process_key_material_data as generic routine
10855           to process any key material as the SILC protocol dictates.  The
10856           function is used by the actual SKE library but can be used by
10857           applications as well.  This relates to the private message keys
10858           and the channel private keys since they must be processed the
10859           same way the normal SILC session keys.  The protocol dictates
10860           this.  Affected files: lib/silcske/silcske.[ch].
10861
10862           Added also silc_ske_free_key_material to free the
10863           SilcSKEKeyMaterial structure.
10864
10865         * Defined silc_cipher_set_key function to set the key for
10866           cipher without using the object's method function.  The affected
10867           files: lib/silccrypt/silccipher.[ch].
10868
10869         * Implemented silc silc_client_add_private_message_key,
10870           silc_client_add_private_message_key_ske,
10871           silc_client_del_private_message_key,
10872           silc_client_list_private_message_keys and
10873           silc_client_free_private_message_keys functions in the
10874           client library.
10875
10876           Added functions silc_client_send_private_message_key to send
10877           the Private Message Key payload and silc_client_private_message_key
10878           to handle incoming Private Message Key payload.
10879
10880         * Added Cipher field to the Private Message Key payload to set
10881           the cipher to be used.  If ignored, the default cipher defined
10882           in the SILC protocol (aes-256-cbc) is used.
10883
10884 Tue Feb 27 13:30:52 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
10885
10886         * Removed lib/silcclient/ops.h file.
10887
10888           Redefined parts of the SILC Client Library API. Created new
10889           file silcapi.h that deprecates the ops.h file and defines the
10890           published Client Library API.  Defined also private message key
10891           API and channel private key API into the file.
10892
10893           This is the file that the application must include from the
10894           SILC Client Library.  Other files need not be included by
10895           the application anymore.
10896
10897         * Added new key_agreement client operation callback and also
10898           defined the Key Agreement library API for the application.
10899
10900 Tue Feb 27 11:28:31 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
10901
10902         * Added new packet type: SILC_PACKET_KEY_AGREEMENT.  This packet
10903           is used by clients to request key negotiation  between another
10904           client in the SILC network.  If the negotiation is started it
10905           is performed using the SKE protocol.  The result of the
10906           negotiation, the secret key material, can be used for example
10907           as private message key.
10908
10909           Implemented the Key Agreement payload into the files
10910           lib/silccore/silauth.[ch].
10911
10912 Mon Feb 26 12:13:58 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
10913
10914         * Redefined ciphers for the SILC protocol.  Added some new ciphers
10915           and defined the key lengths for the algorithms.  Changed the
10916           code accordingly.  The default key length is now 256 bits.
10917
10918         * Fixed SKE key distribution function silc_ske_process_key_material
10919           when the key length is more than 128 bits.  The default key
10920           length in SILC is now 256 bits.
10921
10922         * Added new command status type: SILC_STATUS_ERR_UNKOWN_ALGORITHM
10923           to indicate unsupported algorithm.
10924
10925         * Renamed rijndael.c to aes.c and all functions as well.
10926
10927         * Fixed a long standing channel key setting bug in client library.
10928           Weird that it has never surfaced before.
10929
10930         * Fixed bug in channel deletion.  If the entire channel is removed
10931           then it must also delete the references of the channel entry
10932           from the client's channel list as the client's channel entry and
10933           the channel's client entry share same memory.
10934
10935 Sun Feb 25 20:47:29 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
10936
10937         * Implemented CONNECT and SHUTDOWN commands in the client.
10938
10939         * Implemented CLOSE command to the client.
10940
10941         * Added the function silc_idlist_find_server_by_name into the
10942           files silcd/idlist.[ch].
10943
10944           Added the function silc_idlist_find_server_by_conn into the
10945           files silcd/idlist.[ch].
10946
10947 Sat Feb 24 23:45:49 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
10948
10949         * DIE command was renamed to SHUTDOWN.  Updated the both code
10950           and protocol specs.
10951
10952         * Defined SILC_UMODE_NONE, SILC_UMODE_SERVER_OPERATOR and
10953           SILC_UMODE_ROUTER_OPERATOR modes into lib/silccore/silcmode.h.
10954
10955         * Implemented CONNECT, CLOSE and SHUTDOWN commands to the server
10956           side.
10957
10958         * Added function silc_server_create_connection function to create
10959           connection to remote router.  My server implementation actually
10960           does not allow router to connect to normal server (it expects
10961           that normal server always initiates the connection to the router)
10962           so the CONNECT command is only good for connecting to another
10963           router.
10964
10965 Sat Feb 24 16:03:45 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
10966
10967         * Added SILC_NOTIFY_TYPE_KICKED to indicate that the client
10968           or some other client was kicked from the channel.
10969
10970           Implemented the handling of the notify type to both client
10971           and server.
10972
10973           Implemented silc_server_send_notify_kicked to send the KICKED
10974           notify.  It is used to send it to the server's primary router.
10975
10976         * Implemented the KICK command into server and client.
10977
10978         * Added `query' argument to the silc_idlist_get_client function
10979           to indicate whether to query the client from server or not if
10980           it was not found.
10981
10982         * Added new command status type SILC_STATUS_ERR_NO_CHANNEL_FOPRIV
10983           to indicate that the client is not channel founder.
10984
10985         * Updated TODO.
10986
10987 Sat Feb 24 00:00:55 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
10988
10989         * Removed the rng context from SilcPacketContext structure and
10990           changed that the packet routine uses the Global RNG API.
10991
10992 Fri Feb 23 11:22:57 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
10993
10994         * Added support for quit message that client can "leave" on the
10995           channel when it quits the SILC.  It is ditributed inside the
10996           SILC_NOTIFY_TYPE_SIGNOFF notify type.
10997
10998           Added silc_server_free_client_data that will take the
10999           signoff message as argument.
11000
11001         * Changed SKE routines to use the silc_pkcs_sign/verify routines.
11002
11003 Thu Feb 22 23:05:36 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
11004
11005         * Updated parts of the protocol specification to keep it up
11006           to date.
11007
11008 Thu Feb 22 15:08:20 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
11009
11010         * Added List flag (SILC_PACKET_FLAG_LIST) to indicate list of
11011           payloads in one packet.
11012
11013         * Deprecated following packet types: NEW_ID_LIST, NEW_CHANNEL_LIST,
11014           NEW_CHANNEL_USER_LIST, SET_MODE and SET_MODE_LIST.  List packets
11015           use now the new List flag.
11016
11017         * Also deprecated the following packet types: REPLACE_ID,
11018           NEW_CHANNEL_USER and REMOVE_CHANNEL_USER packet types.
11019
11020         * Added list support for Notify packet in server.
11021
11022         * Added silc_server_send_notify_channel_change to send the
11023           CHANNEL_CHANGE notify type to replace channel ID's.  Deprecates
11024           the silc_server_send_replace_id.
11025
11026         * Added silc_server_send_notify_nick_change to send the
11027           NICK_CHANGE notify type.  Deprecates the function
11028           silc_server_send_replace_id.
11029
11030         * Added silc_server_send_notify_join to send the JOIN notify type.
11031           Deprecates the function silc_server_send_new_channel_user.
11032
11033         * Added silc_server_send_notify_leave to send LEAVE notify type.
11034           Deprecates the function silc_server_send_remove_channel_user.
11035
11036         * Added silc_server_send_notify_cmode and
11037           silc_server_send_notify_cumode to send CMODE and CUMODE notify
11038           types.  Deprecates the silc_server_send_set_mode function.
11039
11040         * Added SERVER_SIGNOFF notify type to indicate that server has
11041           quit.  This means that all clients on the channel from that
11042           server will drop.  This can be also used when netsplit happens.
11043
11044           Deprecated REMOVE_ID packet type since it is not needed anymore
11045           even from server.
11046
11047           Added silc_server_send_notify_server_signoff to send the
11048           SERVER_SIGNOFF notify type.  Deprecates the function
11049           silc_server_send_remove_id.
11050
11051           Added also silc_server_send_notify_signoff to send the
11052           SIGNOFF notify type.
11053
11054         * Employed the PKCS #1. It is the mandatory way to do RSA in the
11055           SILC protocol from this day on.  Changed the protocol
11056           specification as well.
11057
11058         * Added silc_server_send_notify_topic_set to send TOPIC_SET
11059           notify type.  It is used between routers to notify about
11060           topic changes on a channel.
11061
11062         * Added silc_id_dup into lib/silccore/id.[ch] to duplicate
11063           ID data.
11064
11065         * Partly updated the protocol specification to comply with the
11066           changes now made.  It is still though a bit outdated.
11067
11068         * The JOIN notify type now takes one extra argument <Channel ID>.
11069           The packet used to be destined to the channel but now the
11070           JOIN type may be sent as list thus it is impossible to
11071           destine it to any specific channel.  By adding this argument
11072           it is again possible.
11073
11074 Wed Feb 21 22:39:30 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
11075
11076         * Added CREDITS file.  The CHANGES and CREDITS file will appear
11077           in the distribution as well.
11078
11079 Wed Feb 21 14:17:04 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
11080
11081         * Implemented CMODE_CHANGE, CUMODE_CHANGE and TOPIC_SET notify
11082           types in the server's silcd/packet_receive.c.
11083
11084         * Implemented CMODE and CUMODE to work in router environment.
11085
11086         * Fixed minor encoding and decoding buglet from the
11087           lib/silccore/silcmode.c.
11088
11089         * Fixed buffer overflow from lib/silcclient/command.c in USERS
11090           command parsing.
11091
11092 Wed Feb 21 12:44:00 EET 2001  Mika Boström <bostik@lut.fi>
11093
11094         * Changed all SilcConfigServer* and silc_config_server* to
11095           SilcServerConfig* and silc_server_config*, respectively.
11096           Patch by Bostik.
11097
11098 Wed Feb 21 00:10:00 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
11099
11100         * Associated the ID (client or server ID) to the Authentication
11101           Payload to avoid any possibility of forging.  Updated the
11102           protocol specification and the code accordingly.
11103
11104 Tue Feb 20 14:14:14 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
11105
11106         * The RSA key length is now save to the RsaKey context in the
11107           key generation process in lib/silccrypt/rsa.c.  The key length
11108           is now used to figure out the maximum size of the block allowed
11109           to be encrypted/signed.
11110
11111         * Added silc_mp_mp2bin_noalloc into lib/silcmath/mpbin.[ch].  It
11112           is equivalent to the silc_mp_mp2bin but does not allocate any
11113           memory.
11114
11115         * Changed silc_mp_mp2bin API to take length argument.  If it is
11116           non-zero then the buffer is allocated that large.  If zero, then
11117           the size is approximated using silc_mp_sizeinbase, which however
11118           is not relieable.
11119
11120         * Created Global RNG API which is global RNG that application can
11121           initialize.  After initializing, any routine anywhere in the
11122           code (including library) can use RNG without allocating a new
11123           RNG object.  This was done to allow this sort of use of the
11124           RNG in code that has no chance to allocate RNG object.  All
11125           applications currently allocate this and many routines in the
11126           library use this.  Affected file lib/silccrypt/silcrng.[ch].
11127
11128         * Removed the RNG kludge from lib/silcmath/primegen.c and changed
11129           it to use the Global RNG API.
11130
11131         * Defined Authentication Payload into protocol specification that
11132           is used during SILC session to authenticate entities.  It is
11133           used for example by client to authenticate itself to the server
11134           to obtain server operator privileges.
11135
11136           Implemented this payload into the lib/silccore/silcauth.[ch].
11137           Implemented also routines for public key based authentication
11138           as the new protocol specification dictates.
11139
11140           Moved definitions of different authentication methods from
11141           lib/silccore/silcprotocol.h into lib/silccore/silcauth.h.
11142
11143         * Added silc_pkcs_encrypt, silc_pkcs_decrypt, silc_pkcs_sign,
11144           silc_pkcs_verify and silc_pkcs_sign_with_hash and
11145           silc_pkcs_verify_with_hash functions into the file
11146           lib/silccrypt/silcpkcs.[ch].
11147
11148 Mon Feb 19 19:59:28 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
11149
11150         * The client entry's userinfo pointer must be always valid.
11151           Otherwise the [<unknown>] bug will surface beacuse the WHOIS
11152           will fail since it requires the userinfo.  Now, the userinfo
11153           is allocated as "" if actual userinfo does not exist.  Actually,
11154           it must exist and it is totally Ok to drop client connections
11155           that does not announce the userinfo.  However, we will make
11156           this workaround for now.
11157
11158         * Added silc_net_get_remote_port into lib/silcutil/silcnet.[ch]
11159           to return the remote port by socket.
11160
11161 Mon Feb 19 14:26:49 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
11162
11163         * Changed SILC_SERVER_COMMAND_EXEC_PENDING macro to the name
11164           SILC_SERVER_PENDING_EXEC and added an new macro
11165           SILC_SERVER_PENDING_DESTRUCTOR which is called to free the
11166           data or when error occurs while processing the pending command.
11167
11168           Added new argument `destructor' into silc_server_command_pending
11169           and to the SilcServerCommandPending object.  This destructor is
11170           now called after calling the pending callback or if error occurs
11171           immediately.  If error occurs the actual pending callback won't
11172           be called at all - only the destructor.  The destructor may be
11173           NULL if destructor is not needed.
11174
11175           All this applies for client library code as well.  Similar
11176           changes were made there as well for the pending commands.
11177
11178           In the client, the application must now allocate the
11179           SilcClientCommandContext with the silc_client_command_alloc
11180           function.
11181
11182         * Added reference counter to the SilcServerCommandContext.  Added
11183           function silc_server_command_alloc and silc_server_command_dup
11184           functions.
11185
11186           Same type of functions added to the client library for the same
11187           purpose as well.
11188
11189         * Removed the cmd_ident from IDListData away since it is now
11190           global for all connections.  It is the command identifier used
11191           in command sending and with pending commands.  The affected file
11192           is silcd/idlist.h.
11193
11194         * Added reference counter to the SilcSocketConnection objecet to
11195           indicate the usage count of the object.  The object won't be
11196           freed untill the reference counter hits zero.  Currently only
11197           server uses this, and client ignores it.  The client must be
11198           set to use this too later.  The affected files are
11199           lib/silccore/silcsockconn.[ch].  Added also the function
11200           silc_socket_dup to increase the reference counter.
11201
11202           This was mainly added because it is possible that the socket
11203           is removed underneath of pending command or other async
11204           operation.  Now it won't be free'd and proper DISCONNECTING
11205           flags, etc. can be set to avoid sending data to connection that
11206           is not valid anymore.
11207
11208         * Added SILC_SET_DISCONNECTING to server.c when EOF is read from
11209           the connection.  After that it sets SILC_SET_DISCONNECTED.
11210           It is, however, possible that the socket data is not still freed.
11211           The silc_server_packet_process now checks that data is not
11212           read or written to connection that is DISCONNECTED.  The socket
11213           get's freed when the reference counter hits zero.
11214
11215 Mon Feb 19 00:50:57 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
11216
11217         * Changed the client operation API: channel_message operation's
11218           `sender' is now the client entry of the sender, not the nickname
11219           and the `channel' is the channel entry, not the channel name.
11220
11221           In the private_message operation the `sender' is now also the
11222           client entry of the sender not the nickname.
11223
11224           Affected file is lib/silcclient/ops.h and all applications
11225           using the client operations.
11226
11227 Sat Feb 17 22:11:50 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
11228
11229         * Moved the calling of ops->connect() from connect_to_server_final
11230           into receive_new_id functin since that is the point when the
11231           client is actually allowed to send traffic to network.  The
11232           affected file is lib/silcclient/client.c.
11233
11234 Sat Feb 17 13:15:35 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
11235
11236         * When receiving NEW_CHANNEL_LIST, NEW_CHANNEL_USER_LIST,
11237           NEW_ID_LIST and SET_MODE_LIST packets, broadcast the list packet
11238           (if needs broadcasting) instead of broadcasting the packets one
11239           by one which would make a burst in the network traffic.
11240
11241         * Added `broadcast' argument to the functions in silcd/server.[ch]
11242           silc_server_create_new_channel[_with_id] to indicate whether
11243           to send New Channel packet to primary router.
11244
11245 Sat Feb 17 01:06:44 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
11246
11247         * Added new function into the silcd/server.[ch] files:
11248           silc_server_create_new_channel_with_id to create new channel with
11249           already existing Channel ID.
11250
11251         * Added new packet type SILC_PACKET_SET_MODE_LIST into the file
11252           lib/silccore/silcpacket.h.  This packet is used t send list of
11253           Set Mode payloads inside one packet.  Server uses this to set
11254           the modes for the channels and clients on those channels, that it
11255           announced to the router when it connected to it.  The protocol
11256           specification has been updated accordingly.
11257
11258         * The silc_server_new_channel did not handle the packet coming
11259           from normal server as it normally does not send that.  However,
11260           when it announces its channels it does send it.  Implemented
11261           the support for that.
11262
11263         * Added SILC_ID_CHANNEL_COMPARE macro to compare to Channel ID's
11264           into the file lib/silccore/id.h.
11265
11266 Fri Feb 16 23:57:29 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
11267
11268         * Fixed memory leaks in the functions silc_idlist_del_client,
11269           silc_idlist_del_channel and silc_idlist_del_server in the file
11270           silcd/idlist.c.  All of those leaked like a sieve.
11271
11272         * Fixed some small memory leaks in the client's function
11273           silc_client_notify_by_server.
11274
11275         * Added functions into silcd/server.c: silc_server_announce_clients,
11276           silc_server_announce_channels and silc_server_announce_server.
11277           These functions are used by normal and router server to announce
11278           to its primary router about clients, channels and servers (when
11279           router) that we own.  This is done after we've connected to the
11280           router.
11281
11282           These functions effectively implements the following packet types:
11283           SILC_PACKET_NEW_CHANNEL_LIST, SILC_PACKET_NEW_CHANNEL_USER_LIST
11284           and SILC_PACKET_NEW_ID_LIST.
11285
11286         * Added new functions into the silcd/packet_receive.[ch]:
11287           silc_server_new_id_list, silc_server_new_channel_list and
11288           silc_server_new_channel_user_list to handle the incoming
11289           NEW_ID_LIST, NEW_CHANNEL_LIST and NEW_CHANNEL_USER_LIST packets.
11290
11291         * Added support of changing Channel ID in the function
11292           silc_server_replace_id.  If the server that announces a channel
11293           to the router already exists in the router (with same name but
11294           with different Channel ID), router is responsible to send
11295           Replace ID packet to the server and force the server to change
11296           the Channel ID to the one router has.
11297
11298         * Added new notify type SILC_NOTIFY_TYPE_CHANNEL_CHANGE to notify
11299           client that the Channel ID has been changed by the router.  The
11300           normal server sends this to the client.  Client must start using
11301           the new Channel ID as the channel's ID.
11302
11303           Implemented handling of this new type into lib/silcclient/client.c
11304           into the function silc_client_notify_by_server.
11305
11306         * Added new function silc_idlist_replace_channel_id into the files
11307           silcd/idlist.[ch] to replace the Channel ID.
11308
11309 Fri Feb 16 14:14:00 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
11310
11311         * Call silc_server_command_identify_check always when processing
11312           the IDENTIFY command in silcd/command.c
11313
11314 Thu Feb 15 20:07:37 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
11315
11316         * Added new packet type SILC_PACKET_HEARTBEAT that is used to
11317           send keepalive packets.  The packet can be sent by clients,
11318           servers and routers.
11319
11320           Added function silc_socket_set_heartbeat into the file
11321           lib/silccore/silcsockconn.[ch] to set the heartbeat timeout.
11322           If not set, the heartbeat is not performed.  The actual
11323           heartbeat is implemented in the low level socket connection
11324           library.  However, application is responsible of actually
11325           sending the packet.
11326
11327           Added silc_server_send_heartbeat to send the actual heartbeat
11328           packet into silcd/packet_send.[ch].  Server now performs
11329           keepalive with all connections.
11330
11331         * Added silc_task_get_first function into lib/silcutil/silctask.c
11332           to return the timeout task with shortest timeout.  There was a bug
11333           in task unregistration that caused problems.  TODO has been
11334           updated to include that task system must be rewritten.
11335
11336         * The client library will now resolve the client information when
11337           receiving JOIN notify from server for client that we know but
11338           have incomplete information.
11339
11340         * Rewrote parts of silc_server_remove_from_channels and
11341           silc_server_remove_from_one_channel as they did not remove the
11342           channel in some circumstances even though they should've.
11343
11344         * Encryption problem encountered in server:
11345
11346           The LEAVE command used to send the Channel Key packet to the
11347           router immediately after generating it.  However, the code
11348           had earlier sent Remove Channel user packet but not immediately,
11349           ie. it was put to queue.  The order of packets in the router
11350           was that Channel Key packet was first and Remove Channel User
11351           packet was second, even though they were encrypted in the
11352           reverse order.  For this reason, MAC check failed.  Now, this
11353           is fixed by not sending the Channel Key packet immediately but
11354           putting it to queue.  However, this is more fundamental problem:
11355           packets that are in queue should actually not be encrypted
11356           because packets that are sent immediately gets encrypted
11357           actually with wrong IV (and thus MAC check fails).  So, packets
11358           that are in queue should be encrypted when they are sent to
11359           the wire and not when they put to the queue.
11360
11361           However, the problem is that the current system has not been
11362           designed to work that way.  Instead, the packet is encrypted
11363           as soon as possible and left to the queue.  The queue is then
11364           just purged into wire.  There won't be any fixes for this
11365           any time soon.  So, the current semantic for packet sending
11366           is as follows:
11367
11368           o If you send packet to remote host and do not force the send
11369           (the packet will be in queue) then all subsequent packets to the
11370           same remote host must also be put to the queue.  Only after the
11371           queue has been purged is it safe again to force the packet
11372           send immediately.
11373
11374           o If you send all packets immediately then it safe to send
11375           any of subsequent packets through the queue, however, after
11376           the first packet is put to queue then any subsequent packets
11377           must also be put to the queue.
11378
11379           Follow these rules and everything works fine.
11380
11381 Thu Feb 15 14:24:32 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
11382
11383         * Added new function silc_server_remove_clients_by_server to
11384           remove all client entries from ID list when the server connection
11385           is lost.  In this case it is also important to invalidate all
11386           client entires as they hold the invalid server entry.  This
11387           fixes fatal bug when server has lost connection and will reconnect
11388           again.
11389
11390 Wed Feb 14 16:03:25 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
11391
11392         * Made some sanity checks to silc_server_daemonise like to check
11393           whether the requested user and group actually exists.
11394
11395         * Added sanity check to SKE's silc_ske_responder_finish to check
11396           that the public and private key actually is valid.
11397
11398         * Invalidate the client's nickname when receiving Replace ID
11399           packet and the Client ID is being replaced.  This means that the
11400           server will query the nickname if someone needs it (client)
11401           a bit later.
11402
11403         * Sort the ID Cache in client library when the ID Cache data
11404           has changed (needs sorting).
11405
11406         * Do not allow for SILC client to create several connections to
11407           several servers.  The client does not support windows right now
11408           and generating multiple connections causes weird behaviour.
11409
11410           Irssi-silc client does support windows and can handle several
11411           connections without problems, see: www.irssi.org and SILC plugin.
11412
11413         * Fixed some places where client was added to the IDList.  The
11414           rule of thumb is following (in order to get everything right):
11415           If the client is directly connected local client then the
11416           `connection' argument must be set and `router' argument must be
11417           NULL to silc_idlist_add_client function.  If the client is not
11418           directly connected client then the `router' argument must
11419           bet set and the `connection' argument must be NULL to the
11420           silc_idlist_add_client function.
11421
11422         * The funtion silc_server_packet_send_local_channel actually did
11423           not check whether the client was locally connected or not.  It
11424           does that now.  Fixed a bug related to LEAVE command.
11425
11426         * Fixed Remove Channel User payload parsing bug in server's
11427           silcd/packet_receive.c.  Fixed a bug related to LEAVE command.
11428
11429         * The server's silc_server_save_channel_key now checks also the
11430           global ID list for the channel as it might not be in the local
11431           list.  Fixed a bug related to LEAVE command.
11432
11433         * Is this the end of the [<unknown>] buglet that has been lurking
11434           around for a long time?  A little for loop fix in server's
11435           silc_server_command_whois_parse that is used by both IDENTIFY
11436           and WHOIS command.  At least, this was a clear bug and a cause
11437           of one type of [<unknown>] buglet.
11438
11439         * WHOIS and IDENTIFY commands call the function
11440           silc_server_command_[whois/identify]_check function even if
11441           we are not router server.
11442
11443 Tue Feb 13 19:55:59 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
11444
11445         * Added --with-gmp configuration option.  If set the GMP
11446           is always compiled in the SILC source tree.  If not set then
11447           it is checked whether the system has the GMP3 installed.  If
11448           it has then the GMP won't be compiled (the system's headers
11449           and library is used), if it doesn't have it then the GMP is
11450           compiled in the SILC source tree.
11451
11452 Mon Feb 12 11:20:32 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
11453
11454         * Changed RSA private exponent generation to what PKCS #1
11455           suggests.  We try to find the smallest possible d by doing
11456           modinv(e, lcm(phi)) instead of modinv(e, phi).  Note: this is
11457           not security fix but optimization.
11458
11459 Sun Feb 11 18:19:51 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
11460
11461         * Added new config entry [Identity] to fork the server and run
11462           it as specific user and group.  A patch from Bostik.
11463
11464         * Imported Dotconf configuration library into lib/dotconf.
11465           This will be used to create the SILC configuration files later.
11466           It will appear in the distsribution after this commit.
11467
11468 Sat Feb 10 21:13:45 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
11469
11470         * A big code auditing weekend happening.  Auditing code for
11471           obvious mistakes, bugs and errors.  Also, removing any code
11472           that is obsolete.
11473
11474           Removed files for being obsolete:
11475
11476           o lib/silcutil/silcbuffer.c (the buffer interface is entirely in
11477           inline in the file lib/silcutil/silcbuffer.h)
11478
11479           o lib/silcutil/silcbufutil.c (the header has inline versions)
11480
11481           Changed code to fix possible error conditions:
11482
11483           o The buffer formatting routines now check that the destination
11484           buffer really has enough space to add the data.  This applies for
11485           both buffer formatting and unformatting
11486           (lib/silcutil/silcbuffmt.[ch]).  Also, the entire buffer
11487           unformatting was changed to accomodate following rules:
11488           XXX_*STRING_ALLOC will allocate space for the data into the pointer
11489           sent to the function while XXX_*STRING will not allocate or copy
11490           the data into the buffer.  Instead it sets the pointer from the
11491           buffer into the pointer sent as argument (XXX_*STRING used to
11492           require that the pointer must be allocated already).  This change
11493           makes this whole thing a bit more consistent and more optimized
11494           (note that the data returned in the unformatting with XXX_*STRING
11495           must not be freed now).  The routines return now -1 on error.
11496
11497           o Tried to find all code that use buffer_format and buffer_unformat
11498           and added return value checking to prevent formatting and
11499           especially unformatting errors and possible subsequent fatal
11500           errors.
11501
11502           o Changed ske->x and ske->KEY to mallocated pointers in
11503           lib/silcske/silcske.h.  Fixed possible data and memory leak.
11504
11505           o Added return value checking to all *_parse* functions.  Fixed
11506           many memory leaks as well.
11507
11508           o Added length argument to silc_id_str2id in lib/silccore/id.[ch]
11509           so that buffer overflows would not happen.  All code now also
11510           checks the return value as it can fail.
11511
11512 Mon Feb  5 20:08:30 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
11513
11514         * Added reconnection support to server if the normal server looses
11515           its connection to the router (for example if router is rebooted).
11516           The server performs normal reconnection strategy implemented
11517           to the server.  Affected file silcd/server.c.
11518
11519 Sun Feb  4 13:18:32 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
11520
11521         * Added new packet type SILC_PACKET_SET_MODE that is used to
11522           distribute the information about changed modes (for clients,
11523           channels and clients channel modes) to all routers in the
11524           network.  Updated the protocol specification accordingly.
11525
11526           Added functions into silcd/packet_send.c and
11527           silcd/packet_receive.c: silc_server_send_set_mode,
11528           silc_server_set_mode.
11529
11530           Added new files silcmode.[ch] into lib/silccore that implements
11531           the encoding and decoding of Set Mode Payload.  Added new type
11532           SilcSetModePayload.  Moved the definitions of different modes
11533           from lib/silccore/silcchannel.h into lib/silccore/silcmode.h.
11534
11535 Sat Feb  3 15:44:54 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
11536
11537         * Oops, a little mistake in server's connection authentication
11538           protocol.  The protocol is not ended with FAILURE but with
11539           SUCCESS if the authentication is Ok. :)  Affected file is
11540           silcd/protocol.c.
11541
11542         * Implemented NICK_CHANGE notify handling in server in the file
11543           silcd/packet_receive.c  The NICK_CHANGE notify is distributed to
11544           the local clients on the channel.  After the changing nickname
11545           in router environment snhould work and the [<unknown>] nickname
11546           should appear no more.
11547
11548           The silc_server_replace_id function that receives the Replace ID
11549           payload now sends the NICK_CHANGE notify type also in the file
11550           silcd/packet_receive.c
11551
11552         * Changed WHOIS and IDENTIFY command to support the maximum amount
11553           of arguments defined in protocol specs (3328 arguments).  This
11554           fixed a bug that caused problems when there were more than three
11555           users on a channel.
11556
11557 Fri Feb  2 11:42:56 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
11558
11559         * Added extra parameter, command identifier, to the
11560           silc_client_send_command so that explicit command identifier
11561           can be defined.
11562
11563           Changed that ID list routines uses specific command identifier
11564           when sending WHOIS/IDENTIFY requests to the server so that they
11565           can be identified when the reply comes back.
11566
11567           Affected files lib/silcclient/command.[ch],
11568           lib/silcclient/client.c and lib/silcclient/idlist.[ch].
11569
11570         * Added `sender' argument to silc_server_packet_send_to_channel
11571           to indicaet the sender who originally sent the packet to us
11572           that we are now re-sending.  Ignored if NULL.  Affected file
11573           silcd/packet_send.[ch].
11574
11575         * Added some server statistics support in silcd/server_internal.h
11576           SilcServerStatistics structure and around the server code.  Also
11577           send some nice statistics information when client is connecting
11578           to the client.
11579
11580 Thu Feb  1 23:31:21 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
11581
11582         * Fixed channel ID decoding in server's JOIN command reply in
11583           silcd/command_reply.c
11584
11585         * Fixed braodcasting of replace ID payload to not to send it if
11586           we are standalone server in silcd/packet_receive.c.
11587
11588         * Fixed all channel message sending routines to not to send
11589           packets to clients that has router set, since they are routed
11590           separately in the same function earlier.  Affects file
11591           silcd/packet_send.c and all channel packet sending functions.
11592
11593         * In USERS reply, res_argv[i] are not allocated, the table
11594           is allocated.  Thus changed that free the table, not its
11595           internals.
11596
11597         * In server's whois_check and identify_check if the client is
11598           locally connected do not send any WHOIS commands - they are not
11599           needed.
11600
11601 Thu Feb  1 21:32:27 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
11602
11603         * Fixed some minor bugs in client when sending WHOIS command.  The
11604           arguments was in wrong order.
11605
11606         * Removed statis function add_to_channel from server in
11607           silcd/command.c that was previously used with the joining but
11608           is obsolete now.
11609
11610         * Tested USERS command in router environment successfully with two
11611           routers, two servers and two clients.
11612
11613 Thu Feb  1 00:54:26 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
11614
11615         * Reorganized the USERS command and command reply in client library
11616           in lib/silcclient/command.c and lib/silcclient/command_reply.c.
11617           When the command is given by user we register a pending command
11618           callback that will reprocess the command after the reply has been
11619           received from the server.  When reprocessing the packet we then
11620           display the information.  Thus, the USERS information is displayed
11621           now in the command callback instead of in the command reply
11622           callback.  The processing of the command is same as previously
11623           when server has sent the command reply in the JOINing process.
11624
11625         * Added to USERS command in silcd/command_reply.c to join the client,
11626           we didn't use to know about, to the channel after we've created
11627           a client entry for it.  Also, for clienet we did know already still
11628           check whether it is on the channel or not and add it if not.
11629
11630         * Removed silc_server_command_join_notify as the function and its
11631           use was obsolete.
11632
11633 Tue Jan 30 22:39:15 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
11634
11635         * Changed the client's pending command handling to the same as the
11636           server's pending command handling.  It is also now possible to
11637           execute command reply functions from other command reply
11638           function as the function callbacks for commands and command
11639           replies are one and same.  The pending commands are not static
11640           list anymore, it is mallocated SilcDList in lib/silcclient/client.h
11641           in client connection context.  Thus, pending commands are server
11642           connection specific as it is convenient.
11643
11644           Changed the function silc_client_command_pending and
11645           silc_client_command_pending_del and added new function
11646           silc_client_command_pending_check.  Removed the
11647           SILC_CLIENT_CMD_REPLY_EXEC, and SILC_CLIENT_PENDING_COMMAND_CHECK
11648           macros.
11649
11650         * Added cmd_ident, current command identifier, to the client
11651           connection context in lib/silcclient/client.h to keep track on
11652           command identifiers used in command sending.  Client's command reply
11653           function handling now supports the mandatory command identifiers.
11654
11655         * Added SILC_CLIENT_COMMAND_EXEC_PENDING macros to all command reply
11656           funtions in client to fully support pending command callbacks.
11657
11658         * NOTE: the name_list in USERS (old NAMES) command is NOT sent anymore
11659           as one of the arguments to the application in the command reply
11660           client operation.
11661
11662         * NOTE: The FORWARDED flag is depracated.  It used to be depracated
11663           before first releasing SILC but came back.  Now it is removed again
11664           and should come back nomore.  The FORWARDED flag was used only
11665           by the JOINing procedure by forwarding the command packet to router.
11666           Now, the JOINing procedure has been changed to more generic (due
11667           to various router environment issues) and FORWARDED is not needed
11668           anymore for anything.  The protocol specification is yet to be
11669           updated.
11670
11671           Now, removed silc_server_packet_forward from server and the flag
11672           SILC_PACKET_FORWARDED from lib/silccore/silcpacket.h.
11673
11674 Tue Jan 30 00:05:05 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
11675
11676         * Renamed NAMES command to USERS command.  The NAMES was named that
11677           due to historical reasons.  Now it is renamed.  Also, rewrote
11678           parts of the USERS command.  The nickname list is not sent anymore
11679           by the server.  Only Client ID and mode lists are sent in the USERS
11680           command.  Changed this also to the protocol specification.
11681
11682           The client now resolves the names and stuff after it receives
11683           the USERS list from the server when joining to the channel.
11684
11685         * WHOIS and IDENTIFY commands has been changed to support multiple
11686           Client ID's per command.  One can now search for multiple users
11687           in the network by sending only one WHOIS or IDENTIFY command.
11688           Changed the code and the protocol specifications.
11689
11690         * Removed silc_server_command_identify_parse and changed that IDENTIFY
11691           uses silc_server_command_whois_parse to parse the request. */
11692
11693         * If normal server, do not parse the WHOIS and IDENTIFY requests
11694           before sending it to the router.  Saves some time.
11695
11696 Sun Jan 28 16:19:49 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
11697
11698         * Fixed JOIN command on client library.  Wrong number of arguments
11699           used to crash the client.
11700
11701         * Added silc_server_channel_has_global function to check whether
11702           channel has global users or not.
11703
11704         * Added silc_server_channel_has_local function to check whether channel
11705           has locally connected clients on the channel.
11706
11707         * The silc_server_remove_from_one_channel now checks whether the
11708           channel has global users or not after given client was removed from
11709           the channel.  It also checks whether the channel has local clients
11710           on the channel anymore.  If it does not have then the channel entry
11711           is removed as it is not needed anymore.
11712
11713         * The silc_server_notify now checks on JOIN notify whether the joining
11714           client is one of locally connected or global.  If it is global then
11715           the channel has now global users on the channel and that is marked
11716           to the channel entry.  Also, it now saves the global client to
11717           global list who is joining and JOINs it to the channel.  This is
11718           for normal server, that is.
11719
11720           Changed silc_server_send_notify_on_channel,
11721           silc_server_packet_relay_to_channel and
11722           silc_server_packet_send_to_channel check if we are normal server
11723           and client has router set (ie. global client) do not send the
11724           message to that client, as it is already routed to our router.
11725
11726         * Implemented LEAVE notify type handling in silc_server_notify
11727           function.
11728
11729         * Tested LEAVE command in router environment successfully.  Tested
11730           with two routers, two servers and two clients.
11731
11732         * Updated TODO.
11733
11734         * idlist_find_xxx_by_id routines now dumps the ID on the debug mode.
11735
11736         * Implemented SIGNOFF notify type handling in silc_server_notify
11737           function.
11738
11739         * silc_server_remove_id now removes the client entry from all channels
11740           it has joined and thusly sends SIGNOFF notify type.
11741
11742         * Rewrote the NAMES list generation in server by removing two excess
11743           loops.  The lists are created now inside one loop.
11744
11745 Sat Jan 27 22:34:56 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
11746
11747         * silc_server_remove_channel_user checks now also global list
11748           for channel and client.
11749
11750         * silc_server_new_channel_user checks now both local and global
11751           list for channel and client.  Fixed a bug in client id decoding.
11752           Used to decode wrong buffer.
11753
11754         * silc_server_channel_message checks now both local and global
11755           list for channel entry.
11756
11757         * Tested channel joining (hence JOIN) in router environment
11758           successfully.  Tested with two routers, two servers and two
11759           clients.
11760
11761         * Tested channel message sending in router environment successfully.
11762
11763 Thu Jan 11 03:22:57 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
11764
11765         * Added silc_server_save_channel_key into server.[ch] to save the
11766           received channel key in Channel Key payload processing. It is
11767           also used in JOIN command reply handling.
11768
11769           Equivalent function silc_client_save_channel_key added into
11770           client.[ch] into client library.
11771
11772         * Changed JOIN command reply to send information whether the channel
11773           was created or not (is existing already) and the channel key
11774           payload.  Changed protocol specs accordingly.
11775
11776         * Fixed bugs in WHOIS and IDENTIFY command reply sending when
11777           the request was sent by ID and not by nickname.  Crashed on
11778           NULL dereference.
11779
11780 Sat Dec 23 21:55:07 EET 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
11781
11782         * Fixed a bug in Client library.  IDENTIFY and WHOIS reply functions
11783           now correctly save the received data.
11784
11785         * silc_server_free_sock_user_data now notifies routers in the
11786           network about entities leaving the network.
11787
11788           At the same time implemented functions silc_server_remove_id
11789           and silc_server_send_remove_id to receive and send REMOVE_ID
11790           packets.  The packet is used to notify routers in the network
11791           about leaving entities.  The ID removed will become invalid in
11792           the network.
11793
11794         * Added function silc_idlist_del_server into server. Removes and
11795           free's server entry from ID list.
11796
11797         * silc_server_private_message function now checks, if we are router,
11798           that the destination ID really is valid ID, naturally.
11799
11800         * In router when NEW_ID packet is received (for new client) the
11801           hash of the Client ID is saved in the ID Cache but the
11802           client->nickname is set to NULL, instead of putting the hash
11803           to it as well.
11804
11805           IDENTIFY command now also checks that client->nickname must be
11806           valid. If it is not if will request the data from the server who
11807           owns the client.  Added new function
11808           silc_server_command_identify_check.
11809
11810         * Added silc_command_set_command into lib/silccore/silcommand.[ch]
11811           to set the command to already allocated Command Payload.
11812
11813         * Tested private message sending in router environment with two
11814           routers, two servers and two clients.  Fixed minor bugs and now
11815           it works fine.
11816
11817         * Fixed segfault from client's NAMES command. Used to crash if
11818           not on any channel.
11819
11820         * Forwarded packets must not be routed even if it is not destined
11821           to the receiver.  Changed server code comply with this.
11822
11823 Sun Dec 17 14:40:08 EET 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
11824
11825         * Added `require_reverse_mapping' boolean value to ServerParams
11826           structure. If TRUE (not default) the server will require that
11827           the connecting host has fully qualified domain name.
11828
11829           If the reverse mapping is not required and hostname could not be
11830           found the IP address is used as hostname.
11831
11832 Sat Dec 16 17:39:54 EET 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
11833
11834         * Implemented version string checking to both client and server.
11835           The check is incomplete currently due to the abnormal version
11836           strings used in development version of SILC.
11837
11838         * Changed all command functions in server to use the new
11839           CHECK_ARGS macro.
11840
11841 Fri Dec 15 15:55:12 EET 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
11842
11843         * Changed char *data to unsigned char *data in ID Cache system to
11844           support binary data as ID Cache data. Changed code to support
11845           binary data in lib/silccore/idcache.c.
11846
11847         * Renamed silc_server_packet_relay_command_reply to
11848           silc_server_command_reply as it is normal packet receiving
11849           function. Rewrote the function to accept command replys for
11850           servers and not only for clients.
11851
11852         * Mark remote router always as registered server if we are connecting
11853           to it.  Otherwise, commands sent by the router to us are ignored.
11854
11855         * All ID List find routines now returns the ID Cache Entry pointer
11856           as well if requested.
11857
11858         * WHOIS command works now in router environment, tested with two
11859           routers, two servers and two clients.
11860
11861         * Cleaned up and rewrote IDENTIFY command. IDENTIFY should work now
11862           in router environment (as it is almost equivalent to WHOIS) but
11863           hasn't been tested thoroughly.  Added new functions:
11864
11865           silc_server_command_identify_parse
11866           silc_server_command_identify_send_reply
11867           silc_server_command_identify_from_client
11868           silc_server_command_identify_from_server
11869
11870         * Disabled route cache adding because adding two different ID's with
11871           same IP replaces the old cache entry thus giving wrong route.
11872           The entry->router->connection is always the fastest route anyway
11873           so route cache may not be needed.  Of course, new routes maybe
11874           established after receiving the ID when the entry->router->connection
11875           might not be anymore the most optimal.
11876
11877 Thu Dec 14 15:55:35 EET 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
11878
11879         * Add route cache for received ID for fast routing.
11880
11881         * Added silc_server_packet_route to route received packet on router
11882           that is not destined to us.
11883
11884         * Renamed silc_server_get_route to silc_server_route_get.
11885
11886         * Added id_string and id_string_len fields into SilcServer to
11887           include encoded ServerID for fast comparing without excess
11888           encoding of the ID's.
11889
11890         * Cleaned up WHOIS command on server side. Added following static
11891           functions:
11892
11893           silc_server_command_whois_parse
11894           silc_server_command_whois_check
11895           silc_server_command_whois_send_reply
11896           silc_server_command_whois_from_client
11897           silc_server_command_whois_from_server
11898
11899         * Added macro SILC_SERVER_COMMAND_CHECK_ARGC to check mandatory
11900           arguments in command replies. All command functions should be
11901           updated to use this macro.
11902
11903 Sun Dec 10 23:52:00 EET 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
11904
11905         * Minor typo fixes on command reply handling on server.
11906
11907 Tue Nov 28 11:05:39 EET 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
11908
11909         * Added silc_server_command_add_to_channel internal routine to add
11910           the client to the channel after router has created the channel and
11911           sent command reply to the server.
11912
11913         * Added generic silc_server_send_command to send any command from
11914           server.
11915
11916         * Use static buffer with ID rendering instead of duplicating data.
11917
11918 Mon Nov 27 21:39:40 EET 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
11919
11920         * Fixed a channel user mode bug when joining to a channel server gave
11921           everybody channel founder rights, oops.
11922
11923         * We mark ourselves as the router of the incoming server connection
11924           if we are router ourselves.  This way we can check in some packet
11925           sending functions whether it is locally connected server.  For
11926           incoming router connections we put NULL.
11927
11928         * For router sending packets locally means now always sending the
11929           packet cell wide; to local clients and local servers.  For normal
11930           server sending packet locally means sending it to only local
11931           clients.
11932
11933         * Fixed the JOIN command to really work in router environment.  If the
11934           channel is created it is always created by the router.  Router is
11935           also responsible of making the initial joining to the channel,
11936           sending JOIN notify to the sending server and distributing
11937           NEW_CHANNEL and NEW_CHANNEL_USER packets.  Hence, if the channel
11938           does not exist server doesn't do anything else but forward the
11939           command to the router which performs everything.
11940
11941         * Added silc_server_send_channel_key function to send the Channel Key
11942           payload.
11943
11944         * Added silc_server_create_channel_key to create new channel key.  The
11945           channel key is now re-generated everytime someone joins or leaves
11946           a channel, as protocol dictates.  Note: channel->key_len is the
11947           key length in bits.
11948
11949 Wed Nov 22 22:14:19 EET 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
11950
11951         * Splitted server.[ch] finally.  Created now packet_send.[ch] and
11952           packet_receive.[ch] to separate packet sending and receiving
11953           routines.  The server.[ch] now includes everything else including
11954           actual packet processing (writing and reading data) and other
11955           server issues.
11956
11957           Renamed silc_server_private_message_send_internal to
11958           silc_server_send_private_message.  The routine is still though
11959           used only to relay private messages as server does not send
11960           private messages itself.
11961
11962           Renamed silc_server_new_channel to silc_server_create_new_channel
11963           and added new function sicl_server_new_channel that handles the
11964           incoming New Channel packet.  Added also new sending function
11965           silc_server_send_new_channel to send New Channel Payload.
11966
11967         * Added new function silc_server_notify to process incoming notify
11968           packet to the server/router. Server may then relay the notify
11969           to clients if needed.
11970
11971         * Added new function silc_server_new_channel_user to process incoming
11972           New Channel User packet.  Router will redistribute the packet and
11973           send JOIN notify to its local clients and locally connected servers
11974           if needed.  Normal server will send JOIN notify to its local client
11975           on same channel when received this packet.  Added also corresponding
11976           sending function silc_server_send_new_channel_user to sent the
11977           payload.
11978
11979         * Added boolean route argument to send_notif_to_channel and
11980           packet_send_to_channel functions to attempt to route the packet
11981           if it is TRUE and send only locally if it is FALSE.
11982
11983 Tue Nov 21 19:49:31 EET 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
11984
11985         * silc_server_replace_id now broadcasts the received replace ID
11986           packet if it is not broadcast packet already. The router must
11987           broadcast to inform other routers about changed ID.
11988
11989         * Added backpointer to server's router into SilcServer context in
11990           silcd/server_internal.h.
11991
11992         * Fixed silc_server_packet_broadcast to send correct broadcast
11993           packets.
11994
11995         * The channel key is now distributed to the local client as soon
11996           as it is received from the router (in router environment) so that
11997           no other packet may be sent for the channel until client has
11998           received the key.
11999
12000         * silc_server_remove_channel_user now broadcasts the received
12001           Remove Channel User packet if it is not broadcast packet already.
12002           The router must broadcast to inform other routers about removed
12003           channel user.
12004
12005         * Added users field into SilcPacketContext that is a reference count
12006           of the context.  One can increase the reference count by calling
12007           silc_packet_context_dup which is now changed to just increase the
12008           reference count instead of duplicating the data.  The reference
12009           count is decresed by calling silc_packet_context_free that will
12010           free the data after the reference count hits zero.
12011
12012           For now on the packet context and everything allocated into it
12013           (including the raw packet from network) must be freed by calling
12014           the new silc_packet_context_free function.  Added also new function
12015           silc_packet_context_alloc that must be used now to allocate the
12016           context.  This also means that if a routine is asynchronous from
12017           silc_[client/server]_packet_parse_type the packet context must
12018           be duplicated by calling silc_packet_context_dup.  Otherwise it
12019           gets free'd after silc_[client/server]_packet_parse_type returns.
12020           Also, one must remember that if packet is duplicated then its
12021           reference count must be decresed by calling the free function as
12022           many times as it was duplicated.
12023
12024         * Changed SilcBuffer field from protocol contexts to SilcPacketContext
12025           from both client and server.
12026
12027 Mon Nov 20 23:47:03 EET 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
12028
12029         * Made joining to a channel working in router environment.
12030
12031         * Cleaned up JOIN command on server side and create function
12032           silc_server_command_join_channel internal routine to make the
12033           joining happen.
12034
12035 Thu Nov  9 21:12:39 EET 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
12036
12037         * Changed silc_command_pending list to SilcDList.  Also, added
12038           `ident' field to SilcServerCommandPending structure to identify
12039           the reply and to call correct callback.
12040
12041           Added silc_server_command_pending_check function to replace the
12042           corresnponding macro.  The silc_command_pending list is not
12043           extern anymore.
12044
12045         * Added silc_command_set_ident into lib/silccore/silccommand.[ch]
12046           to set identifier to previously allocated Command Payload.  It
12047           is used to set identifier for command when resending Command
12048           Payload.
12049
12050         * Added silc_command_payload_encode_payload to encode Command
12051           Payload buffer from SilcCommandPayload structure.
12052
12053         * Added silc_argument_payload_encode_payload to encode Argument
12054           payload buffer from SilcArgumentPayload structure.
12055
12056 Wed Nov  8 21:03:28 EET 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
12057
12058         * Changed WHOIS command to support router connection on server side.
12059           The whois request is always sent to router unless the server is
12060           standalone server.  After server has received the reply from the
12061           router will it send the reply to the client.
12062
12063         * Added silc_server_packet_broadcast into silcd/server.[ch] to
12064           broadcast received broadcast packet.  The function is used only
12065           by router.  The broadcast packet is always sent to the router's
12066           primary route.
12067
12068         * Added silc_id_render function in lib/silcutil/silcutil.[ch] to
12069           render given ID to printable string, for log files for example.
12070
12071 Tue Nov  7 22:14:19 EET 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
12072
12073         * Made basic router to router connections working.  At least they
12074           can now connect to each other but nothing really works the way
12075           they are supposed - yet.
12076
12077         * Added new initiator token to RouterConnection configuration
12078           file in silcd/serverconfig.[ch].  It is used to tell whether we
12079           are the initiator to the remote router or whether we'll expect
12080           the other end to connect.
12081
12082         * Moved registering of listener task to silc_server_init, hence
12083           the server starts listenning as soon as it is run, even if it
12084           does not have connections to other routers.  Let's see how well
12085           this will work.
12086
12087         * Changed default connection retry timeouts for more suitable in
12088           silcd/server.h.
12089
12090         * Removed cipher and such arguments from silc_idlist_add_client
12091           and silc_idlist_add_server prototypes from silcd/idlist.[ch].
12092           Added new function silc_idlist_add_data to add the keys and stuff
12093           to any ID entry.
12094
12095         * Added SilcIDListData structure and added it to SilcClientEntry
12096           and SilcServerEntry as their first field in the structure.  This
12097           way we can explicitly cast the ID entries to the SilcIDListData
12098           structure and get common data for the entries.  In past, we had
12099           to first check what type of connection it is and then cast it to
12100           correct ID entry type.  Now, we can directly cast the opaque
12101           pointer to the SilcIDListData (no matter what ID entry it actually
12102           is) and get the data needed.
12103
12104 Mon Nov  6 21:56:12 EET 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
12105
12106         * Wow, found a bug in scheduler.  The scheduler uninitialized itself
12107           in some circumstances even if threre were timeout tasks, though not
12108           IO tasks, but tasks anyway.  Now fixed.
12109
12110         * Defined SilcServerConnection structure to hold connection specific
12111           stuff about directly connected servers and routers.  The definition
12112           is currently in silcd/server_internal.h.  I thought about having
12113           a bit more important role fro this struct but for now it is used
12114           only when connecting to other server (or router actually).
12115
12116         * Added connecting retry support in server when connecting to
12117           router(s).  The retry feature implement exponential backoff
12118           algorithm.  Also, added SilcServerParams structure to hold default
12119           parameters for server.  For now, it include these retry settings
12120           and are hard coded.  After server is moded to be as Silc Server
12121           Library this structure will be more important.
12122
12123 Sun Nov  5 22:28:44 EET 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
12124
12125         * Changed client librarys channel->clients table to SilcList and
12126           changed code accordingly.
12127
12128 Thu Nov  2 16:28:01 EET 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
12129
12130         * Changed client's channel table to SilcList and changed code
12131           accordingly.  Also changed SilcChannelClientEntry to include back-
12132           pointer to the channel so that client entry can use that structure
12133           as list as well and we have fast cross-reference to the channel.
12134           This change dramatically decreased the complexity of channel
12135           handling with client entry and vice versa (removed one extra
12136           loop when searching for channel entry from many functions).
12137
12138         * Changed server->sim from table to SilcDList and changed code
12139           accordingly.
12140
12141         * NAMES command can now be used from user interface.  It will show
12142           the user list on the channel, neatly.
12143
12144         * Added realname pointer to SilcClientEntry in lib/silcclient/idlist.h.
12145           Code now saves realname of the user if it becomes available.
12146
12147         * Renamed configure.in to configure.in.pre and made ./prepare
12148           script to automatically add correct version string to
12149           configure.in which it creates from configure.in.pre.
12150
12151 Wed Nov  1 17:21:26 EET 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
12152
12153         * NAMES command reply now shows users mode with the nickname when
12154           joining to channel.
12155
12156         * Moved silc_client_ch[u]mode[_char] functions from
12157           silc/clientutil.[ch] to lib/silcclient/client.[ch].  Though, that
12158           place sucks, they are utility functions and should be in some
12159           other file.
12160
12161         * Fixed some unsigned int's to unsigned short's.  Patch by cras.
12162
12163         * Fixed contrib/getopt*.[ch] to not require config.h.  Patch by
12164           cras.
12165
12166 Tue Oct 31 20:10:37 EET 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
12167
12168         * Updated README.
12169
12170         * Added TRQ (efficient deque and list library) into lib/trq.  This is
12171           a very good list library that is currently used in the SILC.  Defined
12172           SilcList API over the library because I didn't like the API very
12173           much.  See lib/trq/silclist.h for the API and examples of how to
12174           use the API.  Fixed various places in the code to use the new
12175           SilcList API. The SilcList is meant for lists that has a structure
12176           already defined as a list.  It is not suitable to add just some
12177           context to the list (in TRQ, the context is the list actually).
12178
12179           So, I defined SilcDList that can be used for the purpose where
12180           predefined list structure does not exit.  This can be used as
12181           such list.  Now some context just can be added to the SilcDList.
12182           Currently this list is not used in the SILC just yet, though there
12183           are a lot places where this can replace dynamically allocated
12184           tables and I will fix these places, later, to use SilcDList.
12185           See lib/trq/silcdlist.h for SilcDList (they are all inline functions,
12186           and use TRQ internally).
12187
12188           Also fixed some annoying warning messages that the original TRQ
12189           code generated.  Also minor changes to TRQ's Makefile.in.
12190
12191         * Added support for querying by Client ID to both WHOIS and
12192           IDENTIFY commands into server, as required by the protocol.
12193
12194         * Removed method function pointers from SilcBuffer structure. They
12195           weren't used to anything and just increased the context size for
12196           no good reason.  This change also made silc_buffer_alloc and
12197           silc_buffer_free functions inline functions.
12198
12199         * Disabled command flooding detection support until it's fixed so
12200           that it accepts commands in but does not execute them more than once
12201           in two seconds.
12202
12203         * Added silc_net_localhost(), to return local hostname, into
12204           lib/silcutil/silcnet.[ch].  Also added client->hostname pointer
12205           that must be initialized before calling silc_client_init.
12206
12207         * Added new function: silc_server_send_notify_on_channels to send
12208           notify messages to all channels client has joined.  It is assured
12209           that the message is sent only once per client.
12210
12211         * Moved silc_log_format (from lib/silcutil/silclog.[ch] into
12212           lib/silcutil/silcutil.[ch] as silc_format function.  The new
12213           function is generic and is used by server as well, not only by
12214           the logging routines.
12215
12216         * Added new SKE status type: SILC_SKE_STATUS_BAD_VERSION to indicate
12217           the provided version string was not acceptable.  Added new function:
12218           silc_ske_check_version into lib/silcske/silcske.h.  The function
12219           must be implemented by the application (client or server) and it
12220           does not reside in the SKE library.  The function checks the version
12221           string remote end sent.
12222
12223         * Added back pointers (to opaque context and to SilcSocketConnection)
12224           into SilcPacketContext structure into lib/silccore/silcpacket.h.
12225
12226         * Added silc_packet_context_dup into lib/silccore/silcpacket.[ch] to
12227           duplicate packet context structure.
12228
12229         * Changed `notify' client operation to send same arguments as client
12230           receives from server except for ID's.  ID's are mapped to correct
12231           ID entry and that is returned.  Also, if channel entry is not sent
12232           by server but the notify is for channel the channel entry is sent
12233           to application (otherwise application doesn't know that it is for
12234           channel (library gets it from packet's Destination ID)).
12235
12236         * Added silc_client_remove_from_channels into client library to
12237           remove a client from all channels it has joined to.  Used when
12238           received SIGNOFF notify from server.  Added also new function
12239           silc_client_replace_from_channels to replace old ID entry with
12240           new ID entry on all channels.  Used when received NICK_CHANGE
12241           notify from server.
12242
12243         * Fixed ID Cache list handling in silc_idlist_get_client in
12244           lib/silcclient/idlist.c.  Also, added silc_idlist_get_client_by_id
12245           to get (or query) client by ID.
12246
12247         * Updated TODO list.
12248
12249         * Added connection authentication status message defined by the
12250           protocol: SILC_CONN_AUTH_OK and SILC_CONN_AUTH_FAILED and added the
12251           support for these into the code in client and server side.
12252
12253         * Added generic function silc_client_send_command to send any command
12254           with variable argument list.  Application should use this function
12255           to send commands if the command functions provided by the library
12256           does not suite for the application's user interface needs.
12257
12258         * Added new `failure' client operation.  Application is notified about
12259           received failure packet if client is executing a protocol.  In this
12260           case the protocol's execution has failed.
12261
12262         * Added SKE's end notify to send the SKE_SUCCESS notify message that
12263           is required by the protocol.
12264
12265         * Added SILC_PROTOCOL_STATE_FAILURE to indicate received failure
12266           packet from remote.  SILC_PROTOCOL_STATE_ERROR indicates local
12267           error at our end.
12268
12269         * Added status flag to SilcSKE object to indicate realtime status
12270           of the SKE protocol.
12271
12272         * Application receives now exactly same command reply arguments as
12273           the library receives from server.  However, if ID is received the
12274           corresponding ID entry is returned to the application (eg. Client
12275           ID is mapped to correct SilcClientEntry entry and that is returned).
12276           Changed command_reply client operation due to this change.
12277
12278         * Changed all ID's in commands and in command replys as ID Payloads.
12279           Change affected both client and server side codes.
12280
12281           All ID's sent in SILC network (with execption of ID's in SILC
12282           Packet header) are sent in ID Payload to support variable length
12283           ID's.
12284
12285         * Server now notifies nick changes and notifies all clients on
12286           the channels about the new nickname (about the new Client ID,
12287           actually).
12288
12289         * Implemented CMODE command to change channel modes. Supports all
12290           channel modes defined by the protocol specs except ban and invite
12291           lists. (Also, private channel key mode is supported but support for
12292           setting private channel key in client is missing, thus, this mode
12293           has no effect on client side (except that server requires that the
12294           client uses private channel key and normal channel traffic does not
12295           work anymore)).
12296
12297           Also, invite mode works per se, but INVITE command does not work
12298           yet correctly, so you can set channel as invite only channel but
12299           inviting clients to the channel does not work (it is yet to be
12300           thought what's the best way to do it).
12301
12302         * Added new command SILC_COMMAND_CUMODE to change user mode on the
12303           channel.  Defined user modes: CHANNEL_FOUNDER and CHANNEL_OPERATOR.
12304           Implemented CUMODE command to change user's mode on the channel.
12305           Supports all modes defined by the protocol specs.
12306
12307         * Added NAMES command reply to return users modes on the channel.
12308
12309         * Removed unnecessary and slow ciphers from lib/silccrypt.
12310
12311         * Set SO_KEEPALIVE option to connection sockets by default.
12312
12313         * Added new command reply status: SILC_STATUS_USER_NOT_ON_CHANNEL.
12314
12315         * Added notify types: MOTD, CMODE_CHANGE and CUMODE_CHANGE.  Also,
12316           redefined the Notify Payload into protocol specs.
12317
12318         * Added silc_id_payload_parse_id to get ID directly from raw
12319           ID payload data.
12320
12321 Mon Oct  9 20:57:02 EEST 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
12322
12323         * Changed SILC_COMMAND_IDENTIFY in protocol specification to
12324           accept searching by Client ID as well.
12325
12326         * Added support for LEAVE and SIGNOFF notify types in client library.
12327
12328         * Added silc_id_payload_parse_data into lib/silccore/silcpayload.[ch]
12329           to parse ID Payload from raw data.
12330
12331 Sun Oct  8 19:33:08 EEST 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
12332
12333         * Added flags parameter into silc_ske_assemble_security_properties
12334           function in lib/silcske/silcske.[ch].
12335
12336         * Changed notify client operation to fit better for notify messages
12337           sent by server.  The notify payload received from server is now
12338           passed to the application (after parsing it to SilcNotifyPayload).
12339           It is application's responsibility to retrieve the arguments
12340           from the payload and show the message the way it wants.  The message
12341           sent by server is implementation specific.
12342
12343         * Changed public keys to comply with the protocol specification.
12344           Old public keys are not supported anymore and are not compatible.
12345
12346         * Removed nickname from Channel Payload as the latest draft removed
12347           it.  The client must resolve the nickname from the NAMES command
12348           reply received when it joined the channel.
12349
12350           Also, changed all channel_xxxx_payload to channel_payload_xxxx.
12351
12352 Sat Oct  7 21:55:01 EEST 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
12353
12354         * Fixed some errors in protocol specification drafts.
12355
12356         * Created lib/silccore/silcnotify.c to implement Notify Payload
12357           encoding and decoding, lib/silccore/silcpayload.[ch] to implement
12358           generic payloads described by protocol specifications.  The file
12359           includes implementations for ID Payload and Argument Payload.
12360
12361         * Changed Command Payload implementation to use the new Argument
12362           Payload.  Changed command_xxxx_payload to command_payload_xxxx
12363           to comply with SILC coding conventions.
12364
12365         * Added suppport for Argument Payload handling in Notify Payload
12366           implementation as protocol requires it.  Added the new support
12367           into server and client lib as well.
12368
12369 Thu Oct  5 21:16:28 EEST 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
12370
12371         * Added support for multiple nicknames on same channel.  [n] is
12372           added locally to the nickname if there are more than one same
12373           nicknames on the channel.
12374
12375         * Server now sends all nicknames that matched WHOIS request.
12376           Client also shows the list received from server.
12377
12378         * Added TOPIC command to client side.  User can now set and show
12379           current topic on channel.
12380
12381         * Added MOTD command to client and server.  Also, server sends the
12382           motd when client connects to the server.
12383
12384         * Changed version strings to comply ISO 8601.
12385
12386 Wed Oct  4 23:29:06 EEST 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
12387
12388         * Fixed protocol error handling in client library.  It should now
12389           cope even if the SKE fails for some reason.
12390
12391         * Made new protocol specification drafts for submitting to IETF.
12392
12393         * Implemented TOPIC command to server in silcd/command.c.
12394
12395         * Added two new notify types into lib/silccore/silcnotify.h:
12396           SILC_NOTIFY_TYPE_NICK_CHANGE and SILC_NOTIFY_TYPE_TOPIC_SET to
12397           notify nickname change and topic setting/change on a channel.
12398
12399         * API change of command_reply operation in client library.  The
12400           application gets now the status type received from server as well.
12401
12402 Sat Sep 30 16:57:42 EEST 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
12403
12404         * Removed the function just added to lib/silcutil/silcschedule.[ch].
12405
12406         * Cras fixed and optimized the packet handling even further and
12407           it should work now.  Minor change to the prototype of function
12408           silc_packet_receive_process in lib/silccore/silcpacket.[ch].
12409
12410 Sat Sep 30 08:48:47 EEST 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
12411
12412         * Added new function into lib/silcutil/silcschedule.[ch]:
12413           silc_schedule_with_fd to select() a specified fd.  The function
12414           returns after timeout expires or data arrives or goes.  The
12415           function is used by packet routines to wait that all data is
12416           received from network.
12417
12418         * Fixed data reading from network in lib/silccore/silcpacket.c.
12419           The code now assures that all data is read from the fd and then
12420           continues packet processing.  This was a bug fix since the code
12421           used to drop some data in some circumstances.
12422
12423         * Added new function into lib/silcclient/client.[ch]:
12424           silc_client_start_key_exchange to start key exchange after
12425           connection has been established to server.  The code internally
12426           now uses this funtion but its main purpose was to provide it
12427           for applications that perform their own connecting.  After
12428           application has created a connection it merely calls this
12429           function to start the key exchange between client and server.
12430           The library takes care of everything else after that.
12431
12432           Updated also lib/silcclient/README to explain the usage of
12433           this new function.
12434
12435         * Do not send to application information that connection has
12436           been established.  Application gets notified it by connect
12437           operation anyway.
12438
12439 Thu Sep 28 23:40:19 EEST 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
12440
12441         * Applied cras's patch to add silc_schedule_one function.  The
12442           function runs scheduler once and returns.
12443
12444         * Fixed the scheduler after cras messed it up.  The timeout
12445           handling works now as it's supposed to work.
12446
12447         * Added into lib/silccore/ silcnotify.h to include notify
12448           message types support.  Changed silc_server_send_notify*
12449           functions, in server.[ch], to support those new notify types.
12450           Added the support for the notify types into client library,
12451           as well.  Added new notify client operation into ops.h in
12452           lib/silcclient/.
12453
12454         * Changed silc_server_packet_send_to_channel to send normal
12455           packets instead of just channel message packets.  The function
12456           is now used to send the notify packets to channels.  It is not
12457           used to send channel message packets anymore, as server never
12458           sends them anymore.
12459
12460         * Added explicit casting into lib/silcutil/silcbuffmt.c to few
12461           va_arg()s as it seems to require it nowadays.  I guess, if SILC
12462           is compiled with older va_arg() the new code should work anyway.
12463
12464 Wed Sep 13 18:10:14 EEST 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
12465
12466         * Splitted core library.  Core library (lib/silccore) includes
12467           now only SILC protocol specific core (and common) components.
12468           Created new utility library (lib/silcutil) that includes more
12469           generic purpose stuff.  The stuff for util library was taken
12470           from the old core library.  This was minor and easy split.
12471
12472         * Created SILC Client Library (lib/silcclient) that includes
12473           implementation of the SILC client without user interface.  This
12474           was major move from silc/ directory.  The code has been changed
12475           so that it is transparent towards the user interface.  The
12476           silc/ directory includes now the same user interface as before
12477           and it uses the new client library.  Read lib/silcclient/README.
12478           Basicly, the client library performs everything else related
12479           to SILC except user interface handling.  Also, configuration
12480           files are considered to be part of user interface and library
12481           does not handle them.
12482
12483           This change also changed a lot of structures, function naming etc.
12484           Most important change was that SilcClientWindow object was
12485           renamed to SilcClientConnection in the client library.  Created
12486           also new file lib/silcclient/ops.h.  Also added new files
12487           silc/local_command.[ch] and silc/client_ops.[ch].
12488
12489           All these changes were made to make it easier for user interface
12490           designers to create what ever user interface for the SILC client
12491           they want.
12492
12493           It is also expected that the server will be moved to lib
12494           directory as well and SILC Server Library will be created;
12495           sometimes in the future.
12496
12497         * Removed Local commands from lib/silccore/silccommand.h as
12498           they are application specific and new client library does not
12499           handle any of those anymore.
12500
12501         * Several functions moved to lib/silcutil/silcutilc.[ch] from
12502           old client implementation in silc/.
12503
12504         * Added support for callback functions in SILC_LOG_* macros.
12505           Application can now set its own callbacks that will be called
12506           instead of using the default functions that will always print
12507           the debug messages to stderr (or stdout).  Also, debugging can
12508           now be disabled by setting silc_debug to FALSE and re-enabled by
12509           setting it to TRUE.  Note, that logging will still work even
12510           if debugging is disabled.
12511
12512           New functions in lib/silcutil/silclog.[ch]: silc_log_set_callbacks,
12513           silc_log_reset_callbacks, silc_log_set_debug_callbacks and
12514           silc_log_reset_debug_callbacks.
12515
12516         * To enable debugging in silc client one must give now -d
12517           option on command line.
12518
12519         * Changed silc_schedule_init to automatically allocate task queues
12520           if they are not allocated before calling it.
12521
12522 Thu Sep  7 10:49:33 EEST 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
12523
12524         * Added GMP 3.1 into math library.
12525
12526 Sun Aug 20 21:27:26 EEST 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
12527
12528         * Added SILC_PACKET_REMOVE_CHANNEL_USER to remove a client from
12529           a channel in SILC network.  The packet is used by servers and
12530           routers to notify other routers that user has left a channel.
12531           This little feature was missing until now.  Added the feature
12532           to protocol specification as well.
12533
12534           Added functions: silc_server_send_remove_channel_user and
12535           silc_server_remove_channel_user into server.[ch].
12536
12537         * Added SILC_PACKET_REKEY and SILC_PACKET_REKEY_DONE into
12538           lib/silccore/silcpacket.h.  However, they are not implemented
12539           yet.
12540
12541 Sat Aug 19 23:04:16 EEST 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
12542
12543         * Fixed joining to a channel and sending channel messages
12544           between server and router.  The channel message sending should
12545           now work inside a cell.
12546
12547 Tue Jul 25 20:46:13 EEST 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
12548
12549         * Fixed the private message sending between server and router.
12550           The private message sending should now work inside a cell.
12551
12552         * Added silc_server_replace_id into server.[ch] to replace
12553           existing ID in the SILC network.
12554
12555         * Added silc_idlist_find_server_by, silc_idlist_replace_client_id
12556           and silc_idlist_replace_server_id into idlist.[ch] in server.
12557
12558 Mon Jul 24 18:33:31 EEST 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
12559
12560         * Fixed the server to server connections.  Server can again now
12561           connect to router.  Router to router connections probably does
12562           not work just yet.
12563
12564 Thu Jul 20 13:15:01 EEST 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
12565
12566         * Added dynamic protocol registering support.  Now protocols can
12567           registered and unregistered on the fly.  Patch by cras.
12568
12569 Wed Jul 19 19:08:46 EEST 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
12570
12571         * Added lib/contrib directory to hold routines that some platforms
12572           don't have but are needed by SILC.
12573
12574         * Added getopt.c, getopt1.c and getopt.h from GNU C library
12575           into lin/contrib to provide getopt() and getopt_long() for
12576           those who don't have it.
12577
12578 Tue Jul 18 20:41:20 EEST 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
12579
12580         * Added AWAY command to client.  When away message is set and
12581           client receives a private message packet the client automatically
12582           replies to the sender with the away message.
12583
12584         * Fixed a bug in lib/silcmath/mpbin.c: silc_mp_mp2bin.  This
12585           bug seemed to be the cause of recent problems when compiling
12586           with gcc-2.95.
12587
12588         * Added version detection support to SKE protocol specification
12589           and added the new changes to the SKE implementation as well.
12590           There were other minor changes in the SKE protocol as well.
12591
12592           Many changes in lib/silcske/silcske.[ch] and in
12593           lib/silcske/payload.[ch].
12594
12595         * Added ^U functionality, clear input line.  Patch from cras.
12596
12597 Mon Jul 17 23:33:26 EEST 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
12598
12599         * Mainly small bugfixes on core library.  Fixed some debugging
12600           logging and buffer overflow in silclog.c.
12601
12602         * Updated config.sub and config.guess on the distribution tree.
12603
12604 Sat Jul 15 15:33:48 EEST 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
12605
12606         * Added command lagging support in server. Client may execute
12607           commands now only once in two seconds.
12608
12609 Thu Jul 13 22:10:21 EEST 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
12610
12611         * Optimized packet reception. MAC computation and checking is now
12612           also more optimized.  A lot previously duplicated code is now
12613           used as generic by both client and server.
12614
12615         * Fixed key pair generation in clientutil.c
12616
12617 Wed Jul 12 18:28:07 EEST 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
12618
12619         * Added into lib/silccore/silcbufutil.[ch] new function;
12620           silc_buffer_realloc.
12621
12622         * Moved generic packet sending/encryption functions to
12623           lib/silccore/silcpacket.[ch] from client and server.  Some
12624           rewriting of the functions.
12625
12626         * Moved all generic packet reception/decryption functions to
12627           lib/silccore/silcpacket.[ch] from client and server.  The
12628           packet processing is now much cleaner in both client and server.
12629           These were major changes in both client and server.
12630
12631         * Created many common functions in server to do packet sending.
12632           Previously code were duplicated a lot, this has been removed
12633           with these changes.
12634
12635 Tue Jul 11 20:27:26 EEST 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
12636
12637         * Rewrote major parts of the ID cache system.  Don't know
12638           whether it is better now or not but at least the API is more
12639           cleaner now.
12640
12641         * Major rewrite on ID cache stuff on client because of the ID
12642           cache API changes.  Added idlist.c to client.
12643
12644         * Also major rewrite on ID cache stuff on server as well.
12645           Major rewrite of idlist.[ch]. SilcXXXList's are now named
12646           SilcXXXEntry's.  We won't keep anymore idlist specific pointers
12647           in hand, instead they are all put into the ID cache system now.
12648           All server_idlist_* routines uses ID cache now instead of
12649           traversing its own lists (those lists does not exist anymore).
12650           SilcIDList though still exists.  Also, SilcXXXEntry's are
12651           now pointers.
12652
12653 Sun Jul  9 15:19:24 EEST 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
12654
12655         * Finally made the SKE implementation compliant to the protocol
12656           specification.  All mp integers are now binary encoded as
12657           opposed being HEX encoded.
12658
12659         * Added lib/silcmath/mpbin.[ch].  Encoding mp intergers to and
12660           from binary data.
12661
12662         * Added into lib/silccore/silcutil.[ch] PEM encoding/decoding
12663           functions: silc_[encode/decode]_pem.  Also added function
12664           silc_encode_pem_file to PEM encode with newlines ('\n') for
12665           saving into a file.
12666
12667         * SILC public keys are now encoded either PEM or binary.  Same
12668           option is for private keys as well.  By default private keys
12669           are binary encoded and public keys PEM encoded.  Silly HEX
12670           encoding were removed.
12671
12672         * Added into lib/silccrypt/silchash.[ch] silc_hash_fingerprint
12673           function to create fingerprints.
12674
12675         * Fixed a bug in SHA1; does not change the original data anymore.
12676
12677         * Partly implemented INFO command on client and server side.
12678           Fixed CLEAR command.  Changes to SERVER command; show current
12679           server(s) when giving command without arguments.  Added
12680           VERSION command to client.
12681
12682         * Added check to server that unregistered connections cannot
12683           execute commands (unless it is specificly allowed).
12684
12685 Thu Jul  6 18:12:24 EEST 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
12686
12687         * Fixed screen refresh.
12688
12689         * Fixed channel joining bug from client.  On some circumstances
12690           client tried to join to a channel it had already joined.
12691
12692         * Added public key verification process into client's protocol.c.
12693           The client now verifies the public key from user and saves
12694           it into ~./silc/serverkeys/ directory.
12695
12696           Added into: clientutil.[ch]: silc_client_verify_server_key.
12697
12698         * Changed SKE protocol's silc_ske_initiator_finish function
12699           to accept callback function that verifies the received public
12700           key.  Removed old silc_ske_verify_public_key function.
12701
12702 Wed Jul  5 19:19:02 EEST 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
12703
12704         * Added into silcpkcs[ch]: silc_pkcs_public_key[_data]_set and
12705           silc_pkcs_private_key[_data]_set.
12706
12707         * Made the password and public authentication more cleaner in
12708           server's protocol.c.
12709
12710         * Removed historic and obsolete protocol `channel_auth' from
12711           both client and server.
12712
12713         * Removed wrong way of sending command status messages from
12714           server to client in server's command.c.  The old way violated
12715           protocol specification.
12716
12717           Changes to silccore/silccommand.[ch]: removed
12718           silc_command_encode_status_payload -> not needed anymore,
12719           changed silc_command_encode_payload_va to accept extra
12720           argument on variable argument list.  The argument type must
12721           now be provided to the function.  Also, added new function:
12722           silc_command_encode_reply_payload_va which is same as
12723           normal command_encode_payload_va except command status type
12724           is provided as extra argument.
12725
12726 Tue Jul  4 18:26:39 EEST 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
12727
12728         * Added ~./silc directory handling.  The directory includes the
12729           public and private keys for the client.
12730
12731           Added silc_client_check_silc_dir, silc_client_create_identifier
12732           and silc_client_load_keys.
12733
12734         * Implemented SILC protocol compliant public key.  Added public
12735           and private key saving to and loading from files.
12736
12737           Added into silcpkcs.[ch]: silc_pkcs_encode_identifier,
12738           silc_pkcs_public_key_encode[_data], silc_pkcs_public_key_decode,
12739           silc_pkcs_private_key_encode[_data], silc_pkcs_private_key_decode,
12740           silc_pkcs_public_key_alloc, silc_pkcs_public_key_free,
12741           silc_pkcs_private_key_alloc and silc_pkcs_private_key_free.
12742
12743           Implemented: silc_pkcs_save_[public/private]_key[_data] and
12744           silc_pkcs_load_[public/private]_key.
12745
12746 Mon Jul  3 18:51:27 EEST 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
12747
12748         * Added silc_server_get_route (route.[ch]) to get connection
12749           data for the fastest route for given ID.
12750
12751         * Implemented INVITE command on client and server.  The command
12752           were re-defined in the SILC Protocol Specification and the
12753           implementation now complies with the specification.
12754
12755         * Implemented PING command on client and server.
12756
12757         * Implemented NAMES command on client and server.  The server side
12758           supports currently only normal server not router server yet.
12759           Some changes to NAMES definition in SILC protocol specification.
12760
12761 Sun Jul  2 18:23:01 EEST 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
12762
12763         * Implemented LEAVE command on client and server.
12764
12765         * Previously deprecated SILC_PACKET_FORWARDED flag is now in use
12766           again.  This change was made to the protocol as well.  Server
12767           should not violate the protocol specification anymore.
12768
12769 Fri Jun 30 14:03:26 EEST 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
12770
12771         * Added SOCKS4 and SOCKS5 support to SILC client.  SOCKS5
12772           was tested.  SOCKS4 was not but should work anyway.