Set destination ID to packet stream as responder too.
[silc.git] / CHANGES
1 Sat Jun 30 21:48:08 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
2
3         * Set the destination ID to packet stream as SKE responder
4           if ID was present in key exchange packet.  Affected file
5           is lib/silcske/silcske.[ch].
6
7 Thu Jun 28 19:19:13 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
8
9         * SILC Client 1.1.1.
10
11 Sun Jun 24 18:47:55 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
12
13         * SILC Toolkit 1.1.1.
14
15         * Compile sources with _GNU_SOURCE on Linux systems.  Affected
16           file is configure.ad.
17
18 Sun Jun 24 16:33:59 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
19
20         * Fixed Unix signal task dispatching to not lock the signals
21           when dispatching the callback to avoid deadlocks.  Affected
22           file is lib/silcutil/unix/silcunixschedule.c.
23
24 Sun Jun 24 14:43:21 CEST 2007  Jochen Eisinger <coffee@silcnet.org>
25
26         * Fix configure output for with-plugin.  Affected file is
27           apps/irssi/configure.ad
28
29 Tue Jun 19 17:05:48 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
30
31         * Added SILC_VERSION macro for checking package versions at
32           compile time.  Affected files are configure.ad,
33           includes/silc.h.in and includes/silcversion.h.in.
34
35 Mon Jun 18 23:47:22 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
36
37         * Use SILC_VERIFY to assert that silc_rwlock_wrlock can be
38           called only once per thread on Unix.  Affected file is
39           lib/silcutil/unix/silcunixthread.c.  Added same for mutex
40           as well.   Documented same on the API in 
41           lib/silcutil/silcmutex.h.
42
43         * Fixed USERS command reply write-lock unlocking.  Affected file
44           is lib/silcclient/command_reply.c.
45
46 Mon Jun 18 08:14:26 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
47
48         * Fixed silc_create_key_pair to check for valid identifier.
49           Affected file is lib/silcapputil/silcapputil.c.
50
51 Sun Jun 17 20:08:26 CEST 2007  Jochen Eisinger <coffee@silcnet.org>
52
53         * Rewrite signed public message handling, adopting the new
54           hilight interface.  Affected file is
55           apps/irssi/src/fe-common/silc/fe-silc-messages.c
56
57 Thu Jun 14 21:15:31 CEST 2007  Jochen Eisinger <coffee@silcnet.org>
58
59         * Fix off by one error when loading modules.  Affected file is
60           apps/irssi/src/core/modules-load.c
61
62         * Don't delete hilight entry (because it's just a pointer, not a
63           copy).  Affected file is 
64           apps/irssi/src/fe-common/silc/fe-silc-messages.c
65
66 Mon Jun 11 22:10:17 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
67
68         * Added __SILC_TOOLKIT_x_x_x macro to all Toolkit distribution
69           which can be used to check for Toolkit version in third-party
70           software.  Affected file is configure.ad, includes/silc.h.in.
71
72 Sun Jun 10 17:32:15 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
73
74         * Added support for channel@server channel name strings to
75           client library (SILC protocol version 1.3 change).  Affected
76           files are lib/silcclient/silcclient_entry.h, client_entry.c.
77
78         * Added full_nicknames and full_channel_names settings to
79           SilcClientParams that can be used to specify whether client
80           library returns full nickname and channel name strings.
81           Full strings are nick@server and channel@server.  Affected
82           file is lib/silcclient/client_entry.c and command.c.
83
84 Sat Jun  9 19:43:25 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
85
86         * Fixed unix connecting failure to return error code correctly.
87           Affected file is lib/silcutil/unix/silcunixnet.c.
88
89 Fri Jun  8 23:32:33 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
90
91         * Fixed SKE timeout double free crash.  Affected file is
92           lib/silcske/silcske.c.
93
94         * Fixed MIME multipart decoding buffer overflow.  Affected file
95           is lib/silcutil/silcmime.c.  Thanks to Matt Miller for patch.
96
97 Fri Jun  8 18:39:34 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
98
99         * Fixed connection auth protocol timeout crash.  Affected
100           file is lib/silcske/silconnauth.c.
101
102         * Fixed FSM machine finishing to check for existing threads
103           at the final free callback to allow time for the threads to
104           finish.  Affected file lib/silcutil/silcfsm.c.
105
106 Thu Jun  7 21:25:31 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
107
108         * Fixed silc_client_get_clients_local to check the nick's
109           server also if nick@server nickname string is given to the
110           function.  Affected file is lib/silcclient/client_entry.c.
111
112 Wed Jun  6 18:33:05 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
113
114         * Added notify callback to silc_schedule_init which can be used to 
115           set a notify callback for scheduler which is called when task is
116           added to scheduler or deleted from scheduler.  Affected file
117           is lib/silcutil/silcschedule.[ch].
118
119         * Dispatch timeout tasks after dispatching FD tasks if the timeout
120           was very short.  Affected file is lib/silcutil/silcschedule.c.
121
122         * Rewrote the SILC scheduler handling in SILC Client to not poll
123           every few msecs but to use the new notify callback.  Affected 
124           file is apps/irssi/src/silc/core/silc-core.c.
125
126         * Fixed SFTP client library read buffer size which was too small.
127           Affected file is lib/silcsftp/sftp_client.c.
128
129         * Fixed file transfer crash bug in /QUIT in SILC Client.  Close
130           the FTP sessions before quitting the client.  Affected file
131           is apps/irssi/src/silc/core/silc-servers.c.
132
133 Tue Jun  5 20:48:40 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
134
135         * Fixed silc_packet_get_ids to decode the IDs correctly.
136           Affected file is lib/silccore/silcpacket.c.
137
138         * Fixed silc_client_get_clients_local to parse correctly nickname
139           string that may have server name in it (nick@server) regardless
140           whether it was formatted nickname or not.  Affected file is
141           lib/silcclient/client_entry.c.
142
143 Mon Jun  4 22:02:53 CEST 2007  Jochen Eisinger <jochen@penguin-breeder.org>
144
145         * Only destroy sendbuffers, if they still exist (they cease to
146           exist during /upgrade).  Affected file is
147           apps/irssi/src/silc/core/silc-servers.c
148
149 Mon Jun  4 21:24:17 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
150
151         * Removed --enable-silc-plugin.  Added --with-silc-plugin.
152           Affected files are configure.ad, lib/configure.ad,
153           apps/irssi/configure.ad, apps/irssi/configure.in,
154           apps/irssi/scripts/Makefile.am,
155           apps/irssi/scripts/examples/Makefile.am,
156           apps/irssi/src/silc/core/silc/Makefile.am,
157           apps/irssi/src/fe-common/silc/Makefile.am.
158
159 Mon Jun  4 08:35:59 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
160
161         * SILC Client 1.1.
162
163 Sun Jun  3 14:00:09 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
164
165         * Fixed DESTDIR handling in make install.
166
167 Sat Jun  2 21:04:32 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
168
169         * SIM modules are not delivered to SILC CLient distribution
170           anymore.
171
172         * Changed default installation path from /usr/local/silc to
173           /usr/local for all distributions.
174
175         * Removed --with-etcdir and --with-docdir.  The etcdir is now
176           the system's default.  The Docdir is system's default.
177
178 Sat Jun  2 00:51:57 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
179
180         * If public key/private key loading fails set the return
181           pointer to NULL.  Affected file is lib/silccrypt/silcpkcs.c.
182
183         * If private key loading fails in silc_load_key_pair free the
184           loaded public key.  Affected file is
185           lib/silcapputil/silcapputil.c.
186
187         * Fixed key pair loading crash with SILC Plugin if key pair
188           loading fails.  Affected file is
189           apps/irssi/src/silc/core/silc-core.c.
190
191         * Fixed SILC Client help and script file installation path
192           to go to prefix/share/silc.  Affected files are
193           apps/irssi/src/scripts/Makefile.am and
194           apps/irssi/docs/help/Makefile.am.gen.
195
196 Thu May 31 16:49:13 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
197
198         * Fixed UTC offset minutes to be actually minutes.  Affected
199           file is lib/silcutil/silctime.c.
200
201 Thu May 31 09:40:56 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
202
203         * SILC Toolkit 1.1.
204
205         * Added support for checking for timezone and tm_gmtoff.
206           Affected files are configure.ad and lib/silcutil/silctime.c.
207
208 Wed May 30 18:46:34 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
209
210         * Added silc-toolkit.spec.in RPM spec file.
211
212 Mon May 28 23:21:39 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
213
214         * Fixed nickname formatting crash when updating existing
215           client entry.  Affected file is lib/silcclient/client_entry.c.
216
217         * Fixed MIME object encoding in attribute payload encoding.
218           Affected file is lib/silccore/silcattrs.c.
219
220 Mon May 28 09:02:26 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
221
222         * SILC Client 1.1 Beta6
223
224 Sun May 27 20:38:30 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
225
226         * Copy SILC Plugin's libfe_common_silc.so to libfe_silc.so so
227           that user's don't have to do it manually.  Affected file
228           is apps/irssi/src/fe-common/silc/core/Makefile.am.
229
230 Thu May 24 15:30:31 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
231
232         * SILC Toolkit 1.1 Beta4.
233
234         * Fixed channel and server entry freeing in client library.
235           Affected file is lib/silcclient/client_entry.c.
236
237         * Do not allow stopping client before it has been started.
238           Affected file is lib/silcclient/client.c.
239
240 Wed May 23 23:21:03 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
241
242         * Fixed formatted nickname renaming to rename also irssi's
243           nicklist (/NAMES etc).  Affected file is
244           apps/irssi/src/silc/core/client_ops.c.
245
246         * Fixed SILC Plugin crash when stopping client library before
247           it has been started.  Affected file is
248           apps/irssi/src/silc/core/silc-core.c.
249
250 Tue May 22 17:18:54 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
251
252         * For SILC Client and SILC Server check for 1.1 Toolkit
253           in configure.  Affected file is configure.ad.
254
255         * Added better library linking flags and orders for SILC Client.
256           Affected file is configure.ad, Makefile.defines_int.in and
257           apps/irssi/src/fe-text/Makefile.am
258
259 Mon May 21 08:26:38 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
260
261         * SILC Client 1.1 Beta5.
262
263 Sun May 20 18:34:22 CEST 2007  Jochen Eisinger <coffee@silcnet.org>
264
265         * Add hooks for Irssi 0.8.11 module functions.  Affected file
266           is apps/irssi/src/fe-common/silc/fe-common-silc.c
267
268 Sat May 19 14:46:36 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
269
270         * Fixed passphrase authentication with server.  Affected file
271           is lib/silcclient/client_connect.c.
272
273         * Fixed passphrase authentication as responder.  Affected file is
274           lib/silcske/silcconnauth.c.
275
276         * Changed SilcAskPassphrase and SilcGetAuthMeth callbacks to
277           return data as const.  Affected file is
278           lib/silcclient/silcclient.h.
279
280         * Fixed timeout calculation in Symbian scheduler.  Affected
281           file is lib/silcutil/symbian/silcsymbianscheduler.c.
282
283 Fri May 18 21:10:38 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
284
285         * Do not uninitialize u.m.threads atomic int in finish but in
286           free.  Fixes crash on any platform using atomic operations
287           using mutexes (like Symbian).  Affected file is
288           lib/silcutil/silcfsm.c.
289
290         * Fixes Symbian scheduler wakeup synchronization.  Affected file
291           is lib/silcutil/symbian/silcsymbianscheduler.c.
292
293 Fri May 18 18:10:36 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
294
295         * Fixed nickname formatting to handle already formatted nicknames
296           better.  Affected file is lib/silccilent/client_entry.c.
297
298         * Added "foo#2 appears as foo" support to SILC Client when user
299           leaves or quits and one formatted nickname remain.  Affected file 
300           is apps/irssi/src/silc/core/client_ops.c.
301
302         * Send SilcChannelEntry to application in SILC_NOTIFY_TYPE_SIGNOFF.
303           Affected file is lib/silcclient/client_notify.c.
304
305 Thu May 17 18:05:10 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
306
307         * Fixed silc_show_public_key to not free public key in case of
308           failure.  Affected file is lib/silcapputil/silcapputil.c.
309
310 Thu May 17 17:09:50 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
311
312         * SILC Toolkit 1.1 Beta3.
313
314         * Porting Toolkit to Symbian.  It should work while some sporadic
315           odd crashes remain.  However I was able to run mybot on SILCNet.
316           Basically tested scheduler, net routines, socket  routines,
317           threads and some other utility routines.  Affected files are
318           in lib/silcutil/symbian/.
319
320 Thu May 17 11:57:40 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
321
322         * Show realname and email address from public key when verifying
323           cached public keys with GETKEY.  Affected files are
324           apps/irssi/src/fe-common/module-formats.[ch] and
325           apps/irssi/src/silc/core/client_ops.c.
326
327 Wed May 16 20:41:04 CEST 2007  Jochen Eisinger <coffee@silcnet.org>
328
329         * Include SILC Plugin theme.  Affected file is apps/irssi/plugin.theme
330
331         * Include SILC Plugin /silc command help.  Affected file is
332           apps/irssi/docs/help/silc
333
334         * Create channels before joining them.  Affected file is
335           apps/irssi/src/silc/core/client_ops.c
336
337 Wed May 16 18:59:22 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
338
339         * Fixed channel private key listing with /key.  Affected file
340           is apps/irssi/src/silc/core/silc-channels.c.
341
342         * Fixed the public headers from anonymous structures.  Affected
343           files are lib/.
344
345         * Changed silc_buffer_*len macros to inline functions.  Affected
346           file is lib/silcutil/silcbuffer.h.
347
348 Wed May 16 10:21:45 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
349
350         * Fixed nickname format parsing in JOIN notify handling and
351           in WHOIS command reply.  Affected file is
352           apps/irssi/src/silc/core/client_ops.c.
353
354 Wed May 16 09:34:10 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
355
356         * SILC Client 1.1 Beta4.
357
358 Tue May 15 23:55:41 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
359
360         * Added SILC_VERIFY macro which is equivalent to SILC_ASSERT
361           but is compiled always in.  Affected file is 
362           lib/silcutil/silclog.h.
363
364         * Use SILC_VERIFY in FSM macros instead of SILC_ASSERT which is
365           not there in release builds.  Affected file is
366           lib/silcutil/silcfsm.h.
367
368 Tue May 15 21:19:09 CEST 2007  Jochen Eisinger <coffee@silcnet.org>
369
370         * SILC Client 1.1-beta3
371
372 Mon May 14 23:20:59 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
373
374         * Added silc_utf8_c2w and silc_utf8_w2c to do UTF-8 to widechar
375           and widechar to UTF-8 conversions.  Affected files are
376           lib/silcutil/silcutf8.[ch].
377
378 Mon May 14 19:45:14 CEST 2007  Jochen Eisinger <coffee@silcnet.org>
379
380         * Include a README for the SILC Plugin
381
382 Sun May 13 22:08:59 CEST 2007  Jochen Eisinger <coffee@silcnet.org>
383
384         * Adopt perl Makefiles for SILC Plugin.
385
386 Sun May 13 18:27:13 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
387
388         * Fixed client library initialization when the running callback
389           is not given to silc_client_init.  Affected file is
390           lib/silcclient/client.c.
391
392         * Fixed Symbian compilation problems around the tree.  Added
393           new Carbide.c++ project files to symbian/ directory.
394
395         * Fixed SilcLog API to work on Symbian.  On Symbian it doesn't
396           use any globals.  Affected files are lib/silcutil/silclog.c
397           and silclog_i.h.
398
399 Sun May 13 16:54:35 CEST 2007  Jochen Eisinger <coffee@silcnet.org>
400
401         * Fix several warnings in Irssi's Makefiles.
402
403 Sun May 13 12:16:30 CEST 2007  Jochen Eisinger <coffee@silcnet.org>
404
405         * Disable ASM if --with-pic was given.  Affected file is
406           lib/silccrypt/configure.ad
407
408 Fri May 11 19:10:54 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
409
410         * Wakeup scheduler in silc_fsm_continue and silc_fsm_next_later
411           in case they are called from a thread.  Affected file is
412           lib/silcutil/silcfsm.c.
413
414         * Fixed WIN32 thread creation to handle the Tls correctly.
415           Affected file is lib/silcutil/win32/silcwin32thread.c.
416
417 Thu May 10 18:29:18 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
418
419         * SILC Toolkit 1.1-beta2.
420
421 Thu May 10 18:21:10 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
422
423         * Fixed silc_net_tcp_connect crash on Unix and Win32.  Handle
424           the socket async operation correctly.  Changed that DNS lookup
425           is now done during connecting.  Affected files are
426           lib/silcutil/[unix|win32]/silc[unix|win32]net.c.
427
428         * Changed also silc_net_tcp_connect on Symbian to do DNS lookup.
429           Affected file is lib/silcutil/symbian/silcsymbiannet.c.
430
431         * Optimize silc_net_gethostbyname to check if the name is already
432           IP address.  Affected file is lib/silcutil/silcnet.c.
433
434 Wed May  9 19:51:28 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
435
436         * Print filename instead of empty function name in debug output
437           on WIN32.  Affected files are lib/silcutil/silclog_i.h and
438           silclog.c.
439
440         * Rewrote WIN32 SILC Scheduler.  It now handles non-blocking file 
441           descriptors and sockets better.  Though, room for optimization
442           remains.  Affected file is lib/silcutil/win32/silcwin32schedule.c.
443
444         * Removed silc_net_win32_[init|uninit].  They are called now
445           automatically when SILC Scheduler is allocated.  Wrote IPv4
446           address parser because inet_addr seemed not to work on my WIN32.
447           Affected file is lib/silcutil/win32/silcwin32net.c.
448
449         * Improved socketstream.h and stream.h documentation.
450
451 Tue May  8 18:13:38 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
452
453         * Changed private message waiting API in client library to make
454           it work better with multiple waiting threads.  The waiting is
455           not always per client entry instead of per connection.  Affected
456           files are lib/silcclient/client_prvmsg.c, client.h and
457           silcclient.h.
458
459         * Changed silc_packet_wait_init function to accept the the expected
460           Source ID of the packet as argument.  If specified only packets
461           with the specified types and Source ID are delivered.  Affected
462           files are lib/silccore/silcpacket.[ch].
463
464         * Fixed file transfer disconnection crash when closing the session
465           directly in the monitor callback after disconnection.  Affected
466           file is lib/silcclient/client_ftp.c.
467
468         * Make Toolkit compile on WIN32.  Affected files in win32/
469           and in lib/silcutil/win32/.
470
471         * Changed silc_compare_timeval to return negative, zero or
472           positive instead of just TRUE or FALSE.  This fixes 0 timeout
473           task dispatching on Windows.  Affected files are
474           lib/silcutil/silctime.[ch] and silcschedule.c.
475
476 Mon May  7 18:18:48 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
477
478         * Fixed CMODE channel auth public key retrieval.  Affected
479           file is lib/silcclient/command.c.
480
481         * Fixed CMODE command reply to return channel public keys
482           correctly.  Affected files are lib/silcclient/command_reply.c
483           and client_channel.c.
484
485 Sun May  6 12:43:19 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
486
487         * Added current channel key cipher name and HMAC name to
488           SilcChannelEntry.  Fixed channel private key creation.
489           Affected files are lib/silcclient/client_channel.c,
490           client_entry and silcclient_entry.h.
491
492         * Allow formatted nicknames as input to silc_client_get_clients
493           and silc_client_get_clients_whois.  Affected file is
494           lib/silcclient/client_entry.c.
495
496         * Fixed silc_message_payload_free crash.  Affected file is
497           lib/silccore/silcmessage.c.
498
499         * Added SILC_STATUS_ERR_NO_SUCH_PUBLIC_KEY to
500           lib/silccore/silcstatus.h.
501
502 Thu May  3 18:07:50 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
503
504         * Imported libtommath 0.41.  Renamed all mp_* functions to
505           tma_mp_* functions to avoid rare linking problems on systems
506           with mp_* functions.  Affected files are in lib/silcmath/.
507
508 Wed May  2 17:46:25 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
509
510         * SILC Toolkit 1.1 Beta1.
511
512 Wed May  2 11:38:17 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
513
514         * Set the server and router operator modes to local entry after
515           successful OPER or SILCOPER commands.  Affected file is
516           lib/silcclient/command_reply.c.
517
518 Tue May  1 14:17:06 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
519
520         * Ported SILC Socket Stream API, SILC Net API, SILC Schedule API,
521           and other smaller APIs to WIN32.  Affected files are in
522           lib/silcutil/win32/.
523
524         * Changed the various regex APIs as generic code in util library.
525           Affected files are lib/silcutil/silcstrutil.[ch].
526
527 Sat Apr 28 13:47:47 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
528
529         * Ported SILC Server to the new Toolkit API, working towards
530           SILC Server 1.1.  Affected files are in apps/silcd/.
531
532         * Added silc_skr_del_public_key, silc_skr_[ref|unref]_public_key
533           to lib/silcskr/silcskr.[ch].
534
535         * Fixed SILC public key copying to copy the identifier also.
536           Affected file is lib/silccrypt/silcpk.c.
537
538         * Added silc_packet_error_string to lib/silccore/silcpacket.[ch].
539
540         * Fixed OPER and SILCOPER passphrase asking in Client library.
541           Affected file is lib/silcclient/command.c.
542
543 Tue Apr 24 17:55:24 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
544
545         * Fixed command queue enabling after connecting to server.
546           The comparisons was from after changing to silc_utf8_strcasecmp.
547           Affected file is apps/irssi/src/silc/core/silc-servers.c.
548
549         * Fixed nickname setting with own client entry with 1.3 protocol
550           version server.  Affected file lib/silcclient/client_register.c.
551
552         * Ignore error notify for local client entry.  Affected file is
553           lib/silcclient/client_notify.c.
554
555         * Implemented responder rekey to SKE library.  Affected files are
556           lib/silcske/silcske.[ch].
557
558         * Fixed connection auth protocol completion sending.  Affected
559           file lib/silcske/silcconnauth.c.
560
561 Mon Apr 23 17:20:01 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
562
563         * Do not call TCP network listener callback with any error
564           status, as documented.  Affected file is
565           lib/silcutil/unix/silcunixnet.c.
566
567 Sun Apr 22 21:13:28 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
568
569         * Preliminary SILC Server 1.1 changes committed to apps/silcd/.
570
571         * Added SILC_SKR_USAGE_SERVICE_AUTHORIZATION SKR key usage type.
572           Changed silc_skr_find to have SilcSchedule argument and removed
573           it from silc_skr_[alloc|init].  Affected files are
574           lib/silcskr/silcskr.[ch].
575
576         * Allow NULL id for silc_idcache_add.  Affected file is
577           lib/silcapputil/silcidcache.c.
578
579         * Added silc_packet_stream_is_valid, silc_packet_get_ids and
580           silc_packet_engine_get_streams to lib/silccore/silcpacket.[ch].
581           Fixed also channel message encryption with router-to-router
582           packets.
583
584         * Added silc_id_str2id2 to lib/silccore/silcid.[ch].
585
586         * Added silc_net_get_error_string, silc_net_listener_get_ip and
587           silc_net_listener_get_hostname to lib/silcutil/silcnet.[ch].
588
589 Tue Apr 10 15:55:42 CEST 2007  Jochen Eisinger <coffee@silcnet.org>
590
591         * Add option --enable-silc-plugin.  Affected files are
592           apps/irssi/configure.{ad,in}
593
594         * Only compile the SILC Plugin if required.  Affected files are
595           apps/irssi/src/Makefile.am, apps/irssi/src/fe-common/Makefile.am
596
597         * Conditionally build the SILC Plugin.  Affected files are
598           apps/irssi/src/silc/core/Makefile.am,
599           apps/irssi/src/fe-common/silc/Makefile.am
600
601         * Backout delayed protocol exit and replace with a lame busy
602           wait.  Affected files are apps/irssi/src/fe-text/silc.c,
603           apps/irssi/src/silc/core/silc-core.c
604
605         * Fix key generation for SILC Plugin.  Affected file
606           apps/irssi/src/silc/core/clientutil.c
607
608 Tue Apr 10 12:40:19 CEST 2007  Jochen Eisinger <coffee@silcnet.org>
609
610         * Only pass -rpath to libtool when building shared libraries.
611           Affected file lib/Makefile.ad
612
613         * Removing the stray "s" in configure.ad
614
615 Sat Mar 24 19:13:58 CET 2007  Jochen Eisinger <coffee@silcnet.org>
616
617         * Redraw the screen after creating a new key.  Affected file
618           apps/irssi/src/silc/core/clientutil.c
619
620 Sun Mar 18 15:54:10 EET 2007  Pekka Riikonen <priikone@silcnet.org>
621
622         * Added SILC Client setting /set nickname_format that specifies
623           the nickname format string.  Changed default nickname format
624           string to "%n#%a".  Affected file is
625           apps/irssi/src/silc/core/silc-core.c, apps/irssi/silc.conf.
626
627         * Fixed nickname parsing with WHOIS command to accept formatted
628           nicknames.  Changed the silc_client_get_clients_local to allow
629           the searched nickname to be formatted nickname.  Removed %s and
630           %S nickname formatters.  Affected files are in lib/silcclient/.
631
632         * Added silc_client_nickname_parse to Client library API.  Affected
633           file is lib/silcclient/silcclient.h.
634
635         * Fixed nickname parsing and resolving with /MSG, /FILE and /KEY
636           commands.  Affected file are
637           apps/irssi/src/silc/core/silc-servers.c and silc-channels.c.
638
639 Sat Mar 17 19:07:15 CET 2007  Jochen Eisinger <coffee@silcnet.org>
640
641         * Incorporate SILC Plugin patches.  Affected files are
642           apps/irssi/src/fe-common/silc/module-formats.{c,h},
643           apps/irssi/src/silc/core/clientutil.{c,h},
644           apps/irssi/src/silc/core/silc-core.c,
645           apps/irssi/src/silc/core/silc-chatnets.{c,h},
646           apps/irssi/src/fe-common/silc/fe-silcnet.c, and
647           apps/irssi/src/fe-common/silc/module.h
648
649 Wed Mar 14 17:31:28 EET 2007  Pekka Riikonen <priikone@silcnet.org>
650
651         * In notify handling resolve user entries many times if the
652           resolving timedout.  Affected file lib/silcclient/client_notify.c.
653
654         * silc_client_get_clients_local do not return any invalid entries.
655           Affected file is lib/silcclient/client_entry.c.
656
657         * Do not print "there are now xx user on this channel" for users
658           that actually aren't anymore on the channel.  Affected file
659           is apps/irssi/src/client_ops.c.
660
661 Sun Mar 11 17:43:18 CET 2007  Jochen Eisinger <coffee@silcnet.org>
662
663         * When joining channels with a password given in the config file,
664           use it.  Also use it when cycling (it would be better to get
665           the password from the server, but this isn't possible in SILC).
666           Affected files apps/irssi/src/silc/core/silc-servers.c,
667           apps/irssi/src/silc/core/silc-channels.c
668
669 Sun Mar 11 15:22:42 CET 2007  Jochen Eisinger <coffee@silcnet.org>
670
671         * Import perl script for sign_messages from silc-plugin.  Affected
672           file apps/irssi/scripts/silc.pl
673
674 Sun Mar 11 15:19:10 CET 2007  Jochen Eisinger <coffee@silcnet.org>
675
676         * Only wait for a nick on connecting, when it differs
677           (not counting case) from the username.  Affected file
678           is apps/irssi/src/silc/core/silc-servers.c
679
680 Sun Mar 11 13:50:53 CET 2007  Jochen Eisinger <coffee@silcnet.org>
681
682         * Use time settings for lag settings.  Affected file is
683           apps/irssi/src/silc/core/silc-lag.c
684
685 Tue Feb 27 17:07:34 EET 2007  Pekka Riikonen <priikone@silcnet.org>
686
687         * Added silc_thread_yield.  Affected file is
688           lib/silcutil/silcmutex.h.
689
690 Wed Feb 21 17:01:01 EET 2007  Pekka Riikonen <priikone@silcnet.org>
691
692         * Fixed WHOIS command and requested attributes handling in
693           client library.  Affected files are lib/silcclient/command.c
694           and lib/silcclient/client_attrs.c.
695
696         * Fixed silc_time_value to actually work.  Added new function
697           silc_timezone.  Affected files are lib/silcutil/silctime.[ch].
698
699 Tue Feb 20 08:31:28 EET 2007  Pekka Riikonen <priikone@silcnet.org>
700
701         * SILC Client 1.1 beta2.
702
703 Mon Feb 19 16:06:27 EET 2007  Pekka Riikonen <priikone@silcnet.org>
704
705         * Fixed client to properly abort TCP stream creation when
706           giving /QUIT.  Affected file
707           apps/irssi/src/silc/core/silc-servers.c.
708
709         * Fixed several connecting aborting crashes from the client
710           library, packet engine and socket stream.  Affected files
711           are in lib/silclient/, lib/silccore/silcpacket.c and
712           lib/silcutil/unix/silcunixsocketstream.c.
713
714         * Fixed private key export double free crash in key generation.
715           Affected file is lib/silccrypt/silcpk.c.
716
717         * Fixed FSM event waiting when there are multiple signallers
718           and the waiter goes away after the first signal.  Affected
719           file in lib/silcutil/silcfsm.c.
720
721 Sun Feb 18 22:02:22 EET 2007  Pekka Riikonen <priikone@silcnet.org>
722
723         * Fixed FSM event signalling to check if the waiter has gone
724           away already.  Affected file is lib/silcutil/silcfsm.c.
725
726         * Fixed counter mode encryption/decryption to handle non-padded
727           SILC packets correctly.  The silc_cipher_set_iv now
728           in counter mode resets for a new block.  Affected files are
729           in lib/silcske/, lib/silccrypt/, lib/silcpacket/.
730
731 Sun Feb 18 12:15:21 EET 2007  Pekka Riikonen <priikone@silcnet.org>
732
733         * SILC Client 1.1 beta1.
734
735         * Memory leak fixes around the libraries.
736
737 Fri Feb 16 16:53:16 EET 2007  Pekka Riikonen <priikone@silcnet.org>
738
739         * Added better check for epoll() in configure.  Affected file
740           is lib/configure.ad.
741
742 Thu Feb 15 16:50:34 EET 2007  Pekka Riikonen <priikone@silcnet.org>
743
744         * Fixed per scheduler data input buffer in packet engine.  Use
745           list of inbufs instead of just one so that multiple streams
746           can do partial reads to different buffers.  Affected file is
747           lib/silccore/silcpacket.c.
748
749         * Fixed WATCH notify handling in client library.  Affected file
750           is lib/silcclient/client_notify.c.
751
752 Wed Feb 14 17:05:38 EET 2007  Pekka Riikonen <priikone@silcnet.org>
753
754         * Fixed packet wrapper stream API to support encoder/decoder
755           for packets, and to handle partial reading correctly.  Fixed
756           also inbuf size checking in reading to have enough space before
757           reading.  Affected files are lib/silccore/silcpacket.[ch].
758
759         * Rewrote file transfer in client library.  Affected files are
760           in lib/silcclient/.
761
762         * Added TCP/UDP listener (internal) API to client library to have
763           generic way of dealing with listeners.  Fixed Key Agreement and
764           file transfer to use it.  Affected files are in lib/silcclient/.
765
766         * Fixed SKE to process SUCCESS packets synchronously and to call
767           completion synchronously.  Affected file is lib/silcske/silske.c.
768
769         * Fixed pthread rwlock detection.  Affected file includes/silc.h.in.
770
771         * Implemented SILC_ATTRIBYUTE_PHONE_NUMBER.  Affected files are
772           lib/silccore/silcattrs.[ch].  SILC Protocol version 1.3 change.
773
774 Fri Feb  2 22:24:11 EET 2007  Pekka Riikonen <priikone@silcnet.org>
775
776         * Added support for SILC protocol version 1.3 NEW_CLIENT packet
777           to client library.  Affected file is
778           lib/silcclient/client_register.c.
779
780         * Serialize NICK and JOIN commands to avoid problems locally
781           with changing ID while joining to channel.  Affected file is
782           lib/silcclient/command.c.
783
784         * Fixed entry resolving while handling incoming JOIN notify.
785           Handle properly cases, in re-processing of notify packets, where
786           the IDs may become invalid while resolving the entry (like nick
787           change).  Entry is invalid if it doesn't have nickname, and such
788           entries are not delivered to application anymore.  These fixes
789           problems of not seeing JOINs when remote user changes nickname
790           at the same time.  Affected files are in lib/silcclient/.
791
792 Thu Feb  1 18:35:58 EET 2007  Pekka Riikonen <priikone@silcnet.org>
793
794         * Added support for computing message payload MAC in new way
795           (SILC Protocol version 1.3).  Bakcwards support for old way
796           remains.  Affected files are lib/silccore/silcmessage.[ch].
797
798 Sat Jan 27 22:37:30 EET 2007  Pekka Riikonen <priikone@silcnet.org>
799
800         * Added SilcRwLock API, a read/write lock.  Affected files are
801           lib/silcutil/silcmutex.h and in lib/silcutil/[unix|win32|symbian]/.
802
803 Wed Jan 24 18:55:21 EET 2007  Pekka Riikonen <priikone@silcnet.org>
804
805         * Merged Irssi SVN (irssi 0.8.11).  Affected files in apps/irssi/.
806
807 Tue Jan 23 16:05:27 EET 2007  Pekka Riikonen <priikone@silcnet.org>
808
809         * The silc_schedule_set_listen_fd now returns boolean value.
810           Fixed FD task adding to check correctly for already added
811           FD tasks.  Added stricter error checking for FD scheduling
812           with epoll().  Affected files are lib/silcutil/silcschedule.[ch]
813           and lib/silcutil/unix/silcunixschedule.c.
814
815         * The silc_stream_set_notifier now returns boolean value.  Changed
816           all streams to support and check for the error condition.
817           Affected files are in lib/silcutil/.
818
819         * Fixed SKE library session aborting and deletion.  Affected
820           file are lib/silcske/silcske.c.
821
822 Tue Jan 16 18:22:08 EET 2007  Pekka Riikonen <priikone@silcnet.org>
823
824         * Implemented PKCS #1 with appendix with hash OID in the
825           signature.  Affected files are lib/silccrypt/silcpkcs1.[ch],
826           lib/silccrypt/silchash.[ch] and
827           lib/silcasn1/silcasn1[_encode|decode].[ch].
828
829 Sun Jan 14 23:12:41 EET 2007  Pekka Riikonen <priikone@silcnet.org>
830
831         * Added support for Version (V) SILC public key identifier.
832           Affected files are lib/silccrypt/silcpk.[ch].
833
834 Tue Jan  9 19:37:51 EET 2007  Pekka Riikonen <priikone@silcnet.org>
835
836         * Rewrote connection auth request in client library.  It is now
837           done automatically by the library and the resolved method given
838           as a hint to get_auth_method client operation.  Affected files
839           are lib/silcclient/.
840
841 Wed Jan  3 18:06:33 EET 2007  Pekka Riikonen <priikone@silcnet.org>
842
843         * Added silc_packet_stream_wrap into lib/silccore/silcpacket.[ch].
844           It can be used to wrap SilcPacketStream into SilcStream.
845
846         * Fixed %p formatting from silc_snprintf.  Affected file is
847           lib/silcutil/silcsnprintf.c.
848
849         * Ported SFTP library to new utility library.  Ported also
850           the SFTP testers.  Affected files in lib/silcsftp/.
851
852 Tue Jan  2 17:18:46 EET 2007  Pekka Riikonen <priikone@silcnet.org>
853
854         * Added lib/silcutil/silcsnprintf.[ch].  Added in addition
855           of silc_snprintf, silc_vsnprintf, silc_asprintf and
856           silc_vasprintf.
857
858 Sat Dec 30 23:23:17 EET 2006  Pekka Riikonen <priikone@silcnet.org>
859
860         * Added preliminary Symbian support.  Changes around the source
861           tree.  The symbian/ directory now includes Carbide.c++ project
862           files to compile the sources.
863
864         * Added silc_snprintf.  Affected files are
865           lib/silcutil/silcstrutil.[ch].
866
867 Thu Dec 21 18:01:51 EET 2006  Pekka Riikonen <priikone@silcnet.org>
868
869         * Changed SILC_FSM_[CONTINUE|YIELD|WAIT|FINISH] enums to
870           macros.  SILC_FSM_CONTINUE macro now immediately calls the
871           next state instead of first returning back to FSM.  Helps
872           in debugging crashes etc.
873
874           Removed FSM Semaphores.  Introduced FSM Event which is
875           asynchronous event.   Affected files are in lib/.
876
877         * Added epoll(7) support to SILC Scheduler.  It is used by default
878           if it is available.  Affected files are
879           lib/silcutil/silcschedule.[ch],
880           lib/silcutil/unix/silcunixschedule.c.
881
882 Tue Dec 19 20:39:35 EET 2006  Pekka Riikonen <priikone@silcnet.org>
883
884         * Added CTR mode to AES.  Simplified cipher implementation API
885           more.  Affected files are in lib/silccrypt/.
886
887 Sun Dec 17 16:46:55 EET 2006  Pekka Riikonen <priikone@silcnet.org>
888
889         * Removed `detach' client operation.  The detachment data is
890           now delivered in SILC_COMMAND_DETACH command reply to
891           application.  Affected file in lib/silcclient/.
892
893         * Rewrote resuming/detaching in client library.
894
895         * Added boolean encryption indicator for silc_cipher_set_key.
896           Affected files lib/silccrypt/silccipher.[ch].
897
898 Wed Dec 13 18:05:50 EET 2006  Pekka Riikonen <priikone@silcnet.org>
899
900         * Added silc_likely and silc_unlikely macros for GCC branch
901           prediction optimizations.  Affected file lib/silcutil/silctypes.h.
902
903         * Added assembler AES optimization.  Cleaned up the SILC Cipher
904           implementation API.  Affected files are in lib/silccrypt/.
905
906 Tue Dec 12 18:56:14 EET 2006  Pekka Riikonen <priikone@silcnet.org>
907
908         * Changed back the SILC_FSM_THREAD_WAIT operation to not
909           continue to next state if thread is finished already.  That
910           check is not done anymore.  Affected files are
911           lib/silcutil/silcfsm.[ch].
912
913 Sun Dec 10 13:54:52 EET 2006  Pekka Riikonen <priikone@silcnet.org>
914
915         * Removed silc_packet_[get|set]_ciphers and
916           silc_packet_[get|set]_hmacs.  Added silc_packet_set_keys that
917           handle REKEY_DONE packet sending in rekey.  Affected files
918           are lib/silccore/silcpacket.[ch].
919
920         * Added silc_fsm_is_started.  Affected files are
921           lib/silcutil/silcfsm.[ch].
922
923         * Added settings sign_channel_message, sign_private_message
924           and key_exchange_rekey_pfs to SILC Client.  Added UDP transport
925           support for key agreement in /KEY command. Affected files
926           in apps/irssi/src/silc/core/.
927
928         * During SILC Client initialization forward log messages to
929           stderr.   Affected files in apps/irssi/src/silc/core/.
930
931 Thu Dec  7 19:07:21 EET 2006  Pekka Riikonen <priikone@silcnet.org>
932
933         * Added silc_ske_get_key_material.  Affected files are
934           lib/silcske/silcske.[ch].
935
936         * Added silc_packet_stream_is_udp.  Affected files are
937           lib/silccore/silcpacket.[ch].
938
939         * Added SKE packet retransmission support with UDP transport.
940           Affected file is lib/silcske/silcske.c.
941
942 Sun Dec  3 22:00:12 EET 2006  Pekka Riikonen <priikone@silcnet.org>
943
944         * Added silc_socket_stream_is_udp.  Affected file is
945           lib/silcutil/silcsocketstream.[ch].
946
947         * Added UDP transport support to packet engine.  Affected file
948           is lib/silccore/silcpacket.c.
949
950         * Added silc_socket_stream_is_udp.  Affected file is
951           lib/silcutil/silcsocketstream.[ch].
952
953 Sat Nov 18 11:33:03 EET 2006  Pekka Riikonen <priikone@silcnet.org>
954
955         * Added silc_packet_send_va[_ext] to send variable argument
956           formatted buffers.  Affected files lib/silcore/silcpacket.[ch].
957
958         * Timeout freelist garbage collection added to scheduler.
959           Affected file lib/silcutil/silcschedule.c.
960
961 Thu Nov  9 18:12:15 EET 2006  Pekka Riikonen <priikone@silcnet.org>
962
963         * Added silc_show_public_key_file to
964           lib/silcapputil/silcapputil.[ch].
965
966         * Added SILC_STR_ADVANCE support for buffer unformatting.
967           Affected file lib/silcutil/silcbuffmt.c.
968
969 Tue Nov  7 18:04:36 EET 2006  Pekka Riikonen <priikone@silcnet.org
970
971         * Added silc_string_split to lib/silcutil/silcstrutil.[ch].
972
973         * Added silc_mutex_assert_locked to lib/silcutil/silcmutex.h.
974
975         * silc_fsm_continue[_sync] now cancels erlier timeout set with
976           silc_fsm_next_later.  Affected file lib/silcutil/silcfsm.c.
977
978 Sat Nov  4 21:50:37 EET 2006  Pekka Riikonen <priikone@silcnet.org
979
980         * Added SILC_STR_FUNC to buffer format API.  Affected files
981           are lib/silcutil/silcbuffmt.[ch].
982
983         * Added silc_buffer_[s]enlarge to lib/silcutil/silcbuffer.h.
984
985         * No more memory allocation for message payload parsing.
986           Pre-allocated buffer can be used with message payload encoding.
987           Affected files lib/silccore/silcmessage.[ch].
988
989 Fri Oct 27 21:01:26 EEST 2006  Pekka Riikonen <priikone@silcnet.org
990
991         * Added silc_buffer_sunformat and silc_buffer_sunformat_vp
992           to silcutil/silcbuffmt.[ch].
993
994 Sun Oct 22 13:03:07 EEST 2006  Pekka Riikonen <priikone@silcnet.org
995
996         * Added SILC_STR_BUFFER to format and unformat SilcBuffer.
997           Affected file lib/silcutil/silcbuffmt.[ch].
998
999         * Removed silc_schedule_signal_[un]register and
1000           silc_schedule_signal_call.  Added silc_schedule_task_add_signal
1001           to add signal task.  Only one callback per signal may be
1002           added.  The signals are now automatically called back to
1003           caller.  Affected files lib/silcutil/silcschedule.[ch] and
1004           silcutil/[unix/win32]/silc[unix/win32]schedule.c.
1005
1006         * Added silc_time_msec and silc_time_usec to silcutil/silctime.[ch].
1007
1008         * Added SilcSKEParams for SKE parameters and simplied even more
1009           the SKE interface.  Affected files are lib/silcske/silcske.[ch].
1010           Added support for IV included and session port handling with
1011           UDP/IP connections.
1012
1013         * Added Secure ID (SID) support with IV Included flag (for UDP/IP)
1014           in lib/silccore/silcpacket.[ch].  Added silc_packet_set_sid
1015           which is called after every rekey when IV Included flag is used.
1016           See SILC specifications for details.
1017
1018 Thu Oct 19 10:03:03 EEST 2006  Pekka Riikonen <priikone@silcnet.org
1019
1020         * Added lib/silcapputil and moved SILC application specific
1021           utility routines from the generic util library lib/silcutil
1022           to the new library.  Removed lib/silcidcache and moved that
1023           to lib/silcapputil as well.
1024
1025 Tue Sep 19 00:14:11 EEST 2006  Pekka Riikonen <priikone@silcnet.org>
1026
1027         * Added SILC_STR_ADVANCE.  Affected file is
1028           lib/silcutil/silcbuffmt.[ch].
1029
1030         * The silc_buffer_strformat preserves buffer locations now.
1031
1032         * Added lib/silcutil/silcatomic.h for atomic operations.
1033
1034 Sat Sep 16 11:23:06 EEST 2006  Pekka Riikonen <priikone@silcnet.org>
1035
1036         * Added lib/silchttp, SILC HTTP server, a very simple HTTP
1037           server.
1038
1039         * Fixed MIME deocing when data portion is not present.
1040           Affected file lib/silcutil/silcmime.c.
1041
1042 Wed Jul 19 12:06:38 EEST 2006  Pekka Riikonen <priikone@silcnet.org>
1043
1044         * Moved lib/silccore/silcidcache.[ch] to lib/silcutil/.
1045
1046         * Added IV Included support to packet routines, to allow
1047           packet sending and receiving on UDP/IP.  Affected files are
1048           lib/silccore/silcpacket.[ch].
1049
1050         * Added SILC_FSM_YIELD.  Affected files lib/silcutil/silcfsm.[ch].
1051
1052 Tue Jul 18 20:10:28 EEST 2006  Pekka Riikonen <priikone@silcnet.org>
1053
1054         * Added UDP support to network and socket stream library.
1055
1056 Sat Jun 24 22:33:18 EEST 2006  Pekka Riikonen <priikone@silcnet.org>
1057
1058         * Added conditional variables.  New files are
1059           lib/silcutil/silcondvar.h and platform specific implementations.
1060
1061 Thu Jan  5 20:02:31 CET 2006 Patrik Weiskircher <pat@icore.at>
1062
1063         * make sure session->hostname and session->port are valid before the
1064           application callback is done, since things will go wrong if the
1065           application immediately calls silc_client_file_receive. Affected
1066           file lib/silcclient/client_ftp.c.
1067           Patch received from Stefan Siegel <stesie@brokenpipe.de>, thanks!
1068
1069 Fri Dec 30 22:54:21 EET 2005  Pekka Riikonen <priikone@silcnet.org>
1070
1071         * New SILC PKCS API enabling support for other public keys
1072           and certificates, lib/silccrypt/silcpkcs.[ch], silcpk.[ch].
1073
1074         * Separated SILC Public Key Payload routines from the PKCS API
1075           to lib/silccore/silcpubkey.[ch].
1076
1077 Wed Dec 28 13:55:22 EET 2005  Pekka Riikonen <priikone@silcnet.org>
1078
1079         * Added SILC Key Repository library, lib/silcskr.
1080
1081         * Added SILC Server library, lib/silcserver.
1082
1083 Mon Dec 19 18:04:24 EET 2005  Pekka Riikonen <priikone@silcnet.org>
1084
1085         * MIME objects in attributes now use SilcMime.  Affected files
1086           are lib/silccore/silcattrs.[ch].
1087
1088 Sat Dec 17 20:13:31 EET 2005  Pekka Riikonen <priikone@silcnet.org>
1089
1090         * Synchronize semaphore posting for real threads in FSM.
1091           Affected files are lib/silcutil/silcfsm.c, silcfsm_i.h.
1092
1093 Mon Nov 28 17:06:54 EET 2005  Pekka Riikonen <priikone@silcnet.org>
1094
1095         * Added silc_file_set_nonblock.  Affected file is
1096           lib/silcutil/silcfileutil.h.
1097
1098         * Added silc_fd_stream_file to lib/silcutil/silcfdstream.[ch].
1099
1100 Sat Nov 26 16:13:40 EET 2005  Pekka Riikonen <priikone@silcnet.org>
1101
1102         * FSM based implementation of SILC SKE.  Simpler interface also.
1103           Affected files are in lib/silcske/.
1104
1105         * Added SilcBool type.  Affected file lib/silcutil/silctypes.h.
1106
1107 Sat Nov 19 17:34:51 EET 2005  Pekka Riikonen <priikone@silcnet.org>
1108
1109         * Added SilcMime API to lib/silcutil/silcmime.[ch].  The old
1110           silc_mime_parse is available but deprecated.
1111
1112         * Check that packet is valid when processing key exchange,
1113           authentication and rekey protocols.  Fixes a crashbug.
1114           Affected files are apps/silcd/protocol.c and
1115           lib/silcclient/protocol.c.
1116
1117         * Added SILC_HASH_MAXLEN to lib/silccrypt/silchash.h, and changed
1118           all hash buffers to use that instead of fixed values.
1119
1120 Wed Nov 16 15:47:12 EET 2005  Pekka Riikonen <priikone@silcnet.org>
1121
1122         * Added SHA-256 to crypto library.  The SHA-256 takes now
1123           precedence over SHA-1.
1124
1125 Thu May 26 20:31:06 EEST 2005  Pekka Riikonen <priikone@silcnet.org>
1126
1127         * Check for valid return value from regcomp.  Affected file
1128           lib/silcutil/unix/silcunixutil.c.
1129
1130 Tue May 10 23:11:17 EEST 2005  Pekka Riikonen <priikone@silcnet.org>
1131
1132         * Fixed silc_hash_uint to work with integers.  Affected
1133           file lib/silcutil/silcutil.c.
1134
1135 Tue May 10 15:11:53 EEST 2005  Pekka Riikonen <priikone@silcnet.org>
1136
1137         * Rewritten SILC Log API.  Affected files lib/silcutil/silclog.[ch].
1138
1139 Mon May  9 12:00:08 EEST 2005  Pekka Riikonen <priikone@silcnet.org>
1140
1141         * Fixed channel public key list saving on JOIN command reply
1142           on backup router.  Affected file apps/silcd/command_reply.c.
1143
1144 Mon May  2 10:42:49 EEST 2005  Pekka Riikonen <priikone@silcnet.org>
1145
1146         * Added default limit how many channels client can join,
1147           default is 50.  Added 'channel_join_limit' configuration
1148           option to server too.  Affected files are apps/silcd/command.c
1149           and serverconfig.[ch].
1150
1151 Sun May  1 17:42:55 EEST 2005  Pekka Riikonen <priikone@silcnet.org>
1152
1153         * --without-silc -> --with-silc, --without-irssi -> --with-irssi.
1154           On Toolkit the server and client are not compiled by default.
1155           Affected file configure.ad.
1156
1157 Thu Apr 28 15:57:37 EEST 2005  Pekka Riikonen <priikone@silcnet.org>
1158
1159         * Added lib/contrib/getopt.[ch] for platforms that don't
1160           have it (it is not GPL implementation).
1161
1162         * Fixed compilation when pkg-config is used.
1163
1164 Wed Apr 27 11:49:41 EEST 2005  Pekka Riikonen <priikone@silcnet.org>
1165
1166         * A comma in invite/ban string is invalid, check for it.
1167           Affected file apps/silcd/server_util.c.
1168
1169         * Added SERVICE command to the server.  It parses the command
1170           request but SILC Server does not support services for the
1171           time being.  Affected file apps/silcd/command.[ch].
1172
1173         * Added SERVICE command and command reply to client library.
1174           It is however incomplete.  Updated Toolkit documentation.
1175           Affected files are lib/silcclient/command[_reply].[ch].
1176
1177         * Fixed IDENTIFY/WHOWAS command reply to send the username
1178           correctly (uninitialized buffer).  Affected file is
1179           apps/silcd/server_query.c.
1180
1181 Mon Apr 25 14:25:24 EEST 2005  Pekka Riikonen <priikone@silcnet.org>
1182
1183         * Moved silcer/, silc/, silcd/ and irssi/ to apps/.  This
1184           finalizes the major restructuring of the CVS tree.
1185
1186 Mon Apr 25 00:39:30 EEST 2005  Pekka Riikonen <priikone@silcnet.org>
1187
1188         * Send empty MOTD reply if MOTD file cannot be read.
1189           Affected file silcd/command.c.
1190
1191 Sun Apr 24 12:01:37 EEST 2005  Pekka Riikonen <priikone@silcnet.org>
1192
1193         * Optimized primer number generator to use simpler conversion
1194           routines.  Also assure that the prime number will have the
1195           highest bit set after modifying it.  Affected file is
1196           lib/silcmath/silcprimegen.c.
1197
1198         * Added LibTomMath to SILC Math library (SILC_DIST_TMA).
1199
1200         * Added FastTomMath to SILC Math Library (SILC_DIST_TFM),
1201           for now only for testing purposes, it will not be delivered
1202           in any distribution for now.
1203
1204         * Removed NSS MPI from the source tree.  Due to upcoming
1205           license change for the SILC Toolkit, we cannot deliver the
1206           NSS MPI anymore.  I decided to replace it in all distributions
1207           with public domain library.
1208
1209         * Removed GNU regex from lib/contrib and introduced free
1210           GNU compatible regex, lib/contrib/regexpr.[ch].  Added
1211           GNU regex compatible API to it (only partial).
1212
1213         * Removed getopt routines from lib/contrib.
1214
1215 Fri Apr 22 12:21:44 EEST 2005  Pekka Riikonen <priikone@silcnet.org>
1216
1217         * Use silc_server_send_command_reply to send replies instead
1218           of encoding packet itself.  Affected file silcd/command.c.
1219
1220         * Added command sending and receiving statistics to server.
1221           Affected files in silcd/.
1222
1223         * GCC 4 warning fixes.  -Wno-pointer-sign option is now used
1224           with GCC, for it not to warn about pointer signedness.
1225
1226 Tue Apr 19 11:57:35 EEST 2005  Pekka Riikonen <priikone@silcnet.org>
1227
1228         * Added context to the SilcIDCache destructor.  Affected
1229           files are lib/silccore/silcidcache.[ch],
1230           lib/silcclient/client.c and silcd/server.c.
1231
1232 Mon Apr 18 09:53:28 EEST 2005  Pekka Riikonen <priikone@silcnet.org>
1233
1234         * Added pkg-config check to configure.
1235
1236         * The PublicKeyDir must not be used with Admin block in server
1237           config.  Affected file silcd/serverconfig.c.
1238
1239 Sat Apr 16 20:23:48 EEST 2005  Pekka Riikonen <priikone@silcnet.org>
1240
1241         * Added Autodist.
1242
1243 Thu Apr 14 20:25:08 EEST 2005  Pekka Riikonen <priikone@silcnet.org>
1244
1245         * Handle empty LIST command reply correcttly in server.  Affected
1246           file silcd/command_reply.c.
1247
1248         * Handle empty LIST command reply correctly in client library.
1249           The application will now receive one LIST command reply with
1250           all arguments set to NULL if there are no channels.  Updated
1251           Client Library documentation accordingly.  Affected file
1252           lib/silcclient/command_reply.c.
1253
1254 Tue Apr 12 00:02:09 EEST 2005  Pekka Riikonen <priikone@silcnet.org>
1255
1256         * Added channel name string stringprep profile to the protocol
1257           and implementation to allow a little free'er channel name
1258           strings.  Affected files are lib/silcutil/silcstringprep.[ch].
1259
1260         * Added silc_channel_name_[check|verify] to check and verify
1261           channel name strings.  Affected files are
1262           lib/silcutil/silcstrutil.[ch].
1263
1264         * Added support for the new channel name preparation in client
1265           library and server.  Affected files in lib/silcclient and
1266           silcd/.
1267
1268 Mon Apr 11 13:40:27 EEST 2005  Pekka Riikonen <priikone@silcnet.org>
1269
1270         * Added the Autodist into the source tree.  It replaces the
1271           old ./prepare.  It can be used to create distributions as
1272           previously.  See README.CVS and README.DIST.  See
1273           distributions in distdir/.
1274
1275 Sun Apr 10 11:30:56 EEST 2005  Pekka Riikonen <priikone@silcnet.org>
1276
1277         * Make sure query sends at least an error back if nothing
1278           more is sent.  Affected file silcd/server_query.c.
1279
1280 Thu Apr  7 14:50:01 EEST 2005  Pekka Riikonen <priikone@silcnet.org>
1281
1282         * During query, check if the original command caller goes
1283           away.  If it does, stop the query.  Affected file
1284           silcd/server_query.c.
1285
1286         * Check for valid channel creation in JOIN command reply.
1287           Affected file lib/silcclient/command_reply.c.
1288
1289         * Handle the resolver counter in silc_client_get_users_by_channel
1290           callback correctly.  Fixed auto-join bug in Gaim.  Affected
1291           file lib/silcclient/idlist.c.
1292
1293 Wed Apr  6 16:56:53 EEST 2005  Pekka Riikonen <priikone@silcnet.org>
1294
1295         * Added some better error messages.  Affected file
1296           silcd/command_reply.c and packet_receive.c.
1297
1298         * Handle error in WATCH command propely on backup router.
1299           Affected file silcd/command.c.
1300
1301         * Fixed freeing of unfreeable variable in WHOIS command reply.
1302           Affected file silcd/command_reply.c.
1303
1304 Wed Apr  6 09:10:31 CEST 2005  Pekka Riikonen <priikone@silcnet.org>
1305
1306         * Added pkg-config .pc file creation for silc core library
1307           and silcclient library.  A patch by c0ffee.
1308
1309         * Removed the need for GNU Libidn.  Added the simple stringprep
1310           from libidn into lib/contrib/.  It is now used also on Windows
1311           build.
1312
1313 Mon Apr  4 15:15:46 EEST 2005  Pekka Riikonen <priikone@silcnet.org>
1314
1315         * Simplified the invite and ban string handling in the
1316           server.  Check for valid invite and ban arguments also.
1317           Affected file silcd/server_util.c.
1318
1319 Sun Apr  3 14:58:53 EEST 2005  Pekka Riikonen <priikone@silcnet.org>
1320
1321         * Added WATCH list announcing in backup router protocol.
1322           Affected files are silcd/command.c, server.c, server_backup.c.
1323
1324         * Do not change users mode to founder on normal server/backup
1325           if the founder mode is set, and user is first one to join.
1326           Affected file silcd/pcaket_receive.c.
1327
1328         * Do not send CUMODE_CHANGE notify back to sender.  Affected
1329           file silcd/packet_receive.c.
1330
1331         * Added getrusage() to take noise in SILC RNG.  A patch by
1332           Mika Boström.  Affected files are configure.in.pre,
1333           includes/silcincludes.h.in, lib/silccrypt/silcrng.c.
1334
1335 Sat Apr  2 18:09:30 EEST 2005  Pekka Riikonen <priikone@silcnet.org>
1336
1337         * Splitted the SILC libraries configuration into a configure
1338           fragment into lib/configure.ad.  It is now possible, once
1339           this feature is added, to specify whether to compile or not
1340           compile included SILC libraries.  Affected files are
1341           configure.in.pre, lib/silcmath/mpi/configure.ad,
1342           lib/configure.ad, Makefile.defines.pre and
1343           Makefile.defines_int.pre.
1344
1345         * Added --with-silc-includes and --with-silc-libs to configure.
1346           If specified the included libs are not compiled, but the
1347           specified libs are used.  Pkg-config is not yet supported.
1348           Affected file configure.in.pre.
1349
1350         * Fixed WATCH command handling on backup router.  Router does not
1351           send the watch command any more to backup if it originates from
1352           backup.  Affected file silcd/command.c.
1353
1354 Fri Apr  1 18:52:47 EEST 2005  Pekka Riikonen <priikone@silcnet.org>
1355
1356         * Changed announcing to not announce unregistered clients.
1357           Affected file silcd/server.c.
1358
1359         * Fixed username handling in command reply.  Affected file
1360           silcd/command_reply.c.
1361
1362         * Log files are now 0600.  Affected file lib/silcutil/silclog.c.
1363
1364 Thu Mar 31 22:34:22 CEST 2005  Patrik Weiskircher <pat@icore.at>
1365
1366         * Added new define SILC_MACOSX, if __APPLE__ and __MACH__ is defined.
1367           Affected file: includes/silcincludes.h.in
1368
1369         * bool is defined as _Bool on Mac OS X now.
1370           Affected file: lib/silcutil/silctypes.h
1371
1372 Thu Mar 31 08:52:06 EEST 2005  Pekka Riikonen <priikone@silcnet.org>
1373
1374         * Added support for UTF-8 nicknames, channel names and
1375           server names in client library.  Affected files in
1376           lib/silcclient/.
1377
1378         * Added __SILC_HAVE_PTHREAD, __SILC_HAVE_SIM, __SILC_HAVE_LIBIDN,
1379           and __SILC_ENABLE_DEBUG to include/silcclient.h for third-party
1380           software to check how Toolkit has been compiled.
1381
1382 Wed Mar 30 22:16:35 EEST 2005  Pekka Riikonen <priikone@silcnet.org>
1383
1384         * Added silc_utf8_str[n]casecmp into lib/silcutil/silcutf8.[ch].
1385
1386         * Use silc_utf8_str[n]casecmp instead of strcmp routines
1387           in library and in SILC Client when dealing with nicknames
1388           and other identifier strings.  Affected file in client lib
1389           and irssi.
1390
1391         * Convert nickname to UTF-8 in /msg and /smsg.  Affected file
1392           irssi/src/silc/core/silc-servers.c.
1393
1394 Wed Mar 30 10:50:02 EEST 2005  Pekka Riikonen <priikone@silcnet.org>
1395
1396         * Fixed idcache to work with the new identifier strings.
1397           Affected file lib/silccore/silcidcache.c.
1398
1399         * Added UTF-8 hash and compare function for SilcHashTable.
1400           Affected file lib/silcutil/silcutil.[ch].
1401
1402         * Added casefolding stringprep, SILC_CASEFOLD_PREP.
1403           Affected file lib/silcutil/silcstringprep.[ch].
1404
1405         * Changed the identifier string handling to include the original
1406           format in client, server, channel entries and normalized
1407           format in cache.  Affected files in silcd/.
1408
1409 Tue Mar 29 16:51:35 EEST 2005  Pekka Riikonen <priikone@silcnet.org>
1410
1411         * Added support for the new identifier strings and their
1412           validity checking.  Nicknames, channel names and usernames
1413           can now include practically any kind of letters and various
1414           other characters.  Affected files in silcd/ and in libraries.
1415
1416           NOTE: comparing these strings should now be done with memcmp()
1417           to check binary compatibility.  All these strings are normalized
1418           and casing is irrelevant.
1419
1420         * Added silc_identifier_check to lib/silcutil/silcstrutil.[ch]
1421           as easy function for applications to check whether identifier
1422           strings are valid.
1423
1424 Tue Mar 29 00:45:11 EEST 2005  Pekka Riikonen <priikone@silcnet.org>
1425
1426         * Fixed SILC_STRING_LDAP_DN encoding and decoding.  Affected
1427           file lib/silcutil/silcutf8.c.
1428
1429         * Added SILC_STRING_UTF8_ESCAPE to lib/silcutil/silcstrutil.h.
1430
1431 Mon Mar 28 22:46:23 CEST 2005  Jochen Eisinger <jochen@penguin-breeder.org>
1432
1433         * Make public key in getkey reply mandatory.  Affected file
1434           lib/silcclient/command_reply.c
1435
1436 Sun Mar 27 19:03:31 CEST 2005  Patrik Weiskircher <pat@icore.at>
1437
1438         * Added Parameter dont_register_crypto_library to
1439           SilcClientParam. If set to TRUE, silcclient library will
1440           not initalize the Crypto Libraries and application
1441           will need to do it. Affected file lib/silcclient/silcclient.h,
1442           lib/silcclient/client.c.
1443
1444 Sun Mar 27 19:02:48 EEST 2005  Pekka Riikonen <priikone@silcnet.org>
1445
1446         * Imported new silc_utf8_[encode|decode] routines from
1447           my internal SILC 1.1 source tree.  New encodings added:
1448           SILC_STRING_LOCALE (SILC_STRING_LANGUAGE is deprecated),
1449           SILC_STRING_UTF8, SILC_STRING_PRINTABLE, SILC_STRING_VISIBLE,
1450           SILC_STRING_TELETEX, SILC_STRING_NUMERICAL and
1451           SILC_STRING_LDAP_DN.
1452
1453         * Splitted UTF-8 routines into lib/silcutil/silcutf8.[ch].
1454
1455         * Implemented stringprep (RFC 3454) API.  Internally we use
1456           GNU Libidn's stringprep, for now, so it is required now to
1457           compile SILC sources.  Added lib/silcutil/silcstringprep.[ch].
1458
1459         * Added checking for GNU Libidn and --with-libidn to configure.
1460
1461 Wed Mar 23 11:20:33 CET 2005  Jochen Eisinger <jochen@penguin-breeder.org>
1462
1463         * If the passphrases entered do not match while generating a new key,
1464           completly start over instead of going into an infinite loop asking
1465           the user to re-enter the passphrase correctly.  Affected file
1466           lib/silcutil/silcapputil.c
1467
1468 Sun Jan  9 14:28:51 CET 2005  Pekka Riikonen <priikone@silcnet.org>
1469
1470         * Make sure server is removed from backup list when it is
1471           deleted.  Affected files silcd/command.c, server.c,
1472           server_util.c.
1473
1474         * Close socket when connecting to router fails.  Affected
1475           file silcd/server.c.
1476
1477 Tue Jan  4 13:06:26 CET 2005  Jochen Eisinger <jochen@penguin-breeder.org>
1478
1479         * Adopt configuration toolchain to current auto-tools.
1480           Affected files prepare, irssi/configure.in
1481         * Revert most of the UTF-8 fixes to SILC Client 1.0.1.  Will
1482           redo that.  Affected files irssi/src/silc/core/client_ops.c,
1483           irssi/src/fe-common/silc/fe-silc-channels.c
1484         * Take over command line options into silcclient data structure.
1485           Affected file irssi/src/silc/core/silc-core.c
1486
1487 Wed Dec  8 16:15:11 CET 2004  Pekka Riikonen <priikone@silcnet.org>
1488
1489         * Do not try to initiate backup resuming protocol forever.
1490           Affected file silcd/server_backup.c.
1491
1492 Wed Nov 24 18:24:05 CET 2004  Pekka Riikonen <priikone@silcnet.org>
1493
1494         * ID change in resuming has to be done before changing
1495           detached client's modes, since the ID change may fail and
1496           leave ghosts on the network.  Affected file is
1497           silcd/packet_receive.c.
1498
1499 Tue Nov 23 16:54:35 CET 2004  Pekka Riikonen <priikone@silcnet.org>
1500
1501         * Fixed Win32 scheduler to not stuck anymore.  A patch from
1502           Juha Räsänen.  Affected file is
1503           lib/silcutil/win32/silcwin32schedule.c.
1504
1505         * Fixed QoS parsing for connection blocks in server.  Affected
1506           file is silcd/serverconfig.c.
1507
1508         * Fixed server statistics increasing in server.  Affected file
1509           is silcd/server.c.
1510
1511         * The CLOSE command now marks backup router as self disconnected
1512           to avoid resuming problems.  Affected file silcd/command.c.
1513
1514 Wed Sep 22 19:46:32 CEST 2004  Patrik Weiskircher <pat@icore.at>
1515
1516         * When using silc_net_create_connection[_async], and your system can
1517           create IPv6 sockets, it will try to connect to the IPv6 host.
1518           Now it tries to connect to an IPv4 host if IPv6 fails. Affected
1519           file lib/silcutil/unix/silcunixnet.c
1520
1521 Fri Jun 18 19:26:58 CEST 2004  Pekka Riikonen <priikone@silcnet.org>
1522
1523         * Check for valid route when receiving packet from router and
1524           when routing it to local server in the cell.  A patch from
1525           Matt Miller.  Affected files silcd/router.c and server.c.
1526
1527 Sat May  1 13:55:54 CEST 2004  Patrik Weiskircher <pat@icore.at>
1528
1529         * Couldn't detach and reattach twice, because of the previous
1530           commit. Affected file silcd/packet_receive.c
1531
1532 Fri Apr 30 19:40:28 CEST 2004  Patrik Weiskircher <pat@icore.at>
1533
1534         * Added check to ignore Port value if Initiator is FALSE.
1535           Remote router coudln't connect if Port was set. Affected file
1536           silcd/serverconfig.c
1537
1538         * If some client tries to resume more than once at the same time,
1539           server crashed. Router didn't crash, but showed odd behaviour
1540           (didn't allow clients to join anymore, ..). Affected files
1541           silcd/packet_receive.c silcd/idlist.h
1542
1543 Mon Mar 15 21:10:08 EET 2004  Pekka Riikonen <priikone@silcnet.org>
1544
1545         * Destroy the file transfer session in silc_client_file_close
1546           with timeout.  Affected file lib/silcclient/client_ftp.c.
1547
1548         * Call SFTP server monitor in READ and WRITE after the actual
1549           operations.  Affected file lib/silcsftp/sftp_server.c.
1550
1551 Wed Mar 10 21:30:02 EET 2004  Pekka Riikonen <priikone@silcnet.org>
1552
1553         * Create one configure script from configure fragments
1554           (configure.ad).  This is a first step towards new distribution
1555           system.  Affected files prepare, configure.in.pre,
1556           lib/silcmath/mpi/configure.ad.
1557
1558 Wed Mar 10 18:35:24 CET 2004  Jochen Eisinger <jochen@penguin-breeder.org>
1559
1560         * Removed expiring of client key pair.  Affected file is
1561           irssi/src/silc/core/clientutil.c
1562
1563 Tue Mar  9 17:11:58 EET 2004  Pekka Riikonen <priikone@silcnet.org>
1564
1565         * Check the number of connections from real number of
1566           connections instead of socket number, when deciding if
1567           server is full.  Affected files are silcd/server.c,
1568           server_internal.h and silcd.c.
1569
1570         * Clarified the connections_max meaning in General section
1571           in doc/example_silcd.conf.in.
1572
1573         * The reconnect_keep_trying default value set to TRUE
1574           if it is not defined in the config file.  Affected file
1575           silcd/serverconfig.c.
1576
1577 Wed Mar  3 15:13:49 CET 2004  Pekka Riikonen <priikone@silcnet.org>
1578
1579         * Fixed crashbug in connection closing, after a protocol
1580           completion callback, which might have closed it already.
1581           Affected file silcd/server.c.
1582
1583         * Fixed rekey with PFS in backup router.  It did not allow
1584           rekeys with PFS, and when the rekey protocol timedout
1585           it crashed the backup router without the above fix.  Affected
1586           file silcd/packet_send.c and server.c.
1587
1588 Sat Feb 28 16:25:09 EET 2004  Pekka Riikonen <priikone@silcnet.org>
1589
1590         * The silc_client_add_channel_private_key now returns the
1591           private key context if pointer is given as argument.
1592           Affected files are lib/silcclient/silcclient.h and
1593           client_channel.c.
1594
1595         * Added support for using channel private keys in SILC
1596           Client Library even if the private key mode is not set
1597           on the channel.  Affected file lib/silcclient/client_channel.c.
1598
1599         * The channel private key used to decrypt message is now
1600           delivered to the application in the 'channel_messageÃ' client
1601           operation.  Affected files are lib/silcclient/silcclient.h
1602           and client_channel.c.
1603
1604         * Fixed wrong arg type for user limit in CMODE command reply.
1605           Affected file silcd/command.c.
1606
1607         * The user limit is now taken and saved to SilcClientEntry in
1608           JOIN and CMODE command replies and in CMODE_CHANGE notify.
1609           Affected files lib/silcclient/silcclient.h, command_reply.c
1610           and client_notify.c.
1611
1612         * Added support to the new private message key indicator
1613           packet.  Added a new function to the client library:
1614           silc_client_send_private_message_key_request.  The sender
1615           indicates to be initiator, and receiver is responder.
1616           Added the indicator to the SilcClientEntry as 'prv_resp'
1617           boolean.  Affected files are lib/silcclient/silcclient.h
1618           client.[ch], and client_prvmsg.c.
1619
1620 Fri Feb 27 11:25:26 CET 2004  Pekka Riikonen <priikone@silcnet.org>
1621
1622         * Fixed the JOIN command calling when called with both
1623          -auth and -founder.  Affected file is lib/silcclien/command.c.
1624
1625 Wed Feb 25 23:12:11 EET 2004  Pekka Riikonen <priikone@silcnet.org>
1626
1627         * Check watcher list for resumed clients as well.  Affected
1628           file is silcd/packet_receive.c.
1629
1630 Tue Feb 24 16:49:10 EET 2004  Pekka Riikonen <priikone@silcnet.org>
1631
1632         * Implemented the user limit to the CMODE_CHANGE notify,
1633           CMODE command reply and JOIN command reply in server.
1634           Affected files are silcd/server.c, command.c, command_reply.c,
1635           packet_send.c and packet_receive.c.
1636
1637 Mon Feb 23 23:31:15 EET 2004  Pekka Riikonen <priikone@silcnet.org>
1638
1639         * Defined SILC_STRFMT_END that must be used now with
1640           silc_buffer_strformat, instead of SILC_STR_END.  Fixes
1641           crashes on AMD64.  Affected files are lib/silcutil/silcbuffmt.h,
1642           lib/silcclient/silcvcard.c, silcd/server_util.c.
1643
1644         * Fixed the adding of public key to the WATCH list in server.
1645           Fixed the WATCH notify sending to client.  Affected files
1646           are silcd/packet_send.[ch], command.c, server_util.c.
1647
1648         * Implemented the watching by public key in the SILC Client
1649           Library and SILC Client.  Affected files are
1650           lib/silcclient/command.c and client_notify.c.
1651
1652 Mon Feb 23 09:30:30 CET 2004  Pekka Riikonen <priikone@silcnet.org>
1653
1654         * Added support for public key watching in server.  Affected
1655           files are silcd/server.c, server_internal.h, command.c,
1656           server_util.c.
1657
1658 Sun Feb 22 19:03:59 EET 2004  Pekka Riikonen <priikone@silcnet.org>
1659
1660         * Added public key to the SIlcClientEntry.  Affected files
1661           are lib/silcclient/silcclient.h, command_reply.c, idlist.c
1662
1663         * Fixed the get_clients_whois reply processing to return
1664           exactly same entries server returned.  Makes it possible
1665           to search using attributes.  Affected file is
1666           lib/silcclient/idlist.c.
1667
1668 Sat Feb 21 19:21:57 EET 2004  Pekka Riikonen <priikone@silcnet.org>
1669
1670         * Save founder key to SilcChannelEntry.  Affected files are
1671           lib/silcclient/silcclient.h, command_reply.c, idlist.c.
1672
1673 Fri Feb 20 20:37:38 EET 2004  Pekka Riikonen <priikone@silcnet.org>
1674
1675         * Call the monitor callback with _CLOSED status from the
1676           silc_client_file_close.  Affected files are
1677           lib/silcclient/client_fpt.c, silcclient.h
1678
1679         * Added silc_client_get_clients_whois which resolves using
1680           WHOIS, and supports requested attributes as well.
1681           Affected files are lib/silcclient/silcclient.h, idlist.c.
1682
1683 Fri Feb 19 21:09:22 EET 2004  Pekka Riikonen <priikone@silcnet.org>
1684
1685         * Added support for asking the destination filename where
1686           the downloaded file is saved in the file transfer.  Affected
1687           files are lib/silccilent/silcclient.h, client_ftp.c.
1688
1689 Wed Feb 18 02:46:17 EET 2004  Pekka Riikonen <priikone@silcnet.org>
1690
1691         * Fixed error handling in resuming data processing.  Affected
1692           files are lib/silcclient/client_resume.c and client.c.
1693
1694 Tue Feb 17 19:34:30 EET 2004  Pekka Riikonen <priikone@silcnet.org>
1695
1696         * Fixed silc_client_send_private_message to return TRUE correctly.
1697           Affected file lib/silcclient/client_prvmsg.c.
1698
1699         * Added topic to the SilcChannelEntry.  Affected files are
1700           lib/silcclient/silcclient.h, command_reply.c, client_notify.c.
1701
1702 Fri Feb 13 14:19:14 CET 2004  Jochen Eisinger <jochen@penguin-breeder.org>
1703
1704         * Use conn->cmd_ident for all silc_client_command_call()s.  Affected
1705           file lib/silcclient/command.c
1706
1707 Fri Feb 13 13:53:45 CET 2004  Jochen Eisinger <jochen@penguin-breeder.org>
1708
1709         * Convert all commands to UTF-8 before passing them to the
1710           client library.  Still need to convert replies from UTF-8 to
1711           the locale encoding.  Affected file
1712           irssi/src/silc/core/silc-cmdqueue.c
1713
1714 Fri Feb 13 13:13:07 CET 2004  Jochen Eisinger <jochen@penguin-breeder.org>
1715
1716         * redirect all silc_client_command_calls through a queueing framework.
1717           This fixes /CYCLE and the annoying "nick change after auto-joining
1718           a channel".  Furthermore it defines one central point where
1719           command parameters can be UTF-8-ified.  Affected files
1720           irssi/src/silc/core/Makefile, client_ops.c, silc-channels.c,
1721           silc-servers.[ch], silc-core.c, silc-cmdqueue.[ch], silc-lag.c
1722
1723 Fri Feb 13 12:04:41 CET 2004  Jochen Eisinger <jochen@penguin-breeder.org>
1724
1725         * use asynchronous connect() to establish router connections.
1726           Fixes problem when the primary router goes down.  Affected files
1727           silcd/server.c, silcd/server_backup.c
1728
1729 Thu Feb 12 20:09:59 EET 2004  Pekka Riikonen <priikone@silcnet.org>
1730
1731         * Added SILC_[32|64]_TO_PTR and SILC_PTR_TO_[32|64] macros.
1732           Fixed various compilation warnings when type casting ints
1733           to pointers or vice versa, of different size.  Updates around
1734           the source free.
1735
1736 Tue Feb  3 23:25:17 EET 2004  Pekka Riikonen <priikone@silcnet.org>
1737
1738         * Surrogates not allowed in UTF-8 strings, updated decoder.
1739           Affected file lib/silcutil/silcstrutil.c.  Added UTF-8
1740           testers in lib/silcutil/tests/ directory.
1741
1742 Wed Jan 14 18:42:44 EET 2004  Pekka Riikonen <priikone@silcnet.org>
1743
1744         * Added SILC_CLIENT_CONN_ERROR_KE, ERROR_AUTH, ERROR_RESUME and
1745           ERROR_TIMEOUT SilcClientConnectionStatus errors.  Affected
1746           files are lib/silcclient/silcclient.h, client.c.
1747
1748 Mon Jan 12 13:01:10 CET 2004  Jochen Eisinger <jochen@penguin-breeder.org>
1749
1750         * When resuming a session fails, notify the user that the session
1751           file needs to be removed eventually.  Affected files
1752           irssi/src/fe-common/silc/module-formats.[ch],
1753           irssi/src/silc/core/client_ops.c.
1754
1755 Tue Jan 04 12:16:04 CET 2004  Jochen Eisinger <jochen@penguin-breeder.org>
1756
1757         * Added DIST_SUBDIRS symbols to include all subdirs in distributions.
1758           Affected files lib/silcutil/Makefile.am, lib/silcmath/Makefile.am
1759
1760         * Typofix in Irssi::Silc module.  Affected file
1761           irssi/src/perl/silc/Silc.xs.
1762
1763 Tue Jan 04 02:43:44 CET 2004  Jochen Eisinger <jochen@penguin-breeder.org>
1764
1765         * Changed the way NOTICE flagged messages are treated. Added support
1766           for notices in queries and signing notices.  Affected files
1767           irssi/default.theme; irssi/docs/help/in/notice.in;
1768           irssi/src/fe-common/silc/module-formats.[ch], fe-silc-messages.c;
1769           irssi/src/silc/core/client_ops.c, silc-channels.c, silc-servers.c
1770
1771         * Fixed typo in /ACTION help.  Affected file
1772           irssi/docs/help/in/action.in
1773
1774 Mon Jan 03 23:26:38 CET 2004  Jochen Eisinger <jochen@penguin-breeder.org>
1775
1776         * Fixed typo in perl module.  Affected file
1777           irssi/src/perl/silc/Server.xs
1778
1779         * Changed the way ACTION flagged messages are treated. Added support
1780           for actions in queries and signing actions.  Affected files
1781           irssi/default.theme; irssi/docs/help/in/action.in;
1782           irssi/src/fe-common/silc/module-formats.[ch], fe-silc-messages.c,
1783           fe-silc-queries.c; irssi/src/silc/core/client_ops.c, silc-channels.c,
1784           silc-servers.[ch]
1785
1786 Mon Jan 03 16:04:29 CET 2004  Jochen Eisinger <jochen@penguin-breeder.org>
1787
1788         * Incorrectly reported error when client had to be resolved from
1789           server in /SMSG.  Affected file irssi/src/silc/core/silc-servers.c
1790
1791 Sat Jan  3 16:37:15 EET 2004  Pekka Riikonen <priikone@silcnet.org>
1792
1793         * Fixed whois public key hash table deleting and adding in
1794           detached client case.  Affected file silcd/packet_receive.c.
1795
1796 Sat Jan 03 12:15:38 CET 2004  Jochen Eisinger <jochen@penguin-breeder.org>
1797
1798         * Changed filenames of silc/fe module not to collide with filenames
1799           from core/fe.  Also seperated public messages printing from
1800           query messages printing.  Affected files are all in
1801           irssi/src/fe-common/silc.
1802
1803 Sat Jan  3 12:18:07 EET 2004  Pekka Riikonen <priikone@silcnet.org>
1804
1805         * Fixed the invite process handling during joining to use
1806           correct server name for the client that is matched against
1807           the invite string for the channel.  Wrong server name caused
1808           inability to join the channel.  Affected file is
1809           silcd/command.c.
1810
1811 Fri Jan  2 23:34:17 EET 2004  Pekka Riikonen <priikone@silcnet.org>
1812
1813         * Fixed the CUMODE channel founder authentication on normal
1814           server to not remove the founder rights on existing founder
1815           before checking that router accepts the mode change.  Affected
1816           files are silcd/command.c and silcd/packet_receive.c.
1817
1818         * Remove the server entry correctly when rekey timeouts and
1819           remote router connection on normal server is closed.  Fixes
1820           a crash where server uses the freed server entry.  Affected
1821           file silcd/server.c.
1822
1823 Fri Jan 02 10:28:15 CET 2004  Jochen Eisinger <jochen@penguin-breeder.org>
1824
1825         * Add /SILCNET [ADD|REMOVE|LIST] command to manage different SILC
1826           networks.  This is the first step in solving the bug about
1827           /SERVER ADD -silcnet <silcnet>.  Affected files
1828           irssi/docs/in/silcnet.in; irssi/src/fe-common/silc/Makefile.am,
1829           fe-silcnet.c, fe-common-silc.c, module-formats.[ch];
1830           irssi/src/silc/core/silc-chatnets.[ch], silc-core.c, Makefile.am
1831
1832 Thu Jan 01 20:11:32 CET 2004  Jochen Eisinger <jochen@penguin-breeder.org>
1833
1834         * /SMSG and /MMSG now correctly create new queries. Affected files
1835           irssi/src/fe-common/silc/fe-messages.c, irssi/scripts/silc-mime.pl
1836
1837         * Add basic support for SILC protocol specific variables in perl.
1838           Affected files irssi/src/perl/silc/*, irssi/configure.in,
1839           irssi/src/perl/Makefile.am
1840
1841 Wed Dec 31 17:06:55 CET 2003  Jochen Eisinger <jochen@penguin-breeder.org>
1842
1843         * Don't use silc_get_input, it's obviously not reliable.  Fixes
1844           issue when the current key expires.  Affect file
1845           irssi/src/silc/core/clientutils.c
1846
1847         * Make the session data filename configurable.  This makes it
1848           possible to have different session files for different
1849           SILC networks.  Affected files irssi/src/silc/core/silc-core.c,
1850           client_ops.[ch], silc-servers.c,
1851           irssi/src/silc/fe-common/silc/module-formats.[ch]
1852
1853         * Use the same set of libtool files for the MPI lib as for the
1854           rest of the toolkit.  Affected files lib/silcmath/mpi/config.guess,
1855           config.sub, configure.in, install-sh, missing, mkinstalldirs
1856
1857 Sun Dec 28 21:57:39 EET 2003  Pekka Riikonen <priikone@silcnet.org>
1858
1859         * Fixed server statistics decrementing error to not go to
1860           negative.  Affected file silcd/packet_receive.c.
1861
1862 Sat Dec 20 14:42:36 EET 2003  Pekka Riikonen <priikone@silcnet.org>
1863
1864         * Use silc_server_query_add_error to add error in public key
1865           search error.  Added support in send_reply to send errors
1866           without specific argument.  Affected file silcd/server_query.c.
1867
1868         * Fixed the WHOIS, IDENTIFY and WHOWAS error handling in SILC
1869           Client for NO_SUCH_NICK.  It was against the protocol specs.
1870           Affected file irssi/src/silc/core/client_ops.c.
1871
1872         * Added backwards support for the wrong NO_SUCH_NICK error sending
1873           in server.  To be removed in SILC Server 1.0.  Both old clients
1874           and clients with fixed error handling now works.  Affected file
1875           silcd/server_query.c.
1876
1877 Sat Dec 20 00:44:47 CET 2003  Patrik Weiskircher <pat@icore.at>
1878
1879         * fixed a bug in the whois using attributes function where no
1880           error was sent if no nickname and client id but the attributes were
1881           given to whois. Affected file silcd/server_query.c
1882
1883 Tue Dec 16 21:34:59 CET 2003  Patrik Weiskircher <pat@icore.at>
1884
1885         * remove public key from public key hashtable on detach. Affected
1886           file silcd/packet_receive.c
1887
1888         * free public key hashtable before removing clients on server
1889           shutdown. Affected file silcd/server.c
1890
1891         * remove public key prior deleting client-data on killing a client.
1892           Affected file silcd/server_util.c
1893
1894 Sat Dec 06 21:35:14 CET 2003  Patrik Weiskircher <pat@icore.at>
1895
1896         * Getting the MOTD from other servers works now. Affected
1897           files are silcd/command.c and silcd/command_reply.c
1898
1899 Thu Dec 04 11:33:46 CET 2003  Jochen Eisinger <jochen@penguin-breeder.org>
1900
1901         * Initialize the variable idletag, since it is tested in
1902           silc_core_deinit for its default value.  Affected file
1903           irssi/src/silc/core/silc-core.c
1904
1905 Sun Nov 30 19:47:02 CET 2003  Patrik Weiskircher <pat@icore.at>
1906
1907         * Fixed signed channel messages across cells. Affected file
1908           silcd/packet_send.c
1909
1910 Fri Nov 28 19:13:21 EET 2003  Pekka Riikonen <priikone@silcnet.org>
1911
1912         * Changed the SILC_LOG_* macros to not be empty if SILC_DEBUG
1913           is not defined.  They can now be safely used in if-statements
1914           without braces.  Affected file lib/silcutil/silclog.h.
1915
1916         * Added the checks for backup closing connection due to error
1917           (local or remote) and thus not allow the resuming to occur
1918           in reconnect.  Affected files are silcd/packet_send.c
1919           and server.c.
1920
1921 Tue Nov 25 15:20:59 EET 2003  Pekka Riikonen <priikone@silcnet.org>
1922
1923         * Help file updates.  Affected files in irssi/src/docs/help/in/.
1924
1925 Wed Nov 23 20:51:21 CET 2003  Patrik Weiskircher <pat@icore.at>
1926
1927         * Fixed channel messages across cells. Affected file
1928           silcd/packet_send.c
1929
1930 Wed Nov 12 11:34:56 EET 2003  Pekka Riikonen <priikone@silcnet.org>
1931
1932         * Fixed file transmission accepting in client library to not
1933           start the negotiation if user hasn't accepted the transfer,
1934           instead create new session for resent transfer.  Affected
1935           file lib/silcclient/client_ftp.c.
1936
1937         * Show the session ID in the file transmision list.  Remove
1938           session from list that failed to transfer.  Switch the current
1939           session automatically after transmission, and in errors, to new
1940           session if other sessions exists in the transfer list.  Affected
1941           files are irssi/src/silc/core/silc-servers.c,
1942           irssi/src/fe-common/silc/modfule-formats.c.
1943
1944 Mon Nov 10 14:41:40 CET 2003  Jochen Eisinger <jochen@penguin-breeder.org>
1945
1946         * Fixed MIME header parsing for the hopefully last time.  Affected
1947           file lib/silcutil/silcstrutil.c
1948
1949 Mon Nov 10 13:03:46 EET 2003  Pekka Riikonen <priikone@silcnet.org>
1950
1951         * Rewrote the PKCS#1 routines.  Added lib/silccrypt/silcpkcs1.[ch].
1952
1953         * The SILC RNG is now gauranteed to return non-zero random
1954           values.  Affected files are lib/silccrypt/silcrng.[ch].
1955
1956 Sun Nov  9 20:44:56 EET 2003  Pekka Riikonen <priikone@silcnet.org>
1957
1958         * Fixed nickname formatting when changing only case of the
1959           nickname.  Affected file lib/silcclient/idlist.c.
1960
1961 Sun Nov  9 19:33:59 CET 2003  Jochen Eisinger <jochen@penguin-breeder.org>
1962
1963         * Fixed a memory leak and incorrect printing of the "appears as"
1964           message.  Affected file irssi/src/silc/core/client_ops.c
1965
1966 Sun Nov  9 17:45:11 EET 2003  Pekka Riikonen <priikone@silcnet.org>
1967
1968         * Added CRT (Chinese Remainder Theorem) supported RSA
1969           private keys and private key operations.  This significantly
1970           increases private key operation efficiency.  No compatibility
1971           issues with new or old private keys.  Affected files are
1972           lib/silccrypt/rsa.[ch], rsa_internal.h and pkcs1.c.
1973
1974 Sat Nov  8 13:08:53 EET 2003  Pekka Riikonen <priikone@silcnet.org>
1975
1976         * Fixed GCC-3.3.2 related compilation warnings from the
1977           source tree.
1978
1979 Fri Nov  7 23:01:47 EET 2003  Pekka Riikonen <priikone@silcnet.org>
1980
1981         * Removed RC6 from distributions.
1982
1983 Fri Nov  7 19:38:42 EET 2003  Pekka Riikonen <priikone@silcnet.org>
1984
1985         * Added some better comments to lib/silccrypt/silcpkcs.h,
1986           optimized some routines in lib/silccrypt/silcpkcs.c.
1987           Added test_silcpkcs into lib/silccrypt/tests/.
1988
1989         * Fixed silc_rng_global_init to actually init the global RNG
1990           if RNG wasn't provided for it.  Affected file is
1991           lib/silccrypt/silrng.c.
1992
1993 Thu Nov  6 21:08:28 EET 2003  Pekka Riikonen <priikone@silcnet.org>
1994
1995         * Added silc_hash_table_find_by_context_ext.  Affected files
1996           lib/silcutil/silchashtable.[ch].
1997
1998         * Save the public key on normal server in WHOIS command reply
1999           from attributes, if present, and add it to public key hash
2000           table.  Fixes WHOIS resolving by public key on normal server.
2001
2002           Optimized the attributes resolving on normal server to not
2003           resolve if we resolved them already from router.
2004
2005           Affected files are silcd/server_query.c, command_reply.c.
2006
2007 Wed Nov  5 19:36:30 CET 2003 Patrik Weiskircher <pat@icore.at>
2008
2009         * Added support for whois using attributes.
2010           Affected files silcd/command_reply.c, silcd/packet_receive.c,
2011           silcd/server.c, silcd/server_internal.h, silcd/server_query.c,
2012           silcd/server_util.c
2013
2014         * Added support for whois using public key attribute to /WHOIS i
2015           client command. Affected files irssi/docs/help/in/whois.in,
2016           irssi/src/silc/core/silc-servers.c, lib/silcclient/command.c
2017
2018 Wed Nov  5 23:37:36 EET 2003 Pekka Riikonen <priikone@silcnet.org>
2019
2020         * Fixed UMODE setting in server when the client has anonymous
2021           mode set.  The mode setting was not working.  Affected file
2022           silcd/command.c.
2023
2024 Mon Nov  2 11:36:08 CET 2003 Jochen Eisinger <jochen@penguin-breeder.org>
2025
2026         * Fixed some bugs and typos related to sending split messages.
2027           Print notification when sending messages with /MMSG.  Affected
2028           files irssi/scripts/silc-mime.pl, irssi/src/silc/core/client_ops.c
2029
2030 Fri Oct 31 12:33:59 EET 2003 Pekka Riikonen <priikone@silcnet.org>
2031
2032         * Optimized the socket referencing in packet routines, client
2033           library and server.  Affected files are lib/silccore/silcpacket.c,
2034           lib/silcclient/client.c and silcd/server.c.
2035
2036         * If silc_socket_set_qos is given with NULL arguments the QoS is
2037           reset from the socket.  Affected files are
2038           lib/silcutil/silcsockconn.[ch].
2039
2040 Thu Oct 30 21:23:24 CET 2003 Jochen Eisinger <jochen@penguin-breeder.org>
2041
2042         * Add a /LISTKEYS command which lists the locally cached
2043           client and server keys.  Affected files
2044           irssi/src/fe-common/module-formats.[ch],
2045           irssi/src/silc/core/silc-{channels,servers}.c
2046           irssi/docs/help/in/listkeys.in
2047
2048 Thu Oct 30 20:23:40 EET 2003 Pekka Riikonen <priikone@silcnet.org>
2049
2050         * Check that packet queue purging was successful.  Affected
2051           files lib/silcclient/client.c and silcd/packet_send.c.  Related
2052           to MAC failed errors.
2053
2054         * Do not clear the inbuf even if it is empty if QoS was applied
2055           to it.  Otherwise the QoS data is cleared and MAC failed error
2056           will occur.  Affected file lib/silccore/silcpacket.c.
2057
2058         * Use the rekey period time as rekey protocol timeout value.
2059           If the rekey does not succeed during the rekey period there's
2060           something very wrong, and we most likely end up with wrong keys,
2061           do graceful reconnect then.   Affected file silcd/server.c.
2062
2063         * Take reference of the socket in the parser context, as it's
2064           possible to have the parsers in queue after the socket is
2065           disconnected and this may cause crash.  Affected files are
2066           lib/silccore/silcpacket.c, lib/silcclient/client.c and
2067           silcd/server.c.
2068
2069 Thu Oct 30 17:01:01 EET 2003 Pekka Riikonen <priikone@silcnet.org>
2070
2071         * Fixed KICK command reply sending, it sent to replies.
2072           Affected file silcd/command.c.
2073
2074 Wed Oct 30 14:06:52 CET 2003 Jochen Eisinger <jochen@penguin-breeder.org>
2075
2076         * Finish the silc-mime.pl script. It now supports MIME type
2077           guessing using magic files, signing data messages, executing
2078           MIME handlers in background. Affected files
2079           irssi/scripts/silc-mime.pl and irssi/docs/help/in/mmsg.in
2080
2081         * Changed MIME signal handler to make things easier for the perl
2082           script. Affected files irssi/src/silc/core/client_ops.c,
2083           silc-servers.c, and irssi/docs/signals.txt
2084
2085         * Cleaned up the silc_mime_parse function and fixed detection
2086           of wrapped header lines. Affected file lib/silcutil/silcstrutil.c
2087
2088 Sun Oct 26 21:19:02 EET 2003 Pekka Riikonen <priikone@silcnet.org>
2089
2090         * Resolve the IP for file transfer listener from the connection
2091           socket.  Affected file lib/silcclient/client_ftp.c.
2092
2093         * Accept NULL hostname parameter in the functions
2094           silc_net_check_[local|remote]_by_socket.  Do not reverse lookup
2095           if hostname is not wanted.
2096
2097 Fri Oct 24 21:24:12 CEST 2003  Jochen Eisinger <jochen@penguin-breeder.org>
2098
2099         * Fixed race condition between silc_client_init and
2100           my_silc_scheduler. Affected file irssi/src/silc/core/silc-core.c
2101
2102 Fri Oct 24 16:43:40 EEST 2003  Pekka Riikonen <priikone@silcnet.org>
2103
2104         * Fixed file transfer connection closing when SIGNOFF for
2105           the client is received from server.  Affected file is
2106           lib/silcclient/client_ftp.c.
2107
2108 Tue Oct 21 13:35:57 CEST 2003  Pekka Riikonen <priikone@silcnet.org>
2109
2110         * Check for disconnected socket in QUIT callback.  Affected
2111           file silcd/command.c.
2112
2113 Thu Oct 21 09:43:17 CEST 2003  Jochen Eisinger <jochen@penguin-breeder.org>
2114
2115         * Modified the MIME parsing to allow \n and \r\n as delimiters.
2116           Affected files lib/silcutil/silcstrutil.c
2117
2118         * Cleaned up the escape/unescape functions for correctness and
2119           speed. Affected file irssi/src/silc/core/client_ops.c
2120
2121         * Removed handling for data messages with Content-Type: text/*,
2122           moved parsing of MIME headers to the signal handler, added
2123           support for signing and verifying data messages. Affected
2124           files are irssi/docs/signals.txt, irssi/src/silc/core/client_ops.c,
2125           irssi/src/silc/core/silc-{servers,channels}.c
2126
2127         * Added a perl script for handling data messages based on
2128           information read from Mailcap files. New file
2129           irssi/scripts/silc-mime.pl
2130
2131 Mon Oct 20 16:08:22 EEST 2003  Pekka Riikonen <priikone@silcnet.org>
2132
2133         * Added new SILC_MESSAGE_FLAG_ACK that can  be used to
2134           acknowledge recepetion of a message to the sender.  Updated
2135           protocol specs.
2136
2137 Sat Oct 18 11:55:33 EEST 2003  Pekka Riikonen <priikone@silcnet.org>
2138
2139         * Unregister channel key saving callback when deleting channel.
2140           Affected file lib/silcclient/idlist.c.
2141
2142         * Do not remove the client from channels in NOTIFY_TYPE_SIGNOFF
2143           before calling notify client operation.  Affected file is
2144           lib/silcclient/client_notify.c.
2145
2146         * Unregister QoS tasks when deleting the socket connection.
2147           Affected files lib/silcutil/silcsockconn.[ch],
2148           unix/silcunixsockconn.c.
2149
2150         * Implemented latest presence-attrs draft changes.  Affected
2151           files lib/silccore/silcattrs.h and
2152           irssi/src/silc/core/silc-queries.c.
2153
2154 Tue Oct 14 18:24:53 EEST 2003  Pekka Riikonen <priikone@silcnet.org>
2155
2156         * Save old channel keys in list to allow more rapid change
2157           of channel keys if server for some reason does that.  This
2158           avoids loosing so many channel messages due to not having
2159           key to decrypt.  Affected file lib/silcclient/silcclient.h,
2160           idlist.c and client_channel.c.
2161
2162 Mon Oct 13 21:37:47 EEST 2003  Pekka Riikonen <priikone@silcnet.org>
2163
2164         * Continued backup router tests and fixes.  Affected files
2165           silcd/server_backup, server_util.c, server.c.  See TODO.
2166
2167 Sun Oct 12 19:58:18 EEST 2003  Pekka Riikonen <priikone@silcnet.org>
2168
2169         * Fixed SERVER_SIGNOFF handling in servers.  The client
2170           was removed from wrong list thus not removing the client
2171           at all.  Affected file silcd/packet_receive.c.
2172
2173         * Do not execute rekey protocol for disabled connections as
2174           it would never go through.  Affected file silcd/server.c.
2175
2176         * Added timeout for rekey protocol to catch if the protocol
2177           never executes successfully.  Affected files silcd/server.c
2178           and protocol.h.
2179
2180 Sat Oct 11 15:39:22 EEST 2003  Pekka Riikonen <priikone@silcnet.org>
2181
2182         * Abandon packet processing for disconnected sockets.  Check
2183           this always after calling packet processing callback.
2184           Affected file lib/silccore/silcpacket.c.
2185
2186         * Fixed double registration disconnection code in server.
2187           Closed wrong connection.  Affected file silcd/packet_receive.c.
2188
2189 Fri Oct 10 16:27:12 EEST 2003  Pekka Riikonen <priikone@silcnet.org>
2190
2191         * On normal server reconnect to primary during resuming 4
2192           times, then give up.  Affected file silcd/server_backup.c.
2193
2194         * If during reconnecting to routers we notice we have router
2195           connection but no primary router set, the server is in desync.
2196           Reconnect to primary to restore network.  Affected file
2197           silcd/server.c.
2198
2199         * Assure that only one protocol is exeucting at the same time.
2200           Added checks for all protocols.  Affected files are
2201           silcd/server.c and server_backup.c.
2202
2203 Thu Oct  9 20:24:09 EEST 2003  Pekka Riikonen <priikone@silcnet.org>
2204
2205         * Check that a string is not already part on invite/ban
2206           string when processing it.  Affected file silcd/server_util.c.
2207
2208 Thu Oct  9 12:06:40 CEST 2003  Pekka Riikonen <priikone@silcnet.org>
2209
2210         * Fixed the CUMODE_CHANGE for founder mode changes to comply
2211           with 1.2 version of the protocol.  Affected file is
2212           silcd/packet_receive.c.
2213
2214 Wed Oct  8 19:41:15 EEST 2003  Pekka Riikonen <priikone@silcnet.org>
2215
2216         * ERR_BAD_PASSWORD now returns the Channel ID of the channel
2217           where the passphrase was given.  Affected file is
2218           silcd/command.c.
2219
2220 Wed Oct  8 09:32:12 CEST 2003  Pekka Riikonen <priikone@silcnet.org>
2221
2222         * INVITE and BAN notifys are now delivered from routers to
2223           servers (but not clients) on the channel.  Updated specs and
2224           code.  Affected files silcd/packet_[send|receive].[ch],
2225           command.c, server.c and server_util.c.
2226
2227         * Implemented INVITE and BAN announcing.  Affected files are
2228           silcd/server.[ch], server_util.c.
2229
2230         * Implemented SilcStatus error type argument returning in
2231           command reply error in server.  Affected file silcd/command.c.
2232
2233         * Implemented SilcStatus argument returning in comand reply
2234           in client library.  The command_reply client operation now
2235           returns error specific arguments as well.  Affected files
2236           are lib/silcclient/command_reply.[ch], client_resume.c,
2237           lib/silccore/silcstatus.[ch].
2238
2239 Sun Oct  5 20:22:08 EEST 2003  Pekka Riikonen <priikone@silcnet.org>
2240
2241         * Backup router protocol version 1.2 implemented.  Testing still
2242           required.  Affected files in silcd/server_backup.[ch], server.c,
2243           packet_receive.c and server_internal.h.
2244
2245 Sun Oct  5 12:36:37 EEST 2003  Pekka Riikonen <priikone@silcnet.org>
2246
2247         * silc_client_send_[channel|private]_message now return TRUE
2248           or FALSE.  Affected file lib/silcclien/client_channel.c and
2249           client_prvmsg.c.
2250
2251 Thu Oct  2 17:03:09 EEST 2003  Pekka Riikonen <priikone@silcnet.org>
2252
2253         * Check for explicit nickname in INVITE and BAN processing
2254           during join as well (and don't expect only wildcards in
2255           invite/ban strings).  Affected file silcd/command.c.
2256
2257         * Fixed the INVITE and BAN by public key.  The public key saved
2258           is the PK payload (as specified) not the raw data.  Affected
2259           file silcd/server_util.c.
2260
2261 Wed Oct  1 20:29:06 EEST 2003  Pekka Riikonen <priikone@silcnet.org>
2262
2263         * UTF-8 text message support for actions and notices in SILC
2264           Client.  Affected file irssi/src/silc/core/client_ops.c.
2265
2266         * silc_get_username and silc_get_real_name now returns sensible
2267           data on Win32.  Patch by Toni Willberg.  Affected file is
2268           lib/silcutil/win32/silcwin32util.c.
2269
2270 Sun Aug 24 23:35:19 CEST 2003  Jochen Eisinger <c0ffee@penguin-breeder.org>
2271
2272         * Provide a signal handler to send MIME encoded messages and emit
2273           a signal when a MIME encoded message is received. Also document
2274           the signals for usage with the perl interface.
2275
2276           A sample perl script will be supplied at a later point.
2277
2278           Affected files are irssi/docs/signals.txt,
2279           irssi/src/silc/core/client_ops.[ch],
2280           irssi/src/silc/core/silc-{channels,servers}.c
2281
2282 Sun Aug 24 12:58:30 CEST 2003  Jochen Eisinger <c0ffee@penguin-breeder.org>
2283
2284         * Use SILC_COMMAND_PING to estimate the round-trip time to the
2285           server. Use this time to display a lag and disconnect when it
2286           exceeds a specified limit.
2287
2288           Affected files are irssi/src/silc/core/silc-{lag,core}.c.
2289
2290 Mon Aug 11 17:14:17 EEST 2003  Pekka Riikonen <priikone@silcnet.org>
2291
2292         * Remove the channel auth list in normal server if router
2293           encofrces its list during connecting.  Send notify to channel
2294           to remove the mode to remove the list.  Affected files are
2295           silcd/server_util.c and silcd/packet_receive.c.
2296
2297 Wed Aug  6 14:52:04 EEST 2003  Pekka Riikonen <priikone@silcnet.org>
2298
2299         * Added support for channel public keys.  Updated protocol specs
2300           and implemented it.  Affected files are
2301           silcd/command.c, command_reply.c, lib/silcclient/command.c,
2302           lib/silcclient/command_reply.c.
2303
2304 Wed Jul 23 12:17:01 EEST 2003  Pekka Riikonen <priikone@silcnet.org>
2305
2306         * Ignore SIGXFSZ and SIGXCPU signals in server.  They can
2307           terminate the process on Linux.  Affected file silcd/silcd.c.
2308
2309 Mon Jun  2 19:13:27 EEST 2003  Pekka Riikonen <priikone@silcnet.org>
2310
2311         * Check for NULL buffer in silc_buffer_clear.  Affected file
2312           is lib/silcutil/silcbuffer.h.
2313
2314         * Simplified the backup router protocol by removing the _GLOBAL
2315           types.  Updated protocol specs and the code.  Affected files
2316           are silcd/server_backup.[ch].
2317
2318 Thu Apr 24 19:50:25 EEST 2003  Pekka Riikonen <priikone@silcnet.org>
2319
2320         * Deny '@' and '!' from nicknames since they are reserved
2321           by the SILC_COMMAND_INVITE and SILC_COMMAND_BAN commands.
2322           Updated protocol specs and the code.
2323
2324           Affected files are silcd/server_util.[ch].
2325
2326 Wed Apr  9 18:51:59 EEST 2003  Pekka Riikonen <priikone@silcnet.org>
2327
2328         * Fixed stack overflow in Irssi SILC client.  Affected
2329           file irssi/src/silc/core/client_ops.c.
2330
2331         * Check that Host is set in ServerConnection and RouterConnection
2332           in silcd.conf.  Affected file silcd/serverconfig.c.
2333
2334         * Fixed crash in server with protocol completion callbacks,
2335           namely rekey and backup resuming protocols.  Affected files
2336           are silcd/server_backup.c and silcd/server.c.
2337
2338         * Fixed rekey protocol to not restart if it is started already.
2339           Affected files are lib/silcclient/client.c and
2340           silcd/server.c.c
2341
2342 Mon Mar 17 18:35:24 EET 2003  Pekka Riikonen <priikone@silcnet.org>
2343
2344         * Rewrote SilcList, affected file lib/silcutil/silc*list.h.
2345
2346         * Fixed EOF handling in SILC Config, affected file
2347           lib/silcutil/silcconfig.c.
2348
2349         * Fixed buffer overflows in lib/silcutil/silcstrutil.c.
2350
2351         * Fixed RESOLVING flag handling in JOIN notify and other
2352           notifys to handle the resolvings correctly in client library.
2353           Affected file lib/silcclient/client_notify.c.
2354
2355         * Do not send full INVITE and BAN lists in INVITE and BAN
2356           notifys, only the changed information.  Affected file
2357           silcd/command.c.
2358
2359         * Fixed INVITE notify sending in INVITE command, send it
2360           only when needed.  Affected file silcd/command.c.
2361
2362         * Handle the founder key change properly in CMODE_CHANGE
2363           notify.  Bug #122.  Affected file silcd/packet_receive.c.
2364
2365 Sun Mar  9 16:29:20 EET 2003  Pekka Riikonen <priikone@silcnet.org>
2366
2367         * Remove the mark for output (mark it only for input) after
2368           purging outgoing queue.  Prevents the "Error in select()"
2369           floods.  Affected file silcd/packet_send.c.
2370
2371         * Fixed incorrect connection deletion from client library
2372           after calling "connect" client operation.  Could cause
2373           crashes for example during reconnect timeouts.  Affected
2374           files are lib/silcclient/client.c and
2375           irssi/src/silc/core/client_ops.c.
2376
2377         * Check server private key file permissions before starting
2378           the server.  Affected file silcd/serverconfig.c.
2379
2380 Tue Feb  4 22:53:26 EET 2003  Pekka Riikonen <priikone@silcnet.org>
2381
2382         * NULL terminate allocated string in silc_buffer_strformat.
2383           Affected file lib/silcutil/silcbuffmt.c.
2384
2385         * Rewrote the invite/ban list string handling in server to
2386           use SilcBuffer instead.  Affected files are silcd/command.c
2387           and silcd/server_util.c.
2388
2389 Mon Feb  3 14:43:52 CET 2003  Pekka Riikonen <priikone@silcnet.org>
2390
2391         * Fixed double free in CMODE command when setting new HMAC
2392           for channel.  Affected file silcd/command.c.
2393
2394         * Added couple of missing memset's to zero sensitive memory.
2395           Affected files silcd/command.c, lib/silcclient/command.c.
2396
2397 Sun Jan 26 12:20:30 EET 2003  Pekka Riikonen <priikone@silcnet.org>
2398
2399         * Fixed a double free in INVITE command error handling in
2400           server.  Affected file silcd/command.c.
2401
2402         * Added macros SILC_SWAB_[16|32] to swab byte order of
2403           16-bit and 32-bit unsigned integers.  Affected file
2404           lib/silcutil/silctypes.h.
2405
2406         * Use the SILC_SWAB_16 instead of htons() in server when
2407           handling ports since the ports in structures are always
2408           in little-endian order (regardless of platform).  Affected
2409           file silcd/serverid.c and silcd/server_backup.c.
2410
2411 Tue Jan 21 17:18:04 EET 2003  Pekka Riikonen <priikone@silcnet.org>
2412
2413         * Send DISCONNECT in close admin command in server.  Affected
2414           file silcd/command.c.
2415
2416         * Check whether we are already connecting to a remote router
2417           (in addition of checking whether we are already connected)
2418           before creating new connection.  Affected file silcd/server.c.
2419
2420 Thu Jan 16 18:47:00 EET 2003  Pekka Riikonen <priikone@silcnet.org>
2421
2422         * Added better compiler and compiler flags checking in
2423           configure.
2424
2425         * Check that socket is valid after QoS is applied to data.
2426           Affected file lib/silcutil/unix/silcunixsockconn.c.
2427
2428         * Make sure the socket connecetion is not closed to early
2429           when closing connection in server.  Also make sure the
2430           connection is always closed after error in a protocol.
2431           Affected file silcd/server.c.
2432
2433 Wed Jan 15 11:03:36 CET 2003  Pekka Riikonen <priikone@silcnet.org>
2434
2435         * Removed --session and --dummy options from Irssi SILC Client.
2436           -d option is available only if --enable-debug was given.
2437           Affected files are irssi/src/silc/core/silc-core,
2438           irssi/src/core/session.c and irssi/src/fe-text/silc.c.
2439
2440 Tue Jan 14 12:25:09 CET 2003  Pekka Riikonen <priikone@silcnet.org>
2441
2442         * Added silc_buffer_steal to steal the data from the buffer.
2443           Affected file lib/silcutil/silcbuffer.h.
2444
2445 Sat Jan 11 18:16:29 CET 2003  Giovanni Giacobbi <giovanni@giacobbi.net>
2446
2447         * Fixed server crash with double Primary block in config file.
2448
2449           Fixed also various memory leaks around the config file
2450           parser.  Affected files lib/silcutil/silcconfig.c,
2451           silcd/serverconfig.c.
2452
2453         * Changed my nickname (Johnny Mnemonic) to my real name, this
2454           means that bugs introduced by him were actually introduced
2455           by me!
2456
2457 Tue Jan  7 21:58:53 CET 2003  Jochen Eisinger <c0ffee@penguin-breeder.org>
2458
2459         * Don't display "foo appears as foo\nYou're now known as foo"
2460           messages.  Affected file irssi/src/silc/core/client_ops.c
2461
2462 Tue Jan  7 20:08:15 EET 2003  Pekka Riikonen <priikone@silcnet.org>
2463
2464         * Fixed error handling of invalid client entry when calling
2465           commands in server.  Fixes a crash.  Affected file
2466           silcd/command.c.
2467
2468 Thu Dec 26 14:19:29 EET 2002  Pekka Riikonen <priikone@silcnet.org>
2469
2470         * Added some sanity checks in server for correctness of the
2471           server configuration.  Affected file silcd/serverconfig.c.
2472
2473 Fri Dec 20 10:47:59 CET 2002  Pekka Riikonen <priikone@silcnet.org>
2474
2475         * Prevent endless resolving of user informations in USERS
2476           command by checking the command reply status correctly.
2477           Affected file lib/silcclient/command_reply.c.
2478
2479 Tue Dec 17 10:05:00 CET 2002  Pekka Riikonen <priikone@silcnet.org>
2480
2481         * Fixed file writing on WIN32 to use O_BINARY flag.  Affected
2482           file is lib/silcutil/silcfileutil.c.  A patch by Matthew
2483           Aldous <Matthew@Aldous.com>.
2484
2485         * Added better implementation using CriticalSection of
2486           SilcMutex on WIN32.  A patch by Mikko Lähteenmäki
2487           <mikko.lahteenmaki@pikabaana.net>.
2488
2489         * Added some Winsock WIN32 compatiblity defines into
2490           includes/silcwin32.h.
2491
2492 Mon Dec 16 19:33:05 EET 2002  Pekka Riikonen <priikone@silcnet.org>
2493
2494         * Fixed double free in async host lookup code.  Affected file
2495           lib/silcutil/silcsockconn.c.
2496
2497         * On backup router handle now the SERVER_SIGNOFF from router
2498           for local connected servers too, and close the connections.
2499
2500           Do not process them as normally signing off servers when they
2501           really signoff by sending EOF fe, but always assume that
2502           router sends the SERVER_SIGNOFF.
2503
2504           Affected files silcd/server.c and silcd/packet_receive.c.
2505
2506         * Fixed socket unsetting when closing connections.  Affected
2507           files silcd/server.c and silcd/packet_send.c.
2508
2509         * Do not print the nickname in SERVER_SIGNOFF if we do not
2510           have it.  Prevents asserts in Irssi core.  It is possible we
2511           don't have the nick if it was just being resolved when server
2512           signoff.  Affected file irssi/src/silc/core/client_ops.c.
2513
2514 Thu Dec 12 23:22:50 EET 2002  Pekka Riikonen <priikone@silcnet.org>
2515
2516         * Fixed autonick crashbug in client library.  Affected file
2517           lib/silcclient/client.c.
2518
2519         * Fixed Unix implementation of SilcMutex to really assert if
2520           the mutex is locked/unlcoked already.  Affected file
2521           lib/silcutil/unix/silcunixmutex.c.
2522
2523         * Fixed locking in silc_schedule_uninit.  It didn't lock
2524           when dispatching timeout tasks.  Affected file is
2525           lib/silcutil/silcschedule.c.
2526
2527         * Changed Win32 implementation of SilcThread to use modern
2528           Win32 interface.  Affected file is
2529           lib/silcutil/win32/silcwin32thread.c  A patch by Mikko L.
2530
2531 Thu Dec 12 12:06:59 CET 2002 Jochen Eisinger <c0ffee@penguin-breeder.org>
2532
2533         * Don't print signed messages when sending failed.  Affected files
2534           irssi/src/silc/core/silc-[servers.c/commands.h]
2535
2536         * Send adquate signal when founding a channel by joing it.  Affect
2537           file irssi/src/silc/core/client_ops.c
2538
2539 Wed Dec 11 21:46:19 CET 2002 Jochen Eisinger <c0ffee@penguin-breeder.org>
2540
2541         * Fix theme abstracts parsing.  Affected files irssi/default.theme,
2542           irssi/src/fe-common/core/themes.c
2543
2544 Wed Dec 11 20:20:07 EET 2002 Pekka Riikonen <priikone@silcnet.org>
2545
2546         * Fixed close command to use the port correctly when closing
2547           server connections.  Affected file silcd/idlist.c.
2548
2549         * Check for NULL outbuf in silc_socket_write.  It is possible
2550           that it is NULL is some odd case.  Affected files are
2551           lib/silcutil/[unix/win32]/silc[unix/win32]sockconn.c.
2552
2553         * Do not call final protocol callback for backup router
2554           resuming protocol when closing connection.  It is closed
2555           by timeout in case of error.  Affected file silcd/server.c.
2556
2557         * Backup reconnect to router if backup resuming protocol
2558           failed.  Affected file silcd/server_backup.c.
2559
2560 Wed Dec 11 10:01:26 CET 2002 Pekka Riikonen <priikone@silcnet.org>
2561
2562         * Fixed double free in SKE library error hadling when signature
2563           error occurred.  Affected file lib/silcske/silcske.c.
2564
2565         * Save the fingerprint to new SilcClientEntry after changing
2566           nickname.  Affected file lib/silcclient/client_notify.c.
2567
2568         * Print SIGNOFF in Irssi SILC client only if the nickname is
2569           known.  Prevents asserts in Irssi core.  It is possible we
2570           don't have the nick if it was just being resolved when it
2571           quit.  Affected file irssi/src/silc/core/client_ops.c.
2572
2573 Tue Dec 10 21:47:56 EET 2002  Pekka Riikonen <priikone@silcnet.org>
2574
2575         * Fixed double free in invite list adding code when adding
2576           invite strings.  Affected file silcd/server_util.c.
2577
2578 Fri Dec  6 17:40:24 EET 2002  Pekka Riikonen <priikone@silcnet.org>
2579
2580         * More log printing during backup router protocol.  Affected
2581           file silcd/server_backup.c.
2582
2583         * Removed backwards support for old private key file format.
2584           Affected file lib/silccrypt/silcpkcs.c.
2585
2586         * Removed backwards support for not-so-strict decryption length
2587           check, it's strict now.  Affected lib/silccrypt/silccipher.c.
2588
2589         * GETKEY to update the client entrys fingerprint too.
2590           Affected file lib/silcclient/command_reply.c.
2591
2592         * Added --without-libtoolfix for package builders using weird
2593           wrappers around libtool (BSD at least).
2594
2595 Thu Dec  5 22:29:46 EET 2002  Pekka Riikonen <priikone@silcnet.org>
2596
2597         * Fixed backup router bugs:  When backup resumes router and
2598           receives a CHANNEL_MESSAGE packet the backup must not act
2599           as router since the packet header decryption would be
2600           different.  Also, when relaying packets to channel, do
2601           not re-encrypt packets on backup that came from the primary
2602           since the connection isn't really router-router connection.
2603           Affected files silcd/server.c, silcd/packet_send.c.
2604
2605         * Added checks in encryption/decryption that encryption/decryption
2606           length sent as argument really is multiple by block size.  Helps
2607           catching really weird bugs like the above backup router bugs
2608           when packets are being decrypted in wrong way.  Affected files
2609           lib/silccore/silcpacket.c, and lib/silccrypt/silccipher.c.
2610
2611         * Fixed padding generation in private key file encryption.
2612           Affected file lib/silccrypt/silcpkcs.c.
2613
2614 Thu Dec  5 16:35:23 EET 2002  Pekka Riikonen <priikone@silcnet.org>
2615
2616         * Added ignore_message_signatures setting which can be used
2617           to ignore signatures in messages.  Affected files are
2618           irssi/src/silc/core/client_ops.c, silc-core.c.
2619
2620         * Fixed the libtoolfix to use command line options instead of
2621           environment variables.  They didn't work as expected.  Now,
2622           the libtool is fully run-time configurable.
2623
2624 Wed Dec  4 21:08:52 CET 2002  Jochen Eisinger <c0ffee@penguin-breeder.org>
2625
2626         * Verify signature payload for signed messages. Affected files
2627           irssi/src/silc/core/client_ops.h, irssi/src/silc/core/silc-servers.c,
2628           irssi/src/silc/core/silc-core.h
2629
2630         * Display signature verification result in public and private
2631           messages using theme abstracts. See irssi/default.theme for
2632           examples on their usage. Affected files
2633           irssi/default.theme, irssi/src/fe-common/silc/fe-messages.h,
2634           irssi/src/fe-common/silc/module-formats.[ch],
2635           irssi/src/fe-common/silc/fe-common-silc.c,
2636           irssi/src/fe-common/silc/Makefile.am
2637           irssi/src/fe-common/core/fe-messages.[ch]
2638
2639         * Fixed bugs in Irssi's theme parsing. Affected files
2640           irssi/src/fe-common/core/themes.c
2641
2642 Wed Dec  4 18:29:13 EET 2002  Pekka Riikonen <priikone@silcnet.org>
2643
2644         * Calculate the correct length for signed messages before
2645           encrypting, it must be multiple by block size.  Affected
2646           file lib/silccore/silcmessage.c.
2647
2648         * silc_message_signed_get_public_key returns now both
2649           decoded and encoded public key.  Affected files are
2650           lib/silccore/silcmessage.[ch].
2651
2652         * Added libtoolfix script that makes the libtool more generic
2653           and configurable in run-time.  Now we can specify in run-time
2654           if what kind of libraries we want to create, regardless of
2655           configuration.  SIMs are now creates even if --disable-shared
2656           was explicitly given.
2657
2658 Tue Dec  3 23:26:55 EET 2002  Pekka Riikonen <priikone@silcnet.org>
2659
2660         * Fixed founder key sending in CMODE command in client.
2661           Affected file lib/silcclient/command.c.
2662
2663         * Fixed CUMODE founder authentication in server to not check
2664           for client's public key since it's not supposed to do that.
2665           Affected file silcd/command.c.
2666
2667 Tue Dec  3 12:02:41 CET 2002  Jochen Eisinger <c0ffee@penguin-breeder.org>
2668
2669         * Set realname and hostname in NICK_REC records. Affected file
2670           irssi/src/silc/core/silc-nicklist.c
2671
2672 Mon Dec  2 20:50:20 EET 2002  Pekka Riikonen <priikone@silcnet.org>
2673
2674         * Remove 1.0 protocol backwards compat code from client
2675           library.
2676
2677         * Added more reliable check for whether nickname did change
2678           or not, or whether only Client ID changed in NICK_CHANGE
2679           notify.  Affected file lib/silcclient/client_notify.c.
2680           Fixes bug in '@' character handling in a nickname.
2681
2682         * Added support for automatically parsing signature from
2683           the message payload.  Added new function
2684           silc_message_get_signature to return the payload to
2685           application.  Affected files lib/silccore/silcmessage.[ch].
2686
2687         * Changed the private_message and channel_message client
2688           operations to deliver the SilcMessagePayload to the
2689           application too.  Application can use it fe. to get the
2690           signature from the message for verification.  Affected
2691           file lib/silcclient/silcclient.h, client_channel.c and
2692           client_prvmsg.c.
2693
2694         * Redefined the signed payload for message payloads.
2695           Updated protocol specs and implemented.
2696
2697 Mon Dec  2 16:28:29 EET 2002  Pekka Riikonen <priikone@silcnet.org>
2698
2699         * Fixed wrong invite and ban list handling in server command
2700           reply.  Affected files are silcd/command_reply.c,
2701           silcd/server_util.[ch].
2702
2703 Sun Dec  1 20:48:17 EET 2002  Pekka Riikonen <priikone@silcnet.org>
2704
2705         * Fixed CMODE setting in server when founder mode was set.
2706           Affected file silcd/command.c.  Bug #95.
2707
2708         * Added support to setting specific public key in CMODE in
2709           Irssi SILC client.  Affected file lib/silcclient/command.c.
2710
2711         * Added support to use specific public key in CUMODE in
2712           Irssi SILC Client.  Affected file lib/silcclient/command.c.
2713
2714         * Added support for inviting and banning by public key in
2715           Irssi SILC client.  Affected file lib/silcclient/command.c.
2716
2717         * Fixed fingerprint/babbleprint showing in invite and ban
2718           list command replys.  Affected file is
2719           irssi/src/silc/core/client_ops.c.
2720
2721 Sun Dec  1 16:32:03 CET 2002  Jochen Eisinger <c0ffee@penguin-breeder.org>
2722
2723         * Format CMODE +c and +h to display both the mode and the argument
2724
2725 Sun Dec  1 18:17:22 EET 2002  Pekka Riikonen <priikone@silcnet.org>
2726
2727         * Added test vectors and test programs for SHA-1, MD5,
2728           HMAC-SHA1 and HMAC-MD5.  New tests are located in
2729           lib/silccrypt/tests/.  Fixed also argument decoding bug in
2730           MD5 implementation.  Affected file lib/silccrypt/md5.c.
2731
2732         * Changed the channel private key and private message key
2733           generation (with static keys) to use SHA1 instead of MD5,
2734           as SHA1 is the mandatory hash function in SILC.  Affected
2735           file lib/silcclient/client_[channel/prvmsg].c.
2736
2737         * Changed the private key file encryption to use SHA1 instead
2738           of MD5.  Added support for the old generation and added
2739           automatic change of the key (to be removed later).  Affected
2740           files lib/silccrypt/silcpkcs.c.
2741
2742 Sat Nov 30 19:07:52 EET 2002  Pekka Riikonen <priikone@silcnet.org>
2743
2744         * Load only files with .pub suffix in PublicKeyDir.  Affected
2745           file silcd/serverconfig.c.
2746
2747 Sat Nov 30 14:29:34 CET 2002  Johnny Mnemonic <johnny@themnemonic.org>
2748
2749         * Extended the SILC_SERVER_LOG_ERROR macro to all available logging
2750           channels.  Affected files silcd/silcd.c, silcd/server.h.
2751
2752         * Added the config directive PublicKeyDir for the client block.
2753           Affected files doc/exampe_silcd.conf.in, silcd/serverconfig.[ch].
2754
2755 Sat Nov 30 09:30:55 CET 2002  Pekka Riikonen <priikone@silcnet.org>
2756
2757         * Merged Toni's irssi/silc.conf patch.
2758
2759         * ROBODoc cleanup patch to lib/silccrypt/silcpkcs.h by johnny.
2760
2761         * Max alloc tests in allocation routines.  Affected file
2762           lib/silcutil/silcmemory.c.
2763
2764 Fri Nov 29 23:44:29 EET 2002  Pekka Riikonen <priikone@silcnet.org>
2765
2766         * Fixed a typo in resuming code that fixed detach/resume code
2767           in server.  Bug #93.  Affected file silcd/packet_receive.c.
2768
2769 Thu Nov 28 17:17:11 CET 2002  Jochen Eisinger <c0ffee@penguin-breeder.org>
2770
2771         * Do reverse lookups for server when /connecting. Affected files
2772           irssi/silc.conf, irssi/src/core/servers.c, irssi/src/core/network.c,
2773           irssi/src/core/net-nonblock.*
2774
2775 Thu Nov 28 16:19:18 CET 2002  Pekka Riikonen <priikone@silcnet.org>
2776
2777         * Added library versioning for shared libraries.  Affected
2778           files configure.in.pre and lib/Makefile.am.pre.
2779
2780 Wed Nov 27 21:51:52 CET 2002  Jochen Eisinger <c0ffee@penguin-breeder.org>
2781
2782         * Display INVITE and BAN lists as specified by SILC 1.2
2783
2784 Wed Nov 27 16:01:11 CET 2002  Pekka Riikonen <priikone@silcnet.org>
2785
2786         * Do not send invite list back unless asked (when sending
2787           no arguments) or when list was modified.  Affected file
2788           silcd/command.c.
2789
2790         * Remove client from invite list in KILLED notify and in
2791           KILL command.  Affected file silcd/command.c and
2792           silcd/server.[ch].
2793
2794         * Fixed bugs in invite list handling in INVITE command.
2795           Affected files silcd/command.c and silcd/server_util.c.
2796
2797         * Merged with Irssi 0.8.6.
2798
2799         * Fixed UTF-8 in Irssi SILC Client, setlocale was missing.
2800           Affected file irssi/src/fe-text/silc.c.
2801
2802 Mon Nov 25 18:21:43 EET 2002  Pekka Riikonen <priikone@silcnet.org>
2803
2804         * The silc_argument_get_[first/next] now return the argument
2805           type to caller.  Added silc_argument_payload_encode_one.
2806
2807           Affected files are lib/silccore/silcargument.[ch].
2808
2809         * Added support for the SILC 1.2 INVITE command and new
2810           invite lists to server.  Affected files are silcd/command.c,
2811           silcd/server_util.[ch] and silcd/packet_[receive/send].[ch].
2812
2813         * Added support for the SILC 1.2 BAN command and new
2814           ban lists to server.  Affected files are silcd/command.c,
2815           silcd/server_util.[ch] and silcd/packet_[receive/send].[ch].
2816
2817         * Added support to client sending new INVITE command.  Affected
2818           file is lib/silcclient/command.c.
2819
2820         * Added support to client sending new BAN command.  Affected
2821           file is lib/silcclient/command.c.
2822
2823         * Added support for removing client from invite list when kicked
2824           from channel, as SILC 1.2 dictates.  Affected files are
2825           silcd/packet_receive.c and silcd/command.c.
2826
2827 Sun Nov 24 18:26:42 EET 2002  Pekka Riikonen <priikone@silcnet.org>
2828
2829         * If iv argument to silc_cipher_[encrypt/decrypt] is NULL, use
2830           automatically the cipher's internal IV.  Affected files
2831           lib/silccrypt/silccipher.[ch].
2832
2833         * Assure the RESUME_CLIENT packet is not sent to twice to
2834           backup router if the detached client was originated from
2835           the backup.  Affected file silcd/server.c.  Bug #76.
2836
2837         * Changed silc_sim_symname to not allocate memory.  Affected
2838           file lib/silcsim/silcsimutil.c.
2839
2840         * Fixed memory leaks with SIMs in server.  Affected files
2841           silcd/serverconfig.c, silcd/server.c.
2842
2843         * Fixed channel key distribution after resuming detached
2844           client.  Affected files silcd/packet_receive.c.
2845
2846         * Fixed channel's global_user boolean checking after detaching.
2847           Check it after changing the owner of the client not before.
2848           Affected file silcd/packet_receive.c.
2849
2850         * Fixed few double frees from client library.  Fixes at least
2851           Bug #81, possibly others too.
2852
2853         * UTF-8 decode topics also in JOIN command reply and TOPIC_SET
2854           notifys in Irssi SILC Client.  Affected file is
2855           irssi/src/silc/core/client_ops.c.  Bug #82.
2856
2857         * Applied Ville Räsänen's manual page and --mandir bugfix
2858           patch.  Affected files are configure.in.pre and Makefile.am.pre.
2859           Bug #88.
2860
2861 Fri Nov 22 18:34:20 EET 2002  Pekka Riikonen <priikone@silcnet.org>
2862
2863         * Added support to backup router protocol for backup to tell
2864           normal server that it cannot use the backup router as primary
2865           because the primary isn't really down.  Updated protocol
2866           specs.
2867
2868         * Added support for primary router to tell backup router that
2869           resuming is not possible because the backup really isn't primary
2870           in the cell.  For example if backup disconnected itself the
2871           resuming is not allowed since the primary really did not
2872           go down.  Updated protocol specs.
2873
2874         * Removed MARS from crypto library.
2875
2876         * Defined the CTR mode and Randomized CBC mode in SILC.  The
2877           CTR mode is RECOMMENDED now in specification.  Defined also
2878           Serpent cipher as optional cipher.  Updated the protocol specs.
2879
2880 Thu Nov 21 12:43:28 EET 2002  Pekka Riikonen <priikone@silcnet.org>
2881
2882         * Added support for inviting/banning by IP/MASK, public key,
2883           and explicit Client ID.  Redefined the command and notify
2884           types to allow easier forwards support for other methods
2885           of inviting/banning.  Updated protocol specs.
2886
2887         * Remove the client from channel's invite lists if the client
2888           is kicked or killed.  Updated protocol specs.
2889
2890         * Unified the Channel Message Payload and Private Message
2891           into one Message Payload.  Updated protocol specs and
2892           implemented.
2893
2894 Tue Nov 19 22:30:56 EET 2002  Pekka Riikonen <priikone@silcnet.org>
2895
2896         * Don't wait for EOF after socket error has occurred, but
2897           close the connection.  Affected file is silcd/server.c.
2898
2899 Mon Nov 18 18:58:26 EET 2002  Pekka Riikonen <priikone@silcnet.org>
2900
2901         * Added support for setting FOUNDER mode on channel with
2902           specific public key which can be set with CMODE command.
2903           Updated protocol specs and implemented in client and server.
2904
2905         * Fixed the Irssi SILC client to correctly shutdown the client
2906           library to avoid memory leaks.  Affected files are
2907           irssi/src/silc/core/silc-core.c and silc-servers.c.
2908
2909         * Deprecated the No Reply flag in SKE protocol and introduced
2910           "IV Included" flag which can be used to indicate that the IV
2911           is included in the ciphertext.  This makes it possible to use
2912           SILC on unreliable transport, such as UDP which may cause
2913           packet reordering and losses.  Updated protocol specs, did
2914           not implement yet.
2915
2916 Sun Nov 17 15:50:57 EET 2002  Pekka Riikonen <priikone@silcnet.org>
2917
2918         * Fixed the MPI implementation of silc_mp_sizeinbase to return
2919           < 32 bit values in correct size.  Affected file is
2920           lib/silcmath/mp_mpi.c.
2921
2922 Sat Nov 16 13:14:45 EET 2002  Pekka Riikonen <priikone@silcnet.org>
2923
2924         * Fixed the KE Start Payload parsing to check that mandatory
2925           fields are present.  Affected file lib/silcske/payload.c.
2926
2927         * Fixed compilation warnigs in Irssi SILC Client.  Affected
2928           files are irssi/src/silc/core/silc-query.c. client_ops.c.
2929
2930 Thu Nov 14 19:33:28 CET 2002  Jochen Eisinger <c0ffee@penguin-breeder.org>
2931
2932         * Print "nick now appears as newnick" and update Irssi's nicklist
2933           when you change your nick to "nick". Closes #62
2934
2935         * Never format your own nick. Closes #63
2936
2937 Thu Nov 14 09:44:54 CET 2002  Jochen Eisinger <c0ffee@penguin-breeder.org>
2938
2939         * SILC_UMODE_GONE changes are now propagated correctly to the
2940           Irssi client. Closes #54
2941
2942 Tue Nov 12 19:42:18 CET 2002  Jochen Eisinger <c0ffee@penguin-breeder.org>
2943
2944         * Fixed example in /HELP KEY
2945
2946         * Added expando $j which expands to current SILC Client version
2947
2948 Tue Nov 12 19:46:39 EET 2002  Pekka Riikonen <priikone@silcnet.org>
2949
2950         * Fixed public key decoding in crypto library.
2951
2952         * Added better error printing to SKE library.
2953
2954 Tue Nov 12 08:50:12 CET 2002  Pekka Riikonen <priikone@silcnet.org>
2955
2956         * Fixed NICK command to not crash if nickname was not sent.
2957
2958 Mon Nov 11 19:32:00 EET 2002  Pekka Riikonen <priikone@silcnet.org>
2959
2960         * Added Encrypt-Then-MAC order to SILC packet MAC generation.
2961           Deprecated the old Encrypt-And-MAC order.  Updated protocol
2962           specs and implemented.
2963
2964         * Added Encrypt-Then-MAC order to Channel Message Payload MAC
2965           generation.  Updated specs and implemented.
2966
2967 Sun Nov 10 12:20:56 EET 2002  Pekka Riikonen <priikone@silcnet.org>
2968
2969         * Added support for rekey before 2^32 sequence number wraps.
2970           Affected files in server and client library.
2971
2972         * Padding must be at least 8 bytes now.  Implemented and updated
2973           protocol specs.
2974
2975         * Compute maximum padding for authentication packets to make
2976           passphrase approximation attacks impossible.  Affected files
2977           in client library and in server.
2978
2979         * Fixed PING command sending in client library and handling in
2980           server.  The server ID must be ID Payload, not raw ID data.
2981           Affected files in server and client library.
2982
2983         * Defined that all public keys sent in commands and notify
2984           payloads are actually Public Key Payloads not raw public key
2985           data.  Updated protocol specs and implemented.
2986
2987         * Updated protocol version to 1.2.  Updated specs and code.
2988
2989         * Added ERR_UNSUPPORTED_PUBLIC_KEY and ERR_OPERATION_ALLOWED
2990           status types.  Updated specs and the code.
2991
2992         * Added support for normal client to kill its own entries from
2993           the network.  Updated protocol specs and the code.
2994
2995         * Defined the SILC_MESSAGE_FLAG_SIGNED.  Updated protocol specs
2996           and added initial implementation.
2997
2998         * Added MAC field to the Private Message Payload to protect
2999           against chosen ciphertext attacks.  Updated the protocol specs
3000           and implemented.
3001
3002         * Added idle and signon fields to the ATTRIBUTE_SERVICE
3003           attribute to indicate the user's current idle and signon time
3004           of a service.  Updated protocol specs and implemented.
3005
3006 Thu Nov  7 19:21:10 EET 2002  Pekka Riikonen <priikone@silcnet.org>
3007
3008         * Added "do_not_bind" argument to silc_client_file_send what
3009           can be used to not bind locally but assume the file receiver
3010           provides the point of connect.  Usefull when sender is behind
3011           NAT device.  Affected file lib/silcclient/silcclient.h and
3012           client_ftp.c.
3013
3014         * Added -no-listener option to FILE SEND command in Irssi SILC
3015           client.  Affected file irssi/src/silc/core/silc-servers.c.
3016           Renamed FILE RECEIVE to FILE ACCEPT.
3017
3018         * Confirm passphrase for private key encryption in
3019           silc_create_key_pair and silc_change_private_key_passphrase.
3020           Affected files are lib/silcutil/silcapputil.c.
3021
3022 Thu Nov  7 10:05:28 CET 2002  Pekka Riikonen <priikone@silcnet.org>
3023
3024         * Move silc_client_packet_send back to internal, added
3025           silc_client_send_packet, a bit simpler function for application.
3026           Affected files lib/silcclient/silcclient.h, client.c and
3027           client_internal.h.
3028
3029         * Moved the SilcClientEntry, SilcChannelEntry and
3030           SilcServerEntry to silcclient.h to be public and documented
3031           them for application.  Affected files are
3032           lib/silcclient/silcclient.h and idlist.h.
3033
3034 Wed Nov  6 17:18:13 EET 2002  Pekka Riikonen <priikone@silcnet.org>
3035
3036         * Fixed manual page installation patch by Ville Räsänen.
3037           USERS help page fix patch by Ville Räsänen
3038
3039         * Changed the silc_client_command_call interface to make
3040           the command call simpler for the application.  The library
3041           now handles the command line parsing, command finding and
3042           execution.  Application only needs to call the function
3043           with the command line.  Affected files are
3044           lib/silcclient/silcclient.h, command.[ch].
3045
3046         * Fixed silc_get_input to NULL-terminate the returned input.
3047           Affected file lib/silcutil/silcutil.c.
3048
3049         * Resolve the client's public key in JOIN command if the
3050           founder auth data is being requested but we don't know the
3051           client's public key.  Affected file silcd/command.c.
3052           Bug #53.
3053
3054 Mon Nov  4 16:02:59 EET 2002  Pekka Riikonen <priikone@silcnet.org>
3055
3056         * Print notify for server opers when backup router comes
3057           online.  Affected file silcd/server.c.
3058
3059         * Fixed the INVITE command to send the invite list in
3060           command reply.  Affected file silcd/command_reply.c.
3061
3062         * Fixed MOTD command reply sending.  Affected file
3063           silcd/command.c.
3064
3065         * UTF-8 decode the topic in TOPIC command reply and LIST
3066           command reply in Irssi SILC client.  Affected file is
3067           irssi/src/silc/core/client_ops.c.
3068
3069 Sun Nov  3 17:59:15 EET 2002  Pekka Riikonen <priikone@silcnet.org>
3070
3071         * Fixed the INVITE command to not crash Irssi SILC client
3072           when given without nickname argument.  AFfected file
3073           irssi/src/silc/core/client_ops.c.
3074
3075         * Fixed double free in WHOIS query on normal server when
3076           forwarding query to router.  Affected file is
3077           silcd/server_query.c.
3078
3079         * Fixed WATCH command reply handling on normal server which
3080           was missing altogether.  Affected file silcd/command_reply.c.
3081           Bug #44.
3082
3083 Sun Nov  3 00:42:05 EET 2002  Mika Boström <bostik@lut.fi>
3084
3085         * Added man-pages for silc(1), silcd(8) and silcd.conf(5).
3086           Included yodl sources for each of these. Also modified
3087           Makefile.am prototype to install these files to proper
3088           locations. Updated CREDITS. Affected file Makefile.am.pre,
3089           new files doc/*.yo, doc/silc.1, doc/silcd.conf.5,
3090           doc/silcd.8.
3091
3092 Sat Nov  2 21:26:56 EET 2002  Pekka Riikonen <priikone@silcnet.org>
3093
3094         * Added support for encrypted private key files.  Now
3095           passphrase must be provided when new key pair is created
3096           (can be empty though), and prompted when loading the
3097           private key.  Added support for loading the old-style
3098           non-encrypted private keys as well.  Affected files
3099           lib/silccrypt/silcpkcs.[ch], Irssi SILC client and
3100           SILC Server.
3101
3102         * Fixed silc_get_input to accept input on all terminals.
3103           Affected file lib/silcutil/silcutil.c.
3104
3105         * Moved the Irssi SILC client key loading and other stuff
3106           to be called after the arguments and UI is initialized.
3107           Affected file irssi/src/silc/core/silc-core.c.  Bug #31.
3108
3109         * Added -P option to Irssi SILC client which can be used
3110           to change the passphrase of the private key.  Affected
3111           file irssi/src/silc/core/silc-core.c.
3112
3113         * Added silc_change_private_key_passphrase apputil routine
3114           to lib/silcutil/silcapputil.[ch].
3115
3116 Sat Nov  2 12:53:09 EET 2002  Pekka Riikonen <priikone@silcnet.org>
3117
3118         * Fixed connection closing in client library to not crash.
3119           Moved the connection freeing totally to function
3120           silc_clinet_del_connection.  Affected file
3121           lib/silcclinet/client.c.
3122
3123 Fri Nov  1 18:57:02 EET 2002  Pekka Riikonen <priikone@silcnet.org>
3124
3125         * Changed includes/silcincludes.h to silcincludes.h.in to
3126           include configuration specific information.  The silcdefs.h
3127           is not included in to installation anymore (it's only
3128           compilation time header).
3129
3130 Fri Nov  1 10:30:26 CET 2002  Pekka Riikonen <priikone@silcnet.org>
3131
3132         * Moved the SilcClient and SilcClientConnection from client.h
3133           to the public lib/silcclient/silcclient.h.  Changed the
3134           structures a bit.
3135
3136 Thu Oct 31 22:44:07 EET 2002  Pekka Riikonen <priikone@silcnet.org>
3137
3138         * If version string in silc_clinet_alloc is NULL the library
3139           puts it automatically.  Affected file lib/silcclient/client.c.
3140
3141         * Changed the version strings from variables to #define's
3142           in includes/silcversion.h.
3143
3144 Wed Oct 30 16:17:30 CET 2002  Pekka Riikonen <priikone@silcnet.org>
3145
3146         * Added shared library complation support.
3147
3148 Tue Oct 29 21:48:55 EET 2002  Pekka Riikonen <priikone@silcnet.org>
3149
3150         * Added lib/silcutil/silcapputil.[ch] for application
3151           utility functions.  It includes routines for applications'
3152           convenience.  Added silc_create_key_pair, silc_show_public_key
3153           and silc_load_key_pair functions.
3154
3155 Tue Oct 29 17:36:44 EET 2002  Pekka Riikonen <priikone@silcnet.org>
3156
3157         * Send RESUME_CLIENT packet from router to backup routers
3158           to in resuming.  Affected file silcd/packet_receive.c.
3159
3160 Mon Oct 28 21:23:39 EET 2002  Pekka Riikonen <priikone@silcnet.org>
3161
3162         * In IDENTIFY command parsing, send all other IDs except
3163           Client IDs explicitly to router for resolving on normal
3164           server.  Also check that ID received in WHOIS command is
3165           always Client ID, others are not allowed.  Affected file
3166           silcd/server_query.c.
3167
3168         * Merged latest changes from irssi.org CVS.
3169
3170 Sun Oct 27 11:44:32 EET 2002  Pekka Riikonen <priikone@silcnet.org>
3171
3172         * Merged c0ffee's /set heartbeat patch to Irssi SILC client.
3173           Affected files irssi/src/silc/core/silc-core, silc-server.c.
3174
3175         * Fixed the heartbeat sending in Irssi SILC client.  Moved
3176           the silc_client_packet_send to silcclient.h for application
3177           usage.  Affected files lib/silcclient/client_internal.h
3178           lib/silcclient/silcclient.h.
3179
3180         * Fixed a bug in query resolving in server.  Used wrong
3181           variable in a for loop and crashed.  Affected file is
3182           silcd/server_query.c.
3183
3184         * Server constructs requested attributes only to locally
3185           connected clients.  Affected file silcd/server_query.c.
3186           Bug #36.
3187
3188         * Fixed a bug when sending resolving from router to server
3189           with requested attributes.  The constructed WHOIS command
3190           was incorrect.  Affected file silcd/server_query.c.
3191           Bug #38.
3192
3193         * Fixed Requested Attributes saving in WHOIS command reply.
3194           The length of the data buffer must be saved too.  Affected
3195           file silcd/command_reply.c.
3196
3197         * Update the client entry's servername after detaching is
3198           over.  Affected file silcd/packet_receive.c.  Bug #37.
3199
3200         * Resolve incomplete client entrys in CUMODE_CHANGE and
3201           CMODE_CHANGE notifys.  Affected file is
3202           lib/silcclient/client_notify.c.  Bug #42.
3203
3204 Thu Oct 24 12:22:35 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
3205
3206         * Fixed channel key packet processing bug on backup router
3207           during backup resuming protocol.  Affected file is
3208           silcd/packet_receive.c.
3209
3210         * Fixed memory leaks in server.  Affected files are
3211           silcd/server.c and silcd/packet_receive.c.
3212
3213         * Fixed packet decryption problem when backup router encrypted
3214           channel message with wrong key during backup resuming
3215           protocol.  Affected file silcd/packet_send.c.
3216
3217         * ROBODoc documented lib/silccrypt/silccipher.h.  A patch by
3218           Toni Willberg (toniw@iki.fi)
3219
3220         * Changed the SilcCipher context to be private.  Changed the
3221           silc_cipher_get_iv to just return pointer to the IV.  Added
3222           silc_cipher_get_name to return the name of the cipher.
3223           Fixed code all around to support these changes.  Affected
3224           files are lib/silccrypt/silccipher.[ch], client library and
3225           server.
3226
3227 Wed Oct 23 19:01:41 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
3228
3229         * Fixed unaligned access in lib/silccore/silcattrs.c.
3230
3231         * Fixed libtool linking in lib/silcsim/Makefile.am.
3232
3233         * Fixed services attribute printing.  Affected files is
3234           irssi/src/silc/core/silc-queries.c.
3235
3236 Wed Oct 23 09:51:04 CEST 2002  Pekka Riikonen <priikone@silcnet.org>
3237
3238         * Fixed a crashbug in incoming server accepting.  Affected
3239           file silcd/server.c.
3240
3241 Tue Oct 22 13:02:32 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
3242
3243         * Added automatically generated index to Toolkit Reference
3244           Manual.
3245
3246         * Added support for Postscript Toolkit Reference Manual.
3247
3248 Mon Oct 21 21:30:40 CEST 2002  Pekka Riikonen <priikone@silcnet.org>
3249
3250         * Merged DISCONNECT fix, and autoconn port fix from Irssi
3251           CVS.
3252
3253 Sun Oct 20 19:54:55 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
3254
3255         * Added 'send_events' boolean argument to the function
3256           silc_schedule_set_listen_fd which sends the set events to
3257           the application explicitly if set to TRUE.  Default action
3258           should be FALSE.  Affected file lib/silcutil/silcschedule.[ch],
3259           lib/silcclient/client_internal.h and silcd/server_internal.h.
3260
3261         * Added silc_compare_timeval to determine which time values
3262           is smaller.  Affected file lib/silcutil/silcutil.[ch].
3263
3264         * Added sort-of "Quality of Service" (QoS) support to
3265           SilcSocketConnection.  Data reception can be controlled with
3266           rate limit per second and/or read data length limit.
3267           Added silc_socket_set_qos.  Affected files are
3268           lib/silcutil/silcsockconn.[ch] and unix/silcunixsockconn.c.
3269
3270         * Added the QoS configuration to SILC Server configuration
3271           file.  Affected files are silcd/serverconfig.[ch] and
3272           server.c.
3273
3274 Sun Oct 20 14:12:24 CEST 2002  Pekka Riikonen <priikone@silcnet.org>
3275
3276         * Merged with irssi.org CVS.
3277
3278         * Failed OPER and SILCOPER authentications are now logged.
3279           Affected file silcd/command.c.  Bugs #25.
3280
3281 Sat Oct 19 13:32:15 CEST 2002  Pekka Riikonen <priikone@silcnet.org>
3282
3283         * ROBODoc documented lib/silcutil/silcbuffer.h and
3284           lib/silcutil/silcdlist.h.  Patch by Ville Räsänen
3285           <ville.rasanen@iki.fi>.
3286
3287 Fri Oct 18 10:51:04 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
3288
3289         * Added support for auto-passphrase authentication from the
3290           config file during connecting which was not implemented
3291           yet.  Affected file irssi/src/silc/core/client_ops.c.
3292
3293         * Fixed a bug in authentication protocol failure handling which
3294           was processing wrong callback context.  Affected files
3295           are lib/silcclient/client.c and protocol.c.
3296
3297         * Fixed the /ATTR allow off to actually work.  Affected file
3298           is irssi/src/silc/core/silc-queries.c.
3299
3300         * Fixed the /ATTR -del to work.  Affected file is
3301           irssi/src/silc/core/silc-queries.c.
3302
3303 Thu Oct 17 23:45:12 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
3304
3305         * Fixed string formatting crashbug in lib/silccore/silcattrs.c.
3306
3307         * Fixed mask attribute adding in Irssi SILC client.  Affected
3308           file irssi/src/silc/core/silc-queries.c.
3309
3310 Thu Oct 17 16:40:39 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
3311
3312         * Added support for saving the requested attributes in
3313           WHOIS to directory.  Affected file is
3314           irssi/src/silc/core/silc-queries.c.
3315
3316 Wed Oct 16 17:40:56 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
3317
3318         * Added support for parsing VCard fields that do not have
3319           the TYPE= for types.  Affected file lib/silcutil/silcvcard.c.
3320
3321         * Fixed a double free bug in hash table foreach function
3322           if the entry was deleted in the foreach callback.  Affected
3323           file lib/silcutil/silchashtable.c.
3324
3325 Tue Oct 15 18:05:24 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
3326
3327         * Added silc_attribute_get_verify_data to return the signature
3328           verification data for either user digital signature or
3329           server digital signature in Requested Attributes.  Affected
3330           files are lib/silccore/silcattrs.[ch].
3331
3332         * Added silc_vcard_alloc which is used to allocated dynamic
3333           SilcVCard context.  The silc_vcard_free now checks whether
3334           the context is dynamically allocated or not.  Affected files
3335           are lib/silcutil/silcvcard.[ch].
3336
3337 Mon Oct 14 17:55:44 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
3338
3339         * Periodically remove the NOATTR status from client entry
3340           so that the client may take the attributes in use even after
3341           server has resolved them unsuccessfully earlier.  Affected
3342           file silcd/server_query.c and idlist.h.
3343
3344         * Moved sha1hash and md5hash from client->internal to
3345           SilcClient for application usage.  Affected files are
3346           lib/silcclient/client.h and client_internal.h.
3347
3348         * Fixed attribute encoding and decoding bugs.  Affected
3349           files lib/silccore/silcattrs.[ch].
3350
3351         * Added ATTR command to Irssi SILC Client which is used to
3352           manage user's Requested Attributes sending and values for
3353           WHOIS command.  Affected files around Irssi SILC client.
3354
3355 Mon Oct 14 14:33:54 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
3356
3357         * Added silc_buffer_strformat which can be used to format
3358           strings into a buffer which size is automatically increased.
3359           Affected file lib/silcutil/silcbuffmt.[ch].
3360
3361         * Added implementation of VCard (RFC 2426) which can be used
3362           as part of Requested Attributes in WHOIS command.  Affected
3363           file lib/silcutil/silcvcard.[ch].
3364
3365 Fri Oct 11 23:52:17 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
3366
3367         * Some strncat -> silc_strncat changes our the core and
3368           client library.
3369
3370         * Added SILC_SKE_STATUS_SIGNATURE_ERROR and OUT_OF_MEMORY
3371           errors.  Added better error printing to SKE library.
3372           Affected files lib/silcske/silcske.c, silcske_status.h and
3373           payload.c.
3374
3375         * Save the PKCS key length even if only private key is set to
3376           SilcPKCS.  Affected file lib/silccrypt/silcpkcs.[ch] and rsa.c.
3377
3378         * Fixed the usage of silc_pkcs_get_key_len since it returns the
3379           length in bits not in bytes.  Affected files are
3380           lib/silcske/silcske.c, lib/silccore/silcauth.c and
3381           silcd/server_query.c.
3382
3383 Wed Oct  9 17:22:57 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
3384
3385         * Added silc_attribute_payload_encode_data to directly encode
3386           the data into the attributes buffer.  Renamed function
3387           silc_attribute_payload_parse_list to silc_attribute_payload_parse.
3388           Affected files are lib/silccore/silcattrs.[ch].
3389
3390         * silc_hash_table_find_foreach calls the foreach function now
3391           once even if the nothing was found with context set to NULL.
3392           Affected file lib/silcutil/silchashtable.[ch].
3393
3394         * Remove the RESOLVING flag from client entry after received
3395           the Requested Attributes from the client.  Fixed memory leak
3396           in client entry freeing.  Affected files silcd/server_query.c
3397           and idlist.c.
3398
3399         * Added Requested Attributes support into SILC Client Library.
3400           It is not able to send requested attributes in WHOIS command,
3401           and also receive and process requested attributes.  Added
3402           silc_client_attribute_[add|del] and silc_client_attributes_get
3403           functions.  Added also `ignore_requested_attributes' to the
3404           SilcClientParams to not use attributes in client.  Affected
3405           files are lib/silcclient/command.c, client_attrs.[ch],
3406           silcclient.h, client_internal and client.[ch].
3407
3408         * Changed the silc_client_get_client_by_id to support Requested
3409           Attributes, it takes them as argument now.  Affected file
3410           is lib/silcclient/silcclient.h, and idlist.c.
3411
3412         * Added -details option to WHOIS command in Irssi SILC Client
3413           to support the requested attributes.  By default it requests
3414           all attributes.  Affected file lib/silcclient/command.c and
3415           irssi/doc/help/in/whois.in.
3416
3417 Tue Oct  8 17:58:28 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
3418
3419         * Add also SERVICE attribute for server-constructed attribute
3420           data.  Also digitally sign the attributes and add
3421           SERVER_DIGITAL_SIGNATURE attribute.  Affected file is
3422           silcd/server_query.c.
3423
3424 Mon Oct  7 18:25:35 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
3425
3426         * Changed the silc_attribute_payload_encode to support list
3427           of attributes (function may be called several times to add
3428           a new attribute).  Removed the silc_attribute_payload_encode_list
3429           function.  The encoding function now also automatically encodes
3430           the data, so the caller does not need to do that.  Affected
3431           files lib/silccore/silcattrs.[ch].
3432
3433         * Added support for replying on behalf of the user to the
3434           Requested Attributes in WHOIS command in the server.  Affected
3435           file silcd/server_query.c.
3436
3437         * SILC_NOT_IMPLEMENTED macro use SILC_LOG_INFO now instead of
3438           SILC_LOG_DEBUG.  Affected file lib/silcutil/silclog.h.
3439
3440 Sun Oct  6 16:48:32 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
3441
3442         * Don't swtich to become primary router if we are backup if
3443           decryption error has occurred.  Affected file silcd/server.c.
3444
3445         * Fixed a bug in backup router IP address comparison in
3446           silc_server_backup_get.
3447
3448           Save now also the port of the server/router and use that
3449           in comparison as well.  Affected file silcd/server_backup.c.
3450
3451         * Normal server now reconnects to backup router automatically
3452           if connection is lost to it.  Affected file silcd/server.c.
3453
3454 Thu Sep 26 13:51:02 CEST 2002  Pekka Riikonen <priikone@silcnet.org>
3455
3456         * If packet processing fails (like integrity check fails)
3457           the connection is closed now.  Affected files are
3458           lib/silccore/silcpacket.c and silcd/server.c.
3459
3460 Mon Sep 23 10:59:39 CEST 2002  Pekka Riikonen <priikone@silcnet.org>
3461
3462         * Fixed double free in RSA public key set function
3463           silc_rsa_set_public_key.  Affected file lib/silccrypt/rsa.c.
3464           Bug #29.
3465
3466 Sun Sep 22 14:54:05 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
3467
3468         * Rewrote WHOIS, WHOWAS and IDENTIFY commands in the server.
3469           Added server_query.[ch] which provides one interface for
3470           querying information using all three commands.
3471
3472         * Changed all "typedef unsigned char" in core library to
3473           "typedef SilcUInt8".
3474
3475 Sat Sep 21 21:36:45 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
3476
3477         * Added silc_strncat into lib/silcutil/silcstrutil.[ch].
3478
3479         * Renamed silc_server_get_client_resolve to
3480           silc_server_query_resolve and moved to server_query.[ch].
3481
3482 Wed Sep 18 18:28:04 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
3483
3484         * Resumed client packet handling from server put the resumed
3485           client on wrong list on router and caused the client not
3486           be present on the network anymore.  Now fixed to put the
3487           client to correct list.  Affected file silcd/packet_receive.c.
3488
3489 Wed Sep 18 15:13:48 CEST 2002  Johnny Mnemonic <johnny@themnemonic.org>
3490
3491         * Various cleanup in error message output in config parsing code
3492           and in server init code.  Fixed error log files containing
3493           too many newlines ('\n') in some situations.  Affected files are
3494           silcd/serverconfig.c, silcd/silcd.c, and silcd/server.c.
3495
3496 Wed Sep 18 10:51:23 CEST 2002  Pekka Riikonen <priikone@silcnet.org>
3497
3498         * Use the reverse lookupped hostname in client internals
3499           instead of one user provided us as remote server name.
3500           Affected file lib/silcclient/client.c.
3501
3502 Mon Sep 16 12:02:54 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
3503
3504         * Added 'app_context' to silc_schedule_init.  It is an
3505           application specific context that is delivered to application
3506           in task callback functions.  Affected files are
3507           lib/silcutil/silcutil.[ch].
3508
3509         * The hb_context in SilcSocketConnection is not freed
3510           automatically anymore (application must free it).  Freeing
3511           it automatic is inconsistent.  Affected files are
3512           lib/silcutil/silcsockconn.[ch].
3513
3514 Sun Sep 15 22:16:19 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
3515
3516         * Added support for removing explicitly added client connections
3517           in rehash and closing the client connections if they were
3518           unconfigured in the rehash.  Affected file silcd/server.c.
3519
3520         * Added support for aborting automatically pending commands
3521           that never receives the reply (to avoid memory leaks).
3522           Added also silc_server_command_pending_timed to set the
3523           specific timeout for pending command.  Affected files are
3524           silcd/command[_reply].[ch].
3525
3526         * Added SILC_STATUS_ERR_TIMEDOUT status.  Updated protocol
3527           specs and lib/silccore/silcstatus.h.
3528
3529 Sun Sep 15 12:25:10 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
3530
3531         * Changed the silc_get_time to accept time value as argument
3532           or if zero is sent return current local time.  Affected
3533           file lib/silcutil/silcutil.[ch].
3534
3535         * Added STATS command to client library and Irssi SILC client.
3536           Patch provided by Ville Räsänen <ville.rasanen@iki.fi>.
3537
3538 Wed Sep 11 09:22:00 CEST 2002  Pekka Riikonen <priikone@silcnet.org>
3539
3540         * Assure that channel key is set before sending it.  May
3541           crash server otherwise.  Affected file silcd/packet_send.c.
3542
3543 Tue Sep 10 09:50:08 CEST 2002  Pekka Riikonen <priikone@silcnet.org>
3544
3545         * Assure that endless loop cannot happen with detached client
3546           resolving on normal server.  Added idlist status
3547           SILC_IDLIST_STATUS_RESUME_RES.   Affected files are
3548           silcd/idlist.h and silcd/packet_receive.c.
3549
3550 Mon Sep  9 12:18:18 CEST 2002  Pekka Riikonen <priikone@silcnet.org>
3551
3552         * Incoming file transfer request cannot use same session as
3553           the sending session.  This can happen when sending file to
3554           yourself.  Crashed the client on quit.  Affected file
3555           lib/silcclient/client_ftp.c.  Bug #24.
3556
3557 Sun Sep  8 18:39:25 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
3558
3559         * Implemented the draft-riikonen-precense-attrs draft and
3560           the Attribute Payload into the lib/silccore/silcattrs.[ch].
3561
3562 Sun Sep  8 13:13:44 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
3563
3564         * Distribute the SERVER_SIGNOFF notify also to local backup
3565           routers from the primary router.  The backup router may not
3566           have the signing of local server directly connected and need
3567           to know about the signoff.  Affected file silcd/server_util.c.
3568
3569         * Use the primary router as the origin of the locally connected
3570           server when it is disconnecting from the backup router since
3571           that's where it really is coming from.  Now the clients from
3572           the disconnecting server are removed correctly and "shadow"
3573           clients are not left to the backup router.  Affected file
3574           silcd/server.c.
3575
3576 Sat Sep  7 22:26:50 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
3577
3578         * If normal server is standalone and found existing but disabled
3579           channel, do not re-create the channel since it creates
3580           duplicate same channels.  Affected file silcd/server.c.
3581
3582         * Added anonymous client connections support to server.  New
3583           "anonymous" configuration option to ConnectionParams section
3584           added.  If set to true, the username and hostname information
3585           of the client will be scrambled and anonymous user mode is
3586           set automatically to the user.  Affected files are
3587           silcd/serverconfig.[ch], silcd/packet_receive.c and server.c.
3588
3589 Sat Sep  7 16:02:09 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
3590
3591         * In JOIN notify handling, mark that the cache entry of the
3592           client cannot be expired.  Can cause crashes on normal
3593           server (asserts client->channels).  Affected file is
3594           silcd/packet_receive.c.
3595
3596         * From now on distribution versions are used as protocol versions
3597           instead of by default using the Toolkit base version as protocol
3598           version.  Affected file prepare.
3599
3600         * Do not set the locally resolved hostname for local client
3601           entry but take what server sends.  This way the real hostname
3602           is showed in WHOIS for yourself.  Affected file is
3603           lib/silcclient/idlist.c and lib/silcclient/client.c.
3604
3605         * Resolve local info with IDENTIFY when connecting to server.y
3606
3607 Sat Sep  7 14:22:43 CEST 2002 Lubomir Sedlacik <salo@silcnet.org>
3608
3609         * Rewritten check for POSIX threads.  Use --with-pthreads[=DIR]
3610           for implied search (not needed on platforms which has native
3611           pthreads library).  Use --without-pthreads to disable threads.
3612           Affected file is configure.in.pre
3613
3614         * Fixed --with-iconv on platforms which need to bypass (broken)
3615           native iconv().  Affected file is configure.in.pre
3616
3617 Sat Sep  7 15:08:13 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
3618
3619         * Moved -C option parsing in Irssi SILC client at same time
3620           as other options.  The UI was initialized earlier and caused
3621           problems on command line.  Bug #16.  Affected file is
3622           irssi/src/silc/core/silc-core.c.
3623
3624 Mon Sep  2 23:00:30 CEST 2002 Johnny Mnemonic <johnny@themnemonic.org>
3625
3626         * Added global variable silc_log_timestamp that tells silclog
3627           wether to print or not the timestamp in the logging files.
3628           Affected file lib/silcutil/silclog.[ch].
3629
3630         * Added silcd configuration option Timestamp in the Logging
3631           section.  Affected file silcd/serverconfig.[ch],
3632           doc/example_silcd.conf.in.
3633
3634 Fri Aug 30 08:57:33 CEST 2002 Pekka Riikonen <priikone@silcnet.org>
3635
3636         * Fixed fingerprint checking to check for entirely empty
3637           fingerprint instead of two first bytes when determining
3638           if it is set.  Bug #18.  Affected file silcd/command.c.
3639
3640         * Fixed duplicate PKCS name registering to not allow it.
3641           Bugs #17.  Affected file lib/silccrypt/silcpkcs.c.
3642
3643 Sun Aug 25 08:02:04 CEST 2002 Lubomir Sedlacik <salo@silcnet.org>
3644
3645         * Conditionalize non-gcc compiler optimizations for various
3646           platforms, enable those commented out.  Cleanups.
3647           Affected file lib/silcmath/mpi/configure.in
3648
3649 Sat Aug 24 15:11:32 EEST 2002 Timo Sirainen <tss@iki.fi>
3650
3651         * silc_rng_exec_command() left zombie processes if command
3652           didn't generate any output.  Affected file
3653           lib/silccrypt/silcrng.c
3654
3655 Fri Aug 23 22:05:44 CEST 2002 Lubomir Sedlacik <salo@silcnet.org>
3656
3657         * Rewrote iconv checking, introduce --with-iconv for systems
3658           which rely on libiconv.  Check if iconv() provided by libc
3659           is good enough, otherwise demand libiconv.  Affected file
3660           configure.in.pre
3661
3662 Fri Aug 23 07:10:52 CEST 2002 Lubomir Sedlacik <salo@silcnet.org>
3663
3664         * Search for ldopen() also in libc.  This enables SIM support
3665           on *BSD systems.  Based on patch from Alex Zepeda.  Affected
3666           file configure.in.pre
3667
3668 Sun Aug 18 04:44:30 CEST 2002 Lubomir Sedlacik <salo@silcnet.org>
3669
3670         * Don't call AM_CONDITIONAL conditonally for SILC_THREADS.
3671           This fixes prepare on *BSD systems.  Affected file
3672           configure.in.pre
3673
3674 Sun Aug  4 15:55:40 CEST 2002 Pekka Riikonen <priikone@silcnet.org>
3675
3676         * More fixed for not having purge timeout for global clients
3677           that are on channel.  Affected files silcd/command_reply.c
3678           and server_util.c.
3679
3680         * Fixed the rekey protocol to work with backup router connections.
3681           Rekey packets are now allowed on disabled connections as
3682           well.  Affected files silcd/packet_send.c and server.c.
3683
3684         * Do not switch to be as backup router when shutting down and
3685           closing the primary connection.  Affected file silcd/server.c.
3686
3687         * Fixed memory leaks in backup router deleting.  Added
3688           silc_server_backup_free to free all data during shutdown of
3689           server.  Affected files silcd/server_backup.[ch].
3690
3691 Sun Jul 14 21:33:32 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
3692
3693         * Do not process commands if the sock->user_data is NULL.
3694           Affected file silcd/command.c.
3695
3696 Tue Jul  9 19:03:11 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
3697
3698         * Fixed buffer overflow and security problems (loosing bits
3699           in CFB encryption) in SILC RNG.  Problems reported by
3700           Markku-Juhani O. Saarinen <mjos@saturn.tcs.hut.fi>.
3701
3702 Sun Jul  7 13:10:01 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
3703
3704         * Added yet more checks that client is not expired on global
3705           list if it is on channels.  Affected file is
3706           silcd/command_reply.c.
3707
3708 Sat Jul  6 11:45:11 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
3709
3710         * Merged c0ffee's MIME signal patch which adds support for
3711           sending also MIME messages in Irssi SILC Client, and handling
3712           received MIME messages in a signal (and perhaps doing something
3713           to non-textual MIME messages).
3714
3715 Sun Jun 30 01:30:22 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
3716
3717         * Fixed pending command deletion in server and client library
3718           to check the whole list instead of breaking after first found.
3719           The affected files are silcd/command.[ch] and
3720           lib/silcclient/command.[ch].
3721
3722 Sat Jun 29 17:40:12 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
3723
3724         * Return NO_SUCH_CHANNEL error in USERS for channel that is
3725           secret or private, otherwise it's possible to find out
3726           whether a secret channel exists or not.  Affected file
3727           silcd/command.c.
3728
3729         * If CMODE change fails during the mode setting, assure that
3730           the old mode mask is set for the channel back.  Affected
3731           file silcd/command.c.
3732
3733         * Fixed passphrase saving on +a channel on normal server
3734           after successful JOIN command.  Affected file silcd/command.c.
3735
3736 Fri Jun 28 11:53:25 CEST 2002 Pekka Riikonen <priikone@silcnet.org>
3737
3738         * Remove server/router operator privileges in DETACH command,
3739           since it's possible to resume to server where these
3740           privileges would not be allowed for the client.  Affected
3741           file silcd/command.c.
3742
3743         * Do not set to wait for backup in rehash of the server.
3744           Affected file silcd/server.c.
3745
3746         * Do not check listener sockets when counting how many
3747           socket connections we have.  Affected file is
3748           silcd/server_util.c.
3749
3750         * Do not announce disconnected clients that are remaining
3751           in history (for WHOWAS).  This is because SIGNOFF notify
3752           for these has been sent earlier already.  Affected file
3753           silcd/server.c.
3754
3755 Thu Jun 27 20:07:27 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
3756
3757         * Buffer overflow with CUMODE command's mode->mode character
3758           conversion.  Reported by Ville Räsänen.  Affected file
3759           lib/silcutil/silcutil.c.
3760
3761 Thu Jun 27 16:54:33 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
3762
3763         * Allow heartbeat packets to go disabled connections anyway.
3764           Affected files silcd/server.c and silcd/packet_send.c.
3765
3766         * Do not broadcast New Channel packets with List flag set
3767           in the packet to backup routers.  The router must check
3768           for the correctness of the packets before sending them.
3769           It is possible that router will have enforce Channel ID
3770           change and this would cause desync in the backup router.
3771           Affected file silcd/packet_receive.c.
3772
3773         * Remove SILC_PACKET_FLAG_LIST from the temp packets that
3774           are handled in list parsing.  They are not list packets
3775           anymore.  Affected file silcd/packet_receive.c.
3776
3777 Thu Jun 27 11:27:07 CEST 2002 Pekka Riikonen <priikone@silcnet.org>
3778
3779         * Stop waiting for backup router through the timeout, not
3780           directly after backup router has arrived.  Affected file
3781           silcd/server.c.
3782
3783         * Do not re-create channel keys and send them when removing
3784           clients in server shutdown.  Affected files are
3785           silcd/server_internal.h and silcd/server_util.c.
3786
3787         * Notify distribution to backup routers was missing from
3788           the silc_server_send_notify_dest function which caused
3789           desyncing problems with backup router.  Affected file is
3790           silcd/packet_send.c.
3791
3792         * The client's channel removing was working wrong on
3793           backup router.  It assumed that it doesn't know global
3794           information but backup router does know.  For this reason
3795           it could remove channel when it wasn't supposed to do that.
3796           Affected file silcd/server.c and silcd/server_util.c.
3797
3798 Wed Jun 26 15:14:12 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
3799
3800         * Stop for a couple seconds after badkup router has become
3801           primary router.  Affected file silcd/server.c.
3802
3803         * Added silc_server_remove_servers_by_server, which is used
3804           to remove servers originated from some other server.  Also
3805           clients of those servers can be removed too.  Affected file
3806           silcd/server_util.[ch].
3807
3808         * When removing clients after a server has signed of remove
3809           also all servers behind that server (unless they are known
3810           to be available locally), and send SERVER_SIGNOFF for each
3811           of the server separately.  Also the signed off clients are
3812           sent now separately per signed off server.  The affected files
3813           are silcd/server.c and silcd/server_util.[ch].
3814
3815         * All servers added with silc_idlist_add_server must always
3816           have both "router" and "connection" pointers set.  Otherwise,
3817           bad server entries may be left around in the cache.
3818           Affected file silcd/command_reply.c.
3819
3820         * Do not create the channel key in NEW_CHANNEL packet
3821           processing if the channel is empty.  Affected file
3822           silcd/packet_receive.c.
3823
3824         * Completed backup router support for standalone routers.
3825           Supports also servers in the cell that do not use the backup
3826           at all.
3827
3828 Wed Jun 26 10:38:11 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
3829
3830         * Fixed a bug in silc_string_regexify which did not add '^'
3831           at the start of each string, and thus the matching was
3832           not explicit.  For example ban list iikone@*!*@* would
3833           match also "priikone", which is wrong, it would have to be
3834           *iikone@*!*@* to match also "priikone".  Affected
3835           file lib/silcutil/unix/silcunixutil.c.
3836
3837 Tue Jun 25 18:47:39 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
3838
3839         * Enable all local server connections before updating client
3840           caches when we've become backup router.  Otherwise, signoff
3841           packets may not reach the clients.  Affected files are
3842           silcd/server.c and silcd/server_util.[ch].
3843
3844         * Fixed a bug in version string parsing which could crash
3845           the program with specially formatted version string.
3846           Bug reported and patch provided by Ville Räsänen.  Affected
3847           file lib/silcutil/silcutil.c.
3848
3849         * Handle the disconnection immediately when DISCONNECT
3850           packet is received in server.  Affected file silcd/server.c.
3851
3852         * Primary router now waits a short time (10 seconds) for
3853           backup router connection before accepting any other
3854           connection (except local).  Affected file silcd/server.c,
3855           serverconfig.[ch].
3856
3857         * Fixed a crash in client libary in NICK_CHANGE notify when
3858           NICK_CHANGE arrived for client entry we are resolving
3859           currently.  Affected file lib/silcclient/client_notify.c.
3860
3861         * Call the sconn->callback completion even if error had
3862           occurred.  Start reconnecting always if connection to
3863           primary router fails during backup router protocol.
3864           Affected files silcd/server.c and server_backup.c.
3865
3866 Mon Jun 24 17:47:52 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
3867
3868         * Added functions silc_server_send_opers and
3869           silc_server_send_opers_notify to send packets stricly
3870           to operators.  Added macro SILC_SERVER_SEND_OPERS macro
3871           to send variable argument notify to operators.
3872           Affected files silcd/packet_send.[ch] and silcd/server.h.
3873
3874         * Removed UMODE rights checking with UMODE_CHANGE notify.
3875           Affected file silcd/packet_receive.c.
3876
3877         * Server/router operator now receives notify when network
3878           switches to backup router and when it resumes the use of
3879           primary router.  Affected file silcd/server.c and
3880           silcd/server_backup.c.
3881
3882         * Fixed the updating of client information after backup
3883           resuming protocol is over; update all except local clients
3884           to the new primary router.  The affected file is
3885           silcd/server_util.c.
3886
3887         * Added support for closing active connections in rehash
3888           that were unconfigured by the user.  Supports currently
3889           closing server and router connections.  Affected file
3890           silcd/server.c.
3891
3892         * Rewrote some SILC_LOG_DEBUG's in silcd/server_backup.c.
3893
3894 Sun Jun 23 17:32:31 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
3895
3896         * Don't do SILC_STRING_LANGUAGE encoding if the outbuffer
3897           is NULL since seems that on some platforms NULL is allowed
3898           and on some it's not.  Fallback encoding is used instead.
3899           Affected file lib/silcutil/silcstrutil.c.
3900
3901         * Fixed statistics updating for incoming server connection
3902           which could cause problems when re-connecting.  Affected
3903           file silcd/server.c.
3904
3905         * Preliminary backup router support for standalone router
3906           added.  Affected files in silcd/.
3907
3908         * Mark server connections in backup router disabled before
3909           and after backup protocol.  Affected file is
3910           silcd/server_backup.c.
3911
3912         * Added support for reconnecting to remote server connection
3913           even if the protocol fails, and if the configuration wants
3914           us to keep trying to connect anyway.
3915
3916           Server connection is not allowed to backup router if
3917           backup router does not have connection to primary router yet.
3918
3919           Affected file is silcd/server.c.
3920
3921 Sat Jun 22 21:34:59 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
3922
3923         * Added silc_client_udpate_server function to update changed
3924           server info.  Affected file lib/silcclient/idlist.[ch].
3925
3926         * Added check for server entries that are being resolved when
3927           notify is received.  If being resolved, handle the received
3928           notify only after it's resolved so that all notifys are
3929           handled in same order as received from the server.
3930
3931           Added similar resolver check to channel entries.  Every
3932           notify that cause resolving of any information that affects
3933           channel entry marks the channel entry in waiting state.
3934           After whatever resolving is over the waiters are signalled
3935           and only then the notifys are handled in the same order
3936           as delivered from the server.
3937
3938           Affected files are lib/silcclient/idlist.[ch], and
3939           client_notify.c.
3940
3941         * Fixed KILLED notify handling in normal server.  Affected
3942           file silcd/packet_receive.c.
3943
3944         * Added SILC_IDLIST_STATUS_LOCAL which indicates that entry
3945           is locally connected, or was locally connected (but may
3946           be detached and connection is not active).  Added also
3947           SILC_IS_LOCAL for checking this status.  Affected files
3948           silcd/idlist.h, silcd/packet_receive.c, silcd/server_util.c,
3949           silcd/server.c and silcd/server_internal.h.
3950
3951 Sat Jun 22 17:06:58 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
3952
3953         * Don't send or handle TOPIC_SET if topic is already set and
3954           is same as being set.  Affected files silcd/command.c and
3955           silcd/packet_receive.c.
3956
3957         * Fixed CMODE change rights checking to work correctly when
3958           removing modes by operator.  Affected file is
3959           silcd/server_util.c.
3960
3961         * Fixed some handling with New Channel packet in router and
3962           fixed some CMODE_CHANGE notify handling in server and router.
3963           Affected file is silcd/packet_receive.c.
3964
3965         * Changed "disconnect" client operation to include the
3966           reason of the disconnection and optional disconnection
3967           message.  Affected file lib/silcclient/silcclient.h.
3968
3969         * Made the compilation of lib/contrib/ stuff conditional.
3970           Affected files configure.in.pre, lib/contrib/Makefile.am.
3971
3972 Sat Jun 22 12:49:21 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
3973
3974         * All CMODE_CHANGE and CUMODE_CHANGE notifys are now sent back
3975           to the sender of the notify too, to avoid situation where two
3976           notifys are in the network at the same time going to oppsite
3977           directions.  Affected file silcd/packet_receice.c.
3978
3979 Fri Jun 21 10:00:32 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
3980
3981         * Delete the client from channel even if the cilent->id is
3982           NULL.  It was possible that client was deleted without
3983           removing from channels (theoretically at least).  Affected
3984           file silcd/server.c and silcd/server_util.c.
3985
3986         * Free the client data too when resuming is not successful.
3987           Affected file silcd/packet_receive.c.
3988
3989         * Merged some code from c0ffee's silc-plugin.  Affected files
3990           irssi/src/silc/core/silc-channels.c and silc-expandos.c.
3991
3992         * Added SILC_PRIMARY_ROUTE and SILC_BROADXAST macros to
3993           silcd/server_internal.h.  SILC_PRIMARY_ROUTE Returns pointer
3994           to the primary router connection, the other one returns
3995           TRUE if packet must be broadcasted to network.
3996
3997         * All notifys that are destined to primary router (to network)
3998           are now automatically sent to backup routers even if the
3999           router is standalone (and has backup router).  Affected files
4000           in silcd/.
4001
4002         * Added --without-irssi and --without-silcd configuration
4003           options for disabling the compilation of these applications.
4004           Affected file configure.in.pre and prepare.
4005
4006 Thu Jun 20 13:48:15 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
4007
4008         * Implemented SILC_STRING_BMP and SILC_STRING_UNIVERSAL for
4009           UTF-8 encoding and decoding.  Added also new encodings
4010           SILC_STRING_BMP_LSB and SILC_STRING_UNIVERSAL_LSB.
4011
4012           Added also SILC_STRING_LANGUAGE which is language and charset
4013           specific encoder and decoer for those platforms that support
4014           iconv().  It can convert the UTF-8 to and from the locale
4015           specific character set.
4016
4017           Affected file lib/silcutil/silcstrutil.[ch].
4018
4019         * Added macro SILC_NOT_IMPLEMENTED to lib/silcutil/silclog.h.
4020
4021         * Added function silc_get_command_name to the file
4022           lib/silcutil/silcutil.[ch].
4023
4024         * Improved the server debug output a bit.  Affected files are
4025           in silcd/.
4026
4027 Wed Jun 19 17:46:31 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
4028
4029         * Save the channel passphrase when received succesful JOIN
4030           command reply from router, on normal server.  Otherwise
4031           joinig +a channels from normal server is not possible.
4032           Affected file silcd/command.c.
4033
4034         * Fixed a bug in TOPIC_SET notify handling.  The notifier
4035           may be other than client too, like server or channel.
4036           It expected it to always be only client and ignored the
4037           notify.  Affected file silcd/packet_recieve.c.
4038
4039         * Removed some (unnecessary) debug printing from
4040           lib/silccore/silcid.c and lib/silccore/silcargument.c.
4041
4042         * Do not force CMODE_CHANGE when server is announcing new
4043           channel.
4044
4045           Router announces stuff only after server reannounces channel
4046           after CHANNEL_CHANGE notify.
4047
4048           These fixes optimizes the announcing procedure, and perhaps
4049           fixes some problems too.  Affected file silcd/packet_receive.c.
4050
4051         * Fixed SERVER_SIGNOFF sending to local clients.  It was
4052           totally broken and sent the notify to all local clients,
4053           instead of only to those that was on same channel as the
4054           signing off clients.  Affected file silcd/server_util.c.
4055
4056         * Added -D option to server.  It can be used to give debug
4057           level.  The levels are from 0 - 99, and are predefined for
4058           smooth server debugging.  (see silcd.c for the predefined
4059           levels).  Affected file silcd/server.c.
4060
4061 Wed Jun 19 16:01:51 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
4062
4063         * Fixed a bug in Irssi SILC client to close the connection
4064           properly when disconnecting from server.  Affected file
4065           irssi/src/silc/core/client_ops.c.
4066
4067 Tue Jun 18 17:14:52 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
4068
4069         * When authenticating as founder during JOIN command, check
4070           that the one authenticating becomes the only founder on the
4071           channel.  Affected file silcd/command.c.
4072
4073         * Better checking for founder mode setting when CUMODE_CHANGE
4074           notify is received.  Affected file silcd/packet_receive.c.
4075
4076         * Close all connections when shutting down the server by sending
4077           DISCONNECT packet.  Close all listeners too when shutting
4078           down the server.  Affected file silcd/server.c.
4079
4080         * Handle DISCONNECT packet correctly in client library by
4081           calling the "disconnect" client operation.  Affected file
4082           lib/silcclient/client.c.
4083
4084         * Handle local errors correctly during resuming.  Affected
4085           file lib/silcclient/client.c.
4086
4087 Tue Jun 18 10:26:27 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
4088
4089         * The log file is not dupped internally anymore in
4090           lib/silcutil/silclog.c.  Fixed memory leaks too.
4091
4092         * The scheduler now dispatches all pending timeout tasks
4093           when it is uninitialized with silc_schedule_uninit.
4094           Affected file lib/silcutil/silcschedule.c.
4095
4096 Mon Jun 17 21:30:55 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
4097
4098         * Added --enable-stack-trace option to configure.  Added
4099           memory allocation stack trace support.  Added files
4100           lib/silcutil/stacktrace.[ch].  Affected files are
4101           lib/silcutil/silcmemory.[ch].
4102
4103         * Fixed memory leaks from libraries and server.  Affected
4104           files around the tree.
4105
4106         * Reverted back a fix made to CUMODE which broke it.
4107           Affected file silcd/command.c.
4108
4109 Sun Jun 16 11:49:45 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
4110
4111         * Added SILC_MESSAGE_FLAG_UTF8 to the protocol specs and the
4112           core library, and implemented it.  All textual messages SHOULD
4113           use this flag and the message MUST be UTF-8 encoded.
4114           All text messages sent by Irssi SILC client are now UTF-8
4115           encoded (regardless whether the terminal supports UTF-8 or not).
4116           Affected files are lib/silccore/silcchannel.h,
4117           irssi/src/silc/core/silc-servers.c, silc-channels.c and
4118           client_ops.c.
4119
4120 Sat Jun 15 18:23:39 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
4121
4122         * Added lots of new statistics updating that was missing from
4123           the server and router code.  Affected files in silcd/.
4124
4125         * Sending SIGUSR1 signal to server now dumps the current
4126           server statistics into /tmp directory.  Affected file is
4127           silcd/silcd.c.
4128
4129         * ROBODoc documented the lib/silccrypt/silchash.h.  Improved
4130           the SILC Hash Interface also.  Added new functions
4131           silc_hash_get_name, silc_hash_init, silc_hash_update and
4132           silc_hash_final.  Affected file lib/silccrypt/silchash.c.
4133
4134 Sat Jun 15 12:09:14 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
4135
4136         * Added some better info printing for client during connecting.
4137           Affected file silcd/server_util.c.
4138
4139         * Implemented the SILC_CHANNEL_UMODE_QUIET mode that can be used
4140           to silence a user on a channel.  Affected files are
4141           lib/silcclient/client_channel.c, irssi/src/silc/core/client_ops.c,
4142           irssi/src/fe-common/silc/module-formats.[ch], silcd/command.c
4143           and silcd/packet_receive.c.
4144
4145         * Fixed a fatal bug in handling of malformed command payload.
4146           Affected file silcd/command.c.
4147
4148         * Fixed a double free when announcing channel users to router.
4149           Affected file silcd/server.c.
4150
4151         * After successful authentication to channel founder mode, check
4152           that there isn't anyone else with founder mode on the channel.
4153           The one that authenticated will become founder and anyone
4154           else is demoted.  Affected file silcd/command.c.
4155
4156         * Added error printing of any error that has occurred during
4157           any command in client library.  Affected file is
4158           irssi/src/silc/core/client_ops.c.
4159
4160         * Removed some error printing from the client library and left
4161           it for the application to worry (from the error status it
4162           receives in 'command' client operation.  Affected file is
4163           lib/silcclient/command.c.
4164
4165 Fri Jun 14 22:59:02 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
4166
4167         * Added new status types KEY_AGREEMENT_ALREADY_STARTED and
4168           KEY_AGREEMENT_SELF_DENIED to lib/silcclient/silcclient.h.
4169           Starting key agreement with itself is denied.  Affected file
4170           is lib/silcclient/client_keyagr.c.
4171
4172         * Fixed some error checkings from the SFTP library which caused
4173           misbehaviour.  Affected files are lib/silcsftp/sftp_client.c
4174           and lib/silcsftp/sftp_util.c.
4175
4176         * Added new "debug" and "debug_string" settings to Irssi SILC
4177           client which can be used to print runtime debugging on the
4178           Irssi's screen.  Available when compiled with --enable-debug
4179           option.  Affected file irssi/src/silc/core/silc-core.c.
4180
4181 Tue Jun 11 16:36:02 CEST 2002 Johnny Mnemonic <johnny@themnemonic.org>
4182
4183         * Fixed a missing variadic parameter in a function call that
4184           caused server crash when a non-allowed connection arrived.
4185           Reported by Richard Becker.  Affected file silcd/server.c.
4186
4187 Mon Jun 10 16:29:42 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
4188
4189         * Added WATCH list sending to backup routers from router.
4190           The WATCH command is sent by the router to the backup
4191           router.  Affected file silcd/command.c.
4192
4193         * Mark the backup_router flag for RouterConnection entry
4194           if the backup router stuff is defined in the config file.
4195           Affected file silcd/serverconfig.c.
4196
4197         * Fixed some backup data sending around the code to work better
4198           if the router is standalone router.  Not all places were fixed.
4199           Affected file silcd/packet_receive.c, silcd/packet_send.c,
4200           silcd/server.c.
4201
4202         * Fixed the router connecting when connecting to multiple
4203           routers.  It ignored every other router except the first
4204           one.  Affected file silcd/server.c.
4205
4206 Mon Jun 10 09:28:21 CEST 2002 Pekka Riikonen <priikone@silcnet.org>
4207
4208         * Made the private key generation after expiration optional.
4209           If not created after expiration the old key will re-expire
4210           at a later time (and thus key pair is not necessary to
4211           change).  Affected file irssi/src/silc/core/clientutil.c.
4212
4213 Sun Jun  9 18:58:25 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
4214
4215         * The length arguments in bind() and connect() were wrong
4216           and fixed now to used SIZEOF_SOCKADDR in the
4217           lib/silcutil/unix/silcunixutil.c.
4218
4219 Tue Jun  4 18:36:05 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
4220
4221         * Fixed detach timeout handling to use Client ID and not
4222           the actual client entry which may be freed in the callback.
4223           Affected file silcd/command.c.
4224
4225 Thu May 30 15:53:45 CEST 2002 Pekka Riikonen <priikone@silcnet.org>
4226
4227         * Merged c0ffee's multiple interface support patch.
4228           Affected files in silcd/.
4229
4230 Wed May 29 18:08:15 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
4231
4232         * Cleanup keys properly.  Affected file is
4233           irssi/src/silc/core/clientutil.c.
4234
4235 Tue May 28 20:11:41 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
4236
4237         * Display the user mode on the status bar.  Affected file
4238           irssi/src/silc/core/silc-expandos.c.
4239
4240 Tue May 28 13:56:26 CEST 2002 Pekka Riikonen <priikone@silcnet.org>
4241
4242         * If private message key is not set, but the flag is set in
4243           the packet, ignore the packet since it cannot be decrypted.
4244           Affected file lib/silcclient/client_prvmsg.c.
4245
4246 Thu May 23 12:00:14 CEST 2002 Pekka Riikonen <priikone@silcnet.org>
4247
4248         * When resuming client, remove the old client entry from
4249           the watcher list too.  Affected file silcd/packet_receive.c.
4250
4251         * Do not allow normal server to force founder mode away
4252           from router if the founder mode is already set.  Affected
4253           file silcd/packet_receive.c.
4254
4255         * Remove the client entry with watch notify types with short
4256           timeout, and not directly, so that other notifys can be
4257           retrieved too.  Affected file lib/silcclient/client_notify.c.
4258
4259         * Display notification about data messages that cannot be
4260           displayed.  Affected files irssi/src/silc/core/client_ops.c,
4261           irssi/src/fe-common/silc/module-formats.[ch].
4262
4263 Sun May 19 18:59:00 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
4264
4265         * Fixed the CHANNEL_CHANGE notify handling in client libary
4266           to not use freed memory.  Affected file is
4267           lib/silcclient/client_notify.c.
4268
4269         * Fixed CUMODE_CHANGE notify handling in server.  Affected
4270           file silcd/packet_receive.c.
4271
4272         * Fixed USERS command to support empty channels.  Affected
4273           file silcd/command.c.
4274
4275 Sat May 18 11:35:19 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
4276
4277         * Allow multiple identical pending commands to be registered
4278           in client library.  Affected file is lib/silcclient/command.c.
4279
4280         * Call the completion for resolving client information only
4281           after all resolvers has finished.  This fixes a crash in
4282           the client.  Added support for checking when the resolvers
4283           are finished.  Affected file is lib/silcclient/idlist.c.
4284
4285         * Wait by default 3 seconds before reconnecting to the server
4286           after being disconnected.  Makes the /detach command a bit
4287           more usable.
4288
4289 Fri May 17 17:23:45 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
4290
4291         * Check the watcher list before sending signoff notifys
4292           when closing client connection.  Affected file is
4293           silcd/server.c.
4294
4295         * Added better CMODE command rights checking.  Affected file
4296           silcd/server_util.c.
4297
4298 Fri May 17 08:33:41 CEST 2002 Pekka Riikonen <priikone@silcnet.org>
4299
4300         * Fixed watcher list checking during server signoff.  It
4301           crashed the server.  Affected file silcd/server_util.c.
4302
4303         * The JOIN command reply returns now the founder's public
4304           key.  Affected file is silcd/command.c.
4305
4306         * Announce the channel mode, and the mode properties with
4307           CMODE_CHANGE notify.  Affected file silcd/server.c.
4308
4309         * Mark new channels by default disabled, untill at least
4310           one user joins the channel.  Affected file is
4311           silcd/packet_receive.c.
4312
4313 Thu May 16 13:05:13 CEST 2002 Pekka Riikonen <priikone@silcnet.org>
4314
4315         * The nickname argument to watch notify can be optional.
4316           Fixes a crash in server.  Affected file silcd/packet_send.c.
4317
4318         * Remove the client entry from cache if the WATCH notify type
4319           is KILLED, SERVER_SIGNOFF or SIGNOFF.  Affected file is
4320           lib/silcclient/client_notify.c.
4321
4322         * Check the watcher list before and after changing nickname
4323           when the NICK_CHANGE notify is received.  Affected file is
4324           silcd/idlist.c.
4325
4326         * Fixed a crash in OPER and SILCOPER command sending.  Empty
4327           passphrase caused the crash.  Affected file is
4328           lib/silcclient/command.c.
4329
4330 Wed May 15 19:01:42 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
4331
4332         * Merged with Irssi CVS for Irssi SILC client.
4333
4334 Tue May 14 19:37:48 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
4335
4336         * Completed the protocol specifications.
4337
4338 Tue May  7 20:41:58 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
4339
4340         * Merged with Irssi CVS for Irssi SILC client.
4341
4342 Tue May  7 11:07:16 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
4343
4344         * Added the founder's public key delivery to the
4345           CUMODE_CHANGE notify type as well.  Updated the protocol
4346           specs and the code.  Affected files are silcd/packet_send.[ch],
4347           silcd/packet_receive.c and silcd/command.c.
4348
4349 Mon May  6 19:46:12 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
4350
4351         * Added silc_pkcs_public_key_copy function into the
4352           lib/silccrypt/silcpkcs.[ch].
4353
4354         * Remove the `iv' from the SilcChannelEntry since we can
4355           live without it.  Affected files are silcd/idlist.h and
4356           silcd/packet_receive.c.
4357
4358         * Added support for sending the founder's public key in
4359           the CMODE_CHANGE notify packet in the server.  Affected
4360           files are silcd/packet_send.[ch], silcd/packet_receive.c,
4361           silcd/command.c and silcd/server.c.
4362
4363         * Changed the FOUNDER_AUTH authentication to use only
4364           public key authentication as defined by new protocol
4365           specs.  Passphrase authentication with that mode cannot
4366           be used anymore.  It is now possible to reclaim founder
4367           mode from any server in the network.  Affected files are
4368           silcd/command.c, silcd/idlist.h and silcd/command_reply.c.
4369
4370         * Added permanent channels support by making the channel
4371           permanent when FOUNDER_AUTH mode is set on the channel.
4372           The channel will not be destroyed even if channel is empty
4373           when that mode is set.  Protocol TODO #17.  Affected
4374           files are silcd/server.[ch], server_util.[ch],
4375           silcd/command.c, silcd/packet_receive.c and
4376           lib/silcclient/command.c.
4377
4378 Fri May  3 18:36:51 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
4379
4380         * Added reference counter to the command reply context in
4381           the client library.  Affected files are
4382           lib/silcclient/command_reply.[ch].
4383
4384 Fri May  3 11:37:10 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
4385
4386         * Fixed rekey protocol with PFS in the client library.
4387           Affected file is lib/silcclient/protocol.c.
4388
4389         * Added support for list of errors in client library
4390           command reply handling.  Affected file is
4391           lib/silcclient/command_reply.c.
4392
4393         * Defined that the WHOIS and IDENTIFY commands can send
4394           list of errors.  Updated the protocol specs.  Protocol
4395           TODO #2.
4396
4397         * Added support for sending list of errors to WHOIS and
4398           IDENTIFY commands in server.  Added support for receiving
4399           list of errors in server.  Affected files are
4400           silcd/command.c and silcd/command_reply.c.
4401
4402         * Fixed client info resolving on LEAVE command in client
4403           library to not crash.  Affected file is
4404           lib/silcclient/client_notify.c.
4405
4406 Thu May  2 08:45:11 CEST 2002 Pekka Riikonen <priikone@silcnet.org>
4407
4408         * Defined that the NICK command replies with thew changed
4409           nickname too, to make the nickname changing simpler at
4410           the client's end.  Updated protocol specs and the code
4411           in client and server.  Affected files are
4412           silcd/command.c, lib/silcclient/command_reply.c and
4413           lib/silcclient/command.c.
4414
4415 Mon Apr 29 20:10:42 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
4416
4417         * Added `Compressed' packet flag to indicate that the packet
4418           payload is compressed by the sender.  Updated the protocol
4419           specs and the core library.  The compression still is not
4420           implemented in the sources.  Affected file is
4421           lib/silccore/silcpacket.h.
4422
4423 Mon Apr 29 09:48:12 CEST 2002  Pekka Riikonen <priikone@silcnet.org>
4424
4425         * Remove pending command callbacks also if the connection
4426           to the server is destroyed.  Affected file is
4427           lib/silcclient/client.c.
4428
4429 Sat Apr 27 19:52:32 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
4430
4431         * Added new QUIET channel user mode that can be used to
4432           quiet a user in a channel.  Updated the protocol specs but
4433           it wasn't implemented yet.  Protocol TODO #27.  Affected
4434           file is lib/silccore/silcmode.h.
4435
4436 Mon Apr 22 09:09:44 CEST 2002  Pekka Riikonen <priikone@silcnet.org>
4437
4438         * Added BLOCK_INVITE user mode to be able to block incoming
4439           invite notifications.  Protoocol TODO #26.  Affected files
4440           are lib/silccore/silcmode.h, lib/silcclient/command.c and
4441           silcd/command.c.
4442
4443         * SILC Publickey fields MUST be UTF-8 encoded now.  Updated
4444           the protocol specs and the code.  Affected file is
4445           lib/silccrypt/silcpkcs.c.
4446
4447 Sun Apr 21 19:44:38 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
4448
4449         * Disconnect Payload includes now the status type.  Updated
4450           the protocol specs and the code.  Protocol TODO #25.
4451           Affected files are silcd/server.c, lib/silcclient/client.c.
4452
4453         * Added NOT_AUTHENTICATED, BAD_SERVER_ID, INCOMPLETE_INFORMATION,
4454           KEY_EXCHANGE_FAILED and BAD_VERSION error status types.
4455           Moved the silc_client_command_status_messages table to the
4456           lib/silcutil/silcutil.c and added new funtion
4457           silc_get_status_message, which deprecates function
4458           silc_client_status_message.  Affected files are
4459           lib/silccore/silcstatus.h, lib/silcclient/command_reply.[ch],
4460           lib/silcutil/silcutil.[ch].
4461
4462 Fri Apr 19 17:35:15 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
4463
4464         * Defined that the nickname hash in Client ID MUST be from
4465           lowercase nickname.  This effectively changes nicknames in
4466           SILC to case-insensitive.  Updated the protocol specs and
4467           the code.  Affected files are lib/silcutil/silcutil.[ch],
4468           silcd/serverid.c, and silcd/idlist.c.
4469
4470         * Added new channel user modes BLOCK_MESSAGES_USERS and
4471           BLOCK_MESSAGES_ROBOTS.  Updated the protocol specs and the
4472           code.  Affected files are lib/silccore/silcmode.h,
4473           lib/silcclient/command.c, and silcd/packet_send.c.
4474
4475         * Added new error status ERR_RESOURCE_LIMIT.  Updated protocol
4476           specs and code.  Affected file lib/silccore/silcstatus.h.
4477
4478         * Added support for watch list.  It is possible to add nicknames
4479           to be watched, and when they come to network, leave network
4480           or user mode changes the watcher will be notified of this
4481           change.  Added SILC_COMMAND_WATCH command, added new
4482           notify type SILC_NOTIFY_TYPE_WATCH to deliver the watch
4483           notifications.  Updated the protocol specs and implemented
4484           this to library, client and server.  Protocol TODO #21.
4485           Affected files are lib/silccore/silccomand.h,
4486           lib/silccore/silcnotify.h, lib/silcclient/command[_reply].[ch],
4487           silcd/command[_reply].[ch], lib/silcclient/client_notify.c,
4488           silcd/packet_send.[ch], silcd/packet_receive.c, and
4489           irssi/src/silc/core/client_ops.c.
4490
4491         * Added user mode SILC_UMODE_REJECT_WATCHING to reject
4492           somebody watching you.  Updated the protocol specs and the
4493           code.  Affected files are lib/silccore/silcmode.h, and
4494           lib/silcclient/command.c.
4495
4496 Fri Apr 19 09:02:20 CEST 2002  Pekka Riikonen <priikone@silcnet.org>
4497
4498         * Added service support to SILC protocol.  Added new command
4499           SILC_COMMAND_SERVICE.  Updated the protocol specs and the
4500           core library.  Services are not implemented in server or
4501           client for now.  Protocol TODO #20.  Affected files are
4502           lib/silccore/silcstatus.h, lib/silccore/silccommand.h.
4503
4504         * Added SilcStatus argument to `command' client operation
4505           to return the error status when command sending fails
4506           locally.  Changed all command in client library to return
4507           correct command status.  Affected files are
4508           lib/silcclient/command.c, lib/silcclient/silcclient.h and
4509           irssi/src/silc/core/client_ops.c.
4510
4511 Thu Apr 18 14:09:51 CEST 2002  Pekka Riikonen <priikone@silcnet.org>
4512
4513         * Added silc_mime_parse function to parse MIME headers.
4514           Affected files are lib/silcutil/silcstruti.[ch].
4515
4516         * Added MIME header parsing in Irssi SILC Client.  It displays
4517           all textual MIME objects, others it ignores.  Affected file
4518           is irssi/src/silc/core/clien_ops.c.
4519
4520 Wed Apr 17 22:07:59 CEST 2002  Johnny Mnemonic <johnny@themnemonic.org>
4521
4522         * Fixed a bug in the pid writing function, which couldn't be
4523           written in a root-owned directory.
4524
4525 Tue Apr 16 09:34:40 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
4526
4527         * Defined that channel message to unknown Channel ID must
4528           cause SILC_NOTIFY_TYPE_ERROR notify message to the sender.
4529           Updated the protocol specs and the code in server.  The
4530           affected file is silcd/packet_receive.c.
4531
4532 Mon Apr 15 19:57:57 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
4533
4534         * Added new notify type SILC_NOTIFY_TYPE_ERROR and specified
4535           that it is used to send error notifys if error occurs during
4536           some SILC packet processing, except commands.  The error
4537           types are same as for command reply types.  Defined that
4538           if private message is sent to unknown Client ID the error
4539           is sent in SILC_NOTIFY_TYPE_ERROR instead of command reply.
4540           Updated the protocol specs and code.  Affected files are
4541           lib/silccore/silcnotify.h, added lib/silccore/silcstatus.h,
4542           lib/silcclient/client_notify.c, silcd/packet_receive.c,
4543           and irssi/src/silc/core/client_ops.c.  Renamed the
4544           SilcCommandStatus to SilcStatus.
4545
4546         * Defined the use of extra WHOIS attributes in WHOIS command.
4547           The <Requested Attributes> (defined in a separate document)
4548           can be used to request additional information about user
4549           not returned by standard WHOIS command.  Defined that server
4550           can send WHOIS command directly to client.  Client provides
4551           the requested attributes to the server.  Updated the protocol
4552           specs.  Protocol TODO #4.  Implementation is not done yet
4553           (Protocol TODO #24).
4554
4555         * Renamed function silc_client_command_status_message to
4556           silc_client_status_message.  Affected files are
4557           lib/silcclient/command_reply.[ch].
4558
4559 Sun Apr 14 21:13:42 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
4560
4561         * Changed the WHOIS, IDENTIFY and WHOWAS count arguments to
4562           32 bit integers.  Updated the protcol specs and the code.
4563           Affected files are silcd/command.c and
4564           lib/silcclient/command.c.
4565
4566 Sun Apr 14 19:49:02 CEST 2002  Johnny Mnemonic <johnny@themnemonic.org>
4567
4568         * Fixed a bug in library where sending a bogus authentication
4569           payload would lead to a crash.  Affected file is
4570           lib/silccore/silcauth.c.
4571
4572 Sat Apr 13 13:09:24 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
4573
4574         * Added detach_disabled and detach_timeout server config
4575           options to the server.  Affected files silcd/serverconfig.[ch],
4576           silcd/command.c and silcd/packet_receive.c.
4577
4578 Fri Apr 12 20:09:08 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
4579
4580         * Added resolve_cmd_ident field to the SilcClientEntry structure
4581           too so that if the entry is for example being resolved so
4582           another command may attach to the same pending command reply
4583           without requiring to resolve the same entry again.  Added
4584           support for adding multiple pending commands for one
4585           command idenfier.  Affected files lib/silcclient/command.[ch],
4586           lib/silcclient/command_reply.[ch], lib/silcclient/idlist.h.
4587
4588 Fri Apr 12 10:17:51 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
4589
4590         * Defined that server receives WHOIS command reply for private
4591           and secret channels too.  Updated protocol specs and the
4592           code in server.  Affected file silcd/command.c.
4593
4594         * Defined <channel user mode list> argument to WHOIS command
4595           reply for returning user modes on the channels.  The
4596           channel list now doesn't include the user mode anymore but the
4597           actual channel mode.  Updated protocol specs and the code in
4598           client and server.  Affected files are silcd/command_reply.c,
4599           silcd/command.c, silcd/server.c, irssi/src/silc/core/client_ops.c,
4600           and lib/silcclient/command_reply.c.
4601
4602         * Save the channels list in WHOIS command reply in normal server
4603           so that WHOIS always shows joined channels also in normal
4604           server and not just on router.  Affected file is
4605           silcd/command_reply.c.
4606
4607 Thu Apr 11 22:29:33 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
4608
4609         * Defined that server receives USERS command reply for private
4610           and secret channels too.  Updated protocol specs and the
4611           code in server.  Affected file silcd/command.c.
4612
4613 Thu Apr 11 16:32:08 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
4614
4615         * Changed the UMODE's mode mask argument to be optional.  If
4616           not provided then the command merely returns the current mode
4617           mask to the client.  Updated protocol specs and the server.
4618           Affected file is silcd/command.c.
4619
4620         * Added SILC session detachment/resuming support.  It is possible
4621           to detach by closing the network connection and then re-connect
4622           and resume to the old client session.  Added DETACHED user
4623           mode that server will set for detached client.  Added new
4624           packet RESUME_CLIENT which is used to perform the resuming
4625           process.  Added DETACH command.  Updated the protocol specs,
4626           core library, client and server.  Protocol TODO #22.  Very
4627           many affected files around the tree.
4628
4629 Wed Apr 10 16:32:01 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
4630
4631         * Changed the CMODE's mode mask argument to be optional.  If
4632           not provided then the command merely returns the current mode
4633           mask to the client.  Updated protocol specs and the server.
4634           Affected file is silcd/command.c.
4635
4636         * Changed the Killer's Client ID in KILLED notify to be just
4637           any ID payload since router server is allowed to kill as well.
4638           Updated protocol specs, client libary and server.  Affected
4639           files are lib/silcclient/client_notify.c, silcd/packet_receive.c,
4640           and irssi/src/silc/core/client_ops.c.
4641
4642 Tue Apr  9 17:15:42 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
4643
4644         * Added new user modes ANONYMOUS for special anonymous servers
4645           that may set the mode for client, and BLOCK_PRIVMSG which
4646           client may set to block incoming private messages unless the
4647           Private Message Key flag is set (using private keys to protect
4648           private messages).  Updated protocol specs and code in client
4649           and server and core library.  Protocol TODO #23.  Affected
4650           files are lib/silccore/silcmode.h, silcd/server.[ch],
4651           irssi/src/silc/core/client_ops.c, silcd/packet_receive.c,
4652           irssi/docs/help/in/umode.in, lib/silcclient/command.c.
4653
4654         * Added new channel user mode BLOCK_MESSAGES which the client
4655           may set to itself to tell server not send channel messages.
4656           Other packets such as channel key packets are still sent.
4657           Protocol TODO #23.  Updated the protocol specs, client and
4658           server.  Affected files are lib/silccore/silcmode.h,
4659           irssi/docs/help/in/cumode.in, lib/silcclient/command.c,
4660           lib/silcutil/silcutil.c, silcd/command.c, and
4661           silcd/packet_send.c.
4662
4663 Mon Apr  8 23:57:32 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
4664
4665         * Redefined the Status Payload to include now two 8 bit fields,
4666           instead of one 16 bit field.  This now makes it possible to
4667           send list of errors.  Updated the protocol specs and the code
4668           in core library, client library and server.  Protocol TODO #1.
4669           Affected files are lib/silccore/silccommand.[ch],
4670           lib/silcclient/command_reply.[ch], silcd/command.c,
4671           silcd/command_reply.c and silcd/packet_receive.[ch].
4672
4673 Mon Apr  8 19:57:40 CEST 2002  Johnny Mnemonic <johnny@themnemonic.org>
4674
4675         * Added config parse status SILC_CONFIG_EPRINTLINE, this status
4676           must be handled by the application and should tell the application
4677           that an error message was already printed, and it should print the
4678           config coords (line, filename, ...).  Affected files are
4679           silcd/serverconfig.c, lib/silcutil/silcconfig.[ch].
4680
4681         * Added local macro SILC_SERVER_CONFIG_ALLOCTMP to make the
4682           server config parsing code more readable.
4683
4684           Fixed a bug in the fetch_logging() config callback.
4685
4686           Affected files is silcd/serverconfig.c.
4687
4688         * Drop root privileges when started in foreground.  Don't drop them
4689           if debugging also.  Affected file is silcd/silcd.c.
4690
4691 Mon Apr  8 17:00:41 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
4692
4693         * Added more IM-like features by introducing new user modes
4694           for setting various presence information.  Added new modes:
4695           INDISPOSED, BUSY, PAGE, HYPER and ROBOT.  Updated protocol
4696           specs and code.  Protocol TODO #19. Affected files are
4697           lib/silccore/silcmode.h, irssi/src/silc/core/client_ops.c,
4698           irssi/docs/help/in/umode.in and lib/silcclient/command.c.
4699
4700 Sun Apr  7 17:07:59 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
4701
4702         * Added STATS command to the protocol after all, to return
4703           various statistical information about the network.  It can
4704           be used by clients to retrieve statistical information, and
4705           servers may use it to to fetch cell and network wide
4706           statistics from router.  Updated the protocol specs and
4707           implemented it to the server.  Protocol TODO #16.
4708           Affected files are lib/silccore/silccommand, silcd/command.[ch],
4709           silcd/command_reply.[ch].
4710
4711 Sat Apr  6 17:08:58 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
4712
4713         * The LIST command reply in client libary now adds new channel
4714           entry if the returned channel doesn't exist yet in cache,
4715           and returns the channel entry to the application in the
4716           command_reply client operation.  Affected file is
4717           lib/silcclient/command_reply.c.
4718
4719         * Changed the channel message payload's MAC generation to
4720           include the IV in the MAC as well.  This way all relevant
4721           parts of the channel message payload are authenticated also
4722           with the channel message MAC (and not only by packet MAC).
4723           Causes incompatibility with 1.0 protocol.  Protocol TODO #7.
4724           Affected file is lib/silccore/silcchannel.c.
4725
4726         * Fixed the SKE to save the remote version, since the
4727           silc_ske_parse_version mistakenly checked wrong version,
4728           after it replaced the start payload.  Affected files are
4729           lib/silcske/silcske.[ch].
4730
4731 Fri Apr  5 16:03:03 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
4732
4733         * Splitted lib/silcutil/silcutil.h into silcstrutil.h for
4734           string utility functions.  Added there also new functions
4735           silc_utf8_[encode/decode/valid] for UTF-8 string encoding.
4736           Affected files lib/silcutil/silcstrutil.[ch].
4737
4738         * Renamed silc_*_pem functions to silc_pem_* functions.  Affected
4739           files are lib/silcutil/silcstrutil.[ch].
4740
4741         * Defined that the security property fields in SKE SHOULD be
4742           UTF-8 encoded, defined that version string MUST be US-ASCII
4743           encoded, defined that passphrases sent in connection
4744           authentication protocol MUST be UTF-8 encoded.  Implemented
4745           these to the client and server.  Defined also that other
4746           passphrases sent in the protocol MUST be UTF-8 encoded.
4747           Affected files are lib/silcske/silcske.c,
4748           lib/silcclient/protocol.c, silcd/protocol.c,
4749           silcd/serverconfig.c, and lib/silccore/silcauth.c.
4750
4751         * Changed the silc_client_close_connection interface to not
4752           need the SilcSocketConnection which should not be visible
4753           to application.  Affected files are lib/silcclient/client.c
4754           and lib/silcclient/silcclient.h.
4755
4756         * Rewrote the text for Private Message Key Payload in the
4757           protocol specification.  Protocol TODO #11.
4758
4759 Wed Apr  3 16:24:51 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
4760
4761         * Upgraded the protocol version to 1.1, updated protocol specs
4762           and software.
4763
4764         * Added the nickname as new argument to NICK_CHANGE notify and
4765           added it to protocol specs and implemented it to client and
4766           server.  Protocol TODO #3.  Affected files are silcd/idlist.[ch],
4767           silcd/command.c, silcd/packet_receive.c, packet_send.[ch], and
4768           lib/silcclient/client_notify.c.
4769
4770         * Added the killer's client ID to the KILLED notify and added
4771           it to protocol specs and implemented it to client and server.
4772           Protocol TODO #13.  Affected files are silcd/command.c,
4773           silcd/packet_receive.c, packet_send.[ch],
4774           lib/silcclient/client_notify.c, irssi/src/silc/core/client_ops.c.
4775           The killer's client entry is now returned to application in
4776           the `notify' client operation.
4777
4778         * Fixed the Max Argument fields that had too large value set
4779           in the protocol specs.  Protocol TODO #14.
4780
4781         * Added the LEAVE command reply to return the ID of parted
4782           channel.  Updated protocol specs and implemented it to the
4783           client and server.  Protocol TODO #15.  Affected files are
4784           silcd/command.c, lib/silcclient/command_reply.c.  The channel
4785           entry is now returned to application in the `command_reply'
4786           client operation.
4787
4788         * Rewrote the version SKE version checking in client libary
4789           and in server to use the silc_parse_version_string.  Affected
4790           files are lib/silcclient/protocol.c, silcd/protocol.c.
4791
4792         * Added SILC_STATUS_ERR_NO_CHANNEL_FOPRIV error status to few
4793           commands that was missing it, and updated protocol specs and
4794           the server implementation.  Protocol TODO #10.  The affected
4795           file is silcd/command.c.
4796
4797         * Defined new message flags SILC_MESSAGE_FLAG_REPLY to be
4798           generic reply to a generic request (REQUEST flag), and
4799           SILC_MESSAGE_FLAG_DATA to send any kind of data in a generic
4800           way.  A draft-riikonen-silc-flags-payloads-00.txt is written
4801           to define the payload for DATA flag.  Added the flags to
4802           the implementation.  Protocol TODO #9.  Affected file is
4803           lib/silccore/silcchannel.h.
4804
4805           Changed the client library to return the message length
4806           to application as well in the channel_message and private_message
4807           client operations.  Affected files are
4808           lib/silcclient/client_prvmsg, lib/silcclient/client_channel.c,
4809           lib/silcclient/silcclient.h, irssi/src/silc/core/client_ops.c,
4810           and lib/silcclient/client_ops_example.c.
4811
4812         * Added two new channel modes: SILC_CMODE_SILENCE_USERS
4813           and SILC_CMODE_SILENCE_OPERS which can be used to moderate
4814           the channel.  Updated protocol specs and impelemented this
4815           to client and server.  Protocol TODO #6.  Affected files are
4816           silcd/packet_receive.c, server_util.c, lib/silcclient/command.c,
4817           lib/silcclient/client_channel.c, lib/silccore/silcmode.h.
4818
4819           Added new options m and M to CMODE command in Irssi SILC
4820           client to set these modes.
4821
4822         * Deprecated all administrative commands from SILC protocol
4823           since they are highly implementation specific commands.
4824           Updated protocol specs.  Moved the old commands in
4825           implementations to private range of command types.  Affected
4826           files are silcd/command.c, lib/silcclient/command.c and
4827           lib/silcclient/command_reply.c.  Protocol TODO #8.
4828
4829         * Fixed a bug in server where sending unknown command crashes
4830           the server.  Affected file silcd/command.c.
4831
4832 Wed Apr  3 09:57:47 CEST 2002  Pekka Riikonen <priikone@silcnet.org>
4833
4834         * Added SILC_PROTOCOLVERSION macro to check protocol version
4835           of a socket connection.  The affected file is
4836           lib/silcutil/silcsockconn.h.
4837
4838         * Added better error logging in rekey protocol.  Affected file
4839           silcd/protocol.c.
4840
4841         * Do not check public key types in SKE during rekey.  Affected
4842           file lib/silcske/payload.c.
4843
4844         * Fixed the rekey protocol with PFS, which was totally broken.
4845           Affected file silcd/protocol.c.
4846
4847 Tue Apr  2 14:55:06 CEST 2002  Pekka Riikonen <priikone@silcnet.org>
4848
4849         * Some client implementations quit network by doing first LEAVE
4850           and then immediately SIGNOFF (like Bombyx).  We now do check
4851           after a short time after LEAVE notify and check whether the
4852           client is still valid after LEAVE, and if not we remove it from
4853           cache.  Affected file is lib/silcclient/client_notify.c.
4854
4855 Tue Apr  2 13:39:04 CEST 2002  Johnny Mnemonic <johnny@themnemonic.org>
4856
4857         * Merged version 1.1.4 of zlib. Even if it not currently in use,
4858           it's good not to have security holes here.
4859
4860         * Fixed a negative refcount situtuation for the config context.
4861           Affected file is silcd/serverconfig.c.
4862
4863 Mon Apr  1 20:15:10 CEST 2002  Johnny Mnemonic <johnny@themnemonic.org>
4864
4865         * ROBOdoc documented lib/silcutil/silcutil.h.
4866
4867 Sat Mar 30 21:06:45 EET 2002  Pekka Riikonen <priikone@silcnet.org>
4868
4869         * Optimized even more the SilcPacketContext structure.  Now
4870           totally saved 16 bytes of memory per context after optimization.
4871           Affected files are lib/silccore/silcpacket.[ch].
4872
4873         * Made strict checks for valid SILC IDs.  Affected file is
4874           lib/silccore/silcid.c.
4875
4876 Sat Mar 30 18:15:55 EET 2002  Pekka Riikonen <priikone@silcnet.org>
4877
4878         * Changed the object argument for silc_cipher_register,
4879           silc_hash_register, silc_hmac_register and silc_pkcs_register
4880           to const.  Affected files are lib/silccrypt/silccipher.[ch],
4881           silchash.[ch], silchmac.[ch] and silcpkcs.[ch].
4882
4883         * Changed the silc_get_username and silc_get_real_name to
4884           never fail.  Affected file lib/silcutil/unix/silcunixutil.c.
4885
4886         * Fixed the Irssi SILC Client to use the silc_get_username and
4887           silc_get_real_name insted of glib routines since the glib
4888           routines only corrupt stack.  Fixes the Irssi SILC to work in
4889           Cygwin.  Affected file irssi/src/silc/core/silc-core.c.
4890
4891         * Fixed the Irssi to not use g_get_home_dir since it crashes
4892           or returns garbage on cygwin and corrupts stack.  Added function
4893           get_home_dir to Irssi routines.  Affected files are
4894           irssi/src/core/misc.[ch] and irssi/src/core/core.c.
4895
4896 Fri Mar 29 21:55:41 EET 2002  Pekka Riikonen <priikone@silcnet.org>
4897
4898         * Made some structure optimizations.  SFTP memory FS MemFSEntry
4899           entry structure.  Optimized SilcTask structure.  Optimized
4900           SilcPacketContext structure.
4901
4902           Affected files lib/silcsftp/sftp_fs_memory.c,
4903           lib/silcutil/silcschedule.c, lib/silccore/silcpacket.h.
4904
4905 Fri Mar 29 10:41:07 EET 2002  Pekka Riikonen <priikone@silcnet.org>
4906
4907         * And yet again reverted back the config thing since Johnny
4908           screwed it up.  Affected file silcd/serverconfig.[ch], server.c,
4909           and silcd.c.
4910
4911         * Fixed memory leaks from config object.  Affected files are
4912           silcd/serverconfig.[ch].
4913
4914         * Added support for adding new connections to the server in rehash.
4915           After rehash they take effect.
4916
4917           Added support for changing the maximum allowed connections in
4918           rehash.  The number can grow but going smaller is not supported.
4919
4920           Added function silc_server_num_sockets_by_remote to the
4921           silcd/server_util.[ch].
4922
4923           Affected files are silcd/server.c, and silcd/serverconfig.[ch].
4924
4925 Fri Mar 29 03:26:12 CET 2002 Johnny Mnemonic <johnny@themnemonic.org>
4926
4927         * Added preliminary checking during config parsing for a valid
4928           public/private key and removed further checks in the code.
4929           Affected files are silcd/serverconfig.[ch], server.c.
4930
4931         * Moved functions silc_server_drop() and silc_server_daemonise()
4932           from server.c to silcd.c since they are stricly related to
4933           the application activity.
4934
4935         * Reverted a small part of the automatic ref/unref since
4936           it caused a double unref in some situations.  Affected
4937           files are silcd/silcd.[ch], server.c, serverconfig.c.
4938
4939         * Added some .cvsignore files in the lib directory.
4940
4941 Thu Mar 28 22:51:15 EET 2002  Pekka Riikonen <priikone@silcnet.org>
4942
4943         * Fixed silc_net_gethostbyaddr to correctly resolve by
4944           address.  Affected file lib/silcutil/silcnet.c.
4945
4946         * Fixed the notify relaying to client.  The HMAC to be used
4947           with relayed packets ws wrong and caused decryption failure
4948           at the client end.  Affected file is silcd/packet_receive.c.
4949
4950 Thu Mar 28 19:02:05 EET 2002  Pekka Riikonen <priikone@silcnet.org>
4951
4952         * Created new branch silc_protocol_1_0_branch.
4953
4954         * Reverted the silc_log_quick change in lib/silcutil/silclog.c.
4955
4956         * Changed the silc_server_config_* routines to be SilcServer
4957           independent.  They are now officially application specific code
4958           and not part of generic server implementation.  Affected files
4959           are silcd/serverconfig.[ch], silcd/silcd.c, silcd/server.c.
4960
4961 Thu Mar 28 17:01:43 EET 2002  Pekka Riikonen <priikone@silcnet.org>
4962
4963         * Added automatic referencing of config context in the
4964           silc_server_config_alloc, and automatic unreferencing in the
4965           silc_server_config_destroy.  Affected files are
4966           silcd/serverconfig.[ch], silcd/silcd.c.
4967
4968         * Fixed the silc_log_quick handling in the logging routines.
4969           It didn't log quickly when it was TRUE.  Affected file is
4970           lib/silcutil/silclog.c.  Also the flush delay was set even
4971           if it was 0 in config file.  Affected file is
4972           silcd/serverconfig.c.
4973
4974         * Added support for changing key pair of the server in rehash.
4975           Affected file silcd/server.c.
4976
4977 Thu Mar 28 12:17:21 CET 2002  Pekka Riikonen <priikone@silcnet.org>
4978
4979         * Fixed the TOPIC_SET notify to not cras.  It changed the topic
4980           too early, before getting the channel entry.  Affected file
4981           is silcd/packet_receive.c.
4982
4983 Thu Mar 28 09:58:16 CET 2002  Johnny Mnemonic <johnny@themnemonic.org>
4984
4985         * Added functions silc_server_config_[ref/unref], these are used
4986           to prevent that the config object is destroyed.
4987
4988           No longer directly affect global variables silc_log_quick and
4989           silc_log_delay, they are first cached inside the config object
4990           and then applied with silc_server_config_setlogfiles().
4991
4992           silc_server_config_set_defaults() is now internal to
4993           serverconfig.c, there are no reasons to show this internal stuff
4994           to the server.
4995
4996           Affected files are silcd/serverconfig.[ch].
4997
4998         * Added macro SILC_SERVER_LOG_STDERR(), this should replace most
4999           fprintf's to stderr, since some code may be executed again after
5000           the server went into the background.  Affected files are
5001           silcd/server.[ch].
5002
5003         * Added rehash support. Added function silc_server_rehash() that
5004           will perform all the basic tasks of the rehashing procedure.
5005
5006         * Added command line option `-x, --hexdump'. This will enable the
5007           SILC_LOG_HEXDUMP calls that are no longer enabled with `--debug'.
5008           The option `--hexdump' implies `--debug'.
5009
5010         * Fixed a bad bug in the logging APIs (silcutil library) where
5011           the application would crash after calling silc_log_reset_all().
5012
5013 Wed Mar 27 19:43:16 EET 2002  Pekka Riikonen <priikone@silcnet.org>
5014
5015         * Fixed the KICKED notify handling in client library to
5016           correctly remove the channel and all entries from the
5017           channel when I was kicked.  This bug crashed the client.
5018
5019           Fixed yet another but in KICKED notify handling to remove
5020           the kicked client correctly from the channel.
5021
5022           Affected file is lib/silcclient/client_notify.c.
5023
5024         * Fixed a minor bug in looking up correct client entry
5025           in KICKED notify in server.  Affected file is
5026           silcd/packet_receive.c.
5027
5028         * Fixed the lib/silcmath/Makefile.am to include the MPI and GMP
5029           sources correctly to distribution.  Fixes --with-gmp option.
5030
5031         * Removed the manual rehashing from ID Cache, and changed it
5032           to use the SILC Hash Table's auto rehash feature.  Affected
5033           file is lib/silccore/silcidcache.c.
5034
5035 Wed Mar 27 00:07:11 EET 2002  Pekka Riikonen <priikone@silcnet.org>
5036
5037         * Fixed a bug in the silc_client_nickname_format function that
5038           handles the multiple same nickname formatting.  Two clients
5039           with same nickname caused problems after the first one left
5040           and rejoined.  It didn't format the nickname correctly.
5041           Affected file is lib/silcclient/idlist.c.
5042
5043 Tue Mar 26 19:33:03 CET 2002  Pekka Riikonen <priikone@silcnet.org>
5044
5045         * Don't change the topic if olod topic is same as new one.
5046           Affected file is silcd/packet_receive.c.
5047
5048 Mon Mar 25 21:11:35 EET 2002  Pekka Riikonen <priikone@silcnet.org>
5049
5050         * Added cross-reference support to the SILC Documentation
5051           generator.  All types across all HTML files are now cross-
5052           referenced.  Affected files util/robodoc/generator.c and
5053           scripts/silcdoc/silcdoc.
5054
5055         * Added file lib/silcutil/silctypes.h to include all the
5056           arithmetic type definitions and some macros.  Removed
5057           includes/bitmove.h and moved macros to silctypes.h.
5058
5059 Mon Mar 25 17:19:46 EET 2002  Pekka Riikonen <priikone@silcnet.org>
5060
5061         * Merged bugfixes for Irssi SILC client from irssi.org CVS.
5062
5063 Sun Mar 24 11:21:04 EET 2002  Pekka Riikonen <priikone@silcnet.org>
5064
5065         * Added `type' argument to silc_id_payload_parse_id function which
5066           now returns the type of the ID to the sent pointer.  Affected
5067           file is lib/silccore/silcid.[ch].
5068
5069         * Added check for CMODE_CHANGE notify type that mode change is
5070           allowed by the sender.  Affected file silcd/packet_receive.c.
5071
5072         * Added check for CUMODE_CHANGE notify type that mode change is
5073           allowed by the sender.  Affected file silcd/packet_receive.c.
5074           Added the ID type as CUMODE_CHANGE notify type as argument
5075           to the `notify' client operation.  Affected files are
5076           lib/silcclient/client_notify.c, irssi/src/silc/core/client_ops.c.
5077
5078         * Added function silc_client_add_server to the client library.
5079           Added support for resolving also channel and server info when
5080           received unknown entity in notify packet.  Affected files are
5081           lib/silcclient/idlist.[ch], lib/silcclient/client_notify.c.
5082
5083         * Added function silc_command_get_status to return the command
5084           status from the command reply's argument payload.  Affected files
5085           are lib/silccore/silccommand.[ch].
5086
5087         * Added check for KICKED notify type that the kicking is
5088           allowed by the client.  Affected file silcd/packet_receive.c.
5089
5090         * Created function silc_get_input which can be used to get input
5091           (echo on or off) from user on command line.  Affected files are
5092           lib/silcutil/silcutil.[ch].
5093
5094 Sat Mar 23 09:51:26 EET 2002  Pekka Riikonen <priikone@silcnet.org>
5095
5096         * Optimized silc_server_packet_relay_to_channel function.
5097           Added new function silc_channel_message_payload_encrypt which
5098           can be called directly if channel message payload needs to
5099           be encrypted and is already encoded (no need to call _encode
5100           function).  Packet relaying is now done by router without any
5101           extra memory allocations.  Affected files are
5102           lib/silccore/silcchanel.[ch], silcd/packet_receive.c and
5103           silcd/packet_send.c.
5104
5105         * Fixed the INVITE notify handling.  It took wrong arguments
5106           as invite list and invite delete.  Affected file is
5107           silcd/packet_receive.c.
5108
5109         * Added check for TOPIC_SET notify type that the topic change is
5110           allowed by the client.  Affected file silcd/packet_receive.c.
5111
5112         * Added check for INVITE notify type that inviting is allowed by
5113           the client.  Affected file silcd/packet_receive.c.
5114
5115         * Changed the silc_server_client_on_channel to return the
5116           SilcChannelClientEntry as well.  Moved the function
5117           silc_server_check_cmode_rights to server_util.[ch].
5118           Affected files are silcd/server_util.[ch], silcd/command.c.
5119
5120         * Added function silc_server_check_umode_rights to check whether
5121           changing client's user mode is allowed.  Added check for
5122           UMODE_CHANGE notify type that the umode change is allowed
5123           by the client.  Affected files are silcd/server_util.[ch],
5124           silcd/packet_receive.c and silcd/command.c.
5125
5126 Fri Mar 22 12:25:58 CET 2002  Pekka Riikonen <priikone@silcnet.org>
5127
5128         * Fixed the SILC_PACKET_MAX_ID_LEN to actually be the max
5129           ID length.  It ignored that ID can be IPv6 based as well.
5130           Affected file lib/silccore/silcpacket.h.
5131
5132         * Fixed the silc_id_id2str and silc_id_str2id to take the
5133           IPv6 address offset's into consideration.  Affecte file is
5134           lib/silccore/silcid.c.
5135
5136 Thu Mar 21 20:44:13 EET 2002  Pekka Riikonen <priikone@silcnet.org>
5137
5138         * Fixed the internal Unix scheduler functions to check for
5139           NULL context they may receive.  The affected file is
5140           lib/silcutil/unix/silcunixschedule.c.
5141
5142 Thu Mar 21 19:12:22 EET 2002  Timo Sirainen <tss@iki.fi>
5143
5144         * Changed hardcoded ~/.silc paths to use get_irssi_dir() so you
5145           can specify different directory with --home command line
5146           parameter. Affected files irssi/src/silc/core/client_ops.c,
5147           clientutil.c
5148
5149         * SILC-specific commands aren't now executed if the active server
5150           isn't of SILC-type, so there won't be problems with having
5151           IRC and SILC protocol support in same client. Affected files
5152           irssi/src/silc/core/silc-channels.c, silc-servers.c,
5153           silc-commands.h
5154
5155 Wed Mar 20 11:06:57 CET 2002  Pekka Riikonen <priikone@silcnet.org>
5156
5157         * Improved the signal support in SILC Schedule.  Added new
5158           function silc_schedule_signal_call which is used by application
5159           to mark a signal to be called.  It is now safe to perform
5160           any kind of tasks in signal callbacks since it is guaranteed
5161           that the application specified signal callback is called
5162           after the signal is over.  Affected files are
5163           lib/silcutil/silcschedule.[ch], lib/silcutil/*/silc*schedule.c.
5164
5165 Tue Mar 19 20:42:41 EET 2002  Pekka Riikonen <priikone@silcnet.org>
5166
5167         * Added `name' field to SilcChannelPrivateKey to represent
5168           application given name for the key.  Moved also the context from
5169           lib/silcclient/idlist.h into lib/silcclient/silcclient.h.
5170           Added the `name' argument also to the function
5171           silc_client_add_channel_private_key.
5172
5173           Added function silc_client_current_channel_private_key to set the
5174           current channel private key in use.
5175
5176           Added "change" command to KEY command which can be used to change
5177           the current channel private key.  Bound the command also to
5178           alt+K (Alt+Shift+k).
5179
5180           Also affected files lib/silcclient/client_channel.c,
5181           irssi/src/docs/help/in/key.in, irssi/src/silc/core/silc-channel.c.
5182
5183 Tue Mar 19 16:32:43 CET 2002  Pekka Riikonen <priikone@silcnet.org>
5184
5185         * Added silc_rng_get_byte_fast function in to the
5186           lib/silccrypt/silcrng.[ch].
5187
5188         * Changed the interface of silc_packet_assemble and the
5189           silc_packet_send_prepare.  If silc_packet_assmble is now
5190           called the application does not call silc_packet_send_prepare
5191           because the library will call it automatically.  These
5192           interfaces now also return a reference to the outgoing buffer
5193           which includes the assembled packet, which the application can
5194           use to encrypt the packet.
5195
5196           Affected files are lib/silccore/silcpacket.[ch],
5197           lib/silcclient/client.c, client_channel.c client_prvmsg.c,
5198           silcd/packet_send.c, server_backup.c and packet_receive.c.
5199
5200         * Fixed a packet sending bug on very high load, where outgoing
5201           packet queue wasn't handled correctly and packets got corrupted.
5202           Affected files are lib/silcutil/*/silc*sockconn.c,
5203           lib/silcclient/client.c and silcd/server.c.
5204
5205 Mon Mar 18 21:00:41 EET 2002  Pekka Riikonen <priikone@silcnet.org>
5206
5207         * Added macro SILC_PACKET_DATALEN which can be used during
5208           packet assembling to check whether the data to be added to
5209           the packet will fit to SILC_PACKET_MAX_LEN.  If not the data
5210           len is truncated until it fits it.
5211
5212           Added checks for maximum length of channel message payload and
5213           private message payload also.
5214
5215           Added checks for maximum packet length in server and in
5216           client library.
5217
5218           Affected files are lib/silccore/silcpacket.h, silcd/packet_send.c,
5219           lib/silcclient/client.c, lib/silccore/silcchannel.c and
5220           lib/silccore/silcprivate.c, lib/silcclient/client_channel.c and
5221           lib/silcclient/client_prvmsg.c.
5222
5223 Mon Mar 18 14:54:42 CET 2002  Pekka Riikonen <priikone@silcnet.org>
5224
5225         * Added silc_server_packet_queue_purge call to the
5226           silc_server_disconnect_remote to assure that all data in the
5227           queue before disconnecting is sent to the network.  Affected
5228           file silcd/server.c.
5229
5230 Sun Mar 17 19:26:16 EET 2002  Pekka Riikonen <priikone@silcnet.org>
5231
5232         * Added the deleting of server's own ID cache entry to the
5233           silc_server_free function.  Free also everything else that
5234           has been allocated in silc_server_init.  The affected file
5235           is silcd/server.c.
5236
5237 Sun Mar 17 15:44:56 EET 2002  Pekka Riikonen <priikone@silcnet.org>
5238
5239         * Added functions silc_parse_version_string, silc_version_to_num,
5240           and silc_ske_parse_version to parse SILC protocol style version
5241           strings.  Affected files lib/silcutil/silcutil.[ch] and
5242           lib/silcske/silcske.[ch].
5243
5244         * Added new configuration params: version_protocol, version_software
5245           and version_software_vendor to specify what version the remote
5246           host must at least be to be able to connect to server.  The vendor
5247           string can be regex matched too.  Added new function
5248           silc_server_connection_allowed to check maximum number of allowed
5249           connections, and allowed versions for incoming connections.
5250           Affected files are silcd/server.c, server_util.[ch] and
5251           serverconfig.[ch].
5252
5253 Sun Mar 17 10:24:50 EET 2002  Pekka Riikonen <priikone@silcnet.org>
5254
5255         * Added preliminary support for signals in scheduler.  The
5256           signals we care about are now blocked always when the scheduler
5257           is locked.  This way we can synchronise the use of signal with
5258           scheduler.  It is guaranteed that when signal occurs the scheduler
5259           is not locked, and thus new tasks can be safely added to the
5260           scheduler.
5261
5262           Renamed silc_schedule_wakeup_init and silc_schedule_wakeup_uninit
5263           to silc_schedule_internal_init and silc_schedule_internal_uninit.
5264           Added new platform specific routines
5265           silc_schedule_internal_signals_[un]block and
5266           silc_schedule_internal_signal_[un]register.
5267
5268           Added new functions to SILC Schedule API:
5269           silc_schedule_signal_[un]register.  Each signal that application
5270           is going to use should be registered to the scheduler.
5271
5272           Affected files are lib/silcutil/silcschedule.[ch],
5273           lib/silcutil/*/silc*schedule.c.
5274
5275 Sat Mar 16 22:39:23 EET 2002  Pekka Riikonen <priikone@silcnet.org>
5276
5277         * Check for unauthenticated client and server in the
5278           silc_server_new_client and silc_server_new_server functions.
5279           Affected file silcd/packet_receive.c.
5280
5281         * Added function silc_string_is_ascii to check whether given
5282           string is 7-bit ASCII string.  Affected files are
5283           lib/silcutil/silcutil.[ch].
5284
5285         * Added function silc_id_is_valid_server_id into the
5286           silcd/serverid.c and added checking for valid Server ID's in
5287           silc_server_new_server.  The Server ID must always be based
5288           on the server's public IP address.
5289
5290         * Added logging of DISCONNECT packet message in the server.
5291           Affected file silcd/server.c.
5292
5293 Sat Mar 16 18:04:30 EET 2002  Pekka Riikonen <priikone@silcnet.org>
5294
5295         * Changed all library interfaces that use Global RNG to also
5296           accept SilcRng as argument.  Affected files are
5297           lib/silcclient/command.c, lib/silccore/silcauth.[ch],
5298           lib/silccore/silcchanel.[ch], lib/silcclient/client_channel.c,
5299           silcd/packet_send.c, lib/silccore/silcprivate.[ch],
5300           lib/silcmath/silcprimegen.c, lib/silcmath/silcmath.h, and
5301           lib/silccrypt/rsa.c.
5302
5303         * Added function silc_pkcs_generate_key to the
5304           lib/silccrypt/silcpkcs.[ch] for applications so that they
5305           don't need to do pkcs->pkcs->init calls anymore.
5306
5307         * Remove SilcSocketConnection from the SFTP API since it really
5308           wasn't needed there.  The application has the information
5309           saved in its contexts anyway and the SFTP layer doesn't need
5310           know about it.  Affected files lib/silcsft/silcsftp.h and
5311           lib/silcsftp/sftp_[server/client].c.
5312
5313         * Rewrote the SILC SIM (modules) interface in lib/silcsim.[ch].
5314           The SilcSimContext is not SilcSim.
5315
5316         * Fixed possible buffer overflows in silc_id_render in the
5317           lib/silcutil/silcutil.c.
5318
5319         * On EPOC the global crypto module lists are not used at all
5320           in the crypto library.  Added support for using the constant
5321           algorithm list on EPOC.  Affected files are
5322           lib/silccrypt/silccipher.c, silchash.c, silchmac.c and
5323           silcpkcs.c.
5324
5325         * Fixed the handling of third parameter of KICKED notify, since
5326           it was mistakenly updated to SILC Protocol 1.0 even though it
5327           is to be included in 1.1.  Since it is not in 1.0 it is not
5328           mandatory, and this fix now handles it only if it is provided,
5329           and it is not error if it is not provided.  Affected file
5330           lib/silcclient/client_notify.c.
5331
5332 Sat Mar 16 09:07:27 EET 2002  Pekka Riikonen <priikone@silcnet.org>
5333
5334         * Handled CHANNEL_CHANGE notify (ignore it) in Irssi SILC
5335           client.  Affected file irssi/src/silc/core/client_ops.c.
5336
5337         * Merged with Irssi 0.8.4 from irssi.org CVS.
5338
5339 Thu Mar 14 12:53:57 CET 2002  Pekka Riikonen <priikone@silcnet.org>
5340
5341         * Check for valid socket connection in client entries before
5342           sending any messages.  Fixes a crash, but doesn't fix some
5343           other underlaying bug that is lurking there.  Affected
5344           file silcd/packet_send.c.
5345
5346 Thu Mar 14 13:38:12 EET 2002  Timo Sirainen <tss@iki.fi>
5347
5348         * $usermode, $cumode and $cumode_space expandos shouldn't do
5349           anything with non-SILC server records. Affected file
5350           irssi/src/silc/core/silc-expandos.c
5351
5352 Wed Mar 13 21:38:26 EET 2002  Pekka Riikonen <priikone@silcnet.org>
5353
5354         * Fixed the silc_net_check_[host/local]_by_sock to support
5355           IPv6 bound sockets as well.  Now they can return IPv6 addresses
5356           as well.  Affected file lib/silcutil/silcnet.c.
5357
5358         * Fixed silc_net_addr2bin to correctly convert IPv6 addresses.
5359           Affected lib/silcutil/unix/silcunixnet.c.
5360
5361         * Fixed ID rendering (at least on some platforms, not NetBSD)
5362           for IPv6 addresses.  Affected file lib/silcutil/silcutil.c.
5363
5364 Tue Mar 12 17:58:59 EET 2002  Pekka Riikonen <priikone@silcnet.org>
5365
5366         * Added silc_hash_public_key and silc_hash_public_key_compare
5367           functions to be used with SilcHashTable.  They can be used to
5368           hash public keys and compare public keys in hash table.  Affected
5369           file lib/silcutil/silcutil.[ch].
5370
5371         * Added support for specifying multiple public keys for Client
5372           connection section in server configuration file.  This makes it
5373           possible to accept multiple public keys from same host, or to
5374           make a section that accepts any incoming host, and have the
5375           accepted public keys listed in the section.
5376
5377           Added functions silc_sever_[find/get]_public_key,  added the
5378           support for this actually to all connection sections but only
5379           the Client section is currently allowed to specify multiple
5380           public keys.
5381
5382           Affected files are silcd/server.c, server_internal.h,
5383           command.c, protocol.c, server_util.[ch], packet_receive.c.
5384
5385 Mon Mar 11 23:37:38 EET 2002  Pekka Riikonen <priikone@silcnet.org>
5386
5387         * Merged Irssi 0.8.2 from irssi.org CVS.
5388
5389 Sun Mar 10 23:34:48 CET 2002  Johnny Mnemonic <johnny@themnemonic.org>
5390
5391         * If silc_debug is TRUE, also output standard logging messages
5392           to stderr with the debug output.
5393
5394           Made silc_log_reset_all() flushing all channels before returning.
5395           Also fixed some documentation typos.
5396
5397           Affected files are lib/silcutil/silclog.[ch].
5398
5399 Sun Mar 10 20:07:49 EET 2002  Pekka Riikonen <priikone@silcnet.org>
5400
5401         * Fixed the server to check correctly the amount of connections
5402           from single host, by checking also the type of the connection.
5403           Fixed also the comparison of number of connections and number
5404           of allowed connections.  Affected files are silcd/server.c,
5405           server_util.[ch].
5406
5407 Fri Mar  8 17:16:41 EET 2002  Pekka Riikonen <priikone@silcnet.org>
5408
5409         * Fixed the USERS command reply to save the user's mode on the
5410           channel as well.  Fixed JOIN command reply to check whether a
5411           client is on channel already and not join it twice.  Affected
5412           file lib/silcclient/command_reply.c.
5413
5414         * Added new file silc-expandos.c into irssi/silc/core/ to return
5415           various stuff for various signal for the statusbar etc. updating.
5416           Now Irssi SILC client prints channel user modes etc. on the
5417           statusbar.
5418
5419         * The user mode (like server/router operator changes) is now shown
5420           on the Irssi SILC client's statusbar.  The affected files are
5421           irssi/src/silc/core/client_ops.c, silc-expandos.c.
5422
5423 Thu Mar  7 19:21:22 EET 2002  Pekka Riikonen <priikone@silcnet.org>
5424
5425         * Changed silc_mutex_[un]lock calls in lib/silcutil/silcschedule.c
5426           to SILC_SCHEDULE_[UN]LOCK macros.
5427
5428         * Added more error printing to logs in server code.  Affected
5429           files silcd/server.c and silcd/protocol.c.
5430
5431         * Fixed -S option parsing in Irssi SILC Client.  Affected file
5432           irssi/src/silc/core/silc-core.c.
5433
5434         * Added silc_buffer_alloc_size function.  Affected file is
5435           lib/silcutil/silcbuffer.h.
5436
5437 Tue Mar  5 14:37:27 EET 2002  Pekka Riikonen <priikone@silcnet.org>
5438
5439         * Changed all silc_[hash|hmac|cipher|pkcs]_default tables to
5440           constants.  Affected files in
5441           lib/silccrypt/silcpkcs.[ch], silchash.[ch], silchmac.[ch] and
5442           silccipher.[ch].
5443
5444         * Changed the internal SFTP Memory FS table to const.  Affected
5445           file lib/silcsftp/sftp_fs_memory.c.
5446
5447 Sun Mar  3 18:37:13 EET 2002  Pekka Riikonen <priikone@silcnet.org>
5448
5449         * Fixed the buffer formatting and unformatting routines to
5450           check the size of 64 bits types with sizeof().  Affected
5451           file is lib/silcutil/silcbuffmt.c.
5452
5453 Mon Feb 25 17:19:05 EET 2002  Pekka Riikonen <priikone@silcnet.org>
5454
5455         * Removed 0.6.x backwards support.
5456
5457 Sun Feb 24 12:53:25 EET 2002  Pekka Riikonen <priikone@silcnet.org>
5458
5459         * Changed all integer type names:
5460           [u]int[8/16/32/64] -> Silc[UInt/Int][8/16/32/64].  This is
5461           to avoid collisions with other libraries using same type names
5462           as we did.
5463
5464 Sat Feb 23 20:31:43 EET 2002  Pekka Riikonen <priikone@silcnet.org>
5465
5466         * Added `prefer_ipv6' argument to the functions
5467           silc_net_gethostbyname[_async].  If it is TRUE it will return
5468           IPv6 address over IPv4.  If FALSE IPv4 address is returned
5469           even if IPv6 address was found.  Affected files
5470           lib/silcutil/silcnet.[ch].
5471
5472         * Added support silc_net_create_connection[_async] to fallback
5473           to IPv4 address if IPv6 address could not be used (like if
5474           it doesn't work on a specific system).  Affected file in
5475           lib/silcutil/unix/silcunixnet.c.
5476
5477 Sat Feb 23 15:20:30 EET 2002  Pekka Riikonen <priikone@silcnet.org>
5478
5479         * Added silc_schedule_reinit function to do the enlarging
5480           of the max tasks handling capabilities of the scheduler.
5481           Affected files lib/silcutil/silcschedule.[ch].
5482
5483 Wed Feb 20 20:41:01 EET 2002  Pekka Riikonen <priikone@silcnet.org>
5484
5485         * Added automatic extern "C" { ... } for C++ compilers so the
5486           application does not need to define them.  Affected file
5487           includes/silcincludes.h.
5488
5489         * Renamed lib/silcclient/silcapi.h to silcclient.h as the
5490           old name went against naming convention.  Applications now
5491           include "silcclient.h" instead of "clientlibincludes.h".
5492           Removed includes/clientlibincludes.h, it is redundant now.
5493
5494         * Renamed includes/version.h to silcversion.h.
5495
5496         * Added really preliminary support for OS/2 into the util
5497           library.  Only thread & mutex API is implemented, others
5498           are still to be implemented.  Created the lib/silcutil/os2/
5499           directory.  Created also file includes/silcos2.h.
5500
5501 Wed Feb 20 18:48:49 EET 2002  Pekka Riikonen <priikone@silcnet.org>
5502
5503         * Added preliminary BeOS support into the util library.
5504           Created lib/silcutil/beos/, and implemented all the needed
5505           functions to support SILC on BeOS.  Created also file
5506           includes/silcbeos.h.
5507
5508 Mon Feb 18 15:49:22 EET 2002  Timo Sirainen <tss@iki.fi>
5509
5510         * Added proper initializations to silc's irssi code, so it's
5511           now possible to load it as module.  Affected files
5512           irssi/src/silc/core/silc-core.c,
5513           fe-common/silc/fe-common-silc-core.[ch] and fe-text/silc.c
5514
5515 Sun Feb 17 19:02:56 EET 2002  Pekka Riikonen <priikone@silcnet.org>
5516
5517         * Merged latest Irssi (0.8.1) from the irssi.org's CVS into
5518           the SILC tree.
5519
5520         * Fixed the silcdoc document generator to correct generate
5521           docs from all kinds of filenames.  Affected files are
5522           util/robodoc/Source/generator.c, scripts/silcdoc/silcdoc
5523
5524         * ROBOdoc documented lib/silcutil/silcmemory.h.
5525           Added also new function silc_memdup.
5526
5527         * Removed lib/silcutil/silcbufutil.h and moved those routines
5528           to the lib/silcutil/silcbuffer.h.
5529
5530 Sun Feb 17 15:52:30 EET 2002  Pekka Riikonen <priikone@silcnet.org>
5531
5532         * Added `user_count' to the SilcChannelEntry which now tells the
5533           number of users on the channel.  The user count is now saved
5534           in normal server of global channels as well.  Affected files
5535           silcd/server.c, idlist.h, packet_receive.c and command.c.
5536
5537         * Splitted lib/silcutil/silcutil.[ch] into silcfileutil.[ch] to
5538           include file utility functions.
5539
5540         * Fixed the lib/silcsftp/sftp_fs_memory.c to use silcutil routines
5541           instead of calling directly OS routines.
5542
5543         * Fixed NICK change printing in Irssi SILC Client. Fixed
5544           KICKED notify printing in Irssi SILC Client.  Affected file
5545           irssi/src/silc/core/client_ops.c.
5546
5547         * Fixed a NICK change bug in client library, to not recreate the
5548           client_entry->channels hash table everytime nick is changed.
5549           Affected file lib/silcclient/client.c.
5550
5551 Sun Feb 17 10:10:14 EET 2002  Pekka Riikonen <priikone@silcnet.org>
5552
5553         * ROBOdoc documented the lib/silcske/silcske.h, and improved
5554           the SKE interface a bit.
5555
5556         * Fixed padding problem in PKCS#1. The padding was not actually
5557           random since the random number generator was used incorrectly.
5558           This security bug affects only when encrypting with PKCS#1, and
5559           it is not currently used at all in SILC. SILC only use signing
5560           with PKCS#1. Affected file lib/silccrypt/pkcs1.c.
5561
5562 Sat Feb 16 13:44:24 EET 2002  Pekka Riikonen <priikone@silcnet.org>
5563
5564         * Rewrote the notify handling in Irssi SILC client to not call
5565           the events as signals.  Fixes problems with Perl support.
5566           Affected files irssi/src/silc/core/client_ops.c, silc-channels.c.
5567
5568         * Send the auto-nicking NICK command in client library with
5569           little timeout after connecting.  The affected file is
5570           lib/silcclient/client.c.
5571
5572         * Added following new config file settings:
5573           channel_rekey_secs, key_exchange_rekey, key_exchange_pfs,
5574           key_exchange_timeout, conn_auth_timeout, connections_max,
5575           links_max.
5576
5577           Implemented all the new config settings handling in the server.
5578
5579           Optimized the use of SKE Mutual flag usage.  Use it only
5580           if connection authentication protocol is not based in public
5581           key authentication.
5582
5583           Renamed all SilcServerConfigSection* to SilcServerConfig*
5584           to have a bit shorter names.
5585
5586           Affected files silcd/serverconfig.[ch], server.[ch], and
5587           protocol.[ch].
5588
5589 Sat Feb 16 02:46:43 CET 2002  Johnny Mnemonic <johnny@themnemonic.org>
5590
5591         * Cleaned up the listening sockets code, preparing for the rehash
5592           support.  Affected file is silcd/server.c.
5593
5594         * Fixed some output messages.  Affected files are silcd/silcd.c,
5595           and silcd/server.c.
5596
5597 Fri Feb 15 19:10:20 EET 2002  Pekka Riikonen <priikone@silcnet.org>
5598
5599         * Create lib/doc/silcrng_intro.html document as introduction
5600           to SILC RNG.  ROBOdoc documented lib/silccrypt/silcrng.h.
5601
5602 Fri Feb 15 13:23:03 CET 2002  Johnny Mnemonic <johnny@themnemonic.org>
5603
5604         * Fixes to the silcd config template.  Affected file is
5605           doc/example_silcd.conf.in.
5606
5607         * Removed type casts from silc_calloc(), conforming to the
5608           CodingStyle.  Affected file is lib/silcutil/silcconfig.c.
5609
5610         * Removed param_name member from client, server, and router
5611           section structs, now identifying the param directly.
5612
5613           Added CONFIG_FREE_AUTH macro in config file parsing.
5614
5615           Affected files are silcd/serverconfig.[ch].
5616
5617 Fri Feb 15 12:24:08 EET 2002  Timo Sirainen <tss@iki.fi>
5618
5619         * Fixed command line parameter handling. All SILC initialization
5620           is now done in silc_core_init() which also fixes autoconnecting
5621           to servers.
5622
5623           Affected files irssi/src/silc/core/silc-core.c,
5624           irssi/src/fe-text/silc.c.
5625
5626 Thu Feb 14 22:03:58 EET 2002  Pekka Riikonen <priikone@silcnet.org>
5627
5628         * Added new configuration options and blocks:
5629           keepalive_secs, reconnect_count, reconnect_interval,
5630           reconnect_interval_max, reconnect_keep_trying and
5631           require_reverser_lookup.  Added ConnectionParam block, and
5632           implemented the connection parameters when connecting as
5633           initiator and when accepting connections as responder.
5634
5635           Added CONFIG_IS_DOUBLE macro in config file parsing, to check
5636           whether given configuration value has been given already.
5637
5638           Affected files silcd/serverconfig.[c], server.[c].
5639
5640         * Splitted the doc/example_silcd.conf.in.  Separated the crypto
5641           algorithm parts and created new file silcalgs.conf, that
5642           is now included from the example_silcd.conf.in.
5643
5644         * Optimized the silc_server_connect_to_router_second to take
5645           the connection configuration object from the SilcServerConnection
5646           object instead of finding it during the connecting phase.
5647           Added the configuration object to SilcServerConnection struct.
5648           Affected files silcd/server_internal.h, server.c.
5649
5650 Thu Feb 14 16:02:26 CET 2002  Pekka Riikonen <priikone@silcnet.org>
5651
5652         * Add the client on channel after it was resolved at the
5653           channel message receiving, and it was not already on the
5654           channel.  Affected file lib/silcclient/client_channel.c.
5655
5656 Wed Feb 13 23:16:41 EET 2002  Pekka Riikonen <priikone@silcnet.org>
5657
5658         * Fixed the public key authentication to allocate always the
5659           destination signature buffer instead of using static buffer.
5660           Affected file silcd/protocol.c.
5661
5662 Wed Feb 13 20:51:13 EET 2002  Pekka Riikonen <priikone@silcnet.org>
5663
5664         * Unified the serverconfig.[ch]'s helper function interface.
5665           Affected file silcd/serverconfig.[ch].
5666
5667         * Removed doc/example_silc.conf.in since it is redundant.
5668           The make install will now install irssi/silc.conf file.
5669
5670         * Added new Passphrase and Publickey authentication methods to
5671           config file, allowing both public key and passphrase based
5672           authentication to be set at the same time.
5673
5674           Added `prefer_passphrase_auth' setting in config file which
5675           can be used to set to prefer passwd auth if both passwd and
5676           public key is set.  If not set, public key is preferred.
5677           This has effect only when being initiator (responder will try
5678           both anyway).
5679
5680           Added support for authentication with passphrase and public key
5681           at the same time.  The passphrase is tried first always since
5682           it is faster to check.
5683
5684           Affected file silcd/serverconfig.[ch], server.c, protocol.[ch].
5685
5686 Wed Feb 13 12:46:25 CET 2002  Johnny Mnemonic <johnny@themnemonic.org>
5687
5688         * Merged the new SILC Config library, with the server parsing
5689           support.  Read the header file silcconfig.h or the toolkit
5690           documentation for the news.  Affected files are
5691           doc/example_silcd.conf.in lib/silcutil/silcconfig.[ch]
5692           silcd/command.c silcd/packet_receive.c silcd/packet_send.c
5693           silcd/protocol.c silcd/server.c silcd/server_backup.c
5694           silcd/serverconfig.[ch] silcd/silcd.c.
5695
5696         * Fixed some silclog documentation.  Affected file is
5697           lib/silcutil/silclog.h.
5698
5699 Sun Feb 10 18:11:30 EET 2002  Pekka Riikonen <priikone@silcnet.org>
5700
5701         * The silc_cipher_register, silc_hash_register and
5702           silc_hmac_register now checks if the object to be registered
5703           is registered already.  Affected files are
5704           lib/silccrypt/silccipher.c, silchash.c and silchmac.c.
5705
5706 Sun Feb 10 15:48:38 EET 2002  Pekka Riikonen <priikone@silcnet.org>
5707
5708         * Merged new irssi from irssi.org's CVS, the version 0.7.99.
5709
5710 Sat Feb  9 14:54:33 EET 2002  Pekka Riikonen <priikone@silcnet.org>
5711
5712         * Allow zero length channel messages inside the Channel Message
5713           Payload.  Affected file lib/silccore/silcchannel.c.
5714
5715         * Fixed scripts/silcdoc/silcdoc to support all kinds of filenames
5716           as header filenames.
5717
5718         * Removed lib/silcclient/README and created HTML file
5719           lib/silcclient/silcclient_using.html, which is now included
5720           as part of Toolkit documentation.
5721
5722 Thu Feb  7 10:12:25 CET 2002  Pekka Riikonen <priikone@silcnet.org>
5723
5724         * Fixed CUMODE_CHANGE notify handling to change the mode of
5725           correct client.  Affected file lib/silcclient/client_notify.c.
5726
5727         * Make silc_rng_alloc fail if it cannot allocate the sha1
5728           hash algorithm.  Affected file lib/silccrypt/silcrng.c.
5729
5730 Sun Feb  3 17:20:52 EET 2002  Pekka Riikonen <priikone@silcnet.org>
5731
5732         * Fixed the file transfer's key agreement payload to include
5733           zero port also if the hostname is NULL because it could not
5734           be bound.
5735
5736           Call file transfer monitor callback now also if error occurs
5737           during key agreement protocol.
5738
5739           Changed the silc_client_file_send interface to return the
5740           SilcClientFileError instead of session id.  The session ID
5741           is returned into pointer provided as argument.
5742
5743           Check that the file exists locally before sending the
5744           file transfer request at all.
5745
5746           Affected file lib/silcclient/client_ftp.c, silcapi.h.
5747
5748         * Added SILC_CLIENT_FILE_KEY_AGREEMENT_FAILED file transfer
5749           error than can occur while key agreement protocol.  Affected
5750           file lib/silcclient/silcapi.h.
5751
5752         * Fixed the event_mode CMODE handler to not crash when mode
5753           is changed and +k mode is set in the channel.  Affected file
5754           irssi/src/silc/core/silc-channels.c.
5755
5756         * Fixed SILC_LOG_ERROR to give out Error and not Warning, and
5757           SILC_LOG_WARNING to give out Warning and not Error.  Affected
5758           file lib/silcutil/silclog.c.
5759
5760         * Fixed the channel message payload decryption in the function
5761           silc_channel_message_payload_decrypt to not modify the original
5762           buffer before it is verified that the message decrypted
5763           correctly.  Otherwise, next time it is called with correct
5764           channel key it won't encrypt since the payload is corrupted.
5765           Affected file lib/silccore/silcchannel.c.
5766
5767 Sun Feb  3 11:46:12 EET 2002  Pekka Riikonen <priikone@silcnet.org>
5768
5769         * Do not constantly resize the window.  A fix patch by cras.
5770           Affected file irssi/src/fe-text/screen.c.
5771
5772 Sat Feb  2 16:54:18 EET 2002  Pekka Riikonen <priikone@silcnet.org>
5773
5774         * Applied IPv6 fix patch from Jun-ichiro itojun Hagino.
5775           Affected file lib/silcutil/silcnet.c.
5776
5777 Fri Feb  1 22:33:11 EET 2002  Pekka Riikonen <priikone@silcnet.org>
5778
5779         * Fixed a bug in hash table internal routine for traversing
5780           the table with foreach callback.  The current entry may
5781           become invalid in the callback but it was referenced after
5782           the callback returned.
5783
5784           Do not allow auto rehashing of hash table during the
5785           silc_hash_table_foreach operation, for same reasons as it is
5786           not allowed for SilcHashTableList.  Affected files are
5787           lib/silcutil/silchashtable.[ch].
5788
5789 Fri Feb  1 14:55:00 CET 2002  Pekka Riikonen <priikone@silcnet.org>
5790
5791         * Defined DLLAPI into silcincludes.h and silcwin32.h for
5792           Win32 DLL.  extern's in header files are now declared with
5793           DLLAPI.
5794
5795 Thu Jan 31 23:34:33 EET 2002  Pekka Riikonen <priikone@silcnet.org>
5796
5797         * Fixed private message handling.  It used some old code that
5798           caused the client to crash.  Affecte file is
5799           lib/silcclient/client_prvmsg.c.
5800
5801 Thu Jan 31 19:06:22 EET 2002  Pekka Riikonen <priikone@silcnet.org>
5802
5803         * Added function silc_client_add_channel,
5804           silc_client_replace_channel_id, and removed functions
5805           silc_client_new_channel_id and silc_idlist_get_channel_by_id
5806           from client library.
5807
5808         * Added cross reference of the joined channels to the
5809           SilcClientEntry, and changed the SilcChannelEntry's
5810           users list to SilcHashTable.  The affected files are
5811           lib/silcclient/idlist.[ch].
5812
5813         * Fixed a bug in hash table tarversing.  While the hash table
5814           is traversed with SilcHashTableList the table must not be
5815           rehashed.  It is now guaranteed that auto rehashable tables
5816           are not rehashed while tarversing the list.  Also defined that
5817           silc_hash_table_rehash must not be called while tarversing
5818           the table.  Added function silc_hash_table_list_reset that must
5819           be called after the tarversing is over.  The affected files are
5820           lib/silcutil/silchashtable.[ch].
5821
5822         * Changed all hash table traversing to call the new
5823           silc_hash_table_list_reset in server and in client library.
5824
5825         * Added function silc_client_on_channel to return the
5826           SilcChannelUser entry if the specified client entry is joined
5827           on the specified channel.  This is exported to application as
5828           well.  Affected files lib/silcclient/client_channel.c, silcapi.h.
5829
5830 Wed Jan 30 19:14:31 EET 2002  Pekka Riikonen <priikone@silcnet.org>
5831
5832         * Fixed founder regaining problem with JOIN command on normal
5833           server.  The notify for mode change must be sent always and
5834           not only if !cmd->pending.  Affected file silcd/command.c.
5835
5836         * Fixed the WHOWAS command's reply sending to support the
5837           lists correctly.  Affected file silcd/command.c.
5838
5839 Wed Jan 30 11:11:47 CET 2002  Pekka Riikonen <priikone@silcnet.org>
5840
5841         * When sending JOIN command to router for processing the
5842           sender's old command identifier was not saved back to the
5843           sender's command context, fixed now.  The affected file is
5844           silcd/command.c.
5845
5846         * Create the key in JOIN command of the router did not return
5847           the channel key, added check for this.  Affected file is
5848           silcd/command.c.
5849
5850         * Fixed a channel ID update bug in JOIN command reply.  Do
5851           not directly upgrade the ID but call the function
5852           silc_idlist_replace_channel_id if the ID was changed.
5853           Affected file silcd/command_reply.c.
5854
5855         * Fixed memory leaks from command calling if it would fail.
5856           Affected file silcd/command.c.
5857
5858 Tue Jan 29 19:49:31 EET 2002  Pekka Riikonen <priikone@silcnet.org>
5859
5860         * Applied patches from cras:
5861
5862           Memory leak fixes around libaries, irssi window resize fix,
5863           new silclist.h and silcdlist.h, all extern inline changed to
5864           static inline.
5865
5866         * Removed dotconf from lib/dotconf, not needed anymore.
5867
5868         * Removed TRQ from lib/trq, not needed anymore.
5869
5870         * Do more frequent heartbeats (5 minutes instead of 10 minutes)
5871           with server connections.  Later this will be configurable
5872           in config file after new config file is done.  Affected file
5873           silcd/server.c.
5874
5875 Tue Jan 29 10:35:03 CET 2002  Pekka Riikonen <priikone@silcnet.org>
5876
5877         * Fixed a crash in server related to channel announcements.
5878           Affected file silcd/server.c.
5879
5880 Mon Jan 28 17:49:42 EET 2002  Pekka Riikonen <priikone@silcnet.org>
5881
5882         * Fixed memory leaks in silc_server_create_new_channel*
5883           functions.  Affected file silcd/server.c.
5884
5885         * Fixed the CHANNEL_CHANGE notify to re-announce the channel
5886           which ID was changed.  This way the router will send the
5887           user list for the channel again, and server won't be in
5888           desync in some rare circumstances.  Affected file is
5889           silcd/packet_receive.c.
5890
5891 Sun Jan 27 21:04:19 EET 2002  Pekka Riikonen <priikone@silcnet.org>
5892
5893         * Check for NULL socket pointer in the function
5894           silc_server_packet_send_to_channel_real.  Affected file
5895           silcd/packet_send.c.
5896
5897         * Fixed the BAN notify handling to correctly remove ban
5898           list.  Affected file silcd/packet_receive.c.
5899
5900 Sat Jan 26 23:01:03 EET 2002  Pekka Riikonen <priikone@silcnet.org>
5901
5902         * Fixed some header addition to Toolkit distribution in
5903           lib/silcutil/Makefile.am and lib/trq/Makefile.am.
5904
5905         * Added lib/silcclient/client_ops_example.h as an template
5906           file for application programmers to quickly start using
5907           the SilcClientOperation functions in their application.
5908           Updated the lib/silcclient/README as well to tell about this
5909           nice file made available.
5910
5911 Sat Jan 26 10:45:41 EET 2002  Pekka Riikonen <priikone@silcnet.org>
5912
5913         * Call silc_server_remove_from_channels when removing client
5914           entry when NO_SUCH_CLIENT_ID was received.  Affected file
5915           is silcd/command_reply.c.
5916
5917 Fri Jan 25 19:12:36 EET 2002  Pekka Riikonen <priikone@silcnet.org>
5918
5919         * Added server & router operator statistics updating.  Affected
5920           file silcd/packet_receive.c and silcd/command.c.
5921
5922         * Fixed the SERVER_SIGNOFF notify handling on normal server
5923           not to save the history information for clients.  Same was
5924           fixed earlier in remove_clients_by_server function, but not
5925           here.  Affected file silcd/packet_receive.c.
5926
5927         * Raised the default connection-retry count from 4 to 7 in
5928           server.  Affected file silcd/server.h.
5929
5930         * Cancel any possible reconnect timeouts when we start the
5931           key exchange.  Affected file silcd/server.c.
5932
5933         * Do not reconnect on connection failure when SCONNECT was
5934           given.  Affected files silcd/server.[ch].
5935
5936 Tue Jan 22 18:19:36 EET 2002  Pekka Riikonen <priikone@silcnet.org>
5937
5938         * Removed assert()'s from the lib/silcclient/client_keyagr.c.
5939
5940         * Fixed the NICK command to always give the unformatted
5941           nickname to the one giving the NICK command.  If unformatted
5942           nickname is cached already it will be formatted and the
5943           local entry will always get the unformatted nickname.
5944           Affected file lib/silcclient/idlist.c.
5945
5946         * Fixed some double frees from client library commands.
5947           Affected file is lib/silcclient/command.c.
5948
5949         * Fixed CUMODE command in server to assure that no one can
5950           change founder's mode than the founder itself, there was a
5951           little bug.  Affected file silcd/command.c.
5952
5953 Mon Jan 21 19:07:53 EET 2002  Pekka Riikonen <priikone@silcnet.org>
5954
5955         * Removed the SilcClientCommandDestructor from the client
5956           libary, it is not needed anymore.  Affected files are
5957           lib/silcclient/silcapi.h, command[_reply].[ch],
5958           client_notify, idlist.c.
5959
5960         * Fixed GETKEY command to first resolve client, and then
5961           resolve the server only if the client was not found, instead
5962           of resolving both at the same time.  Affected file is
5963           lib/silcclient/command.c.
5964
5965         * Added silc_client_start_key_exchange_cb and lookup the
5966           remote hostname and IP address before starting the key
5967           exchange with server.  The affected file is
5968           lib/silcclient/client.c.
5969
5970         * The server's public key is now saved using the IP address
5971           of the server and not the servername for the filename.
5972           The hostname public key filename is checked as an fall back
5973           method if the IP address based filename is not found.
5974
5975           Fixed the GETKEY command to save the fetched server key
5976           in correct filename.
5977
5978           Print the remote server's hostname now when new key is
5979           received during connection process.  Affected file is
5980           irssi/src/silc/core/client_ops.c.
5981
5982         * Return always our own public key to the client if it asks
5983           for it with GETKEY command.  Affected file silcd/command.c.
5984
5985         * Removed the use_auto_addr variable from default config
5986           file since it was in wrong section.  Affected file is
5987           irssi/src/config.
5988
5989         * Fixed TOPIC_CHANGE notification to not route it when it
5990           was sent using silc_server_send_notify_to_channel function.
5991           Affected file silcd/command.c.
5992
5993         * Fixed silc_server_send_notify_kicked to send the kicker's
5994           Client ID also, it was missing.  Affected files are
5995           silcd/command.c, silcd/packet_send.[ch].
5996
5997 Thu Jan 17 18:59:11 EET 2002  Pekka Riikonen <priikone@silcnet.org>
5998
5999         * Do not save client history information in SERVER_SIGNOFF.
6000           Fixes the bug in normal server that it does not detect
6001           the client becoming valid after the server becomes back
6002           online.  Affected file silcd/server_util.c.
6003
6004         * Added `sock_error' field  into the SilcSocketConnection
6005           context.  When error occurs during socket operation (read
6006           or write) the error is saved.  Added also new function
6007           silc_socket_get_error to return human readable socket error
6008           message.  Affected files are lib/silcutil/silcsockconn.[ch],
6009           lib/silcutil/unix/silcunixsockconn.c, and
6010           lib/silcutil/win32/silcwin32sockconn.c.
6011
6012         * The server now prints the socket error message in the
6013           signoff for client.  Affected file silcd/server.c.
6014
6015         * Fixed the `created' channel information sending from router
6016           to server in JOIN command.  Checks now whether the channel
6017           really was created or not and set it according that.
6018
6019           Fixed the JOIN command to use the client entry's current
6020           ID during the joining procedure instead of the one it sent
6021           in the command (it is checked though), since it can change
6022           between the packet processing and command processing, and
6023           would just case unnecessary pain in the client end.  Affected
6024           file silcd/command.c.
6025
6026         * Fixed a channel key payload sending to use correct channel
6027           ID when the server was forced to change the channel's ID by
6028           router.  Router sent the key payload with the old Channel ID.
6029           Affected file silcd/packet_receive.c.
6030
6031 Wed Jan 16 22:26:30 EET 2002  Pekka Riikonen <priikone@silcnet.org>
6032
6033         * Call silc_server_save_channel_key only if the key payload
6034           was provided in the JOIN command's command reply.  Affected
6035           file silcd/command_reply.c.
6036
6037 Tue Jan 15 18:49:41 EET 2002  Pekka Riikonen <priikone@silcnet.org>
6038
6039         * Fixed silc_mp_sizeinbase to return the value correctly with
6040           MPI.  Affected file lib/silcmath/mp_mpi.c.
6041
6042         * Fixed the stop_server signal to correctly stop the scheduler
6043           and gracefully stop the server when SIGTERM or SIGINT signals
6044           are received.  Affected file silcd/silcd.c.
6045
6046 Mon Jan  7 23:38:19 CET 2002  Johnny Mnemonic <johnny@themnemonic.org>
6047
6048         * Simple handling of TERM and HUP signals. Also added some log
6049           flushing call around.  Affected file is
6050           silcd/silcd.c.
6051
6052         * Fixed small bugs in silclog.c. Now buffering output will take
6053           effect after 10 seconds since startup: This will ensure that
6054           no important startup messages are lost. Also output redirection
6055           will preserve original format ([Date] [Type] message).
6056           Affected file is lib/silcutil/silclog.c.
6057
6058         * Added two options to the config file, in the logging section:
6059           quicklogs:<yes/no>: and flushdelay:<seconds>:.  Affected files
6060           lib/silcutil/silclog.[ch], silcd/serverconfig.[ch].
6061
6062 Sun Jan  6 12:49:40 EET 2002  Pekka Riikonen <priikone@silcnet.org>
6063
6064         * Do not print the warning about log files not being initialized
6065           more than once to avoid excess logging.  Affected file is
6066           lib/silcutil/silclog.c.
6067
6068         * Fixed the SIM compilation in lib/silcsim/Makefile.am.  Fixed
6069           the SIM copying in make install in Makefile.am.pre.
6070
6071 Sun Jan  6 01:10:21 CET 2001  Johnny Mnemonic <johnny@themnemonic.org>
6072
6073         * Rewritten silclog APIs. Globally interesting changes follows:
6074           silc_log_set_files() changed to silc_log_set_file().
6075           silc_log_set_callbacks() changed to silc_log_set_callback().
6076           ROBOdoc documented silclog header file.
6077           SilcLogCb now returns bool to wether inihibit the default
6078           handler or not (to keep the old behaviour return always TRUE).
6079           The new APIs should also fix the problem of the
6080           silcd_error.log file that was written in the current directory.
6081
6082           New features:
6083           Log files streams will remain opened after silc_log_set_file()
6084           call, means less CPU usage notably on high traffic servers.
6085           File streams are now full buffered, and flushed to the disk
6086           every 5 minutes, lesses HD activity and CPU usage.
6087           Messages can be redirected, allowing admins to configure
6088           one single logfile for all server messages.
6089           the silc_log_quick global variable to activate fast-logging.
6090           Affected files lib/silcutil/silclog.[ch]
6091
6092         * Changed some code to conform new silclog APIs. Affected
6093           files are doc/example_silcd.conf.in, silcd/server.c
6094           irssi/src/silc/core/silc-core.c, silcd/serverconfig.[ch],
6095           silcd/silcd.c.
6096
6097         * Fixed a memory leak that could occur in some situations.
6098           Affected file silcd/serverconfig.c.
6099
6100 Sat Jan  5 13:37:29 EET 2002  Pekka Riikonen <priikone@silcnet.org>
6101
6102         * Added the silc_client_del_client to remove the client from
6103           all channels as well.  Affected file lib/silcclient/idlist.c.
6104
6105         * Fixed the client library to correctly remove the client
6106           from all channels when the client entry is being destroyed.
6107           Affected file lib/silcclient/client_notify.c, command.c.
6108
6109         * Added auto-nicking support to the client library.  If the
6110           applicatio now sets client->nickname it will be sent to the
6111           server after connecting by the library.  This way for example
6112           SILCNICK (or IRCNICK) environment variables will have effect
6113           and always change the nickname automatically to whatever
6114           it is wanted.  Affected file lib/silcclient/client.[ch].
6115
6116         * Renamed silc_server_command_bad_chars to the
6117           silc_server_name_bad_chars and moved it to the
6118           silcd/server_util.[ch].  Added also new function
6119           silc_server_name_modify_bad to return nickname that
6120           includes bad characters as new nickname without those
6121           bad characters.  This check and modify is now used in
6122           silc_server_new_client when the username is initially set
6123           as nickname, so it must be checked to be valid nickname.
6124           Affected file silcd/packet_receive.c.
6125
6126         * The nickname length is now taken from the packet for real
6127           and not trusted to strlen() since it clearly can return
6128           wrong length for nickname including bad characters.  This
6129           also applies to channel names.  Affected file silcd/command.c.
6130
6131         * Removed the lib/silcsilm/modules directory.  Modules are now
6132           compiled into the lib/silcsim.  Fixed the copying of the
6133           modules to follow symbolic links in Makefile.am.pre.
6134
6135 Wed Jan  2 18:56:21 EET 2002  Pekka Riikonen <priikone@silcnet.org>
6136
6137         * Fixed silc_string_regexify list creation.  Fixes bugs with
6138           BAN and INVITE commands in server.  The affected file is
6139           lib/silcutil/unix/silcunixutil.c.
6140
6141 Sun Dec 30 13:41:34 EET 2001  Pekka Riikonen <priikone@silcnet.org>
6142
6143         * Removed the command destructor entirely from the server's
6144           command and command reply routines.  It is not needed, and
6145           its usage was buggy and caused crashes.  Affected files are
6146           silcd/command[_reply].[ch].
6147
6148 Fri Dec 28 12:43:22 EET 2001  Pekka Riikonen <priikone@silcnet.org>
6149
6150         * Cancel protocol and NULL sock->protocol if timeout
6151           occurred during protocol.  Affected file silcd/server.c.
6152
6153         * Cancel protocol timeouts always before calling the final
6154           callback, to assure that after final callback is called
6155           no other state will be called for the protocol anymore.
6156           Affected file silcd/protocol.c.
6157
6158         * Print error log if incoming connection configuration could
6159           not be found.  Affected file silcd/server.c.
6160
6161         * Fixed JOIN command to correctly save the founder mode
6162           to the client on normal SILC server, when the channel
6163           was created by the router.  Affected file silcd/command.c.
6164
6165         * Fixed LIST command (hopefully) to send correct reply
6166           packets.  Affected file silcd/command.c.
6167
6168 Thu Dec 20 16:14:52 CET 2001  Pekka Riikonen <priikone@silcnet.org>
6169
6170         * The silc_packet_receive_process now returns FALSE if the
6171           read data was invalid packet, and TRUE if it was ok.
6172
6173           The server now checks that if unauthenticated connection
6174           sends data and its processing fails the server will close
6175           the connection since it could be a malicious flooder.
6176
6177           Affected files lib/silccore/silcpacket.[ch], silcd/server.c.
6178
6179 Wed Dec 19 21:31:25 EET 2001  Pekka Riikonen <priikone@silcnet.org>
6180
6181         * Make sure the warning about error opening a log file is
6182           printed only once and not everytime it fails (produces
6183           too much useless log).  Affected file lib/silcutil/silclog.c.
6184
6185 Wed Dec 19 18:21:51 CET 2001  Johnny Mnemonic <johnny@themnemonic.org>
6186
6187         * Made the silc_server_daemonise() function more readable.
6188           Affected file silcd/server.c.
6189
6190         * Pid file is now optional, the user may comment it out from
6191           the config file. Removed define SILC_SERVER_PID_FILE, we
6192           don't need a default any longer.  Affected file
6193           configure.in.pre, lib/Makefile.am.pre.
6194
6195         * Make some use of the pid file. The server now dies at startup
6196           if it detects a valid pid file on his path. The server would
6197           die anyway in this circumstance, because of the bind() failure.
6198           Affected file silcd/silcd.c.
6199
6200         * No longer compiling lib/dotconf.
6201
6202 Mon Dec 17 18:24:27 EET 2001  Pekka Riikonen <priikone@silcnet.org>
6203
6204         * Fixed JOIN command parsing not to crash.  Affected file
6205           lib/silcclient/command.c.
6206
6207         * Fied the NICK_CHANGE notify to add the new client entry
6208           even it is resolved.  This removes an <[unknown]> nick
6209           thingy bug in the client.  Affected file is
6210           lib/silcclient/client_notify.c.
6211
6212         * Do not try to allocate 0 bytes (efence does not like it)
6213           in lib/silccore/silccomand.c when encoding payload.
6214
6215         * Do not take IRCNICK as nickname in Irssi SILC client since
6216           it is not possible to set nickname before hand connecting
6217           the server (TODO has an entry about adding auto-nicking
6218           support).
6219
6220         * Changed the silc_server_command_pending to check whether
6221           there already exists an pending entry with the specified
6222           command, command identifier and pending callback.  This is
6223           to fix IDENTIFY and WHOIS related crashes that may register
6224           multiple pending commands with same identifier.  Affected
6225           file silcd/command.c.
6226
6227         * Fixed the server to reconnect to the router even if it
6228           was already reconnecting and EOF was received.  This to
6229           fix a possibility that the server wouldn't ever try to
6230           auto-reconnect to the router.  Affected file silcd/server.c.
6231
6232 Sat Dec 15 20:31:50 EET 2001  Pekka Riikonen <priikone@silcnet.org>
6233
6234         * Fixed the server's password authentication to use the
6235           length of the locally saved password, and not the one
6236           sent in the packet.  Affected file silcd/protocol.c.
6237
6238         * Fixed same password authentication problem in the
6239           Authentication Payload handling routines in
6240           lib/silccore/silcauth.c.
6241
6242         * Yet another password authentication problem fixed with
6243           channel password handling in silcd/command.c.
6244
6245 Mon Dec 10 19:57:40 EET 2001  Pekka Riikonen <priikone@silcnet.org>
6246
6247         * If first character of string in silc_parse_userfqdn is '@'
6248           then do not parse it.  Affected file is
6249           lib/silcutil/silcutil.c.
6250
6251 Sun Dec  9 22:18:50 EET 2001  Pekka Riikonen <priikone@silcnet.org>
6252
6253         * Fixed minor bug in IDENTIFY command reply sending, which
6254           caused various weird problems during JOIN when it was
6255           resolving names for users.  Affected file silcd/command.c.
6256
6257 Sun Dec  9 19:18:41 EET 2001  Pekka Riikonen <priikone@silcnet.org>
6258
6259         * Fixed the IDENTIFY command reply sending to chech better valid
6260           clients.  It was possible to send incomplete list of replies.
6261           Affected file silcd/command.c.
6262
6263 Sat Dec  8 15:58:31 EET 2001  Pekka Riikonen <priikone@silcnet.org>
6264
6265         * Added silc_client_command[s]_[un]register functions now to
6266           dynamically register the commands in client library.  Removed
6267           the static table of commands.  This allows the client library
6268           to call commands without causing the application to know about
6269           what commands library has called.
6270
6271           Removed the INFO command reply kludge to detect when the command
6272           was called by library.  Now library use its own command reply
6273           function for INFO command.
6274
6275           Added function silc_client_command_call to call a command.
6276           Application can use it to call command, not access the structure
6277           directly.
6278
6279           Now all commands that are sent by the client library (not
6280           explicitly sent by application) use own command reply functions.
6281
6282           Affected files around lib/silcclient/ and in
6283           irssi/src/silc/core/.
6284
6285         * Fixed the WHOIS command reply sending to chech better valid
6286           clients.  It was possible to send incomplete list of replies.
6287
6288           Fixed the WHOIS and IDENTIFY to send the request to router
6289           if normal server did not do it and did not find any results.
6290
6291           Affected file silcd/command.c.
6292
6293 Thu Dec  6 17:21:06 EET 2001  Pekka Riikonen <priikone@silcnet.org>
6294
6295         * Moved the internal data from SilcClient context into its
6296           own file, not accesible to application.  Affected files
6297           lib/silcclient/client.h and lib/silcclient/client_internal.h,
6298           and other files in client library.
6299
6300 Thu Dec  6 10:37:55 EET 2001  Pekka Riikonen <priikone@silcnet.org>
6301
6302         * Added doc/examples installation target in Makefile.am.pre.
6303           A patch by salo.
6304
6305 Tue Dec  4 17:43:19 EET 2001  Pekka Riikonen <priikone@silcnet.org>
6306
6307         * If NO_SUCH_CLIENT_ID notify is received for WHOIS or IDENTIFY
6308           commands the found client entry will be removed from the
6309           cache, after notifying application about the error.  Affected
6310           file lib/silcclient/command_reply.c.
6311
6312         * Changed the /MSG to check for exact nickname user gave, and
6313           not let `nick' match `nick@host' if it is only one found.  Now,
6314           user must type the exact nickname (like nick@host2) even if
6315           there are no more than one same nicks found.  This is to avoid
6316           a possibility of sending nickname to wrong nickname since
6317           `nick' could match `nick@host'.  Affected file is
6318           irssi/src/core/silc-servers.c.
6319
6320 Mon Dec  3 18:49:45 EET 2001  Pekka Riikonen <priikone@silcnet.org>
6321
6322         * Do not print "you are now server operator" or similar when
6323           giving /away command.  Affected files are
6324           irssi/src/silc/core/client_ops.c, silc-servers.h.
6325
6326         * Made the silc_server_command_pending_error_check to send
6327           the same command reply payload it received back to the
6328           original sender of the command.  This way all arguments
6329           that was received by the server will be received by the
6330           client too.  Affected file silcd/command.c.
6331
6332         * Added the silc_idcache_add to return the created cache entry
6333           to a pointer.  Affected file lib/silccore/silcidcache.[ch].
6334
6335         * Add global clients to expire if they are not on any channel.
6336           This is because normal server will never know if they signoff
6337           if they are not on any channel.  The cache expiry will take
6338           case of these entries.  This is done by normal servers only.
6339           The affected files are silcd/command_reply.c,
6340           silcd/idlist.[ch], silcd/server and silcd/packet_receive.c.
6341
6342         * If server receives invalid ID notification for WHOIS or
6343           IDENTIFY and the ID exists in the lists, it is removed.
6344           Affected file silcd/command_reply.c.
6345
6346         * If NO_SUCH_CLIENT_ID is received for WHOIS or IDENTIFY command
6347           in client then client entry that it matches is searched and
6348           the nickname is printed on the screen for user.  Affected
6349           file irssi/src/silc/core/client_ops.c.
6350
6351 Mon Dec  3 11:56:59 EET 2001  Pekka Riikonen <priikone@silcnet.org>
6352
6353         * Use cache entry expire time in the LIST command reply to
6354           purge old entries from the cache after the LIST command
6355           reply has been received.  This way we don't have non-existent
6356           entries in the cache for too long.  Affected file is
6357           silcd/command_reply.c.
6358
6359 Sun Dec  2 23:29:07 EET 2001  Pekka Riikonen <priikone@silcnet.org>
6360
6361         * If we are normal server, and we've not resolved client info
6362           in WHOIS or IDENTIFY from router, and it is global client,
6363           we'll check whether it is on some channel.  If it is not
6364           then we cannot be sure about its validity and will resolve it
6365           from router.  Fixes a bug in WHOIS and IDENTIFY.  Affected
6366           file silcd/command.c.
6367
6368         * Search channel by name (if possible) rather than by ID
6369           in IDENTIFY command's command reply.  Affected file is
6370           silcd/command_reply.c.
6371
6372 Sun Dec  2 13:48:46 EET 2001  Pekka Riikonen <priikone@silcnet.org>
6373
6374         * Distribute to the channel passphrase in CMODE_CHANGE notify.
6375           Updated specs and implemented it.  Affected file silcd/command.c,
6376           silcd/packet_send.c and silcd/packet_receive.c.
6377
6378         * Implemented the <founder auth> payload handling in the JOIN
6379           command.  If provided all conditions for channel joining
6380           except requirement to provide correct passphrase can be
6381           overrided by the channel founder.  Updated the protocol specs.
6382           Affected file silcd/command.c.
6383
6384           Added support for founder auth in JOIN command in client
6385           library.  Fixed the parsing of the JOIN command now to support
6386           all options as they should be.  The affected file is
6387           lib/silcclient/command.c.
6388
6389         * Optimized the WHOIS and IDENTIFY commands to send the request
6390           to router only if it includes nicknames or other names.  If
6391           they include only IDs then check the local cache first before
6392           routing.  Affected file is silcd/command.c.
6393
6394         * Added channels topic announcements.  Affected file is
6395           silcd/packet_receive.c and silcd/server.c.
6396
6397         * Fixed the silc_server_send_notify_topic_set to really destine
6398           the packet to channel.  Affected file silcd/packet_send.c.
6399
6400         * Fixed a crash in CHANNEL_CHANGE notify handling in the client
6401           library.  Affected file lib/silcclient/client_notify.c.
6402
6403         * Added UMODE announcements.  Affected file silcd/server.c.
6404
6405 Sat Dec  1 12:52:39 EET 2001  Pekka Riikonen <priikone@silcnet.org>
6406
6407         * Memory leak fixes in:
6408
6409           lib/silcutil/silcsockconn.c
6410           lib/silcske/silcske.c
6411           lib/silcske/groups.c
6412           lib/silccrypt/rsa.c
6413           lib/silccrypt/silcpkcs.c
6414           lib/silccore/silccommand.c
6415           lib/silccore/silcidcache.c
6416           silcd/idlist.c
6417           silcd/packet_send.c
6418           silcd/command.c
6419
6420         * ROBOdoc documented the lib/silcske/groups.h file and a
6421           bit changed the interface for better.
6422
6423 Thu Nov 29 22:12:50 EET 2001  Pekka Riikonen <priikone@silcnet.org>'
6424
6425         * Update the client entry context in the ID cache after
6426           nick change.  Affected file lib/silcclient/command.c.
6427           Fixes the CUMODE command when regaining founder privileges,
6428           and a little WHOIS problem.
6429
6430         * Fixed silc_net_gethostbyname to correctly call the
6431           inet_ntop.  Affected file lib/silcutil/silcnet.c.
6432
6433 Thu Nov 29 19:31:23 EET 2001  Pekka Riikonen <priikone@silcnet.org>'
6434
6435         * Added IPv6 support checking to the configure.in.pre, added
6436           also --enable-ipv6 option to override the check.  Affected
6437           file configure.in.pre.
6438
6439         * The silc_thread_create now calls the start function
6440           directly if threads support is not compiled in.  Removes
6441           ugly #ifdef's from generic code.  Affected files are
6442           lib/silcutil/unix/silcunixthread, win32/silcwin32thread.c.
6443
6444         * Added silc_net_gethostby[name/addr]_async to asynchronously
6445           resolve.  Affected files are lib/silcutil/silcnet.[ch].
6446
6447         * Added support for rendering IPv6 based server, client and
6448           channel IDs.  Affected file lib/silcutil/silcutil.c.
6449
6450         * Added support for creating IPv6 based server IDs.  Affected
6451           file is silcd/serverid.c.
6452
6453 Wed Nov 28 23:46:09 EET 2001  Pekka Riikonen <priikone@silcnet.org>'
6454
6455         * Added silc_net_gethostby[addr/name] into the
6456           lib/silcutil/silcnet.[ch].  Added IPv6 support to Unix network
6457           routines.  Added silc_net_is_ip[4/6].  Affected file is
6458           lib/silcutil/unix/silcunixnet.c.  All routines that take
6459           address as argument now supports both IPv4 and IPv6 addresses.
6460
6461 Mon Nov 26 18:09:48 EET 2001  Pekka Riikonen <priikone@silcnet.org>'
6462
6463         * Fixed LIST command reply sending in server.  Affected file
6464           silcd/command.c.
6465
6466         * Server now sends the kicker's client ID in the KICK notify
6467           to the kicked client.  Affected file silcd/command.c.
6468
6469         * The client library now parses the kickers client ID and
6470           UI displays it.  Affected files lib/silcclient/client_notify.c
6471           and irssi/src/silc/core/silc-channels.c, module-formats.c.
6472
6473         * Made all payload parsing function prototypes consistent.
6474           They all take now const unsigned char * and uint32 pair as
6475           the payload data instead of SilcBuffer.  Changes all around
6476           the source tree.  Other unsigned char* -> const unsigned char*
6477           changes around the tree as well.
6478
6479         * Optimized SFTP client and server packet sending not to
6480           allocate new buffer for each packet but to recycle the
6481           first allocated buffer.  Affected files are
6482           lib/silcsftp/sftp_client.c, sftp_server.c, sftp_util.[ch].
6483
6484         * Optimized the SFTP client to use SilcList instead of
6485           SilcDList for requests, because it is faster.  Affected file
6486           is lib/silcsftp/sftp_client.c.
6487
6488         * Moved the ID Payload routines from lib/silccore/silcpayload.[ch]
6489           into lib/silccore/silcid.[ch].
6490
6491           Renamed silcpayload.[ch] into silcargument.[ch].
6492
6493 Mon Nov 26 15:01:53 CET 2001  Pekka Riikonen <priikone@silcnet.org>
6494
6495         * If client entry is deleted with active key agreement
6496           session, abort the session.
6497
6498           The silc_client_abort_key_agreement now calls the completion
6499           callback with new SILC_KEY_AGREEMENT_ABORTED status.
6500
6501           Affected file lib/silcclient/silcapi.h, client_keyagr.c and
6502           idlist.c.
6503
6504 Sun Nov 25 18:01:45 EET 2001  Pekka Riikonen <priikone@silcnet.org>
6505
6506         * Don't use __restrict in older GCC's.  Affected file is
6507           lib/silcmath/mpi/mpi-priv.h.  A patch by salo.
6508
6509         * silc_net_localhost now attempts to reverse lookup the
6510           IP/hostname.  Affected file lib/silcutil/silcnet.c.
6511
6512         * Defined <founder auth> argument to the SILC_COMMAND_JOIN
6513           command.  It can be used to gain founder privileges at
6514           the same time when joining the channel.
6515
6516           Defined that the SILC_NOTIFY_TYPE_KICKED send the
6517           kicker's client ID as well.  Updated protocol specs.
6518
6519           Defined that the server must send SILC_COMMAND_IDENTIFY
6520           command reply with error status to client who sent
6521           private message with invalid client ID.
6522
6523           Updated the protocol specification.
6524
6525         * Added silc_server_send_command_reply to send any
6526           command reply.  Affected file silcd/packet_send.[ch].
6527
6528         * Added silc_id_payload_encode_data to encode ID payload
6529           from raw ID data.  Affected file lib/silccore/silcpayload.[ch].
6530
6531         * The server now send IDENTIFY command reply with error
6532           status if client ID in private message is invalid.  Affected
6533           file silcd/packet_receive.c.
6534
6535         * Save the server key file with server's IP address in
6536           the filename instead of hostname.  The affected file is
6537           irssi/src/silc/core/client_ops.c.
6538
6539 Sat Nov 24 20:08:22 EET 2001  Pekka Riikonen <priikone@silcnet.org>
6540
6541         * Typo fixes in irssi/src/fe-common/silc/module-formats.c.
6542           A patch by Sunfall.
6543
6544         * Added libtool support for compiling shared objects in
6545           lib/silcsim.  Affected file configure.in.pre and
6546           lib/silcsim/Makefile.am.  Original patch by cras.
6547
6548 Fri Nov 23 23:30:59 EET 2001  Pekka Riikonen <priikone@silcnet.org>
6549
6550         * Pid file configuration, and server's config file fixes
6551           patch by toma.  Updated CREDITS file.
6552
6553 Sun Nov 18 01:34:41 EET 2001  Pekka Riikonen <priikone@silcnet.org>
6554
6555         * Fixed silc_client_channel_message to not try to decrypt
6556           the message twice if it resolved the destination client
6557           information.  This could cause of dropping one channel
6558           message.  Affected file lib/silcclient/client_channel.c.
6559
6560 Wed Nov 14 23:44:56 EET 2001  Pekka Riikonen <priikone@silcnet.org>
6561
6562         * Added silc_client_run_one into lib/silcclient/silcapi.h and
6563           lib/silcclient/client.c. This function is used when the SILC
6564           Client is run under some other scheduler, or event loop or
6565           main loop.  On GUI applications, for example this may be
6566           desired to used to run the client under the GUI application's
6567           main loop.  Typically the GUI application would register an
6568           idle task that calls this function multiple times in a second
6569           to quickly process the SILC specific data.
6570
6571 Wed Nov 14 19:16:52 CET 2001  Johnny Mnemonic <johnny@themnemonic.org>
6572
6573         * Fixed silc_server_drop() for dropping the supplementary
6574           groups as well, this could cause a security hole on some
6575           systems.
6576
6577 Wed Nov 14 16:22:25 EET 2001  Pekka Riikonen <priikone@silcnet.org>
6578
6579         * __pid_t -> pid_t in lib/silccrypt/silcrng.c.  A patch by
6580           johnny.
6581
6582         * Write PID file after dropping privileges.  Added -F option
6583           to run server on foreground.  A patch by debolaz.
6584           Affected files silcd/server.c, silcd/silcd.c.
6585
6586         * Fixed MOTD to return the MOTD file server name.  Affected
6587           file silcd/command.c.
6588
6589         * Added INFO command reply handling to the Irssi SILC Client.
6590           Affected file irssi/src/silc/core/client_ops.c.
6591
6592 Wed Nov 14 00:18:08 EET 2001  Pekka Riikonen <priikone@silcnet.org>
6593
6594         * Fixed the silc_idcache_list_* routines to really support
6595           the dynamic list.  Fixes a crash.  Affected file is
6596           lib/silccore/silcidcache.c.
6597
6598         * Fixed the LIST command reply to really call LIST command's
6599           pending callbacks.  Affected file silcd/command_reply.c.
6600
6601 Tue Nov 13 00:49:17 EET 2001  Pekka Riikonen <priikone@silcnet.org>
6602
6603         * Update conn->local_entry->nickname after giving NICK
6604           command.  Affected file lib/silcclient/command.c.
6605
6606 Sun Nov 11 23:43:02 PST 2001  Brian Costello <bc@wpfr.org>
6607
6608         * Added the [pid] option to the silcd configuration file
6609
6610           Affected files: serverconfig.[ch] and silcd.c
6611
6612 Sun Nov 11 23:56:39 EET 2001  Pekka Riikonen <priikone@silcnet.org>
6613
6614         * Save fingerprint in WHOIS command reply in server.
6615           Affected file silcd/command_reply.c.
6616
6617         * Fixed NICK commands pending callback registration.
6618           Affected file lib/silcclient/command.c.
6619
6620 Sun Nov 11 10:49:10 EET 2001  Pekka Riikonen <priikone@silcnet.org>
6621
6622         * Use ++server->cmd_ident when sending commands in server,
6623           instead of random number.  Affected file silcd/command.c.
6624
6625         * Fixed GETKEY command reply to call actually GETKEY pending
6626           command callbacks.  Affected file silcd/command_reply.c.
6627
6628         * A bit stricter check for nicknames.  Check for same nickname
6629           in NICK command also.  Affected file silcd/command.c.
6630
6631         * Do not call INFO command everytime client ID changes, only
6632           during first connecting.  Affected file lib/silcclient/client.c.
6633
6634         * Set the new nickname only after successful command reply for
6635           NICK command is returned by server.  Affected file
6636           lib/silcclient/command.c.
6637
6638         * Remove nicknames from nicklist during server_signoff notify.
6639           Should fix /NAMES bit more.  The affected file is
6640           irssi/src/silc/core/silc-channels.c.
6641
6642         * Added `fingerprint' field to the SilcIDListData in the
6643           silcd/idlist.h to hold the fingerprint of the client's
6644           public key.
6645
6646           Send the fingerprint of the client's public key in WHOIS
6647           command reply.
6648
6649           Affected files silcd/command.c, and silcd/idlist.[ch].
6650
6651         * Added silc_fingerprint into lib/silcutil/silcutil.[ch] to
6652           create fingerprint from given data.
6653
6654         * Show the fingerprint of the client's public key in WHOIS.
6655           Affected files irssi/src/module-formats.[ch] and
6656           irssi/src/silc/core/client_ops.c.
6657
6658         * Format the multiple same nicknames also during JOIN and
6659           NICK_CHANGE notifys.  Affected file is
6660           lib/silcclient/client_notify.c.
6661
6662         * Do not print error on screen for invalid private message
6663           payload since it can come if someone is sending private
6664           messages with wrong key.  Affected file
6665           lib/silccore/silcprivate.c.
6666
6667         * Fixed multiple concurrent /PING crash.  Affected file
6668           lib/silcclient/command.c.
6669
6670         * Changed the wrong ID encoding.  All IP addresses must be
6671           in MSB first order in encoded format.  They were encoded
6672           wrong and was in LSB format.  Affected files are
6673           silcd/serverid.c, lib/silcutil/silcutil.c.
6674
6675         * Remove silc_net_addr2bin_ne from lib/silcutil/silcnet.[ch].
6676
6677         * Call the `connect' client operation through the scheduler
6678           in case of error.  Affected file lib/silcclient/client.c.
6679
6680         * Call the `failure' client operation even if the error
6681           occurred locally during a protocol.  Affected file is
6682           lib/silcclient/protocol.c.
6683
6684         * Added support of sending LIST command to router from normal
6685           server.  This way normal server can get list of all channels
6686           in the network too.  Fixed the channel list sending in the
6687           server too.  Affected files are silcd/command.c, and
6688           silcd/command_reply.[ch].
6689
6690         * Added silc_server_update_channels_by_server and
6691           silc_server_remove_channels_by_server.  They are used during
6692           disconnection of primary router and in backup router protocol.
6693           Affected file silcd/server_util.[ch], silcd/server.c and
6694           silcd/server_backup.c.
6695
6696         * Fixed channel adding to global list in IDENTIFY command
6697           reply in server.  Affected file silcd/command_reply.c.
6698
6699 Sat Nov 10 21:39:22 EET 2001  Pekka Riikonen <priikone@silcnet.org>
6700
6701         * If the incoming packet type is REKEY or REKEY_DONE process
6702           that packet always synchronously.  Fixes yet another MAC
6703           failed error on slow (dialup) connections.  Affected file
6704           lib/silcclient/client.c and silcd/server.c.
6705
6706 Thu Nov  8 22:21:09 EET 2001  Pekka Riikonen <priikone@silcnet.org>
6707
6708         * Call check_version SKE callback for initiator too.  Affected
6709           file lib/silcske/silcske.c.
6710
6711         * Implemented fix for security hole found in the SKE that was
6712           fixed in the specification few days back; the initiator's
6713           public key is now added to the HASH value computation.
6714           Added backwards support for the old way of doing it too, for
6715           old clients and old servers.  Affected file is
6716           lib/silcske/silcske.c.
6717
6718         * Enabled mutual authentication by default in SKE.  If initiator
6719           is not providing mutual authentication the responder will
6720           force it.  This will provide the proof of posession of the
6721           private key for responder.  The affected files are
6722           lib/silcclient/protocol.c and silcd/protocol.c.
6723
6724         * Do not cache anymore the server's public key during SKE.
6725           We do mutual authentication so the proof of posession of
6726           private key is done, and if the server is authenticated in
6727           conn auth protocol with public key we must have the public
6728           key already.  Affected file silcd/protocol.c.
6729
6730         * Added new global debug variable: silc_debug_hexdump.  If
6731           it is set to TRUE SILC_LOG_HEXDUMP will be printed.  Affected
6732           file lib/silcutil/silclog.[ch].
6733
6734         * Fixed compilation warning due to char * -> const char *.
6735           Affected files lib/silcutil/silcnet.h, and
6736           lib/silccore/silcauth.[ch].
6737
6738 Wed Nov  7 20:43:03 EET 2001  Pekka Riikonen <priikone@silcnet.org>
6739
6740         * Fixed CMODE command when new channel key was created.  If
6741           the creation failed the old key was removed.  Next time giving
6742           same command would crash the server since the old key was
6743           freed already.  Affected file silcd/command.c.
6744
6745         * Fixed the silc_server_announce_get_channels to not crash
6746           on reconnect.  Affected file silcd/server.c.
6747
6748 Wed Nov  7 17:15:07 EET 2001  Pekka Riikonen <priikone@silcnet.org>
6749
6750         * Added silc_log_set_debug_string function to set a regex
6751           string to match for debug output.  Only the function names,
6752           or filenames matching the given debug string is actually
6753           printed.  This way it is possible to filter out those debug
6754           strings that user is not interested in.
6755
6756           Fixed a bug in silc_string_regexify.
6757
6758           Affected files lib/silcutil/silclog.[ch], and
6759           lib/silcutil/unix/silcunixutil.c.
6760
6761         * Changed the -d options in both server and Irssi SILC client
6762           to take the debug string as argument.  Affected files
6763           silcd/silcd.c and irssi/src/silc/core/silc-core.c.
6764
6765 Tue Nov  6 21:31:54 EET 2001  Pekka Riikonen <priikone@silcnet.org>
6766
6767         * Added silc_hash_babbleprint to create a Bubble Babble
6768           Encoded fingerprint.  The encoding is developed by Antti
6769           Huima (draft-huima-babble-01.txt), and it creates human
6770           readable strings out of binary data.  Affected file
6771           lib/silccrypt/silchash.[ch].
6772
6773         * Print the babble print now in addition of fingerprint as well
6774           in Irssi SILC client.  Affected files are
6775           irssi/src/fe-common/silc/module-formats.[ch],
6776           irssi/src/fe-common/silc/core/client_ops.c.
6777
6778 Sun Nov  4 23:37:28 EET 2001  Pekka Riikonen <priikone@silcnet.org>
6779
6780         * Fixed a security problem found in SKE.  The initiator's
6781           public key too is now added to the HASH hash value creation
6782           which is signed by the responder to create the SIGN value.
6783           This will prevent anyone in the middle to lie to the responder
6784           about the initiator's public key.  If this is done now, the
6785           man in the middle will get caught.  Updated the protocol
6786           specification.
6787
6788 Sun Nov  4 11:43:53 EET 2001  Pekka Riikonen <priikone@silcnet.org>
6789
6790         * Better installation directory handling.  Configure module
6791           paths and other paths automatically to example_silc* files
6792           in doc/.  A patch by toma.
6793
6794         * Fixed compiler warning from MPI library, and from SILC RNG.
6795           A patch by johnny.
6796
6797         * Added SILC_SERVER_PID_FILE to define the pid file for server.
6798           It can be configured with ./configure.  A patch by toma.
6799
6800 Sat Nov  3 23:48:23 EET 2001  Pekka Riikonen <priikone@silcnet.org>
6801
6802         * Find correct make to use in prepare-clean.  A patch by
6803           toma.  Affected file prepare-clean.
6804
6805 Sat Nov  3 22:04:00 PST 2001  Brian Costello <bc@mksecure.com>
6806
6807         * Added irssi variables use_auto_addr, auto_bind_ip,
6808           auto_bind_port and auto_public_ip.
6809
6810         * Changed the interface for silc_client_send_key_agreement
6811           in lib/silcclient/silcapi.h
6812
6813         Affected files:
6814
6815          irssi/src/silc/core/silc-core.c
6816          irssi/config
6817          lib/silcclient/silcapi.h
6818          irssi/src/silc/core/silc-channels.c
6819          lib/silcclient/client_keyagr.c
6820          irssi/docs/help/key
6821
6822 Sat Nov  3 17:48:55 EET 2001  Pekka Riikonen <priikone@silcnet.org>
6823
6824         * Added silc_pkcs_public_key_compare to compare two
6825           public keys.  Affected file lib/silccrypt/silcpkcs.[ch].
6826
6827         * Check that the client who set the founder mode on the
6828           channel is the same client that is giving the founder
6829           mode to itself.  It is done by comparing the saved public
6830           key (it is saved even in the authentication is passphrase).
6831           Affected file silcd/command.c.
6832
6833 Fri Nov  2 18:52:08 EST 2001  Pekka Riikonen <priikone@silcnet.org>
6834
6835         * Do not process packet for disconnected socket connection.
6836           Affected file lib/silccore/silcpacket.c.
6837
6838         * Process the DISCONNECT packet through scheduler in the
6839           client library.  Affected file lib/silcclient/client.c.
6840
6841         * Fixed the silc_client_packet_parse to not to increase
6842           the packet sequence number if the conn->sock and the
6843           current socket connection is not same.  This can happen
6844           for example during key agreement when the conn includes
6845           multiple socket connections (listeners).  Affected file
6846           lib/silcclient/client.c.
6847
6848         * The sender of the file transfer request now provides also
6849           the pointer (listener) for the key exchange protocol.  If
6850           the listener cannot be created then it sends empty key
6851           agreement and lets the receiver provide the listener.
6852
6853           Added `local_ip' and `local_port' arguments to the
6854           silc_client_file_send.  If they are provided they are used,
6855           if not then it will attempt to find local IP address, if
6856           not found or bind fails then the remote client will provide
6857           the listener.
6858
6859           Affected files are lib/silcclient/client_ftp.c and
6860           lib/silcclient/silcapi.h.
6861
6862         * Extended the FILE SEND command to support defining the
6863           local IP and port for key exchange listener.  They are
6864           optional.  Affected file irssi/src/silc/core/silc-servers.c.
6865
6866 Thu Nov  1 22:10:07 EST 2001  Pekka Riikonen <priikone@silcnet.org>
6867
6868         * Defined to WHOIS command reply the sending of fingerprint
6869           of the client's public key (if the proof of posession of the
6870           corresponding private key is verified by the server).
6871           Updated to the protocol specification.
6872
6873         * Added support of receiving the client's public key's
6874           fingerprint in command reply in client library.  Affected
6875           file is lib/silcclient/command_reply.c, and
6876           lib/silcclient/idlist.[ch].
6877
6878 Thu Nov  1 18:06:12 EST 2001  Pekka Riikonen <priikone@silcnet.org>
6879
6880         * Do not send over 128 chars long nickname to the server
6881           in NICK command.  Affected file lib/silcclient/command.c.
6882
6883         * Do not send over 256 chars long channel names to the server
6884           in JOIN command.  Affected file lib/silcclient/command.c.
6885
6886 Tue Oct 30 22:48:59 EST 2001  Pekka Riikonen <priikone@silcnet.org>
6887
6888         * Assure that silc_server_close_connection cannot be called
6889           twice for same socket context.  Affected file is
6890           silcd/server.c.
6891
6892 Tue Oct 30 16:58:14 EST 2001  Pekka Riikonen <priikone@silcnet.org>
6893
6894         * Send error message to application if opening file for
6895           writing during file transfer fails.  Affected file is
6896           lib/silcclient/client_ftp.c.
6897
6898           Remove all file transfer sessions for a client that we're
6899           removing from ID cache.
6900
6901           Affected file is lib/silcclient/client_ftp.c.
6902
6903         * Fixed silc_net_addr2bin to return correct address.  Affected
6904           file lib/silcutil/[unix/win32]/silc[unix/win32]net.c.
6905
6906         * Fixed file transfer session removing on signoff notify.
6907           Affected file irssi/src/silc/core/silc-servers.c.
6908
6909         * Added the SilcClientFileError to be returned in the monitor
6910           callback.  Added NO_SUCH_FILE and PERMISSION_DENIED errors.
6911           Affected file lib/silcclient/silcapi.h.
6912
6913 Mon Oct 29 17:43:04 EST 2001  Pekka Riikonen <priikone@silcnet.org>
6914
6915         * Fixed a crash in silc_client_ftp_free_sessions and
6916           silc_client_ftp_session_free_client.  Affected file
6917           lib/silcclient/client_ftp.c.
6918
6919         * Added `disabled' field in the SilcChannelEntry in the server
6920           to indicate if the server entry is disabled.  Affected file
6921           silcd/idlist.h, silcd/command[_reply].c.
6922
6923         * SILC server adds now /var/run/silcd.pid everytime it is
6924           started.  Affected file silcd/silcd.c.
6925
6926         * Added silc_server_packet_send_clients to send a packet to
6927           the provided table of client entries.  Affected file
6928           silcd/packet_send.[ch].
6929
6930         * Fixed a crash in client resolving in client_prvmsg.c in
6931           client library.  Affected file lib/silcclient/client_prvmsg.c.
6932
6933         * Do not actually remove the client directly from ID cache
6934           during SERVER_SIGNOFF, but invalidate it.  This way we
6935           preserve the WHOWAS info for the client.  Affected file
6936           silcd/server_util.c.
6937
6938         * Fixed SERVER_SIGNOFF notify handling in the server.  The
6939           server is now able to process incoming SERVER_SIGNOFF notify
6940           for a server that it doesn't even know about.  It will remove
6941           the clients provided in the notify.  Affected file
6942           silcd/packet_receive.c.
6943
6944         * Check for partial packet in data queue after every packet that
6945           was found from the queue.  Return and wait for more data if
6946           there is partial data in queue.  Affected file is
6947           lib/silccore/silcpacket.c.
6948
6949 Sun Oct 28 18:46:27 EST 2001  Pekka Riikonen <priikone@silcnet.org>
6950
6951         * Added SilcClietFileError enum to indicate error in
6952           file transfer.  Added SILC_CLIENT_FILE_MONITOR_KEY_AGREEMENT
6953           and SILC_CLIENT_FILE_MONITOR_ERROR new monitor statuses.
6954           Affected files lib/silcclient/silcapi.h and
6955           lib/silcclient/client_ftp.c.
6956
6957         * Check that newsize in silc_buffer_realloc is larger than
6958           the old buffer's size.  Affected file lib/silcutil/silcbufutil.h.
6959
6960         * Added better monitor of file transfers.  It now monitors
6961           key agreement protocol during the file transfer too.  Added
6962           error reporting too.  Affected files
6963           irssi/src/silc/core/silc-servers.c,
6964           irssi/src/fe-common/silc/module-formats.[ch].
6965
6966         * Wrote a help file for FILE command.
6967
6968         * Added silc_rng_global_get_byte_fast to get not-so-secure
6969           random data as fast as possible.  Random data is read from
6970           /dev/urandom if available and from the SILC RNG if not
6971           available.  It is used in padding generation.  Affected file
6972           lib/silccrypt/silcrng.[ch].
6973
6974         * All packets in client library are now processed synchronously.
6975           Optimized packet processing a lot.  Affected file
6976           lib/silcclient/client.c.
6977
6978         * All server connection packets are processing synchronously
6979           now in server, to optimize packet processing.  Affected file
6980           silcd/server.c.
6981
6982         * Include files are installed now only in Toolkit distribution
6983           if make install is given.  Affected files: all Makefile.am's.
6984
6985 Thu Oct 25 22:44:06 EDT 2001  Pekka Riikonen <priikone@silcnet.org>
6986
6987         * Assure that silc_client_notify_by_server_resolve does not
6988           resolve the client information multiple times.  If it cannot
6989           be found by the first it cannot be found at all.  Affected
6990           file lib/silcclient/client_notify.c.
6991
6992         * Fixed WHOWAS command reply calling.  Affected file
6993           lib/silcclient/command_reply.c.
6994
6995         * Removed all references to silc_idlist_get_client from the
6996           Irssi SILC client since that call is internal call used by
6997           the library.  The Irssi SILC client will use now client
6998           retrieval functions found in silcapi.h.
6999
7000         * Fixed a bug in resolving nickname info before sending
7001           private message.  It used freed memory.  Affected file
7002           irssi/src/silc/core/silc-servers.c.
7003
7004 Thu Oct 25 19:04:49 EDT 2001  Pekka Riikonen <priikone@silcnet.org>
7005
7006         * Assure my_channels statistics cannot go negative in server.
7007           Affected files silcd/server.c, silcd/server_util.c.
7008
7009 Wed Oct 24 19:53:05 EDT 2001  Pekka Riikonen <priikone@silcnet.org>
7010
7011         * Upgraded dotconf 1.0.2 to 1.0.6 in lib/dotconf.
7012
7013 Tue Oct 23 13:51:19 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
7014
7015         * Win32 Toolkit changes.  Affected files
7016           win32/silc.dsw, win32/libsilc/libsilc.def,
7017           win32/libsilcclient/libsilc.def,
7018           lib/silcutil/silcutil.c, and
7019           lib/sftp/sftp_fs_memory.c.
7020
7021 Mon Oct 22 16:35:05 EDT 2001  Pekka Riikonen <priikone@silcnet.org>
7022
7023         * Added silc_net_localip to return local host's IP address.
7024           Affected file lib/silcutil/silcnet.[ch].
7025
7026         * If key exchange or rekey protocol is active for a connection
7027           parse all packets syncronously since there might be packets
7028           in packet queue that we are not able to process without first
7029           processing packets before them.  Affected file silcd/server,
7030           lib/silcclient/client.c.
7031
7032         * SilcPacketParserCallback now returns TRUE or FALSE to indicate
7033           whether library should continue processing the packet.
7034           Affected file lib/silccore/silcpacket.h.
7035
7036         * Added SilcSFTPMonitor callback, SilcSFTPMonitors and
7037           SilcSFTPMonitorData to SFTP server to monitor various
7038           SFTP client requests.  Affected file lib/silcsftp/silcsftp.h,
7039           lib/silcsftp/sftp_server.c.
7040
7041         * Added silc_file_size to return file size.  Affected file
7042           lib/silcutil/silcutil.[ch].
7043
7044         * Implemented the file transfer support for the client library.
7045           Added preliminary support for simple client to client one-file
7046           transmission.  Affected file lib/silcclient/client_ftp.c,
7047           lib/silccilent/client.[ch].
7048
7049         * Added new local command FILE to the Irssi SILC Client.
7050           It is used to perform the file transfer.  It has subcommands
7051           SEND, RECEIVE, SHOW and CLOSE.  Affected files
7052           irssi/src/silc/core/client_ops.c,
7053           irssi/src/silc/core/silc-server.[ch].
7054
7055 Mon Oct 22 12:50:08 EDT 2001  Pekka Riikonen <priikone@silcnet.org>
7056
7057         * Relay the SILC_PACKET_FTP in the server.  Affected files
7058           silcd/server.c and silcd/packet_receive.c.
7059
7060 Sun Oct 21 20:21:02 EDT 2001  Pekka Riikonen <priikone@silcnet.org>
7061
7062         * Renamed silc_file_read and silc_file_write to functions
7063           silc_file_readfile and silc_file_writefile.  Added function
7064           silc_file_open and silc_file_close.  Affected files
7065           lib/silcutil/silcutil.[ch].
7066
7067 Thu Oct 18 20:58:13 EDT 2001  Pekka Riikonen <priikone@silcnet.org>
7068
7069         * Resolve the client info when received private message or
7070           channel message for a client which nickname we don't know.
7071           Affected files lib/silcclient/client_prvmsg.c and
7072           lib/silcclient/client_channel.c.
7073
7074         * Do not crash in /KEY if client is not connected.  Affected
7075           file irssi/src/silc/core/silc-channels.c.
7076
7077         * Added SilcClientStatus field to the SilcClientEntry in the
7078           lib/silcclient/idlist.h.
7079
7080           Added SILC_CLIENT_STATUS_RESOLVING to mark that the entry
7081           is incomplete and is being resolved, it won't be resolved
7082           twice.
7083
7084           Make sure also that USERS command reply does not resolve
7085           twice information.  Affected file is
7086           lib/silcclient/command_reply.c.
7087
7088           Make sure that silc_client_get_clients_by_list does not
7089           resolve twice same information.
7090
7091         * Check for valid client->id in the silc_server_free_client_data.
7092           Affected file silcd/server.c.
7093
7094         * Fixed /GETKEY nick@server not to crash if the server entry
7095           is not found.  Affected file lib/silcclient/command.c.
7096
7097         * Fixed the silc_server_check_cmode_rights to check the
7098           requested modes correctly.  Affected file silcd/command.c.
7099
7100 Thu Oct 18 12:10:22 CEST 2001  Pekka Riikonen <priikone@silcnet.org>
7101
7102         * Better checks for non-printable chars in nick added.
7103           Affected file silcd/command.c.
7104
7105 Thu Oct 18 09:18:58 EDT 2001  Pekka Riikonen <priikone@silcnet.org>
7106
7107         * Call the silc_server_udpate_servers_by_server in the
7108           primary router that comes back online in the backup resuming
7109           protocol.  Otherwise it routes packets wrong.  Affected file
7110           silcd/server_util.[ch], silcd/server_backup.c.
7111
7112 Wed Oct 17 16:51:18 EDT 2001  Pekka Riikonen <priikone@silcnet.org>
7113
7114         * Added SILC_STR_UI8_[N]STRING[_ALLOC] formats to the
7115           lib/silcutil/silcbuffmt.[ch].
7116
7117         * Redefined the SILC packet header to include the padding
7118           length.  Affected file lib/silccore/silcpacket.[ch].
7119
7120         * Added SILC_PACKET_PADLEN_MAX macro to return the padding
7121           length for maximum padding up to 128 bytes).  Affected
7122           file lib/silccore/silcpacket.h.
7123
7124         * Removed all backwards support for old 0.5.x MAC thingies.
7125           The SILC packet header change makes it impossible to be
7126           backwards compatible.
7127
7128         * Send the ENDING packet with timeout in the backup resuming
7129           protocol.  This is to assure that all routers has connected
7130           to the primary router.  Affected file silcd/server_backup.c.
7131
7132         * Changed the RNG to take the first IV from random data.  It
7133           used to take it from zero actually.  Changed the RNG also
7134           to use /dev/urandom during session.  /dev/random is used
7135           in initialization.  Affected file lib/silccrypt/silcrng.[ch].
7136
7137 Tue Oct 16 20:45:49 EDT 2001  Pekka Riikonen <priikone@silcnet.org>
7138
7139         * Changed the SILC packet header to have the first two bytes
7140           (the packet length) encrypted.  Affected files aroung the
7141           code tree, lib/silccore/silcpacket.[ch].  Removed the
7142           SilcPacketCheckDecrypt callback.  It is not needed anymore
7143           since the silc_packet_receive_process will determine now
7144           whether the packet is normal or special.
7145
7146         * Implemented the unidirectional MAC keys.  Affected files
7147           lib/silcske/silcske.c, silcd/protocol.c and
7148           lib/silcclient/protocol.c.
7149
7150         * Implemented the packet sequence number to the MAC computation.
7151           Affected files lib/silccore/silcpacket.c, silcd/protocol.c,
7152           silcd/packet_send.c, silcd/server.c, lib/silcclient/client.c,
7153           lib/silcclient/protocol.c.
7154
7155 Mon Oct 15 17:42:55 EDT 2001  Pekka Riikonen <priikone@silcnet.org>
7156
7157         * Allow backup router to announce servers.  All servers
7158           announced by backup router are added to the global list
7159           automatically.  Update hte server's socket to our primary
7160           router also when backup router announces a server.
7161           Affected file silcd/packet_receive.c.
7162
7163         * Do not update the client->router in the function
7164           silc_server_udpate_clients_by_server if the client is on
7165           global list.  We might fail to find any specific server
7166           for locally connected clients and local cell clients.  They
7167           should still use the `from' and not `to' as client->router.
7168           This fixes backup router resuming protocol.  Affected file
7169           silcd/server_util.c.
7170
7171         * Decrease channel statistics count only if the channel
7172           deletion worked.  Affected files are silcd/server.c and
7173           silcd/server_util.c.
7174
7175         * Added silc_server_update_servers_by_server to update origin
7176           of all server entries.  Used during backup router protocol.
7177           Affected files silcd/server_util.[ch], silcd/server.c. and
7178           silcd/backup_router.c.
7179
7180         * ROBODoc documented the lib/silccrypt/silchmac.h.  Added new
7181           function silc_hmac_init, silc_hmac_update, silc_hmac_final,
7182           silc_hmac_get_hash and silc_hmac_get_name.  Affected file
7183           lib/silccrypt/silchmac.c.
7184
7185 Sun Oct 14 18:28:22 EDT 2001  Pekka Riikonen <priikone@silcnet.org>
7186
7187         * Assure that router cannot reroute the same channel message
7188           to the sender.  Affected file silcd/packet_receive.c.
7189
7190 Sat Oct 13 12:46:18 EDT 2001  Pekka Riikonen <priikone@silcnet.org>
7191
7192         * Made better checks that the channel message is not sent
7193           to the router it came from.  Affected file is
7194           silcd/packet_send.c.  Fixed memory leak too.
7195
7196         * Announce informations for incoming router connection, but
7197           only after checking if it is replaced by backup router.
7198           Affected file silcd/packet_receive.c.
7199
7200 Fri Oct 12 18:37:24 EDT 2001  Pekka Riikonen <priikone@silcnet.org>
7201
7202         * Fixed the backup resuming protocol to work in multiple
7203           router environment.  Affected file silcd/server_backup.c.
7204
7205         * Route packet only to one router in the function
7206           silc_server_packet_send_to_channel.  Affected file is
7207           silcd/packet_send.c.
7208
7209         * Fixed silc_server_send_notify_dest to set the broadcast
7210           flag.  Fixed the silc_server_send_notify_topic to actually
7211           send the TOPIC_CHANGE notify and not SERVER_SIGNOFF notify.
7212           Affected file silcd/packet_send.c.
7213
7214         * Changed the SFTP Filesystem interface.  Changed the
7215           SilcSFTPFilesystemStruct to SilcSFTPFilesystemOps to include
7216           the filesystem operation function.  The SilcSFTPFilesystem
7217           is now a context that is allocated by all filesystem allocation
7218           functions and it already includes the operations structure
7219           and filesystem specific context.  It is given as argument
7220           now to the silc_sftp_server_start.  This made the interface
7221           a bit cleaner.  Affected file lib/silcsftp/silcsftp[_fs].h,
7222           lib/silcsftp/sftp_fs_memory.c and sftp_server.c.
7223
7224 Thu Oct 11 22:19:26 EDT 2001  Pekka Riikonen <priikone@silcnet.org>
7225
7226         * Changed the backup router adding and getting interfaces
7227           in the server.  The router that will be replaced by the
7228           specified backup router is now sent as argument.  Affected
7229           files silcd/serverconfig.[ch], silcd/backup_router.[ch], and
7230           silcd/server.c.
7231
7232         * Added silc_net_addr2bin_ne to return the binary form of
7233           the IP address in network byte order.  Affected files
7234           lib/silcutil/[unix/win32].silc[unix/win32]net.[ch].
7235
7236 Thu Oct 11 12:14:19 EDT 2001  Pekka Riikonen <priikone@silcnet.org>
7237
7238         * Check for existing server ID in silc_server_new_server
7239           and in silc_server_connect_to_router_final and remove the
7240           old entry if it exists.  Affected file silcd/packet_receive.c,
7241           silcd/server.c.
7242
7243         * Send the channel message always to only one router, either
7244           in upstream or downstream.  Affected file is
7245           silcd/packet_send.c.
7246
7247 Tue Oct  9 17:45:43 EDT 2001  Pekka Riikonen <priikone@silcnet.org>
7248
7249         * Wrote the definition of the backup resuming protocol to the
7250           protocol specification.
7251
7252         * Removed one redundant channel key generation from normal
7253           server during joining procedure.  Removed one redundant
7254           channel key sending from server to router during joining
7255           procedure.  Affected file silcd/command.c.
7256
7257         * Made minor bugfixes to the backup router resuming protocol.
7258           Affected file silcd/server_backup.c, server.c.
7259
7260 Mon Oct  8 16:47:42 EDT 2001  Pekka Riikonen <priikone@silcnet.org>
7261
7262         * Added --disable-asm configuration option.  Affected files
7263           configure.in.pre, lib/silcmath/mpi/configure.in.  A patch
7264           by salo.
7265
7266         * Implemented the backup resuming protocol that is used to
7267           resume the primary router position in the cell after the
7268           primary router comes back online.  Affected files
7269           silcd/server_backup.[ch], silcd/server, silcd/packet_receive.c,
7270           and silcd/server_util.[ch].
7271
7272 Sun Oct  7 12:29:25 EDT 2001  Pekka Riikonen <priikone@silcnet.org>
7273
7274         * Sleep two (2) seconds after sending QUIT command to server.
7275           Affected file lib/silcclient/command.c.
7276
7277         * Assure that if outgoing data buffer is pending do not force
7278           send any data.  Affected file silcd/packet_send.c.
7279
7280         * Assure that if outgoing data buffer is pending do not force
7281           send any data.  Affected file lib/silcclient/client.c.
7282
7283         * Implemented the backup router support when the primary router
7284           goes down.  The servers and routers can now use the backup
7285           router as new primary router without loosing connectivity.
7286
7287 Sat Oct  6 21:18:54 EDT 2001  Pekka Riikonen <priikone@silcnet.org>
7288
7289         * Added new SILC_IDLIST_STATUS_DISABLED flag for entries
7290           in the server to indicate disabled entry.  All data read
7291           from the connection will be ignored and no data is sent
7292           for entry that is disabled.  Affected files are
7293           silcd/idlist.h, silcd/server.c.
7294
7295 Fri Oct  5 00:03:29 EDT 2001  Pekka Riikonen <priikone@silcnet.org>
7296
7297         * Created SFTP client and server test programs in the
7298           lib/silcsftp/tests directory.
7299
7300 Wed Oct  3 23:31:42 EDT 2001  Pekka Riikonen <priikone@silcnet.org>
7301
7302         * Implemented memory filesystem (virtual filesystem) for
7303           SFTP server.  Affected file lib/silcsftp/silcsftp_fs.h,
7304           sftp_fs_memory.c.
7305
7306 Sun Sep 30 22:10:57 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
7307
7308         * Implemented the SFTP (SSH File Transfer Protocol) to the
7309           lib/silcsftp.  It includes SFTP client and SFTP server
7310           implementations.
7311
7312 Sun Sep 30 10:35:44 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
7313
7314         * Moved lib/silccore/silcprotocol.[ch] to the
7315           lib/silcutil library.
7316
7317         * Added silc_buffer_format_vp and silc_buffer_unformat_vp to
7318           take variable argument list pointer as argument.  Affected
7319           file lib/silcutil/silcbuffmt.[ch].
7320
7321         * Added silc_buffer_set function that is used to set data
7322           to a SilcBuffer that is not allocated at all (SilcBufferStruct).
7323           Affected file lib/silcutil/silcbuffer.h.
7324
7325         * Changed various routines in the core library to use the new
7326           silc_buffer_set instead of allocating new buffer only for
7327           temporary purposes.
7328
7329         * Added 64-bit value formatting and unformatting support to the
7330           silc_buffer_[un]format routines.  Affected file is
7331           lib/silcutil/silcbuffmt.[ch].
7332
7333           Added also 64-bit macros: SILC_GET64_MSB and SILC_PUT64_MSB,
7334           to includes/bitmove.h.
7335
7336 Fri Sep 28 21:30:10 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
7337
7338         * Fixed channel user mode saving in client library.  Affected
7339           file lib/silcclient/command[_reply].c.
7340
7341 Thu Sep 27 22:52:30 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
7342
7343         * Defined the file transfer to the SILC Protocol.  Added
7344           new packet type SILC_PACKET_FTP and defined File Transfer
7345           Payload.  The mandatory file transfer protocol is SFTP
7346           (SSH File Transfer Protocol).  Affected file in addition
7347           of the internet draft is lib/silccore/silcpacket.h.
7348
7349         * Deprecated the SILC_PACKET_CELL_ROUTERS and defined new
7350           packet SILC_PACKET_RESUME_ROUTER instead.  The new packet
7351           is used as part of backup router protocol when the primary
7352           router of the cell is back online and wishes to resume
7353           the position as primary router.
7354
7355         * Redefined the MAC generation keys in the protocol.  The
7356           same key is not used anymore in both direction.  Both
7357           direction will now use different keys for sending and
7358           receiving.  This fixes a potential security flaw.  This
7359           change causes incompatibilities in the protocol.
7360
7361         * Redefined also the MAC computation from the packet.
7362           An packet sequence number is now added to the MAC
7363           computation.  This prevents possible replay attacks against
7364           the protocol.  This change too causes incompatibilities
7365           in the protocol.
7366
7367           Added `sequence' field to the SilcPacketContext to hold
7368           the current sequence number for the packet.
7369
7370 Wed Sep 26 20:15:22 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
7371
7372         * Added `created' field to the SilcIDListData in the file
7373           silcd/idlist.h to indicate the time when the entry was
7374           created.
7375
7376         * Added `created' field to the SilcChannelEntry too.  Affected
7377           file silcd/idlist.h.
7378
7379         * Added `creation_time' aguments to all the announcement functions
7380           in the server.  If it is provided then only the entries that
7381           was created after the provided time frame are actually
7382           announced.  Affected file silcd/server.[ch].
7383
7384         * The protocol says that the Channel ID's IP address must be
7385           based on the router's IP address.  Added check for this in
7386           the silc_server_new_channel when processing incoming New Channel
7387           Payload.  Affected file silcd/packet_receive.c.
7388
7389         * Print out the correct version with --version in SILC client.
7390           Affected file irssi/src/silc/core/silc-core.c.
7391
7392 Mon Sep 24 17:19:00 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
7393
7394         * Fixed WHOWAS command to check for completnes of the client
7395           entry always, not just when the command is coming from client.
7396           Affected file silcd/command.c.
7397
7398         * Added new function silc_server_packet_queue_purge to purge the
7399           outgoing data queue to the network.  After the function returns
7400           it is guaranteed that the outgoing packet queue is empty.
7401           Affected file silcd/packet_send.[ch].
7402
7403         * Purge the outgoing packet queue in the rekey protocol's final
7404           callback to assure that all rekey packets go to the network
7405           before quitting the protocol.  Affected file silcd/server.c.
7406
7407         * Added silc_client_packet_queue_parse as similar function as
7408           in server to the client library.  The affected file is
7409           lib/silcclient/client.c.
7410
7411 Sun Sep 23 15:15:53 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
7412
7413         * Splitted silcd/server.c and created silcd/server_util.[ch]
7414           for utility functions.
7415
7416         * Added new socket flag SILC_SF_DISABLED to indicate that the
7417           connection is open but nothing can be sent to or received from
7418           the connection.  Affected file lib/silcutil/silsockconn.[ch].
7419           The checking for disabled socket is checked in the low level
7420           silc_socket_write and silc_socket_read functions.
7421
7422 Thu Sep 20 23:11:28 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
7423
7424         * Allow only nicknames and channel names that fits into the
7425           7-bit unsigned char ASCII set.  Affected file silcd/command.c.
7426
7427 Thu Sep 20 18:04:12 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
7428
7429         * When processing JOIN command reply in server check that if
7430           the channel exists in our global list we'll move it the local
7431           list.  Affected file silcd/command_reply.c.
7432
7433         * Fixed the check whether client is joined on the channel already
7434           in JOIN command.  Affected file lib/silcclient/command.c.
7435
7436         * Fixed the JOIN command reply to check whether the channel
7437           already exists.  Affected file lib/silcclient/command_reply.c.
7438
7439 Wed Sep 19 22:58:32 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
7440
7441         * Added silc_ske_status_string to map the SKE error numbers
7442           to readable strings.  The affected files are
7443           lib/silcske/silcske[_status].[ch].
7444
7445 Tue Sep 18 22:50:41 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
7446
7447         * Do not show the private channels on the WHOIS channel list
7448           as it is not allowed by the protocol.  The affected file is
7449           silcd/server.c.
7450
7451 Sun Sep 16 12:32:58 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
7452
7453         * Assure that the packet length digged from the actual packet
7454           is something sensible in the silc_packet_decrypt_rest_special
7455           in lib/silccrypt/silcpacket.c.
7456
7457         * Free and NULL the allocated pointer in silc_hmac_alloc if
7458           the HMAC allocation fails.  The affected file is
7459           lib/silccrypt/silchmac.c.
7460
7461         * Print the selected security properties to the log files in
7462           the server.  Affected file silcd/protocol.c.
7463
7464         * Add SKE's reference counter even if calling the completion
7465           callback manually.  Otherwise it goes negative, although it
7466           does not cause any problems.  The affected file is
7467           lib/silcske/silcske.c.
7468
7469         * Remove the client entry with short timeout after giving the
7470           KILL command.  Affected file lib/silcclient/command.c.
7471
7472         * Fixed to send error reply in WHOIS and IDENTIFY commands in
7473           case all found clients are already disconnected (WHOWAS would
7474           found them) in the server.  Affected file silcd/command.c.
7475
7476         * Update the last_receive (time of last data received) to be
7477           updated only when received private or channel message so that
7478           the idle time showed in WHOIS makes more sense.
7479
7480         * Added boolean field `valid' in to the SilcClientEntry in the
7481           client library to indicate whether the entry is valid or not.
7482           This fixes the nickname change bug on channel when changing
7483           the nickname to be same than the old (like nick to Nick) the
7484           nickname formatter doesn't set the new nick anymore to Nick@host.
7485           Affected file lib/silcclient/idlist.[ch].
7486
7487         * Now actually fixed the nickname changing on disconnection.
7488           Added new function silc_change_nick to the Irssi SILC Client.
7489           Affected file irssi/src/silc/core/client_ops.c,
7490           irssi/src/silc/core/silc-nicklist.[ch].
7491
7492 Sat Sep 15 13:29:17 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
7493
7494         * Check that the public key exists in the GETKEY command before
7495           trying to encode it.  Affected file silcd/command.c.
7496
7497         * Print some notifications on received public keys with GETKEY
7498           command in the Irssi SILC Client.  Affected files are
7499           irssi/src/fe-common/silc/module-formats.[ch],
7500           irssi/src/silc/core/client_ops.c.
7501
7502         * Use IDENTIFY command to resolve the server information in the
7503           GETKEY command instead of INFO command.  Affected file
7504           lib/silcclient/command.c.
7505
7506         * All command reply functions in the client library now calls
7507           the pending command reply callbacks even if an error has
7508           occurred.  The server has done this a long time and now it was
7509           time to move the client library to this as well.  Now all
7510           errors can be delivered back to the pending command reply
7511           callbacks if necessary.  Affected files are
7512           lib/silcclient/command[_reply].[ch].
7513
7514         * Change the nickname on disconnection back to the username
7515           because in reconnect the server will enforce it to it anyway.
7516           Affected file irssi/src/silc/core/silc-servers.c.
7517
7518         * Fixed a config file parsing bug in the Irssi SILC client.
7519           Affected file irssi/src/silc/core/clientconfig.c.
7520
7521 Thu Sep 13 23:11:18 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
7522
7523         * When printing the channel mode on JOIN, verify that the
7524           channel key and channel's HMAC are valid.  Affected file
7525           irssi/src/silc/core/client_ops.c.
7526
7527 Thu Sep 13 20:24:52 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
7528
7529         * Added defines SILC_DEFAULT_CIPHER, SILC_DEFAULT_HMAC,
7530           SILC_DEFAULT_HASH and SILC_DEFAULT_PKCS in the file
7531           lib/silccrypt/[silccipher.h|silchmac.h|silchash.h|silcpkcs.h].
7532
7533         * Removed channel key rekey task deleting from the function
7534           silc_server_save_channel_key.  Affected file silcd/server.c.
7535           Added explicit timeout task context instead that is used to
7536           delete the task if we are registering a new task before the
7537           new task has elapsed.
7538
7539         * When channel key rekey occurs the client library now saves
7540           the old channel key for a short period of time (10 seconds) and
7541           is able to use it in case some is still sending channel
7542           messages encrypted with the old key after the rekey.  Affected
7543           file lib/silcclient/[idlist.h|client_channel.c].
7544
7545 Sun Sep  9 15:49:16 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
7546
7547         * Added check to the silc_server_new_id_real to not accept
7548           new ID if it is the sender's own ID.  Affected file is
7549           silcd/packet_receive.c.
7550
7551         * Assure that we do not announce ourself or the one we've
7552           sending our announcements when we're router and are announcing
7553           servers to our primary router.  Affected file silcd/server.c.
7554
7555         * Fixed silc_server_command_identify_check_client to assemble
7556           correct WHOIS packet.  It send corrupted WHOIS packet and
7557           caused problem with router to router connections.  Affected
7558           file silcd/command.c.
7559
7560           Fixed also silc_server_command_whois_check the same way
7561           as for the IDENTIFY command.
7562
7563         * Added new SilcIDListStatus to the server in the SilcIDListData
7564           structure.   The status now includes the current status of
7565           the entry (like registered, resolved etc.).  Affected file
7566           silcd/idlist.[ch].  Defined a bunch of different status types
7567           as well.  This replaced the old boolean registered field as well.
7568
7569           Added resolve_cmd_ident field to the SilcClientEntry structure
7570           too so that if the entry is for example being resolved so
7571           another command may attach to the same pending command reply
7572           without requiring to resolve the same entry again.  This concept
7573           should optimize the WHOIS and the IDENTIFY resolving under
7574           heavy load by taking away unnecessary resolving for entries
7575           that are being resolved already.
7576
7577           Added support for adding multiple pending commands for one
7578           command idenfier.  Affected file silcd/command[_reply].[ch].
7579
7580         * Fixed WHOIS and IDENTIFY save to remove the cache entry
7581           before deleting the data.  Otherwise the hash table will have
7582           freed data in comparison functions.  Affected file is
7583           silcd/command_reply.c.
7584
7585         * Fixed silc_idlist_replace_client_id to add the new entry to
7586           the cache with NULL nickname.  Otherwise there will be invalid
7587           memory as the nickname after the nickname is freed.  Affected
7588           file silcd/packet_receive.c.
7589
7590         * Fixed the silc_idlist_get_clients_by_hash.  The entries was
7591           saved into wrong slots because the previous number of entries
7592           was not taken into account.  Affected file silcd/idlist.c.
7593           Fixed same thing in silc_idlist_get_clients_by_nickname too.
7594
7595         * If we are router and we receive JOIN notify to a channel that
7596           does not have any users then notified client is marked as the
7597           channel founder, as it is it.  The affected file is
7598           silcd/packet_receive.c
7599
7600         * Added to the extended hash table API's table_del_*ext functions
7601           the destructor as argument too, so that the caller can decide
7602           which destructor to use or whether to use destructor at all.
7603           Affected file lib/silcutil/silchashtable.[ch].
7604
7605         * Fixed ID Cache purging.  It actually deleted the entries from
7606           the hash table after the data was freed.  The hash table ended
7607           up comparing freed memory.  The affected file is
7608           lib/silccore/silcidcache.c.
7609
7610 Sat Sep  8 10:22:10 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
7611
7612         * Fixed Irssi SILC client's KILL command's HELP syntax.
7613
7614         * The USERS command now resolves the detailed user information
7615           if the userinfo field is missing.  Affected file is
7616           lib/silcclient/command_reply.c.
7617
7618         * Do not print error in silc_file_read if the read file does
7619           not exist.  Just silently return NULL.  Affected file is
7620           lib/silcutil/silcutil.c.
7621
7622         * Fixed the silc_log_output to not wine about NULL filename
7623           and to not create some bogus " " filename.  Affected file is
7624           lib/silcutil/silclog.c.
7625
7626 Fri Sep  7 22:16:38 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
7627
7628         * Fixed various printing bugs on the user interface in the
7629           Irssi SILC Client.  Minor changes that were forgotten from
7630           the release.
7631
7632 Fri Sep  7 17:28:37 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
7633
7634         * Fixed the configure.in.pre and the compilation and distribution
7635           environment to support the new autoconf 2.52.  That version is
7636           now required to compile the CVS trunk.
7637
7638 Thu Sep  6 12:47:37 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
7639
7640         * Renamed function silc_parse_nickname to silc_parse_userfqdn
7641           to generally parse user@fqdn format strings.  Affected file
7642           lib/silcutil/silcutil.c.
7643
7644         * Added nickname_format and nickname_force_format fields to the
7645           SilcClientParams structure.  The first one defines the format
7646           for the nicknames that the library will enforce if the receives
7647           multiple same nicknames.  The second one is boolean value and
7648           can be used to force the library to always enforce the format
7649           to the nicknames regardles whether there are multiple nicknames
7650           or not.  This configurable formatting was employed to flexibly
7651           support accessing multiple nicknames from the user interface.
7652           The userinterface can now set the nicknames to what ever format
7653           they prefer.  Affected file lib/silcclient/silcapi.h.
7654
7655           Added function silc_client_nickname_format to the file
7656           lib/silcclient/idlist.c.  It performs the nickname formatting.
7657
7658           Added new field `hostname´ to the SilcClientEntry context.
7659           It holds the hostname of the client.  Affected file is
7660           lib/silcclient/idlist.h.
7661
7662         * Irssi SILC Client sets the nicknames in nick@hostn format.
7663           Fe. priikone@otaku, priikone@otaku2 etc.  Affected file
7664           irssi/src/silc/core/silc-core.c.
7665
7666           The WHOIS printing now also shows both the real nickname and
7667           the formatted nickname so that user knows how to access the
7668           user if there are multiple same nicknames cached.  Affected
7669           file irssi/src/silc/core/client_ops.c.  Changed the WHOIS
7670           printing formatting too to take the hostname now as a separate
7671           argument.  The Affected file is
7672           irssi/src/fe-common/silc/modules-formats.[ch].
7673
7674         * Changed the silc_client_get_clients_local to accept the formatted
7675           nickname as argument.  It accepts the real nickname too but the
7676           formatted nickname can be used to find the true entry from
7677           multiple entries.  Affected file lib/silcclient/silcapi.h and
7678           lib/silcclient/idlist.c.
7679
7680         * Added nickname_format_parse field to the SilcClientParams.
7681           It is a callback function provided by the application to parse
7682           the nickname out of the formatted nickname string. The library
7683           calls it to get the nickname from the formatted string. Since
7684           the application generally knows better the format of the nickname
7685           string it parses it instead of the library, even though library
7686           encodes the formatted string.  If the callback function is not
7687           provided then the library will use the string as is.  The
7688           affected file is lib/silcclient/silcapi.h.
7689
7690         * All the nickname strings passed to the client library in
7691           commands are now expected to be formatted nickname strings.
7692           If the command does not support the formatted nickname string
7693           it will assume that the sent string is the actual nickname.
7694           Affected file lib/silcclient/command.c.
7695
7696 Tue Sep  4 22:31:28 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
7697
7698         * Added public key authentication support to OPER and SILCOPER
7699           commands in the client library.  Affected file is
7700           lib/silcclient/command.c.
7701
7702 Tue Sep  4 12:39:17 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
7703
7704         * Changed the get_auth_methdod client operation to be asynchronous.
7705           It can be async if the application resolves the authentication
7706           method from the server during the negotiation.  Added new
7707           SilcGetAuthMeth completion callback that the application will
7708           call after resolving the authentication method.
7709
7710           Added function silc_client_request_authentication_method that
7711           the application can use to resolve the authentication method
7712           from the server.  Added also SilcConnectionAuthRequest callback
7713           that the library will call after the server has replied.  The
7714           application can call this function if it does not know the
7715           current authentication method.
7716
7717           Affected files are lib/silcclient/client.c and
7718           lib/silcclient/silcapi.h.
7719
7720         * The Irssi SILC client now automatically resolves the authentication
7721           method incase any configuration information is not present (and
7722           currently there never is).  The affected file is
7723           irssi/src/silc/core/client_ops.c.
7724
7725         * Fixed public key authentication from the client library.
7726           Affected file lib/silcclient/protocol.c.  Changed also the
7727           protocol specification about the public key authentication in
7728           the connection authentication protocol.  The actual data to be
7729           signed is now computed with a hash function before signing.
7730
7731         * Fixed the public key authentication from the server as well.
7732           Affected file silcd/protocol.c.
7733
7734         * Removed the mlock()'s from the memory allocation routines.
7735           Affected file lib/silcutil/silcmemory.c.  The ./configure does
7736           not check anymore for the mlock().  Affected file is
7737           configure.in.pre.
7738
7739         * Fixed USERS command in server to allow the execution of the
7740           command for private and secret channels if the client sending
7741           the command is on the channel.  Affected file silcd/command.c.
7742
7743         * Fixed silc_client_get_clients_local to return the clients
7744           count correctly.  It could return wrong value.  Affected file
7745           lib/silcclient/idlist.c.
7746
7747 Mon Sep  3 20:09:59 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
7748
7749         * Fixed the lib/silcmath/mpi/mpi.h to always use 32-bit data
7750           types.  The assembler optimizations seemed not to like 64-bit
7751           data types.  The assmebler optimizations thus are now enabled
7752           also for BSD systems as opposed to only enable them for Linux.
7753
7754         * Do not check for threads at all on BSD systems.  Affected
7755           file configure.in.pre.
7756
7757         * Removed -n and -h options from the Irssi SILC Client since
7758           they are not used in silc.
7759
7760         * Fixed the prime generation to assure that the first digit
7761           of the generated random number is not zero since our conversion
7762           routines does not like number strings that starts with zero
7763           digit.  If zero digit is seen the random number is regenerated.
7764           This caused some corrupted RSA keys when the zero first digit
7765           was met.  Affected file lib/silcmath/silcprimegen.c.
7766
7767 Sun Sep  2 17:17:24 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
7768
7769         * Fixed WIN32 configuration in the ./configure script.
7770           Fixed to include xti.h on environments that has it.
7771           Patches by Carsten Ilchmann and andrew.
7772
7773 Sat Sep  1 00:29:33 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
7774
7775         * Changed the silc_id_create_client_id to be collision
7776           resistant.  It is now assured that there cannot be created
7777           two same client ID's.  I suspect that some weird bugs in
7778           the server were actually caused by duplicate Client IDs.
7779           Affected file silcd/serverid.[ch].  A router receiving
7780           new ID now also assures and informs the sending server
7781           if the ID caused collision.
7782
7783         * Changed the silc_id_create_channel_id to also assure that
7784           there are no collisions.
7785
7786 Wed Aug 29 17:55:01 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
7787
7788         * Statement about ignoring the Mutual Authentication flag when
7789           performing rekey with PFS was a bit misleading.  It is ignored
7790           if it was set in the initial negotiation, it cannot be even
7791           set in the rekey.  Fixed in the ke-auth draft.  Started the
7792           new versions of the protocol drafts in the doc/.
7793
7794 Sun Aug 26 14:59:15 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
7795
7796         * Fixed a bug in silc_client_command_identify_save when saving
7797           new channel information.  The channel name was no duplicated
7798           and caused crash on exit.  Affected file is
7799           lib/silcclient/command_reply.c.
7800
7801 Fri Aug 17 23:07:45 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
7802
7803         * Fixed the getkey command handling in the server.  Send just
7804           empty OK reply to the sender if the key could not be fetched
7805           (but everything else was ok, like the key just was not available).
7806           Changed the public key parameter to optional in the protocol
7807           specs so that empty OK reply can be sent.  Affected file
7808           silcd/command.c.
7809
7810           Added a message to Irssi SILC client to tell to user if the
7811           server did not return a public key.
7812
7813 Tue Aug 14 07:29:27 CEST 2001  Pekka Riikonen <priikone@silcnet.org>
7814
7815         * Fixed a channel key regeneration bug.  It registered new
7816           timeout tasks exponentially until all system resources were
7817           used.  Affected file silcd/server.c.
7818
7819 Sun Aug 12 20:48:14 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
7820
7821         * Added the SILC Document generator to the scripts/silcdoc.
7822           It can be used to generate the Toolkit Reference Manual out
7823           of the source tree.  Internally it will also use the RoboDoc
7824           generator now imported in util/robodoc.
7825
7826 Sun Aug 12 12:28:17 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
7827
7828         * Added couple of return's in rekey protocol if error orccurred
7829           during the protocol.  The execution must be terminated.
7830           Affected file silcd/protocol.c.  Also, terminate the protocol
7831           always with timeout.
7832
7833 Sat Aug 11 12:36:02 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
7834
7835         * The client's Client ID was created initally from the wrong
7836           nickname (it could have been in format nick@host) in the
7837           silc_server_new_client.  Affected file silcd/packet_receive.c
7838
7839 Sat Aug 11 00:29:57 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
7840
7841         * Added some SILC_LOG_ERROR's to various error conditions
7842           if client could not be added to ID cache.  Affected files
7843           silcd/packet_receive.c and silcd/server.c.
7844
7845         * When client's sock->user_data is freed, NULL also the
7846           client->router and client->connection pointers.  Added check
7847           for these pointers being NULL to various places around the
7848           code.  Affected file silcd/server.c.
7849
7850         * Added client->data.registered == TRUE checks to various
7851           places around the code to assure that unregistered client's
7852           are not handled when it is not allowed.  Affected file
7853           silcd/server.c.
7854
7855         * Added `bool registered' fields to all
7856           silc_idlist_[server|client]_get_* routines to indicate whether
7857           the fetched client needs to be registered or not.  Affected
7858           file silcd/idlist.[ch].
7859
7860         * Add your own entry as registered to the ID cache in the
7861           server.  Affected file server.c.
7862
7863         * Fixed a bug in silc_server_new_server.  The SilcServer was
7864           set as the new server's context instead of SilcServerEntry.
7865           This naturally caused some weird bugs.
7866
7867         * Added "updated" field the SilcChannelEntry which indicates
7868           the time since the channel entry was last accessed.  This
7869           can be used to determine whether it is necessary to
7870           announce the channel after backup resuming protocol.
7871           Affected files silcd/idlist.[ch].
7872
7873 Thu Aug  9 18:28:37 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
7874
7875         * Do not delete the channel rekey task when adding it
7876           for in silc_server_create_channel_key.
7877
7878         * Changed the silc_server_create_channel_key to return
7879           TRUE or FALSE to indicate the success of the channel key
7880           creation.
7881
7882 Thu Jul 26 11:32:31 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
7883
7884         * Fixed MSVC++ project files and added missing files to
7885           Makefiles under win32/.
7886
7887 Wed Jul 25 18:43:54 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
7888
7889         * Do not add TCP_NODELAY flag if the operating system
7890           does not have it defined.  Affected files are
7891           lib/silcutil/[unix/win32]/silc[unix/win32]net.c.
7892
7893         * Fixed buffer overflow from Irssi SILC Client.  Affected
7894           file irssi/src/fe-common/core/themes.c.
7895
7896         * Fixed double free in client library in the file
7897           lib/silcclient/client.c when disconnecting from server.
7898
7899         * Applied double free patch from cras to Irssi SILC client.
7900           Affected files irssi/src/core/[modules/expandos].c
7901
7902         * Fixed the disconnection handling to Irssi SILC Client.
7903           The application must call silc_client_close_connection
7904           in ops->connect client operation in case of failure of
7905           the connection.  Affected file is
7906           irssi/src/silc/core/client_ops.c.
7907
7908         * Do not set sock->protocol to NULL in the function
7909           silc_client_close_connection after executing the protocol's
7910           final callback since the sock might not be valid anymore.
7911           Affected file lib/silcclient/client.c.
7912
7913 Wed Jul 25 16:04:35 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
7914
7915         * Do not enable SILC_THREADS if the linking with libpthread
7916           did not happen.  Affected file configure.in.pre.
7917
7918         * Added notion to protocol specification that server must
7919           verify the sent authentication payload with CMODE when
7920           setting the channel founder key.  Implemented it to the
7921           server.  Affected file silcd/command.c.
7922
7923 Mon Jul 23 18:31:43 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
7924
7925         * Added _EXTRA_DIST SILC distribution variable to the
7926           distributions file.  It is used to conditionally add extra
7927           files or directories to the specific distribution.  Affected
7928           files ./prepare, Makefile.am.pre and distributions.
7929
7930           Removed the `_' from the start of the distribution names.
7931           It is redundant.
7932
7933         * Added README.WIN32 for instructions to compile the Toolkit
7934           under WIN32.
7935
7936 Mon Jul 23 10:12:37 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
7937
7938         * Fixed a double free in disconnection in the server.  Affected
7939           file is silcd/server.c.
7940
7941         * Fixed the lib/silcske/groups.c to work now also with GMP
7942           MP library.  The string conversion did not work when using
7943           specific base and the base is indicated in the string as well.
7944
7945         * Created win32/ directory which now includes MSVC++ specific
7946           stuff so that toolkit (DLLs) may be compiled with MSVC++.
7947           It will appear only in the toolkit distribution
7948
7949 Sun Jul 22 19:40:30 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
7950
7951         * Changed the key material distribution function in case when
7952           the hash output is too short.  The data is now concatenated
7953           a bit differently than it used to.  Made the change to the
7954           SKE protocol specification.
7955
7956         * Added better GMP detection to configure.in.pre.  A patch
7957           by salo.
7958
7959 Fri Jul 20 13:16:00 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
7960
7961         * Fixed a minor bug in SKE that might cause some problem on
7962           some platforms.  Affected file lib/silcske/silcske.c.
7963
7964         * Added the cookie checking for initiator in the SKE.  It checks
7965           that the responder returns the sent cookie unmodified.  The
7966           affected file is lib/silcske/silcske.c.  Added new SKE
7967           error type INVALID_COOKIE that can be sent during the
7968           negotiation.  Fixed some memory leaks as well.
7969
7970         * Added the "invalid cookie" error message to Irssi SILC client's
7971           message formats.
7972
7973 Thu Jul 19 21:44:31 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
7974
7975         * Added `task_max' field to the SilcClientParams to indicate
7976           the maximum tasks the scheduler can handle.  If set to zero,
7977           default values are used.  Affected file lib/silcclient/silcapi.h.
7978
7979         * Fixed memory leaks in silc_client_close_connection.  Affected
7980           file lib/silcclient/client.c.
7981
7982         * Added silc_client_del_client_entry to client library to free
7983           all memory of given client entry.  Affected file is
7984           lib/silcclient/idlist.[ch].
7985
7986         * Added new functions silc_client_del_channel and
7987           silc_client_del_server to delete channel and server entries.
7988           Affected file lib/silcclient/[silcapi.h/idlist.c].
7989
7990         * Removed silc_client_del_client_by_id from silcapi.h.
7991
7992         * Fixed the INFO command to return the server's own info
7993           correctly when querying by Server ID.  Affected file is
7994           silcd/command.c.
7995
7996 Thu Jul 19 14:47:30 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
7997
7998         * Removed the non-blocking settings in WIN32 code in the
7999           silc_sock_[read/write] and added SleepEx instead.  Affected
8000           file lib/silcutil/win32/silcwin32sockconn.c.  The availability
8001           of input data is now checked with FIONREAD and ioctlsocket.
8002
8003 Wed Jul 18 18:34:01 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
8004
8005         * Call silc_schedule_task_del_by_context in the
8006           silc_protocol_cancel instead of silc_schedule_task_del_by_callback.
8007           Affected file lib/silccore/silcprotocol.c.
8008
8009         * Call silc_protocol_cancel for active protocols in the
8010           silc_server_close_connection if the funtion
8011           silc_server_free_sock_user_data has not been called.
8012           Affected file silcd/server.c.
8013
8014         * Generic tasks cannot be deleted using the del_by_fd
8015           task deleting function since generic tasks does not match
8016           any specific fd.  Affected file lib/silcutil/silcschedule.[ch].
8017
8018         * Added a notion to SILCOPER help file that the SILCOPER works
8019           only on router server, not on normal server.
8020
8021 Wed Jul 18 09:40:04 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
8022
8023         * Added for WIN32 support for the new scheduler as well.
8024           Affected file lib/silcutil/win32/silcwin32schedule.c.
8025
8026         * Fixed the SHA1 implementation to work on various platforms.
8027
8028 Tue Jul 17 23:04:10 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
8029
8030         * Rewrote the SILC Scheduler entirely.  Removed the old SILC Task
8031           API.  It is part of the scheduler now.  Everything else is
8032           as previously but some functions has changed their names.
8033           Checkout the lib/silcutil/silcschedule.h for the interface.
8034           Updated all applications to use the new interface.  Affected
8035           files are lib/silcutil/silcschedule.[ch].
8036
8037 Tue Jul 17 16:53:30 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
8038
8039         * Found a bug in the SKE implementation.  The HASH value,
8040           specified by the protocol, was not computed correctly.  The
8041           public key of the responder was not added to the computation
8042           even though it is mandatory.  Affected file lib/silcske/silcske.c.
8043           This unfortunately causes incompatibilities with older
8044           clients and servers.
8045
8046         * Added WIN32 specific network init and uninit functions:
8047           silc_net_win32_init and silc_net_win32_uninit to init and uninit
8048           the Winsock2.  Affected file lib/silcutil/silcnet.h and
8049           lib/silcutil/win32/silcwin32net.c.
8050
8051         * Set the socket always to nonblocking mode on WIN32 after
8052           reading data or writing data.  Affected file is
8053           lib/silcutil/win32/silcwin32sockconn.c.
8054
8055 Mon Jul 16 22:55:26 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
8056
8057         * Fixed various compilation problems under WIN32.  Affected
8058           files lib/silcutil/win32/silcwin32thread.c and
8059           lib/silcutil/win32/silcwin32schedule.c.
8060
8061         * Removed all _internal.h #includes from public header
8062           files.  Internal headers must never be included from
8063           public headers.
8064
8065           Removed also the lib/silcske/payload_internal.h file.
8066
8067         * All include files that may be needed (public and some others
8068           included by the public headers) by application developers are
8069           now copied to the ./includes directory.  It does not copy any
8070           internal headers.  Affected file Makefile.defines.pre and all
8071           Makefile.am's under lib/ and subdirs.
8072
8073 Thu Jul 12 17:49:31 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
8074
8075         * Do not change the ~/.silc directory's permissions automatically.
8076           Affected file irssi/src/silc/core/clientutil.c.
8077
8078 Thu Jul 12 10:18:40 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
8079
8080         * Do not cancel the protocol in silc_server_close_connection
8081           it might cause recursion.  Now cancelled in the function
8082           silc_server_free_sock_user_data.  Affected file silcd/server.c.
8083
8084         * Fixed the silc_server_remove_clients_by_server to regenerate
8085           the channel keys correctly finally.  Added also new function
8086           silc_server_remove_clients_channels to actually do it.
8087           Affected file silcd/server.c.
8088
8089         * Fixed the silc_server_new_channel to not crash by giving
8090           wrong router to the new channel.  Affected file is
8091           silcd/packet_receive.c.
8092
8093 Wed Jul 11 18:31:57 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
8094
8095         * Added SilcClientParams structure to the lib/silcclient/silcapi.h
8096           which is given as argument to the silc_client_alloc now.
8097           It can be used to configure the client and set various parameters
8098           that affect the function of the client.
8099
8100         * The USERS command in server did not check whether the channel
8101           is private or secret.  Affected file silcd/command.c.
8102
8103         * Added new argument to the USERS command in protocol specification.
8104           The USERS command now can take the channel name as argument
8105           as well.  Added support for this in client and server and
8106           updated the protocol specs.
8107
8108         * Completed the GETKEY command in client. It can be now used
8109           to fetch also servers public key not only some clients.
8110           Affected files lib/silcclient/command[_reply].c.
8111
8112         * Added silc_client_get_server to return server entry by the
8113           server name.  Affected files lib/silcclient/silcapi.h and
8114           idlist.c.
8115
8116         * Redefined the IDENTIFY command in protocol specification to be
8117           more generic.  It now can be used to query information about
8118           any entity in the SILC Network, including clients, servers and
8119           channels.  The query may be based either the entity's name
8120           or the ID.  Added support for this in both client and server.
8121
8122           Affected files silcd/command.c and lib/silcclient/command.c
8123           and command_reply.c.
8124
8125         * Optimized the WHOIS and WHOWAS commands in the server. Removed
8126           the _from_client and _from_server functions.  Affected file
8127           silcd/command.c.
8128
8129         * Added silc_client_get_channel_by_id_resolve to the file
8130           lib/silcclient/silcapi.h to resolve channel information by
8131           its ID.  Added also silc_client_get_channel_by_id that
8132           does not resolve it from the server.
8133
8134 Tue Jul 10 18:05:38 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
8135
8136         * Added SilcServerEntry context into the client library
8137           to represent one server.  The INFO command now allocates
8138           these to save the resolved server info.  For now on the
8139           client library will also keep information about servers,
8140           connected and resolved with INFO.
8141
8142           The INFO command now allocates the SilcServerEntry context
8143           and saves the server info there.  The COMMAND_REPLY in
8144           the INFO now returns the parameters to application in
8145           same order as defined in the protocol specification.
8146
8147           The entries are cached in the client->server_cache.
8148
8149         * The INFO command is now issued after received the Client ID
8150           from the server.  Affected file lib/silcclient/client.c.
8151
8152         * The CMODE_CHANGE notify may now return also an SilcServerEntry
8153           to the application as the mode changer might be server.
8154           It is guaranteed that NULL is not returned anymore to the
8155           application.  Affected file lib/silcclient/client_notify.c.
8156
8157           The ID Type is now also passed to the application so that
8158           it can check whether the returned entry is SilcClientEntry
8159           or SilcServerEntry.
8160
8161           Added new function silc_client_get_server_by_id to return
8162           the server entry by ID.  Affected files are the
8163           lib/silcclient/silcapi.h and lib/silcclient/idlist.c.
8164
8165         * Do not create the channel in the Irssi SILC Client when issuing
8166           the JOIN command but when received the sucessful JOIN command
8167           reply.  Otherwise the channel might get created even though we
8168           could not join it.  The Affected file is
8169           irssi/src/silc/core/[silc-channels.c/client_ops.c].
8170
8171         * Fixed a channel joining bug in router.  The router must also
8172           check the channel modes, invite and ban lists etc. when serving
8173           the JOIN command sent by normal server.  Affected file is
8174           silcd/command.c.  The router now resolves the client's
8175           information from the server who sent the JOIN command if it
8176           does not know it, and processes the JOIN command only after
8177           that.
8178
8179         * Changed the SilcCommandCb to take new argument; void *context2.
8180           Affected file lib/silccore/silccommand.h
8181
8182           The second argument in the command callbacks in the server now
8183           includes the SilcServerCommandReplyContext if the command was
8184           called as pending command callback from the command reply.
8185           Otherwise it is NULL. When called as pending the status of the
8186           command reply will be checked and if it was erronous the
8187           error will be sent to the original sender of the command.
8188           This way the client always receives the error messages even
8189           though the server was actually the one who received the error
8190           when it resent the command to router, for example.  Affected
8191           files silcd/command[_reply].[ch].
8192
8193         * Fixed sending WHOWAS command's error message to client if
8194           the requested client could not be found.  It was missing.
8195           silcd/command.c.
8196
8197         * Changed the CMODE and CUMODE commands reply arguments in the
8198           protocol specification.  The Channel ID is now sent in both
8199           of the commands to identify the channel.  Implemented this
8200           new feature to the client and server.  Affected files
8201           lib/silcclient/command_reply.c and silcd/command.c.
8202
8203         * Made better checks for invite and ban lists in the JOIN
8204           command in server.  Affected file silcd/command.c.
8205
8206 Mon Jul  9 18:28:34 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
8207
8208         * The server now performs the incoming host IP/DNS lookup
8209           using the silc_socket_host_lookup and thus does not block
8210           the server anymore.  Affected file silcd/server.c.
8211
8212         * Completed the multi-thread support for SILC Scheduler in
8213           the lib/silcutil/silcschedule.c.
8214
8215         * Fixed the configure.in.pre to detect the pthread correctly
8216           on various systems.
8217
8218         * Fixed a deadlock in silc_task_queue_wakeup in the file
8219           lib/silcutil/silctask.c.
8220
8221 Mon Jul  9 13:40:03 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
8222
8223         * Added new function silc_schedule_wakeup that is used in
8224           multi-threaded environment to wakeup the main thread's
8225           schduler. It needs to be used when a thread adds a new task
8226           or removes a task from task queues. After waking up, the
8227           scheduler will detect the task queue changes. If threads
8228           support is not compiled in this function has no effect.
8229           Implemented the wakeup mechanism to both Unix and WIN32
8230           systems.  Affected files are lib/silcutil/silcschedule.[ch],
8231           lib/silcutil/unix/silcunixschedule.c and the
8232           lib/silcutil/win32/silcwin32schedule.c.
8233
8234         * Added new function silc_task_queue_wakeup to wakeup the
8235           scheduler by the specified task queue.  Affected file
8236           lib/silcutil/silctask.[ch].
8237
8238         * The silc_socket_host_lookup_start now wakes up the scheduler
8239           after adding the timeout task.  Affected file is
8240           lib/silcutil/silcsockconn.c.
8241
8242         * The silc_socket_host_lookup is synchronous now if the threads
8243           support is not compiled in.  However, the callback is still
8244           called asyncronously through the scheduler, anyway.  Affected
8245           file lib/silcutil/silcsockconn.c.
8246
8247 Mon Jul  9 00:24:45 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
8248
8249         * Added new function silc_socket_host_lookup to perform
8250           asynchronous IP and FQDN lookups for the socket connection.
8251           Affected files lib/silcutil/silcsockconn.[ch].
8252
8253 Sun Jul  8 18:44:53 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
8254
8255         * Added SILC_MUTEX_DEFINE to define the mutex on environments
8256           that may or may not compile the mutex support in.
8257
8258           Changed the silc_mutex_alloc interface. It allocates the
8259           mutex now to the sent pointer and returns TRUE or FALSE.
8260
8261           Affected file lib/silcutil/silcmutex.h.
8262
8263         * Wrote the SILC Task Queue interface to support multi-threads.
8264           Affected file lib/silcutil/silctask.[ch].
8265
8266         * Wrote the SILC Scheduler to support multi-threads.  Affected
8267           file lib/silcutil/silcschedule.c.
8268
8269 Sun Jul  8 11:16:01 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
8270
8271         * Implemented the SILC Mutex API and SILC Thread API for WIN32
8272           in lib/silcutil/win32/.
8273
8274 Sun Jul  8 00:18:15 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
8275
8276         * Defined SILC Mutex API and SILC Thread API and implemented
8277           them for Unix.  Affected files are
8278           lib/silcutil/silcmutex.h, lib/silcutil/silcthread.h,
8279           lib/silcutil/unix/silcunixmutex.c and
8280           lib/silcutil/unix/silcunixthread.c.
8281
8282 Sat Jul  7 14:40:31 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
8283
8284         * Fixed the silc_server_remove_clients_by_server's channel
8285           key re-generation.  The hash table handling was incorrect
8286           and would not work with many channels.  Affected file is
8287           silcd/server.c.
8288
8289         * Fixed some memory leaks around the server code.
8290
8291         * Rewrote the silc_server_get_users_on_channel to support IPv6
8292           based Client ID's.  Affected file silcd/server.c.
8293
8294         * Defined the SILC_MESSAGE_FLAG_SIGNED to the protocol
8295           specification.  However, a separate document must be written
8296           to define the detailed signing procedure and the payload
8297           associated with the flag.  Defined the flag to the
8298           lib/silccore/silcchannel.h as well.
8299
8300 Fri Jul  6 18:26:31 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
8301
8302         * Changed the dynamic tables to static size tables in the
8303           lib/silccrypt/silchmac.c.
8304
8305         * Removed GCC dependencies from the code.  A patch by cras.
8306
8307 Fri Jul  6 09:39:35 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
8308
8309         * Do not show the error "Error receiving packet bla bla"
8310           in server if it really was not an error (-2 means that reading
8311           is pending).  Affected file silcd/server.c.
8312
8313 Thu Jul  5 21:22:32 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
8314
8315         * Fixed a possible crash in silc_server_remove_clients_by_server
8316           in silcd/server.c.  Fixed there also some memory leaks.
8317
8318         * Fixed the silc_idlist_replace_client_id.  It could replace
8319           wrong key in the hash table.  Affected file silcd/idlist.c.
8320
8321         * Do not check whether there are global users on the channel
8322           if the channel->global_users is FALSE.  Affected functions
8323           silc_server_remove_from_one_channel and
8324           silc_server_remove_from_channels in silcd/server.c.  Also,
8325           do not check if the removed client is local as we can be
8326           sure that global client was not removed from the channel
8327           and checking for global users is not needed.
8328
8329         * The silc_server_remove_clients_by_server now re-generates
8330           the channel keys correctly for those channels that had
8331           clients removed from them.  Affected file silcd/server.c.
8332
8333 Tue Jul  3 11:39:20 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
8334
8335         * Found the reason of random crashes in the server.  We weren't
8336           ignoring the SIGPIPE signal (which can be sent in write())
8337           and it crashed the server.  Affected file silcd/silcd.c.
8338
8339 Fri Jun 29 20:05:25 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
8340
8341         * Assure that sock->user_data is not NULL in the function
8342           silc_server_packet_send in silcd/packet_send.c.
8343
8344         * Disconnect the remote connection if it could not be added
8345           to any ID lists in the server.  The affected file is
8346           silcd/server.c.
8347
8348         * Check in silc_server_packet_send[_real/dest] that the
8349           socket is not disconnecting and ignore the data if it is.
8350           Affected file silcd/packet_send.c.
8351
8352         * Define inline to __inline on native WIN32 compilation.
8353           Affected file includes/silcwin32.h.
8354
8355         * Added some explicit type casts for inline code since MSVC
8356           require them.  Affected files lib/silcutil/silcbuffer.h,
8357           lib/trq/silcdlist.h and lib/trq/silclist.h.
8358
8359         * Print warning in log files from now on if the packet
8360           decryption fails.  Affected file silcd/server.c.
8361
8362 Thu Jun 28 21:30:39 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
8363
8364         * Changed the `say' client operation's interface to accept
8365           new `type' argument to indicate the type of the message sent
8366           by the library.  The application may filter the library's
8367           messages according the type.  The affected file is the
8368           lib/silcclient/silcapi.h.
8369
8370         * Added two new functions to lib/silcclient/silcapi.h:
8371           silc_client_del_client and silc_client_del_client_by_id.
8372           Affected file lib/silcclient/idlist.c.
8373
8374         * Moved the clientincludes.h from includes/ to silc/ and
8375           serverincludes.h from includes/ to silcd/.
8376
8377         * The modes for the CMODE and CUMODE are now passed as
8378           uint32 for application with COMMAND_REPLY.  The affected
8379           file is lib/silcclient/command_reply.c.
8380
8381 Wed Jun 27 22:24:47 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
8382
8383         * /WHOIS without arguments shows client's own information.
8384           Affected file lib/silcclient/command.c.
8385
8386         * Changed PING to not accept any arguments.  The specs
8387           says that client can ping only the connected server so
8388           requiring an argument is not needed.  Affected file is
8389           lib/silcclient/command.c.
8390
8391 Wed Jun 27 00:10:33 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
8392
8393         * Fixed a fatal bug in private message sending and reception
8394           encryption and decryption when using private message keys.
8395           The implementation was incorrect and did not follow the
8396           specification.  It causd that some of the message were
8397           lost since it did not use the sending and receiving keys
8398           as the protocol suggests.  This has been fixed and will cause
8399           incompatibilities with older clients when sending private
8400           message encrypted with private message keys.  Affected files
8401           lib/silcclient/client_prvmsg.c, lib/silcclient/client_keyagr.c
8402           and various other in Irssi SILC Client.
8403
8404           Added `responder' boolean argument to the functions
8405           silc_client_add_private_message_key[_ske] to indicate when
8406           the key is added as responder or initiator of the key
8407           negotiation.
8408
8409 Tue Jun 26 19:23:07 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
8410
8411         * Removed the silc_ske_check_version function and created
8412           a SilcSKECheckVersion callback.  Added also a function
8413           silc_ske_set_callbacks that is now used to set all SKE
8414           callbacks.  The callback functions are not given to
8415           the SKE functions anymore, but this function is used to
8416           set the callbacks.
8417
8418         * Fixed the WIN32 DLL generation in lib/Makefile.am.pre.
8419
8420         * Added `silc_version' argument to the silc_client_alloc
8421           to define the version of the application for the library.
8422           The library will use the version string to compare it
8423           against the remote host's (usually a server) version
8424           string.  Affected file lib/silcclient/silcapi.h
8425
8426         * Added the KE protocol context to Key Agreement context
8427           in client library so that we can abort the SKE if it
8428           is in process when we get timeout.  Affected file is
8429           lib/silcclient/client_keyagr.c.
8430
8431         * Do not resolve the client ID forever if it returns in the
8432           first time that such client does not exist.  This was done
8433           for example with private message.  Affected file is
8434           lib/silcclient/client_prvmsg.c.
8435
8436 Mon Jun 25 21:42:51 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
8437
8438         * Do not add regex.h for WIN32.  The affected file
8439           includes/silcincludes.h.
8440
8441         * Added WIN32 DLL generation to lib/Makefile.am.pre.  It might
8442           not work yet 100%.  It generates the DLL's automatically
8443           when compiling with --with-win32 under cygwin.
8444
8445 Sun Jun 24 19:49:23 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
8446
8447         * lib/contrib/regex.c is not compiled on WIN32.
8448
8449         * Added silc_net_get_socket_opt function to the
8450           lib/silcutil/silcnet.h.
8451
8452         * Added includes/silcwin32.h for WIN32 specific includes
8453           and definitions.
8454
8455         * Do not use ptime structure or any of the posix process
8456           functions on WIN32 in lib/silccrypt/silrng.c.
8457
8458         * Added silc_gettimeofday to provide generic function
8459           for struct timeval on all platforms.  Added the function
8460           to lib/silcutil/silcutil.h.
8461
8462 Sun Jun 24 12:19:52 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
8463
8464         * Moved the lib/silccore/silcsockconn.[ch] to the utility
8465           library as they clearly belong there.  As a plus side we
8466           can make the actual socket connection routines platform
8467           specific.
8468
8469           Added also new generic function silc_socket_read and
8470           silc_socket_write (that used to be silc_packet_[read/write].
8471           The implementation of these are platform specific.
8472
8473         * Added WIN32 specific routines of silc_socket_[read/write]
8474           to lib/silcutil/win32/silcwin32sockconn.c.
8475
8476 Sat Jun 23 16:01:00 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
8477
8478         * Added preliminary support for native WIN32 compilation under
8479           cygwin (using the -mno-cygwin option for GCC) to the
8480           ./configure.in.pre.  The --with-win32 now prepares the
8481           compilation for native WIN32.
8482
8483         * Rewrote the SILC Scheduler interface in the file
8484           lib/silcutil/silcschedule.h.  The scheduler is now context
8485           based and does not have anymore any global static scheduler.
8486           Moved the Unix scheduler to the lib/silcutil/unix/ directory
8487           and created lib/silcutil/win32 directory for WIN32 based
8488           scheduler.
8489
8490         * Added Unix specific network routines to the
8491           lib/silcutil/unix/silcunixnet.c and the old
8492           lib/silcutil/silcnet.c includes now only generic routines.
8493
8494           Added WIN32 specific network routines to the
8495           lib/silcutil/win32/silcwin32net.c.
8496
8497         * Added Unix specific utility functions from the
8498           lib/silcutil/silcutil.c to lib/silcutil/unix/silcunixutil.c.
8499
8500         * Added WIN32 SILC Scheduler to the file
8501           lib/silcutil/win32/silcwin32schedule.c. The code is of course
8502           untested.
8503
8504 Fri Jun 22 10:44:14 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
8505
8506         * Do not handle JOIN notify in the server if the target client
8507           is not registered (idata->registered == FALSE).  The affected
8508           file is silcd/packet_receive.c.
8509
8510         * Update the nickrec->founder in event_cumode in the Irssi SILC
8511           client.  Affected file irssi/src/silc/core/silc-channels.c.
8512
8513         * Fixed the CUMODE_CHANGE notify handling in the server when
8514           server and router are announcing their clients on channels.
8515           Now the mode changes are saved and notified correctly.  The
8516           affected file is /silcd/packet_receive.c.
8517
8518         * Fixed silc_idlit_replace_[server/client/channel]_id functions.
8519           They really did not replace the cache entry in the ID Cache.
8520           Now they do that.  Affected file silcd/idlist.c.
8521
8522         * Fixed the KICK notify handling in the Irssi SILC client to
8523           update the channel records so that the kicked client does not
8524           appear to be on the channel.  The affected file is
8525           irssi/src/silc/core/silc-channels.c.
8526
8527         * Always update the conn->current_channel when executing command
8528           on a channel.  Affected file irssi/src/silc/core/silc-servers.c.
8529
8530         * Fixed the KILL notify handling in Irssi SILC client to remove
8531           the killed client on all channels.
8532
8533 Thu Jun 21 17:10:08 CEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
8534
8535         * Fixed the silc_parse_command_line to remove extra spaces
8536           from the start and end of the arguments.  Affected file is
8537           lib/silcutil/silcutil.c.
8538
8539         * Cancel and free any active protocol in the function
8540           silc_server_close_connection.  Affected file silcd/server.c.
8541
8542         * Cancel and free any active protocol in the function
8543           silc_client_close_connction.  Affected file is
8544           lib/silcclient/client.c.
8545
8546         * Do not execute the KILL command for clients that are in
8547           history (ie. they are not in the network).  Affected file is
8548           silcd/command.c.
8549
8550         * Fixed KILL notify handling, client does not crash anymore.
8551           Affected file irssi/src/silc/core/silc-channels.c.
8552
8553         * Reduced the default packet buffer size from 2048 to 1024 in
8554           lib/silccore/silcpacket.c.
8555
8556         * Added SILC_SKE_STATUS_FREED SKE status type and a reference
8557           counter to the SKE context that is incresed when the SKE library
8558           performs async operation outside the library.  If the outside
8559           process frees the SKE context and FREED status will be set
8560           and the library will detect after the sync operation that the
8561           libary is freed.  The affected files are
8562           lib/silcske/silcske[_status].[ch].
8563
8564         * Resolve the client entry information in the function
8565           silc_client_channel_message to assure that NULL pointer is not
8566           passed as client entry to the application. */
8567
8568         * Fixed the task timeout calculation to assure that there is
8569           never negative timeouts.  The affected file is
8570           lib/silcutil/silcschedule.c.
8571
8572         * Fixed the channel user mode notification sending in server.
8573           It was sent point-to-point to the router (or to server by router)
8574           but it needs to be destined to a channel.  The routines now
8575           supports sending the channel user mode notifys to the channels
8576           when announcing clients and channels.  Affected files are
8577           silcd/server.c and silcd/packet_receive.c.
8578
8579         * Fixed the CHANNEL_CHANGE notify handling in the client libary.
8580           It did not actually replace the old channel entry in the cache.
8581           Affected file lib/silcclient/client_notify.c.
8582
8583 Tue Jun 19 22:10:36 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
8584
8585         * Fixed a possible crash in silc_packet_send_prepare.  It now
8586           assures always that there is enough space in the buffer and
8587           at the tail area of the buffer (for MAC).
8588
8589           Fixed the inbound buffer reallocation in silc_packet_read.
8590           It was old code and did not handle the reallocation correctly.
8591           Affected
8592
8593           The affected file is lib/silccore/silcpacket.c.
8594
8595         * Fixed buffer overflow in silc_parse_nickname in the file
8596           lib/silcutil/silcutil.c.
8597
8598 Tue Jun 19 13:40:09 CEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
8599
8600         * make install generates new server keys only if there is not
8601           keys already.
8602
8603 Mon Jun 18 18:49:07 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
8604
8605         * Set SILC_MESSAGE_FLAG_NOREPLY when sending the away message.
8606           Added check that if the NOREPLY is set then we will not send
8607           the away message.  This avoids infinite loop of away messages
8608           if both clients are away.  The affected file is
8609           lib/silcclient/client_prvmsg.c.
8610
8611         * Fixed client crash if /NICK was given without arguments.
8612           Affected file lib/silcclient/command.c.
8613
8614         * Server does not send the invite list in INVITE command back
8615           to the client if the list was not altered.  Added this notion
8616           to the protocol spec as well.  Affected file silcd/command.c.
8617
8618           Fixed possible crash in INVITE command by checking the
8619           value of silc_server_get_client_route command.
8620
8621         * Fixed the INVITE notify type handling.  The arguments are now
8622           taken in correct order and client does not crash.  The affected
8623           file is irssi/src/silc/core/silc-channels.c.
8624
8625           Removed the "Inviting xxx to channel" message from the
8626           client library away and let the application handle it.
8627           Affected file lib/silcclient/command.c.  Added that message
8628           to Irssi SILC client's message formats.
8629
8630         * Fixed CMODE command crash in client.  It now checks the
8631           amount of arguments correctly and does not crash.  The affected
8632           file is lib/silcclient/command.c.
8633
8634         * Do not create new channel automatically in silc_channels_join
8635           but check whether the channel by that name already exists.
8636           Affected file irssi/silc/core/silc-channels.c.
8637
8638         * Do not send the SERVER_SIGNOFF to router if the disconnected
8639           entity was the router.  Affected file silcd/server.c.
8640
8641         * Added the handling of the SERVER_SIGNOFF notify to the Irssi
8642           SILC client as it was missing from there.
8643
8644           Added the handling of the KICK notify to the Irssi SILC client
8645           as it was missing.  Added "you have been kicked" message to
8646           Irssi SILC client's message modules formats.
8647
8648           Added the handing of the KILL notify to the Irssi SILC client
8649           as it was missing.  Added the kill message module formats
8650           as well.
8651
8652           The affected file is irssi/src/silc/core/silc-channels.c.
8653
8654         * The router did not save the channel mode the server announced.
8655           Affected file silcd/packet_receive.c.
8656
8657         * Fixed a possible crash in INFO command in server.  If the
8658           server did not provide the server info it crashed.  Affected
8659           file silcd/command.c.
8660
8661 Sun Jun 17 15:26:05 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
8662
8663         * Fixed the GETKEY command in the server to check also the
8664           global list.  Otherwise the GETKEY would not work correctly
8665           in normal SILC server.  Affected file silcd/command.c.
8666
8667 Sat Jun 16 18:00:00 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
8668
8669         * Fixed GETKEY crash, it crashed if the command did not succseed.
8670
8671 Tue Jun 12 21:36:18 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
8672
8673         * Redefined the SILC MP API in lib/silcmath/silcmp.h. The API
8674           is now real and not just an macro interface to GMP.
8675
8676           Removed the entire GMP from the source tree and imported new
8677           NSS MPI library instead.  Reason for removing GMP is that it is
8678           extremely large and compiles extremely slow.  The NSS MPI
8679           is only a few files and compiles in less than 10 seconds.
8680           The speed is also about the same as GMP.  The MPI is imported
8681           to lib/silcmath/mpi.
8682
8683           If the system has GMP installed we will still use the GMP.
8684           If it is not then the NSS MPI will be compiled.
8685
8686 Mon Jun 11 18:07:24 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
8687
8688         * Merged a long nickname (127 characters long) crash bugfix from
8689           Irssi CVS tree.  Affected file irssi/src/core/misc.c.
8690
8691         * Merged a freed memory reference bugfix from Irssi CVS tree.
8692           Affected file irssi/src/core/commands.c.
8693
8694 Sun Jun 10 16:08:35 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
8695
8696         * Added the server's public key sving and verification to the
8697           server when performing the SKE.  This was missing and the
8698           remote server's (or router's) public key was accepted without
8699           checking whether we have it previously or trust it at all.
8700           Affected file silcd/protocol.c.
8701
8702 Sat Jun  9 20:17:30 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
8703
8704         * Check in the silc_server_timeout_remote if protocol is active
8705           and make sure that the protocol's final callback is called so
8706           that all memory if freed.  Affected file silcd/server.c.
8707
8708 Sat Jun  9 12:51:27 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
8709
8710         * silc_server_whois_send_reply crashed the server if the nickname
8711           was 127 characters long.  Affected file silcd/command.c.
8712
8713 Thu Jun  7 16:29:56 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
8714
8715         * Added sanity check to the silc_server_new_client. If the hostname
8716           is provided inside username then check that the provided hostname
8717           really is the same as the resolved one.  If the hostname was not
8718           resolved then check it from the public key.  Affected file is
8719           silcd/packet_receive.c.
8720
8721         * Fixed a fatal bug in Irssi SILC client. Do not send QUIT command
8722           if the server disconnected us and the connection is not valid
8723           anymore.  Affected file irssi/src/silc/core/silc-channels.c.
8724
8725         * Moved the silc_client_[chmode|chumode|chumode_char] away from
8726           the library to the lib/silcutil/silcutil.[ch].
8727
8728 Thu Jun  7 08:57:16 CEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
8729
8730         * Close log file after open.  Affected file
8731           lib/silcutil/silclog.c.
8732
8733         * Check whether sock == NULL in silc_client_send_packet and return
8734           if it is.  Affected file lib/silcclient/silcclient.c.
8735
8736         * Check rec->entry == NULL in the Irssi SILC Client before
8737           sending the channel message.  Affecte file is
8738           irssi/src/silc/core/silc-servers.c.
8739
8740 Tue Jun  5 08:08:21 CEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
8741
8742         * Merged a splitted window bugfix from Irssi CVS tree.  The
8743           affected file is irssi/src/fe-text/textbuffer-view.c.
8744
8745         * Fixed the ME, ACTION and NOTICE printing in Irssi Client.
8746           It did not print nickname.
8747
8748         * Improved the distributions system a bit.
8749
8750 Mon Jun  4 17:57:16 CEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
8751
8752         * Merged /WINDOW bugfix from irssi CVS tree. Affected file is
8753           irssi/src/fe-text/gui-window.c.
8754
8755         * Fixed a fatal bug in Irssi SILC client. Crashed if sent message
8756           to in-active server.  The affected file is
8757           irssi/src/silc/core/client_ops.c.
8758
8759         * Resolve the client in USERS command reply if the entry does
8760           not have username resolved.  The affected file is
8761           lib/silcclient/command_reply.c.  Also, changed the IDENTIFY
8762           command to WHOIS command to really resolve stuff.  The USERS
8763           is not used any more in any critical section so WHOIS can
8764           be used even though it might be slower than IDENTIFY.
8765
8766         * Changed the lib/silcutil/silchashtable.h header to ROBODoc
8767           format.
8768
8769 Sun Jun  3 14:21:32 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
8770
8771         * Changed the protocol API a bit more consistent in the
8772           lib/silccore/silcprotocol.[ch].
8773
8774         * Changed the following headers to ROBODoc format:
8775
8776                 lib/silccore/silcpayload.h
8777                 lib/silccore/silcprotocol.h
8778                 lib/silccore/silcsockconn.h
8779
8780           All core library headers are now formatted.
8781
8782 Sat Jun  2 10:45:09 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
8783
8784         * Fixed a bug in Irssi SILC client; do not show that you are
8785           server/router operator if you really are not.  Affected file is
8786           irssi/src/silc/core/client_ops.c.
8787
8788         * Renamed silc_command_free_payload to silc_command_payload_free.
8789           Affected file lib/silccore/silccommand.h
8790
8791         * Added silcmath.h to include the prototoypes of various routines
8792           in the lib/silcmath.  Removed the old modinv.h, mpbin.h and
8793           silcprimegen.h.
8794
8795         * Changed the following headers to ROBODoc format:
8796
8797                 lib/silccore/silcchannel.h
8798                 lib/silccore/silccommand.h
8799                 lib/silccore/silcid.h
8800                 lib/silccore/silcidcache.h
8801                 lib/silccore/silcmode.h
8802                 lib/silccore/silcnotify.h
8803                 lib/silccore/silcpacket.h
8804                 lib/silcmath/silcmath.h
8805
8806 Fri Jun  1 22:19:37 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
8807
8808         * Added checking to the server code not to start the server if
8809           ciphers and stuff are not configured properly.  Affected files
8810           silcd/serverconfig.[h] and silcd/server.c.
8811
8812         * Changed the layout of the header files of the public interfaces
8813           in the SILC libraries.  The new layout supports ROBODoc
8814           documentation tool (and some others) so that it is easy to create
8815           a library reference manual.  All the other headers and source
8816           code must still follow the CodingStyle document.  Also source
8817           code must not include these ROBODoc stuffs, only the headers.
8818           Furthermore, all public interface headers must now be named
8819           by using `silc' prefix, example: silcapi.h, silccipher.h.
8820           Some files were renamed due to this.  All the other headers
8821           must not be used as public interfaces.  I will update the
8822           CodingStyle document later.  Changed following headers, so far:
8823
8824                 lib/silcclient/silcapi.h
8825                 lib/silccore/silcauth.h
8826                 lib/silccore/silcprivate.h
8827                 lib/silccrypt/silcdh.h
8828
8829 Fri Jun  1 10:28:09 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
8830
8831         * Updated TODO.
8832
8833         * Removed silc_client_packet_send_flush from the client library
8834           as it is not needed.  Affected file lib/silcclient/client.[ch].
8835
8836         * Added printing of message of unresolved authentication method
8837           to the Irssi SILC client.  Added it to the module formats.
8838           Removed the same message from the client library.
8839
8840 Thu May 31 13:57:33 CEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
8841
8842         * Added new distribution feature, DISTLABEL.  Every distribution
8843           can define own preprocessor label that can be used in the
8844           source code.  For example: #ifdef SILC_DIST_CLIENT.  Affected
8845           file distributions, acconfig.h.pre and prepare.
8846
8847 Tue May 29 22:16:40 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
8848
8849         * Added Makefile.defines_int to include the actual definitions
8850           for Makefile.defines.in.  Tested the new distribution system,
8851           created distributions and tested installation.
8852
8853         * Added AWAY message printing to the Irssi SILC client.  Added
8854           the messages to the irssi/src/fe-common/silc/module-formats.[ch].
8855
8856         * Added SCONNECT command to call the SILC's CONNECT command.
8857           Cannot use CONNECT directly since Irssi uses that internally.
8858           Affected file irssi/src/silc/core/silc-servers.c.
8859
8860           Added ACTION local command.  It is same as ME command but takes
8861           the channel as mandatory argument.
8862
8863           Rewrote some of the Irssi's help files to suite for SILC
8864           protocol.
8865
8866 Mon May 28 19:05:22 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
8867
8868         * Added Makefile.defines[.in] that should for now on be included
8869           in all Makefile.am file in the source tree.  That file includes
8870           all common compilation definitions for SILC source tree.
8871
8872 Mon May 28 10:30:51 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
8873
8874         * Minor changes to the ./prepare script to change the package
8875           name according the distribution name to the configure.in.
8876
8877 Sun May 27 22:24:57 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
8878
8879         * Created new distribution system.  Added file `distributions'
8880           that defines all the distributions that can be created out of
8881           the SILC source tree.  The ./prepare script now reads that
8882           file to determine how to prepare the distributions.  The
8883           first argument to the ./prepare is the name of the distribution
8884           and second is the version of the distribution.  If given
8885           without arguments it creates the default (toolkit) distribution
8886           with the default version (defined in ./prepare).
8887
8888           All Makefile.am files that are subject to the distributions
8889           are now named as Makefile.am.pre.  These are ./Makefile.am
8890           and lib/Makefile.am.  Others may be changed later.
8891
8892 Sun May 27 15:57:17 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
8893
8894         * Added invite list, ban list, some key management and connection
8895           error message printing to module formats in the Irssi SILC client.
8896
8897         * Added new silc_client_set_away_message to set the away message
8898           that is back to the person who sent private message.  The
8899           affected file lib/silcclient/silcapi.h and the
8900           lib/silcclient/client_prvmsg.c.
8901
8902 Sun May 27 12:39:48 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
8903
8904         * Fixed the private message sending in the Irssi SILC client,
8905           added local command KEY to the Irssi SILC client.
8906
8907           Added key management and key agreement message formats to the
8908           irssi/src/fe-common/silc/module-formats.[ch].
8909
8910           Added USERS (alias WHO) printing, server/router operator
8911           indication and LIST command printing to the module formats.
8912
8913 Sat May 26 17:43:42 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
8914
8915         * Fixed channel joining notify handling, cumode notify handling
8916           from Irssi SILC client.
8917
8918         * Added SILC specific module-formats to the Irssi SILC client so
8919           that SILC specific message hilighting, colors etc is possible.
8920           Affected file irssi/src/fe-common/silc/module-formats.[ch].
8921
8922           Added channel mode, channel user mode, actions, notices,
8923           whois and whowas printing to the the module-formats.c.
8924
8925         * Fixed a bug in channel deletion in the server.  The channel
8926           is not left to the cache even if the channel founder auth mode
8927           is set when there are no users anymore on the channel.  Affected
8928           file silcd/server.c.
8929
8930         * The silc_net_localhost now resolves the entire hostname including
8931           the domain name.  Affected file lib/silcutil/silcnet.c.
8932
8933 Sat May 26 12:13:37 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
8934
8935         * Changed the ask_passphrase client operation to be ascynchronous.
8936           It has now a completion callback and a context that the
8937           application must call after it has got the passphrase from
8938           the user.  Affected files lib/silcclient/silcapi.h,
8939           lib/silcclient/protocol.c, lib/silcclient/command.c and
8940           silc/client_ops.c.
8941
8942           Added SilcAskPassphrase callback that the application calls
8943           to deliver the passphrase to the library.
8944
8945         * Changed the SKE protocol's SilcSKEVerifyCb to be asynchronous.
8946           The public key verification and especially a certificate
8947           verification is asynchronous procedure.
8948
8949           Added new SILC_SKE_STATUS_PENDING status to indicate the
8950           request is pending and a callback will be called to finalize
8951           the request.
8952
8953           Added also SILC_SKE_STATUS_PUBLIC_KEY_NOT_PROVIDED status to
8954           indicate that remote end did not send its public key (or
8955           certificate), even though we require it.  Added check for this
8956           condition in the SKE.  This was a security bug, now fixed.
8957
8958           Defined new SilcSKEVerifyCbCompletion callback that is called
8959           when the verification process is completed.
8960
8961           The affected files lib/silcske/silcske_status.h and
8962           lib/silcske/silcske.[ch].
8963
8964         * Changed the verify_public_key client operation to be async
8965           as well.  Defined SilcVerifyPublicKey callback that is used to
8966           indicate the success of the public key verification process.
8967
8968           Changed the server and client to use the new async client
8969           operations.
8970
8971         * Changed the Irssi SILC client's internal scheduler to be called
8972           twice as many times as it used to be.  As a result the client
8973           should be a bit faster now.  Affected file is
8974           irssi/src/silc/core/silc-core.c.
8975
8976         * Added support to Irssi SILC client of asynchronous public key
8977           verification and passphrase inquiry.  Affected file is
8978           irssi/src/silc/core/silc-core.c.
8979
8980 Fri May 25 14:38:38 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
8981
8982         * Do not say "You have left channel %s" in client library.
8983           Moved it to the application.  Affected files are
8984           lib/silcclient/command.c and silc/client_ops.c.
8985
8986         * Fixed silc_client_get_clients.  Command context was not
8987           duplicated and was freed memory in the callback.  Affected
8988           file lib/silcclient/idlist.c.
8989
8990         * Do not say "you are now talking..." on JOIN command in the
8991           client library.  The appliation must handle it.
8992
8993         * Do not say ".. changed topic to" in command reply in the
8994           client libary.  The application must handle it.
8995
8996         * Fixed TOPIC command sending in the client library.
8997
8998         * Fixed a memory leak in silc_client_command_free in the file
8999           lib/silcclient/command.c.
9000
9001 Thu May 24 19:08:55 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9002
9003         * Imported a modified version of Irssi client to the source tree.
9004           The Irssi will be used to create a new client called
9005           Irssi SILC.  Imported to irssi/.
9006
9007           Added silc_core_init_finish function to the Irssi.  Affected
9008           file irssi/configure.in.
9009
9010           A lot changes in the Makefile.ams around the irssi tree.
9011
9012 Tue May 22 22:23:49 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9013
9014         * Do not rehash if the new size is same as the old size of the
9015           hash table, in the silc_hash_table_rehash*.  The affected file
9016           lib/silcutil/silchashtable.c.
9017
9018         * Replaced hash_table_del_by_context calls from the server
9019           (when channel->user_list and client->channels) to the
9020           hash_table_del as it is sufficient and faster.
9021
9022 Tue May 22 17:27:16 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9023
9024         * Added silc_hash_table_list, silc_hash_table_get and the
9025           SilcHashTableList structure to provide an alternative way to
9026           traverse the hash table.  The affected files are
9027           lib/silcutil/silchashtable.[ch].
9028
9029         * Changed the server's idlist routines to use the hash table
9030           routines to optimize the code.
9031
9032 Mon May 21 21:46:20 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9033
9034         * Replaced the client entry's `channel' list and channel entry's
9035           `user_list' list to hash tables for optimized lookup.  Changed
9036           the code to use the hash table interface around the code.
9037           Affected file lib/silcd/idlist.[ch].
9038
9039         * Added `auto_rehash' boolean argument to the function
9040           silc_hash_table_alloc to indicate whether the hash table should
9041           auto-rehash when it thinks is appropriate time.  It will
9042           increase the hash table size if the there is twice as much
9043           entries in the table than the size of the table, and will
9044           decrease the size if there are twice as less entries than
9045           the size of the table.
9046
9047 Mon May 21 09:51:11 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9048
9049         * Fixed silc_xxx_get_supported to not crash at some circumstances.
9050
9051 Sun May 20 13:45:58 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9052
9053         * silc_idcache_purge_by_context deletes the entry now by context
9054           as it is supposed to do.  Affected file lib/silccore/idcache.c.
9055
9056         * Send the ERR_NO_SUCH_NICK in the WHOIS command reply if the
9057           client is not anymore valid (WHOWAS givens the info) and not
9058           the ERR_NO_SUCH_CLIENT_ID if the nickname still exists.
9059
9060 Sat May 19 16:30:03 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9061
9062         * Removed the `data' and `data_len' arguments from the ID Cache
9063           interfaces and added `name' argument.  ID Cache does not handle
9064           anymore the binary data only a names associated with given ID.
9065
9066         * When hashing a Client ID with silc_hash_id the entire ID is
9067           not hashed anymore, instead only the hash of the Client ID is
9068           hashed.  This way we can access the Client ID from the cache
9069           with Client ID but with the hash of the ID (which is a hash of
9070           the nickname) as well without any difference in performance.
9071
9072           Added also silc_idcache_find_by_id_one_ext to do one on one
9073           searching when we have the actual ID.  Added also function
9074           silc_hash_client_id_compare.  The affected files are
9075           lib/silccore/idcache.[ch] and lib/silcutil/silcutil.[ch].
9076
9077         * When hashing the name associated with a ID it is always done
9078           in lowercase.  This way we can access the cache without worrying
9079           about case-sensitivity, even though, for example nicknames are
9080           case sensitive.
9081
9082         * Fixed a bug in server with channel message sending.  It put
9083           wrong ID type as destination ID.  The affected file
9084           silcd/packet_send.c.
9085
9086         * silc_idcache_del_by_context now deletes from all hash tables
9087           by context.  Affected file lib/silccore/idcache.c.
9088
9089 Fri May 18 17:42:00 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9090
9091         * Changed the client library to use the new ID Cache interface.
9092           Changes around the source tree.
9093
9094         * Added silc_hash_table_rehash_ext to rehash with specific
9095           hash function.  Affected file lib/silcutil/silchashtable.[ch].
9096
9097         * Added silc_hash_string_compare to compare two strings in the
9098           hash table.  Affected file lib/silcutil/silcutil.[ch].
9099
9100 Fri May 18 11:18:45 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9101
9102         * Added new function silc_idcache_del_by_context into the
9103           lib/silccore/idcache.[ch].
9104
9105         * Changed the server's ID list routines to use the new ID Cache
9106           interface.  Changes around the source tree.
9107
9108 Fri May 18 08:35:31 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9109
9110         * Added silc_hash_table_del[_by_context]_ext functions in to the
9111           lib/silcutil/silchashtable.[ch].
9112
9113           Removed silc_hash_table_find_all* routines and added new
9114           silc_hash_table_find_foreach to replace them.
9115
9116           Added silc_hash_table_replace_ext function as extended
9117           replacing function.  Separated the simple hash table interface
9118           from the extended hash table interface in the file
9119           lib/silcutil/silchashtable.h.
9120
9121         * Fixed minor bugs and changed it to use some of the new
9122           hash table functions in lib/silccore/idcache.c
9123
9124 Thu May 17 18:15:12 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9125
9126         * Added new function silc_hash_table_find_all to return all keys
9127           in the hash table by the specified key.  As the hash table is
9128           collision resistant it also makes it possible to have several
9129           duplicate keys in the hash table.  This function may be used to
9130           find all of the keys from the hash.
9131
9132           Added user_context arguments to the SilcHashFunction,
9133           SilcHashCompare and SilcHashDestructor to deliver user specified
9134           context.
9135
9136           Added new fuctions silc_hash_table_find[_all]_ext to do
9137           extended lookup with specified hash and compare functions and
9138           specified user contexts.
9139
9140           Added new function silc_hash_table_add_ext to add the key
9141           with specified hash function and user context.
9142
9143           Added new function silc_hash_table_foreach to traverse all
9144           entrys in the hash table.  Added SilcHashForeach callback
9145           function.
9146
9147           Added new function silc_hash_table_del_by_context to delete
9148           the entry only if the context associated with the key matches.
9149
9150           Affected files are lib/silcutil/silchashtable.[ch].
9151
9152         * Removed silc_hash_[server/client/channel]_id and added just
9153           silc_hash_id to the lib/silcutil/silcutil.[ch].  Added also
9154           silc_hash_id_compare to compare two ID's using as the hash table
9155           comparison function.  Added also silc_hash_data to hash
9156           binary data and silc_hash_data_compare to compare it.
9157
9158         * Removed silc_idlist_find_client_by_hash as it is not needed
9159           anymore.  Affected file silcd/idlist.[ch].
9160
9161         * Rewrote the entire ID Cache system (in lib/silccore/idcache.[ch])
9162           to use internally the SilcHashTable.  The new ID Cache is a lot
9163           faster than the old one.  Some of the ID Cache interface was also
9164           rewritten and obsolete and stupid functions were removed.
9165
9166 Wed May 16 23:03:30 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9167
9168         * Added entry_count field to the SilcHashTable to keep the number
9169           of the entries in the table.  Implemented the function
9170           silc_hash_table_rehash.  Added new function
9171           silc_hash_table_count.  Affected file lib/silcutil/silchashtable.c.
9172
9173           Fixed a minor bug in silc_hash_table_free.
9174
9175         * Added silc_hash_string, silc_hash_uint, silc_hash_ptr,
9176           silc_hash_client_id, silc_hash_server_id and silc_hash_channel_id
9177           into the lib/silcutil/silcutil.[ch].
9178
9179 Wed May 16 20:02:47 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9180
9181         * Implemented a collision resistant hash table into the
9182           lib/silcutil/silchashtable[ch].  See the header and the source
9183           for the SilcHashTable API.
9184
9185 Tue May 15 22:05:46 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9186
9187         * Merged dotconf version 1.0.2 into lib/dotconf.
9188
9189 Sun May 13 19:32:09 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9190
9191         * Do not compile anything in lib/silcsim/* if the SIM support
9192           is not enabled.  The tree should now compile without problems
9193           under cygwin.
9194
9195 Thu May 10 22:49:51 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9196
9197         * Compiled the SILC under cygwin.  Compiled and tested briefly
9198           without problems.  More tests needed.  The SIMs didn't compile
9199           though.
9200
9201         * Added various #ifdef HAVE_* stuff to lib/silccrypt/silrng.c.
9202
9203         * Fixed possible crash in silc_get_username in the
9204           lib/silcutil/silcutil.c.
9205
9206 Tue May  8 09:04:03 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9207
9208         * Fixed a va_arg in silc/client_ops.c.
9209
9210         * Oops, RC5 routines were named AES and caused some problems
9211           when not using SIM's.  Affected file lib/silccrypt/rc5.c.
9212
9213 Sun May  6 13:59:48 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9214
9215         * Added new SilcIDIP structure into the lib/silccore/id.h and
9216           replaced the old `ip' fields from all SILC ID's to that type.
9217           This is a step towards IPv6 support.
9218
9219           The silc_id_get_len takes now the ID as an extra argument.
9220           The silc_id_id2str, silc_id_str2id and silc_id_dup now supports
9221           both IPv4 and IPv6 based ID's.
9222
9223           The affected files are lib/silccore/id.[ch] and other files
9224           around the tree using these routines.
9225
9226         * Removed the ID length arguments in server from various
9227           silc_server_send_notify_* routines -> they are not needed
9228           anymore.
9229
9230 Sat May  5 13:56:33 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9231
9232         * Fixed memory leak in silc_encode_pem_file in the file
9233           lib/silcutil/silcutil.c.
9234
9235 Thu May  3 21:23:50 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9236
9237         * Check minor version as well in the SKE.  Affected files are
9238           silcd/protocol.c and lib/silcclient/protocol.c.
9239
9240         * Added --identifier option to the server so that an identifier
9241           can be when creating the public key for the server.  Affected
9242           file is silcd/silcd.c.
9243
9244         * Fixed minor decoding bug in silc_pkcs_decode_identifier in
9245           lib/silccrypt/silcpkcs.c.
9246
9247 Wed May  2 20:50:49 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9248
9249         * Register default ciphers and stuff when using -C option with
9250           the server.  Affected file sildc/silcd.c.
9251
9252         * Put back the servers public key filename format, it is better
9253           than the new one.  For now, the client keys are saved with the
9254           new filename format.  The affected file silc/client_ops.c.
9255
9256         * Implemented the Cipher API for the rest of the ciphers that
9257           did not implement it or implemented it the wrong way.
9258
9259 Wed May  2 13:31:26 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9260
9261         * Register default ciphers and stuff when using the -S option
9262           in the client.  Affected file silc/silc.c.  Same also when
9263           creating new key pair with -C option.
9264
9265 Tue May  1 14:18:13 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9266
9267         * Fixed the silc_verify_public_key client operation function to
9268           save the public keys differently.  The fingerprint is now
9269           used as filename and not the hostname.  This way also the
9270           client keys are saved uniquely and not with hostnames.  The
9271           affected file is silc/client_ops.c.
9272
9273         * Trimmed the silc_hash_fingerprint function to remove extra
9274           whitespaces from the end of the fingerprint.  The affected
9275           file is lib/silccrypt/silchash.c.
9276
9277         * Updated TODO.
9278
9279         * Added silc_cipher_register_default function to register all
9280           default ciphers.  It can be used when configuration files
9281           does not exist and the application does not want any specific
9282           ciphers in any specific order.
9283
9284           The SilcDList is now used as silc_cipher_list dynamically
9285           allocated cipher list.  Removed the static list all together
9286           and now all ciphers must be allocated to the dynamic list.
9287           The silc_cipher_alloc routine was changed to check only the
9288           dynamic list.
9289
9290           All silc_cipher_* routines that used to return int returns
9291           now bool.
9292
9293           The affected files lib/silccrypt/silccrypt.[ch].
9294
9295         * The same thing was done to silc_hash_* as for silc_cipher_*
9296           routines.  Affected files lib/silccrypt/silchash.[ch].
9297
9298         * The same thing was done to silc_pkcs_* as for silc_cipher_*
9299           routines.  Affected files lib/silccrypt/silcpkcs.[ch].
9300           Added also silc_pkcs_[un]register[_default] functions.
9301           Removed the data_context from the PKCS API.
9302
9303         * Added silc_hmac_register_default function to register default
9304           hmacs.  Affected files lib/silccrypt/silchmac.[ch].  Added also
9305           SILC_ALL_HMACS macro that can be used with silc_hmac_unregister
9306           to unregister all hmacs at once.
9307
9308         * Register the default ciphers, hash functions, PKCSs and HMACs
9309           if client's configuration file does not exist.  The affected
9310           file silc/silc.c.
9311
9312         * The client did not load the hash functions from the SIM
9313           modules at all.  Added support for this.  Affected file is
9314           silc/clientconfig.c.
9315
9316         * When decoding public key with silc_pkcs_public_key_decode, check
9317           the supported algorithm only if PKCS are registered.  Affected
9318           file lib/silccrypt/silcpkcs.c.  The same was done with the
9319           silc_pkcs_private_key_decode.
9320
9321         * Fixed the SILC List routines to keep the list always in order.
9322           It used to change the list's order when traversing the list but
9323           not it preserves the order.  Affected file lib/trq/silclist.h.
9324
9325 Mon Apr 30 17:29:03 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9326
9327         * Added the client library to use the SilcSocketConnection's
9328           reference counter (by silc_socket_dup) to prevent the bug that
9329           the socket object may be freed underneath async operation.
9330
9331         * The name resolv library checking fixes in the configure.in.pre.
9332           The patch by salo.
9333
9334         * Created new version of the protocol drafts for future
9335           development. The -03 drafts are the ones that will be changed
9336           in the trunk now and the -02 will remain as they are.
9337
9338         * Send list of CUMODE notifys to the router when announcing
9339           the channel users to the router.  Affected file silcd/server.c.
9340           If the router receiving channel founder CUMODE for a channel
9341           that already has channel founder it will send CUMODE notify
9342           to the sender to remove the channel founder rights from the
9343           announced client.  Affected file silcd/packet_receive.c.
9344
9345         * The CUMODE notify may now use Server ID as well as the entity
9346           who changes the mode.  Updated protocool specs.
9347
9348         * Updated INSTALL and README files.
9349
9350 Sun Apr 29 23:17:50 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9351
9352         * New web pages in the http://silc.pspt.fi.  The pages was
9353           designed by salo.
9354
9355         * Updated CREDITS.
9356
9357 Sun Apr 29 13:33:41 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9358
9359         * Implemented the [DenyConnectin] config section in the server.
9360           Added silc_server_config_denied_conn to check whether incoming
9361           connection is denied.  Affected file silcd/serverconfig.[ch].
9362
9363         * Do not check the ports when checking the incoming configuration
9364           data if the port is 0, meaning any.  Affected file is
9365           silcd/serverconfig.c.
9366
9367 Fri Apr 20 18:58:43 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9368
9369         * Fixed buffer overflow in silc_string_compare in the file
9370           lib/silcutil/silcutil.c.
9371
9372         * Fixed double free in silc_server_command_leave in the file
9373           silcd/command.c.
9374
9375 Fri Apr 20 14:00:11 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9376
9377         * Fixed the version checking in the server.  Affected file is
9378           silcd/protocol.c.
9379
9380 Thu Apr 19 19:52:46 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9381
9382         * Fixed the configuration data fetching when accepting new
9383           connections in the server.  Affected file silcd/server.c.
9384
9385 Thu Apr 19 11:40:20 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9386
9387         * Added `sender_entry' argument to the function
9388           silc_server_packet_relay_to_channel so that we can check
9389           whether some destination actually belongs to the same route
9390           the sender belongs (ie, we must not resend the packet to the
9391           sender).  Affected file silcd/packet_send.[ch].
9392
9393         * Added `servername' field to the SilcClientEntry in the server
9394           to hold the name of the server where client is from.  Affected
9395           file is silcd/idlist.h.
9396
9397 Wed Apr 18 22:19:03 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9398
9399         * Moved the channel message encrypting in the router betwen
9400           router connections from silc_server_channel_message to the
9401           silc_server_packet_relay_to_channel since we want to check
9402           whether we have anybody channel before encrypting anything.
9403           Affected files silcd/packet_[receive/send].c.
9404
9405 Tue Apr 17 21:18:19 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9406
9407         * Fixed the [AdminConnection] server config section to support
9408           multiple entries.  Affected file silcd/serverconfig.c.
9409
9410         * Added support into the server to check the validity of the
9411           incoming connection before executing any KE or authentication
9412           protocols.
9413
9414         * The connection configuration is now saved to the KE and
9415           connection auth protocol contexts and not fetched anymore in
9416           the protocol.  Affected files silcd/server.c, silcd/protocol.[ch].
9417
9418         * The local hosts listenning address and port is also resolved
9419           now when starting the server.  We want to have the socket object
9420           to include the real address and port for the listener.  Added
9421           new function silc_net_check_local_by_sock into the files
9422           lib/silcutil/silcnet.[ch].
9423
9424         * Fixed a broadcast bug in server -> do not broadcast if we
9425           are standalone.
9426
9427         * Fixed a routing bug.  Do not route broadcast packets ever.
9428           Broadcast packets must be processed always and not routed since
9429           they may be destined to some other host than yourself and thus
9430           would get routed without no good reason.  Affected file is
9431           silcd/server.c.
9432
9433         * Added function silc_server_config_is_primary_route to check
9434           whether primary router connection has been configured (a router
9435           configuration that we are initiating).  If there is not, we
9436           will assume that there is only two routers in the SILC network
9437           and we will use the incoming router connection as our primary
9438           route.  Affected files silcd/serverconfig.[ch], silcd/server.c.
9439
9440         * Changed the order of the broadcasting.  Broadcast _after_ the
9441           packet has been processed not before.  Affected file is
9442           silcd/server.c.
9443
9444         * Fixed a [ClientConnection] parsing bug.  The port was never
9445           parsed correctly thus resulting to port 0.  Affected file
9446           silcd/serverconfig.c.
9447
9448         * Fixed silc_server_send_notify_args -> it ignored the `broadcast'
9449           argument and did not set the broadcast packet flag.  Affected
9450           file silcd/packet_send.c.  Fixed same bug in the function
9451           silc_server_send_notify as well.
9452
9453         * If we receive NEW_ID packet for our own ID in the server, ignore
9454           the packet.
9455
9456 Mon Apr 16 12:10:33 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9457
9458         * Updated TODO.
9459
9460         * Removed the nickname from the Private Message Payload.
9461           Updated the code and the protocol specs.
9462
9463         * Updated protocol specs for submitting to the IETF.
9464
9465         * Tweaked the Random Number Generator a bit.  Affected file
9466           lib/silccrypt/silcrng.c.  Exported a new function
9467           silc_rng_[global]_add_noise which can be used to add more
9468           noise to the RNG.
9469
9470 Sat Apr 14 16:21:32 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9471
9472         * Do not parse packets with different timeout when protocol
9473           is active -> may cause problem with rekey.  Affected file
9474           silcd/server.c.
9475
9476         * When server receives signoff notify it must not create
9477           new channel key if the client is on any channels since the
9478           sender of the signoff notify will create it.
9479
9480 Fri Apr 13 17:12:46 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9481
9482         * Added printing of error messages during SKE protocol from the
9483           failure packet sent by server during SKE.  Affected file
9484           silc/client_ops.c.
9485
9486         * Removed the client's failure_callback handling with timeout
9487           and handle it immediately when received.
9488
9489         * The SKE library returned wrong type in SUCCESS and FAILURE
9490           packets.  They must be 32 bit MSB not 16 bit MSB.
9491
9492 Fri Apr 13 00:09:08 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9493
9494         * Ok, rewrote the logic of the re-key and now it seems to work.
9495           I tested it on high traffic with frequent re-keys without
9496           problems.  Added hmac_receive (and renamed hmac to hmac_send)
9497           in SilcClientConnection in lib/silcclient/client.h and
9498           in SilcIDListData in silcd/idlist.h.  Also, removed the
9499           SilcPacketParserContext's cipher and hmac fields as they are
9500           not needed anymore and actually caused some problems when
9501           the ciphers and hmac's changed underneath the packet parser.
9502
9503 Thu Apr 12 14:42:51 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9504
9505         * If re-key protocol is active then process the incoming packets
9506           synchronously since we must assure that icoming packets encrypted
9507           with the old key is processed before the new keys is set to
9508           use.  This is true other packets than for REKEY packets.
9509           Affected file silcd/server.c.  The same was done to client library
9510           as well, affected file lib/silcclient/client.c.
9511
9512 Thu Apr 12 12:01:52 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9513
9514         * Fixed bug in client and server to accept the force send if
9515           the packet is send from silc_[server/client]_packet_process
9516           function.  Otherwise the packets are never delivered, oops.
9517
9518 Wed Apr 11 22:10:15 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9519
9520         * Disable force sending of packets when REKEY protocol is active.
9521           We must assure that no packet is sent directly when rekey is
9522           performed.  All packets must be sent through packet queue.
9523           Added macro SILC_SERVER_IS_REKEY to silcd/server.h and
9524           SILC_CLIENT_IS_REKEY to lib/silcclient/client.h.  Affected
9525           function is silc_[server/client]_packet_send_real to check
9526           the situation.
9527
9528         * Replaced the SIM paths from example config files to
9529           /usr/local/modules.  Also, make install creates now
9530           /usr/local/silc/logs directory to hold all the SILC server
9531           logs.
9532
9533 Wed Apr 11 16:59:59 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9534
9535         * Made the configure.in.pre work on Solaris.  Patch by salo.
9536
9537         * Made all ciphers compatible with non-x86 machines.  Defined
9538           CBC mode macros into lib/silccrypt/ciphers_def.h.
9539
9540 Tue Apr 10 20:32:44 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9541
9542         * Fixed the make install.
9543
9544 Tue Apr 10 16:20:34 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9545
9546         * When MAC computation fails the silc_packet_decrypt returned 0
9547           even though it was supposed to return -1.  Fixed this.  The
9548           affected file is lib/silccore/silcpacket.c.
9549
9550         * Do not replace the config files in /etc/silc (in make install)
9551           if they already exist.  Affected file ./Makefile.am.
9552
9553         * Do not send re-key packets immediately but through packet queue.
9554           Affected file silcd/protocol.c and lib/silcclient/protocol.c.
9555
9556         * Changed silc_net_check_host_by_sock to return FALSE if the
9557           IP/DNS could not be resolved.  Though, it returns the IP address
9558           now even if it could not resolve it (but returns also FALSE).
9559           Affected file lib/silcutil/silcnet.[ch].
9560
9561 Mon Apr  9 21:54:44 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9562
9563         * Added silc_pkcs_decode_identifier to decode the public key's
9564           identifier.  Affected file lib/silccrypt/silpkcs.[ch].
9565           Added also silc_pkcs_free_identifier.  Added also new context
9566           SilcPublicKeyIdentifier.
9567
9568         * Added -S option to the silc client.  It is used to dump the
9569           contents of the specified public key file.
9570
9571         * Changed the PKCS api to return the public key length when
9572           setting the public key.
9573
9574         * Fixed a fatal bug in the public and private key file loading.
9575           Affected file lib/silccrypt/silcpkcs.c.
9576
9577         * Execute the packet parsing for client with zero (0) timeout
9578           if the protocol is active.  Affected file silcd/server.c.
9579
9580 Sun Apr  8 19:30:56 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9581
9582         * Made the key generation options to the silcd program.  Added
9583           -C option, equivalent to client's option.
9584
9585         * Added new [ServerKeys] config section to the server.  It
9586           configures the server's public and private key.
9587
9588         * Defined generic Public Key Payload into the protocol
9589           specification to send specific type of public keys and
9590           certificates.
9591
9592         * Defined new command SILC_COMMAND_GETKEY to fetch a client's
9593           public key or certificate.
9594
9595         * Implemented the GETKEY command to the server and to the
9596           client library and on user interface.
9597
9598 Sun Apr  8 01:37:21 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9599
9600         * Made preliminary `make install' work.
9601
9602 Thu Apr  5 17:42:30 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9603
9604         * Added SilcServerRekey context into silcd/idlist.h.
9605
9606         * Added the PFS support as defined in the specification to the
9607           SKE protocol.  Affected files lib/silcske/*.c.
9608
9609         * Added `ske_group' field to the SilcServerRekey context to hold
9610           the number of the SKE group that is used with PFS in re-key.
9611           Affected file silcd/idlist.h.
9612
9613         * Added PFS re-key support to the server.  Affected file is
9614           silcd/protocol.c.
9615
9616         * Added silc_protocol_cancel to cancel execution of the next
9617           state of the protocol.  Affected file is
9618           lib/silccore/silcprotocol.[ch].
9619
9620         * Added the re-key support with and without PFS to the client
9621           library.  Re-key is performed once in an hour, by default.
9622
9623           Added new protocol type SILC_PROTOCOL_CLIENT_REKEY.
9624           Added silc_client_rekey_callback and silc_client_rekey_final.
9625           Affected files are lib/silcclient/protocol.[ch] and
9626           lib/silcclient/client.[ch].
9627
9628         * Removed the `hmac_key' and `hmac_key_len' fields from the
9629           SilcClientConnection structure; not needed.  Affected file is
9630           lib/silcclient/client.h.
9631
9632         * Updated TODO.
9633
9634 Wed Apr  4 16:32:31 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9635
9636         * Do not ask whether user wants to use the negotiated private key
9637           for private messages, just use it.  Affected file is
9638           silc/local_command.c.
9639
9640         * Added `send_enc_key' and `enc_key_len' fields to the
9641           SilcIDListData structure since they are needed in the re-key
9642           phase.  Affected file is silcd/idlist.[ch].
9643
9644         * Implemented the simple re-key protocol into the server.
9645           Affected files silcd/server.c and silcd/protocol.[ch].  The
9646           re-key will be performed once in an hour, by default.
9647
9648           Added new protocol type SILC_PROTOCOL_SERVER_REKEY.
9649           Added silc_server_rekey, silc_server_rekey_callback and
9650           silc_server_rekey_final.
9651
9652         * Removed Tunneled flag from the protocol.  Updated the code
9653           and the specifications.
9654
9655         * Adde `pfs' field to the SilcIDListData to indicate whether
9656           the PFS is to be performed in the re-key.  Affected file is
9657           silcd/idlist.h.
9658
9659 Tue Apr  3 21:52:42 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9660
9661         * Defined uint8, int8, uint16, int16, uint32, int32, uint64 and
9662           int64 of at least the xintXX size.  If void * is less that 4
9663           bytes uint32 * will be used.  Defined bool as boolean.
9664
9665         * Changed _ALL_ unsigned long and unsigned int to uint32,
9666           unsgined short to uint16 in the source tree.
9667
9668         * Fixed a fatal bug in silc_server_remove_clients_by_server.  Do
9669           not handle clients that has entry->data.registered == FALSE.
9670           They are not in the network anymore.  Affected file is
9671           silcd/server.c.
9672
9673 Tue Apr  3 16:39:19 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9674
9675         * Implemented the sending of the SERVER_SIGNOFF notify in the
9676           server.  Affected file is silcd/server.c.
9677
9678         * Added silc_server_send_notify_args into silcd/packet_send.[ch].
9679           Added also silc_notify_payload_encode_args into the
9680           lib/silccore/silcnotify.[ch].
9681
9682         * Implemented ther SERVER_SIGNOFF notify handling in the server.
9683           Affected file silcd/packet_receive.c.
9684
9685         * Implemented the SERVER_SIGNOFF notify handling in the client
9686           library.  Affected file lib/silcclient/client_notify.c.  Also,
9687           implemnted the printing of the SERVER_SIGNOFF info to the
9688           application.  Affected file silc/client_ops.c.
9689
9690         * The silc_idlist_del_server now returns TRUE or FALSE to indicate
9691           if the deleting was successful.  Affected file silcd/idlist.[ch].
9692
9693         * Added support for public key authentication in the connection
9694           authentication protocol in the client library.  Affected file
9695           lib/silcclient/protocol.c.
9696
9697         * Changed the server's silc_idlist_get_clients_by_* interface
9698           to support already allocated array so that new entries may be
9699           added to pre-allocated array.  Affected file silcd/idlist.[ch].
9700           This fixes some bugs with WHOIS, WHOWAS and IDENTIFY commands
9701           and command replies.
9702
9703         * All command reply functions in the server now calls the
9704           pending command callback even if error occured.  This way the
9705           error will be delivered to the client as well.  Affected files
9706           silcd/command.c and silcd/command_reply.c.
9707
9708         * Fixed INFO command to return local server's info if no server
9709           was provided.  Affected file lib/silcclient/command.c.
9710
9711         * Removed RESTART command for good.  Updated the code and the
9712           protocol specs.
9713
9714         * Rewrote parts of the task system.  It is a bit simpler now.
9715           Removed unsued task priorities. The affected files are
9716           lib/silcutil/silctask.[ch].
9717
9718 Mon Apr  2 20:02:33 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9719
9720         * Moved the USERS printing from the library to the application.
9721           Affected files lib/silcclient/command.c and silc/client_ops.c.
9722
9723 Mon Apr  2 13:13:23 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9724
9725         * Updated TODO.
9726
9727         * Added channel key re-key support.  The re-key is perfomed
9728           only by the router and is done once in an hour.  Added `rekey'
9729           field to the SilcChannelEntry in the server.  Affected files
9730           silcd/server.c and silcd/idlist.h.
9731
9732         * Added silc_task_unregister_by_context into the file
9733           lib/silcutil/silctask.[ch].
9734
9735 Sun Apr  1 19:49:34 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9736
9737         * Added SILC_UMODE_GONE mode to indicate when the client is not
9738           present in the SILC network.  Added also support to the local
9739           command AWAY that will set this mode.  Added support of showing
9740           "xxx is gone" in WHOIS command.  The USERS command shows the
9741           gone status as well.
9742
9743         * Fixed setting server and router operator privileges in the
9744           server's UMODE command.  Affected file silcd/command.c.
9745
9746         * Merged the SKE KE1 and KE2 payloads into one payload.  The
9747           new KE payload is equivalent to the old KE2 payload.
9748
9749           Cleaned up the SKE Start Payload parsing.  It now uses the
9750           simple buffer unformatting to do the parsing.  A lot faster
9751           now.
9752
9753           Added new Mutual Authentication flag (SILC_SKE_SP_FLAG_MUTUAL)
9754           to the SKE that is used to indicate whether both of the SKE
9755           parties should perform authentication.  By default only the
9756           responder performs authentication.  By setting this flag also
9757           the initiator must do authentication.  By default it is unset
9758           since in normal SKE case, client to server connection, only
9759           the responder should do authentication.  When doing SKE between
9760           two clients both should perform authentication.  Updated the
9761           code and the protocol specs.
9762
9763         * A little fix to IDENTIFY command in the server.  Search the
9764           client first by hash not nickname.  Affected file is
9765           silcd/command.c.
9766
9767         * Fixed the silc_client_close_connection to support closing
9768           the client to client connections wihtout deleting too much
9769           data.  Affected file lib/silcclient/client.c.
9770
9771         * Fixed a fatal bug in server and client; if KE1 or KE2 packets
9772           are received if protocol used to be active but is not anymore
9773           the application would crash due to NULL pointer dereference.
9774           Affected files silcd/server.c and lib/silcclient/client.c.
9775
9776         * Added `hash' field to the SilcClientConnection to include
9777           the hash function negotiated in the SKE protocol.
9778
9779         * Added new channel mode SILC_CMODE_FOUNDER_AUTH that is used
9780           to set the channel founder authentication data.  A client can
9781           claim the founder rights later by providing the authentication
9782           data to the CUMODE command using SILC_CUMODE_FOUNDER mode.
9783           This way the channel founder can regain the channel founder
9784           privileges even it is left the channel.  This works only on
9785           local server and the client must be connected to the same
9786           server to be able to regain the founder rights.  Updated the
9787           protocol specs accordingly.
9788
9789           Added support to the CMODE command in the client to set the
9790           founder auth data.  Read the README to see how to set it.
9791
9792           Added support to the CUMODE command to claim the founder
9793           rights.  Read the README to see how to do it.
9794
9795           Added support for the founder authentication to the Channel
9796           Entry in the server.  Affected file silcd/idlist.h.
9797
9798           Added support for the SILC_CMODE_FOUNDER_AUTH mode in the
9799           server's CMODE command.  Affected file silcd/command.c.
9800
9801         * Added the following new functions into lib/silccore/silcauth.[ch]:
9802           silc_auth_get_method and silc_auth_get_data.
9803
9804         * The server now saves the remote hosts public key to the
9805           SilcIDListData pointer.  Affected file silcd/protocol.c.
9806
9807         * The normal server now does not remove the channel entry from
9808           the cache if the founder authentication data is set.  It used
9809           to remove it if the founder was the last one on the channel on
9810           the server and left the channel.  The auth data is saved and
9811           if the channel is re-joined later the old entry is used with
9812           the old auth data.  Affected files silcd/command_reply.c and
9813           silcd/server.c.
9814
9815         * Removed the `pkcs' field from the SilcIDListData structure
9816           in the server; it is not used.  Affected file silcd/idlist.h.
9817
9818 Sat Mar 31 15:38:36 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9819
9820         * Fixed packet processing on slow links.  Partial packets were
9821           never re-processed because the incoming data buffer was cleared
9822           by the application.  Application must not directly clear the
9823           sock->inbuf, the packet processing routines handle it.  Fixed
9824           this in client library and in server.
9825
9826 Fri Mar 30 16:35:27 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9827
9828         * Fixed the WHOIS and IDENTIFY send reply function to really
9829           check whether to send list or just one entry.  Affected file
9830           silcd/command.c.
9831
9832         * Cleaned up the LEAVE command's channel key distribution.  The
9833           affected file silcd/command.c.
9834
9835         * Changed CMODE_CHANGE's <Client ID> to <ID Payload> as server
9836           can enforce the channel mode as well.  In that case the ID
9837           includes the ID of the server.  The code now enforces the
9838           mode change if the router have different mode than the server.
9839
9840         * The notify client operation with CMODE_CHANGE notify can now
9841           return NULL client_entry pointer if the CMODE was not changed
9842           by client.  Application must check for this.
9843
9844         * Added <Server ID> argument to INFO command to support server
9845           info fetching by Server ID.
9846
9847         * Added silc_server_announce_get_channel_users to get assembled
9848           packets of channel users of the specified channel.  Affected
9849           file silcd/server.[ch].
9850
9851         * Fixed bug in CHANNEL_CHANGE notify in the server.  The new ID
9852           was freed underneath the ID Cache.
9853
9854         * Re-announce clients when the server received CHANNEL_CHANGE
9855           notify from the router.  Affected file silcd/packet_send.c.
9856
9857 Thu Mar 29 19:10:28 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9858
9859         * Fixed a fatal bug when client does /join 1 2 3 4 5 6 the server
9860           crashed since it did not handle the fact that there is no cipher
9861           called "3" and didn't check the error condition.  Now fixed.
9862
9863         * Added SILC_MESSAGE_FLAG_REQUEST message flag as generic request
9864           flag.  It can be used to send message requests.
9865
9866 Thu Mar 29 12:26:25 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9867
9868         * Implemented the RESTART command in the client.
9869
9870         * Added SILC_MESSAGE_FLAG_NOTICE message flag for informational
9871           notice type messages.  Added notice printing to the user
9872           interface.
9873
9874         * The channel keys are not re-generated if the channel's mode
9875           is PRIVKEY, ie private key on the channel exists.  Affected
9876           files silcd/server.c and silcd/command.c.
9877
9878         * Fixed a little bug in channel message delivery when channel
9879           private keys are set in the server.  Affected file is
9880           silcd/packet_send.c.
9881
9882         * Changed the setting on channel->on_channel = TRUE from the
9883           silc_client_save_channel_key to the JOIN command reply.  The
9884           key payload is not received if the private channel key is set.
9885           Affected file lib/silcclient/command_reply.c and the
9886           lib/silcclient/client_channel.c.
9887
9888         * When the CMODE_CHANGE notify is sent and the channel private
9889           key mode is removed the channel key must be re-generated in
9890           other cells as well.  Added this support for the router in the
9891           silcd/packet_receive.c.
9892
9893         * Added new local command NOTICE to send notice message on
9894           channel.  Affected file silc/local_command.[ch].
9895
9896 Wed Mar 28 23:55:54 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9897
9898         * Added new local command ME to the client.  It is used to send
9899           message to a channel with SILC_MESSAGE_FLAG_ACTION to indicate
9900           some action.  Affected file silc/local_command.[ch].
9901
9902         * Changed channel_message and private_message client operations
9903           to deliver the message flags to the application.  Added also
9904           the `flags' arguments to the silc_client_send_channel_message
9905           and silc_client_send_private_message functions.  Affected file
9906           silcapi.h.
9907
9908 Wed Mar 28 20:50:47 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9909
9910         * Redefined the Private Message Payload to support private message
9911           keys and to support the new private message flags.  Updated
9912           the protocol specs.  Flags makes it possible to have for example
9913           CTCP style messages.
9914
9915         * Added new type SilcPrivateMessagePayload and defined an API
9916           for it in the lib/silcclient/silcprivate.[ch].
9917
9918         * Tested private message private keys successfully.  Tested the
9919           private message key set, unset and list commands with the new
9920           KEY command.
9921
9922         * Redefined the Channel Message Payload to include the channel
9923           message flags (equal with private message flags) to support
9924           for example CTCP style messages.
9925
9926         * Defined some of the message (for channel and private message)
9927           flags.  Updated the protocol specs and added the flags to the
9928           lib/silccore/silcchannel.h.  The type is SilcMessageFlags.
9929
9930 Wed Mar 28 15:52:36 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9931
9932         * Added SilcKeyAgreementStatus type to the key agreement routines
9933           to indicate the current status and error if one occured.
9934           The status types are defined in the lib/silcclient/silcapi.h.
9935
9936         * Added new local command KEY that is used to set and unset private
9937           keys for channels, set and unset private keys for private messages
9938           with remote clients and to send key agreement requests and
9939           negotiate the key agreement protocol with remote client.  The
9940           key agreement is supported only to negotiate private message keys,
9941           it currently cannot be used to negotiate private keys for channels,
9942           as it is not convenient for that purpose.
9943
9944         * Fixed a minor pending callback setting bug in the function
9945           silc_client_get_client_by_id_resolve, now the function works.
9946           Affected file lib/silcclient/idlist.c.
9947
9948         * Added function silc_net_get_local_port to get local bound
9949           port by socket.  Added to lib/silcutil/silcnet.[ch].
9950
9951         * Added `sockets' and `sockets_count' fields to the SilcClient
9952           object.  They hold the sockets of the listenning sockets in
9953           the client.  Listenning sockets may be for example the key
9954           agreement server.  Affected file lib/silcclient/client.[ch].
9955           Added functions the silc_client_add_socket and the
9956           silc_client_del_socket.  They are exported to the application
9957           as well.
9958
9959         * Added ~./silc/clientkeys to support other client's public keys.
9960
9961         * Renamed verify_server_key client operation to verify_public_key
9962           and added one argument to indicate the type of the connection
9963           (server, client etc.).
9964
9965 Tue Mar 27 22:22:38 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9966
9967         * Added silc_server_connection_auth_request to handle the
9968           incoming CONNECTION_AUTH_REQUEST packet.  Affected file is
9969           silcd/packet_receive.[ch].
9970
9971         * Added silc_server_send_connection_auth_request into the
9972           silcd/packet_send.c to send the connection auth request packet.
9973
9974         * Cleaned up the silcd/protocol.c a bit and fixed some memory
9975           leaks.
9976
9977         * Fixed the public key authentication in responder side in the
9978           server.  The `auth_data' pointer includes the SilcPublicKey
9979           not the path to the public key.  Affected file silcd/protocol.c.
9980
9981         * Implemented the public key authentication in the initiator side
9982           in the server.  Affected file silcd/protocol.c.
9983
9984         * Removed the [RedirectClient] config section from the server
9985           configuration.  Is not needed and I don't want to implement it.
9986
9987 Tue Mar 27 12:49:56 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9988
9989         * Cleaned up the CMODE command in the server.  It now works
9990           correctly and supports all the modes defined in the protocol.
9991           Affected file is silcd/command.c.
9992
9993         * Added `hmac_name' field to the SilcChannelEntry in the server
9994           to hold the default HMAC of the channel.  It can be set when
9995           creating the channel (with JOIN command).  Affected files
9996           silcd/idlist.[ch].
9997
9998         * Added <cipher> and <hmac> argument to the CMODE_CHANGE notify
9999           type to indicate the change of the current cipher and hmac
10000           on the channel.  Client can safely ignore the <cipher> argument
10001           (if it chooses to do so) since the CHANNEL_KEY packet will
10002           force the channel key change anyway.  The <hmac> argument is
10003           important since the client is responsible of setting the new
10004           HMAC and the hmac key into use.
10005
10006         * Fixed the CMODE command in the client library as well.
10007
10008         * Tested CMODE command in router environment successfully.
10009
10010 Mon Mar 26 14:39:48 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
10011
10012         * Show the version of the remote client (or server) when connecting
10013           to the server.  It is logged to the log file.  Affected file
10014           is silcd/protocol.c.
10015
10016         * Fixed the KILLED notify handling in the client library.  The
10017           client must be removed from all channels when receiving the
10018           KILLED notify.
10019
10020           Also, do not remove the client entry when giving the KILL
10021           command but when the KILLED notify is received.
10022
10023         * Removed silc_idlist_find_client_by_nickname from the server.
10024           Not needed anymore.  Affected files silcd/idlist.[ch].
10025
10026         * Implemented the CHANNEL_CHANGE notify type handling to the
10027           server.  Affected file silcd/server.c.
10028
10029         * Updated TODO.
10030
10031 Mon Mar 26 12:11:14 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
10032
10033         * Added silc_server_send_notify_invite to send the INVITE
10034           notify between routers.
10035
10036         * Implemented the INVITE command correctly to the server.
10037
10038         * Implemented the INVITE notify type handling in the server.
10039
10040         * Implemented the INVITE command to the client library and on the
10041           user interface.
10042
10043 Sun Mar 25 20:27:09 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
10044
10045         * Added function silc_server_get_client_resolve to find the
10046           client entry by ID from all ID lists and then resolve it
10047           (using WHOIS) if it cannot be found.  Affected file is
10048           silcd/server.[ch].
10049
10050 Sun Mar 25 13:52:51 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
10051
10052         * Implemented the BAN command to the client library.
10053
10054         * The JOIN command in the server now checks the invite list
10055           and the ban list.
10056
10057         * Changed the silc_command_reply_payload_encode_va and the
10058           silc_command_payload_encode_va to support that if argument is
10059           NULL it ignores and checks the next argument.  Affected file
10060           lib/silccore/silccommand.c.
10061
10062         * Added silc_server_send_notify_ban to send the BAN notify
10063           type between routers.
10064
10065         * Chaned the silc_notify_payload_encode to support that if
10066           argument is NULL it ignores and checks the next argument.
10067           Affected file lib/silccore/silcnotify.c.
10068
10069         * Tested ban lists in router environment successfully.
10070
10071 Sat Mar 24 14:47:25 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
10072
10073         * Implemented BAN command to the server, in silcd/command.[ch].
10074
10075         * Removed the BAN and INVITE_LIST modes from the CMODE command
10076           in the server code.
10077
10078         * Added function silc_string_match to regex match two strings.
10079           Affected files lib/silcutil/silcutil.[ch].
10080
10081 Fri Mar 23 22:02:40 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
10082
10083         * Redefined parts of the SilcChannelEntry in the server to support
10084           the new ban and invite lists.
10085
10086 Fri Mar 23 16:25:11 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
10087
10088         * Redefined the INVITE command.  The same command can be used to
10089           invite individuals to the channel but also to manage the invite
10090           list of the channel (to add to and remove from the invite list).
10091           Updated the protocol specs.
10092
10093         * Added new command SILC_COMMAND_BAN that can be used to manage
10094           the ban list of the channel.  Updated the protocol specs.
10095
10096         * Removed the channel modes: the SILC_CMODE_BAN and the
10097           SILC_CMODE_INVITE_LIST as they were a bit kludge to be included
10098           in the CMODE command.  The equivalent features are now available
10099           using INVITE and BAN commands.  Updated the protocol specs.
10100
10101         * Added new SILC_NOTIFY_TYPE_BAN notify type to notify routers
10102           in the network about change in the current ban list.  The notify
10103           type is not used by the client.
10104
10105         * Redefined parts of the SILC_NOTIFY_TYPE_INVITE command to
10106           support the invite lists.
10107
10108 Thu Mar 22 22:52:23 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
10109
10110         * Added new function silc_string_regexify that converts string
10111           including wildcard characters into regex string that can
10112           be used by the GNU regex library.  Added into the file
10113           lib/silcutil/silcutil.[ch].
10114
10115           Added silc_string_regex_combine to combine to regex strings
10116           into one so that they can be used as one regex string by
10117           the GNU regex library.  Added into the file
10118           lib/silcutil/silcutil.[ch].
10119
10120           Added silc_string_regex_match to match two strings.  It returns
10121           TRUE if the strings match.  Added into lib/silcutil/silcutil.[ch].
10122
10123 Thu Mar 22 15:29:42 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
10124
10125         * Imported GNU regex to the soruce tree into lib/contrib.
10126           Fixed some compiler warning from the regex.c.
10127
10128 Wed Mar 21 15:27:58 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
10129
10130         * Fixed MOTD command in the server to work in router environment.
10131
10132         * Fixed the MOTD command in the client library to support
10133           the server argument in the command.
10134
10135         * Added `nickname_len' argument to the silc_idlist_add_client
10136           in the server, as the `nickname' argument may be binary data
10137           (it may be hash).
10138
10139         * Added silc_idlist_get_channels to return all channels from
10140           the ID list.
10141
10142         * Implemented LIST command to the server.  Affected file is
10143           silcd/command.c.
10144
10145         * Implemented the LIST command to the client library and on the
10146           user interface.
10147
10148         * Added [<user count>] argument to the LIST command reply.
10149           With private channels the user count is not shown.
10150
10151         * Updated TODO and README.
10152
10153 Tue Mar 20 21:05:57 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
10154
10155         * The client entry's data.registered must be TRUE even with
10156           global client entry on global client list.  The data.registered
10157           is used to check whether the client is anymore in the network,
10158           for example with WHOWAS command so it must be valid.
10159
10160         * Fixed the WHOWAS command in the server.  It now actually works
10161           in router environment.  Added function into silcd/command_reply.c
10162           silc_server_command_reply_whowas_save.
10163
10164         * Added silc_idlist_purge function to the silcd/idlist.c
10165           to periodically purge the ID Cache.
10166
10167         * Fixed INFO command in the server.  It works now in router
10168           environment.  Added <server name> argument to the INFO command
10169           reply.  Updated the protocol specs.
10170
10171         * Fixed minor bug in silc_idcache_purge to not purge if the
10172           expire value is zero.
10173
10174         * Fixed various bugs in WHOIS and IDENTIFY command handling as
10175           they were buggy because of the WHOWAS information.
10176
10177         * Fixed local command MSG to handle the async resolving of
10178           the remote client properly.  It used to fail the first MSG.
10179           Affected file silc/local_command.c.
10180
10181         * Added `data_len' field to SilcIDCache context.
10182
10183 Tue Mar 20 16:29:00 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
10184
10185         * Update TODO.  Todo in commands in the server.
10186
10187 Tue Mar 20 15:45:14 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
10188
10189         * Added new notify type SILC_NOTIFY_TYPE_UMODE_CHANGE that is
10190           used by routers as broadcast packet to inform other routers
10191           about the changed user mode.
10192
10193           Implemented the notify handling in the server.  Affected file is
10194           silcd/packet_receive.c.  Added the function
10195           silc_server_send_notify_umode to the silcd/packet_send.[ch].
10196
10197         * Added new generic Channel Payload and deprecated the New Channel
10198           Payload.  The New Channel Payload is now the generic Channel
10199           Payload.
10200
10201         * Added new argument `mode' to the silc_server_send_new_channel
10202           as it is required in the Channel Payload now.
10203
10204         * Renamed the SilcChannelPayload to SilcChannelMessagePayload
10205           and created a new and real SilChannelPayload to represent the
10206           new generic Channel Payload.  Implemented the encode/decode
10207           for Channel Payload.  Affected file lib/silccore/silcchannel.[ch].
10208
10209         * Added silc_server_get_client_channel_list to return the list
10210           of channels the client has joined for WHOIS command reply.
10211           Affected file silcd/server.[ch].
10212
10213         * Implemented the channel list sending in the WHOIS command reply
10214           in server and in the client.
10215
10216           Implemented the channel list displaying on the user interface
10217           as well.  Affected file silc/client_ops.c.
10218
10219         * Added silc_channel_payload_parse_list to parse list of Channel
10220           Payloads.  It returns SilcDList list of SilcChannelPayloads.
10221           Client for example can use this function to parse the list of
10222           channels it receives in the WHOIS command reply.  The caller
10223           must free the list by calling silc_channel_payload_list_free.
10224           Affected files lib/silccore/silcchannel.[ch].
10225
10226 Mon Mar 19 21:39:15 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
10227
10228         * Added one new argument <user mode> to the WHOIS command reply
10229           to return the mode of the user in SILC.  Updated the protocol
10230           specs.
10231
10232           Implemented it to the server and client.
10233
10234 Mon Mar 19 18:43:06 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
10235
10236         * Fixed the mode printing on the user interface on joining.
10237           Affected file silc/client_ops.c.
10238
10239         * Implemented the UMODE command and user modes in general to the
10240           client library and to the user interface.
10241
10242         * Implemented the UMODE command to the server.
10243
10244         * The server now sends UNKNOWN_COMMAND error status if client sends
10245           unknown command.  Affected file silcd/command.c.
10246
10247         * All server commands now handle the command identifier the right
10248           way when sending the command reply to the client.  The client can
10249           use to identify the command replies with the identifier.
10250
10251 Mon Mar 19 16:13:07 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
10252
10253         * Added silc_server_get_client_route to resolve the route to
10254           the client indicated by the client ID.  Affected file is
10255           silcd/server.[ch].
10256
10257         * Added silc_server_relay_packet as general function to relay
10258           packet to arbitrary destination.  This deprecates functions
10259           like _send_private_message_key, _relay_notify etc.  Affected
10260           file is silcd/packet_send.[ch].
10261
10262           Removed silc_server_send_key_agreement,
10263           silc_server_send_private_message_key and
10264           silc_server_packet_relay_notify functions from the file
10265           silcd/packet_send.[ch].
10266
10267         * Updated TODO.
10268
10269         * Implemented the SILC_NOTIFY_TYPE_KILLED notify handling in the
10270           server.  Affected file silcd/packet_receive.[ch].
10271
10272         * Implemented the KILL command to the client.  Implemented the
10273           SILC_NOTIFY_TYPE_KILLED notify handling in the client library.
10274           Affected files lib/silcclient/command[_reply].c and
10275           lib/silcclient/client_notify.c.  Implemented the KILL notify
10276           printing in the user inteface.
10277
10278         * Fixed a lot silc_parse_nick memory leaks from the client
10279           library in the file lib/silcclient/command.c.
10280
10281         * Changed the silc_server_send_notify_on_channels's `sender'
10282           argument from SilcSocketConnection to SilcClientEntry to
10283           check the sender as entry and not as connection object and not
10284           to send to the client provided as argument.  The affected file
10285           is silcd/packet_send.[ch].
10286
10287         * The notify packets that are destined directly to the client used
10288           to not to be processed by the server.  Now changed that and the
10289           server processes all notify packets.  After relaying the packet
10290           to the client the notify packet is processed in the server.
10291
10292         * The silc_server_free_client_data now checks whether there is
10293           pending outgoing traffic for the client and purges the data to
10294           the network before removing the client entry.
10295
10296 Sun Mar 18 21:02:47 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
10297
10298         * Added SILC_NOTIFY_TYPE_KILLED notify type.  It is sent when
10299           an client is killed from the SILC Network.  Updated the protocol
10300           specs accordingly.
10301
10302           Added new function silc_server_send_notify_killed to the
10303           silcd/packet_send.[ch].
10304
10305         * Added function silc_server_packet_relay_notify to relay notify
10306           packets that are destined directly to a client.  In this case
10307           the server does not process the notify packets but merely relays
10308           it to the client.  Affected file silcd/packet_send.[ch].
10309
10310           Added also silc_server_packet_process_relay_notify to check
10311           whereto relay the notify.  Affected file is
10312           silcd/packet_receive.[ch].
10313
10314         * Implemented the KILL command to the server.
10315
10316         * Updated TODO.
10317
10318         * Added the backup schema desgined last fall to the protocol
10319           specs for everyone to see.  The specification is in the
10320           *-spec-xx.txt draft and the packet type definitions for the
10321           backup routers is in *-pp-xx.txt draft.  Thusly, added also
10322           new packet type SILC_PACKET_CELL_ROUTERS.
10323
10324         * A big security problem in the implementation discovered.  The
10325           signoff of an client did not cause new channel key generation
10326           which it of course should've done.  The channel keys must be
10327           always re-generated when client leaves (or signoffs) the channel.
10328           The silc_server_remove_from_channels funtion now handles
10329           the channel key re-generation.
10330
10331         * Added `sender' argument to the silc_server_send_notify_on_channels
10332           to not to send the client provided as argument.  Affected file
10333           silcd/packet_send.[ch].
10334
10335 Fri Mar 16 15:52:49 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
10336
10337         * Implemented OPER and SILCOPER commands into the server and
10338           the client library.
10339
10340         * Added silc_auth_verify and silc_auth_verify_data to verify
10341           the authentication directly from the authentication payload.
10342           It supports verifying both passphrase and public key based
10343           authentication.  Affected file lib/silccore/silcauth.[ch].
10344
10345         * Added `hash' field to the SilcIDListData structure.  It is the
10346           hash negotiated in the SKE protocol.  Affected file is
10347           silcd/idlist.[ch].
10348
10349         * Slight redesigning of the SilcAuthPayload handling routines.
10350           Do not send SilcPKCS but SilcPublicKey as argument.
10351
10352         * Implemented the public key authentication support to the
10353           serverconfig.  The public key is loaded from the provided path
10354           and saved as authentication data to void * pointer.  Thus,
10355           changed the unsigned char *auth_data to void *auth_data;
10356
10357         * Fixed SHUTDOWN command to send the reply before the server
10358           is shutdown. :)  Affected file silcd/command.c.
10359
10360         * Fixed fatal bug in CONNECT command.  The hostname was invalid
10361           memory and server crashed.  Affected file silcd/command.c.
10362
10363         * Fixed fatal bug in CLOSE command.  The server_entry became
10364           invalid but was referenced later in the command.  Affected file
10365           silcd/command.c.
10366
10367 Thu Mar 15 12:46:58 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
10368
10369         * Fixed fatal bug in failure packet handling.  Server ignored
10370           the failure and thus crashed when it came.
10371
10372         * Updated TODO.
10373
10374 Wed Mar 14 20:37:35 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
10375
10376         * Added new SILC_CF_LAG_STRICT command flag that strictly forces
10377           that the command may be executed only once in (about) 2 seconds.
10378           The old SILC_CF_LAG flag is same but allows command bursts up
10379           to five before limiting.
10380
10381           Added the support for CF_LAG and CF_LAG_STRICT flags to the
10382           server code.  Various commands now includes the CF_LAG_STRICT
10383           flag to disallow any kind of miss-use of the command.
10384
10385         * Fixed the silc_buffer_unformat to not to allocate any data
10386           if the length of the data is zero.  It used to allocate the
10387           length + 1.  Affected file lib/silcutil/silcbuffmt.c.
10388
10389 Wed Mar 14 16:10:30 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
10390
10391         * Changed the format of AdminConnection configuration section
10392           in the server.  Added username of the admin to the format.
10393           Affected files silcd/serverconfig.[ch].
10394
10395           Added silc_server_config_find_admin into silcd/serverconfig.[ch]
10396           to return admin configuration data by host, username and/or
10397           nickname.
10398
10399 Wed Mar 14 13:18:16 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
10400
10401         * Implemented WHOWAS command to the server.  Added the functions:
10402
10403           silc_server_command_whowas_parse,
10404           silc_server_command_whowas_send_reply,
10405           silc_server_command_whowas_from_client and
10406           silc_server_command_whowas_from_server
10407
10408         * Added <Client ID> argument to the WHOWAS command reply.  Updated
10409           the protocol specs accordingly.
10410
10411         * Implemented WHOWAS command and command_reply to the client
10412           library.
10413
10414           Implemented the WHOWAS printing on the user interface.
10415
10416 Tue Mar 13 22:17:34 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
10417
10418         * Added new argument to the WHOWAS command reply, the real name.
10419           It is an optional argument.  Updated the protocol specs.
10420
10421         * Added SilcIDCacheDestructor callback that is registered when
10422           the SilcIDCache is allocated.  The callback is called when
10423           an cache entry in the ID Cache expires, or is purged from the
10424           cache.  Added into lib/silccore/idcache.[ch].
10425
10426           Added silc_idlist_client_destructor to the silcd/idlist.[ch]
10427           to destruct the client entries when the cache entry expires.
10428           Other ID Cache's in server and in the client library ignores
10429           the destructor.
10430
10431         * If the ID Cache entry's `expire' field is zero then the entry
10432           never expires.  Added boolean `expire' argument to the
10433           silc_idcache_add function in the lib/silccore/idcache.[ch].
10434           If it is TRUE the default expiry value is used.
10435
10436         * Added silc_server_free_client_data_timeout that is registered
10437           when client disconnects.  By default for 5 minutes we preserve
10438           the client entry for history - for WHOWAS command.
10439
10440 Tue Mar 13 13:26:18 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
10441
10442         * Added support to the server to enforce that commands are not
10443           executed more than once in 2 seconds.  If server receives
10444           commands from client more frequently, timeout is registered
10445           to process the commands.  Affected file silcd/command.c.
10446           Added new function silc_server_command_process_timeout.
10447
10448         * Changed NICK_NOTIFY handling in client library to check that
10449           if the client's nickname was changed, so there is no need to
10450           resolve anything from the server.
10451
10452         * Removed error printing from the WHOIS and IDENTIFY commands.
10453           If error occurs then it is ignored silently in the client library.
10454           The application, however, may map the received error to
10455           human readable error string.  The application currently maps
10456           the NO_SUCH_NICKNAME error to string.
10457
10458         * Made the command status message public to the application.  Moved
10459           them from lib/silcclient/command_reply.c to
10460           lib/silcclient/command_reply.h.  The application can map the
10461           received command status to the string with the
10462           silc_client_command_status_message function.
10463
10464         * Added check to the server to check that client's ID is same
10465           as the Source ID in the packet the client sent.  They must
10466           match.
10467
10468 Tue Mar 13 12:49:21 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
10469
10470         * Added dist-bzip hook to the Makefile.am to make bzip2
10471           compressed distributions.
10472
10473 Mon Mar 12 18:43:38 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
10474
10475         * Server now enforces the maximum length for the nickname and
10476           the channel as protocol specification dictates.  128 bytes for
10477           nickname and 256 bytes for channel name.
10478
10479         * Moved the WHOIS printing to the application.  The client libary
10480           does not print out the WHOIS information anymore, the application
10481           must do it.  Renamed silc_client_command_reply_whois_print to
10482           the silc_client_command_reply_whois_save.
10483
10484           The client's idle time is also sent to the application now, and
10485           the idle is shown on screen.
10486
10487         * Added silc_client_command_reply_identify_save to save the
10488           received IDENTIFY entries.
10489
10490         * Do not check for channel private keys in message sending and
10491           reception if the channel does not have the PRIVKEY mode set.
10492           Affected file lib/silclient/client_channel.c.
10493
10494 Sun Mar 11 20:25:06 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
10495
10496         * Fixed a minor bug if WHOIS and IDENTIFY command parsing that
10497           just surfaced after chaning the JOIN procedure.
10498
10499 Sun Mar 11 14:59:05 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
10500
10501         * Added silc_client_get_clients_by_list to get client entries
10502           from Client ID list, that is returned for example by JOIN
10503           and USERS command replies.  The application should use this
10504           function for example when JOIN command reply is received to
10505           resolve the clients already on the channel (library does not
10506           do that anymore as USERS command reply is not used in the JOIN
10507           procedure anymore).  Affected files lib/silcclient/silcapi.h and
10508           lib/silcclient/idlist.c.
10509
10510         * JOIN command reply and USERS command reply returns now SilcBuffer
10511           pointers instead of unsigned char pointers when returning
10512           the client list and mode list.
10513
10514         * Added <Client ID> argument to the JOIN command reply, mainly
10515           for the server to identify for which client the command was
10516           originally sent.  Updated protocol specs accordingly.
10517
10518         * Added SilcDlist private_key pointer to the SilcChannelEntry
10519           in the client to support the channel private keys.  Affected
10520           file is lib/silcclient/idlist.h.
10521
10522         * Added SilcChannelPrivateKey argument to the function
10523           silc_client_send_channel_message so that application can choose
10524           to use specific private ke if it wants to.  If it is not provided,
10525           the normal channel key is used, unless private keys are set.
10526           In this case the first (key that was added first) is used
10527           as the encryption key.
10528
10529         * Implemented the support for channel private key handling.
10530           Implemented the following functions:
10531
10532           silc_client_add_channel_private_key,
10533           silc_client_del_channel_private_keys,
10534           silc_client_del_channel_private_key,
10535           silc_client_list_channel_private_keys and
10536           silc_client_free_channel_private_keys
10537
10538           Affected file lib/silcclient/client_channel.c.
10539
10540         * Added the support for the private keys in the channel message
10541           sending and encryption and in the message reception and
10542           decryption.  Affected funtions are
10543           silc_client_send_channel_message and silc_client_channel_message.
10544
10545 Sat Mar 10 21:36:22 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
10546
10547         * Added SKE's key verify callback to the client library's
10548           KE protocol context. Affected files lib/silcclient/protocol.[ch].
10549
10550         * Removed the statement that server (or router) must send USERS
10551           command reply when joining to the channel so that the client
10552           knows who are on the channel.  Instead, the client list and
10553           client's mode list is now sent in the JOIN command reply to the
10554           client who joined channel.  This is better solution.
10555
10556         * Added function silc_server_get_users_on_channel and function
10557           silc_server_save_users_on_channel to the silcd/server.[ch].
10558
10559         * Removed function silc_server_command_send_users from the
10560           silcd/command.c.
10561
10562         * Do not show topic on the client library anymore.  The topic is
10563           sent in the command reply notify to the application and the
10564           application must show the topic now.
10565
10566 Sat Mar 10 00:07:37 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
10567
10568         * Added client searching by nickname hash into the IDENTIFY and
10569           WHOIS commands in the server as they were clearly missing from
10570           them.  Affected file is silcd/command.c.
10571
10572         * Fixed a bug in private message receiving in the client library.
10573           The remote ID was freed and it wasn't supposed, now it is
10574           duplicated.
10575
10576 Fri Mar  9 12:40:42 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
10577
10578         * Minor fix to the channel payload; allocate the data area, as it
10579           needs to be of specific length.
10580
10581         * If the key agreement port is zero then the operating
10582           system will define the bound port.  Affected files are
10583           lib/silcclient/silcapi.h and lib/silcclient/client_keyagr.c.
10584
10585         * Added new function silc_channel_payload_decrypt into the file
10586           lib/silccore/silcchannel.[ch].
10587
10588         * Moved the channel message etc, check from silc_packet_decrypt
10589           to applications.  The library calls now a generic
10590           SilcPacketCheckDecrypt callback which is to return TRUE or FALSE
10591           when the packet is either normal or special.  This was done to
10592           allow more wide range of checking that was not allowed when
10593           the code was in library.  Now applications can do virtually any
10594           checks to the packet and return to the library the decision how
10595           the packet should be processed.  Affected files are
10596           lib/silccore/silcpacket.[ch].
10597
10598           Added silc_server_packet_decrypt_check to the server and
10599           silc_client_packet_decrypt_check to the client library.
10600
10601         * Added silc_server_packet_send_srcdest into silcd/packet_send.[ch]
10602           to send with specified source and destination information.
10603
10604         * Channel message delivery between routers was broken after the
10605           channel key distribution was fixed earlier.  The channel key
10606           was used be to distributed to other routers as well which is not
10607           allowed by the protocol.  Now this is fixed and channel keys
10608           really are cell specific and the channel message delivery between
10609           routers comply with the protocol specification.
10610
10611         * Fixed various commands in server to check also the global list
10612           for the channel entry and not just the local list.  The affected
10613           file silcd/command.c.
10614
10615 Thu Mar  8 21:39:03 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
10616
10617         * Added assert()s to buffer formatting and unformatting routines
10618           to assert (if --enable-debug) when error occurs.  Affected
10619           file: lib/silcutil/silcbuffmt.c.
10620
10621         * Changed to auto-reconnect to check whether the remote host is
10622           router and register the re-connect timeout if it is.  It used
10623           to check that whether we are normal server, but router must do
10624           auto-reconnect with another router as well.  Affected file
10625           silcd/server.c.
10626
10627         * Removed the [<key len>] option from CMODE command as the cipher
10628           name decides the key length, nowadays.  See the defined ciphers
10629           from the protocol specification.
10630
10631         * Added [<hmac>] option to the CMODE command to define the HMAC
10632           for the channel.  Added SILC_CMODE_HMAC channel mode.
10633
10634         * Added [<hmac>] option for the JOIN command so that user can
10635           select which HMAC is used to compute the MACs of the channel
10636           messages.
10637
10638         * Added Hmac field to the Channel Message Payload.  The integrity
10639           of plaintext channel messages are now protected by computing
10640           MAC of the message and attaching the MAC to the payload.  The
10641           MAC is encrypted.  Now, it is clear that this causes some
10642           overhead to the size of the packet but rationale for this is that
10643           now the receiver can verify whether the channel message decrypted
10644           correctly and also when private keys are set for the channel the
10645           receiver can decrypt the packet with several keys and check from
10646           the MAC which key decrypted the message correctly.
10647
10648         * Added silc_cipher_encrypt and silc_cipher_decrypt into the
10649           lib/silccrypt/silccipher.[ch].
10650
10651         * Added silc_hash_len to return the digest length into the
10652           lib/silcrypt/silchash.[ch].
10653
10654         * Rewrote parts of Silc Channel Payload interface in the
10655           lib/silccore/silcchannel.[ch].  The encode function now also
10656           encrypts the packet and parse function decrypts it.
10657
10658 Wed Mar  7 20:58:50 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
10659
10660         * Fixed a minor formatting bug in the SKE's key material processing.
10661           It actually might have processed the keys wrong way resulting
10662           into wrong keys.
10663
10664         * Redefined the mandatory HMAC algorithms and added new algorithms.
10665           Added hmac-sha1-96 and hmac-md5-96 which are normal hmac-sha1
10666           and hmac-md5 truncated to 96 bits.  The mandatory is now
10667           hmac-sha1-96.  Rest are optional (including the one that used
10668           to be mandatory).  Rationale for this is that the truncated HMAC
10669           length is sufficient from security point of view and can actually
10670           make the attack against the HMAC harder.  Also, the truncated
10671           HMAC causes less overhead to the packets.  See the RFC2104 for
10672           more information.
10673
10674         * Added new [hmac] configuration section.  The SKE used to use
10675           the hash names (md5 and sha1) in the SKE proposal as HMCAS which
10676           is of course wrong.  The official names that must be proposed in
10677           the SKE are the ones defined in the protocol specification
10678           (hmac-sha1-96 for example).  The user can configure any hmac
10679           using any hash function configured in the [hash] section.  At
10680           least, the mandatory must be configured.
10681
10682           Rewrote the HMAC interface in lib/silccrypt/silchmac.[ch].
10683
10684         * Added HMAC list to the SKE proposal list.  It has now both
10685           hash algorithm list and HMAC list.  This makes the protocol
10686           incompatible with previous versions.  The SKE now seems to work
10687           the way it is supposed to work, for the first time actually.
10688
10689         * Defined plain Hash algorithms to the protocol specification.
10690           Added sha1 and md5.
10691
10692 Tue Mar  6 15:36:11 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
10693
10694         * Implemented support for key agreement packets into the server.
10695           Added functions silc_server_key_agreement and
10696           silc_server_send_key_agreement.  Other than these functions,
10697           server has nothing to do with this packet.
10698
10699         * Added support for private message key packets into the server.
10700           Added functions silc_server_private_message_key and
10701           silc_server_send_private_message_key.
10702
10703         * Updated TODO.
10704
10705         * Changed the silc_[client|server]_protocol_ke_set_keys to be
10706           called in the protocol's final callback instead in the END
10707           protocol state.  This makes a little more sense and in the same
10708           time in client we can use the same protocol routines for normal
10709           key exchange and to key agreement packet handling as well.
10710
10711         * Added to both client's and server's KE protocol context the
10712           SilcSKEKeyMaterial pointer to save the key material.  We will
10713           bring the key material to the protocol's final callback by doing
10714           this.  The final callback must free the key material.
10715
10716         * Added SKE's packet_send callback into client's KE protocol
10717           context so that the caller can choose what packet sending function
10718           is used.  This way we can use different packet sending when
10719           doing normal SKE when doing key agreement packet handling (in
10720           the key agreement packet handling we do not want to encrypt
10721           the packets).
10722
10723         * Implemented the responder side of the key agreement routines
10724           in the client.  The client can now bind to specified port and
10725           accept incoming key negotiation.  The key material is passed
10726           to the application after the protocol is over.
10727
10728         * Implemented the processing of incoming Key Agreement packet
10729           in the client.  Added function silc_client_key_agreement to
10730           process the packet.
10731
10732         * Implemented the intiator side of the key agreement routines
10733           in the client.  The client can now initiate key agreement with
10734           another remote client.  The key material is passed to the
10735           application after the protocol is over.
10736
10737         * Created client_keyagr.c to include all the key agreement
10738           routines.
10739
10740         * Added macro SILC_TASK_CALLBACK_GLOBAL which is equal to the
10741           SILC_TASK_CALLBACK except that it is not static.
10742
10743         * Created client_notify.c and moved the Notify packet handling
10744           from the client.[ch] into that file.
10745
10746         * Created client_prvmsg.c and moved all private message and
10747           private message key routines from the client.[ch] into that file.
10748
10749         * Create client_channel.c and moved all channel message and
10750           channel private key routines from the client.[ch] into that file.
10751
10752         * Changed silc_client_get_client_by_id_resolve to resolve with
10753           WHOIS command instead of IDENTIFY command, in the file
10754           lib/silclient/idlist.c.
10755
10756 Mon Mar  5 18:39:49 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
10757
10758         * Implemented the SKE's responder side to the Client library.
10759
10760         * When FAILURE is received to the protocol do not trust it
10761           blindly.  Register a timeout to wait whether the remote closes
10762           the connection as it should do it, only after that process the
10763           actual failure.  This was changed to both client and server.
10764
10765         * Added client_internal.h to include some of the structures
10766           there instead of client.h in lib/silcclient/.
10767
10768         * Added function silc_task_unregister_by_callback to unregister
10769           timeouts by the callback function.
10770
10771 Sat Mar  3 19:15:43 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
10772
10773         * Some "Incomplete WHOIS info" errors has been appearing on the
10774           log files.  Took away the entry->userinfo check from WHOIS
10775           reply sending.  The entry->userinfo is now " " if client did not
10776           provide one.  I thought this was fixed earlier but something
10777           is wrong still.  Let's see if the error still appears.
10778
10779 Wed Feb 28 20:56:29 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
10780
10781         * Fixed a minor bug in the login when the channel key is
10782           re-generated in the server.  It used to generate the key in
10783           wrong order and thus caused problems in the channel traffic.
10784
10785         * Fixed a minor bug in channel key distsribution after
10786           KICK command.  The key was not sent to the router even though
10787           it should've been.
10788
10789 Tue Feb 27 20:24:25 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
10790
10791         * Added silc_ske_process_key_material_data as generic routine
10792           to process any key material as the SILC protocol dictates.  The
10793           function is used by the actual SKE library but can be used by
10794           applications as well.  This relates to the private message keys
10795           and the channel private keys since they must be processed the
10796           same way the normal SILC session keys.  The protocol dictates
10797           this.  Affected files: lib/silcske/silcske.[ch].
10798
10799           Added also silc_ske_free_key_material to free the
10800           SilcSKEKeyMaterial structure.
10801
10802         * Defined silc_cipher_set_key function to set the key for
10803           cipher without using the object's method function.  The affected
10804           files: lib/silccrypt/silccipher.[ch].
10805
10806         * Implemented silc silc_client_add_private_message_key,
10807           silc_client_add_private_message_key_ske,
10808           silc_client_del_private_message_key,
10809           silc_client_list_private_message_keys and
10810           silc_client_free_private_message_keys functions in the
10811           client library.
10812
10813           Added functions silc_client_send_private_message_key to send
10814           the Private Message Key payload and silc_client_private_message_key
10815           to handle incoming Private Message Key payload.
10816
10817         * Added Cipher field to the Private Message Key payload to set
10818           the cipher to be used.  If ignored, the default cipher defined
10819           in the SILC protocol (aes-256-cbc) is used.
10820
10821 Tue Feb 27 13:30:52 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
10822
10823         * Removed lib/silcclient/ops.h file.
10824
10825           Redefined parts of the SILC Client Library API. Created new
10826           file silcapi.h that deprecates the ops.h file and defines the
10827           published Client Library API.  Defined also private message key
10828           API and channel private key API into the file.
10829
10830           This is the file that the application must include from the
10831           SILC Client Library.  Other files need not be included by
10832           the application anymore.
10833
10834         * Added new key_agreement client operation callback and also
10835           defined the Key Agreement library API for the application.
10836
10837 Tue Feb 27 11:28:31 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
10838
10839         * Added new packet type: SILC_PACKET_KEY_AGREEMENT.  This packet
10840           is used by clients to request key negotiation  between another
10841           client in the SILC network.  If the negotiation is started it
10842           is performed using the SKE protocol.  The result of the
10843           negotiation, the secret key material, can be used for example
10844           as private message key.
10845
10846           Implemented the Key Agreement payload into the files
10847           lib/silccore/silauth.[ch].
10848
10849 Mon Feb 26 12:13:58 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
10850
10851         * Redefined ciphers for the SILC protocol.  Added some new ciphers
10852           and defined the key lengths for the algorithms.  Changed the
10853           code accordingly.  The default key length is now 256 bits.
10854
10855         * Fixed SKE key distribution function silc_ske_process_key_material
10856           when the key length is more than 128 bits.  The default key
10857           length in SILC is now 256 bits.
10858
10859         * Added new command status type: SILC_STATUS_ERR_UNKOWN_ALGORITHM
10860           to indicate unsupported algorithm.
10861
10862         * Renamed rijndael.c to aes.c and all functions as well.
10863
10864         * Fixed a long standing channel key setting bug in client library.
10865           Weird that it has never surfaced before.
10866
10867         * Fixed bug in channel deletion.  If the entire channel is removed
10868           then it must also delete the references of the channel entry
10869           from the client's channel list as the client's channel entry and
10870           the channel's client entry share same memory.
10871
10872 Sun Feb 25 20:47:29 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
10873
10874         * Implemented CONNECT and SHUTDOWN commands in the client.
10875
10876         * Implemented CLOSE command to the client.
10877
10878         * Added the function silc_idlist_find_server_by_name into the
10879           files silcd/idlist.[ch].
10880
10881           Added the function silc_idlist_find_server_by_conn into the
10882           files silcd/idlist.[ch].
10883
10884 Sat Feb 24 23:45:49 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
10885
10886         * DIE command was renamed to SHUTDOWN.  Updated the both code
10887           and protocol specs.
10888
10889         * Defined SILC_UMODE_NONE, SILC_UMODE_SERVER_OPERATOR and
10890           SILC_UMODE_ROUTER_OPERATOR modes into lib/silccore/silcmode.h.
10891
10892         * Implemented CONNECT, CLOSE and SHUTDOWN commands to the server
10893           side.
10894
10895         * Added function silc_server_create_connection function to create
10896           connection to remote router.  My server implementation actually
10897           does not allow router to connect to normal server (it expects
10898           that normal server always initiates the connection to the router)
10899           so the CONNECT command is only good for connecting to another
10900           router.
10901
10902 Sat Feb 24 16:03:45 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
10903
10904         * Added SILC_NOTIFY_TYPE_KICKED to indicate that the client
10905           or some other client was kicked from the channel.
10906
10907           Implemented the handling of the notify type to both client
10908           and server.
10909
10910           Implemented silc_server_send_notify_kicked to send the KICKED
10911           notify.  It is used to send it to the server's primary router.
10912
10913         * Implemented the KICK command into server and client.
10914
10915         * Added `query' argument to the silc_idlist_get_client function
10916           to indicate whether to query the client from server or not if
10917           it was not found.
10918
10919         * Added new command status type SILC_STATUS_ERR_NO_CHANNEL_FOPRIV
10920           to indicate that the client is not channel founder.
10921
10922         * Updated TODO.
10923
10924 Sat Feb 24 00:00:55 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
10925
10926         * Removed the rng context from SilcPacketContext structure and
10927           changed that the packet routine uses the Global RNG API.
10928
10929 Fri Feb 23 11:22:57 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
10930
10931         * Added support for quit message that client can "leave" on the
10932           channel when it quits the SILC.  It is ditributed inside the
10933           SILC_NOTIFY_TYPE_SIGNOFF notify type.
10934
10935           Added silc_server_free_client_data that will take the
10936           signoff message as argument.
10937
10938         * Changed SKE routines to use the silc_pkcs_sign/verify routines.
10939
10940 Thu Feb 22 23:05:36 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
10941
10942         * Updated parts of the protocol specification to keep it up
10943           to date.
10944
10945 Thu Feb 22 15:08:20 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
10946
10947         * Added List flag (SILC_PACKET_FLAG_LIST) to indicate list of
10948           payloads in one packet.
10949
10950         * Deprecated following packet types: NEW_ID_LIST, NEW_CHANNEL_LIST,
10951           NEW_CHANNEL_USER_LIST, SET_MODE and SET_MODE_LIST.  List packets
10952           use now the new List flag.
10953
10954         * Also deprecated the following packet types: REPLACE_ID,
10955           NEW_CHANNEL_USER and REMOVE_CHANNEL_USER packet types.
10956
10957         * Added list support for Notify packet in server.
10958
10959         * Added silc_server_send_notify_channel_change to send the
10960           CHANNEL_CHANGE notify type to replace channel ID's.  Deprecates
10961           the silc_server_send_replace_id.
10962
10963         * Added silc_server_send_notify_nick_change to send the
10964           NICK_CHANGE notify type.  Deprecates the function
10965           silc_server_send_replace_id.
10966
10967         * Added silc_server_send_notify_join to send the JOIN notify type.
10968           Deprecates the function silc_server_send_new_channel_user.
10969
10970         * Added silc_server_send_notify_leave to send LEAVE notify type.
10971           Deprecates the function silc_server_send_remove_channel_user.
10972
10973         * Added silc_server_send_notify_cmode and
10974           silc_server_send_notify_cumode to send CMODE and CUMODE notify
10975           types.  Deprecates the silc_server_send_set_mode function.
10976
10977         * Added SERVER_SIGNOFF notify type to indicate that server has
10978           quit.  This means that all clients on the channel from that
10979           server will drop.  This can be also used when netsplit happens.
10980
10981           Deprecated REMOVE_ID packet type since it is not needed anymore
10982           even from server.
10983
10984           Added silc_server_send_notify_server_signoff to send the
10985           SERVER_SIGNOFF notify type.  Deprecates the function
10986           silc_server_send_remove_id.
10987
10988           Added also silc_server_send_notify_signoff to send the
10989           SIGNOFF notify type.
10990
10991         * Employed the PKCS #1. It is the mandatory way to do RSA in the
10992           SILC protocol from this day on.  Changed the protocol
10993           specification as well.
10994
10995         * Added silc_server_send_notify_topic_set to send TOPIC_SET
10996           notify type.  It is used between routers to notify about
10997           topic changes on a channel.
10998
10999         * Added silc_id_dup into lib/silccore/id.[ch] to duplicate
11000           ID data.
11001
11002         * Partly updated the protocol specification to comply with the
11003           changes now made.  It is still though a bit outdated.
11004
11005         * The JOIN notify type now takes one extra argument <Channel ID>.
11006           The packet used to be destined to the channel but now the
11007           JOIN type may be sent as list thus it is impossible to
11008           destine it to any specific channel.  By adding this argument
11009           it is again possible.
11010
11011 Wed Feb 21 22:39:30 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
11012
11013         * Added CREDITS file.  The CHANGES and CREDITS file will appear
11014           in the distribution as well.
11015
11016 Wed Feb 21 14:17:04 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
11017
11018         * Implemented CMODE_CHANGE, CUMODE_CHANGE and TOPIC_SET notify
11019           types in the server's silcd/packet_receive.c.
11020
11021         * Implemented CMODE and CUMODE to work in router environment.
11022
11023         * Fixed minor encoding and decoding buglet from the
11024           lib/silccore/silcmode.c.
11025
11026         * Fixed buffer overflow from lib/silcclient/command.c in USERS
11027           command parsing.
11028
11029 Wed Feb 21 12:44:00 EET 2001  Mika Boström <bostik@lut.fi>
11030
11031         * Changed all SilcConfigServer* and silc_config_server* to
11032           SilcServerConfig* and silc_server_config*, respectively.
11033           Patch by Bostik.
11034
11035 Wed Feb 21 00:10:00 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
11036
11037         * Associated the ID (client or server ID) to the Authentication
11038           Payload to avoid any possibility of forging.  Updated the
11039           protocol specification and the code accordingly.
11040
11041 Tue Feb 20 14:14:14 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
11042
11043         * The RSA key length is now save to the RsaKey context in the
11044           key generation process in lib/silccrypt/rsa.c.  The key length
11045           is now used to figure out the maximum size of the block allowed
11046           to be encrypted/signed.
11047
11048         * Added silc_mp_mp2bin_noalloc into lib/silcmath/mpbin.[ch].  It
11049           is equivalent to the silc_mp_mp2bin but does not allocate any
11050           memory.
11051
11052         * Changed silc_mp_mp2bin API to take length argument.  If it is
11053           non-zero then the buffer is allocated that large.  If zero, then
11054           the size is approximated using silc_mp_sizeinbase, which however
11055           is not relieable.
11056
11057         * Created Global RNG API which is global RNG that application can
11058           initialize.  After initializing, any routine anywhere in the
11059           code (including library) can use RNG without allocating a new
11060           RNG object.  This was done to allow this sort of use of the
11061           RNG in code that has no chance to allocate RNG object.  All
11062           applications currently allocate this and many routines in the
11063           library use this.  Affected file lib/silccrypt/silcrng.[ch].
11064
11065         * Removed the RNG kludge from lib/silcmath/primegen.c and changed
11066           it to use the Global RNG API.
11067
11068         * Defined Authentication Payload into protocol specification that
11069           is used during SILC session to authenticate entities.  It is
11070           used for example by client to authenticate itself to the server
11071           to obtain server operator privileges.
11072
11073           Implemented this payload into the lib/silccore/silcauth.[ch].
11074           Implemented also routines for public key based authentication
11075           as the new protocol specification dictates.
11076
11077           Moved definitions of different authentication methods from
11078           lib/silccore/silcprotocol.h into lib/silccore/silcauth.h.
11079
11080         * Added silc_pkcs_encrypt, silc_pkcs_decrypt, silc_pkcs_sign,
11081           silc_pkcs_verify and silc_pkcs_sign_with_hash and
11082           silc_pkcs_verify_with_hash functions into the file
11083           lib/silccrypt/silcpkcs.[ch].
11084
11085 Mon Feb 19 19:59:28 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
11086
11087         * The client entry's userinfo pointer must be always valid.
11088           Otherwise the [<unknown>] bug will surface beacuse the WHOIS
11089           will fail since it requires the userinfo.  Now, the userinfo
11090           is allocated as "" if actual userinfo does not exist.  Actually,
11091           it must exist and it is totally Ok to drop client connections
11092           that does not announce the userinfo.  However, we will make
11093           this workaround for now.
11094
11095         * Added silc_net_get_remote_port into lib/silcutil/silcnet.[ch]
11096           to return the remote port by socket.
11097
11098 Mon Feb 19 14:26:49 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
11099
11100         * Changed SILC_SERVER_COMMAND_EXEC_PENDING macro to the name
11101           SILC_SERVER_PENDING_EXEC and added an new macro
11102           SILC_SERVER_PENDING_DESTRUCTOR which is called to free the
11103           data or when error occurs while processing the pending command.
11104
11105           Added new argument `destructor' into silc_server_command_pending
11106           and to the SilcServerCommandPending object.  This destructor is
11107           now called after calling the pending callback or if error occurs
11108           immediately.  If error occurs the actual pending callback won't
11109           be called at all - only the destructor.  The destructor may be
11110           NULL if destructor is not needed.
11111
11112           All this applies for client library code as well.  Similar
11113           changes were made there as well for the pending commands.
11114
11115           In the client, the application must now allocate the
11116           SilcClientCommandContext with the silc_client_command_alloc
11117           function.
11118
11119         * Added reference counter to the SilcServerCommandContext.  Added
11120           function silc_server_command_alloc and silc_server_command_dup
11121           functions.
11122
11123           Same type of functions added to the client library for the same
11124           purpose as well.
11125
11126         * Removed the cmd_ident from IDListData away since it is now
11127           global for all connections.  It is the command identifier used
11128           in command sending and with pending commands.  The affected file
11129           is silcd/idlist.h.
11130
11131         * Added reference counter to the SilcSocketConnection objecet to
11132           indicate the usage count of the object.  The object won't be
11133           freed untill the reference counter hits zero.  Currently only
11134           server uses this, and client ignores it.  The client must be
11135           set to use this too later.  The affected files are
11136           lib/silccore/silcsockconn.[ch].  Added also the function
11137           silc_socket_dup to increase the reference counter.
11138
11139           This was mainly added because it is possible that the socket
11140           is removed underneath of pending command or other async
11141           operation.  Now it won't be free'd and proper DISCONNECTING
11142           flags, etc. can be set to avoid sending data to connection that
11143           is not valid anymore.
11144
11145         * Added SILC_SET_DISCONNECTING to server.c when EOF is read from
11146           the connection.  After that it sets SILC_SET_DISCONNECTED.
11147           It is, however, possible that the socket data is not still freed.
11148           The silc_server_packet_process now checks that data is not
11149           read or written to connection that is DISCONNECTED.  The socket
11150           get's freed when the reference counter hits zero.
11151
11152 Mon Feb 19 00:50:57 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
11153
11154         * Changed the client operation API: channel_message operation's
11155           `sender' is now the client entry of the sender, not the nickname
11156           and the `channel' is the channel entry, not the channel name.
11157
11158           In the private_message operation the `sender' is now also the
11159           client entry of the sender not the nickname.
11160
11161           Affected file is lib/silcclient/ops.h and all applications
11162           using the client operations.
11163
11164 Sat Feb 17 22:11:50 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
11165
11166         * Moved the calling of ops->connect() from connect_to_server_final
11167           into receive_new_id functin since that is the point when the
11168           client is actually allowed to send traffic to network.  The
11169           affected file is lib/silcclient/client.c.
11170
11171 Sat Feb 17 13:15:35 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
11172
11173         * When receiving NEW_CHANNEL_LIST, NEW_CHANNEL_USER_LIST,
11174           NEW_ID_LIST and SET_MODE_LIST packets, broadcast the list packet
11175           (if needs broadcasting) instead of broadcasting the packets one
11176           by one which would make a burst in the network traffic.
11177
11178         * Added `broadcast' argument to the functions in silcd/server.[ch]
11179           silc_server_create_new_channel[_with_id] to indicate whether
11180           to send New Channel packet to primary router.
11181
11182 Sat Feb 17 01:06:44 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
11183
11184         * Added new function into the silcd/server.[ch] files:
11185           silc_server_create_new_channel_with_id to create new channel with
11186           already existing Channel ID.
11187
11188         * Added new packet type SILC_PACKET_SET_MODE_LIST into the file
11189           lib/silccore/silcpacket.h.  This packet is used t send list of
11190           Set Mode payloads inside one packet.  Server uses this to set
11191           the modes for the channels and clients on those channels, that it
11192           announced to the router when it connected to it.  The protocol
11193           specification has been updated accordingly.
11194
11195         * The silc_server_new_channel did not handle the packet coming
11196           from normal server as it normally does not send that.  However,
11197           when it announces its channels it does send it.  Implemented
11198           the support for that.
11199
11200         * Added SILC_ID_CHANNEL_COMPARE macro to compare to Channel ID's
11201           into the file lib/silccore/id.h.
11202
11203 Fri Feb 16 23:57:29 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
11204
11205         * Fixed memory leaks in the functions silc_idlist_del_client,
11206           silc_idlist_del_channel and silc_idlist_del_server in the file
11207           silcd/idlist.c.  All of those leaked like a sieve.
11208
11209         * Fixed some small memory leaks in the client's function
11210           silc_client_notify_by_server.
11211
11212         * Added functions into silcd/server.c: silc_server_announce_clients,
11213           silc_server_announce_channels and silc_server_announce_server.
11214           These functions are used by normal and router server to announce
11215           to its primary router about clients, channels and servers (when
11216           router) that we own.  This is done after we've connected to the
11217           router.
11218
11219           These functions effectively implements the following packet types:
11220           SILC_PACKET_NEW_CHANNEL_LIST, SILC_PACKET_NEW_CHANNEL_USER_LIST
11221           and SILC_PACKET_NEW_ID_LIST.
11222
11223         * Added new functions into the silcd/packet_receive.[ch]:
11224           silc_server_new_id_list, silc_server_new_channel_list and
11225           silc_server_new_channel_user_list to handle the incoming
11226           NEW_ID_LIST, NEW_CHANNEL_LIST and NEW_CHANNEL_USER_LIST packets.
11227
11228         * Added support of changing Channel ID in the function
11229           silc_server_replace_id.  If the server that announces a channel
11230           to the router already exists in the router (with same name but
11231           with different Channel ID), router is responsible to send
11232           Replace ID packet to the server and force the server to change
11233           the Channel ID to the one router has.
11234
11235         * Added new notify type SILC_NOTIFY_TYPE_CHANNEL_CHANGE to notify
11236           client that the Channel ID has been changed by the router.  The
11237           normal server sends this to the client.  Client must start using
11238           the new Channel ID as the channel's ID.
11239
11240           Implemented handling of this new type into lib/silcclient/client.c
11241           into the function silc_client_notify_by_server.
11242
11243         * Added new function silc_idlist_replace_channel_id into the files
11244           silcd/idlist.[ch] to replace the Channel ID.
11245
11246 Fri Feb 16 14:14:00 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
11247
11248         * Call silc_server_command_identify_check always when processing
11249           the IDENTIFY command in silcd/command.c
11250
11251 Thu Feb 15 20:07:37 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
11252
11253         * Added new packet type SILC_PACKET_HEARTBEAT that is used to
11254           send keepalive packets.  The packet can be sent by clients,
11255           servers and routers.
11256
11257           Added function silc_socket_set_heartbeat into the file
11258           lib/silccore/silcsockconn.[ch] to set the heartbeat timeout.
11259           If not set, the heartbeat is not performed.  The actual
11260           heartbeat is implemented in the low level socket connection
11261           library.  However, application is responsible of actually
11262           sending the packet.
11263
11264           Added silc_server_send_heartbeat to send the actual heartbeat
11265           packet into silcd/packet_send.[ch].  Server now performs
11266           keepalive with all connections.
11267
11268         * Added silc_task_get_first function into lib/silcutil/silctask.c
11269           to return the timeout task with shortest timeout.  There was a bug
11270           in task unregistration that caused problems.  TODO has been
11271           updated to include that task system must be rewritten.
11272
11273         * The client library will now resolve the client information when
11274           receiving JOIN notify from server for client that we know but
11275           have incomplete information.
11276
11277         * Rewrote parts of silc_server_remove_from_channels and
11278           silc_server_remove_from_one_channel as they did not remove the
11279           channel in some circumstances even though they should've.
11280
11281         * Encryption problem encountered in server:
11282
11283           The LEAVE command used to send the Channel Key packet to the
11284           router immediately after generating it.  However, the code
11285           had earlier sent Remove Channel user packet but not immediately,
11286           ie. it was put to queue.  The order of packets in the router
11287           was that Channel Key packet was first and Remove Channel User
11288           packet was second, even though they were encrypted in the
11289           reverse order.  For this reason, MAC check failed.  Now, this
11290           is fixed by not sending the Channel Key packet immediately but
11291           putting it to queue.  However, this is more fundamental problem:
11292           packets that are in queue should actually not be encrypted
11293           because packets that are sent immediately gets encrypted
11294           actually with wrong IV (and thus MAC check fails).  So, packets
11295           that are in queue should be encrypted when they are sent to
11296           the wire and not when they put to the queue.
11297
11298           However, the problem is that the current system has not been
11299           designed to work that way.  Instead, the packet is encrypted
11300           as soon as possible and left to the queue.  The queue is then
11301           just purged into wire.  There won't be any fixes for this
11302           any time soon.  So, the current semantic for packet sending
11303           is as follows:
11304
11305           o If you send packet to remote host and do not force the send
11306           (the packet will be in queue) then all subsequent packets to the
11307           same remote host must also be put to the queue.  Only after the
11308           queue has been purged is it safe again to force the packet
11309           send immediately.
11310
11311           o If you send all packets immediately then it safe to send
11312           any of subsequent packets through the queue, however, after
11313           the first packet is put to queue then any subsequent packets
11314           must also be put to the queue.
11315
11316           Follow these rules and everything works fine.
11317
11318 Thu Feb 15 14:24:32 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
11319
11320         * Added new function silc_server_remove_clients_by_server to
11321           remove all client entries from ID list when the server connection
11322           is lost.  In this case it is also important to invalidate all
11323           client entires as they hold the invalid server entry.  This
11324           fixes fatal bug when server has lost connection and will reconnect
11325           again.
11326
11327 Wed Feb 14 16:03:25 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
11328
11329         * Made some sanity checks to silc_server_daemonise like to check
11330           whether the requested user and group actually exists.
11331
11332         * Added sanity check to SKE's silc_ske_responder_finish to check
11333           that the public and private key actually is valid.
11334
11335         * Invalidate the client's nickname when receiving Replace ID
11336           packet and the Client ID is being replaced.  This means that the
11337           server will query the nickname if someone needs it (client)
11338           a bit later.
11339
11340         * Sort the ID Cache in client library when the ID Cache data
11341           has changed (needs sorting).
11342
11343         * Do not allow for SILC client to create several connections to
11344           several servers.  The client does not support windows right now
11345           and generating multiple connections causes weird behaviour.
11346
11347           Irssi-silc client does support windows and can handle several
11348           connections without problems, see: www.irssi.org and SILC plugin.
11349
11350         * Fixed some places where client was added to the IDList.  The
11351           rule of thumb is following (in order to get everything right):
11352           If the client is directly connected local client then the
11353           `connection' argument must be set and `router' argument must be
11354           NULL to silc_idlist_add_client function.  If the client is not
11355           directly connected client then the `router' argument must
11356           bet set and the `connection' argument must be NULL to the
11357           silc_idlist_add_client function.
11358
11359         * The funtion silc_server_packet_send_local_channel actually did
11360           not check whether the client was locally connected or not.  It
11361           does that now.  Fixed a bug related to LEAVE command.
11362
11363         * Fixed Remove Channel User payload parsing bug in server's
11364           silcd/packet_receive.c.  Fixed a bug related to LEAVE command.
11365
11366         * The server's silc_server_save_channel_key now checks also the
11367           global ID list for the channel as it might not be in the local
11368           list.  Fixed a bug related to LEAVE command.
11369
11370         * Is this the end of the [<unknown>] buglet that has been lurking
11371           around for a long time?  A little for loop fix in server's
11372           silc_server_command_whois_parse that is used by both IDENTIFY
11373           and WHOIS command.  At least, this was a clear bug and a cause
11374           of one type of [<unknown>] buglet.
11375
11376         * WHOIS and IDENTIFY commands call the function
11377           silc_server_command_[whois/identify]_check function even if
11378           we are not router server.
11379
11380 Tue Feb 13 19:55:59 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
11381
11382         * Added --with-gmp configuration option.  If set the GMP
11383           is always compiled in the SILC source tree.  If not set then
11384           it is checked whether the system has the GMP3 installed.  If
11385           it has then the GMP won't be compiled (the system's headers
11386           and library is used), if it doesn't have it then the GMP is
11387           compiled in the SILC source tree.
11388
11389 Mon Feb 12 11:20:32 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
11390
11391         * Changed RSA private exponent generation to what PKCS #1
11392           suggests.  We try to find the smallest possible d by doing
11393           modinv(e, lcm(phi)) instead of modinv(e, phi).  Note: this is
11394           not security fix but optimization.
11395
11396 Sun Feb 11 18:19:51 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
11397
11398         * Added new config entry [Identity] to fork the server and run
11399           it as specific user and group.  A patch from Bostik.
11400
11401         * Imported Dotconf configuration library into lib/dotconf.
11402           This will be used to create the SILC configuration files later.
11403           It will appear in the distsribution after this commit.
11404
11405 Sat Feb 10 21:13:45 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
11406
11407         * A big code auditing weekend happening.  Auditing code for
11408           obvious mistakes, bugs and errors.  Also, removing any code
11409           that is obsolete.
11410
11411           Removed files for being obsolete:
11412
11413           o lib/silcutil/silcbuffer.c (the buffer interface is entirely in
11414           inline in the file lib/silcutil/silcbuffer.h)
11415
11416           o lib/silcutil/silcbufutil.c (the header has inline versions)
11417
11418           Changed code to fix possible error conditions:
11419
11420           o The buffer formatting routines now check that the destination
11421           buffer really has enough space to add the data.  This applies for
11422           both buffer formatting and unformatting
11423           (lib/silcutil/silcbuffmt.[ch]).  Also, the entire buffer
11424           unformatting was changed to accomodate following rules:
11425           XXX_*STRING_ALLOC will allocate space for the data into the pointer
11426           sent to the function while XXX_*STRING will not allocate or copy
11427           the data into the buffer.  Instead it sets the pointer from the
11428           buffer into the pointer sent as argument (XXX_*STRING used to
11429           require that the pointer must be allocated already).  This change
11430           makes this whole thing a bit more consistent and more optimized
11431           (note that the data returned in the unformatting with XXX_*STRING
11432           must not be freed now).  The routines return now -1 on error.
11433
11434           o Tried to find all code that use buffer_format and buffer_unformat
11435           and added return value checking to prevent formatting and
11436           especially unformatting errors and possible subsequent fatal
11437           errors.
11438
11439           o Changed ske->x and ske->KEY to mallocated pointers in
11440           lib/silcske/silcske.h.  Fixed possible data and memory leak.
11441
11442           o Added return value checking to all *_parse* functions.  Fixed
11443           many memory leaks as well.
11444
11445           o Added length argument to silc_id_str2id in lib/silccore/id.[ch]
11446           so that buffer overflows would not happen.  All code now also
11447           checks the return value as it can fail.
11448
11449 Mon Feb  5 20:08:30 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
11450
11451         * Added reconnection support to server if the normal server looses
11452           its connection to the router (for example if router is rebooted).
11453           The server performs normal reconnection strategy implemented
11454           to the server.  Affected file silcd/server.c.
11455
11456 Sun Feb  4 13:18:32 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
11457
11458         * Added new packet type SILC_PACKET_SET_MODE that is used to
11459           distribute the information about changed modes (for clients,
11460           channels and clients channel modes) to all routers in the
11461           network.  Updated the protocol specification accordingly.
11462
11463           Added functions into silcd/packet_send.c and
11464           silcd/packet_receive.c: silc_server_send_set_mode,
11465           silc_server_set_mode.
11466
11467           Added new files silcmode.[ch] into lib/silccore that implements
11468           the encoding and decoding of Set Mode Payload.  Added new type
11469           SilcSetModePayload.  Moved the definitions of different modes
11470           from lib/silccore/silcchannel.h into lib/silccore/silcmode.h.
11471
11472 Sat Feb  3 15:44:54 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
11473
11474         * Oops, a little mistake in server's connection authentication
11475           protocol.  The protocol is not ended with FAILURE but with
11476           SUCCESS if the authentication is Ok. :)  Affected file is
11477           silcd/protocol.c.
11478
11479         * Implemented NICK_CHANGE notify handling in server in the file
11480           silcd/packet_receive.c  The NICK_CHANGE notify is distributed to
11481           the local clients on the channel.  After the changing nickname
11482           in router environment snhould work and the [<unknown>] nickname
11483           should appear no more.
11484
11485           The silc_server_replace_id function that receives the Replace ID
11486           payload now sends the NICK_CHANGE notify type also in the file
11487           silcd/packet_receive.c
11488
11489         * Changed WHOIS and IDENTIFY command to support the maximum amount
11490           of arguments defined in protocol specs (3328 arguments).  This
11491           fixed a bug that caused problems when there were more than three
11492           users on a channel.
11493
11494 Fri Feb  2 11:42:56 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
11495
11496         * Added extra parameter, command identifier, to the
11497           silc_client_send_command so that explicit command identifier
11498           can be defined.
11499
11500           Changed that ID list routines uses specific command identifier
11501           when sending WHOIS/IDENTIFY requests to the server so that they
11502           can be identified when the reply comes back.
11503
11504           Affected files lib/silcclient/command.[ch],
11505           lib/silcclient/client.c and lib/silcclient/idlist.[ch].
11506
11507         * Added `sender' argument to silc_server_packet_send_to_channel
11508           to indicaet the sender who originally sent the packet to us
11509           that we are now re-sending.  Ignored if NULL.  Affected file
11510           silcd/packet_send.[ch].
11511
11512         * Added some server statistics support in silcd/server_internal.h
11513           SilcServerStatistics structure and around the server code.  Also
11514           send some nice statistics information when client is connecting
11515           to the client.
11516
11517 Thu Feb  1 23:31:21 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
11518
11519         * Fixed channel ID decoding in server's JOIN command reply in
11520           silcd/command_reply.c
11521
11522         * Fixed braodcasting of replace ID payload to not to send it if
11523           we are standalone server in silcd/packet_receive.c.
11524
11525         * Fixed all channel message sending routines to not to send
11526           packets to clients that has router set, since they are routed
11527           separately in the same function earlier.  Affects file
11528           silcd/packet_send.c and all channel packet sending functions.
11529
11530         * In USERS reply, res_argv[i] are not allocated, the table
11531           is allocated.  Thus changed that free the table, not its
11532           internals.
11533
11534         * In server's whois_check and identify_check if the client is
11535           locally connected do not send any WHOIS commands - they are not
11536           needed.
11537
11538 Thu Feb  1 21:32:27 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
11539
11540         * Fixed some minor bugs in client when sending WHOIS command.  The
11541           arguments was in wrong order.
11542
11543         * Removed statis function add_to_channel from server in
11544           silcd/command.c that was previously used with the joining but
11545           is obsolete now.
11546
11547         * Tested USERS command in router environment successfully with two
11548           routers, two servers and two clients.
11549
11550 Thu Feb  1 00:54:26 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
11551
11552         * Reorganized the USERS command and command reply in client library
11553           in lib/silcclient/command.c and lib/silcclient/command_reply.c.
11554           When the command is given by user we register a pending command
11555           callback that will reprocess the command after the reply has been
11556           received from the server.  When reprocessing the packet we then
11557           display the information.  Thus, the USERS information is displayed
11558           now in the command callback instead of in the command reply
11559           callback.  The processing of the command is same as previously
11560           when server has sent the command reply in the JOINing process.
11561
11562         * Added to USERS command in silcd/command_reply.c to join the client,
11563           we didn't use to know about, to the channel after we've created
11564           a client entry for it.  Also, for clienet we did know already still
11565           check whether it is on the channel or not and add it if not.
11566
11567         * Removed silc_server_command_join_notify as the function and its
11568           use was obsolete.
11569
11570 Tue Jan 30 22:39:15 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
11571
11572         * Changed the client's pending command handling to the same as the
11573           server's pending command handling.  It is also now possible to
11574           execute command reply functions from other command reply
11575           function as the function callbacks for commands and command
11576           replies are one and same.  The pending commands are not static
11577           list anymore, it is mallocated SilcDList in lib/silcclient/client.h
11578           in client connection context.  Thus, pending commands are server
11579           connection specific as it is convenient.
11580
11581           Changed the function silc_client_command_pending and
11582           silc_client_command_pending_del and added new function
11583           silc_client_command_pending_check.  Removed the
11584           SILC_CLIENT_CMD_REPLY_EXEC, and SILC_CLIENT_PENDING_COMMAND_CHECK
11585           macros.
11586
11587         * Added cmd_ident, current command identifier, to the client
11588           connection context in lib/silcclient/client.h to keep track on
11589           command identifiers used in command sending.  Client's command reply
11590           function handling now supports the mandatory command identifiers.
11591
11592         * Added SILC_CLIENT_COMMAND_EXEC_PENDING macros to all command reply
11593           funtions in client to fully support pending command callbacks.
11594
11595         * NOTE: the name_list in USERS (old NAMES) command is NOT sent anymore
11596           as one of the arguments to the application in the command reply
11597           client operation.
11598
11599         * NOTE: The FORWARDED flag is depracated.  It used to be depracated
11600           before first releasing SILC but came back.  Now it is removed again
11601           and should come back nomore.  The FORWARDED flag was used only
11602           by the JOINing procedure by forwarding the command packet to router.
11603           Now, the JOINing procedure has been changed to more generic (due
11604           to various router environment issues) and FORWARDED is not needed
11605           anymore for anything.  The protocol specification is yet to be
11606           updated.
11607
11608           Now, removed silc_server_packet_forward from server and the flag
11609           SILC_PACKET_FORWARDED from lib/silccore/silcpacket.h.
11610
11611 Tue Jan 30 00:05:05 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
11612
11613         * Renamed NAMES command to USERS command.  The NAMES was named that
11614           due to historical reasons.  Now it is renamed.  Also, rewrote
11615           parts of the USERS command.  The nickname list is not sent anymore
11616           by the server.  Only Client ID and mode lists are sent in the USERS
11617           command.  Changed this also to the protocol specification.
11618
11619           The client now resolves the names and stuff after it receives
11620           the USERS list from the server when joining to the channel.
11621
11622         * WHOIS and IDENTIFY commands has been changed to support multiple
11623           Client ID's per command.  One can now search for multiple users
11624           in the network by sending only one WHOIS or IDENTIFY command.
11625           Changed the code and the protocol specifications.
11626
11627         * Removed silc_server_command_identify_parse and changed that IDENTIFY
11628           uses silc_server_command_whois_parse to parse the request. */
11629
11630         * If normal server, do not parse the WHOIS and IDENTIFY requests
11631           before sending it to the router.  Saves some time.
11632
11633 Sun Jan 28 16:19:49 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
11634
11635         * Fixed JOIN command on client library.  Wrong number of arguments
11636           used to crash the client.
11637
11638         * Added silc_server_channel_has_global function to check whether
11639           channel has global users or not.
11640
11641         * Added silc_server_channel_has_local function to check whether channel
11642           has locally connected clients on the channel.
11643
11644         * The silc_server_remove_from_one_channel now checks whether the
11645           channel has global users or not after given client was removed from
11646           the channel.  It also checks whether the channel has local clients
11647           on the channel anymore.  If it does not have then the channel entry
11648           is removed as it is not needed anymore.
11649
11650         * The silc_server_notify now checks on JOIN notify whether the joining
11651           client is one of locally connected or global.  If it is global then
11652           the channel has now global users on the channel and that is marked
11653           to the channel entry.  Also, it now saves the global client to
11654           global list who is joining and JOINs it to the channel.  This is
11655           for normal server, that is.
11656
11657           Changed silc_server_send_notify_on_channel,
11658           silc_server_packet_relay_to_channel and
11659           silc_server_packet_send_to_channel check if we are normal server
11660           and client has router set (ie. global client) do not send the
11661           message to that client, as it is already routed to our router.
11662
11663         * Implemented LEAVE notify type handling in silc_server_notify
11664           function.
11665
11666         * Tested LEAVE command in router environment successfully.  Tested
11667           with two routers, two servers and two clients.
11668
11669         * Updated TODO.
11670
11671         * idlist_find_xxx_by_id routines now dumps the ID on the debug mode.
11672
11673         * Implemented SIGNOFF notify type handling in silc_server_notify
11674           function.
11675
11676         * silc_server_remove_id now removes the client entry from all channels
11677           it has joined and thusly sends SIGNOFF notify type.
11678
11679         * Rewrote the NAMES list generation in server by removing two excess
11680           loops.  The lists are created now inside one loop.
11681
11682 Sat Jan 27 22:34:56 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
11683
11684         * silc_server_remove_channel_user checks now also global list
11685           for channel and client.
11686
11687         * silc_server_new_channel_user checks now both local and global
11688           list for channel and client.  Fixed a bug in client id decoding.
11689           Used to decode wrong buffer.
11690
11691         * silc_server_channel_message checks now both local and global
11692           list for channel entry.
11693
11694         * Tested channel joining (hence JOIN) in router environment
11695           successfully.  Tested with two routers, two servers and two
11696           clients.
11697
11698         * Tested channel message sending in router environment successfully.
11699
11700 Thu Jan 11 03:22:57 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
11701
11702         * Added silc_server_save_channel_key into server.[ch] to save the
11703           received channel key in Channel Key payload processing. It is
11704           also used in JOIN command reply handling.
11705
11706           Equivalent function silc_client_save_channel_key added into
11707           client.[ch] into client library.
11708
11709         * Changed JOIN command reply to send information whether the channel
11710           was created or not (is existing already) and the channel key
11711           payload.  Changed protocol specs accordingly.
11712
11713         * Fixed bugs in WHOIS and IDENTIFY command reply sending when
11714           the request was sent by ID and not by nickname.  Crashed on
11715           NULL dereference.
11716
11717 Sat Dec 23 21:55:07 EET 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
11718
11719         * Fixed a bug in Client library.  IDENTIFY and WHOIS reply functions
11720           now correctly save the received data.
11721
11722         * silc_server_free_sock_user_data now notifies routers in the
11723           network about entities leaving the network.
11724
11725           At the same time implemented functions silc_server_remove_id
11726           and silc_server_send_remove_id to receive and send REMOVE_ID
11727           packets.  The packet is used to notify routers in the network
11728           about leaving entities.  The ID removed will become invalid in
11729           the network.
11730
11731         * Added function silc_idlist_del_server into server. Removes and
11732           free's server entry from ID list.
11733
11734         * silc_server_private_message function now checks, if we are router,
11735           that the destination ID really is valid ID, naturally.
11736
11737         * In router when NEW_ID packet is received (for new client) the
11738           hash of the Client ID is saved in the ID Cache but the
11739           client->nickname is set to NULL, instead of putting the hash
11740           to it as well.
11741
11742           IDENTIFY command now also checks that client->nickname must be
11743           valid. If it is not if will request the data from the server who
11744           owns the client.  Added new function
11745           silc_server_command_identify_check.
11746
11747         * Added silc_command_set_command into lib/silccore/silcommand.[ch]
11748           to set the command to already allocated Command Payload.
11749
11750         * Tested private message sending in router environment with two
11751           routers, two servers and two clients.  Fixed minor bugs and now
11752           it works fine.
11753
11754         * Fixed segfault from client's NAMES command. Used to crash if
11755           not on any channel.
11756
11757         * Forwarded packets must not be routed even if it is not destined
11758           to the receiver.  Changed server code comply with this.
11759
11760 Sun Dec 17 14:40:08 EET 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
11761
11762         * Added `require_reverse_mapping' boolean value to ServerParams
11763           structure. If TRUE (not default) the server will require that
11764           the connecting host has fully qualified domain name.
11765
11766           If the reverse mapping is not required and hostname could not be
11767           found the IP address is used as hostname.
11768
11769 Sat Dec 16 17:39:54 EET 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
11770
11771         * Implemented version string checking to both client and server.
11772           The check is incomplete currently due to the abnormal version
11773           strings used in development version of SILC.
11774
11775         * Changed all command functions in server to use the new
11776           CHECK_ARGS macro.
11777
11778 Fri Dec 15 15:55:12 EET 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
11779
11780         * Changed char *data to unsigned char *data in ID Cache system to
11781           support binary data as ID Cache data. Changed code to support
11782           binary data in lib/silccore/idcache.c.
11783
11784         * Renamed silc_server_packet_relay_command_reply to
11785           silc_server_command_reply as it is normal packet receiving
11786           function. Rewrote the function to accept command replys for
11787           servers and not only for clients.
11788
11789         * Mark remote router always as registered server if we are connecting
11790           to it.  Otherwise, commands sent by the router to us are ignored.
11791
11792         * All ID List find routines now returns the ID Cache Entry pointer
11793           as well if requested.
11794
11795         * WHOIS command works now in router environment, tested with two
11796           routers, two servers and two clients.
11797
11798         * Cleaned up and rewrote IDENTIFY command. IDENTIFY should work now
11799           in router environment (as it is almost equivalent to WHOIS) but
11800           hasn't been tested thoroughly.  Added new functions:
11801
11802           silc_server_command_identify_parse
11803           silc_server_command_identify_send_reply
11804           silc_server_command_identify_from_client
11805           silc_server_command_identify_from_server
11806
11807         * Disabled route cache adding because adding two different ID's with
11808           same IP replaces the old cache entry thus giving wrong route.
11809           The entry->router->connection is always the fastest route anyway
11810           so route cache may not be needed.  Of course, new routes maybe
11811           established after receiving the ID when the entry->router->connection
11812           might not be anymore the most optimal.
11813
11814 Thu Dec 14 15:55:35 EET 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
11815
11816         * Add route cache for received ID for fast routing.
11817
11818         * Added silc_server_packet_route to route received packet on router
11819           that is not destined to us.
11820
11821         * Renamed silc_server_get_route to silc_server_route_get.
11822
11823         * Added id_string and id_string_len fields into SilcServer to
11824           include encoded ServerID for fast comparing without excess
11825           encoding of the ID's.
11826
11827         * Cleaned up WHOIS command on server side. Added following static
11828           functions:
11829
11830           silc_server_command_whois_parse
11831           silc_server_command_whois_check
11832           silc_server_command_whois_send_reply
11833           silc_server_command_whois_from_client
11834           silc_server_command_whois_from_server
11835
11836         * Added macro SILC_SERVER_COMMAND_CHECK_ARGC to check mandatory
11837           arguments in command replies. All command functions should be
11838           updated to use this macro.
11839
11840 Sun Dec 10 23:52:00 EET 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
11841
11842         * Minor typo fixes on command reply handling on server.
11843
11844 Tue Nov 28 11:05:39 EET 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
11845
11846         * Added silc_server_command_add_to_channel internal routine to add
11847           the client to the channel after router has created the channel and
11848           sent command reply to the server.
11849
11850         * Added generic silc_server_send_command to send any command from
11851           server.
11852
11853         * Use static buffer with ID rendering instead of duplicating data.
11854
11855 Mon Nov 27 21:39:40 EET 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
11856
11857         * Fixed a channel user mode bug when joining to a channel server gave
11858           everybody channel founder rights, oops.
11859
11860         * We mark ourselves as the router of the incoming server connection
11861           if we are router ourselves.  This way we can check in some packet
11862           sending functions whether it is locally connected server.  For
11863           incoming router connections we put NULL.
11864
11865         * For router sending packets locally means now always sending the
11866           packet cell wide; to local clients and local servers.  For normal
11867           server sending packet locally means sending it to only local
11868           clients.
11869
11870         * Fixed the JOIN command to really work in router environment.  If the
11871           channel is created it is always created by the router.  Router is
11872           also responsible of making the initial joining to the channel,
11873           sending JOIN notify to the sending server and distributing
11874           NEW_CHANNEL and NEW_CHANNEL_USER packets.  Hence, if the channel
11875           does not exist server doesn't do anything else but forward the
11876           command to the router which performs everything.
11877
11878         * Added silc_server_send_channel_key function to send the Channel Key
11879           payload.
11880
11881         * Added silc_server_create_channel_key to create new channel key.  The
11882           channel key is now re-generated everytime someone joins or leaves
11883           a channel, as protocol dictates.  Note: channel->key_len is the
11884           key length in bits.
11885
11886 Wed Nov 22 22:14:19 EET 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
11887
11888         * Splitted server.[ch] finally.  Created now packet_send.[ch] and
11889           packet_receive.[ch] to separate packet sending and receiving
11890           routines.  The server.[ch] now includes everything else including
11891           actual packet processing (writing and reading data) and other
11892           server issues.
11893
11894           Renamed silc_server_private_message_send_internal to
11895           silc_server_send_private_message.  The routine is still though
11896           used only to relay private messages as server does not send
11897           private messages itself.
11898
11899           Renamed silc_server_new_channel to silc_server_create_new_channel
11900           and added new function sicl_server_new_channel that handles the
11901           incoming New Channel packet.  Added also new sending function
11902           silc_server_send_new_channel to send New Channel Payload.
11903
11904         * Added new function silc_server_notify to process incoming notify
11905           packet to the server/router. Server may then relay the notify
11906           to clients if needed.
11907
11908         * Added new function silc_server_new_channel_user to process incoming
11909           New Channel User packet.  Router will redistribute the packet and
11910           send JOIN notify to its local clients and locally connected servers
11911           if needed.  Normal server will send JOIN notify to its local client
11912           on same channel when received this packet.  Added also corresponding
11913           sending function silc_server_send_new_channel_user to sent the
11914           payload.
11915
11916         * Added boolean route argument to send_notif_to_channel and
11917           packet_send_to_channel functions to attempt to route the packet
11918           if it is TRUE and send only locally if it is FALSE.
11919
11920 Tue Nov 21 19:49:31 EET 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
11921
11922         * silc_server_replace_id now broadcasts the received replace ID
11923           packet if it is not broadcast packet already. The router must
11924           broadcast to inform other routers about changed ID.
11925
11926         * Added backpointer to server's router into SilcServer context in
11927           silcd/server_internal.h.
11928
11929         * Fixed silc_server_packet_broadcast to send correct broadcast
11930           packets.
11931
11932         * The channel key is now distributed to the local client as soon
11933           as it is received from the router (in router environment) so that
11934           no other packet may be sent for the channel until client has
11935           received the key.
11936
11937         * silc_server_remove_channel_user now broadcasts the received
11938           Remove Channel User packet if it is not broadcast packet already.
11939           The router must broadcast to inform other routers about removed
11940           channel user.
11941
11942         * Added users field into SilcPacketContext that is a reference count
11943           of the context.  One can increase the reference count by calling
11944           silc_packet_context_dup which is now changed to just increase the
11945           reference count instead of duplicating the data.  The reference
11946           count is decresed by calling silc_packet_context_free that will
11947           free the data after the reference count hits zero.
11948
11949           For now on the packet context and everything allocated into it
11950           (including the raw packet from network) must be freed by calling
11951           the new silc_packet_context_free function.  Added also new function
11952           silc_packet_context_alloc that must be used now to allocate the
11953           context.  This also means that if a routine is asynchronous from
11954           silc_[client/server]_packet_parse_type the packet context must
11955           be duplicated by calling silc_packet_context_dup.  Otherwise it
11956           gets free'd after silc_[client/server]_packet_parse_type returns.
11957           Also, one must remember that if packet is duplicated then its
11958           reference count must be decresed by calling the free function as
11959           many times as it was duplicated.
11960
11961         * Changed SilcBuffer field from protocol contexts to SilcPacketContext
11962           from both client and server.
11963
11964 Mon Nov 20 23:47:03 EET 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
11965
11966         * Made joining to a channel working in router environment.
11967
11968         * Cleaned up JOIN command on server side and create function
11969           silc_server_command_join_channel internal routine to make the
11970           joining happen.
11971
11972 Thu Nov  9 21:12:39 EET 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
11973
11974         * Changed silc_command_pending list to SilcDList.  Also, added
11975           `ident' field to SilcServerCommandPending structure to identify
11976           the reply and to call correct callback.
11977
11978           Added silc_server_command_pending_check function to replace the
11979           corresnponding macro.  The silc_command_pending list is not
11980           extern anymore.
11981
11982         * Added silc_command_set_ident into lib/silccore/silccommand.[ch]
11983           to set identifier to previously allocated Command Payload.  It
11984           is used to set identifier for command when resending Command
11985           Payload.
11986
11987         * Added silc_command_payload_encode_payload to encode Command
11988           Payload buffer from SilcCommandPayload structure.
11989
11990         * Added silc_argument_payload_encode_payload to encode Argument
11991           payload buffer from SilcArgumentPayload structure.
11992
11993 Wed Nov  8 21:03:28 EET 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
11994
11995         * Changed WHOIS command to support router connection on server side.
11996           The whois request is always sent to router unless the server is
11997           standalone server.  After server has received the reply from the
11998           router will it send the reply to the client.
11999
12000         * Added silc_server_packet_broadcast into silcd/server.[ch] to
12001           broadcast received broadcast packet.  The function is used only
12002           by router.  The broadcast packet is always sent to the router's
12003           primary route.
12004
12005         * Added silc_id_render function in lib/silcutil/silcutil.[ch] to
12006           render given ID to printable string, for log files for example.
12007
12008 Tue Nov  7 22:14:19 EET 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
12009
12010         * Made basic router to router connections working.  At least they
12011           can now connect to each other but nothing really works the way
12012           they are supposed - yet.
12013
12014         * Added new initiator token to RouterConnection configuration
12015           file in silcd/serverconfig.[ch].  It is used to tell whether we
12016           are the initiator to the remote router or whether we'll expect
12017           the other end to connect.
12018
12019         * Moved registering of listener task to silc_server_init, hence
12020           the server starts listenning as soon as it is run, even if it
12021           does not have connections to other routers.  Let's see how well
12022           this will work.
12023
12024         * Changed default connection retry timeouts for more suitable in
12025           silcd/server.h.
12026
12027         * Removed cipher and such arguments from silc_idlist_add_client
12028           and silc_idlist_add_server prototypes from silcd/idlist.[ch].
12029           Added new function silc_idlist_add_data to add the keys and stuff
12030           to any ID entry.
12031
12032         * Added SilcIDListData structure and added it to SilcClientEntry
12033           and SilcServerEntry as their first field in the structure.  This
12034           way we can explicitly cast the ID entries to the SilcIDListData
12035           structure and get common data for the entries.  In past, we had
12036           to first check what type of connection it is and then cast it to
12037           correct ID entry type.  Now, we can directly cast the opaque
12038           pointer to the SilcIDListData (no matter what ID entry it actually
12039           is) and get the data needed.
12040
12041 Mon Nov  6 21:56:12 EET 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
12042
12043         * Wow, found a bug in scheduler.  The scheduler uninitialized itself
12044           in some circumstances even if threre were timeout tasks, though not
12045           IO tasks, but tasks anyway.  Now fixed.
12046
12047         * Defined SilcServerConnection structure to hold connection specific
12048           stuff about directly connected servers and routers.  The definition
12049           is currently in silcd/server_internal.h.  I thought about having
12050           a bit more important role fro this struct but for now it is used
12051           only when connecting to other server (or router actually).
12052
12053         * Added connecting retry support in server when connecting to
12054           router(s).  The retry feature implement exponential backoff
12055           algorithm.  Also, added SilcServerParams structure to hold default
12056           parameters for server.  For now, it include these retry settings
12057           and are hard coded.  After server is moded to be as Silc Server
12058           Library this structure will be more important.
12059
12060 Sun Nov  5 22:28:44 EET 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
12061
12062         * Changed client librarys channel->clients table to SilcList and
12063           changed code accordingly.
12064
12065 Thu Nov  2 16:28:01 EET 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
12066
12067         * Changed client's channel table to SilcList and changed code
12068           accordingly.  Also changed SilcChannelClientEntry to include back-
12069           pointer to the channel so that client entry can use that structure
12070           as list as well and we have fast cross-reference to the channel.
12071           This change dramatically decreased the complexity of channel
12072           handling with client entry and vice versa (removed one extra
12073           loop when searching for channel entry from many functions).
12074
12075         * Changed server->sim from table to SilcDList and changed code
12076           accordingly.
12077
12078         * NAMES command can now be used from user interface.  It will show
12079           the user list on the channel, neatly.
12080
12081         * Added realname pointer to SilcClientEntry in lib/silcclient/idlist.h.
12082           Code now saves realname of the user if it becomes available.
12083
12084         * Renamed configure.in to configure.in.pre and made ./prepare
12085           script to automatically add correct version string to
12086           configure.in which it creates from configure.in.pre.
12087
12088 Wed Nov  1 17:21:26 EET 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
12089
12090         * NAMES command reply now shows users mode with the nickname when
12091           joining to channel.
12092
12093         * Moved silc_client_ch[u]mode[_char] functions from
12094           silc/clientutil.[ch] to lib/silcclient/client.[ch].  Though, that
12095           place sucks, they are utility functions and should be in some
12096           other file.
12097
12098         * Fixed some unsigned int's to unsigned short's.  Patch by cras.
12099
12100         * Fixed contrib/getopt*.[ch] to not require config.h.  Patch by
12101           cras.
12102
12103 Tue Oct 31 20:10:37 EET 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
12104
12105         * Updated README.
12106
12107         * Added TRQ (efficient deque and list library) into lib/trq.  This is
12108           a very good list library that is currently used in the SILC.  Defined
12109           SilcList API over the library because I didn't like the API very
12110           much.  See lib/trq/silclist.h for the API and examples of how to
12111           use the API.  Fixed various places in the code to use the new
12112           SilcList API. The SilcList is meant for lists that has a structure
12113           already defined as a list.  It is not suitable to add just some
12114           context to the list (in TRQ, the context is the list actually).
12115
12116           So, I defined SilcDList that can be used for the purpose where
12117           predefined list structure does not exit.  This can be used as
12118           such list.  Now some context just can be added to the SilcDList.
12119           Currently this list is not used in the SILC just yet, though there
12120           are a lot places where this can replace dynamically allocated
12121           tables and I will fix these places, later, to use SilcDList.
12122           See lib/trq/silcdlist.h for SilcDList (they are all inline functions,
12123           and use TRQ internally).
12124
12125           Also fixed some annoying warning messages that the original TRQ
12126           code generated.  Also minor changes to TRQ's Makefile.in.
12127
12128         * Added support for querying by Client ID to both WHOIS and
12129           IDENTIFY commands into server, as required by the protocol.
12130
12131         * Removed method function pointers from SilcBuffer structure. They
12132           weren't used to anything and just increased the context size for
12133           no good reason.  This change also made silc_buffer_alloc and
12134           silc_buffer_free functions inline functions.
12135
12136         * Disabled command flooding detection support until it's fixed so
12137           that it accepts commands in but does not execute them more than once
12138           in two seconds.
12139
12140         * Added silc_net_localhost(), to return local hostname, into
12141           lib/silcutil/silcnet.[ch].  Also added client->hostname pointer
12142           that must be initialized before calling silc_client_init.
12143
12144         * Added new function: silc_server_send_notify_on_channels to send
12145           notify messages to all channels client has joined.  It is assured
12146           that the message is sent only once per client.
12147
12148         * Moved silc_log_format (from lib/silcutil/silclog.[ch] into
12149           lib/silcutil/silcutil.[ch] as silc_format function.  The new
12150           function is generic and is used by server as well, not only by
12151           the logging routines.
12152
12153         * Added new SKE status type: SILC_SKE_STATUS_BAD_VERSION to indicate
12154           the provided version string was not acceptable.  Added new function:
12155           silc_ske_check_version into lib/silcske/silcske.h.  The function
12156           must be implemented by the application (client or server) and it
12157           does not reside in the SKE library.  The function checks the version
12158           string remote end sent.
12159
12160         * Added back pointers (to opaque context and to SilcSocketConnection)
12161           into SilcPacketContext structure into lib/silccore/silcpacket.h.
12162
12163         * Added silc_packet_context_dup into lib/silccore/silcpacket.[ch] to
12164           duplicate packet context structure.
12165
12166         * Changed `notify' client operation to send same arguments as client
12167           receives from server except for ID's.  ID's are mapped to correct
12168           ID entry and that is returned.  Also, if channel entry is not sent
12169           by server but the notify is for channel the channel entry is sent
12170           to application (otherwise application doesn't know that it is for
12171           channel (library gets it from packet's Destination ID)).
12172
12173         * Added silc_client_remove_from_channels into client library to
12174           remove a client from all channels it has joined to.  Used when
12175           received SIGNOFF notify from server.  Added also new function
12176           silc_client_replace_from_channels to replace old ID entry with
12177           new ID entry on all channels.  Used when received NICK_CHANGE
12178           notify from server.
12179
12180         * Fixed ID Cache list handling in silc_idlist_get_client in
12181           lib/silcclient/idlist.c.  Also, added silc_idlist_get_client_by_id
12182           to get (or query) client by ID.
12183
12184         * Updated TODO list.
12185
12186         * Added connection authentication status message defined by the
12187           protocol: SILC_CONN_AUTH_OK and SILC_CONN_AUTH_FAILED and added the
12188           support for these into the code in client and server side.
12189
12190         * Added generic function silc_client_send_command to send any command
12191           with variable argument list.  Application should use this function
12192           to send commands if the command functions provided by the library
12193           does not suite for the application's user interface needs.
12194
12195         * Added new `failure' client operation.  Application is notified about
12196           received failure packet if client is executing a protocol.  In this
12197           case the protocol's execution has failed.
12198
12199         * Added SKE's end notify to send the SKE_SUCCESS notify message that
12200           is required by the protocol.
12201
12202         * Added SILC_PROTOCOL_STATE_FAILURE to indicate received failure
12203           packet from remote.  SILC_PROTOCOL_STATE_ERROR indicates local
12204           error at our end.
12205
12206         * Added status flag to SilcSKE object to indicate realtime status
12207           of the SKE protocol.
12208
12209         * Application receives now exactly same command reply arguments as
12210           the library receives from server.  However, if ID is received the
12211           corresponding ID entry is returned to the application (eg. Client
12212           ID is mapped to correct SilcClientEntry entry and that is returned).
12213           Changed command_reply client operation due to this change.
12214
12215         * Changed all ID's in commands and in command replys as ID Payloads.
12216           Change affected both client and server side codes.
12217
12218           All ID's sent in SILC network (with execption of ID's in SILC
12219           Packet header) are sent in ID Payload to support variable length
12220           ID's.
12221
12222         * Server now notifies nick changes and notifies all clients on
12223           the channels about the new nickname (about the new Client ID,
12224           actually).
12225
12226         * Implemented CMODE command to change channel modes. Supports all
12227           channel modes defined by the protocol specs except ban and invite
12228           lists. (Also, private channel key mode is supported but support for
12229           setting private channel key in client is missing, thus, this mode
12230           has no effect on client side (except that server requires that the
12231           client uses private channel key and normal channel traffic does not
12232           work anymore)).
12233
12234           Also, invite mode works per se, but INVITE command does not work
12235           yet correctly, so you can set channel as invite only channel but
12236           inviting clients to the channel does not work (it is yet to be
12237           thought what's the best way to do it).
12238
12239         * Added new command SILC_COMMAND_CUMODE to change user mode on the
12240           channel.  Defined user modes: CHANNEL_FOUNDER and CHANNEL_OPERATOR.
12241           Implemented CUMODE command to change user's mode on the channel.
12242           Supports all modes defined by the protocol specs.
12243
12244         * Added NAMES command reply to return users modes on the channel.
12245
12246         * Removed unnecessary and slow ciphers from lib/silccrypt.
12247
12248         * Set SO_KEEPALIVE option to connection sockets by default.
12249
12250         * Added new command reply status: SILC_STATUS_USER_NOT_ON_CHANNEL.
12251
12252         * Added notify types: MOTD, CMODE_CHANGE and CUMODE_CHANGE.  Also,
12253           redefined the Notify Payload into protocol specs.
12254
12255         * Added silc_id_payload_parse_id to get ID directly from raw
12256           ID payload data.
12257
12258 Mon Oct  9 20:57:02 EEST 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
12259
12260         * Changed SILC_COMMAND_IDENTIFY in protocol specification to
12261           accept searching by Client ID as well.
12262
12263         * Added support for LEAVE and SIGNOFF notify types in client library.
12264
12265         * Added silc_id_payload_parse_data into lib/silccore/silcpayload.[ch]
12266           to parse ID Payload from raw data.
12267
12268 Sun Oct  8 19:33:08 EEST 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
12269
12270         * Added flags parameter into silc_ske_assemble_security_properties
12271           function in lib/silcske/silcske.[ch].
12272
12273         * Changed notify client operation to fit better for notify messages
12274           sent by server.  The notify payload received from server is now
12275           passed to the application (after parsing it to SilcNotifyPayload).
12276           It is application's responsibility to retrieve the arguments
12277           from the payload and show the message the way it wants.  The message
12278           sent by server is implementation specific.
12279
12280         * Changed public keys to comply with the protocol specification.
12281           Old public keys are not supported anymore and are not compatible.
12282
12283         * Removed nickname from Channel Payload as the latest draft removed
12284           it.  The client must resolve the nickname from the NAMES command
12285           reply received when it joined the channel.
12286
12287           Also, changed all channel_xxxx_payload to channel_payload_xxxx.
12288
12289 Sat Oct  7 21:55:01 EEST 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
12290
12291         * Fixed some errors in protocol specification drafts.
12292
12293         * Created lib/silccore/silcnotify.c to implement Notify Payload
12294           encoding and decoding, lib/silccore/silcpayload.[ch] to implement
12295           generic payloads described by protocol specifications.  The file
12296           includes implementations for ID Payload and Argument Payload.
12297
12298         * Changed Command Payload implementation to use the new Argument
12299           Payload.  Changed command_xxxx_payload to command_payload_xxxx
12300           to comply with SILC coding conventions.
12301
12302         * Added suppport for Argument Payload handling in Notify Payload
12303           implementation as protocol requires it.  Added the new support
12304           into server and client lib as well.
12305
12306 Thu Oct  5 21:16:28 EEST 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
12307
12308         * Added support for multiple nicknames on same channel.  [n] is
12309           added locally to the nickname if there are more than one same
12310           nicknames on the channel.
12311
12312         * Server now sends all nicknames that matched WHOIS request.
12313           Client also shows the list received from server.
12314
12315         * Added TOPIC command to client side.  User can now set and show
12316           current topic on channel.
12317
12318         * Added MOTD command to client and server.  Also, server sends the
12319           motd when client connects to the server.
12320
12321         * Changed version strings to comply ISO 8601.
12322
12323 Wed Oct  4 23:29:06 EEST 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
12324
12325         * Fixed protocol error handling in client library.  It should now
12326           cope even if the SKE fails for some reason.
12327
12328         * Made new protocol specification drafts for submitting to IETF.
12329
12330         * Implemented TOPIC command to server in silcd/command.c.
12331
12332         * Added two new notify types into lib/silccore/silcnotify.h:
12333           SILC_NOTIFY_TYPE_NICK_CHANGE and SILC_NOTIFY_TYPE_TOPIC_SET to
12334           notify nickname change and topic setting/change on a channel.
12335
12336         * API change of command_reply operation in client library.  The
12337           application gets now the status type received from server as well.
12338
12339 Sat Sep 30 16:57:42 EEST 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
12340
12341         * Removed the function just added to lib/silcutil/silcschedule.[ch].
12342
12343         * Cras fixed and optimized the packet handling even further and
12344           it should work now.  Minor change to the prototype of function
12345           silc_packet_receive_process in lib/silccore/silcpacket.[ch].
12346
12347 Sat Sep 30 08:48:47 EEST 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
12348
12349         * Added new function into lib/silcutil/silcschedule.[ch]:
12350           silc_schedule_with_fd to select() a specified fd.  The function
12351           returns after timeout expires or data arrives or goes.  The
12352           function is used by packet routines to wait that all data is
12353           received from network.
12354
12355         * Fixed data reading from network in lib/silccore/silcpacket.c.
12356           The code now assures that all data is read from the fd and then
12357           continues packet processing.  This was a bug fix since the code
12358           used to drop some data in some circumstances.
12359
12360         * Added new function into lib/silcclient/client.[ch]:
12361           silc_client_start_key_exchange to start key exchange after
12362           connection has been established to server.  The code internally
12363           now uses this funtion but its main purpose was to provide it
12364           for applications that perform their own connecting.  After
12365           application has created a connection it merely calls this
12366           function to start the key exchange between client and server.
12367           The library takes care of everything else after that.
12368
12369           Updated also lib/silcclient/README to explain the usage of
12370           this new function.
12371
12372         * Do not send to application information that connection has
12373           been established.  Application gets notified it by connect
12374           operation anyway.
12375
12376 Thu Sep 28 23:40:19 EEST 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
12377
12378         * Applied cras's patch to add silc_schedule_one function.  The
12379           function runs scheduler once and returns.
12380
12381         * Fixed the scheduler after cras messed it up.  The timeout
12382           handling works now as it's supposed to work.
12383
12384         * Added into lib/silccore/ silcnotify.h to include notify
12385           message types support.  Changed silc_server_send_notify*
12386           functions, in server.[ch], to support those new notify types.
12387           Added the support for the notify types into client library,
12388           as well.  Added new notify client operation into ops.h in
12389           lib/silcclient/.
12390
12391         * Changed silc_server_packet_send_to_channel to send normal
12392           packets instead of just channel message packets.  The function
12393           is now used to send the notify packets to channels.  It is not
12394           used to send channel message packets anymore, as server never
12395           sends them anymore.
12396
12397         * Added explicit casting into lib/silcutil/silcbuffmt.c to few
12398           va_arg()s as it seems to require it nowadays.  I guess, if SILC
12399           is compiled with older va_arg() the new code should work anyway.
12400
12401 Wed Sep 13 18:10:14 EEST 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
12402
12403         * Splitted core library.  Core library (lib/silccore) includes
12404           now only SILC protocol specific core (and common) components.
12405           Created new utility library (lib/silcutil) that includes more
12406           generic purpose stuff.  The stuff for util library was taken
12407           from the old core library.  This was minor and easy split.
12408
12409         * Created SILC Client Library (lib/silcclient) that includes
12410           implementation of the SILC client without user interface.  This
12411           was major move from silc/ directory.  The code has been changed
12412           so that it is transparent towards the user interface.  The
12413           silc/ directory includes now the same user interface as before
12414           and it uses the new client library.  Read lib/silcclient/README.
12415           Basicly, the client library performs everything else related
12416           to SILC except user interface handling.  Also, configuration
12417           files are considered to be part of user interface and library
12418           does not handle them.
12419
12420           This change also changed a lot of structures, function naming etc.
12421           Most important change was that SilcClientWindow object was
12422           renamed to SilcClientConnection in the client library.  Created
12423           also new file lib/silcclient/ops.h.  Also added new files
12424           silc/local_command.[ch] and silc/client_ops.[ch].
12425
12426           All these changes were made to make it easier for user interface
12427           designers to create what ever user interface for the SILC client
12428           they want.
12429
12430           It is also expected that the server will be moved to lib
12431           directory as well and SILC Server Library will be created;
12432           sometimes in the future.
12433
12434         * Removed Local commands from lib/silccore/silccommand.h as
12435           they are application specific and new client library does not
12436           handle any of those anymore.
12437
12438         * Several functions moved to lib/silcutil/silcutilc.[ch] from
12439           old client implementation in silc/.
12440
12441         * Added support for callback functions in SILC_LOG_* macros.
12442           Application can now set its own callbacks that will be called
12443           instead of using the default functions that will always print
12444           the debug messages to stderr (or stdout).  Also, debugging can
12445           now be disabled by setting silc_debug to FALSE and re-enabled by
12446           setting it to TRUE.  Note, that logging will still work even
12447           if debugging is disabled.
12448
12449           New functions in lib/silcutil/silclog.[ch]: silc_log_set_callbacks,
12450           silc_log_reset_callbacks, silc_log_set_debug_callbacks and
12451           silc_log_reset_debug_callbacks.
12452
12453         * To enable debugging in silc client one must give now -d
12454           option on command line.
12455
12456         * Changed silc_schedule_init to automatically allocate task queues
12457           if they are not allocated before calling it.
12458
12459 Thu Sep  7 10:49:33 EEST 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
12460
12461         * Added GMP 3.1 into math library.
12462
12463 Sun Aug 20 21:27:26 EEST 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
12464
12465         * Added SILC_PACKET_REMOVE_CHANNEL_USER to remove a client from
12466           a channel in SILC network.  The packet is used by servers and
12467           routers to notify other routers that user has left a channel.
12468           This little feature was missing until now.  Added the feature
12469           to protocol specification as well.
12470
12471           Added functions: silc_server_send_remove_channel_user and
12472           silc_server_remove_channel_user into server.[ch].
12473
12474         * Added SILC_PACKET_REKEY and SILC_PACKET_REKEY_DONE into
12475           lib/silccore/silcpacket.h.  However, they are not implemented
12476           yet.
12477
12478 Sat Aug 19 23:04:16 EEST 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
12479
12480         * Fixed joining to a channel and sending channel messages
12481           between server and router.  The channel message sending should
12482           now work inside a cell.
12483
12484 Tue Jul 25 20:46:13 EEST 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
12485
12486         * Fixed the private message sending between server and router.
12487           The private message sending should now work inside a cell.
12488
12489         * Added silc_server_replace_id into server.[ch] to replace
12490           existing ID in the SILC network.
12491
12492         * Added silc_idlist_find_server_by, silc_idlist_replace_client_id
12493           and silc_idlist_replace_server_id into idlist.[ch] in server.
12494
12495 Mon Jul 24 18:33:31 EEST 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
12496
12497         * Fixed the server to server connections.  Server can again now
12498           connect to router.  Router to router connections probably does
12499           not work just yet.
12500
12501 Thu Jul 20 13:15:01 EEST 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
12502
12503         * Added dynamic protocol registering support.  Now protocols can
12504           registered and unregistered on the fly.  Patch by cras.
12505
12506 Wed Jul 19 19:08:46 EEST 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
12507
12508         * Added lib/contrib directory to hold routines that some platforms
12509           don't have but are needed by SILC.
12510
12511         * Added getopt.c, getopt1.c and getopt.h from GNU C library
12512           into lin/contrib to provide getopt() and getopt_long() for
12513           those who don't have it.
12514
12515 Tue Jul 18 20:41:20 EEST 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
12516
12517         * Added AWAY command to client.  When away message is set and
12518           client receives a private message packet the client automatically
12519           replies to the sender with the away message.
12520
12521         * Fixed a bug in lib/silcmath/mpbin.c: silc_mp_mp2bin.  This
12522           bug seemed to be the cause of recent problems when compiling
12523           with gcc-2.95.
12524
12525         * Added version detection support to SKE protocol specification
12526           and added the new changes to the SKE implementation as well.
12527           There were other minor changes in the SKE protocol as well.
12528
12529           Many changes in lib/silcske/silcske.[ch] and in
12530           lib/silcske/payload.[ch].
12531
12532         * Added ^U functionality, clear input line.  Patch from cras.
12533
12534 Mon Jul 17 23:33:26 EEST 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
12535
12536         * Mainly small bugfixes on core library.  Fixed some debugging
12537           logging and buffer overflow in silclog.c.
12538
12539         * Updated config.sub and config.guess on the distribution tree.
12540
12541 Sat Jul 15 15:33:48 EEST 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
12542
12543         * Added command lagging support in server. Client may execute
12544           commands now only once in two seconds.
12545
12546 Thu Jul 13 22:10:21 EEST 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
12547
12548         * Optimized packet reception. MAC computation and checking is now
12549           also more optimized.  A lot previously duplicated code is now
12550           used as generic by both client and server.
12551
12552         * Fixed key pair generation in clientutil.c
12553
12554 Wed Jul 12 18:28:07 EEST 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
12555
12556         * Added into lib/silccore/silcbufutil.[ch] new function;
12557           silc_buffer_realloc.
12558
12559         * Moved generic packet sending/encryption functions to
12560           lib/silccore/silcpacket.[ch] from client and server.  Some
12561           rewriting of the functions.
12562
12563         * Moved all generic packet reception/decryption functions to
12564           lib/silccore/silcpacket.[ch] from client and server.  The
12565           packet processing is now much cleaner in both client and server.
12566           These were major changes in both client and server.
12567
12568         * Created many common functions in server to do packet sending.
12569           Previously code were duplicated a lot, this has been removed
12570           with these changes.
12571
12572 Tue Jul 11 20:27:26 EEST 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
12573
12574         * Rewrote major parts of the ID cache system.  Don't know
12575           whether it is better now or not but at least the API is more
12576           cleaner now.
12577
12578         * Major rewrite on ID cache stuff on client because of the ID
12579           cache API changes.  Added idlist.c to client.
12580
12581         * Also major rewrite on ID cache stuff on server as well.
12582           Major rewrite of idlist.[ch]. SilcXXXList's are now named
12583           SilcXXXEntry's.  We won't keep anymore idlist specific pointers
12584           in hand, instead they are all put into the ID cache system now.
12585           All server_idlist_* routines uses ID cache now instead of
12586           traversing its own lists (those lists does not exist anymore).
12587           SilcIDList though still exists.  Also, SilcXXXEntry's are
12588           now pointers.
12589
12590 Sun Jul  9 15:19:24 EEST 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
12591
12592         * Finally made the SKE implementation compliant to the protocol
12593           specification.  All mp integers are now binary encoded as
12594           opposed being HEX encoded.
12595
12596         * Added lib/silcmath/mpbin.[ch].  Encoding mp intergers to and
12597           from binary data.
12598
12599         * Added into lib/silccore/silcutil.[ch] PEM encoding/decoding
12600           functions: silc_[encode/decode]_pem.  Also added function
12601           silc_encode_pem_file to PEM encode with newlines ('\n') for
12602           saving into a file.
12603
12604         * SILC public keys are now encoded either PEM or binary.  Same
12605           option is for private keys as well.  By default private keys
12606           are binary encoded and public keys PEM encoded.  Silly HEX
12607           encoding were removed.
12608
12609         * Added into lib/silccrypt/silchash.[ch] silc_hash_fingerprint
12610           function to create fingerprints.
12611
12612         * Fixed a bug in SHA1; does not change the original data anymore.
12613
12614         * Partly implemented INFO command on client and server side.
12615           Fixed CLEAR command.  Changes to SERVER command; show current
12616           server(s) when giving command without arguments.  Added
12617           VERSION command to client.
12618
12619         * Added check to server that unregistered connections cannot
12620           execute commands (unless it is specificly allowed).
12621
12622 Thu Jul  6 18:12:24 EEST 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
12623
12624         * Fixed screen refresh.
12625
12626         * Fixed channel joining bug from client.  On some circumstances
12627           client tried to join to a channel it had already joined.
12628
12629         * Added public key verification process into client's protocol.c.
12630           The client now verifies the public key from user and saves
12631           it into ~./silc/serverkeys/ directory.
12632
12633           Added into: clientutil.[ch]: silc_client_verify_server_key.
12634
12635         * Changed SKE protocol's silc_ske_initiator_finish function
12636           to accept callback function that verifies the received public
12637           key.  Removed old silc_ske_verify_public_key function.
12638
12639 Wed Jul  5 19:19:02 EEST 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
12640
12641         * Added into silcpkcs[ch]: silc_pkcs_public_key[_data]_set and
12642           silc_pkcs_private_key[_data]_set.
12643
12644         * Made the password and public authentication more cleaner in
12645           server's protocol.c.
12646
12647         * Removed historic and obsolete protocol `channel_auth' from
12648           both client and server.
12649
12650         * Removed wrong way of sending command status messages from
12651           server to client in server's command.c.  The old way violated
12652           protocol specification.
12653
12654           Changes to silccore/silccommand.[ch]: removed
12655           silc_command_encode_status_payload -> not needed anymore,
12656           changed silc_command_encode_payload_va to accept extra
12657           argument on variable argument list.  The argument type must
12658           now be provided to the function.  Also, added new function:
12659           silc_command_encode_reply_payload_va which is same as
12660           normal command_encode_payload_va except command status type
12661           is provided as extra argument.
12662
12663 Tue Jul  4 18:26:39 EEST 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
12664
12665         * Added ~./silc directory handling.  The directory includes the
12666           public and private keys for the client.
12667
12668           Added silc_client_check_silc_dir, silc_client_create_identifier
12669           and silc_client_load_keys.
12670
12671         * Implemented SILC protocol compliant public key.  Added public
12672           and private key saving to and loading from files.
12673
12674           Added into silcpkcs.[ch]: silc_pkcs_encode_identifier,
12675           silc_pkcs_public_key_encode[_data], silc_pkcs_public_key_decode,
12676           silc_pkcs_private_key_encode[_data], silc_pkcs_private_key_decode,
12677           silc_pkcs_public_key_alloc, silc_pkcs_public_key_free,
12678           silc_pkcs_private_key_alloc and silc_pkcs_private_key_free.
12679
12680           Implemented: silc_pkcs_save_[public/private]_key[_data] and
12681           silc_pkcs_load_[public/private]_key.
12682
12683 Mon Jul  3 18:51:27 EEST 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
12684
12685         * Added silc_server_get_route (route.[ch]) to get connection
12686           data for the fastest route for given ID.
12687
12688         * Implemented INVITE command on client and server.  The command
12689           were re-defined in the SILC Protocol Specification and the
12690           implementation now complies with the specification.
12691
12692         * Implemented PING command on client and server.
12693
12694         * Implemented NAMES command on client and server.  The server side
12695           supports currently only normal server not router server yet.
12696           Some changes to NAMES definition in SILC protocol specification.
12697
12698 Sun Jul  2 18:23:01 EEST 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
12699
12700         * Implemented LEAVE command on client and server.
12701
12702         * Previously deprecated SILC_PACKET_FORWARDED flag is now in use
12703           again.  This change was made to the protocol as well.  Server
12704           should not violate the protocol specification anymore.
12705
12706 Fri Jun 30 14:03:26 EEST 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
12707
12708         * Added SOCKS4 and SOCKS5 support to SILC client.  SOCKS5
12709           was tested.  SOCKS4 was not but should work anyway.