udpates.
[silc.git] / CHANGES
1 Mon Jun 11 22:10:17 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
2
3         * Added __SILC_TOOLKIT_x_x_x macro to all Toolkit distribution
4           which can be used to check for Toolkit version in third-party
5           software.  Affected file is configure.ad, includes/silc.h.in.
6
7 Sun Jun 10 17:32:15 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
8
9         * Added support for channel@server channel name strings to
10           client library (SILC protocol version 1.3 change).  Affected
11           files are lib/silcclient/silcclient_entry.h, client_entry.c.
12
13         * Added full_nicknames and full_channel_names settings to
14           SilcClientParams that can be used to specify whether client
15           library returns full nickname and channel name strings.
16           Full strings are nick@server and channel@server.  Affected
17           file is lib/silcclient/client_entry.c and command.c.
18
19 Sat Jun  9 19:43:25 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
20
21         * Fixed unix connecting failure to return error code correctly.
22           Affected file is lib/silcutil/unix/silcunixnet.c.
23
24 Fri Jun  8 23:32:33 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
25
26         * Fixed SKE timeout double free crash.  Affected file is
27           lib/silcske/silcske.c.
28
29         * Fixed MIME multipart decoding buffer overflow.  Affected file
30           is lib/silcutil/silcmime.c.  Thanks to Matt Miller for patch.
31
32 Fri Jun  8 18:39:34 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
33
34         * Fixed connection auth protocol timeout crash.  Affected
35           file is lib/silcske/silconnauth.c.
36
37         * Fixed FSM machine finishing to check for existing threads
38           at the final free callback to allow time for the threads to
39           finish.  Affected file lib/silcutil/silcfsm.c.
40
41 Thu Jun  7 21:25:31 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
42
43         * Fixed silc_client_get_clients_local to check the nick's
44           server also if nick@server nickname string is given to the
45           function.  Affected file is lib/silcclient/client_entry.c.
46
47 Wed Jun  6 18:33:05 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
48
49         * Added notify callback to silc_schedule_init which can be used to 
50           set a notify callback for scheduler which is called when task is
51           added to scheduler or deleted from scheduler.  Affected file
52           is lib/silcutil/silcschedule.[ch].
53
54         * Dispatch timeout tasks after dispatching FD tasks if the timeout
55           was very short.  Affected file is lib/silcutil/silcschedule.c.
56
57         * Rewrote the SILC scheduler handling in SILC Client to not poll
58           every few msecs but to use the new notify callback.  Affected 
59           file is apps/irssi/src/silc/core/silc-core.c.
60
61         * Fixed SFTP client library read buffer size which was too small.
62           Affected file is lib/silcsftp/sftp_client.c.
63
64         * Fixed file transfer crash bug in /QUIT in SILC Client.  Close
65           the FTP sessions before quitting the client.  Affected file
66           is apps/irssi/src/silc/core/silc-servers.c.
67
68 Tue Jun  5 20:48:40 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
69
70         * Fixed silc_packet_get_ids to decode the IDs correctly.
71           Affected file is lib/silccore/silcpacket.c.
72
73         * Fixed silc_client_get_clients_local to parse correctly nickname
74           string that may have server name in it (nick@server) regardless
75           whether it was formatted nickname or not.  Affected file is
76           lib/silcclient/client_entry.c.
77
78 Mon Jun  4 22:02:53 CEST 2007  Jochen Eisinger <jochen@penguin-breeder.org>
79
80         * Only destroy sendbuffers, if they still exist (they cease to
81           exist during /upgrade).  Affected file is
82           apps/irssi/src/silc/core/silc-servers.c
83
84 Mon Jun  4 21:24:17 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
85
86         * Removed --enable-silc-plugin.  Added --with-silc-plugin.
87           Affected files are configure.ad, lib/configure.ad,
88           apps/irssi/configure.ad, apps/irssi/configure.in,
89           apps/irssi/scripts/Makefile.am,
90           apps/irssi/scripts/examples/Makefile.am,
91           apps/irssi/src/silc/core/silc/Makefile.am,
92           apps/irssi/src/fe-common/silc/Makefile.am.
93
94 Mon Jun  4 08:35:59 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
95
96         * SILC Client 1.1.
97
98 Sun Jun  3 14:00:09 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
99
100         * Fixed DESTDIR handling in make install.
101
102 Sat Jun  2 21:04:32 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
103
104         * SIM modules are not delivered to SILC CLient distribution
105           anymore.
106
107         * Changed default installation path from /usr/local/silc to
108           /usr/local for all distributions.
109
110         * Removed --with-etcdir and --with-docdir.  The etcdir is now
111           the system's default.  The Docdir is system's default.
112
113 Sat Jun  2 00:51:57 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
114
115         * If public key/private key loading fails set the return
116           pointer to NULL.  Affected file is lib/silccrypt/silcpkcs.c.
117
118         * If private key loading fails in silc_load_key_pair free the
119           loaded public key.  Affected file is
120           lib/silcapputil/silcapputil.c.
121
122         * Fixed key pair loading crash with SILC Plugin if key pair
123           loading fails.  Affected file is
124           apps/irssi/src/silc/core/silc-core.c.
125
126         * Fixed SILC Client help and script file installation path
127           to go to prefix/share/silc.  Affected files are
128           apps/irssi/src/scripts/Makefile.am and
129           apps/irssi/docs/help/Makefile.am.gen.
130
131 Thu May 31 16:49:13 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
132
133         * Fixed UTC offset minutes to be actually minutes.  Affected
134           file is lib/silcutil/silctime.c.
135
136 Thu May 31 09:40:56 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
137
138         * SILC Toolkit 1.1.
139
140         * Added support for checking for timezone and tm_gmtoff.
141           Affected files are configure.ad and lib/silcutil/silctime.c.
142
143 Wed May 30 18:46:34 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
144
145         * Added silc-toolkit.spec.in RPM spec file.
146
147 Mon May 28 23:21:39 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
148
149         * Fixed nickname formatting crash when updating existing
150           client entry.  Affected file is lib/silcclient/client_entry.c.
151
152         * Fixed MIME object encoding in attribute payload encoding.
153           Affected file is lib/silccore/silcattrs.c.
154
155 Mon May 28 09:02:26 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
156
157         * SILC Client 1.1 Beta6
158
159 Sun May 27 20:38:30 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
160
161         * Copy SILC Plugin's libfe_common_silc.so to libfe_silc.so so
162           that user's don't have to do it manually.  Affected file
163           is apps/irssi/src/fe-common/silc/core/Makefile.am.
164
165 Thu May 24 15:30:31 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
166
167         * SILC Toolkit 1.1 Beta4.
168
169         * Fixed channel and server entry freeing in client library.
170           Affected file is lib/silcclient/client_entry.c.
171
172         * Do not allow stopping client before it has been started.
173           Affected file is lib/silcclient/client.c.
174
175 Wed May 23 23:21:03 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
176
177         * Fixed formatted nickname renaming to rename also irssi's
178           nicklist (/NAMES etc).  Affected file is
179           apps/irssi/src/silc/core/client_ops.c.
180
181         * Fixed SILC Plugin crash when stopping client library before
182           it has been started.  Affected file is
183           apps/irssi/src/silc/core/silc-core.c.
184
185 Tue May 22 17:18:54 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
186
187         * For SILC Client and SILC Server check for 1.1 Toolkit
188           in configure.  Affected file is configure.ad.
189
190         * Added better library linking flags and orders for SILC Client.
191           Affected file is configure.ad, Makefile.defines_int.in and
192           apps/irssi/src/fe-text/Makefile.am
193
194 Mon May 21 08:26:38 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
195
196         * SILC Client 1.1 Beta5.
197
198 Sun May 20 18:34:22 CEST 2007  Jochen Eisinger <coffee@silcnet.org>
199
200         * Add hooks for Irssi 0.8.11 module functions.  Affected file
201           is apps/irssi/src/fe-common/silc/fe-common-silc.c
202
203 Sat May 19 14:46:36 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
204
205         * Fixed passphrase authentication with server.  Affected file
206           is lib/silcclient/client_connect.c.
207
208         * Fixed passphrase authentication as responder.  Affected file is
209           lib/silcske/silcconnauth.c.
210
211         * Changed SilcAskPassphrase and SilcGetAuthMeth callbacks to
212           return data as const.  Affected file is
213           lib/silcclient/silcclient.h.
214
215         * Fixed timeout calculation in Symbian scheduler.  Affected
216           file is lib/silcutil/symbian/silcsymbianscheduler.c.
217
218 Fri May 18 21:10:38 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
219
220         * Do not uninitialize u.m.threads atomic int in finish but in
221           free.  Fixes crash on any platform using atomic operations
222           using mutexes (like Symbian).  Affected file is
223           lib/silcutil/silcfsm.c.
224
225         * Fixes Symbian scheduler wakeup synchronization.  Affected file
226           is lib/silcutil/symbian/silcsymbianscheduler.c.
227
228 Fri May 18 18:10:36 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
229
230         * Fixed nickname formatting to handle already formatted nicknames
231           better.  Affected file is lib/silccilent/client_entry.c.
232
233         * Added "foo#2 appears as foo" support to SILC Client when user
234           leaves or quits and one formatted nickname remain.  Affected file 
235           is apps/irssi/src/silc/core/client_ops.c.
236
237         * Send SilcChannelEntry to application in SILC_NOTIFY_TYPE_SIGNOFF.
238           Affected file is lib/silcclient/client_notify.c.
239
240 Thu May 17 18:05:10 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
241
242         * Fixed silc_show_public_key to not free public key in case of
243           failure.  Affected file is lib/silcapputil/silcapputil.c.
244
245 Thu May 17 17:09:50 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
246
247         * SILC Toolkit 1.1 Beta3.
248
249         * Porting Toolkit to Symbian.  It should work while some sporadic
250           odd crashes remain.  However I was able to run mybot on SILCNet.
251           Basically tested scheduler, net routines, socket  routines,
252           threads and some other utility routines.  Affected files are
253           in lib/silcutil/symbian/.
254
255 Thu May 17 11:57:40 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
256
257         * Show realname and email address from public key when verifying
258           cached public keys with GETKEY.  Affected files are
259           apps/irssi/src/fe-common/module-formats.[ch] and
260           apps/irssi/src/silc/core/client_ops.c.
261
262 Wed May 16 20:41:04 CEST 2007  Jochen Eisinger <coffee@silcnet.org>
263
264         * Include SILC Plugin theme.  Affected file is apps/irssi/plugin.theme
265
266         * Include SILC Plugin /silc command help.  Affected file is
267           apps/irssi/docs/help/silc
268
269         * Create channels before joining them.  Affected file is
270           apps/irssi/src/silc/core/client_ops.c
271
272 Wed May 16 18:59:22 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
273
274         * Fixed channel private key listing with /key.  Affected file
275           is apps/irssi/src/silc/core/silc-channels.c.
276
277         * Fixed the public headers from anonymous structures.  Affected
278           files are lib/.
279
280         * Changed silc_buffer_*len macros to inline functions.  Affected
281           file is lib/silcutil/silcbuffer.h.
282
283 Wed May 16 10:21:45 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
284
285         * Fixed nickname format parsing in JOIN notify handling and
286           in WHOIS command reply.  Affected file is
287           apps/irssi/src/silc/core/client_ops.c.
288
289 Wed May 16 09:34:10 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
290
291         * SILC Client 1.1 Beta4.
292
293 Tue May 15 23:55:41 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
294
295         * Added SILC_VERIFY macro which is equivalent to SILC_ASSERT
296           but is compiled always in.  Affected file is 
297           lib/silcutil/silclog.h.
298
299         * Use SILC_VERIFY in FSM macros instead of SILC_ASSERT which is
300           not there in release builds.  Affected file is
301           lib/silcutil/silcfsm.h.
302
303 Tue May 15 21:19:09 CEST 2007  Jochen Eisinger <coffee@silcnet.org>
304
305         * SILC Client 1.1-beta3
306
307 Mon May 14 23:20:59 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
308
309         * Added silc_utf8_c2w and silc_utf8_w2c to do UTF-8 to widechar
310           and widechar to UTF-8 conversions.  Affected files are
311           lib/silcutil/silcutf8.[ch].
312
313 Mon May 14 19:45:14 CEST 2007  Jochen Eisinger <coffee@silcnet.org>
314
315         * Include a README for the SILC Plugin
316
317 Sun May 13 22:08:59 CEST 2007  Jochen Eisinger <coffee@silcnet.org>
318
319         * Adopt perl Makefiles for SILC Plugin.
320
321 Sun May 13 18:27:13 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
322
323         * Fixed client library initialization when the running callback
324           is not given to silc_client_init.  Affected file is
325           lib/silcclient/client.c.
326
327         * Fixed Symbian compilation problems around the tree.  Added
328           new Carbide.c++ project files to symbian/ directory.
329
330         * Fixed SilcLog API to work on Symbian.  On Symbian it doesn't
331           use any globals.  Affected files are lib/silcutil/silclog.c
332           and silclog_i.h.
333
334 Sun May 13 16:54:35 CEST 2007  Jochen Eisinger <coffee@silcnet.org>
335
336         * Fix several warnings in Irssi's Makefiles.
337
338 Sun May 13 12:16:30 CEST 2007  Jochen Eisinger <coffee@silcnet.org>
339
340         * Disable ASM if --with-pic was given.  Affected file is
341           lib/silccrypt/configure.ad
342
343 Fri May 11 19:10:54 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
344
345         * Wakeup scheduler in silc_fsm_continue and silc_fsm_next_later
346           in case they are called from a thread.  Affected file is
347           lib/silcutil/silcfsm.c.
348
349         * Fixed WIN32 thread creation to handle the Tls correctly.
350           Affected file is lib/silcutil/win32/silcwin32thread.c.
351
352 Thu May 10 18:29:18 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
353
354         * SILC Toolkit 1.1-beta2.
355
356 Thu May 10 18:21:10 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
357
358         * Fixed silc_net_tcp_connect crash on Unix and Win32.  Handle
359           the socket async operation correctly.  Changed that DNS lookup
360           is now done during connecting.  Affected files are
361           lib/silcutil/[unix|win32]/silc[unix|win32]net.c.
362
363         * Changed also silc_net_tcp_connect on Symbian to do DNS lookup.
364           Affected file is lib/silcutil/symbian/silcsymbiannet.c.
365
366         * Optimize silc_net_gethostbyname to check if the name is already
367           IP address.  Affected file is lib/silcutil/silcnet.c.
368
369 Wed May  9 19:51:28 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
370
371         * Print filename instead of empty function name in debug output
372           on WIN32.  Affected files are lib/silcutil/silclog_i.h and
373           silclog.c.
374
375         * Rewrote WIN32 SILC Scheduler.  It now handles non-blocking file 
376           descriptors and sockets better.  Though, room for optimization
377           remains.  Affected file is lib/silcutil/win32/silcwin32schedule.c.
378
379         * Removed silc_net_win32_[init|uninit].  They are called now
380           automatically when SILC Scheduler is allocated.  Wrote IPv4
381           address parser because inet_addr seemed not to work on my WIN32.
382           Affected file is lib/silcutil/win32/silcwin32net.c.
383
384         * Improved socketstream.h and stream.h documentation.
385
386 Tue May  8 18:13:38 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
387
388         * Changed private message waiting API in client library to make
389           it work better with multiple waiting threads.  The waiting is
390           not always per client entry instead of per connection.  Affected
391           files are lib/silcclient/client_prvmsg.c, client.h and
392           silcclient.h.
393
394         * Changed silc_packet_wait_init function to accept the the expected
395           Source ID of the packet as argument.  If specified only packets
396           with the specified types and Source ID are delivered.  Affected
397           files are lib/silccore/silcpacket.[ch].
398
399         * Fixed file transfer disconnection crash when closing the session
400           directly in the monitor callback after disconnection.  Affected
401           file is lib/silcclient/client_ftp.c.
402
403         * Make Toolkit compile on WIN32.  Affected files in win32/
404           and in lib/silcutil/win32/.
405
406         * Changed silc_compare_timeval to return negative, zero or
407           positive instead of just TRUE or FALSE.  This fixes 0 timeout
408           task dispatching on Windows.  Affected files are
409           lib/silcutil/silctime.[ch] and silcschedule.c.
410
411 Mon May  7 18:18:48 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
412
413         * Fixed CMODE channel auth public key retrieval.  Affected
414           file is lib/silcclient/command.c.
415
416         * Fixed CMODE command reply to return channel public keys
417           correctly.  Affected files are lib/silcclient/command_reply.c
418           and client_channel.c.
419
420 Sun May  6 12:43:19 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
421
422         * Added current channel key cipher name and HMAC name to
423           SilcChannelEntry.  Fixed channel private key creation.
424           Affected files are lib/silcclient/client_channel.c,
425           client_entry and silcclient_entry.h.
426
427         * Allow formatted nicknames as input to silc_client_get_clients
428           and silc_client_get_clients_whois.  Affected file is
429           lib/silcclient/client_entry.c.
430
431         * Fixed silc_message_payload_free crash.  Affected file is
432           lib/silccore/silcmessage.c.
433
434         * Added SILC_STATUS_ERR_NO_SUCH_PUBLIC_KEY to
435           lib/silccore/silcstatus.h.
436
437 Thu May  3 18:07:50 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
438
439         * Imported libtommath 0.41.  Renamed all mp_* functions to
440           tma_mp_* functions to avoid rare linking problems on systems
441           with mp_* functions.  Affected files are in lib/silcmath/.
442
443 Wed May  2 17:46:25 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
444
445         * SILC Toolkit 1.1 Beta1.
446
447 Wed May  2 11:38:17 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
448
449         * Set the server and router operator modes to local entry after
450           successful OPER or SILCOPER commands.  Affected file is
451           lib/silcclient/command_reply.c.
452
453 Tue May  1 14:17:06 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
454
455         * Ported SILC Socket Stream API, SILC Net API, SILC Schedule API,
456           and other smaller APIs to WIN32.  Affected files are in
457           lib/silcutil/win32/.
458
459         * Changed the various regex APIs as generic code in util library.
460           Affected files are lib/silcutil/silcstrutil.[ch].
461
462 Sat Apr 28 13:47:47 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
463
464         * Ported SILC Server to the new Toolkit API, working towards
465           SILC Server 1.1.  Affected files are in apps/silcd/.
466
467         * Added silc_skr_del_public_key, silc_skr_[ref|unref]_public_key
468           to lib/silcskr/silcskr.[ch].
469
470         * Fixed SILC public key copying to copy the identifier also.
471           Affected file is lib/silccrypt/silcpk.c.
472
473         * Added silc_packet_error_string to lib/silccore/silcpacket.[ch].
474
475         * Fixed OPER and SILCOPER passphrase asking in Client library.
476           Affected file is lib/silcclient/command.c.
477
478 Tue Apr 24 17:55:24 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
479
480         * Fixed command queue enabling after connecting to server.
481           The comparisons was from after changing to silc_utf8_strcasecmp.
482           Affected file is apps/irssi/src/silc/core/silc-servers.c.
483
484         * Fixed nickname setting with own client entry with 1.3 protocol
485           version server.  Affected file lib/silcclient/client_register.c.
486
487         * Ignore error notify for local client entry.  Affected file is
488           lib/silcclient/client_notify.c.
489
490         * Implemented responder rekey to SKE library.  Affected files are
491           lib/silcske/silcske.[ch].
492
493         * Fixed connection auth protocol completion sending.  Affected
494           file lib/silcske/silcconnauth.c.
495
496 Mon Apr 23 17:20:01 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
497
498         * Do not call TCP network listener callback with any error
499           status, as documented.  Affected file is
500           lib/silcutil/unix/silcunixnet.c.
501
502 Sun Apr 22 21:13:28 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
503
504         * Preliminary SILC Server 1.1 changes committed to apps/silcd/.
505
506         * Added SILC_SKR_USAGE_SERVICE_AUTHORIZATION SKR key usage type.
507           Changed silc_skr_find to have SilcSchedule argument and removed
508           it from silc_skr_[alloc|init].  Affected files are
509           lib/silcskr/silcskr.[ch].
510
511         * Allow NULL id for silc_idcache_add.  Affected file is
512           lib/silcapputil/silcidcache.c.
513
514         * Added silc_packet_stream_is_valid, silc_packet_get_ids and
515           silc_packet_engine_get_streams to lib/silccore/silcpacket.[ch].
516           Fixed also channel message encryption with router-to-router
517           packets.
518
519         * Added silc_id_str2id2 to lib/silccore/silcid.[ch].
520
521         * Added silc_net_get_error_string, silc_net_listener_get_ip and
522           silc_net_listener_get_hostname to lib/silcutil/silcnet.[ch].
523
524 Tue Apr 10 15:55:42 CEST 2007  Jochen Eisinger <coffee@silcnet.org>
525
526         * Add option --enable-silc-plugin.  Affected files are
527           apps/irssi/configure.{ad,in}
528
529         * Only compile the SILC Plugin if required.  Affected files are
530           apps/irssi/src/Makefile.am, apps/irssi/src/fe-common/Makefile.am
531
532         * Conditionally build the SILC Plugin.  Affected files are
533           apps/irssi/src/silc/core/Makefile.am,
534           apps/irssi/src/fe-common/silc/Makefile.am
535
536         * Backout delayed protocol exit and replace with a lame busy
537           wait.  Affected files are apps/irssi/src/fe-text/silc.c,
538           apps/irssi/src/silc/core/silc-core.c
539
540         * Fix key generation for SILC Plugin.  Affected file
541           apps/irssi/src/silc/core/clientutil.c
542
543 Tue Apr 10 12:40:19 CEST 2007  Jochen Eisinger <coffee@silcnet.org>
544
545         * Only pass -rpath to libtool when building shared libraries.
546           Affected file lib/Makefile.ad
547
548         * Removing the stray "s" in configure.ad
549
550 Sat Mar 24 19:13:58 CET 2007  Jochen Eisinger <coffee@silcnet.org>
551
552         * Redraw the screen after creating a new key.  Affected file
553           apps/irssi/src/silc/core/clientutil.c
554
555 Sun Mar 18 15:54:10 EET 2007  Pekka Riikonen <priikone@silcnet.org>
556
557         * Added SILC Client setting /set nickname_format that specifies
558           the nickname format string.  Changed default nickname format
559           string to "%n#%a".  Affected file is
560           apps/irssi/src/silc/core/silc-core.c, apps/irssi/silc.conf.
561
562         * Fixed nickname parsing with WHOIS command to accept formatted
563           nicknames.  Changed the silc_client_get_clients_local to allow
564           the searched nickname to be formatted nickname.  Removed %s and
565           %S nickname formatters.  Affected files are in lib/silcclient/.
566
567         * Added silc_client_nickname_parse to Client library API.  Affected
568           file is lib/silcclient/silcclient.h.
569
570         * Fixed nickname parsing and resolving with /MSG, /FILE and /KEY
571           commands.  Affected file are
572           apps/irssi/src/silc/core/silc-servers.c and silc-channels.c.
573
574 Sat Mar 17 19:07:15 CET 2007  Jochen Eisinger <coffee@silcnet.org>
575
576         * Incorporate SILC Plugin patches.  Affected files are
577           apps/irssi/src/fe-common/silc/module-formats.{c,h},
578           apps/irssi/src/silc/core/clientutil.{c,h},
579           apps/irssi/src/silc/core/silc-core.c,
580           apps/irssi/src/silc/core/silc-chatnets.{c,h},
581           apps/irssi/src/fe-common/silc/fe-silcnet.c, and
582           apps/irssi/src/fe-common/silc/module.h
583
584 Wed Mar 14 17:31:28 EET 2007  Pekka Riikonen <priikone@silcnet.org>
585
586         * In notify handling resolve user entries many times if the
587           resolving timedout.  Affected file lib/silcclient/client_notify.c.
588
589         * silc_client_get_clients_local do not return any invalid entries.
590           Affected file is lib/silcclient/client_entry.c.
591
592         * Do not print "there are now xx user on this channel" for users
593           that actually aren't anymore on the channel.  Affected file
594           is apps/irssi/src/client_ops.c.
595
596 Sun Mar 11 17:43:18 CET 2007  Jochen Eisinger <coffee@silcnet.org>
597
598         * When joining channels with a password given in the config file,
599           use it.  Also use it when cycling (it would be better to get
600           the password from the server, but this isn't possible in SILC).
601           Affected files apps/irssi/src/silc/core/silc-servers.c,
602           apps/irssi/src/silc/core/silc-channels.c
603
604 Sun Mar 11 15:22:42 CET 2007  Jochen Eisinger <coffee@silcnet.org>
605
606         * Import perl script for sign_messages from silc-plugin.  Affected
607           file apps/irssi/scripts/silc.pl
608
609 Sun Mar 11 15:19:10 CET 2007  Jochen Eisinger <coffee@silcnet.org>
610
611         * Only wait for a nick on connecting, when it differs
612           (not counting case) from the username.  Affected file
613           is apps/irssi/src/silc/core/silc-servers.c
614
615 Sun Mar 11 13:50:53 CET 2007  Jochen Eisinger <coffee@silcnet.org>
616
617         * Use time settings for lag settings.  Affected file is
618           apps/irssi/src/silc/core/silc-lag.c
619
620 Tue Feb 27 17:07:34 EET 2007  Pekka Riikonen <priikone@silcnet.org>
621
622         * Added silc_thread_yield.  Affected file is
623           lib/silcutil/silcmutex.h.
624
625 Wed Feb 21 17:01:01 EET 2007  Pekka Riikonen <priikone@silcnet.org>
626
627         * Fixed WHOIS command and requested attributes handling in
628           client library.  Affected files are lib/silcclient/command.c
629           and lib/silcclient/client_attrs.c.
630
631         * Fixed silc_time_value to actually work.  Added new function
632           silc_timezone.  Affected files are lib/silcutil/silctime.[ch].
633
634 Tue Feb 20 08:31:28 EET 2007  Pekka Riikonen <priikone@silcnet.org>
635
636         * SILC Client 1.1 beta2.
637
638 Mon Feb 19 16:06:27 EET 2007  Pekka Riikonen <priikone@silcnet.org>
639
640         * Fixed client to properly abort TCP stream creation when
641           giving /QUIT.  Affected file
642           apps/irssi/src/silc/core/silc-servers.c.
643
644         * Fixed several connecting aborting crashes from the client
645           library, packet engine and socket stream.  Affected files
646           are in lib/silclient/, lib/silccore/silcpacket.c and
647           lib/silcutil/unix/silcunixsocketstream.c.
648
649         * Fixed private key export double free crash in key generation.
650           Affected file is lib/silccrypt/silcpk.c.
651
652         * Fixed FSM event waiting when there are multiple signallers
653           and the waiter goes away after the first signal.  Affected
654           file in lib/silcutil/silcfsm.c.
655
656 Sun Feb 18 22:02:22 EET 2007  Pekka Riikonen <priikone@silcnet.org>
657
658         * Fixed FSM event signalling to check if the waiter has gone
659           away already.  Affected file is lib/silcutil/silcfsm.c.
660
661         * Fixed counter mode encryption/decryption to handle non-padded
662           SILC packets correctly.  The silc_cipher_set_iv now
663           in counter mode resets for a new block.  Affected files are
664           in lib/silcske/, lib/silccrypt/, lib/silcpacket/.
665
666 Sun Feb 18 12:15:21 EET 2007  Pekka Riikonen <priikone@silcnet.org>
667
668         * SILC Client 1.1 beta1.
669
670         * Memory leak fixes around the libraries.
671
672 Fri Feb 16 16:53:16 EET 2007  Pekka Riikonen <priikone@silcnet.org>
673
674         * Added better check for epoll() in configure.  Affected file
675           is lib/configure.ad.
676
677 Thu Feb 15 16:50:34 EET 2007  Pekka Riikonen <priikone@silcnet.org>
678
679         * Fixed per scheduler data input buffer in packet engine.  Use
680           list of inbufs instead of just one so that multiple streams
681           can do partial reads to different buffers.  Affected file is
682           lib/silccore/silcpacket.c.
683
684         * Fixed WATCH notify handling in client library.  Affected file
685           is lib/silcclient/client_notify.c.
686
687 Wed Feb 14 17:05:38 EET 2007  Pekka Riikonen <priikone@silcnet.org>
688
689         * Fixed packet wrapper stream API to support encoder/decoder
690           for packets, and to handle partial reading correctly.  Fixed
691           also inbuf size checking in reading to have enough space before
692           reading.  Affected files are lib/silccore/silcpacket.[ch].
693
694         * Rewrote file transfer in client library.  Affected files are
695           in lib/silcclient/.
696
697         * Added TCP/UDP listener (internal) API to client library to have
698           generic way of dealing with listeners.  Fixed Key Agreement and
699           file transfer to use it.  Affected files are in lib/silcclient/.
700
701         * Fixed SKE to process SUCCESS packets synchronously and to call
702           completion synchronously.  Affected file is lib/silcske/silske.c.
703
704         * Fixed pthread rwlock detection.  Affected file includes/silc.h.in.
705
706         * Implemented SILC_ATTRIBYUTE_PHONE_NUMBER.  Affected files are
707           lib/silccore/silcattrs.[ch].  SILC Protocol version 1.3 change.
708
709 Fri Feb  2 22:24:11 EET 2007  Pekka Riikonen <priikone@silcnet.org>
710
711         * Added support for SILC protocol version 1.3 NEW_CLIENT packet
712           to client library.  Affected file is
713           lib/silcclient/client_register.c.
714
715         * Serialize NICK and JOIN commands to avoid problems locally
716           with changing ID while joining to channel.  Affected file is
717           lib/silcclient/command.c.
718
719         * Fixed entry resolving while handling incoming JOIN notify.
720           Handle properly cases, in re-processing of notify packets, where
721           the IDs may become invalid while resolving the entry (like nick
722           change).  Entry is invalid if it doesn't have nickname, and such
723           entries are not delivered to application anymore.  These fixes
724           problems of not seeing JOINs when remote user changes nickname
725           at the same time.  Affected files are in lib/silcclient/.
726
727 Thu Feb  1 18:35:58 EET 2007  Pekka Riikonen <priikone@silcnet.org>
728
729         * Added support for computing message payload MAC in new way
730           (SILC Protocol version 1.3).  Bakcwards support for old way
731           remains.  Affected files are lib/silccore/silcmessage.[ch].
732
733 Sat Jan 27 22:37:30 EET 2007  Pekka Riikonen <priikone@silcnet.org>
734
735         * Added SilcRwLock API, a read/write lock.  Affected files are
736           lib/silcutil/silcmutex.h and in lib/silcutil/[unix|win32|symbian]/.
737
738 Wed Jan 24 18:55:21 EET 2007  Pekka Riikonen <priikone@silcnet.org>
739
740         * Merged Irssi SVN (irssi 0.8.11).  Affected files in apps/irssi/.
741
742 Tue Jan 23 16:05:27 EET 2007  Pekka Riikonen <priikone@silcnet.org>
743
744         * The silc_schedule_set_listen_fd now returns boolean value.
745           Fixed FD task adding to check correctly for already added
746           FD tasks.  Added stricter error checking for FD scheduling
747           with epoll().  Affected files are lib/silcutil/silcschedule.[ch]
748           and lib/silcutil/unix/silcunixschedule.c.
749
750         * The silc_stream_set_notifier now returns boolean value.  Changed
751           all streams to support and check for the error condition.
752           Affected files are in lib/silcutil/.
753
754         * Fixed SKE library session aborting and deletion.  Affected
755           file are lib/silcske/silcske.c.
756
757 Tue Jan 16 18:22:08 EET 2007  Pekka Riikonen <priikone@silcnet.org>
758
759         * Implemented PKCS #1 with appendix with hash OID in the
760           signature.  Affected files are lib/silccrypt/silcpkcs1.[ch],
761           lib/silccrypt/silchash.[ch] and
762           lib/silcasn1/silcasn1[_encode|decode].[ch].
763
764 Sun Jan 14 23:12:41 EET 2007  Pekka Riikonen <priikone@silcnet.org>
765
766         * Added support for Version (V) SILC public key identifier.
767           Affected files are lib/silccrypt/silcpk.[ch].
768
769 Tue Jan  9 19:37:51 EET 2007  Pekka Riikonen <priikone@silcnet.org>
770
771         * Rewrote connection auth request in client library.  It is now
772           done automatically by the library and the resolved method given
773           as a hint to get_auth_method client operation.  Affected files
774           are lib/silcclient/.
775
776 Wed Jan  3 18:06:33 EET 2007  Pekka Riikonen <priikone@silcnet.org>
777
778         * Added silc_packet_stream_wrap into lib/silccore/silcpacket.[ch].
779           It can be used to wrap SilcPacketStream into SilcStream.
780
781         * Fixed %p formatting from silc_snprintf.  Affected file is
782           lib/silcutil/silcsnprintf.c.
783
784         * Ported SFTP library to new utility library.  Ported also
785           the SFTP testers.  Affected files in lib/silcsftp/.
786
787 Tue Jan  2 17:18:46 EET 2007  Pekka Riikonen <priikone@silcnet.org>
788
789         * Added lib/silcutil/silcsnprintf.[ch].  Added in addition
790           of silc_snprintf, silc_vsnprintf, silc_asprintf and
791           silc_vasprintf.
792
793 Sat Dec 30 23:23:17 EET 2006  Pekka Riikonen <priikone@silcnet.org>
794
795         * Added preliminary Symbian support.  Changes around the source
796           tree.  The symbian/ directory now includes Carbide.c++ project
797           files to compile the sources.
798
799         * Added silc_snprintf.  Affected files are
800           lib/silcutil/silcstrutil.[ch].
801
802 Thu Dec 21 18:01:51 EET 2006  Pekka Riikonen <priikone@silcnet.org>
803
804         * Changed SILC_FSM_[CONTINUE|YIELD|WAIT|FINISH] enums to
805           macros.  SILC_FSM_CONTINUE macro now immediately calls the
806           next state instead of first returning back to FSM.  Helps
807           in debugging crashes etc.
808
809           Removed FSM Semaphores.  Introduced FSM Event which is
810           asynchronous event.   Affected files are in lib/.
811
812         * Added epoll(7) support to SILC Scheduler.  It is used by default
813           if it is available.  Affected files are
814           lib/silcutil/silcschedule.[ch],
815           lib/silcutil/unix/silcunixschedule.c.
816
817 Tue Dec 19 20:39:35 EET 2006  Pekka Riikonen <priikone@silcnet.org>
818
819         * Added CTR mode to AES.  Simplified cipher implementation API
820           more.  Affected files are in lib/silccrypt/.
821
822 Sun Dec 17 16:46:55 EET 2006  Pekka Riikonen <priikone@silcnet.org>
823
824         * Removed `detach' client operation.  The detachment data is
825           now delivered in SILC_COMMAND_DETACH command reply to
826           application.  Affected file in lib/silcclient/.
827
828         * Rewrote resuming/detaching in client library.
829
830         * Added boolean encryption indicator for silc_cipher_set_key.
831           Affected files lib/silccrypt/silccipher.[ch].
832
833 Wed Dec 13 18:05:50 EET 2006  Pekka Riikonen <priikone@silcnet.org>
834
835         * Added silc_likely and silc_unlikely macros for GCC branch
836           prediction optimizations.  Affected file lib/silcutil/silctypes.h.
837
838         * Added assembler AES optimization.  Cleaned up the SILC Cipher
839           implementation API.  Affected files are in lib/silccrypt/.
840
841 Tue Dec 12 18:56:14 EET 2006  Pekka Riikonen <priikone@silcnet.org>
842
843         * Changed back the SILC_FSM_THREAD_WAIT operation to not
844           continue to next state if thread is finished already.  That
845           check is not done anymore.  Affected files are
846           lib/silcutil/silcfsm.[ch].
847
848 Sun Dec 10 13:54:52 EET 2006  Pekka Riikonen <priikone@silcnet.org>
849
850         * Removed silc_packet_[get|set]_ciphers and
851           silc_packet_[get|set]_hmacs.  Added silc_packet_set_keys that
852           handle REKEY_DONE packet sending in rekey.  Affected files
853           are lib/silccore/silcpacket.[ch].
854
855         * Added silc_fsm_is_started.  Affected files are
856           lib/silcutil/silcfsm.[ch].
857
858         * Added settings sign_channel_message, sign_private_message
859           and key_exchange_rekey_pfs to SILC Client.  Added UDP transport
860           support for key agreement in /KEY command. Affected files
861           in apps/irssi/src/silc/core/.
862
863         * During SILC Client initialization forward log messages to
864           stderr.   Affected files in apps/irssi/src/silc/core/.
865
866 Thu Dec  7 19:07:21 EET 2006  Pekka Riikonen <priikone@silcnet.org>
867
868         * Added silc_ske_get_key_material.  Affected files are
869           lib/silcske/silcske.[ch].
870
871         * Added silc_packet_stream_is_udp.  Affected files are
872           lib/silccore/silcpacket.[ch].
873
874         * Added SKE packet retransmission support with UDP transport.
875           Affected file is lib/silcske/silcske.c.
876
877 Sun Dec  3 22:00:12 EET 2006  Pekka Riikonen <priikone@silcnet.org>
878
879         * Added silc_socket_stream_is_udp.  Affected file is
880           lib/silcutil/silcsocketstream.[ch].
881
882         * Added UDP transport support to packet engine.  Affected file
883           is lib/silccore/silcpacket.c.
884
885         * Added silc_socket_stream_is_udp.  Affected file is
886           lib/silcutil/silcsocketstream.[ch].
887
888 Sat Nov 18 11:33:03 EET 2006  Pekka Riikonen <priikone@silcnet.org>
889
890         * Added silc_packet_send_va[_ext] to send variable argument
891           formatted buffers.  Affected files lib/silcore/silcpacket.[ch].
892
893         * Timeout freelist garbage collection added to scheduler.
894           Affected file lib/silcutil/silcschedule.c.
895
896 Thu Nov  9 18:12:15 EET 2006  Pekka Riikonen <priikone@silcnet.org>
897
898         * Added silc_show_public_key_file to
899           lib/silcapputil/silcapputil.[ch].
900
901         * Added SILC_STR_ADVANCE support for buffer unformatting.
902           Affected file lib/silcutil/silcbuffmt.c.
903
904 Tue Nov  7 18:04:36 EET 2006  Pekka Riikonen <priikone@silcnet.org
905
906         * Added silc_string_split to lib/silcutil/silcstrutil.[ch].
907
908         * Added silc_mutex_assert_locked to lib/silcutil/silcmutex.h.
909
910         * silc_fsm_continue[_sync] now cancels erlier timeout set with
911           silc_fsm_next_later.  Affected file lib/silcutil/silcfsm.c.
912
913 Sat Nov  4 21:50:37 EET 2006  Pekka Riikonen <priikone@silcnet.org
914
915         * Added SILC_STR_FUNC to buffer format API.  Affected files
916           are lib/silcutil/silcbuffmt.[ch].
917
918         * Added silc_buffer_[s]enlarge to lib/silcutil/silcbuffer.h.
919
920         * No more memory allocation for message payload parsing.
921           Pre-allocated buffer can be used with message payload encoding.
922           Affected files lib/silccore/silcmessage.[ch].
923
924 Fri Oct 27 21:01:26 EEST 2006  Pekka Riikonen <priikone@silcnet.org
925
926         * Added silc_buffer_sunformat and silc_buffer_sunformat_vp
927           to silcutil/silcbuffmt.[ch].
928
929 Sun Oct 22 13:03:07 EEST 2006  Pekka Riikonen <priikone@silcnet.org
930
931         * Added SILC_STR_BUFFER to format and unformat SilcBuffer.
932           Affected file lib/silcutil/silcbuffmt.[ch].
933
934         * Removed silc_schedule_signal_[un]register and
935           silc_schedule_signal_call.  Added silc_schedule_task_add_signal
936           to add signal task.  Only one callback per signal may be
937           added.  The signals are now automatically called back to
938           caller.  Affected files lib/silcutil/silcschedule.[ch] and
939           silcutil/[unix/win32]/silc[unix/win32]schedule.c.
940
941         * Added silc_time_msec and silc_time_usec to silcutil/silctime.[ch].
942
943         * Added SilcSKEParams for SKE parameters and simplied even more
944           the SKE interface.  Affected files are lib/silcske/silcske.[ch].
945           Added support for IV included and session port handling with
946           UDP/IP connections.
947
948         * Added Secure ID (SID) support with IV Included flag (for UDP/IP)
949           in lib/silccore/silcpacket.[ch].  Added silc_packet_set_sid
950           which is called after every rekey when IV Included flag is used.
951           See SILC specifications for details.
952
953 Thu Oct 19 10:03:03 EEST 2006  Pekka Riikonen <priikone@silcnet.org
954
955         * Added lib/silcapputil and moved SILC application specific
956           utility routines from the generic util library lib/silcutil
957           to the new library.  Removed lib/silcidcache and moved that
958           to lib/silcapputil as well.
959
960 Tue Sep 19 00:14:11 EEST 2006  Pekka Riikonen <priikone@silcnet.org>
961
962         * Added SILC_STR_ADVANCE.  Affected file is
963           lib/silcutil/silcbuffmt.[ch].
964
965         * The silc_buffer_strformat preserves buffer locations now.
966
967         * Added lib/silcutil/silcatomic.h for atomic operations.
968
969 Sat Sep 16 11:23:06 EEST 2006  Pekka Riikonen <priikone@silcnet.org>
970
971         * Added lib/silchttp, SILC HTTP server, a very simple HTTP
972           server.
973
974         * Fixed MIME deocing when data portion is not present.
975           Affected file lib/silcutil/silcmime.c.
976
977 Wed Jul 19 12:06:38 EEST 2006  Pekka Riikonen <priikone@silcnet.org>
978
979         * Moved lib/silccore/silcidcache.[ch] to lib/silcutil/.
980
981         * Added IV Included support to packet routines, to allow
982           packet sending and receiving on UDP/IP.  Affected files are
983           lib/silccore/silcpacket.[ch].
984
985         * Added SILC_FSM_YIELD.  Affected files lib/silcutil/silcfsm.[ch].
986
987 Tue Jul 18 20:10:28 EEST 2006  Pekka Riikonen <priikone@silcnet.org>
988
989         * Added UDP support to network and socket stream library.
990
991 Sat Jun 24 22:33:18 EEST 2006  Pekka Riikonen <priikone@silcnet.org>
992
993         * Added conditional variables.  New files are
994           lib/silcutil/silcondvar.h and platform specific implementations.
995
996 Thu Jan  5 20:02:31 CET 2006 Patrik Weiskircher <pat@icore.at>
997
998         * make sure session->hostname and session->port are valid before the
999           application callback is done, since things will go wrong if the
1000           application immediately calls silc_client_file_receive. Affected
1001           file lib/silcclient/client_ftp.c.
1002           Patch received from Stefan Siegel <stesie@brokenpipe.de>, thanks!
1003
1004 Fri Dec 30 22:54:21 EET 2005  Pekka Riikonen <priikone@silcnet.org>
1005
1006         * New SILC PKCS API enabling support for other public keys
1007           and certificates, lib/silccrypt/silcpkcs.[ch], silcpk.[ch].
1008
1009         * Separated SILC Public Key Payload routines from the PKCS API
1010           to lib/silccore/silcpubkey.[ch].
1011
1012 Wed Dec 28 13:55:22 EET 2005  Pekka Riikonen <priikone@silcnet.org>
1013
1014         * Added SILC Key Repository library, lib/silcskr.
1015
1016         * Added SILC Server library, lib/silcserver.
1017
1018 Mon Dec 19 18:04:24 EET 2005  Pekka Riikonen <priikone@silcnet.org>
1019
1020         * MIME objects in attributes now use SilcMime.  Affected files
1021           are lib/silccore/silcattrs.[ch].
1022
1023 Sat Dec 17 20:13:31 EET 2005  Pekka Riikonen <priikone@silcnet.org>
1024
1025         * Synchronize semaphore posting for real threads in FSM.
1026           Affected files are lib/silcutil/silcfsm.c, silcfsm_i.h.
1027
1028 Mon Nov 28 17:06:54 EET 2005  Pekka Riikonen <priikone@silcnet.org>
1029
1030         * Added silc_file_set_nonblock.  Affected file is
1031           lib/silcutil/silcfileutil.h.
1032
1033         * Added silc_fd_stream_file to lib/silcutil/silcfdstream.[ch].
1034
1035 Sat Nov 26 16:13:40 EET 2005  Pekka Riikonen <priikone@silcnet.org>
1036
1037         * FSM based implementation of SILC SKE.  Simpler interface also.
1038           Affected files are in lib/silcske/.
1039
1040         * Added SilcBool type.  Affected file lib/silcutil/silctypes.h.
1041
1042 Sat Nov 19 17:34:51 EET 2005  Pekka Riikonen <priikone@silcnet.org>
1043
1044         * Added SilcMime API to lib/silcutil/silcmime.[ch].  The old
1045           silc_mime_parse is available but deprecated.
1046
1047         * Check that packet is valid when processing key exchange,
1048           authentication and rekey protocols.  Fixes a crashbug.
1049           Affected files are apps/silcd/protocol.c and
1050           lib/silcclient/protocol.c.
1051
1052         * Added SILC_HASH_MAXLEN to lib/silccrypt/silchash.h, and changed
1053           all hash buffers to use that instead of fixed values.
1054
1055 Wed Nov 16 15:47:12 EET 2005  Pekka Riikonen <priikone@silcnet.org>
1056
1057         * Added SHA-256 to crypto library.  The SHA-256 takes now
1058           precedence over SHA-1.
1059
1060 Thu May 26 20:31:06 EEST 2005  Pekka Riikonen <priikone@silcnet.org>
1061
1062         * Check for valid return value from regcomp.  Affected file
1063           lib/silcutil/unix/silcunixutil.c.
1064
1065 Tue May 10 23:11:17 EEST 2005  Pekka Riikonen <priikone@silcnet.org>
1066
1067         * Fixed silc_hash_uint to work with integers.  Affected
1068           file lib/silcutil/silcutil.c.
1069
1070 Tue May 10 15:11:53 EEST 2005  Pekka Riikonen <priikone@silcnet.org>
1071
1072         * Rewritten SILC Log API.  Affected files lib/silcutil/silclog.[ch].
1073
1074 Mon May  9 12:00:08 EEST 2005  Pekka Riikonen <priikone@silcnet.org>
1075
1076         * Fixed channel public key list saving on JOIN command reply
1077           on backup router.  Affected file apps/silcd/command_reply.c.
1078
1079 Mon May  2 10:42:49 EEST 2005  Pekka Riikonen <priikone@silcnet.org>
1080
1081         * Added default limit how many channels client can join,
1082           default is 50.  Added 'channel_join_limit' configuration
1083           option to server too.  Affected files are apps/silcd/command.c
1084           and serverconfig.[ch].
1085
1086 Sun May  1 17:42:55 EEST 2005  Pekka Riikonen <priikone@silcnet.org>
1087
1088         * --without-silc -> --with-silc, --without-irssi -> --with-irssi.
1089           On Toolkit the server and client are not compiled by default.
1090           Affected file configure.ad.
1091
1092 Thu Apr 28 15:57:37 EEST 2005  Pekka Riikonen <priikone@silcnet.org>
1093
1094         * Added lib/contrib/getopt.[ch] for platforms that don't
1095           have it (it is not GPL implementation).
1096
1097         * Fixed compilation when pkg-config is used.
1098
1099 Wed Apr 27 11:49:41 EEST 2005  Pekka Riikonen <priikone@silcnet.org>
1100
1101         * A comma in invite/ban string is invalid, check for it.
1102           Affected file apps/silcd/server_util.c.
1103
1104         * Added SERVICE command to the server.  It parses the command
1105           request but SILC Server does not support services for the
1106           time being.  Affected file apps/silcd/command.[ch].
1107
1108         * Added SERVICE command and command reply to client library.
1109           It is however incomplete.  Updated Toolkit documentation.
1110           Affected files are lib/silcclient/command[_reply].[ch].
1111
1112         * Fixed IDENTIFY/WHOWAS command reply to send the username
1113           correctly (uninitialized buffer).  Affected file is
1114           apps/silcd/server_query.c.
1115
1116 Mon Apr 25 14:25:24 EEST 2005  Pekka Riikonen <priikone@silcnet.org>
1117
1118         * Moved silcer/, silc/, silcd/ and irssi/ to apps/.  This
1119           finalizes the major restructuring of the CVS tree.
1120
1121 Mon Apr 25 00:39:30 EEST 2005  Pekka Riikonen <priikone@silcnet.org>
1122
1123         * Send empty MOTD reply if MOTD file cannot be read.
1124           Affected file silcd/command.c.
1125
1126 Sun Apr 24 12:01:37 EEST 2005  Pekka Riikonen <priikone@silcnet.org>
1127
1128         * Optimized primer number generator to use simpler conversion
1129           routines.  Also assure that the prime number will have the
1130           highest bit set after modifying it.  Affected file is
1131           lib/silcmath/silcprimegen.c.
1132
1133         * Added LibTomMath to SILC Math library (SILC_DIST_TMA).
1134
1135         * Added FastTomMath to SILC Math Library (SILC_DIST_TFM),
1136           for now only for testing purposes, it will not be delivered
1137           in any distribution for now.
1138
1139         * Removed NSS MPI from the source tree.  Due to upcoming
1140           license change for the SILC Toolkit, we cannot deliver the
1141           NSS MPI anymore.  I decided to replace it in all distributions
1142           with public domain library.
1143
1144         * Removed GNU regex from lib/contrib and introduced free
1145           GNU compatible regex, lib/contrib/regexpr.[ch].  Added
1146           GNU regex compatible API to it (only partial).
1147
1148         * Removed getopt routines from lib/contrib.
1149
1150 Fri Apr 22 12:21:44 EEST 2005  Pekka Riikonen <priikone@silcnet.org>
1151
1152         * Use silc_server_send_command_reply to send replies instead
1153           of encoding packet itself.  Affected file silcd/command.c.
1154
1155         * Added command sending and receiving statistics to server.
1156           Affected files in silcd/.
1157
1158         * GCC 4 warning fixes.  -Wno-pointer-sign option is now used
1159           with GCC, for it not to warn about pointer signedness.
1160
1161 Tue Apr 19 11:57:35 EEST 2005  Pekka Riikonen <priikone@silcnet.org>
1162
1163         * Added context to the SilcIDCache destructor.  Affected
1164           files are lib/silccore/silcidcache.[ch],
1165           lib/silcclient/client.c and silcd/server.c.
1166
1167 Mon Apr 18 09:53:28 EEST 2005  Pekka Riikonen <priikone@silcnet.org>
1168
1169         * Added pkg-config check to configure.
1170
1171         * The PublicKeyDir must not be used with Admin block in server
1172           config.  Affected file silcd/serverconfig.c.
1173
1174 Sat Apr 16 20:23:48 EEST 2005  Pekka Riikonen <priikone@silcnet.org>
1175
1176         * Added Autodist.
1177
1178 Thu Apr 14 20:25:08 EEST 2005  Pekka Riikonen <priikone@silcnet.org>
1179
1180         * Handle empty LIST command reply correcttly in server.  Affected
1181           file silcd/command_reply.c.
1182
1183         * Handle empty LIST command reply correctly in client library.
1184           The application will now receive one LIST command reply with
1185           all arguments set to NULL if there are no channels.  Updated
1186           Client Library documentation accordingly.  Affected file
1187           lib/silcclient/command_reply.c.
1188
1189 Tue Apr 12 00:02:09 EEST 2005  Pekka Riikonen <priikone@silcnet.org>
1190
1191         * Added channel name string stringprep profile to the protocol
1192           and implementation to allow a little free'er channel name
1193           strings.  Affected files are lib/silcutil/silcstringprep.[ch].
1194
1195         * Added silc_channel_name_[check|verify] to check and verify
1196           channel name strings.  Affected files are
1197           lib/silcutil/silcstrutil.[ch].
1198
1199         * Added support for the new channel name preparation in client
1200           library and server.  Affected files in lib/silcclient and
1201           silcd/.
1202
1203 Mon Apr 11 13:40:27 EEST 2005  Pekka Riikonen <priikone@silcnet.org>
1204
1205         * Added the Autodist into the source tree.  It replaces the
1206           old ./prepare.  It can be used to create distributions as
1207           previously.  See README.CVS and README.DIST.  See
1208           distributions in distdir/.
1209
1210 Sun Apr 10 11:30:56 EEST 2005  Pekka Riikonen <priikone@silcnet.org>
1211
1212         * Make sure query sends at least an error back if nothing
1213           more is sent.  Affected file silcd/server_query.c.
1214
1215 Thu Apr  7 14:50:01 EEST 2005  Pekka Riikonen <priikone@silcnet.org>
1216
1217         * During query, check if the original command caller goes
1218           away.  If it does, stop the query.  Affected file
1219           silcd/server_query.c.
1220
1221         * Check for valid channel creation in JOIN command reply.
1222           Affected file lib/silcclient/command_reply.c.
1223
1224         * Handle the resolver counter in silc_client_get_users_by_channel
1225           callback correctly.  Fixed auto-join bug in Gaim.  Affected
1226           file lib/silcclient/idlist.c.
1227
1228 Wed Apr  6 16:56:53 EEST 2005  Pekka Riikonen <priikone@silcnet.org>
1229
1230         * Added some better error messages.  Affected file
1231           silcd/command_reply.c and packet_receive.c.
1232
1233         * Handle error in WATCH command propely on backup router.
1234           Affected file silcd/command.c.
1235
1236         * Fixed freeing of unfreeable variable in WHOIS command reply.
1237           Affected file silcd/command_reply.c.
1238
1239 Wed Apr  6 09:10:31 CEST 2005  Pekka Riikonen <priikone@silcnet.org>
1240
1241         * Added pkg-config .pc file creation for silc core library
1242           and silcclient library.  A patch by c0ffee.
1243
1244         * Removed the need for GNU Libidn.  Added the simple stringprep
1245           from libidn into lib/contrib/.  It is now used also on Windows
1246           build.
1247
1248 Mon Apr  4 15:15:46 EEST 2005  Pekka Riikonen <priikone@silcnet.org>
1249
1250         * Simplified the invite and ban string handling in the
1251           server.  Check for valid invite and ban arguments also.
1252           Affected file silcd/server_util.c.
1253
1254 Sun Apr  3 14:58:53 EEST 2005  Pekka Riikonen <priikone@silcnet.org>
1255
1256         * Added WATCH list announcing in backup router protocol.
1257           Affected files are silcd/command.c, server.c, server_backup.c.
1258
1259         * Do not change users mode to founder on normal server/backup
1260           if the founder mode is set, and user is first one to join.
1261           Affected file silcd/pcaket_receive.c.
1262
1263         * Do not send CUMODE_CHANGE notify back to sender.  Affected
1264           file silcd/packet_receive.c.
1265
1266         * Added getrusage() to take noise in SILC RNG.  A patch by
1267           Mika Boström.  Affected files are configure.in.pre,
1268           includes/silcincludes.h.in, lib/silccrypt/silcrng.c.
1269
1270 Sat Apr  2 18:09:30 EEST 2005  Pekka Riikonen <priikone@silcnet.org>
1271
1272         * Splitted the SILC libraries configuration into a configure
1273           fragment into lib/configure.ad.  It is now possible, once
1274           this feature is added, to specify whether to compile or not
1275           compile included SILC libraries.  Affected files are
1276           configure.in.pre, lib/silcmath/mpi/configure.ad,
1277           lib/configure.ad, Makefile.defines.pre and
1278           Makefile.defines_int.pre.
1279
1280         * Added --with-silc-includes and --with-silc-libs to configure.
1281           If specified the included libs are not compiled, but the
1282           specified libs are used.  Pkg-config is not yet supported.
1283           Affected file configure.in.pre.
1284
1285         * Fixed WATCH command handling on backup router.  Router does not
1286           send the watch command any more to backup if it originates from
1287           backup.  Affected file silcd/command.c.
1288
1289 Fri Apr  1 18:52:47 EEST 2005  Pekka Riikonen <priikone@silcnet.org>
1290
1291         * Changed announcing to not announce unregistered clients.
1292           Affected file silcd/server.c.
1293
1294         * Fixed username handling in command reply.  Affected file
1295           silcd/command_reply.c.
1296
1297         * Log files are now 0600.  Affected file lib/silcutil/silclog.c.
1298
1299 Thu Mar 31 22:34:22 CEST 2005  Patrik Weiskircher <pat@icore.at>
1300
1301         * Added new define SILC_MACOSX, if __APPLE__ and __MACH__ is defined.
1302           Affected file: includes/silcincludes.h.in
1303
1304         * bool is defined as _Bool on Mac OS X now.
1305           Affected file: lib/silcutil/silctypes.h
1306
1307 Thu Mar 31 08:52:06 EEST 2005  Pekka Riikonen <priikone@silcnet.org>
1308
1309         * Added support for UTF-8 nicknames, channel names and
1310           server names in client library.  Affected files in
1311           lib/silcclient/.
1312
1313         * Added __SILC_HAVE_PTHREAD, __SILC_HAVE_SIM, __SILC_HAVE_LIBIDN,
1314           and __SILC_ENABLE_DEBUG to include/silcclient.h for third-party
1315           software to check how Toolkit has been compiled.
1316
1317 Wed Mar 30 22:16:35 EEST 2005  Pekka Riikonen <priikone@silcnet.org>
1318
1319         * Added silc_utf8_str[n]casecmp into lib/silcutil/silcutf8.[ch].
1320
1321         * Use silc_utf8_str[n]casecmp instead of strcmp routines
1322           in library and in SILC Client when dealing with nicknames
1323           and other identifier strings.  Affected file in client lib
1324           and irssi.
1325
1326         * Convert nickname to UTF-8 in /msg and /smsg.  Affected file
1327           irssi/src/silc/core/silc-servers.c.
1328
1329 Wed Mar 30 10:50:02 EEST 2005  Pekka Riikonen <priikone@silcnet.org>
1330
1331         * Fixed idcache to work with the new identifier strings.
1332           Affected file lib/silccore/silcidcache.c.
1333
1334         * Added UTF-8 hash and compare function for SilcHashTable.
1335           Affected file lib/silcutil/silcutil.[ch].
1336
1337         * Added casefolding stringprep, SILC_CASEFOLD_PREP.
1338           Affected file lib/silcutil/silcstringprep.[ch].
1339
1340         * Changed the identifier string handling to include the original
1341           format in client, server, channel entries and normalized
1342           format in cache.  Affected files in silcd/.
1343
1344 Tue Mar 29 16:51:35 EEST 2005  Pekka Riikonen <priikone@silcnet.org>
1345
1346         * Added support for the new identifier strings and their
1347           validity checking.  Nicknames, channel names and usernames
1348           can now include practically any kind of letters and various
1349           other characters.  Affected files in silcd/ and in libraries.
1350
1351           NOTE: comparing these strings should now be done with memcmp()
1352           to check binary compatibility.  All these strings are normalized
1353           and casing is irrelevant.
1354
1355         * Added silc_identifier_check to lib/silcutil/silcstrutil.[ch]
1356           as easy function for applications to check whether identifier
1357           strings are valid.
1358
1359 Tue Mar 29 00:45:11 EEST 2005  Pekka Riikonen <priikone@silcnet.org>
1360
1361         * Fixed SILC_STRING_LDAP_DN encoding and decoding.  Affected
1362           file lib/silcutil/silcutf8.c.
1363
1364         * Added SILC_STRING_UTF8_ESCAPE to lib/silcutil/silcstrutil.h.
1365
1366 Mon Mar 28 22:46:23 CEST 2005  Jochen Eisinger <jochen@penguin-breeder.org>
1367
1368         * Make public key in getkey reply mandatory.  Affected file
1369           lib/silcclient/command_reply.c
1370
1371 Sun Mar 27 19:03:31 CEST 2005  Patrik Weiskircher <pat@icore.at>
1372
1373         * Added Parameter dont_register_crypto_library to
1374           SilcClientParam. If set to TRUE, silcclient library will
1375           not initalize the Crypto Libraries and application
1376           will need to do it. Affected file lib/silcclient/silcclient.h,
1377           lib/silcclient/client.c.
1378
1379 Sun Mar 27 19:02:48 EEST 2005  Pekka Riikonen <priikone@silcnet.org>
1380
1381         * Imported new silc_utf8_[encode|decode] routines from
1382           my internal SILC 1.1 source tree.  New encodings added:
1383           SILC_STRING_LOCALE (SILC_STRING_LANGUAGE is deprecated),
1384           SILC_STRING_UTF8, SILC_STRING_PRINTABLE, SILC_STRING_VISIBLE,
1385           SILC_STRING_TELETEX, SILC_STRING_NUMERICAL and
1386           SILC_STRING_LDAP_DN.
1387
1388         * Splitted UTF-8 routines into lib/silcutil/silcutf8.[ch].
1389
1390         * Implemented stringprep (RFC 3454) API.  Internally we use
1391           GNU Libidn's stringprep, for now, so it is required now to
1392           compile SILC sources.  Added lib/silcutil/silcstringprep.[ch].
1393
1394         * Added checking for GNU Libidn and --with-libidn to configure.
1395
1396 Wed Mar 23 11:20:33 CET 2005  Jochen Eisinger <jochen@penguin-breeder.org>
1397
1398         * If the passphrases entered do not match while generating a new key,
1399           completly start over instead of going into an infinite loop asking
1400           the user to re-enter the passphrase correctly.  Affected file
1401           lib/silcutil/silcapputil.c
1402
1403 Sun Jan  9 14:28:51 CET 2005  Pekka Riikonen <priikone@silcnet.org>
1404
1405         * Make sure server is removed from backup list when it is
1406           deleted.  Affected files silcd/command.c, server.c,
1407           server_util.c.
1408
1409         * Close socket when connecting to router fails.  Affected
1410           file silcd/server.c.
1411
1412 Tue Jan  4 13:06:26 CET 2005  Jochen Eisinger <jochen@penguin-breeder.org>
1413
1414         * Adopt configuration toolchain to current auto-tools.
1415           Affected files prepare, irssi/configure.in
1416         * Revert most of the UTF-8 fixes to SILC Client 1.0.1.  Will
1417           redo that.  Affected files irssi/src/silc/core/client_ops.c,
1418           irssi/src/fe-common/silc/fe-silc-channels.c
1419         * Take over command line options into silcclient data structure.
1420           Affected file irssi/src/silc/core/silc-core.c
1421
1422 Wed Dec  8 16:15:11 CET 2004  Pekka Riikonen <priikone@silcnet.org>
1423
1424         * Do not try to initiate backup resuming protocol forever.
1425           Affected file silcd/server_backup.c.
1426
1427 Wed Nov 24 18:24:05 CET 2004  Pekka Riikonen <priikone@silcnet.org>
1428
1429         * ID change in resuming has to be done before changing
1430           detached client's modes, since the ID change may fail and
1431           leave ghosts on the network.  Affected file is
1432           silcd/packet_receive.c.
1433
1434 Tue Nov 23 16:54:35 CET 2004  Pekka Riikonen <priikone@silcnet.org>
1435
1436         * Fixed Win32 scheduler to not stuck anymore.  A patch from
1437           Juha Räsänen.  Affected file is
1438           lib/silcutil/win32/silcwin32schedule.c.
1439
1440         * Fixed QoS parsing for connection blocks in server.  Affected
1441           file is silcd/serverconfig.c.
1442
1443         * Fixed server statistics increasing in server.  Affected file
1444           is silcd/server.c.
1445
1446         * The CLOSE command now marks backup router as self disconnected
1447           to avoid resuming problems.  Affected file silcd/command.c.
1448
1449 Wed Sep 22 19:46:32 CEST 2004  Patrik Weiskircher <pat@icore.at>
1450
1451         * When using silc_net_create_connection[_async], and your system can
1452           create IPv6 sockets, it will try to connect to the IPv6 host.
1453           Now it tries to connect to an IPv4 host if IPv6 fails. Affected
1454           file lib/silcutil/unix/silcunixnet.c
1455
1456 Fri Jun 18 19:26:58 CEST 2004  Pekka Riikonen <priikone@silcnet.org>
1457
1458         * Check for valid route when receiving packet from router and
1459           when routing it to local server in the cell.  A patch from
1460           Matt Miller.  Affected files silcd/router.c and server.c.
1461
1462 Sat May  1 13:55:54 CEST 2004  Patrik Weiskircher <pat@icore.at>
1463
1464         * Couldn't detach and reattach twice, because of the previous
1465           commit. Affected file silcd/packet_receive.c
1466
1467 Fri Apr 30 19:40:28 CEST 2004  Patrik Weiskircher <pat@icore.at>
1468
1469         * Added check to ignore Port value if Initiator is FALSE.
1470           Remote router coudln't connect if Port was set. Affected file
1471           silcd/serverconfig.c
1472
1473         * If some client tries to resume more than once at the same time,
1474           server crashed. Router didn't crash, but showed odd behaviour
1475           (didn't allow clients to join anymore, ..). Affected files
1476           silcd/packet_receive.c silcd/idlist.h
1477
1478 Mon Mar 15 21:10:08 EET 2004  Pekka Riikonen <priikone@silcnet.org>
1479
1480         * Destroy the file transfer session in silc_client_file_close
1481           with timeout.  Affected file lib/silcclient/client_ftp.c.
1482
1483         * Call SFTP server monitor in READ and WRITE after the actual
1484           operations.  Affected file lib/silcsftp/sftp_server.c.
1485
1486 Wed Mar 10 21:30:02 EET 2004  Pekka Riikonen <priikone@silcnet.org>
1487
1488         * Create one configure script from configure fragments
1489           (configure.ad).  This is a first step towards new distribution
1490           system.  Affected files prepare, configure.in.pre,
1491           lib/silcmath/mpi/configure.ad.
1492
1493 Wed Mar 10 18:35:24 CET 2004  Jochen Eisinger <jochen@penguin-breeder.org>
1494
1495         * Removed expiring of client key pair.  Affected file is
1496           irssi/src/silc/core/clientutil.c
1497
1498 Tue Mar  9 17:11:58 EET 2004  Pekka Riikonen <priikone@silcnet.org>
1499
1500         * Check the number of connections from real number of
1501           connections instead of socket number, when deciding if
1502           server is full.  Affected files are silcd/server.c,
1503           server_internal.h and silcd.c.
1504
1505         * Clarified the connections_max meaning in General section
1506           in doc/example_silcd.conf.in.
1507
1508         * The reconnect_keep_trying default value set to TRUE
1509           if it is not defined in the config file.  Affected file
1510           silcd/serverconfig.c.
1511
1512 Wed Mar  3 15:13:49 CET 2004  Pekka Riikonen <priikone@silcnet.org>
1513
1514         * Fixed crashbug in connection closing, after a protocol
1515           completion callback, which might have closed it already.
1516           Affected file silcd/server.c.
1517
1518         * Fixed rekey with PFS in backup router.  It did not allow
1519           rekeys with PFS, and when the rekey protocol timedout
1520           it crashed the backup router without the above fix.  Affected
1521           file silcd/packet_send.c and server.c.
1522
1523 Sat Feb 28 16:25:09 EET 2004  Pekka Riikonen <priikone@silcnet.org>
1524
1525         * The silc_client_add_channel_private_key now returns the
1526           private key context if pointer is given as argument.
1527           Affected files are lib/silcclient/silcclient.h and
1528           client_channel.c.
1529
1530         * Added support for using channel private keys in SILC
1531           Client Library even if the private key mode is not set
1532           on the channel.  Affected file lib/silcclient/client_channel.c.
1533
1534         * The channel private key used to decrypt message is now
1535           delivered to the application in the 'channel_messageÃ' client
1536           operation.  Affected files are lib/silcclient/silcclient.h
1537           and client_channel.c.
1538
1539         * Fixed wrong arg type for user limit in CMODE command reply.
1540           Affected file silcd/command.c.
1541
1542         * The user limit is now taken and saved to SilcClientEntry in
1543           JOIN and CMODE command replies and in CMODE_CHANGE notify.
1544           Affected files lib/silcclient/silcclient.h, command_reply.c
1545           and client_notify.c.
1546
1547         * Added support to the new private message key indicator
1548           packet.  Added a new function to the client library:
1549           silc_client_send_private_message_key_request.  The sender
1550           indicates to be initiator, and receiver is responder.
1551           Added the indicator to the SilcClientEntry as 'prv_resp'
1552           boolean.  Affected files are lib/silcclient/silcclient.h
1553           client.[ch], and client_prvmsg.c.
1554
1555 Fri Feb 27 11:25:26 CET 2004  Pekka Riikonen <priikone@silcnet.org>
1556
1557         * Fixed the JOIN command calling when called with both
1558          -auth and -founder.  Affected file is lib/silcclien/command.c.
1559
1560 Wed Feb 25 23:12:11 EET 2004  Pekka Riikonen <priikone@silcnet.org>
1561
1562         * Check watcher list for resumed clients as well.  Affected
1563           file is silcd/packet_receive.c.
1564
1565 Tue Feb 24 16:49:10 EET 2004  Pekka Riikonen <priikone@silcnet.org>
1566
1567         * Implemented the user limit to the CMODE_CHANGE notify,
1568           CMODE command reply and JOIN command reply in server.
1569           Affected files are silcd/server.c, command.c, command_reply.c,
1570           packet_send.c and packet_receive.c.
1571
1572 Mon Feb 23 23:31:15 EET 2004  Pekka Riikonen <priikone@silcnet.org>
1573
1574         * Defined SILC_STRFMT_END that must be used now with
1575           silc_buffer_strformat, instead of SILC_STR_END.  Fixes
1576           crashes on AMD64.  Affected files are lib/silcutil/silcbuffmt.h,
1577           lib/silcclient/silcvcard.c, silcd/server_util.c.
1578
1579         * Fixed the adding of public key to the WATCH list in server.
1580           Fixed the WATCH notify sending to client.  Affected files
1581           are silcd/packet_send.[ch], command.c, server_util.c.
1582
1583         * Implemented the watching by public key in the SILC Client
1584           Library and SILC Client.  Affected files are
1585           lib/silcclient/command.c and client_notify.c.
1586
1587 Mon Feb 23 09:30:30 CET 2004  Pekka Riikonen <priikone@silcnet.org>
1588
1589         * Added support for public key watching in server.  Affected
1590           files are silcd/server.c, server_internal.h, command.c,
1591           server_util.c.
1592
1593 Sun Feb 22 19:03:59 EET 2004  Pekka Riikonen <priikone@silcnet.org>
1594
1595         * Added public key to the SIlcClientEntry.  Affected files
1596           are lib/silcclient/silcclient.h, command_reply.c, idlist.c
1597
1598         * Fixed the get_clients_whois reply processing to return
1599           exactly same entries server returned.  Makes it possible
1600           to search using attributes.  Affected file is
1601           lib/silcclient/idlist.c.
1602
1603 Sat Feb 21 19:21:57 EET 2004  Pekka Riikonen <priikone@silcnet.org>
1604
1605         * Save founder key to SilcChannelEntry.  Affected files are
1606           lib/silcclient/silcclient.h, command_reply.c, idlist.c.
1607
1608 Fri Feb 20 20:37:38 EET 2004  Pekka Riikonen <priikone@silcnet.org>
1609
1610         * Call the monitor callback with _CLOSED status from the
1611           silc_client_file_close.  Affected files are
1612           lib/silcclient/client_fpt.c, silcclient.h
1613
1614         * Added silc_client_get_clients_whois which resolves using
1615           WHOIS, and supports requested attributes as well.
1616           Affected files are lib/silcclient/silcclient.h, idlist.c.
1617
1618 Fri Feb 19 21:09:22 EET 2004  Pekka Riikonen <priikone@silcnet.org>
1619
1620         * Added support for asking the destination filename where
1621           the downloaded file is saved in the file transfer.  Affected
1622           files are lib/silccilent/silcclient.h, client_ftp.c.
1623
1624 Wed Feb 18 02:46:17 EET 2004  Pekka Riikonen <priikone@silcnet.org>
1625
1626         * Fixed error handling in resuming data processing.  Affected
1627           files are lib/silcclient/client_resume.c and client.c.
1628
1629 Tue Feb 17 19:34:30 EET 2004  Pekka Riikonen <priikone@silcnet.org>
1630
1631         * Fixed silc_client_send_private_message to return TRUE correctly.
1632           Affected file lib/silcclient/client_prvmsg.c.
1633
1634         * Added topic to the SilcChannelEntry.  Affected files are
1635           lib/silcclient/silcclient.h, command_reply.c, client_notify.c.
1636
1637 Fri Feb 13 14:19:14 CET 2004  Jochen Eisinger <jochen@penguin-breeder.org>
1638
1639         * Use conn->cmd_ident for all silc_client_command_call()s.  Affected
1640           file lib/silcclient/command.c
1641
1642 Fri Feb 13 13:53:45 CET 2004  Jochen Eisinger <jochen@penguin-breeder.org>
1643
1644         * Convert all commands to UTF-8 before passing them to the
1645           client library.  Still need to convert replies from UTF-8 to
1646           the locale encoding.  Affected file
1647           irssi/src/silc/core/silc-cmdqueue.c
1648
1649 Fri Feb 13 13:13:07 CET 2004  Jochen Eisinger <jochen@penguin-breeder.org>
1650
1651         * redirect all silc_client_command_calls through a queueing framework.
1652           This fixes /CYCLE and the annoying "nick change after auto-joining
1653           a channel".  Furthermore it defines one central point where
1654           command parameters can be UTF-8-ified.  Affected files
1655           irssi/src/silc/core/Makefile, client_ops.c, silc-channels.c,
1656           silc-servers.[ch], silc-core.c, silc-cmdqueue.[ch], silc-lag.c
1657
1658 Fri Feb 13 12:04:41 CET 2004  Jochen Eisinger <jochen@penguin-breeder.org>
1659
1660         * use asynchronous connect() to establish router connections.
1661           Fixes problem when the primary router goes down.  Affected files
1662           silcd/server.c, silcd/server_backup.c
1663
1664 Thu Feb 12 20:09:59 EET 2004  Pekka Riikonen <priikone@silcnet.org>
1665
1666         * Added SILC_[32|64]_TO_PTR and SILC_PTR_TO_[32|64] macros.
1667           Fixed various compilation warnings when type casting ints
1668           to pointers or vice versa, of different size.  Updates around
1669           the source free.
1670
1671 Tue Feb  3 23:25:17 EET 2004  Pekka Riikonen <priikone@silcnet.org>
1672
1673         * Surrogates not allowed in UTF-8 strings, updated decoder.
1674           Affected file lib/silcutil/silcstrutil.c.  Added UTF-8
1675           testers in lib/silcutil/tests/ directory.
1676
1677 Wed Jan 14 18:42:44 EET 2004  Pekka Riikonen <priikone@silcnet.org>
1678
1679         * Added SILC_CLIENT_CONN_ERROR_KE, ERROR_AUTH, ERROR_RESUME and
1680           ERROR_TIMEOUT SilcClientConnectionStatus errors.  Affected
1681           files are lib/silcclient/silcclient.h, client.c.
1682
1683 Mon Jan 12 13:01:10 CET 2004  Jochen Eisinger <jochen@penguin-breeder.org>
1684
1685         * When resuming a session fails, notify the user that the session
1686           file needs to be removed eventually.  Affected files
1687           irssi/src/fe-common/silc/module-formats.[ch],
1688           irssi/src/silc/core/client_ops.c.
1689
1690 Tue Jan 04 12:16:04 CET 2004  Jochen Eisinger <jochen@penguin-breeder.org>
1691
1692         * Added DIST_SUBDIRS symbols to include all subdirs in distributions.
1693           Affected files lib/silcutil/Makefile.am, lib/silcmath/Makefile.am
1694
1695         * Typofix in Irssi::Silc module.  Affected file
1696           irssi/src/perl/silc/Silc.xs.
1697
1698 Tue Jan 04 02:43:44 CET 2004  Jochen Eisinger <jochen@penguin-breeder.org>
1699
1700         * Changed the way NOTICE flagged messages are treated. Added support
1701           for notices in queries and signing notices.  Affected files
1702           irssi/default.theme; irssi/docs/help/in/notice.in;
1703           irssi/src/fe-common/silc/module-formats.[ch], fe-silc-messages.c;
1704           irssi/src/silc/core/client_ops.c, silc-channels.c, silc-servers.c
1705
1706         * Fixed typo in /ACTION help.  Affected file
1707           irssi/docs/help/in/action.in
1708
1709 Mon Jan 03 23:26:38 CET 2004  Jochen Eisinger <jochen@penguin-breeder.org>
1710
1711         * Fixed typo in perl module.  Affected file
1712           irssi/src/perl/silc/Server.xs
1713
1714         * Changed the way ACTION flagged messages are treated. Added support
1715           for actions in queries and signing actions.  Affected files
1716           irssi/default.theme; irssi/docs/help/in/action.in;
1717           irssi/src/fe-common/silc/module-formats.[ch], fe-silc-messages.c,
1718           fe-silc-queries.c; irssi/src/silc/core/client_ops.c, silc-channels.c,
1719           silc-servers.[ch]
1720
1721 Mon Jan 03 16:04:29 CET 2004  Jochen Eisinger <jochen@penguin-breeder.org>
1722
1723         * Incorrectly reported error when client had to be resolved from
1724           server in /SMSG.  Affected file irssi/src/silc/core/silc-servers.c
1725
1726 Sat Jan  3 16:37:15 EET 2004  Pekka Riikonen <priikone@silcnet.org>
1727
1728         * Fixed whois public key hash table deleting and adding in
1729           detached client case.  Affected file silcd/packet_receive.c.
1730
1731 Sat Jan 03 12:15:38 CET 2004  Jochen Eisinger <jochen@penguin-breeder.org>
1732
1733         * Changed filenames of silc/fe module not to collide with filenames
1734           from core/fe.  Also seperated public messages printing from
1735           query messages printing.  Affected files are all in
1736           irssi/src/fe-common/silc.
1737
1738 Sat Jan  3 12:18:07 EET 2004  Pekka Riikonen <priikone@silcnet.org>
1739
1740         * Fixed the invite process handling during joining to use
1741           correct server name for the client that is matched against
1742           the invite string for the channel.  Wrong server name caused
1743           inability to join the channel.  Affected file is
1744           silcd/command.c.
1745
1746 Fri Jan  2 23:34:17 EET 2004  Pekka Riikonen <priikone@silcnet.org>
1747
1748         * Fixed the CUMODE channel founder authentication on normal
1749           server to not remove the founder rights on existing founder
1750           before checking that router accepts the mode change.  Affected
1751           files are silcd/command.c and silcd/packet_receive.c.
1752
1753         * Remove the server entry correctly when rekey timeouts and
1754           remote router connection on normal server is closed.  Fixes
1755           a crash where server uses the freed server entry.  Affected
1756           file silcd/server.c.
1757
1758 Fri Jan 02 10:28:15 CET 2004  Jochen Eisinger <jochen@penguin-breeder.org>
1759
1760         * Add /SILCNET [ADD|REMOVE|LIST] command to manage different SILC
1761           networks.  This is the first step in solving the bug about
1762           /SERVER ADD -silcnet <silcnet>.  Affected files
1763           irssi/docs/in/silcnet.in; irssi/src/fe-common/silc/Makefile.am,
1764           fe-silcnet.c, fe-common-silc.c, module-formats.[ch];
1765           irssi/src/silc/core/silc-chatnets.[ch], silc-core.c, Makefile.am
1766
1767 Thu Jan 01 20:11:32 CET 2004  Jochen Eisinger <jochen@penguin-breeder.org>
1768
1769         * /SMSG and /MMSG now correctly create new queries. Affected files
1770           irssi/src/fe-common/silc/fe-messages.c, irssi/scripts/silc-mime.pl
1771
1772         * Add basic support for SILC protocol specific variables in perl.
1773           Affected files irssi/src/perl/silc/*, irssi/configure.in,
1774           irssi/src/perl/Makefile.am
1775
1776 Wed Dec 31 17:06:55 CET 2003  Jochen Eisinger <jochen@penguin-breeder.org>
1777
1778         * Don't use silc_get_input, it's obviously not reliable.  Fixes
1779           issue when the current key expires.  Affect file
1780           irssi/src/silc/core/clientutils.c
1781
1782         * Make the session data filename configurable.  This makes it
1783           possible to have different session files for different
1784           SILC networks.  Affected files irssi/src/silc/core/silc-core.c,
1785           client_ops.[ch], silc-servers.c,
1786           irssi/src/silc/fe-common/silc/module-formats.[ch]
1787
1788         * Use the same set of libtool files for the MPI lib as for the
1789           rest of the toolkit.  Affected files lib/silcmath/mpi/config.guess,
1790           config.sub, configure.in, install-sh, missing, mkinstalldirs
1791
1792 Sun Dec 28 21:57:39 EET 2003  Pekka Riikonen <priikone@silcnet.org>
1793
1794         * Fixed server statistics decrementing error to not go to
1795           negative.  Affected file silcd/packet_receive.c.
1796
1797 Sat Dec 20 14:42:36 EET 2003  Pekka Riikonen <priikone@silcnet.org>
1798
1799         * Use silc_server_query_add_error to add error in public key
1800           search error.  Added support in send_reply to send errors
1801           without specific argument.  Affected file silcd/server_query.c.
1802
1803         * Fixed the WHOIS, IDENTIFY and WHOWAS error handling in SILC
1804           Client for NO_SUCH_NICK.  It was against the protocol specs.
1805           Affected file irssi/src/silc/core/client_ops.c.
1806
1807         * Added backwards support for the wrong NO_SUCH_NICK error sending
1808           in server.  To be removed in SILC Server 1.0.  Both old clients
1809           and clients with fixed error handling now works.  Affected file
1810           silcd/server_query.c.
1811
1812 Sat Dec 20 00:44:47 CET 2003  Patrik Weiskircher <pat@icore.at>
1813
1814         * fixed a bug in the whois using attributes function where no
1815           error was sent if no nickname and client id but the attributes were
1816           given to whois. Affected file silcd/server_query.c
1817
1818 Tue Dec 16 21:34:59 CET 2003  Patrik Weiskircher <pat@icore.at>
1819
1820         * remove public key from public key hashtable on detach. Affected
1821           file silcd/packet_receive.c
1822
1823         * free public key hashtable before removing clients on server
1824           shutdown. Affected file silcd/server.c
1825
1826         * remove public key prior deleting client-data on killing a client.
1827           Affected file silcd/server_util.c
1828
1829 Sat Dec 06 21:35:14 CET 2003  Patrik Weiskircher <pat@icore.at>
1830
1831         * Getting the MOTD from other servers works now. Affected
1832           files are silcd/command.c and silcd/command_reply.c
1833
1834 Thu Dec 04 11:33:46 CET 2003  Jochen Eisinger <jochen@penguin-breeder.org>
1835
1836         * Initialize the variable idletag, since it is tested in
1837           silc_core_deinit for its default value.  Affected file
1838           irssi/src/silc/core/silc-core.c
1839
1840 Sun Nov 30 19:47:02 CET 2003  Patrik Weiskircher <pat@icore.at>
1841
1842         * Fixed signed channel messages across cells. Affected file
1843           silcd/packet_send.c
1844
1845 Fri Nov 28 19:13:21 EET 2003  Pekka Riikonen <priikone@silcnet.org>
1846
1847         * Changed the SILC_LOG_* macros to not be empty if SILC_DEBUG
1848           is not defined.  They can now be safely used in if-statements
1849           without braces.  Affected file lib/silcutil/silclog.h.
1850
1851         * Added the checks for backup closing connection due to error
1852           (local or remote) and thus not allow the resuming to occur
1853           in reconnect.  Affected files are silcd/packet_send.c
1854           and server.c.
1855
1856 Tue Nov 25 15:20:59 EET 2003  Pekka Riikonen <priikone@silcnet.org>
1857
1858         * Help file updates.  Affected files in irssi/src/docs/help/in/.
1859
1860 Wed Nov 23 20:51:21 CET 2003  Patrik Weiskircher <pat@icore.at>
1861
1862         * Fixed channel messages across cells. Affected file
1863           silcd/packet_send.c
1864
1865 Wed Nov 12 11:34:56 EET 2003  Pekka Riikonen <priikone@silcnet.org>
1866
1867         * Fixed file transmission accepting in client library to not
1868           start the negotiation if user hasn't accepted the transfer,
1869           instead create new session for resent transfer.  Affected
1870           file lib/silcclient/client_ftp.c.
1871
1872         * Show the session ID in the file transmision list.  Remove
1873           session from list that failed to transfer.  Switch the current
1874           session automatically after transmission, and in errors, to new
1875           session if other sessions exists in the transfer list.  Affected
1876           files are irssi/src/silc/core/silc-servers.c,
1877           irssi/src/fe-common/silc/modfule-formats.c.
1878
1879 Mon Nov 10 14:41:40 CET 2003  Jochen Eisinger <jochen@penguin-breeder.org>
1880
1881         * Fixed MIME header parsing for the hopefully last time.  Affected
1882           file lib/silcutil/silcstrutil.c
1883
1884 Mon Nov 10 13:03:46 EET 2003  Pekka Riikonen <priikone@silcnet.org>
1885
1886         * Rewrote the PKCS#1 routines.  Added lib/silccrypt/silcpkcs1.[ch].
1887
1888         * The SILC RNG is now gauranteed to return non-zero random
1889           values.  Affected files are lib/silccrypt/silcrng.[ch].
1890
1891 Sun Nov  9 20:44:56 EET 2003  Pekka Riikonen <priikone@silcnet.org>
1892
1893         * Fixed nickname formatting when changing only case of the
1894           nickname.  Affected file lib/silcclient/idlist.c.
1895
1896 Sun Nov  9 19:33:59 CET 2003  Jochen Eisinger <jochen@penguin-breeder.org>
1897
1898         * Fixed a memory leak and incorrect printing of the "appears as"
1899           message.  Affected file irssi/src/silc/core/client_ops.c
1900
1901 Sun Nov  9 17:45:11 EET 2003  Pekka Riikonen <priikone@silcnet.org>
1902
1903         * Added CRT (Chinese Remainder Theorem) supported RSA
1904           private keys and private key operations.  This significantly
1905           increases private key operation efficiency.  No compatibility
1906           issues with new or old private keys.  Affected files are
1907           lib/silccrypt/rsa.[ch], rsa_internal.h and pkcs1.c.
1908
1909 Sat Nov  8 13:08:53 EET 2003  Pekka Riikonen <priikone@silcnet.org>
1910
1911         * Fixed GCC-3.3.2 related compilation warnings from the
1912           source tree.
1913
1914 Fri Nov  7 23:01:47 EET 2003  Pekka Riikonen <priikone@silcnet.org>
1915
1916         * Removed RC6 from distributions.
1917
1918 Fri Nov  7 19:38:42 EET 2003  Pekka Riikonen <priikone@silcnet.org>
1919
1920         * Added some better comments to lib/silccrypt/silcpkcs.h,
1921           optimized some routines in lib/silccrypt/silcpkcs.c.
1922           Added test_silcpkcs into lib/silccrypt/tests/.
1923
1924         * Fixed silc_rng_global_init to actually init the global RNG
1925           if RNG wasn't provided for it.  Affected file is
1926           lib/silccrypt/silrng.c.
1927
1928 Thu Nov  6 21:08:28 EET 2003  Pekka Riikonen <priikone@silcnet.org>
1929
1930         * Added silc_hash_table_find_by_context_ext.  Affected files
1931           lib/silcutil/silchashtable.[ch].
1932
1933         * Save the public key on normal server in WHOIS command reply
1934           from attributes, if present, and add it to public key hash
1935           table.  Fixes WHOIS resolving by public key on normal server.
1936
1937           Optimized the attributes resolving on normal server to not
1938           resolve if we resolved them already from router.
1939
1940           Affected files are silcd/server_query.c, command_reply.c.
1941
1942 Wed Nov  5 19:36:30 CET 2003 Patrik Weiskircher <pat@icore.at>
1943
1944         * Added support for whois using attributes.
1945           Affected files silcd/command_reply.c, silcd/packet_receive.c,
1946           silcd/server.c, silcd/server_internal.h, silcd/server_query.c,
1947           silcd/server_util.c
1948
1949         * Added support for whois using public key attribute to /WHOIS i
1950           client command. Affected files irssi/docs/help/in/whois.in,
1951           irssi/src/silc/core/silc-servers.c, lib/silcclient/command.c
1952
1953 Wed Nov  5 23:37:36 EET 2003 Pekka Riikonen <priikone@silcnet.org>
1954
1955         * Fixed UMODE setting in server when the client has anonymous
1956           mode set.  The mode setting was not working.  Affected file
1957           silcd/command.c.
1958
1959 Mon Nov  2 11:36:08 CET 2003 Jochen Eisinger <jochen@penguin-breeder.org>
1960
1961         * Fixed some bugs and typos related to sending split messages.
1962           Print notification when sending messages with /MMSG.  Affected
1963           files irssi/scripts/silc-mime.pl, irssi/src/silc/core/client_ops.c
1964
1965 Fri Oct 31 12:33:59 EET 2003 Pekka Riikonen <priikone@silcnet.org>
1966
1967         * Optimized the socket referencing in packet routines, client
1968           library and server.  Affected files are lib/silccore/silcpacket.c,
1969           lib/silcclient/client.c and silcd/server.c.
1970
1971         * If silc_socket_set_qos is given with NULL arguments the QoS is
1972           reset from the socket.  Affected files are
1973           lib/silcutil/silcsockconn.[ch].
1974
1975 Thu Oct 30 21:23:24 CET 2003 Jochen Eisinger <jochen@penguin-breeder.org>
1976
1977         * Add a /LISTKEYS command which lists the locally cached
1978           client and server keys.  Affected files
1979           irssi/src/fe-common/module-formats.[ch],
1980           irssi/src/silc/core/silc-{channels,servers}.c
1981           irssi/docs/help/in/listkeys.in
1982
1983 Thu Oct 30 20:23:40 EET 2003 Pekka Riikonen <priikone@silcnet.org>
1984
1985         * Check that packet queue purging was successful.  Affected
1986           files lib/silcclient/client.c and silcd/packet_send.c.  Related
1987           to MAC failed errors.
1988
1989         * Do not clear the inbuf even if it is empty if QoS was applied
1990           to it.  Otherwise the QoS data is cleared and MAC failed error
1991           will occur.  Affected file lib/silccore/silcpacket.c.
1992
1993         * Use the rekey period time as rekey protocol timeout value.
1994           If the rekey does not succeed during the rekey period there's
1995           something very wrong, and we most likely end up with wrong keys,
1996           do graceful reconnect then.   Affected file silcd/server.c.
1997
1998         * Take reference of the socket in the parser context, as it's
1999           possible to have the parsers in queue after the socket is
2000           disconnected and this may cause crash.  Affected files are
2001           lib/silccore/silcpacket.c, lib/silcclient/client.c and
2002           silcd/server.c.
2003
2004 Thu Oct 30 17:01:01 EET 2003 Pekka Riikonen <priikone@silcnet.org>
2005
2006         * Fixed KICK command reply sending, it sent to replies.
2007           Affected file silcd/command.c.
2008
2009 Wed Oct 30 14:06:52 CET 2003 Jochen Eisinger <jochen@penguin-breeder.org>
2010
2011         * Finish the silc-mime.pl script. It now supports MIME type
2012           guessing using magic files, signing data messages, executing
2013           MIME handlers in background. Affected files
2014           irssi/scripts/silc-mime.pl and irssi/docs/help/in/mmsg.in
2015
2016         * Changed MIME signal handler to make things easier for the perl
2017           script. Affected files irssi/src/silc/core/client_ops.c,
2018           silc-servers.c, and irssi/docs/signals.txt
2019
2020         * Cleaned up the silc_mime_parse function and fixed detection
2021           of wrapped header lines. Affected file lib/silcutil/silcstrutil.c
2022
2023 Sun Oct 26 21:19:02 EET 2003 Pekka Riikonen <priikone@silcnet.org>
2024
2025         * Resolve the IP for file transfer listener from the connection
2026           socket.  Affected file lib/silcclient/client_ftp.c.
2027
2028         * Accept NULL hostname parameter in the functions
2029           silc_net_check_[local|remote]_by_socket.  Do not reverse lookup
2030           if hostname is not wanted.
2031
2032 Fri Oct 24 21:24:12 CEST 2003  Jochen Eisinger <jochen@penguin-breeder.org>
2033
2034         * Fixed race condition between silc_client_init and
2035           my_silc_scheduler. Affected file irssi/src/silc/core/silc-core.c
2036
2037 Fri Oct 24 16:43:40 EEST 2003  Pekka Riikonen <priikone@silcnet.org>
2038
2039         * Fixed file transfer connection closing when SIGNOFF for
2040           the client is received from server.  Affected file is
2041           lib/silcclient/client_ftp.c.
2042
2043 Tue Oct 21 13:35:57 CEST 2003  Pekka Riikonen <priikone@silcnet.org>
2044
2045         * Check for disconnected socket in QUIT callback.  Affected
2046           file silcd/command.c.
2047
2048 Thu Oct 21 09:43:17 CEST 2003  Jochen Eisinger <jochen@penguin-breeder.org>
2049
2050         * Modified the MIME parsing to allow \n and \r\n as delimiters.
2051           Affected files lib/silcutil/silcstrutil.c
2052
2053         * Cleaned up the escape/unescape functions for correctness and
2054           speed. Affected file irssi/src/silc/core/client_ops.c
2055
2056         * Removed handling for data messages with Content-Type: text/*,
2057           moved parsing of MIME headers to the signal handler, added
2058           support for signing and verifying data messages. Affected
2059           files are irssi/docs/signals.txt, irssi/src/silc/core/client_ops.c,
2060           irssi/src/silc/core/silc-{servers,channels}.c
2061
2062         * Added a perl script for handling data messages based on
2063           information read from Mailcap files. New file
2064           irssi/scripts/silc-mime.pl
2065
2066 Mon Oct 20 16:08:22 EEST 2003  Pekka Riikonen <priikone@silcnet.org>
2067
2068         * Added new SILC_MESSAGE_FLAG_ACK that can  be used to
2069           acknowledge recepetion of a message to the sender.  Updated
2070           protocol specs.
2071
2072 Sat Oct 18 11:55:33 EEST 2003  Pekka Riikonen <priikone@silcnet.org>
2073
2074         * Unregister channel key saving callback when deleting channel.
2075           Affected file lib/silcclient/idlist.c.
2076
2077         * Do not remove the client from channels in NOTIFY_TYPE_SIGNOFF
2078           before calling notify client operation.  Affected file is
2079           lib/silcclient/client_notify.c.
2080
2081         * Unregister QoS tasks when deleting the socket connection.
2082           Affected files lib/silcutil/silcsockconn.[ch],
2083           unix/silcunixsockconn.c.
2084
2085         * Implemented latest presence-attrs draft changes.  Affected
2086           files lib/silccore/silcattrs.h and
2087           irssi/src/silc/core/silc-queries.c.
2088
2089 Tue Oct 14 18:24:53 EEST 2003  Pekka Riikonen <priikone@silcnet.org>
2090
2091         * Save old channel keys in list to allow more rapid change
2092           of channel keys if server for some reason does that.  This
2093           avoids loosing so many channel messages due to not having
2094           key to decrypt.  Affected file lib/silcclient/silcclient.h,
2095           idlist.c and client_channel.c.
2096
2097 Mon Oct 13 21:37:47 EEST 2003  Pekka Riikonen <priikone@silcnet.org>
2098
2099         * Continued backup router tests and fixes.  Affected files
2100           silcd/server_backup, server_util.c, server.c.  See TODO.
2101
2102 Sun Oct 12 19:58:18 EEST 2003  Pekka Riikonen <priikone@silcnet.org>
2103
2104         * Fixed SERVER_SIGNOFF handling in servers.  The client
2105           was removed from wrong list thus not removing the client
2106           at all.  Affected file silcd/packet_receive.c.
2107
2108         * Do not execute rekey protocol for disabled connections as
2109           it would never go through.  Affected file silcd/server.c.
2110
2111         * Added timeout for rekey protocol to catch if the protocol
2112           never executes successfully.  Affected files silcd/server.c
2113           and protocol.h.
2114
2115 Sat Oct 11 15:39:22 EEST 2003  Pekka Riikonen <priikone@silcnet.org>
2116
2117         * Abandon packet processing for disconnected sockets.  Check
2118           this always after calling packet processing callback.
2119           Affected file lib/silccore/silcpacket.c.
2120
2121         * Fixed double registration disconnection code in server.
2122           Closed wrong connection.  Affected file silcd/packet_receive.c.
2123
2124 Fri Oct 10 16:27:12 EEST 2003  Pekka Riikonen <priikone@silcnet.org>
2125
2126         * On normal server reconnect to primary during resuming 4
2127           times, then give up.  Affected file silcd/server_backup.c.
2128
2129         * If during reconnecting to routers we notice we have router
2130           connection but no primary router set, the server is in desync.
2131           Reconnect to primary to restore network.  Affected file
2132           silcd/server.c.
2133
2134         * Assure that only one protocol is exeucting at the same time.
2135           Added checks for all protocols.  Affected files are
2136           silcd/server.c and server_backup.c.
2137
2138 Thu Oct  9 20:24:09 EEST 2003  Pekka Riikonen <priikone@silcnet.org>
2139
2140         * Check that a string is not already part on invite/ban
2141           string when processing it.  Affected file silcd/server_util.c.
2142
2143 Thu Oct  9 12:06:40 CEST 2003  Pekka Riikonen <priikone@silcnet.org>
2144
2145         * Fixed the CUMODE_CHANGE for founder mode changes to comply
2146           with 1.2 version of the protocol.  Affected file is
2147           silcd/packet_receive.c.
2148
2149 Wed Oct  8 19:41:15 EEST 2003  Pekka Riikonen <priikone@silcnet.org>
2150
2151         * ERR_BAD_PASSWORD now returns the Channel ID of the channel
2152           where the passphrase was given.  Affected file is
2153           silcd/command.c.
2154
2155 Wed Oct  8 09:32:12 CEST 2003  Pekka Riikonen <priikone@silcnet.org>
2156
2157         * INVITE and BAN notifys are now delivered from routers to
2158           servers (but not clients) on the channel.  Updated specs and
2159           code.  Affected files silcd/packet_[send|receive].[ch],
2160           command.c, server.c and server_util.c.
2161
2162         * Implemented INVITE and BAN announcing.  Affected files are
2163           silcd/server.[ch], server_util.c.
2164
2165         * Implemented SilcStatus error type argument returning in
2166           command reply error in server.  Affected file silcd/command.c.
2167
2168         * Implemented SilcStatus argument returning in comand reply
2169           in client library.  The command_reply client operation now
2170           returns error specific arguments as well.  Affected files
2171           are lib/silcclient/command_reply.[ch], client_resume.c,
2172           lib/silccore/silcstatus.[ch].
2173
2174 Sun Oct  5 20:22:08 EEST 2003  Pekka Riikonen <priikone@silcnet.org>
2175
2176         * Backup router protocol version 1.2 implemented.  Testing still
2177           required.  Affected files in silcd/server_backup.[ch], server.c,
2178           packet_receive.c and server_internal.h.
2179
2180 Sun Oct  5 12:36:37 EEST 2003  Pekka Riikonen <priikone@silcnet.org>
2181
2182         * silc_client_send_[channel|private]_message now return TRUE
2183           or FALSE.  Affected file lib/silcclien/client_channel.c and
2184           client_prvmsg.c.
2185
2186 Thu Oct  2 17:03:09 EEST 2003  Pekka Riikonen <priikone@silcnet.org>
2187
2188         * Check for explicit nickname in INVITE and BAN processing
2189           during join as well (and don't expect only wildcards in
2190           invite/ban strings).  Affected file silcd/command.c.
2191
2192         * Fixed the INVITE and BAN by public key.  The public key saved
2193           is the PK payload (as specified) not the raw data.  Affected
2194           file silcd/server_util.c.
2195
2196 Wed Oct  1 20:29:06 EEST 2003  Pekka Riikonen <priikone@silcnet.org>
2197
2198         * UTF-8 text message support for actions and notices in SILC
2199           Client.  Affected file irssi/src/silc/core/client_ops.c.
2200
2201         * silc_get_username and silc_get_real_name now returns sensible
2202           data on Win32.  Patch by Toni Willberg.  Affected file is
2203           lib/silcutil/win32/silcwin32util.c.
2204
2205 Sun Aug 24 23:35:19 CEST 2003  Jochen Eisinger <c0ffee@penguin-breeder.org>
2206
2207         * Provide a signal handler to send MIME encoded messages and emit
2208           a signal when a MIME encoded message is received. Also document
2209           the signals for usage with the perl interface.
2210
2211           A sample perl script will be supplied at a later point.
2212
2213           Affected files are irssi/docs/signals.txt,
2214           irssi/src/silc/core/client_ops.[ch],
2215           irssi/src/silc/core/silc-{channels,servers}.c
2216
2217 Sun Aug 24 12:58:30 CEST 2003  Jochen Eisinger <c0ffee@penguin-breeder.org>
2218
2219         * Use SILC_COMMAND_PING to estimate the round-trip time to the
2220           server. Use this time to display a lag and disconnect when it
2221           exceeds a specified limit.
2222
2223           Affected files are irssi/src/silc/core/silc-{lag,core}.c.
2224
2225 Mon Aug 11 17:14:17 EEST 2003  Pekka Riikonen <priikone@silcnet.org>
2226
2227         * Remove the channel auth list in normal server if router
2228           encofrces its list during connecting.  Send notify to channel
2229           to remove the mode to remove the list.  Affected files are
2230           silcd/server_util.c and silcd/packet_receive.c.
2231
2232 Wed Aug  6 14:52:04 EEST 2003  Pekka Riikonen <priikone@silcnet.org>
2233
2234         * Added support for channel public keys.  Updated protocol specs
2235           and implemented it.  Affected files are
2236           silcd/command.c, command_reply.c, lib/silcclient/command.c,
2237           lib/silcclient/command_reply.c.
2238
2239 Wed Jul 23 12:17:01 EEST 2003  Pekka Riikonen <priikone@silcnet.org>
2240
2241         * Ignore SIGXFSZ and SIGXCPU signals in server.  They can
2242           terminate the process on Linux.  Affected file silcd/silcd.c.
2243
2244 Mon Jun  2 19:13:27 EEST 2003  Pekka Riikonen <priikone@silcnet.org>
2245
2246         * Check for NULL buffer in silc_buffer_clear.  Affected file
2247           is lib/silcutil/silcbuffer.h.
2248
2249         * Simplified the backup router protocol by removing the _GLOBAL
2250           types.  Updated protocol specs and the code.  Affected files
2251           are silcd/server_backup.[ch].
2252
2253 Thu Apr 24 19:50:25 EEST 2003  Pekka Riikonen <priikone@silcnet.org>
2254
2255         * Deny '@' and '!' from nicknames since they are reserved
2256           by the SILC_COMMAND_INVITE and SILC_COMMAND_BAN commands.
2257           Updated protocol specs and the code.
2258
2259           Affected files are silcd/server_util.[ch].
2260
2261 Wed Apr  9 18:51:59 EEST 2003  Pekka Riikonen <priikone@silcnet.org>
2262
2263         * Fixed stack overflow in Irssi SILC client.  Affected
2264           file irssi/src/silc/core/client_ops.c.
2265
2266         * Check that Host is set in ServerConnection and RouterConnection
2267           in silcd.conf.  Affected file silcd/serverconfig.c.
2268
2269         * Fixed crash in server with protocol completion callbacks,
2270           namely rekey and backup resuming protocols.  Affected files
2271           are silcd/server_backup.c and silcd/server.c.
2272
2273         * Fixed rekey protocol to not restart if it is started already.
2274           Affected files are lib/silcclient/client.c and
2275           silcd/server.c.c
2276
2277 Mon Mar 17 18:35:24 EET 2003  Pekka Riikonen <priikone@silcnet.org>
2278
2279         * Rewrote SilcList, affected file lib/silcutil/silc*list.h.
2280
2281         * Fixed EOF handling in SILC Config, affected file
2282           lib/silcutil/silcconfig.c.
2283
2284         * Fixed buffer overflows in lib/silcutil/silcstrutil.c.
2285
2286         * Fixed RESOLVING flag handling in JOIN notify and other
2287           notifys to handle the resolvings correctly in client library.
2288           Affected file lib/silcclient/client_notify.c.
2289
2290         * Do not send full INVITE and BAN lists in INVITE and BAN
2291           notifys, only the changed information.  Affected file
2292           silcd/command.c.
2293
2294         * Fixed INVITE notify sending in INVITE command, send it
2295           only when needed.  Affected file silcd/command.c.
2296
2297         * Handle the founder key change properly in CMODE_CHANGE
2298           notify.  Bug #122.  Affected file silcd/packet_receive.c.
2299
2300 Sun Mar  9 16:29:20 EET 2003  Pekka Riikonen <priikone@silcnet.org>
2301
2302         * Remove the mark for output (mark it only for input) after
2303           purging outgoing queue.  Prevents the "Error in select()"
2304           floods.  Affected file silcd/packet_send.c.
2305
2306         * Fixed incorrect connection deletion from client library
2307           after calling "connect" client operation.  Could cause
2308           crashes for example during reconnect timeouts.  Affected
2309           files are lib/silcclient/client.c and
2310           irssi/src/silc/core/client_ops.c.
2311
2312         * Check server private key file permissions before starting
2313           the server.  Affected file silcd/serverconfig.c.
2314
2315 Tue Feb  4 22:53:26 EET 2003  Pekka Riikonen <priikone@silcnet.org>
2316
2317         * NULL terminate allocated string in silc_buffer_strformat.
2318           Affected file lib/silcutil/silcbuffmt.c.
2319
2320         * Rewrote the invite/ban list string handling in server to
2321           use SilcBuffer instead.  Affected files are silcd/command.c
2322           and silcd/server_util.c.
2323
2324 Mon Feb  3 14:43:52 CET 2003  Pekka Riikonen <priikone@silcnet.org>
2325
2326         * Fixed double free in CMODE command when setting new HMAC
2327           for channel.  Affected file silcd/command.c.
2328
2329         * Added couple of missing memset's to zero sensitive memory.
2330           Affected files silcd/command.c, lib/silcclient/command.c.
2331
2332 Sun Jan 26 12:20:30 EET 2003  Pekka Riikonen <priikone@silcnet.org>
2333
2334         * Fixed a double free in INVITE command error handling in
2335           server.  Affected file silcd/command.c.
2336
2337         * Added macros SILC_SWAB_[16|32] to swab byte order of
2338           16-bit and 32-bit unsigned integers.  Affected file
2339           lib/silcutil/silctypes.h.
2340
2341         * Use the SILC_SWAB_16 instead of htons() in server when
2342           handling ports since the ports in structures are always
2343           in little-endian order (regardless of platform).  Affected
2344           file silcd/serverid.c and silcd/server_backup.c.
2345
2346 Tue Jan 21 17:18:04 EET 2003  Pekka Riikonen <priikone@silcnet.org>
2347
2348         * Send DISCONNECT in close admin command in server.  Affected
2349           file silcd/command.c.
2350
2351         * Check whether we are already connecting to a remote router
2352           (in addition of checking whether we are already connected)
2353           before creating new connection.  Affected file silcd/server.c.
2354
2355 Thu Jan 16 18:47:00 EET 2003  Pekka Riikonen <priikone@silcnet.org>
2356
2357         * Added better compiler and compiler flags checking in
2358           configure.
2359
2360         * Check that socket is valid after QoS is applied to data.
2361           Affected file lib/silcutil/unix/silcunixsockconn.c.
2362
2363         * Make sure the socket connecetion is not closed to early
2364           when closing connection in server.  Also make sure the
2365           connection is always closed after error in a protocol.
2366           Affected file silcd/server.c.
2367
2368 Wed Jan 15 11:03:36 CET 2003  Pekka Riikonen <priikone@silcnet.org>
2369
2370         * Removed --session and --dummy options from Irssi SILC Client.
2371           -d option is available only if --enable-debug was given.
2372           Affected files are irssi/src/silc/core/silc-core,
2373           irssi/src/core/session.c and irssi/src/fe-text/silc.c.
2374
2375 Tue Jan 14 12:25:09 CET 2003  Pekka Riikonen <priikone@silcnet.org>
2376
2377         * Added silc_buffer_steal to steal the data from the buffer.
2378           Affected file lib/silcutil/silcbuffer.h.
2379
2380 Sat Jan 11 18:16:29 CET 2003  Giovanni Giacobbi <giovanni@giacobbi.net>
2381
2382         * Fixed server crash with double Primary block in config file.
2383
2384           Fixed also various memory leaks around the config file
2385           parser.  Affected files lib/silcutil/silcconfig.c,
2386           silcd/serverconfig.c.
2387
2388         * Changed my nickname (Johnny Mnemonic) to my real name, this
2389           means that bugs introduced by him were actually introduced
2390           by me!
2391
2392 Tue Jan  7 21:58:53 CET 2003  Jochen Eisinger <c0ffee@penguin-breeder.org>
2393
2394         * Don't display "foo appears as foo\nYou're now known as foo"
2395           messages.  Affected file irssi/src/silc/core/client_ops.c
2396
2397 Tue Jan  7 20:08:15 EET 2003  Pekka Riikonen <priikone@silcnet.org>
2398
2399         * Fixed error handling of invalid client entry when calling
2400           commands in server.  Fixes a crash.  Affected file
2401           silcd/command.c.
2402
2403 Thu Dec 26 14:19:29 EET 2002  Pekka Riikonen <priikone@silcnet.org>
2404
2405         * Added some sanity checks in server for correctness of the
2406           server configuration.  Affected file silcd/serverconfig.c.
2407
2408 Fri Dec 20 10:47:59 CET 2002  Pekka Riikonen <priikone@silcnet.org>
2409
2410         * Prevent endless resolving of user informations in USERS
2411           command by checking the command reply status correctly.
2412           Affected file lib/silcclient/command_reply.c.
2413
2414 Tue Dec 17 10:05:00 CET 2002  Pekka Riikonen <priikone@silcnet.org>
2415
2416         * Fixed file writing on WIN32 to use O_BINARY flag.  Affected
2417           file is lib/silcutil/silcfileutil.c.  A patch by Matthew
2418           Aldous <Matthew@Aldous.com>.
2419
2420         * Added better implementation using CriticalSection of
2421           SilcMutex on WIN32.  A patch by Mikko Lähteenmäki
2422           <mikko.lahteenmaki@pikabaana.net>.
2423
2424         * Added some Winsock WIN32 compatiblity defines into
2425           includes/silcwin32.h.
2426
2427 Mon Dec 16 19:33:05 EET 2002  Pekka Riikonen <priikone@silcnet.org>
2428
2429         * Fixed double free in async host lookup code.  Affected file
2430           lib/silcutil/silcsockconn.c.
2431
2432         * On backup router handle now the SERVER_SIGNOFF from router
2433           for local connected servers too, and close the connections.
2434
2435           Do not process them as normally signing off servers when they
2436           really signoff by sending EOF fe, but always assume that
2437           router sends the SERVER_SIGNOFF.
2438
2439           Affected files silcd/server.c and silcd/packet_receive.c.
2440
2441         * Fixed socket unsetting when closing connections.  Affected
2442           files silcd/server.c and silcd/packet_send.c.
2443
2444         * Do not print the nickname in SERVER_SIGNOFF if we do not
2445           have it.  Prevents asserts in Irssi core.  It is possible we
2446           don't have the nick if it was just being resolved when server
2447           signoff.  Affected file irssi/src/silc/core/client_ops.c.
2448
2449 Thu Dec 12 23:22:50 EET 2002  Pekka Riikonen <priikone@silcnet.org>
2450
2451         * Fixed autonick crashbug in client library.  Affected file
2452           lib/silcclient/client.c.
2453
2454         * Fixed Unix implementation of SilcMutex to really assert if
2455           the mutex is locked/unlcoked already.  Affected file
2456           lib/silcutil/unix/silcunixmutex.c.
2457
2458         * Fixed locking in silc_schedule_uninit.  It didn't lock
2459           when dispatching timeout tasks.  Affected file is
2460           lib/silcutil/silcschedule.c.
2461
2462         * Changed Win32 implementation of SilcThread to use modern
2463           Win32 interface.  Affected file is
2464           lib/silcutil/win32/silcwin32thread.c  A patch by Mikko L.
2465
2466 Thu Dec 12 12:06:59 CET 2002 Jochen Eisinger <c0ffee@penguin-breeder.org>
2467
2468         * Don't print signed messages when sending failed.  Affected files
2469           irssi/src/silc/core/silc-[servers.c/commands.h]
2470
2471         * Send adquate signal when founding a channel by joing it.  Affect
2472           file irssi/src/silc/core/client_ops.c
2473
2474 Wed Dec 11 21:46:19 CET 2002 Jochen Eisinger <c0ffee@penguin-breeder.org>
2475
2476         * Fix theme abstracts parsing.  Affected files irssi/default.theme,
2477           irssi/src/fe-common/core/themes.c
2478
2479 Wed Dec 11 20:20:07 EET 2002 Pekka Riikonen <priikone@silcnet.org>
2480
2481         * Fixed close command to use the port correctly when closing
2482           server connections.  Affected file silcd/idlist.c.
2483
2484         * Check for NULL outbuf in silc_socket_write.  It is possible
2485           that it is NULL is some odd case.  Affected files are
2486           lib/silcutil/[unix/win32]/silc[unix/win32]sockconn.c.
2487
2488         * Do not call final protocol callback for backup router
2489           resuming protocol when closing connection.  It is closed
2490           by timeout in case of error.  Affected file silcd/server.c.
2491
2492         * Backup reconnect to router if backup resuming protocol
2493           failed.  Affected file silcd/server_backup.c.
2494
2495 Wed Dec 11 10:01:26 CET 2002 Pekka Riikonen <priikone@silcnet.org>
2496
2497         * Fixed double free in SKE library error hadling when signature
2498           error occurred.  Affected file lib/silcske/silcske.c.
2499
2500         * Save the fingerprint to new SilcClientEntry after changing
2501           nickname.  Affected file lib/silcclient/client_notify.c.
2502
2503         * Print SIGNOFF in Irssi SILC client only if the nickname is
2504           known.  Prevents asserts in Irssi core.  It is possible we
2505           don't have the nick if it was just being resolved when it
2506           quit.  Affected file irssi/src/silc/core/client_ops.c.
2507
2508 Tue Dec 10 21:47:56 EET 2002  Pekka Riikonen <priikone@silcnet.org>
2509
2510         * Fixed double free in invite list adding code when adding
2511           invite strings.  Affected file silcd/server_util.c.
2512
2513 Fri Dec  6 17:40:24 EET 2002  Pekka Riikonen <priikone@silcnet.org>
2514
2515         * More log printing during backup router protocol.  Affected
2516           file silcd/server_backup.c.
2517
2518         * Removed backwards support for old private key file format.
2519           Affected file lib/silccrypt/silcpkcs.c.
2520
2521         * Removed backwards support for not-so-strict decryption length
2522           check, it's strict now.  Affected lib/silccrypt/silccipher.c.
2523
2524         * GETKEY to update the client entrys fingerprint too.
2525           Affected file lib/silcclient/command_reply.c.
2526
2527         * Added --without-libtoolfix for package builders using weird
2528           wrappers around libtool (BSD at least).
2529
2530 Thu Dec  5 22:29:46 EET 2002  Pekka Riikonen <priikone@silcnet.org>
2531
2532         * Fixed backup router bugs:  When backup resumes router and
2533           receives a CHANNEL_MESSAGE packet the backup must not act
2534           as router since the packet header decryption would be
2535           different.  Also, when relaying packets to channel, do
2536           not re-encrypt packets on backup that came from the primary
2537           since the connection isn't really router-router connection.
2538           Affected files silcd/server.c, silcd/packet_send.c.
2539
2540         * Added checks in encryption/decryption that encryption/decryption
2541           length sent as argument really is multiple by block size.  Helps
2542           catching really weird bugs like the above backup router bugs
2543           when packets are being decrypted in wrong way.  Affected files
2544           lib/silccore/silcpacket.c, and lib/silccrypt/silccipher.c.
2545
2546         * Fixed padding generation in private key file encryption.
2547           Affected file lib/silccrypt/silcpkcs.c.
2548
2549 Thu Dec  5 16:35:23 EET 2002  Pekka Riikonen <priikone@silcnet.org>
2550
2551         * Added ignore_message_signatures setting which can be used
2552           to ignore signatures in messages.  Affected files are
2553           irssi/src/silc/core/client_ops.c, silc-core.c.
2554
2555         * Fixed the libtoolfix to use command line options instead of
2556           environment variables.  They didn't work as expected.  Now,
2557           the libtool is fully run-time configurable.
2558
2559 Wed Dec  4 21:08:52 CET 2002  Jochen Eisinger <c0ffee@penguin-breeder.org>
2560
2561         * Verify signature payload for signed messages. Affected files
2562           irssi/src/silc/core/client_ops.h, irssi/src/silc/core/silc-servers.c,
2563           irssi/src/silc/core/silc-core.h
2564
2565         * Display signature verification result in public and private
2566           messages using theme abstracts. See irssi/default.theme for
2567           examples on their usage. Affected files
2568           irssi/default.theme, irssi/src/fe-common/silc/fe-messages.h,
2569           irssi/src/fe-common/silc/module-formats.[ch],
2570           irssi/src/fe-common/silc/fe-common-silc.c,
2571           irssi/src/fe-common/silc/Makefile.am
2572           irssi/src/fe-common/core/fe-messages.[ch]
2573
2574         * Fixed bugs in Irssi's theme parsing. Affected files
2575           irssi/src/fe-common/core/themes.c
2576
2577 Wed Dec  4 18:29:13 EET 2002  Pekka Riikonen <priikone@silcnet.org>
2578
2579         * Calculate the correct length for signed messages before
2580           encrypting, it must be multiple by block size.  Affected
2581           file lib/silccore/silcmessage.c.
2582
2583         * silc_message_signed_get_public_key returns now both
2584           decoded and encoded public key.  Affected files are
2585           lib/silccore/silcmessage.[ch].
2586
2587         * Added libtoolfix script that makes the libtool more generic
2588           and configurable in run-time.  Now we can specify in run-time
2589           if what kind of libraries we want to create, regardless of
2590           configuration.  SIMs are now creates even if --disable-shared
2591           was explicitly given.
2592
2593 Tue Dec  3 23:26:55 EET 2002  Pekka Riikonen <priikone@silcnet.org>
2594
2595         * Fixed founder key sending in CMODE command in client.
2596           Affected file lib/silcclient/command.c.
2597
2598         * Fixed CUMODE founder authentication in server to not check
2599           for client's public key since it's not supposed to do that.
2600           Affected file silcd/command.c.
2601
2602 Tue Dec  3 12:02:41 CET 2002  Jochen Eisinger <c0ffee@penguin-breeder.org>
2603
2604         * Set realname and hostname in NICK_REC records. Affected file
2605           irssi/src/silc/core/silc-nicklist.c
2606
2607 Mon Dec  2 20:50:20 EET 2002  Pekka Riikonen <priikone@silcnet.org>
2608
2609         * Remove 1.0 protocol backwards compat code from client
2610           library.
2611
2612         * Added more reliable check for whether nickname did change
2613           or not, or whether only Client ID changed in NICK_CHANGE
2614           notify.  Affected file lib/silcclient/client_notify.c.
2615           Fixes bug in '@' character handling in a nickname.
2616
2617         * Added support for automatically parsing signature from
2618           the message payload.  Added new function
2619           silc_message_get_signature to return the payload to
2620           application.  Affected files lib/silccore/silcmessage.[ch].
2621
2622         * Changed the private_message and channel_message client
2623           operations to deliver the SilcMessagePayload to the
2624           application too.  Application can use it fe. to get the
2625           signature from the message for verification.  Affected
2626           file lib/silcclient/silcclient.h, client_channel.c and
2627           client_prvmsg.c.
2628
2629         * Redefined the signed payload for message payloads.
2630           Updated protocol specs and implemented.
2631
2632 Mon Dec  2 16:28:29 EET 2002  Pekka Riikonen <priikone@silcnet.org>
2633
2634         * Fixed wrong invite and ban list handling in server command
2635           reply.  Affected files are silcd/command_reply.c,
2636           silcd/server_util.[ch].
2637
2638 Sun Dec  1 20:48:17 EET 2002  Pekka Riikonen <priikone@silcnet.org>
2639
2640         * Fixed CMODE setting in server when founder mode was set.
2641           Affected file silcd/command.c.  Bug #95.
2642
2643         * Added support to setting specific public key in CMODE in
2644           Irssi SILC client.  Affected file lib/silcclient/command.c.
2645
2646         * Added support to use specific public key in CUMODE in
2647           Irssi SILC Client.  Affected file lib/silcclient/command.c.
2648
2649         * Added support for inviting and banning by public key in
2650           Irssi SILC client.  Affected file lib/silcclient/command.c.
2651
2652         * Fixed fingerprint/babbleprint showing in invite and ban
2653           list command replys.  Affected file is
2654           irssi/src/silc/core/client_ops.c.
2655
2656 Sun Dec  1 16:32:03 CET 2002  Jochen Eisinger <c0ffee@penguin-breeder.org>
2657
2658         * Format CMODE +c and +h to display both the mode and the argument
2659
2660 Sun Dec  1 18:17:22 EET 2002  Pekka Riikonen <priikone@silcnet.org>
2661
2662         * Added test vectors and test programs for SHA-1, MD5,
2663           HMAC-SHA1 and HMAC-MD5.  New tests are located in
2664           lib/silccrypt/tests/.  Fixed also argument decoding bug in
2665           MD5 implementation.  Affected file lib/silccrypt/md5.c.
2666
2667         * Changed the channel private key and private message key
2668           generation (with static keys) to use SHA1 instead of MD5,
2669           as SHA1 is the mandatory hash function in SILC.  Affected
2670           file lib/silcclient/client_[channel/prvmsg].c.
2671
2672         * Changed the private key file encryption to use SHA1 instead
2673           of MD5.  Added support for the old generation and added
2674           automatic change of the key (to be removed later).  Affected
2675           files lib/silccrypt/silcpkcs.c.
2676
2677 Sat Nov 30 19:07:52 EET 2002  Pekka Riikonen <priikone@silcnet.org>
2678
2679         * Load only files with .pub suffix in PublicKeyDir.  Affected
2680           file silcd/serverconfig.c.
2681
2682 Sat Nov 30 14:29:34 CET 2002  Johnny Mnemonic <johnny@themnemonic.org>
2683
2684         * Extended the SILC_SERVER_LOG_ERROR macro to all available logging
2685           channels.  Affected files silcd/silcd.c, silcd/server.h.
2686
2687         * Added the config directive PublicKeyDir for the client block.
2688           Affected files doc/exampe_silcd.conf.in, silcd/serverconfig.[ch].
2689
2690 Sat Nov 30 09:30:55 CET 2002  Pekka Riikonen <priikone@silcnet.org>
2691
2692         * Merged Toni's irssi/silc.conf patch.
2693
2694         * ROBODoc cleanup patch to lib/silccrypt/silcpkcs.h by johnny.
2695
2696         * Max alloc tests in allocation routines.  Affected file
2697           lib/silcutil/silcmemory.c.
2698
2699 Fri Nov 29 23:44:29 EET 2002  Pekka Riikonen <priikone@silcnet.org>
2700
2701         * Fixed a typo in resuming code that fixed detach/resume code
2702           in server.  Bug #93.  Affected file silcd/packet_receive.c.
2703
2704 Thu Nov 28 17:17:11 CET 2002  Jochen Eisinger <c0ffee@penguin-breeder.org>
2705
2706         * Do reverse lookups for server when /connecting. Affected files
2707           irssi/silc.conf, irssi/src/core/servers.c, irssi/src/core/network.c,
2708           irssi/src/core/net-nonblock.*
2709
2710 Thu Nov 28 16:19:18 CET 2002  Pekka Riikonen <priikone@silcnet.org>
2711
2712         * Added library versioning for shared libraries.  Affected
2713           files configure.in.pre and lib/Makefile.am.pre.
2714
2715 Wed Nov 27 21:51:52 CET 2002  Jochen Eisinger <c0ffee@penguin-breeder.org>
2716
2717         * Display INVITE and BAN lists as specified by SILC 1.2
2718
2719 Wed Nov 27 16:01:11 CET 2002  Pekka Riikonen <priikone@silcnet.org>
2720
2721         * Do not send invite list back unless asked (when sending
2722           no arguments) or when list was modified.  Affected file
2723           silcd/command.c.
2724
2725         * Remove client from invite list in KILLED notify and in
2726           KILL command.  Affected file silcd/command.c and
2727           silcd/server.[ch].
2728
2729         * Fixed bugs in invite list handling in INVITE command.
2730           Affected files silcd/command.c and silcd/server_util.c.
2731
2732         * Merged with Irssi 0.8.6.
2733
2734         * Fixed UTF-8 in Irssi SILC Client, setlocale was missing.
2735           Affected file irssi/src/fe-text/silc.c.
2736
2737 Mon Nov 25 18:21:43 EET 2002  Pekka Riikonen <priikone@silcnet.org>
2738
2739         * The silc_argument_get_[first/next] now return the argument
2740           type to caller.  Added silc_argument_payload_encode_one.
2741
2742           Affected files are lib/silccore/silcargument.[ch].
2743
2744         * Added support for the SILC 1.2 INVITE command and new
2745           invite lists to server.  Affected files are silcd/command.c,
2746           silcd/server_util.[ch] and silcd/packet_[receive/send].[ch].
2747
2748         * Added support for the SILC 1.2 BAN command and new
2749           ban lists to server.  Affected files are silcd/command.c,
2750           silcd/server_util.[ch] and silcd/packet_[receive/send].[ch].
2751
2752         * Added support to client sending new INVITE command.  Affected
2753           file is lib/silcclient/command.c.
2754
2755         * Added support to client sending new BAN command.  Affected
2756           file is lib/silcclient/command.c.
2757
2758         * Added support for removing client from invite list when kicked
2759           from channel, as SILC 1.2 dictates.  Affected files are
2760           silcd/packet_receive.c and silcd/command.c.
2761
2762 Sun Nov 24 18:26:42 EET 2002  Pekka Riikonen <priikone@silcnet.org>
2763
2764         * If iv argument to silc_cipher_[encrypt/decrypt] is NULL, use
2765           automatically the cipher's internal IV.  Affected files
2766           lib/silccrypt/silccipher.[ch].
2767
2768         * Assure the RESUME_CLIENT packet is not sent to twice to
2769           backup router if the detached client was originated from
2770           the backup.  Affected file silcd/server.c.  Bug #76.
2771
2772         * Changed silc_sim_symname to not allocate memory.  Affected
2773           file lib/silcsim/silcsimutil.c.
2774
2775         * Fixed memory leaks with SIMs in server.  Affected files
2776           silcd/serverconfig.c, silcd/server.c.
2777
2778         * Fixed channel key distribution after resuming detached
2779           client.  Affected files silcd/packet_receive.c.
2780
2781         * Fixed channel's global_user boolean checking after detaching.
2782           Check it after changing the owner of the client not before.
2783           Affected file silcd/packet_receive.c.
2784
2785         * Fixed few double frees from client library.  Fixes at least
2786           Bug #81, possibly others too.
2787
2788         * UTF-8 decode topics also in JOIN command reply and TOPIC_SET
2789           notifys in Irssi SILC Client.  Affected file is
2790           irssi/src/silc/core/client_ops.c.  Bug #82.
2791
2792         * Applied Ville Räsänen's manual page and --mandir bugfix
2793           patch.  Affected files are configure.in.pre and Makefile.am.pre.
2794           Bug #88.
2795
2796 Fri Nov 22 18:34:20 EET 2002  Pekka Riikonen <priikone@silcnet.org>
2797
2798         * Added support to backup router protocol for backup to tell
2799           normal server that it cannot use the backup router as primary
2800           because the primary isn't really down.  Updated protocol
2801           specs.
2802
2803         * Added support for primary router to tell backup router that
2804           resuming is not possible because the backup really isn't primary
2805           in the cell.  For example if backup disconnected itself the
2806           resuming is not allowed since the primary really did not
2807           go down.  Updated protocol specs.
2808
2809         * Removed MARS from crypto library.
2810
2811         * Defined the CTR mode and Randomized CBC mode in SILC.  The
2812           CTR mode is RECOMMENDED now in specification.  Defined also
2813           Serpent cipher as optional cipher.  Updated the protocol specs.
2814
2815 Thu Nov 21 12:43:28 EET 2002  Pekka Riikonen <priikone@silcnet.org>
2816
2817         * Added support for inviting/banning by IP/MASK, public key,
2818           and explicit Client ID.  Redefined the command and notify
2819           types to allow easier forwards support for other methods
2820           of inviting/banning.  Updated protocol specs.
2821
2822         * Remove the client from channel's invite lists if the client
2823           is kicked or killed.  Updated protocol specs.
2824
2825         * Unified the Channel Message Payload and Private Message
2826           into one Message Payload.  Updated protocol specs and
2827           implemented.
2828
2829 Tue Nov 19 22:30:56 EET 2002  Pekka Riikonen <priikone@silcnet.org>
2830
2831         * Don't wait for EOF after socket error has occurred, but
2832           close the connection.  Affected file is silcd/server.c.
2833
2834 Mon Nov 18 18:58:26 EET 2002  Pekka Riikonen <priikone@silcnet.org>
2835
2836         * Added support for setting FOUNDER mode on channel with
2837           specific public key which can be set with CMODE command.
2838           Updated protocol specs and implemented in client and server.
2839
2840         * Fixed the Irssi SILC client to correctly shutdown the client
2841           library to avoid memory leaks.  Affected files are
2842           irssi/src/silc/core/silc-core.c and silc-servers.c.
2843
2844         * Deprecated the No Reply flag in SKE protocol and introduced
2845           "IV Included" flag which can be used to indicate that the IV
2846           is included in the ciphertext.  This makes it possible to use
2847           SILC on unreliable transport, such as UDP which may cause
2848           packet reordering and losses.  Updated protocol specs, did
2849           not implement yet.
2850
2851 Sun Nov 17 15:50:57 EET 2002  Pekka Riikonen <priikone@silcnet.org>
2852
2853         * Fixed the MPI implementation of silc_mp_sizeinbase to return
2854           < 32 bit values in correct size.  Affected file is
2855           lib/silcmath/mp_mpi.c.
2856
2857 Sat Nov 16 13:14:45 EET 2002  Pekka Riikonen <priikone@silcnet.org>
2858
2859         * Fixed the KE Start Payload parsing to check that mandatory
2860           fields are present.  Affected file lib/silcske/payload.c.
2861
2862         * Fixed compilation warnigs in Irssi SILC Client.  Affected
2863           files are irssi/src/silc/core/silc-query.c. client_ops.c.
2864
2865 Thu Nov 14 19:33:28 CET 2002  Jochen Eisinger <c0ffee@penguin-breeder.org>
2866
2867         * Print "nick now appears as newnick" and update Irssi's nicklist
2868           when you change your nick to "nick". Closes #62
2869
2870         * Never format your own nick. Closes #63
2871
2872 Thu Nov 14 09:44:54 CET 2002  Jochen Eisinger <c0ffee@penguin-breeder.org>
2873
2874         * SILC_UMODE_GONE changes are now propagated correctly to the
2875           Irssi client. Closes #54
2876
2877 Tue Nov 12 19:42:18 CET 2002  Jochen Eisinger <c0ffee@penguin-breeder.org>
2878
2879         * Fixed example in /HELP KEY
2880
2881         * Added expando $j which expands to current SILC Client version
2882
2883 Tue Nov 12 19:46:39 EET 2002  Pekka Riikonen <priikone@silcnet.org>
2884
2885         * Fixed public key decoding in crypto library.
2886
2887         * Added better error printing to SKE library.
2888
2889 Tue Nov 12 08:50:12 CET 2002  Pekka Riikonen <priikone@silcnet.org>
2890
2891         * Fixed NICK command to not crash if nickname was not sent.
2892
2893 Mon Nov 11 19:32:00 EET 2002  Pekka Riikonen <priikone@silcnet.org>
2894
2895         * Added Encrypt-Then-MAC order to SILC packet MAC generation.
2896           Deprecated the old Encrypt-And-MAC order.  Updated protocol
2897           specs and implemented.
2898
2899         * Added Encrypt-Then-MAC order to Channel Message Payload MAC
2900           generation.  Updated specs and implemented.
2901
2902 Sun Nov 10 12:20:56 EET 2002  Pekka Riikonen <priikone@silcnet.org>
2903
2904         * Added support for rekey before 2^32 sequence number wraps.
2905           Affected files in server and client library.
2906
2907         * Padding must be at least 8 bytes now.  Implemented and updated
2908           protocol specs.
2909
2910         * Compute maximum padding for authentication packets to make
2911           passphrase approximation attacks impossible.  Affected files
2912           in client library and in server.
2913
2914         * Fixed PING command sending in client library and handling in
2915           server.  The server ID must be ID Payload, not raw ID data.
2916           Affected files in server and client library.
2917
2918         * Defined that all public keys sent in commands and notify
2919           payloads are actually Public Key Payloads not raw public key
2920           data.  Updated protocol specs and implemented.
2921
2922         * Updated protocol version to 1.2.  Updated specs and code.
2923
2924         * Added ERR_UNSUPPORTED_PUBLIC_KEY and ERR_OPERATION_ALLOWED
2925           status types.  Updated specs and the code.
2926
2927         * Added support for normal client to kill its own entries from
2928           the network.  Updated protocol specs and the code.
2929
2930         * Defined the SILC_MESSAGE_FLAG_SIGNED.  Updated protocol specs
2931           and added initial implementation.
2932
2933         * Added MAC field to the Private Message Payload to protect
2934           against chosen ciphertext attacks.  Updated the protocol specs
2935           and implemented.
2936
2937         * Added idle and signon fields to the ATTRIBUTE_SERVICE
2938           attribute to indicate the user's current idle and signon time
2939           of a service.  Updated protocol specs and implemented.
2940
2941 Thu Nov  7 19:21:10 EET 2002  Pekka Riikonen <priikone@silcnet.org>
2942
2943         * Added "do_not_bind" argument to silc_client_file_send what
2944           can be used to not bind locally but assume the file receiver
2945           provides the point of connect.  Usefull when sender is behind
2946           NAT device.  Affected file lib/silcclient/silcclient.h and
2947           client_ftp.c.
2948
2949         * Added -no-listener option to FILE SEND command in Irssi SILC
2950           client.  Affected file irssi/src/silc/core/silc-servers.c.
2951           Renamed FILE RECEIVE to FILE ACCEPT.
2952
2953         * Confirm passphrase for private key encryption in
2954           silc_create_key_pair and silc_change_private_key_passphrase.
2955           Affected files are lib/silcutil/silcapputil.c.
2956
2957 Thu Nov  7 10:05:28 CET 2002  Pekka Riikonen <priikone@silcnet.org>
2958
2959         * Move silc_client_packet_send back to internal, added
2960           silc_client_send_packet, a bit simpler function for application.
2961           Affected files lib/silcclient/silcclient.h, client.c and
2962           client_internal.h.
2963
2964         * Moved the SilcClientEntry, SilcChannelEntry and
2965           SilcServerEntry to silcclient.h to be public and documented
2966           them for application.  Affected files are
2967           lib/silcclient/silcclient.h and idlist.h.
2968
2969 Wed Nov  6 17:18:13 EET 2002  Pekka Riikonen <priikone@silcnet.org>
2970
2971         * Fixed manual page installation patch by Ville Räsänen.
2972           USERS help page fix patch by Ville Räsänen
2973
2974         * Changed the silc_client_command_call interface to make
2975           the command call simpler for the application.  The library
2976           now handles the command line parsing, command finding and
2977           execution.  Application only needs to call the function
2978           with the command line.  Affected files are
2979           lib/silcclient/silcclient.h, command.[ch].
2980
2981         * Fixed silc_get_input to NULL-terminate the returned input.
2982           Affected file lib/silcutil/silcutil.c.
2983
2984         * Resolve the client's public key in JOIN command if the
2985           founder auth data is being requested but we don't know the
2986           client's public key.  Affected file silcd/command.c.
2987           Bug #53.
2988
2989 Mon Nov  4 16:02:59 EET 2002  Pekka Riikonen <priikone@silcnet.org>
2990
2991         * Print notify for server opers when backup router comes
2992           online.  Affected file silcd/server.c.
2993
2994         * Fixed the INVITE command to send the invite list in
2995           command reply.  Affected file silcd/command_reply.c.
2996
2997         * Fixed MOTD command reply sending.  Affected file
2998           silcd/command.c.
2999
3000         * UTF-8 decode the topic in TOPIC command reply and LIST
3001           command reply in Irssi SILC client.  Affected file is
3002           irssi/src/silc/core/client_ops.c.
3003
3004 Sun Nov  3 17:59:15 EET 2002  Pekka Riikonen <priikone@silcnet.org>
3005
3006         * Fixed the INVITE command to not crash Irssi SILC client
3007           when given without nickname argument.  AFfected file
3008           irssi/src/silc/core/client_ops.c.
3009
3010         * Fixed double free in WHOIS query on normal server when
3011           forwarding query to router.  Affected file is
3012           silcd/server_query.c.
3013
3014         * Fixed WATCH command reply handling on normal server which
3015           was missing altogether.  Affected file silcd/command_reply.c.
3016           Bug #44.
3017
3018 Sun Nov  3 00:42:05 EET 2002  Mika Boström <bostik@lut.fi>
3019
3020         * Added man-pages for silc(1), silcd(8) and silcd.conf(5).
3021           Included yodl sources for each of these. Also modified
3022           Makefile.am prototype to install these files to proper
3023           locations. Updated CREDITS. Affected file Makefile.am.pre,
3024           new files doc/*.yo, doc/silc.1, doc/silcd.conf.5,
3025           doc/silcd.8.
3026
3027 Sat Nov  2 21:26:56 EET 2002  Pekka Riikonen <priikone@silcnet.org>
3028
3029         * Added support for encrypted private key files.  Now
3030           passphrase must be provided when new key pair is created
3031           (can be empty though), and prompted when loading the
3032           private key.  Added support for loading the old-style
3033           non-encrypted private keys as well.  Affected files
3034           lib/silccrypt/silcpkcs.[ch], Irssi SILC client and
3035           SILC Server.
3036
3037         * Fixed silc_get_input to accept input on all terminals.
3038           Affected file lib/silcutil/silcutil.c.
3039
3040         * Moved the Irssi SILC client key loading and other stuff
3041           to be called after the arguments and UI is initialized.
3042           Affected file irssi/src/silc/core/silc-core.c.  Bug #31.
3043
3044         * Added -P option to Irssi SILC client which can be used
3045           to change the passphrase of the private key.  Affected
3046           file irssi/src/silc/core/silc-core.c.
3047
3048         * Added silc_change_private_key_passphrase apputil routine
3049           to lib/silcutil/silcapputil.[ch].
3050
3051 Sat Nov  2 12:53:09 EET 2002  Pekka Riikonen <priikone@silcnet.org>
3052
3053         * Fixed connection closing in client library to not crash.
3054           Moved the connection freeing totally to function
3055           silc_clinet_del_connection.  Affected file
3056           lib/silcclinet/client.c.
3057
3058 Fri Nov  1 18:57:02 EET 2002  Pekka Riikonen <priikone@silcnet.org>
3059
3060         * Changed includes/silcincludes.h to silcincludes.h.in to
3061           include configuration specific information.  The silcdefs.h
3062           is not included in to installation anymore (it's only
3063           compilation time header).
3064
3065 Fri Nov  1 10:30:26 CET 2002  Pekka Riikonen <priikone@silcnet.org>
3066
3067         * Moved the SilcClient and SilcClientConnection from client.h
3068           to the public lib/silcclient/silcclient.h.  Changed the
3069           structures a bit.
3070
3071 Thu Oct 31 22:44:07 EET 2002  Pekka Riikonen <priikone@silcnet.org>
3072
3073         * If version string in silc_clinet_alloc is NULL the library
3074           puts it automatically.  Affected file lib/silcclient/client.c.
3075
3076         * Changed the version strings from variables to #define's
3077           in includes/silcversion.h.
3078
3079 Wed Oct 30 16:17:30 CET 2002  Pekka Riikonen <priikone@silcnet.org>
3080
3081         * Added shared library complation support.
3082
3083 Tue Oct 29 21:48:55 EET 2002  Pekka Riikonen <priikone@silcnet.org>
3084
3085         * Added lib/silcutil/silcapputil.[ch] for application
3086           utility functions.  It includes routines for applications'
3087           convenience.  Added silc_create_key_pair, silc_show_public_key
3088           and silc_load_key_pair functions.
3089
3090 Tue Oct 29 17:36:44 EET 2002  Pekka Riikonen <priikone@silcnet.org>
3091
3092         * Send RESUME_CLIENT packet from router to backup routers
3093           to in resuming.  Affected file silcd/packet_receive.c.
3094
3095 Mon Oct 28 21:23:39 EET 2002  Pekka Riikonen <priikone@silcnet.org>
3096
3097         * In IDENTIFY command parsing, send all other IDs except
3098           Client IDs explicitly to router for resolving on normal
3099           server.  Also check that ID received in WHOIS command is
3100           always Client ID, others are not allowed.  Affected file
3101           silcd/server_query.c.
3102
3103         * Merged latest changes from irssi.org CVS.
3104
3105 Sun Oct 27 11:44:32 EET 2002  Pekka Riikonen <priikone@silcnet.org>
3106
3107         * Merged c0ffee's /set heartbeat patch to Irssi SILC client.
3108           Affected files irssi/src/silc/core/silc-core, silc-server.c.
3109
3110         * Fixed the heartbeat sending in Irssi SILC client.  Moved
3111           the silc_client_packet_send to silcclient.h for application
3112           usage.  Affected files lib/silcclient/client_internal.h
3113           lib/silcclient/silcclient.h.
3114
3115         * Fixed a bug in query resolving in server.  Used wrong
3116           variable in a for loop and crashed.  Affected file is
3117           silcd/server_query.c.
3118
3119         * Server constructs requested attributes only to locally
3120           connected clients.  Affected file silcd/server_query.c.
3121           Bug #36.
3122
3123         * Fixed a bug when sending resolving from router to server
3124           with requested attributes.  The constructed WHOIS command
3125           was incorrect.  Affected file silcd/server_query.c.
3126           Bug #38.
3127
3128         * Fixed Requested Attributes saving in WHOIS command reply.
3129           The length of the data buffer must be saved too.  Affected
3130           file silcd/command_reply.c.
3131
3132         * Update the client entry's servername after detaching is
3133           over.  Affected file silcd/packet_receive.c.  Bug #37.
3134
3135         * Resolve incomplete client entrys in CUMODE_CHANGE and
3136           CMODE_CHANGE notifys.  Affected file is
3137           lib/silcclient/client_notify.c.  Bug #42.
3138
3139 Thu Oct 24 12:22:35 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
3140
3141         * Fixed channel key packet processing bug on backup router
3142           during backup resuming protocol.  Affected file is
3143           silcd/packet_receive.c.
3144
3145         * Fixed memory leaks in server.  Affected files are
3146           silcd/server.c and silcd/packet_receive.c.
3147
3148         * Fixed packet decryption problem when backup router encrypted
3149           channel message with wrong key during backup resuming
3150           protocol.  Affected file silcd/packet_send.c.
3151
3152         * ROBODoc documented lib/silccrypt/silccipher.h.  A patch by
3153           Toni Willberg (toniw@iki.fi)
3154
3155         * Changed the SilcCipher context to be private.  Changed the
3156           silc_cipher_get_iv to just return pointer to the IV.  Added
3157           silc_cipher_get_name to return the name of the cipher.
3158           Fixed code all around to support these changes.  Affected
3159           files are lib/silccrypt/silccipher.[ch], client library and
3160           server.
3161
3162 Wed Oct 23 19:01:41 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
3163
3164         * Fixed unaligned access in lib/silccore/silcattrs.c.
3165
3166         * Fixed libtool linking in lib/silcsim/Makefile.am.
3167
3168         * Fixed services attribute printing.  Affected files is
3169           irssi/src/silc/core/silc-queries.c.
3170
3171 Wed Oct 23 09:51:04 CEST 2002  Pekka Riikonen <priikone@silcnet.org>
3172
3173         * Fixed a crashbug in incoming server accepting.  Affected
3174           file silcd/server.c.
3175
3176 Tue Oct 22 13:02:32 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
3177
3178         * Added automatically generated index to Toolkit Reference
3179           Manual.
3180
3181         * Added support for Postscript Toolkit Reference Manual.
3182
3183 Mon Oct 21 21:30:40 CEST 2002  Pekka Riikonen <priikone@silcnet.org>
3184
3185         * Merged DISCONNECT fix, and autoconn port fix from Irssi
3186           CVS.
3187
3188 Sun Oct 20 19:54:55 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
3189
3190         * Added 'send_events' boolean argument to the function
3191           silc_schedule_set_listen_fd which sends the set events to
3192           the application explicitly if set to TRUE.  Default action
3193           should be FALSE.  Affected file lib/silcutil/silcschedule.[ch],
3194           lib/silcclient/client_internal.h and silcd/server_internal.h.
3195
3196         * Added silc_compare_timeval to determine which time values
3197           is smaller.  Affected file lib/silcutil/silcutil.[ch].
3198
3199         * Added sort-of "Quality of Service" (QoS) support to
3200           SilcSocketConnection.  Data reception can be controlled with
3201           rate limit per second and/or read data length limit.
3202           Added silc_socket_set_qos.  Affected files are
3203           lib/silcutil/silcsockconn.[ch] and unix/silcunixsockconn.c.
3204
3205         * Added the QoS configuration to SILC Server configuration
3206           file.  Affected files are silcd/serverconfig.[ch] and
3207           server.c.
3208
3209 Sun Oct 20 14:12:24 CEST 2002  Pekka Riikonen <priikone@silcnet.org>
3210
3211         * Merged with irssi.org CVS.
3212
3213         * Failed OPER and SILCOPER authentications are now logged.
3214           Affected file silcd/command.c.  Bugs #25.
3215
3216 Sat Oct 19 13:32:15 CEST 2002  Pekka Riikonen <priikone@silcnet.org>
3217
3218         * ROBODoc documented lib/silcutil/silcbuffer.h and
3219           lib/silcutil/silcdlist.h.  Patch by Ville Räsänen
3220           <ville.rasanen@iki.fi>.
3221
3222 Fri Oct 18 10:51:04 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
3223
3224         * Added support for auto-passphrase authentication from the
3225           config file during connecting which was not implemented
3226           yet.  Affected file irssi/src/silc/core/client_ops.c.
3227
3228         * Fixed a bug in authentication protocol failure handling which
3229           was processing wrong callback context.  Affected files
3230           are lib/silcclient/client.c and protocol.c.
3231
3232         * Fixed the /ATTR allow off to actually work.  Affected file
3233           is irssi/src/silc/core/silc-queries.c.
3234
3235         * Fixed the /ATTR -del to work.  Affected file is
3236           irssi/src/silc/core/silc-queries.c.
3237
3238 Thu Oct 17 23:45:12 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
3239
3240         * Fixed string formatting crashbug in lib/silccore/silcattrs.c.
3241
3242         * Fixed mask attribute adding in Irssi SILC client.  Affected
3243           file irssi/src/silc/core/silc-queries.c.
3244
3245 Thu Oct 17 16:40:39 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
3246
3247         * Added support for saving the requested attributes in
3248           WHOIS to directory.  Affected file is
3249           irssi/src/silc/core/silc-queries.c.
3250
3251 Wed Oct 16 17:40:56 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
3252
3253         * Added support for parsing VCard fields that do not have
3254           the TYPE= for types.  Affected file lib/silcutil/silcvcard.c.
3255
3256         * Fixed a double free bug in hash table foreach function
3257           if the entry was deleted in the foreach callback.  Affected
3258           file lib/silcutil/silchashtable.c.
3259
3260 Tue Oct 15 18:05:24 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
3261
3262         * Added silc_attribute_get_verify_data to return the signature
3263           verification data for either user digital signature or
3264           server digital signature in Requested Attributes.  Affected
3265           files are lib/silccore/silcattrs.[ch].
3266
3267         * Added silc_vcard_alloc which is used to allocated dynamic
3268           SilcVCard context.  The silc_vcard_free now checks whether
3269           the context is dynamically allocated or not.  Affected files
3270           are lib/silcutil/silcvcard.[ch].
3271
3272 Mon Oct 14 17:55:44 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
3273
3274         * Periodically remove the NOATTR status from client entry
3275           so that the client may take the attributes in use even after
3276           server has resolved them unsuccessfully earlier.  Affected
3277           file silcd/server_query.c and idlist.h.
3278
3279         * Moved sha1hash and md5hash from client->internal to
3280           SilcClient for application usage.  Affected files are
3281           lib/silcclient/client.h and client_internal.h.
3282
3283         * Fixed attribute encoding and decoding bugs.  Affected
3284           files lib/silccore/silcattrs.[ch].
3285
3286         * Added ATTR command to Irssi SILC Client which is used to
3287           manage user's Requested Attributes sending and values for
3288           WHOIS command.  Affected files around Irssi SILC client.
3289
3290 Mon Oct 14 14:33:54 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
3291
3292         * Added silc_buffer_strformat which can be used to format
3293           strings into a buffer which size is automatically increased.
3294           Affected file lib/silcutil/silcbuffmt.[ch].
3295
3296         * Added implementation of VCard (RFC 2426) which can be used
3297           as part of Requested Attributes in WHOIS command.  Affected
3298           file lib/silcutil/silcvcard.[ch].
3299
3300 Fri Oct 11 23:52:17 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
3301
3302         * Some strncat -> silc_strncat changes our the core and
3303           client library.
3304
3305         * Added SILC_SKE_STATUS_SIGNATURE_ERROR and OUT_OF_MEMORY
3306           errors.  Added better error printing to SKE library.
3307           Affected files lib/silcske/silcske.c, silcske_status.h and
3308           payload.c.
3309
3310         * Save the PKCS key length even if only private key is set to
3311           SilcPKCS.  Affected file lib/silccrypt/silcpkcs.[ch] and rsa.c.
3312
3313         * Fixed the usage of silc_pkcs_get_key_len since it returns the
3314           length in bits not in bytes.  Affected files are
3315           lib/silcske/silcske.c, lib/silccore/silcauth.c and
3316           silcd/server_query.c.
3317
3318 Wed Oct  9 17:22:57 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
3319
3320         * Added silc_attribute_payload_encode_data to directly encode
3321           the data into the attributes buffer.  Renamed function
3322           silc_attribute_payload_parse_list to silc_attribute_payload_parse.
3323           Affected files are lib/silccore/silcattrs.[ch].
3324
3325         * silc_hash_table_find_foreach calls the foreach function now
3326           once even if the nothing was found with context set to NULL.
3327           Affected file lib/silcutil/silchashtable.[ch].
3328
3329         * Remove the RESOLVING flag from client entry after received
3330           the Requested Attributes from the client.  Fixed memory leak
3331           in client entry freeing.  Affected files silcd/server_query.c
3332           and idlist.c.
3333
3334         * Added Requested Attributes support into SILC Client Library.
3335           It is not able to send requested attributes in WHOIS command,
3336           and also receive and process requested attributes.  Added
3337           silc_client_attribute_[add|del] and silc_client_attributes_get
3338           functions.  Added also `ignore_requested_attributes' to the
3339           SilcClientParams to not use attributes in client.  Affected
3340           files are lib/silcclient/command.c, client_attrs.[ch],
3341           silcclient.h, client_internal and client.[ch].
3342
3343         * Changed the silc_client_get_client_by_id to support Requested
3344           Attributes, it takes them as argument now.  Affected file
3345           is lib/silcclient/silcclient.h, and idlist.c.
3346
3347         * Added -details option to WHOIS command in Irssi SILC Client
3348           to support the requested attributes.  By default it requests
3349           all attributes.  Affected file lib/silcclient/command.c and
3350           irssi/doc/help/in/whois.in.
3351
3352 Tue Oct  8 17:58:28 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
3353
3354         * Add also SERVICE attribute for server-constructed attribute
3355           data.  Also digitally sign the attributes and add
3356           SERVER_DIGITAL_SIGNATURE attribute.  Affected file is
3357           silcd/server_query.c.
3358
3359 Mon Oct  7 18:25:35 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
3360
3361         * Changed the silc_attribute_payload_encode to support list
3362           of attributes (function may be called several times to add
3363           a new attribute).  Removed the silc_attribute_payload_encode_list
3364           function.  The encoding function now also automatically encodes
3365           the data, so the caller does not need to do that.  Affected
3366           files lib/silccore/silcattrs.[ch].
3367
3368         * Added support for replying on behalf of the user to the
3369           Requested Attributes in WHOIS command in the server.  Affected
3370           file silcd/server_query.c.
3371
3372         * SILC_NOT_IMPLEMENTED macro use SILC_LOG_INFO now instead of
3373           SILC_LOG_DEBUG.  Affected file lib/silcutil/silclog.h.
3374
3375 Sun Oct  6 16:48:32 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
3376
3377         * Don't swtich to become primary router if we are backup if
3378           decryption error has occurred.  Affected file silcd/server.c.
3379
3380         * Fixed a bug in backup router IP address comparison in
3381           silc_server_backup_get.
3382
3383           Save now also the port of the server/router and use that
3384           in comparison as well.  Affected file silcd/server_backup.c.
3385
3386         * Normal server now reconnects to backup router automatically
3387           if connection is lost to it.  Affected file silcd/server.c.
3388
3389 Thu Sep 26 13:51:02 CEST 2002  Pekka Riikonen <priikone@silcnet.org>
3390
3391         * If packet processing fails (like integrity check fails)
3392           the connection is closed now.  Affected files are
3393           lib/silccore/silcpacket.c and silcd/server.c.
3394
3395 Mon Sep 23 10:59:39 CEST 2002  Pekka Riikonen <priikone@silcnet.org>
3396
3397         * Fixed double free in RSA public key set function
3398           silc_rsa_set_public_key.  Affected file lib/silccrypt/rsa.c.
3399           Bug #29.
3400
3401 Sun Sep 22 14:54:05 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
3402
3403         * Rewrote WHOIS, WHOWAS and IDENTIFY commands in the server.
3404           Added server_query.[ch] which provides one interface for
3405           querying information using all three commands.
3406
3407         * Changed all "typedef unsigned char" in core library to
3408           "typedef SilcUInt8".
3409
3410 Sat Sep 21 21:36:45 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
3411
3412         * Added silc_strncat into lib/silcutil/silcstrutil.[ch].
3413
3414         * Renamed silc_server_get_client_resolve to
3415           silc_server_query_resolve and moved to server_query.[ch].
3416
3417 Wed Sep 18 18:28:04 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
3418
3419         * Resumed client packet handling from server put the resumed
3420           client on wrong list on router and caused the client not
3421           be present on the network anymore.  Now fixed to put the
3422           client to correct list.  Affected file silcd/packet_receive.c.
3423
3424 Wed Sep 18 15:13:48 CEST 2002  Johnny Mnemonic <johnny@themnemonic.org>
3425
3426         * Various cleanup in error message output in config parsing code
3427           and in server init code.  Fixed error log files containing
3428           too many newlines ('\n') in some situations.  Affected files are
3429           silcd/serverconfig.c, silcd/silcd.c, and silcd/server.c.
3430
3431 Wed Sep 18 10:51:23 CEST 2002  Pekka Riikonen <priikone@silcnet.org>
3432
3433         * Use the reverse lookupped hostname in client internals
3434           instead of one user provided us as remote server name.
3435           Affected file lib/silcclient/client.c.
3436
3437 Mon Sep 16 12:02:54 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
3438
3439         * Added 'app_context' to silc_schedule_init.  It is an
3440           application specific context that is delivered to application
3441           in task callback functions.  Affected files are
3442           lib/silcutil/silcutil.[ch].
3443
3444         * The hb_context in SilcSocketConnection is not freed
3445           automatically anymore (application must free it).  Freeing
3446           it automatic is inconsistent.  Affected files are
3447           lib/silcutil/silcsockconn.[ch].
3448
3449 Sun Sep 15 22:16:19 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
3450
3451         * Added support for removing explicitly added client connections
3452           in rehash and closing the client connections if they were
3453           unconfigured in the rehash.  Affected file silcd/server.c.
3454
3455         * Added support for aborting automatically pending commands
3456           that never receives the reply (to avoid memory leaks).
3457           Added also silc_server_command_pending_timed to set the
3458           specific timeout for pending command.  Affected files are
3459           silcd/command[_reply].[ch].
3460
3461         * Added SILC_STATUS_ERR_TIMEDOUT status.  Updated protocol
3462           specs and lib/silccore/silcstatus.h.
3463
3464 Sun Sep 15 12:25:10 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
3465
3466         * Changed the silc_get_time to accept time value as argument
3467           or if zero is sent return current local time.  Affected
3468           file lib/silcutil/silcutil.[ch].
3469
3470         * Added STATS command to client library and Irssi SILC client.
3471           Patch provided by Ville Räsänen <ville.rasanen@iki.fi>.
3472
3473 Wed Sep 11 09:22:00 CEST 2002  Pekka Riikonen <priikone@silcnet.org>
3474
3475         * Assure that channel key is set before sending it.  May
3476           crash server otherwise.  Affected file silcd/packet_send.c.
3477
3478 Tue Sep 10 09:50:08 CEST 2002  Pekka Riikonen <priikone@silcnet.org>
3479
3480         * Assure that endless loop cannot happen with detached client
3481           resolving on normal server.  Added idlist status
3482           SILC_IDLIST_STATUS_RESUME_RES.   Affected files are
3483           silcd/idlist.h and silcd/packet_receive.c.
3484
3485 Mon Sep  9 12:18:18 CEST 2002  Pekka Riikonen <priikone@silcnet.org>
3486
3487         * Incoming file transfer request cannot use same session as
3488           the sending session.  This can happen when sending file to
3489           yourself.  Crashed the client on quit.  Affected file
3490           lib/silcclient/client_ftp.c.  Bug #24.
3491
3492 Sun Sep  8 18:39:25 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
3493
3494         * Implemented the draft-riikonen-precense-attrs draft and
3495           the Attribute Payload into the lib/silccore/silcattrs.[ch].
3496
3497 Sun Sep  8 13:13:44 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
3498
3499         * Distribute the SERVER_SIGNOFF notify also to local backup
3500           routers from the primary router.  The backup router may not
3501           have the signing of local server directly connected and need
3502           to know about the signoff.  Affected file silcd/server_util.c.
3503
3504         * Use the primary router as the origin of the locally connected
3505           server when it is disconnecting from the backup router since
3506           that's where it really is coming from.  Now the clients from
3507           the disconnecting server are removed correctly and "shadow"
3508           clients are not left to the backup router.  Affected file
3509           silcd/server.c.
3510
3511 Sat Sep  7 22:26:50 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
3512
3513         * If normal server is standalone and found existing but disabled
3514           channel, do not re-create the channel since it creates
3515           duplicate same channels.  Affected file silcd/server.c.
3516
3517         * Added anonymous client connections support to server.  New
3518           "anonymous" configuration option to ConnectionParams section
3519           added.  If set to true, the username and hostname information
3520           of the client will be scrambled and anonymous user mode is
3521           set automatically to the user.  Affected files are
3522           silcd/serverconfig.[ch], silcd/packet_receive.c and server.c.
3523
3524 Sat Sep  7 16:02:09 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
3525
3526         * In JOIN notify handling, mark that the cache entry of the
3527           client cannot be expired.  Can cause crashes on normal
3528           server (asserts client->channels).  Affected file is
3529           silcd/packet_receive.c.
3530
3531         * From now on distribution versions are used as protocol versions
3532           instead of by default using the Toolkit base version as protocol
3533           version.  Affected file prepare.
3534
3535         * Do not set the locally resolved hostname for local client
3536           entry but take what server sends.  This way the real hostname
3537           is showed in WHOIS for yourself.  Affected file is
3538           lib/silcclient/idlist.c and lib/silcclient/client.c.
3539
3540         * Resolve local info with IDENTIFY when connecting to server.y
3541
3542 Sat Sep  7 14:22:43 CEST 2002 Lubomir Sedlacik <salo@silcnet.org>
3543
3544         * Rewritten check for POSIX threads.  Use --with-pthreads[=DIR]
3545           for implied search (not needed on platforms which has native
3546           pthreads library).  Use --without-pthreads to disable threads.
3547           Affected file is configure.in.pre
3548
3549         * Fixed --with-iconv on platforms which need to bypass (broken)
3550           native iconv().  Affected file is configure.in.pre
3551
3552 Sat Sep  7 15:08:13 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
3553
3554         * Moved -C option parsing in Irssi SILC client at same time
3555           as other options.  The UI was initialized earlier and caused
3556           problems on command line.  Bug #16.  Affected file is
3557           irssi/src/silc/core/silc-core.c.
3558
3559 Mon Sep  2 23:00:30 CEST 2002 Johnny Mnemonic <johnny@themnemonic.org>
3560
3561         * Added global variable silc_log_timestamp that tells silclog
3562           wether to print or not the timestamp in the logging files.
3563           Affected file lib/silcutil/silclog.[ch].
3564
3565         * Added silcd configuration option Timestamp in the Logging
3566           section.  Affected file silcd/serverconfig.[ch],
3567           doc/example_silcd.conf.in.
3568
3569 Fri Aug 30 08:57:33 CEST 2002 Pekka Riikonen <priikone@silcnet.org>
3570
3571         * Fixed fingerprint checking to check for entirely empty
3572           fingerprint instead of two first bytes when determining
3573           if it is set.  Bug #18.  Affected file silcd/command.c.
3574
3575         * Fixed duplicate PKCS name registering to not allow it.
3576           Bugs #17.  Affected file lib/silccrypt/silcpkcs.c.
3577
3578 Sun Aug 25 08:02:04 CEST 2002 Lubomir Sedlacik <salo@silcnet.org>
3579
3580         * Conditionalize non-gcc compiler optimizations for various
3581           platforms, enable those commented out.  Cleanups.
3582           Affected file lib/silcmath/mpi/configure.in
3583
3584 Sat Aug 24 15:11:32 EEST 2002 Timo Sirainen <tss@iki.fi>
3585
3586         * silc_rng_exec_command() left zombie processes if command
3587           didn't generate any output.  Affected file
3588           lib/silccrypt/silcrng.c
3589
3590 Fri Aug 23 22:05:44 CEST 2002 Lubomir Sedlacik <salo@silcnet.org>
3591
3592         * Rewrote iconv checking, introduce --with-iconv for systems
3593           which rely on libiconv.  Check if iconv() provided by libc
3594           is good enough, otherwise demand libiconv.  Affected file
3595           configure.in.pre
3596
3597 Fri Aug 23 07:10:52 CEST 2002 Lubomir Sedlacik <salo@silcnet.org>
3598
3599         * Search for ldopen() also in libc.  This enables SIM support
3600           on *BSD systems.  Based on patch from Alex Zepeda.  Affected
3601           file configure.in.pre
3602
3603 Sun Aug 18 04:44:30 CEST 2002 Lubomir Sedlacik <salo@silcnet.org>
3604
3605         * Don't call AM_CONDITIONAL conditonally for SILC_THREADS.
3606           This fixes prepare on *BSD systems.  Affected file
3607           configure.in.pre
3608
3609 Sun Aug  4 15:55:40 CEST 2002 Pekka Riikonen <priikone@silcnet.org>
3610
3611         * More fixed for not having purge timeout for global clients
3612           that are on channel.  Affected files silcd/command_reply.c
3613           and server_util.c.
3614
3615         * Fixed the rekey protocol to work with backup router connections.
3616           Rekey packets are now allowed on disabled connections as
3617           well.  Affected files silcd/packet_send.c and server.c.
3618
3619         * Do not switch to be as backup router when shutting down and
3620           closing the primary connection.  Affected file silcd/server.c.
3621
3622         * Fixed memory leaks in backup router deleting.  Added
3623           silc_server_backup_free to free all data during shutdown of
3624           server.  Affected files silcd/server_backup.[ch].
3625
3626 Sun Jul 14 21:33:32 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
3627
3628         * Do not process commands if the sock->user_data is NULL.
3629           Affected file silcd/command.c.
3630
3631 Tue Jul  9 19:03:11 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
3632
3633         * Fixed buffer overflow and security problems (loosing bits
3634           in CFB encryption) in SILC RNG.  Problems reported by
3635           Markku-Juhani O. Saarinen <mjos@saturn.tcs.hut.fi>.
3636
3637 Sun Jul  7 13:10:01 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
3638
3639         * Added yet more checks that client is not expired on global
3640           list if it is on channels.  Affected file is
3641           silcd/command_reply.c.
3642
3643 Sat Jul  6 11:45:11 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
3644
3645         * Merged c0ffee's MIME signal patch which adds support for
3646           sending also MIME messages in Irssi SILC Client, and handling
3647           received MIME messages in a signal (and perhaps doing something
3648           to non-textual MIME messages).
3649
3650 Sun Jun 30 01:30:22 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
3651
3652         * Fixed pending command deletion in server and client library
3653           to check the whole list instead of breaking after first found.
3654           The affected files are silcd/command.[ch] and
3655           lib/silcclient/command.[ch].
3656
3657 Sat Jun 29 17:40:12 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
3658
3659         * Return NO_SUCH_CHANNEL error in USERS for channel that is
3660           secret or private, otherwise it's possible to find out
3661           whether a secret channel exists or not.  Affected file
3662           silcd/command.c.
3663
3664         * If CMODE change fails during the mode setting, assure that
3665           the old mode mask is set for the channel back.  Affected
3666           file silcd/command.c.
3667
3668         * Fixed passphrase saving on +a channel on normal server
3669           after successful JOIN command.  Affected file silcd/command.c.
3670
3671 Fri Jun 28 11:53:25 CEST 2002 Pekka Riikonen <priikone@silcnet.org>
3672
3673         * Remove server/router operator privileges in DETACH command,
3674           since it's possible to resume to server where these
3675           privileges would not be allowed for the client.  Affected
3676           file silcd/command.c.
3677
3678         * Do not set to wait for backup in rehash of the server.
3679           Affected file silcd/server.c.
3680
3681         * Do not check listener sockets when counting how many
3682           socket connections we have.  Affected file is
3683           silcd/server_util.c.
3684
3685         * Do not announce disconnected clients that are remaining
3686           in history (for WHOWAS).  This is because SIGNOFF notify
3687           for these has been sent earlier already.  Affected file
3688           silcd/server.c.
3689
3690 Thu Jun 27 20:07:27 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
3691
3692         * Buffer overflow with CUMODE command's mode->mode character
3693           conversion.  Reported by Ville Räsänen.  Affected file
3694           lib/silcutil/silcutil.c.
3695
3696 Thu Jun 27 16:54:33 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
3697
3698         * Allow heartbeat packets to go disabled connections anyway.
3699           Affected files silcd/server.c and silcd/packet_send.c.
3700
3701         * Do not broadcast New Channel packets with List flag set
3702           in the packet to backup routers.  The router must check
3703           for the correctness of the packets before sending them.
3704           It is possible that router will have enforce Channel ID
3705           change and this would cause desync in the backup router.
3706           Affected file silcd/packet_receive.c.
3707
3708         * Remove SILC_PACKET_FLAG_LIST from the temp packets that
3709           are handled in list parsing.  They are not list packets
3710           anymore.  Affected file silcd/packet_receive.c.
3711
3712 Thu Jun 27 11:27:07 CEST 2002 Pekka Riikonen <priikone@silcnet.org>
3713
3714         * Stop waiting for backup router through the timeout, not
3715           directly after backup router has arrived.  Affected file
3716           silcd/server.c.
3717
3718         * Do not re-create channel keys and send them when removing
3719           clients in server shutdown.  Affected files are
3720           silcd/server_internal.h and silcd/server_util.c.
3721
3722         * Notify distribution to backup routers was missing from
3723           the silc_server_send_notify_dest function which caused
3724           desyncing problems with backup router.  Affected file is
3725           silcd/packet_send.c.
3726
3727         * The client's channel removing was working wrong on
3728           backup router.  It assumed that it doesn't know global
3729           information but backup router does know.  For this reason
3730           it could remove channel when it wasn't supposed to do that.
3731           Affected file silcd/server.c and silcd/server_util.c.
3732
3733 Wed Jun 26 15:14:12 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
3734
3735         * Stop for a couple seconds after badkup router has become
3736           primary router.  Affected file silcd/server.c.
3737
3738         * Added silc_server_remove_servers_by_server, which is used
3739           to remove servers originated from some other server.  Also
3740           clients of those servers can be removed too.  Affected file
3741           silcd/server_util.[ch].
3742
3743         * When removing clients after a server has signed of remove
3744           also all servers behind that server (unless they are known
3745           to be available locally), and send SERVER_SIGNOFF for each
3746           of the server separately.  Also the signed off clients are
3747           sent now separately per signed off server.  The affected files
3748           are silcd/server.c and silcd/server_util.[ch].
3749
3750         * All servers added with silc_idlist_add_server must always
3751           have both "router" and "connection" pointers set.  Otherwise,
3752           bad server entries may be left around in the cache.
3753           Affected file silcd/command_reply.c.
3754
3755         * Do not create the channel key in NEW_CHANNEL packet
3756           processing if the channel is empty.  Affected file
3757           silcd/packet_receive.c.
3758
3759         * Completed backup router support for standalone routers.
3760           Supports also servers in the cell that do not use the backup
3761           at all.
3762
3763 Wed Jun 26 10:38:11 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
3764
3765         * Fixed a bug in silc_string_regexify which did not add '^'
3766           at the start of each string, and thus the matching was
3767           not explicit.  For example ban list iikone@*!*@* would
3768           match also "priikone", which is wrong, it would have to be
3769           *iikone@*!*@* to match also "priikone".  Affected
3770           file lib/silcutil/unix/silcunixutil.c.
3771
3772 Tue Jun 25 18:47:39 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
3773
3774         * Enable all local server connections before updating client
3775           caches when we've become backup router.  Otherwise, signoff
3776           packets may not reach the clients.  Affected files are
3777           silcd/server.c and silcd/server_util.[ch].
3778
3779         * Fixed a bug in version string parsing which could crash
3780           the program with specially formatted version string.
3781           Bug reported and patch provided by Ville Räsänen.  Affected
3782           file lib/silcutil/silcutil.c.
3783
3784         * Handle the disconnection immediately when DISCONNECT
3785           packet is received in server.  Affected file silcd/server.c.
3786
3787         * Primary router now waits a short time (10 seconds) for
3788           backup router connection before accepting any other
3789           connection (except local).  Affected file silcd/server.c,
3790           serverconfig.[ch].
3791
3792         * Fixed a crash in client libary in NICK_CHANGE notify when
3793           NICK_CHANGE arrived for client entry we are resolving
3794           currently.  Affected file lib/silcclient/client_notify.c.
3795
3796         * Call the sconn->callback completion even if error had
3797           occurred.  Start reconnecting always if connection to
3798           primary router fails during backup router protocol.
3799           Affected files silcd/server.c and server_backup.c.
3800
3801 Mon Jun 24 17:47:52 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
3802
3803         * Added functions silc_server_send_opers and
3804           silc_server_send_opers_notify to send packets stricly
3805           to operators.  Added macro SILC_SERVER_SEND_OPERS macro
3806           to send variable argument notify to operators.
3807           Affected files silcd/packet_send.[ch] and silcd/server.h.
3808
3809         * Removed UMODE rights checking with UMODE_CHANGE notify.
3810           Affected file silcd/packet_receive.c.
3811
3812         * Server/router operator now receives notify when network
3813           switches to backup router and when it resumes the use of
3814           primary router.  Affected file silcd/server.c and
3815           silcd/server_backup.c.
3816
3817         * Fixed the updating of client information after backup
3818           resuming protocol is over; update all except local clients
3819           to the new primary router.  The affected file is
3820           silcd/server_util.c.
3821
3822         * Added support for closing active connections in rehash
3823           that were unconfigured by the user.  Supports currently
3824           closing server and router connections.  Affected file
3825           silcd/server.c.
3826
3827         * Rewrote some SILC_LOG_DEBUG's in silcd/server_backup.c.
3828
3829 Sun Jun 23 17:32:31 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
3830
3831         * Don't do SILC_STRING_LANGUAGE encoding if the outbuffer
3832           is NULL since seems that on some platforms NULL is allowed
3833           and on some it's not.  Fallback encoding is used instead.
3834           Affected file lib/silcutil/silcstrutil.c.
3835
3836         * Fixed statistics updating for incoming server connection
3837           which could cause problems when re-connecting.  Affected
3838           file silcd/server.c.
3839
3840         * Preliminary backup router support for standalone router
3841           added.  Affected files in silcd/.
3842
3843         * Mark server connections in backup router disabled before
3844           and after backup protocol.  Affected file is
3845           silcd/server_backup.c.
3846
3847         * Added support for reconnecting to remote server connection
3848           even if the protocol fails, and if the configuration wants
3849           us to keep trying to connect anyway.
3850
3851           Server connection is not allowed to backup router if
3852           backup router does not have connection to primary router yet.
3853
3854           Affected file is silcd/server.c.
3855
3856 Sat Jun 22 21:34:59 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
3857
3858         * Added silc_client_udpate_server function to update changed
3859           server info.  Affected file lib/silcclient/idlist.[ch].
3860
3861         * Added check for server entries that are being resolved when
3862           notify is received.  If being resolved, handle the received
3863           notify only after it's resolved so that all notifys are
3864           handled in same order as received from the server.
3865
3866           Added similar resolver check to channel entries.  Every
3867           notify that cause resolving of any information that affects
3868           channel entry marks the channel entry in waiting state.
3869           After whatever resolving is over the waiters are signalled
3870           and only then the notifys are handled in the same order
3871           as delivered from the server.
3872
3873           Affected files are lib/silcclient/idlist.[ch], and
3874           client_notify.c.
3875
3876         * Fixed KILLED notify handling in normal server.  Affected
3877           file silcd/packet_receive.c.
3878
3879         * Added SILC_IDLIST_STATUS_LOCAL which indicates that entry
3880           is locally connected, or was locally connected (but may
3881           be detached and connection is not active).  Added also
3882           SILC_IS_LOCAL for checking this status.  Affected files
3883           silcd/idlist.h, silcd/packet_receive.c, silcd/server_util.c,
3884           silcd/server.c and silcd/server_internal.h.
3885
3886 Sat Jun 22 17:06:58 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
3887
3888         * Don't send or handle TOPIC_SET if topic is already set and
3889           is same as being set.  Affected files silcd/command.c and
3890           silcd/packet_receive.c.
3891
3892         * Fixed CMODE change rights checking to work correctly when
3893           removing modes by operator.  Affected file is
3894           silcd/server_util.c.
3895
3896         * Fixed some handling with New Channel packet in router and
3897           fixed some CMODE_CHANGE notify handling in server and router.
3898           Affected file is silcd/packet_receive.c.
3899
3900         * Changed "disconnect" client operation to include the
3901           reason of the disconnection and optional disconnection
3902           message.  Affected file lib/silcclient/silcclient.h.
3903
3904         * Made the compilation of lib/contrib/ stuff conditional.
3905           Affected files configure.in.pre, lib/contrib/Makefile.am.
3906
3907 Sat Jun 22 12:49:21 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
3908
3909         * All CMODE_CHANGE and CUMODE_CHANGE notifys are now sent back
3910           to the sender of the notify too, to avoid situation where two
3911           notifys are in the network at the same time going to oppsite
3912           directions.  Affected file silcd/packet_receice.c.
3913
3914 Fri Jun 21 10:00:32 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
3915
3916         * Delete the client from channel even if the cilent->id is
3917           NULL.  It was possible that client was deleted without
3918           removing from channels (theoretically at least).  Affected
3919           file silcd/server.c and silcd/server_util.c.
3920
3921         * Free the client data too when resuming is not successful.
3922           Affected file silcd/packet_receive.c.
3923
3924         * Merged some code from c0ffee's silc-plugin.  Affected files
3925           irssi/src/silc/core/silc-channels.c and silc-expandos.c.
3926
3927         * Added SILC_PRIMARY_ROUTE and SILC_BROADXAST macros to
3928           silcd/server_internal.h.  SILC_PRIMARY_ROUTE Returns pointer
3929           to the primary router connection, the other one returns
3930           TRUE if packet must be broadcasted to network.
3931
3932         * All notifys that are destined to primary router (to network)
3933           are now automatically sent to backup routers even if the
3934           router is standalone (and has backup router).  Affected files
3935           in silcd/.
3936
3937         * Added --without-irssi and --without-silcd configuration
3938           options for disabling the compilation of these applications.
3939           Affected file configure.in.pre and prepare.
3940
3941 Thu Jun 20 13:48:15 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
3942
3943         * Implemented SILC_STRING_BMP and SILC_STRING_UNIVERSAL for
3944           UTF-8 encoding and decoding.  Added also new encodings
3945           SILC_STRING_BMP_LSB and SILC_STRING_UNIVERSAL_LSB.
3946
3947           Added also SILC_STRING_LANGUAGE which is language and charset
3948           specific encoder and decoer for those platforms that support
3949           iconv().  It can convert the UTF-8 to and from the locale
3950           specific character set.
3951
3952           Affected file lib/silcutil/silcstrutil.[ch].
3953
3954         * Added macro SILC_NOT_IMPLEMENTED to lib/silcutil/silclog.h.
3955
3956         * Added function silc_get_command_name to the file
3957           lib/silcutil/silcutil.[ch].
3958
3959         * Improved the server debug output a bit.  Affected files are
3960           in silcd/.
3961
3962 Wed Jun 19 17:46:31 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
3963
3964         * Save the channel passphrase when received succesful JOIN
3965           command reply from router, on normal server.  Otherwise
3966           joinig +a channels from normal server is not possible.
3967           Affected file silcd/command.c.
3968
3969         * Fixed a bug in TOPIC_SET notify handling.  The notifier
3970           may be other than client too, like server or channel.
3971           It expected it to always be only client and ignored the
3972           notify.  Affected file silcd/packet_recieve.c.
3973
3974         * Removed some (unnecessary) debug printing from
3975           lib/silccore/silcid.c and lib/silccore/silcargument.c.
3976
3977         * Do not force CMODE_CHANGE when server is announcing new
3978           channel.
3979
3980           Router announces stuff only after server reannounces channel
3981           after CHANNEL_CHANGE notify.
3982
3983           These fixes optimizes the announcing procedure, and perhaps
3984           fixes some problems too.  Affected file silcd/packet_receive.c.
3985
3986         * Fixed SERVER_SIGNOFF sending to local clients.  It was
3987           totally broken and sent the notify to all local clients,
3988           instead of only to those that was on same channel as the
3989           signing off clients.  Affected file silcd/server_util.c.
3990
3991         * Added -D option to server.  It can be used to give debug
3992           level.  The levels are from 0 - 99, and are predefined for
3993           smooth server debugging.  (see silcd.c for the predefined
3994           levels).  Affected file silcd/server.c.
3995
3996 Wed Jun 19 16:01:51 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
3997
3998         * Fixed a bug in Irssi SILC client to close the connection
3999           properly when disconnecting from server.  Affected file
4000           irssi/src/silc/core/client_ops.c.
4001
4002 Tue Jun 18 17:14:52 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
4003
4004         * When authenticating as founder during JOIN command, check
4005           that the one authenticating becomes the only founder on the
4006           channel.  Affected file silcd/command.c.
4007
4008         * Better checking for founder mode setting when CUMODE_CHANGE
4009           notify is received.  Affected file silcd/packet_receive.c.
4010
4011         * Close all connections when shutting down the server by sending
4012           DISCONNECT packet.  Close all listeners too when shutting
4013           down the server.  Affected file silcd/server.c.
4014
4015         * Handle DISCONNECT packet correctly in client library by
4016           calling the "disconnect" client operation.  Affected file
4017           lib/silcclient/client.c.
4018
4019         * Handle local errors correctly during resuming.  Affected
4020           file lib/silcclient/client.c.
4021
4022 Tue Jun 18 10:26:27 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
4023
4024         * The log file is not dupped internally anymore in
4025           lib/silcutil/silclog.c.  Fixed memory leaks too.
4026
4027         * The scheduler now dispatches all pending timeout tasks
4028           when it is uninitialized with silc_schedule_uninit.
4029           Affected file lib/silcutil/silcschedule.c.
4030
4031 Mon Jun 17 21:30:55 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
4032
4033         * Added --enable-stack-trace option to configure.  Added
4034           memory allocation stack trace support.  Added files
4035           lib/silcutil/stacktrace.[ch].  Affected files are
4036           lib/silcutil/silcmemory.[ch].
4037
4038         * Fixed memory leaks from libraries and server.  Affected
4039           files around the tree.
4040
4041         * Reverted back a fix made to CUMODE which broke it.
4042           Affected file silcd/command.c.
4043
4044 Sun Jun 16 11:49:45 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
4045
4046         * Added SILC_MESSAGE_FLAG_UTF8 to the protocol specs and the
4047           core library, and implemented it.  All textual messages SHOULD
4048           use this flag and the message MUST be UTF-8 encoded.
4049           All text messages sent by Irssi SILC client are now UTF-8
4050           encoded (regardless whether the terminal supports UTF-8 or not).
4051           Affected files are lib/silccore/silcchannel.h,
4052           irssi/src/silc/core/silc-servers.c, silc-channels.c and
4053           client_ops.c.
4054
4055 Sat Jun 15 18:23:39 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
4056
4057         * Added lots of new statistics updating that was missing from
4058           the server and router code.  Affected files in silcd/.
4059
4060         * Sending SIGUSR1 signal to server now dumps the current
4061           server statistics into /tmp directory.  Affected file is
4062           silcd/silcd.c.
4063
4064         * ROBODoc documented the lib/silccrypt/silchash.h.  Improved
4065           the SILC Hash Interface also.  Added new functions
4066           silc_hash_get_name, silc_hash_init, silc_hash_update and
4067           silc_hash_final.  Affected file lib/silccrypt/silchash.c.
4068
4069 Sat Jun 15 12:09:14 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
4070
4071         * Added some better info printing for client during connecting.
4072           Affected file silcd/server_util.c.
4073
4074         * Implemented the SILC_CHANNEL_UMODE_QUIET mode that can be used
4075           to silence a user on a channel.  Affected files are
4076           lib/silcclient/client_channel.c, irssi/src/silc/core/client_ops.c,
4077           irssi/src/fe-common/silc/module-formats.[ch], silcd/command.c
4078           and silcd/packet_receive.c.
4079
4080         * Fixed a fatal bug in handling of malformed command payload.
4081           Affected file silcd/command.c.
4082
4083         * Fixed a double free when announcing channel users to router.
4084           Affected file silcd/server.c.
4085
4086         * After successful authentication to channel founder mode, check
4087           that there isn't anyone else with founder mode on the channel.
4088           The one that authenticated will become founder and anyone
4089           else is demoted.  Affected file silcd/command.c.
4090
4091         * Added error printing of any error that has occurred during
4092           any command in client library.  Affected file is
4093           irssi/src/silc/core/client_ops.c.
4094
4095         * Removed some error printing from the client library and left
4096           it for the application to worry (from the error status it
4097           receives in 'command' client operation.  Affected file is
4098           lib/silcclient/command.c.
4099
4100 Fri Jun 14 22:59:02 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
4101
4102         * Added new status types KEY_AGREEMENT_ALREADY_STARTED and
4103           KEY_AGREEMENT_SELF_DENIED to lib/silcclient/silcclient.h.
4104           Starting key agreement with itself is denied.  Affected file
4105           is lib/silcclient/client_keyagr.c.
4106
4107         * Fixed some error checkings from the SFTP library which caused
4108           misbehaviour.  Affected files are lib/silcsftp/sftp_client.c
4109           and lib/silcsftp/sftp_util.c.
4110
4111         * Added new "debug" and "debug_string" settings to Irssi SILC
4112           client which can be used to print runtime debugging on the
4113           Irssi's screen.  Available when compiled with --enable-debug
4114           option.  Affected file irssi/src/silc/core/silc-core.c.
4115
4116 Tue Jun 11 16:36:02 CEST 2002 Johnny Mnemonic <johnny@themnemonic.org>
4117
4118         * Fixed a missing variadic parameter in a function call that
4119           caused server crash when a non-allowed connection arrived.
4120           Reported by Richard Becker.  Affected file silcd/server.c.
4121
4122 Mon Jun 10 16:29:42 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
4123
4124         * Added WATCH list sending to backup routers from router.
4125           The WATCH command is sent by the router to the backup
4126           router.  Affected file silcd/command.c.
4127
4128         * Mark the backup_router flag for RouterConnection entry
4129           if the backup router stuff is defined in the config file.
4130           Affected file silcd/serverconfig.c.
4131
4132         * Fixed some backup data sending around the code to work better
4133           if the router is standalone router.  Not all places were fixed.
4134           Affected file silcd/packet_receive.c, silcd/packet_send.c,
4135           silcd/server.c.
4136
4137         * Fixed the router connecting when connecting to multiple
4138           routers.  It ignored every other router except the first
4139           one.  Affected file silcd/server.c.
4140
4141 Mon Jun 10 09:28:21 CEST 2002 Pekka Riikonen <priikone@silcnet.org>
4142
4143         * Made the private key generation after expiration optional.
4144           If not created after expiration the old key will re-expire
4145           at a later time (and thus key pair is not necessary to
4146           change).  Affected file irssi/src/silc/core/clientutil.c.
4147
4148 Sun Jun  9 18:58:25 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
4149
4150         * The length arguments in bind() and connect() were wrong
4151           and fixed now to used SIZEOF_SOCKADDR in the
4152           lib/silcutil/unix/silcunixutil.c.
4153
4154 Tue Jun  4 18:36:05 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
4155
4156         * Fixed detach timeout handling to use Client ID and not
4157           the actual client entry which may be freed in the callback.
4158           Affected file silcd/command.c.
4159
4160 Thu May 30 15:53:45 CEST 2002 Pekka Riikonen <priikone@silcnet.org>
4161
4162         * Merged c0ffee's multiple interface support patch.
4163           Affected files in silcd/.
4164
4165 Wed May 29 18:08:15 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
4166
4167         * Cleanup keys properly.  Affected file is
4168           irssi/src/silc/core/clientutil.c.
4169
4170 Tue May 28 20:11:41 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
4171
4172         * Display the user mode on the status bar.  Affected file
4173           irssi/src/silc/core/silc-expandos.c.
4174
4175 Tue May 28 13:56:26 CEST 2002 Pekka Riikonen <priikone@silcnet.org>
4176
4177         * If private message key is not set, but the flag is set in
4178           the packet, ignore the packet since it cannot be decrypted.
4179           Affected file lib/silcclient/client_prvmsg.c.
4180
4181 Thu May 23 12:00:14 CEST 2002 Pekka Riikonen <priikone@silcnet.org>
4182
4183         * When resuming client, remove the old client entry from
4184           the watcher list too.  Affected file silcd/packet_receive.c.
4185
4186         * Do not allow normal server to force founder mode away
4187           from router if the founder mode is already set.  Affected
4188           file silcd/packet_receive.c.
4189
4190         * Remove the client entry with watch notify types with short
4191           timeout, and not directly, so that other notifys can be
4192           retrieved too.  Affected file lib/silcclient/client_notify.c.
4193
4194         * Display notification about data messages that cannot be
4195           displayed.  Affected files irssi/src/silc/core/client_ops.c,
4196           irssi/src/fe-common/silc/module-formats.[ch].
4197
4198 Sun May 19 18:59:00 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
4199
4200         * Fixed the CHANNEL_CHANGE notify handling in client libary
4201           to not use freed memory.  Affected file is
4202           lib/silcclient/client_notify.c.
4203
4204         * Fixed CUMODE_CHANGE notify handling in server.  Affected
4205           file silcd/packet_receive.c.
4206
4207         * Fixed USERS command to support empty channels.  Affected
4208           file silcd/command.c.
4209
4210 Sat May 18 11:35:19 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
4211
4212         * Allow multiple identical pending commands to be registered
4213           in client library.  Affected file is lib/silcclient/command.c.
4214
4215         * Call the completion for resolving client information only
4216           after all resolvers has finished.  This fixes a crash in
4217           the client.  Added support for checking when the resolvers
4218           are finished.  Affected file is lib/silcclient/idlist.c.
4219
4220         * Wait by default 3 seconds before reconnecting to the server
4221           after being disconnected.  Makes the /detach command a bit
4222           more usable.
4223
4224 Fri May 17 17:23:45 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
4225
4226         * Check the watcher list before sending signoff notifys
4227           when closing client connection.  Affected file is
4228           silcd/server.c.
4229
4230         * Added better CMODE command rights checking.  Affected file
4231           silcd/server_util.c.
4232
4233 Fri May 17 08:33:41 CEST 2002 Pekka Riikonen <priikone@silcnet.org>
4234
4235         * Fixed watcher list checking during server signoff.  It
4236           crashed the server.  Affected file silcd/server_util.c.
4237
4238         * The JOIN command reply returns now the founder's public
4239           key.  Affected file is silcd/command.c.
4240
4241         * Announce the channel mode, and the mode properties with
4242           CMODE_CHANGE notify.  Affected file silcd/server.c.
4243
4244         * Mark new channels by default disabled, untill at least
4245           one user joins the channel.  Affected file is
4246           silcd/packet_receive.c.
4247
4248 Thu May 16 13:05:13 CEST 2002 Pekka Riikonen <priikone@silcnet.org>
4249
4250         * The nickname argument to watch notify can be optional.
4251           Fixes a crash in server.  Affected file silcd/packet_send.c.
4252
4253         * Remove the client entry from cache if the WATCH notify type
4254           is KILLED, SERVER_SIGNOFF or SIGNOFF.  Affected file is
4255           lib/silcclient/client_notify.c.
4256
4257         * Check the watcher list before and after changing nickname
4258           when the NICK_CHANGE notify is received.  Affected file is
4259           silcd/idlist.c.
4260
4261         * Fixed a crash in OPER and SILCOPER command sending.  Empty
4262           passphrase caused the crash.  Affected file is
4263           lib/silcclient/command.c.
4264
4265 Wed May 15 19:01:42 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
4266
4267         * Merged with Irssi CVS for Irssi SILC client.
4268
4269 Tue May 14 19:37:48 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
4270
4271         * Completed the protocol specifications.
4272
4273 Tue May  7 20:41:58 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
4274
4275         * Merged with Irssi CVS for Irssi SILC client.
4276
4277 Tue May  7 11:07:16 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
4278
4279         * Added the founder's public key delivery to the
4280           CUMODE_CHANGE notify type as well.  Updated the protocol
4281           specs and the code.  Affected files are silcd/packet_send.[ch],
4282           silcd/packet_receive.c and silcd/command.c.
4283
4284 Mon May  6 19:46:12 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
4285
4286         * Added silc_pkcs_public_key_copy function into the
4287           lib/silccrypt/silcpkcs.[ch].
4288
4289         * Remove the `iv' from the SilcChannelEntry since we can
4290           live without it.  Affected files are silcd/idlist.h and
4291           silcd/packet_receive.c.
4292
4293         * Added support for sending the founder's public key in
4294           the CMODE_CHANGE notify packet in the server.  Affected
4295           files are silcd/packet_send.[ch], silcd/packet_receive.c,
4296           silcd/command.c and silcd/server.c.
4297
4298         * Changed the FOUNDER_AUTH authentication to use only
4299           public key authentication as defined by new protocol
4300           specs.  Passphrase authentication with that mode cannot
4301           be used anymore.  It is now possible to reclaim founder
4302           mode from any server in the network.  Affected files are
4303           silcd/command.c, silcd/idlist.h and silcd/command_reply.c.
4304
4305         * Added permanent channels support by making the channel
4306           permanent when FOUNDER_AUTH mode is set on the channel.
4307           The channel will not be destroyed even if channel is empty
4308           when that mode is set.  Protocol TODO #17.  Affected
4309           files are silcd/server.[ch], server_util.[ch],
4310           silcd/command.c, silcd/packet_receive.c and
4311           lib/silcclient/command.c.
4312
4313 Fri May  3 18:36:51 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
4314
4315         * Added reference counter to the command reply context in
4316           the client library.  Affected files are
4317           lib/silcclient/command_reply.[ch].
4318
4319 Fri May  3 11:37:10 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
4320
4321         * Fixed rekey protocol with PFS in the client library.
4322           Affected file is lib/silcclient/protocol.c.
4323
4324         * Added support for list of errors in client library
4325           command reply handling.  Affected file is
4326           lib/silcclient/command_reply.c.
4327
4328         * Defined that the WHOIS and IDENTIFY commands can send
4329           list of errors.  Updated the protocol specs.  Protocol
4330           TODO #2.
4331
4332         * Added support for sending list of errors to WHOIS and
4333           IDENTIFY commands in server.  Added support for receiving
4334           list of errors in server.  Affected files are
4335           silcd/command.c and silcd/command_reply.c.
4336
4337         * Fixed client info resolving on LEAVE command in client
4338           library to not crash.  Affected file is
4339           lib/silcclient/client_notify.c.
4340
4341 Thu May  2 08:45:11 CEST 2002 Pekka Riikonen <priikone@silcnet.org>
4342
4343         * Defined that the NICK command replies with thew changed
4344           nickname too, to make the nickname changing simpler at
4345           the client's end.  Updated protocol specs and the code
4346           in client and server.  Affected files are
4347           silcd/command.c, lib/silcclient/command_reply.c and
4348           lib/silcclient/command.c.
4349
4350 Mon Apr 29 20:10:42 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
4351
4352         * Added `Compressed' packet flag to indicate that the packet
4353           payload is compressed by the sender.  Updated the protocol
4354           specs and the core library.  The compression still is not
4355           implemented in the sources.  Affected file is
4356           lib/silccore/silcpacket.h.
4357
4358 Mon Apr 29 09:48:12 CEST 2002  Pekka Riikonen <priikone@silcnet.org>
4359
4360         * Remove pending command callbacks also if the connection
4361           to the server is destroyed.  Affected file is
4362           lib/silcclient/client.c.
4363
4364 Sat Apr 27 19:52:32 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
4365
4366         * Added new QUIET channel user mode that can be used to
4367           quiet a user in a channel.  Updated the protocol specs but
4368           it wasn't implemented yet.  Protocol TODO #27.  Affected
4369           file is lib/silccore/silcmode.h.
4370
4371 Mon Apr 22 09:09:44 CEST 2002  Pekka Riikonen <priikone@silcnet.org>
4372
4373         * Added BLOCK_INVITE user mode to be able to block incoming
4374           invite notifications.  Protoocol TODO #26.  Affected files
4375           are lib/silccore/silcmode.h, lib/silcclient/command.c and
4376           silcd/command.c.
4377
4378         * SILC Publickey fields MUST be UTF-8 encoded now.  Updated
4379           the protocol specs and the code.  Affected file is
4380           lib/silccrypt/silcpkcs.c.
4381
4382 Sun Apr 21 19:44:38 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
4383
4384         * Disconnect Payload includes now the status type.  Updated
4385           the protocol specs and the code.  Protocol TODO #25.
4386           Affected files are silcd/server.c, lib/silcclient/client.c.
4387
4388         * Added NOT_AUTHENTICATED, BAD_SERVER_ID, INCOMPLETE_INFORMATION,
4389           KEY_EXCHANGE_FAILED and BAD_VERSION error status types.
4390           Moved the silc_client_command_status_messages table to the
4391           lib/silcutil/silcutil.c and added new funtion
4392           silc_get_status_message, which deprecates function
4393           silc_client_status_message.  Affected files are
4394           lib/silccore/silcstatus.h, lib/silcclient/command_reply.[ch],
4395           lib/silcutil/silcutil.[ch].
4396
4397 Fri Apr 19 17:35:15 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
4398
4399         * Defined that the nickname hash in Client ID MUST be from
4400           lowercase nickname.  This effectively changes nicknames in
4401           SILC to case-insensitive.  Updated the protocol specs and
4402           the code.  Affected files are lib/silcutil/silcutil.[ch],
4403           silcd/serverid.c, and silcd/idlist.c.
4404
4405         * Added new channel user modes BLOCK_MESSAGES_USERS and
4406           BLOCK_MESSAGES_ROBOTS.  Updated the protocol specs and the
4407           code.  Affected files are lib/silccore/silcmode.h,
4408           lib/silcclient/command.c, and silcd/packet_send.c.
4409
4410         * Added new error status ERR_RESOURCE_LIMIT.  Updated protocol
4411           specs and code.  Affected file lib/silccore/silcstatus.h.
4412
4413         * Added support for watch list.  It is possible to add nicknames
4414           to be watched, and when they come to network, leave network
4415           or user mode changes the watcher will be notified of this
4416           change.  Added SILC_COMMAND_WATCH command, added new
4417           notify type SILC_NOTIFY_TYPE_WATCH to deliver the watch
4418           notifications.  Updated the protocol specs and implemented
4419           this to library, client and server.  Protocol TODO #21.
4420           Affected files are lib/silccore/silccomand.h,
4421           lib/silccore/silcnotify.h, lib/silcclient/command[_reply].[ch],
4422           silcd/command[_reply].[ch], lib/silcclient/client_notify.c,
4423           silcd/packet_send.[ch], silcd/packet_receive.c, and
4424           irssi/src/silc/core/client_ops.c.
4425
4426         * Added user mode SILC_UMODE_REJECT_WATCHING to reject
4427           somebody watching you.  Updated the protocol specs and the
4428           code.  Affected files are lib/silccore/silcmode.h, and
4429           lib/silcclient/command.c.
4430
4431 Fri Apr 19 09:02:20 CEST 2002  Pekka Riikonen <priikone@silcnet.org>
4432
4433         * Added service support to SILC protocol.  Added new command
4434           SILC_COMMAND_SERVICE.  Updated the protocol specs and the
4435           core library.  Services are not implemented in server or
4436           client for now.  Protocol TODO #20.  Affected files are
4437           lib/silccore/silcstatus.h, lib/silccore/silccommand.h.
4438
4439         * Added SilcStatus argument to `command' client operation
4440           to return the error status when command sending fails
4441           locally.  Changed all command in client library to return
4442           correct command status.  Affected files are
4443           lib/silcclient/command.c, lib/silcclient/silcclient.h and
4444           irssi/src/silc/core/client_ops.c.
4445
4446 Thu Apr 18 14:09:51 CEST 2002  Pekka Riikonen <priikone@silcnet.org>
4447
4448         * Added silc_mime_parse function to parse MIME headers.
4449           Affected files are lib/silcutil/silcstruti.[ch].
4450
4451         * Added MIME header parsing in Irssi SILC Client.  It displays
4452           all textual MIME objects, others it ignores.  Affected file
4453           is irssi/src/silc/core/clien_ops.c.
4454
4455 Wed Apr 17 22:07:59 CEST 2002  Johnny Mnemonic <johnny@themnemonic.org>
4456
4457         * Fixed a bug in the pid writing function, which couldn't be
4458           written in a root-owned directory.
4459
4460 Tue Apr 16 09:34:40 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
4461
4462         * Defined that channel message to unknown Channel ID must
4463           cause SILC_NOTIFY_TYPE_ERROR notify message to the sender.
4464           Updated the protocol specs and the code in server.  The
4465           affected file is silcd/packet_receive.c.
4466
4467 Mon Apr 15 19:57:57 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
4468
4469         * Added new notify type SILC_NOTIFY_TYPE_ERROR and specified
4470           that it is used to send error notifys if error occurs during
4471           some SILC packet processing, except commands.  The error
4472           types are same as for command reply types.  Defined that
4473           if private message is sent to unknown Client ID the error
4474           is sent in SILC_NOTIFY_TYPE_ERROR instead of command reply.
4475           Updated the protocol specs and code.  Affected files are
4476           lib/silccore/silcnotify.h, added lib/silccore/silcstatus.h,
4477           lib/silcclient/client_notify.c, silcd/packet_receive.c,
4478           and irssi/src/silc/core/client_ops.c.  Renamed the
4479           SilcCommandStatus to SilcStatus.
4480
4481         * Defined the use of extra WHOIS attributes in WHOIS command.
4482           The <Requested Attributes> (defined in a separate document)
4483           can be used to request additional information about user
4484           not returned by standard WHOIS command.  Defined that server
4485           can send WHOIS command directly to client.  Client provides
4486           the requested attributes to the server.  Updated the protocol
4487           specs.  Protocol TODO #4.  Implementation is not done yet
4488           (Protocol TODO #24).
4489
4490         * Renamed function silc_client_command_status_message to
4491           silc_client_status_message.  Affected files are
4492           lib/silcclient/command_reply.[ch].
4493
4494 Sun Apr 14 21:13:42 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
4495
4496         * Changed the WHOIS, IDENTIFY and WHOWAS count arguments to
4497           32 bit integers.  Updated the protcol specs and the code.
4498           Affected files are silcd/command.c and
4499           lib/silcclient/command.c.
4500
4501 Sun Apr 14 19:49:02 CEST 2002  Johnny Mnemonic <johnny@themnemonic.org>
4502
4503         * Fixed a bug in library where sending a bogus authentication
4504           payload would lead to a crash.  Affected file is
4505           lib/silccore/silcauth.c.
4506
4507 Sat Apr 13 13:09:24 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
4508
4509         * Added detach_disabled and detach_timeout server config
4510           options to the server.  Affected files silcd/serverconfig.[ch],
4511           silcd/command.c and silcd/packet_receive.c.
4512
4513 Fri Apr 12 20:09:08 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
4514
4515         * Added resolve_cmd_ident field to the SilcClientEntry structure
4516           too so that if the entry is for example being resolved so
4517           another command may attach to the same pending command reply
4518           without requiring to resolve the same entry again.  Added
4519           support for adding multiple pending commands for one
4520           command idenfier.  Affected files lib/silcclient/command.[ch],
4521           lib/silcclient/command_reply.[ch], lib/silcclient/idlist.h.
4522
4523 Fri Apr 12 10:17:51 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
4524
4525         * Defined that server receives WHOIS command reply for private
4526           and secret channels too.  Updated protocol specs and the
4527           code in server.  Affected file silcd/command.c.
4528
4529         * Defined <channel user mode list> argument to WHOIS command
4530           reply for returning user modes on the channels.  The
4531           channel list now doesn't include the user mode anymore but the
4532           actual channel mode.  Updated protocol specs and the code in
4533           client and server.  Affected files are silcd/command_reply.c,
4534           silcd/command.c, silcd/server.c, irssi/src/silc/core/client_ops.c,
4535           and lib/silcclient/command_reply.c.
4536
4537         * Save the channels list in WHOIS command reply in normal server
4538           so that WHOIS always shows joined channels also in normal
4539           server and not just on router.  Affected file is
4540           silcd/command_reply.c.
4541
4542 Thu Apr 11 22:29:33 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
4543
4544         * Defined that server receives USERS command reply for private
4545           and secret channels too.  Updated protocol specs and the
4546           code in server.  Affected file silcd/command.c.
4547
4548 Thu Apr 11 16:32:08 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
4549
4550         * Changed the UMODE's mode mask argument to be optional.  If
4551           not provided then the command merely returns the current mode
4552           mask to the client.  Updated protocol specs and the server.
4553           Affected file is silcd/command.c.
4554
4555         * Added SILC session detachment/resuming support.  It is possible
4556           to detach by closing the network connection and then re-connect
4557           and resume to the old client session.  Added DETACHED user
4558           mode that server will set for detached client.  Added new
4559           packet RESUME_CLIENT which is used to perform the resuming
4560           process.  Added DETACH command.  Updated the protocol specs,
4561           core library, client and server.  Protocol TODO #22.  Very
4562           many affected files around the tree.
4563
4564 Wed Apr 10 16:32:01 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
4565
4566         * Changed the CMODE's mode mask argument to be optional.  If
4567           not provided then the command merely returns the current mode
4568           mask to the client.  Updated protocol specs and the server.
4569           Affected file is silcd/command.c.
4570
4571         * Changed the Killer's Client ID in KILLED notify to be just
4572           any ID payload since router server is allowed to kill as well.
4573           Updated protocol specs, client libary and server.  Affected
4574           files are lib/silcclient/client_notify.c, silcd/packet_receive.c,
4575           and irssi/src/silc/core/client_ops.c.
4576
4577 Tue Apr  9 17:15:42 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
4578
4579         * Added new user modes ANONYMOUS for special anonymous servers
4580           that may set the mode for client, and BLOCK_PRIVMSG which
4581           client may set to block incoming private messages unless the
4582           Private Message Key flag is set (using private keys to protect
4583           private messages).  Updated protocol specs and code in client
4584           and server and core library.  Protocol TODO #23.  Affected
4585           files are lib/silccore/silcmode.h, silcd/server.[ch],
4586           irssi/src/silc/core/client_ops.c, silcd/packet_receive.c,
4587           irssi/docs/help/in/umode.in, lib/silcclient/command.c.
4588
4589         * Added new channel user mode BLOCK_MESSAGES which the client
4590           may set to itself to tell server not send channel messages.
4591           Other packets such as channel key packets are still sent.
4592           Protocol TODO #23.  Updated the protocol specs, client and
4593           server.  Affected files are lib/silccore/silcmode.h,
4594           irssi/docs/help/in/cumode.in, lib/silcclient/command.c,
4595           lib/silcutil/silcutil.c, silcd/command.c, and
4596           silcd/packet_send.c.
4597
4598 Mon Apr  8 23:57:32 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
4599
4600         * Redefined the Status Payload to include now two 8 bit fields,
4601           instead of one 16 bit field.  This now makes it possible to
4602           send list of errors.  Updated the protocol specs and the code
4603           in core library, client library and server.  Protocol TODO #1.
4604           Affected files are lib/silccore/silccommand.[ch],
4605           lib/silcclient/command_reply.[ch], silcd/command.c,
4606           silcd/command_reply.c and silcd/packet_receive.[ch].
4607
4608 Mon Apr  8 19:57:40 CEST 2002  Johnny Mnemonic <johnny@themnemonic.org>
4609
4610         * Added config parse status SILC_CONFIG_EPRINTLINE, this status
4611           must be handled by the application and should tell the application
4612           that an error message was already printed, and it should print the
4613           config coords (line, filename, ...).  Affected files are
4614           silcd/serverconfig.c, lib/silcutil/silcconfig.[ch].
4615
4616         * Added local macro SILC_SERVER_CONFIG_ALLOCTMP to make the
4617           server config parsing code more readable.
4618
4619           Fixed a bug in the fetch_logging() config callback.
4620
4621           Affected files is silcd/serverconfig.c.
4622
4623         * Drop root privileges when started in foreground.  Don't drop them
4624           if debugging also.  Affected file is silcd/silcd.c.
4625
4626 Mon Apr  8 17:00:41 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
4627
4628         * Added more IM-like features by introducing new user modes
4629           for setting various presence information.  Added new modes:
4630           INDISPOSED, BUSY, PAGE, HYPER and ROBOT.  Updated protocol
4631           specs and code.  Protocol TODO #19. Affected files are
4632           lib/silccore/silcmode.h, irssi/src/silc/core/client_ops.c,
4633           irssi/docs/help/in/umode.in and lib/silcclient/command.c.
4634
4635 Sun Apr  7 17:07:59 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
4636
4637         * Added STATS command to the protocol after all, to return
4638           various statistical information about the network.  It can
4639           be used by clients to retrieve statistical information, and
4640           servers may use it to to fetch cell and network wide
4641           statistics from router.  Updated the protocol specs and
4642           implemented it to the server.  Protocol TODO #16.
4643           Affected files are lib/silccore/silccommand, silcd/command.[ch],
4644           silcd/command_reply.[ch].
4645
4646 Sat Apr  6 17:08:58 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
4647
4648         * The LIST command reply in client libary now adds new channel
4649           entry if the returned channel doesn't exist yet in cache,
4650           and returns the channel entry to the application in the
4651           command_reply client operation.  Affected file is
4652           lib/silcclient/command_reply.c.
4653
4654         * Changed the channel message payload's MAC generation to
4655           include the IV in the MAC as well.  This way all relevant
4656           parts of the channel message payload are authenticated also
4657           with the channel message MAC (and not only by packet MAC).
4658           Causes incompatibility with 1.0 protocol.  Protocol TODO #7.
4659           Affected file is lib/silccore/silcchannel.c.
4660
4661         * Fixed the SKE to save the remote version, since the
4662           silc_ske_parse_version mistakenly checked wrong version,
4663           after it replaced the start payload.  Affected files are
4664           lib/silcske/silcske.[ch].
4665
4666 Fri Apr  5 16:03:03 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
4667
4668         * Splitted lib/silcutil/silcutil.h into silcstrutil.h for
4669           string utility functions.  Added there also new functions
4670           silc_utf8_[encode/decode/valid] for UTF-8 string encoding.
4671           Affected files lib/silcutil/silcstrutil.[ch].
4672
4673         * Renamed silc_*_pem functions to silc_pem_* functions.  Affected
4674           files are lib/silcutil/silcstrutil.[ch].
4675
4676         * Defined that the security property fields in SKE SHOULD be
4677           UTF-8 encoded, defined that version string MUST be US-ASCII
4678           encoded, defined that passphrases sent in connection
4679           authentication protocol MUST be UTF-8 encoded.  Implemented
4680           these to the client and server.  Defined also that other
4681           passphrases sent in the protocol MUST be UTF-8 encoded.
4682           Affected files are lib/silcske/silcske.c,
4683           lib/silcclient/protocol.c, silcd/protocol.c,
4684           silcd/serverconfig.c, and lib/silccore/silcauth.c.
4685
4686         * Changed the silc_client_close_connection interface to not
4687           need the SilcSocketConnection which should not be visible
4688           to application.  Affected files are lib/silcclient/client.c
4689           and lib/silcclient/silcclient.h.
4690
4691         * Rewrote the text for Private Message Key Payload in the
4692           protocol specification.  Protocol TODO #11.
4693
4694 Wed Apr  3 16:24:51 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
4695
4696         * Upgraded the protocol version to 1.1, updated protocol specs
4697           and software.
4698
4699         * Added the nickname as new argument to NICK_CHANGE notify and
4700           added it to protocol specs and implemented it to client and
4701           server.  Protocol TODO #3.  Affected files are silcd/idlist.[ch],
4702           silcd/command.c, silcd/packet_receive.c, packet_send.[ch], and
4703           lib/silcclient/client_notify.c.
4704
4705         * Added the killer's client ID to the KILLED notify and added
4706           it to protocol specs and implemented it to client and server.
4707           Protocol TODO #13.  Affected files are silcd/command.c,
4708           silcd/packet_receive.c, packet_send.[ch],
4709           lib/silcclient/client_notify.c, irssi/src/silc/core/client_ops.c.
4710           The killer's client entry is now returned to application in
4711           the `notify' client operation.
4712
4713         * Fixed the Max Argument fields that had too large value set
4714           in the protocol specs.  Protocol TODO #14.
4715
4716         * Added the LEAVE command reply to return the ID of parted
4717           channel.  Updated protocol specs and implemented it to the
4718           client and server.  Protocol TODO #15.  Affected files are
4719           silcd/command.c, lib/silcclient/command_reply.c.  The channel
4720           entry is now returned to application in the `command_reply'
4721           client operation.
4722
4723         * Rewrote the version SKE version checking in client libary
4724           and in server to use the silc_parse_version_string.  Affected
4725           files are lib/silcclient/protocol.c, silcd/protocol.c.
4726
4727         * Added SILC_STATUS_ERR_NO_CHANNEL_FOPRIV error status to few
4728           commands that was missing it, and updated protocol specs and
4729           the server implementation.  Protocol TODO #10.  The affected
4730           file is silcd/command.c.
4731
4732         * Defined new message flags SILC_MESSAGE_FLAG_REPLY to be
4733           generic reply to a generic request (REQUEST flag), and
4734           SILC_MESSAGE_FLAG_DATA to send any kind of data in a generic
4735           way.  A draft-riikonen-silc-flags-payloads-00.txt is written
4736           to define the payload for DATA flag.  Added the flags to
4737           the implementation.  Protocol TODO #9.  Affected file is
4738           lib/silccore/silcchannel.h.
4739
4740           Changed the client library to return the message length
4741           to application as well in the channel_message and private_message
4742           client operations.  Affected files are
4743           lib/silcclient/client_prvmsg, lib/silcclient/client_channel.c,
4744           lib/silcclient/silcclient.h, irssi/src/silc/core/client_ops.c,
4745           and lib/silcclient/client_ops_example.c.
4746
4747         * Added two new channel modes: SILC_CMODE_SILENCE_USERS
4748           and SILC_CMODE_SILENCE_OPERS which can be used to moderate
4749           the channel.  Updated protocol specs and impelemented this
4750           to client and server.  Protocol TODO #6.  Affected files are
4751           silcd/packet_receive.c, server_util.c, lib/silcclient/command.c,
4752           lib/silcclient/client_channel.c, lib/silccore/silcmode.h.
4753
4754           Added new options m and M to CMODE command in Irssi SILC
4755           client to set these modes.
4756
4757         * Deprecated all administrative commands from SILC protocol
4758           since they are highly implementation specific commands.
4759           Updated protocol specs.  Moved the old commands in
4760           implementations to private range of command types.  Affected
4761           files are silcd/command.c, lib/silcclient/command.c and
4762           lib/silcclient/command_reply.c.  Protocol TODO #8.
4763
4764         * Fixed a bug in server where sending unknown command crashes
4765           the server.  Affected file silcd/command.c.
4766
4767 Wed Apr  3 09:57:47 CEST 2002  Pekka Riikonen <priikone@silcnet.org>
4768
4769         * Added SILC_PROTOCOLVERSION macro to check protocol version
4770           of a socket connection.  The affected file is
4771           lib/silcutil/silcsockconn.h.
4772
4773         * Added better error logging in rekey protocol.  Affected file
4774           silcd/protocol.c.
4775
4776         * Do not check public key types in SKE during rekey.  Affected
4777           file lib/silcske/payload.c.
4778
4779         * Fixed the rekey protocol with PFS, which was totally broken.
4780           Affected file silcd/protocol.c.
4781
4782 Tue Apr  2 14:55:06 CEST 2002  Pekka Riikonen <priikone@silcnet.org>
4783
4784         * Some client implementations quit network by doing first LEAVE
4785           and then immediately SIGNOFF (like Bombyx).  We now do check
4786           after a short time after LEAVE notify and check whether the
4787           client is still valid after LEAVE, and if not we remove it from
4788           cache.  Affected file is lib/silcclient/client_notify.c.
4789
4790 Tue Apr  2 13:39:04 CEST 2002  Johnny Mnemonic <johnny@themnemonic.org>
4791
4792         * Merged version 1.1.4 of zlib. Even if it not currently in use,
4793           it's good not to have security holes here.
4794
4795         * Fixed a negative refcount situtuation for the config context.
4796           Affected file is silcd/serverconfig.c.
4797
4798 Mon Apr  1 20:15:10 CEST 2002  Johnny Mnemonic <johnny@themnemonic.org>
4799
4800         * ROBOdoc documented lib/silcutil/silcutil.h.
4801
4802 Sat Mar 30 21:06:45 EET 2002  Pekka Riikonen <priikone@silcnet.org>
4803
4804         * Optimized even more the SilcPacketContext structure.  Now
4805           totally saved 16 bytes of memory per context after optimization.
4806           Affected files are lib/silccore/silcpacket.[ch].
4807
4808         * Made strict checks for valid SILC IDs.  Affected file is
4809           lib/silccore/silcid.c.
4810
4811 Sat Mar 30 18:15:55 EET 2002  Pekka Riikonen <priikone@silcnet.org>
4812
4813         * Changed the object argument for silc_cipher_register,
4814           silc_hash_register, silc_hmac_register and silc_pkcs_register
4815           to const.  Affected files are lib/silccrypt/silccipher.[ch],
4816           silchash.[ch], silchmac.[ch] and silcpkcs.[ch].
4817
4818         * Changed the silc_get_username and silc_get_real_name to
4819           never fail.  Affected file lib/silcutil/unix/silcunixutil.c.
4820
4821         * Fixed the Irssi SILC Client to use the silc_get_username and
4822           silc_get_real_name insted of glib routines since the glib
4823           routines only corrupt stack.  Fixes the Irssi SILC to work in
4824           Cygwin.  Affected file irssi/src/silc/core/silc-core.c.
4825
4826         * Fixed the Irssi to not use g_get_home_dir since it crashes
4827           or returns garbage on cygwin and corrupts stack.  Added function
4828           get_home_dir to Irssi routines.  Affected files are
4829           irssi/src/core/misc.[ch] and irssi/src/core/core.c.
4830
4831 Fri Mar 29 21:55:41 EET 2002  Pekka Riikonen <priikone@silcnet.org>
4832
4833         * Made some structure optimizations.  SFTP memory FS MemFSEntry
4834           entry structure.  Optimized SilcTask structure.  Optimized
4835           SilcPacketContext structure.
4836
4837           Affected files lib/silcsftp/sftp_fs_memory.c,
4838           lib/silcutil/silcschedule.c, lib/silccore/silcpacket.h.
4839
4840 Fri Mar 29 10:41:07 EET 2002  Pekka Riikonen <priikone@silcnet.org>
4841
4842         * And yet again reverted back the config thing since Johnny
4843           screwed it up.  Affected file silcd/serverconfig.[ch], server.c,
4844           and silcd.c.
4845
4846         * Fixed memory leaks from config object.  Affected files are
4847           silcd/serverconfig.[ch].
4848
4849         * Added support for adding new connections to the server in rehash.
4850           After rehash they take effect.
4851
4852           Added support for changing the maximum allowed connections in
4853           rehash.  The number can grow but going smaller is not supported.
4854
4855           Added function silc_server_num_sockets_by_remote to the
4856           silcd/server_util.[ch].
4857
4858           Affected files are silcd/server.c, and silcd/serverconfig.[ch].
4859
4860 Fri Mar 29 03:26:12 CET 2002 Johnny Mnemonic <johnny@themnemonic.org>
4861
4862         * Added preliminary checking during config parsing for a valid
4863           public/private key and removed further checks in the code.
4864           Affected files are silcd/serverconfig.[ch], server.c.
4865
4866         * Moved functions silc_server_drop() and silc_server_daemonise()
4867           from server.c to silcd.c since they are stricly related to
4868           the application activity.
4869
4870         * Reverted a small part of the automatic ref/unref since
4871           it caused a double unref in some situations.  Affected
4872           files are silcd/silcd.[ch], server.c, serverconfig.c.
4873
4874         * Added some .cvsignore files in the lib directory.
4875
4876 Thu Mar 28 22:51:15 EET 2002  Pekka Riikonen <priikone@silcnet.org>
4877
4878         * Fixed silc_net_gethostbyaddr to correctly resolve by
4879           address.  Affected file lib/silcutil/silcnet.c.
4880
4881         * Fixed the notify relaying to client.  The HMAC to be used
4882           with relayed packets ws wrong and caused decryption failure
4883           at the client end.  Affected file is silcd/packet_receive.c.
4884
4885 Thu Mar 28 19:02:05 EET 2002  Pekka Riikonen <priikone@silcnet.org>
4886
4887         * Created new branch silc_protocol_1_0_branch.
4888
4889         * Reverted the silc_log_quick change in lib/silcutil/silclog.c.
4890
4891         * Changed the silc_server_config_* routines to be SilcServer
4892           independent.  They are now officially application specific code
4893           and not part of generic server implementation.  Affected files
4894           are silcd/serverconfig.[ch], silcd/silcd.c, silcd/server.c.
4895
4896 Thu Mar 28 17:01:43 EET 2002  Pekka Riikonen <priikone@silcnet.org>
4897
4898         * Added automatic referencing of config context in the
4899           silc_server_config_alloc, and automatic unreferencing in the
4900           silc_server_config_destroy.  Affected files are
4901           silcd/serverconfig.[ch], silcd/silcd.c.
4902
4903         * Fixed the silc_log_quick handling in the logging routines.
4904           It didn't log quickly when it was TRUE.  Affected file is
4905           lib/silcutil/silclog.c.  Also the flush delay was set even
4906           if it was 0 in config file.  Affected file is
4907           silcd/serverconfig.c.
4908
4909         * Added support for changing key pair of the server in rehash.
4910           Affected file silcd/server.c.
4911
4912 Thu Mar 28 12:17:21 CET 2002  Pekka Riikonen <priikone@silcnet.org>
4913
4914         * Fixed the TOPIC_SET notify to not cras.  It changed the topic
4915           too early, before getting the channel entry.  Affected file
4916           is silcd/packet_receive.c.
4917
4918 Thu Mar 28 09:58:16 CET 2002  Johnny Mnemonic <johnny@themnemonic.org>
4919
4920         * Added functions silc_server_config_[ref/unref], these are used
4921           to prevent that the config object is destroyed.
4922
4923           No longer directly affect global variables silc_log_quick and
4924           silc_log_delay, they are first cached inside the config object
4925           and then applied with silc_server_config_setlogfiles().
4926
4927           silc_server_config_set_defaults() is now internal to
4928           serverconfig.c, there are no reasons to show this internal stuff
4929           to the server.
4930
4931           Affected files are silcd/serverconfig.[ch].
4932
4933         * Added macro SILC_SERVER_LOG_STDERR(), this should replace most
4934           fprintf's to stderr, since some code may be executed again after
4935           the server went into the background.  Affected files are
4936           silcd/server.[ch].
4937
4938         * Added rehash support. Added function silc_server_rehash() that
4939           will perform all the basic tasks of the rehashing procedure.
4940
4941         * Added command line option `-x, --hexdump'. This will enable the
4942           SILC_LOG_HEXDUMP calls that are no longer enabled with `--debug'.
4943           The option `--hexdump' implies `--debug'.
4944
4945         * Fixed a bad bug in the logging APIs (silcutil library) where
4946           the application would crash after calling silc_log_reset_all().
4947
4948 Wed Mar 27 19:43:16 EET 2002  Pekka Riikonen <priikone@silcnet.org>
4949
4950         * Fixed the KICKED notify handling in client library to
4951           correctly remove the channel and all entries from the
4952           channel when I was kicked.  This bug crashed the client.
4953
4954           Fixed yet another but in KICKED notify handling to remove
4955           the kicked client correctly from the channel.
4956
4957           Affected file is lib/silcclient/client_notify.c.
4958
4959         * Fixed a minor bug in looking up correct client entry
4960           in KICKED notify in server.  Affected file is
4961           silcd/packet_receive.c.
4962
4963         * Fixed the lib/silcmath/Makefile.am to include the MPI and GMP
4964           sources correctly to distribution.  Fixes --with-gmp option.
4965
4966         * Removed the manual rehashing from ID Cache, and changed it
4967           to use the SILC Hash Table's auto rehash feature.  Affected
4968           file is lib/silccore/silcidcache.c.
4969
4970 Wed Mar 27 00:07:11 EET 2002  Pekka Riikonen <priikone@silcnet.org>
4971
4972         * Fixed a bug in the silc_client_nickname_format function that
4973           handles the multiple same nickname formatting.  Two clients
4974           with same nickname caused problems after the first one left
4975           and rejoined.  It didn't format the nickname correctly.
4976           Affected file is lib/silcclient/idlist.c.
4977
4978 Tue Mar 26 19:33:03 CET 2002  Pekka Riikonen <priikone@silcnet.org>
4979
4980         * Don't change the topic if olod topic is same as new one.
4981           Affected file is silcd/packet_receive.c.
4982
4983 Mon Mar 25 21:11:35 EET 2002  Pekka Riikonen <priikone@silcnet.org>
4984
4985         * Added cross-reference support to the SILC Documentation
4986           generator.  All types across all HTML files are now cross-
4987           referenced.  Affected files util/robodoc/generator.c and
4988           scripts/silcdoc/silcdoc.
4989
4990         * Added file lib/silcutil/silctypes.h to include all the
4991           arithmetic type definitions and some macros.  Removed
4992           includes/bitmove.h and moved macros to silctypes.h.
4993
4994 Mon Mar 25 17:19:46 EET 2002  Pekka Riikonen <priikone@silcnet.org>
4995
4996         * Merged bugfixes for Irssi SILC client from irssi.org CVS.
4997
4998 Sun Mar 24 11:21:04 EET 2002  Pekka Riikonen <priikone@silcnet.org>
4999
5000         * Added `type' argument to silc_id_payload_parse_id function which
5001           now returns the type of the ID to the sent pointer.  Affected
5002           file is lib/silccore/silcid.[ch].
5003
5004         * Added check for CMODE_CHANGE notify type that mode change is
5005           allowed by the sender.  Affected file silcd/packet_receive.c.
5006
5007         * Added check for CUMODE_CHANGE notify type that mode change is
5008           allowed by the sender.  Affected file silcd/packet_receive.c.
5009           Added the ID type as CUMODE_CHANGE notify type as argument
5010           to the `notify' client operation.  Affected files are
5011           lib/silcclient/client_notify.c, irssi/src/silc/core/client_ops.c.
5012
5013         * Added function silc_client_add_server to the client library.
5014           Added support for resolving also channel and server info when
5015           received unknown entity in notify packet.  Affected files are
5016           lib/silcclient/idlist.[ch], lib/silcclient/client_notify.c.
5017
5018         * Added function silc_command_get_status to return the command
5019           status from the command reply's argument payload.  Affected files
5020           are lib/silccore/silccommand.[ch].
5021
5022         * Added check for KICKED notify type that the kicking is
5023           allowed by the client.  Affected file silcd/packet_receive.c.
5024
5025         * Created function silc_get_input which can be used to get input
5026           (echo on or off) from user on command line.  Affected files are
5027           lib/silcutil/silcutil.[ch].
5028
5029 Sat Mar 23 09:51:26 EET 2002  Pekka Riikonen <priikone@silcnet.org>
5030
5031         * Optimized silc_server_packet_relay_to_channel function.
5032           Added new function silc_channel_message_payload_encrypt which
5033           can be called directly if channel message payload needs to
5034           be encrypted and is already encoded (no need to call _encode
5035           function).  Packet relaying is now done by router without any
5036           extra memory allocations.  Affected files are
5037           lib/silccore/silcchanel.[ch], silcd/packet_receive.c and
5038           silcd/packet_send.c.
5039
5040         * Fixed the INVITE notify handling.  It took wrong arguments
5041           as invite list and invite delete.  Affected file is
5042           silcd/packet_receive.c.
5043
5044         * Added check for TOPIC_SET notify type that the topic change is
5045           allowed by the client.  Affected file silcd/packet_receive.c.
5046
5047         * Added check for INVITE notify type that inviting is allowed by
5048           the client.  Affected file silcd/packet_receive.c.
5049
5050         * Changed the silc_server_client_on_channel to return the
5051           SilcChannelClientEntry as well.  Moved the function
5052           silc_server_check_cmode_rights to server_util.[ch].
5053           Affected files are silcd/server_util.[ch], silcd/command.c.
5054
5055         * Added function silc_server_check_umode_rights to check whether
5056           changing client's user mode is allowed.  Added check for
5057           UMODE_CHANGE notify type that the umode change is allowed
5058           by the client.  Affected files are silcd/server_util.[ch],
5059           silcd/packet_receive.c and silcd/command.c.
5060
5061 Fri Mar 22 12:25:58 CET 2002  Pekka Riikonen <priikone@silcnet.org>
5062
5063         * Fixed the SILC_PACKET_MAX_ID_LEN to actually be the max
5064           ID length.  It ignored that ID can be IPv6 based as well.
5065           Affected file lib/silccore/silcpacket.h.
5066
5067         * Fixed the silc_id_id2str and silc_id_str2id to take the
5068           IPv6 address offset's into consideration.  Affecte file is
5069           lib/silccore/silcid.c.
5070
5071 Thu Mar 21 20:44:13 EET 2002  Pekka Riikonen <priikone@silcnet.org>
5072
5073         * Fixed the internal Unix scheduler functions to check for
5074           NULL context they may receive.  The affected file is
5075           lib/silcutil/unix/silcunixschedule.c.
5076
5077 Thu Mar 21 19:12:22 EET 2002  Timo Sirainen <tss@iki.fi>
5078
5079         * Changed hardcoded ~/.silc paths to use get_irssi_dir() so you
5080           can specify different directory with --home command line
5081           parameter. Affected files irssi/src/silc/core/client_ops.c,
5082           clientutil.c
5083
5084         * SILC-specific commands aren't now executed if the active server
5085           isn't of SILC-type, so there won't be problems with having
5086           IRC and SILC protocol support in same client. Affected files
5087           irssi/src/silc/core/silc-channels.c, silc-servers.c,
5088           silc-commands.h
5089
5090 Wed Mar 20 11:06:57 CET 2002  Pekka Riikonen <priikone@silcnet.org>
5091
5092         * Improved the signal support in SILC Schedule.  Added new
5093           function silc_schedule_signal_call which is used by application
5094           to mark a signal to be called.  It is now safe to perform
5095           any kind of tasks in signal callbacks since it is guaranteed
5096           that the application specified signal callback is called
5097           after the signal is over.  Affected files are
5098           lib/silcutil/silcschedule.[ch], lib/silcutil/*/silc*schedule.c.
5099
5100 Tue Mar 19 20:42:41 EET 2002  Pekka Riikonen <priikone@silcnet.org>
5101
5102         * Added `name' field to SilcChannelPrivateKey to represent
5103           application given name for the key.  Moved also the context from
5104           lib/silcclient/idlist.h into lib/silcclient/silcclient.h.
5105           Added the `name' argument also to the function
5106           silc_client_add_channel_private_key.
5107
5108           Added function silc_client_current_channel_private_key to set the
5109           current channel private key in use.
5110
5111           Added "change" command to KEY command which can be used to change
5112           the current channel private key.  Bound the command also to
5113           alt+K (Alt+Shift+k).
5114
5115           Also affected files lib/silcclient/client_channel.c,
5116           irssi/src/docs/help/in/key.in, irssi/src/silc/core/silc-channel.c.
5117
5118 Tue Mar 19 16:32:43 CET 2002  Pekka Riikonen <priikone@silcnet.org>
5119
5120         * Added silc_rng_get_byte_fast function in to the
5121           lib/silccrypt/silcrng.[ch].
5122
5123         * Changed the interface of silc_packet_assemble and the
5124           silc_packet_send_prepare.  If silc_packet_assmble is now
5125           called the application does not call silc_packet_send_prepare
5126           because the library will call it automatically.  These
5127           interfaces now also return a reference to the outgoing buffer
5128           which includes the assembled packet, which the application can
5129           use to encrypt the packet.
5130
5131           Affected files are lib/silccore/silcpacket.[ch],
5132           lib/silcclient/client.c, client_channel.c client_prvmsg.c,
5133           silcd/packet_send.c, server_backup.c and packet_receive.c.
5134
5135         * Fixed a packet sending bug on very high load, where outgoing
5136           packet queue wasn't handled correctly and packets got corrupted.
5137           Affected files are lib/silcutil/*/silc*sockconn.c,
5138           lib/silcclient/client.c and silcd/server.c.
5139
5140 Mon Mar 18 21:00:41 EET 2002  Pekka Riikonen <priikone@silcnet.org>
5141
5142         * Added macro SILC_PACKET_DATALEN which can be used during
5143           packet assembling to check whether the data to be added to
5144           the packet will fit to SILC_PACKET_MAX_LEN.  If not the data
5145           len is truncated until it fits it.
5146
5147           Added checks for maximum length of channel message payload and
5148           private message payload also.
5149
5150           Added checks for maximum packet length in server and in
5151           client library.
5152
5153           Affected files are lib/silccore/silcpacket.h, silcd/packet_send.c,
5154           lib/silcclient/client.c, lib/silccore/silcchannel.c and
5155           lib/silccore/silcprivate.c, lib/silcclient/client_channel.c and
5156           lib/silcclient/client_prvmsg.c.
5157
5158 Mon Mar 18 14:54:42 CET 2002  Pekka Riikonen <priikone@silcnet.org>
5159
5160         * Added silc_server_packet_queue_purge call to the
5161           silc_server_disconnect_remote to assure that all data in the
5162           queue before disconnecting is sent to the network.  Affected
5163           file silcd/server.c.
5164
5165 Sun Mar 17 19:26:16 EET 2002  Pekka Riikonen <priikone@silcnet.org>
5166
5167         * Added the deleting of server's own ID cache entry to the
5168           silc_server_free function.  Free also everything else that
5169           has been allocated in silc_server_init.  The affected file
5170           is silcd/server.c.
5171
5172 Sun Mar 17 15:44:56 EET 2002  Pekka Riikonen <priikone@silcnet.org>
5173
5174         * Added functions silc_parse_version_string, silc_version_to_num,
5175           and silc_ske_parse_version to parse SILC protocol style version
5176           strings.  Affected files lib/silcutil/silcutil.[ch] and
5177           lib/silcske/silcske.[ch].
5178
5179         * Added new configuration params: version_protocol, version_software
5180           and version_software_vendor to specify what version the remote
5181           host must at least be to be able to connect to server.  The vendor
5182           string can be regex matched too.  Added new function
5183           silc_server_connection_allowed to check maximum number of allowed
5184           connections, and allowed versions for incoming connections.
5185           Affected files are silcd/server.c, server_util.[ch] and
5186           serverconfig.[ch].
5187
5188 Sun Mar 17 10:24:50 EET 2002  Pekka Riikonen <priikone@silcnet.org>
5189
5190         * Added preliminary support for signals in scheduler.  The
5191           signals we care about are now blocked always when the scheduler
5192           is locked.  This way we can synchronise the use of signal with
5193           scheduler.  It is guaranteed that when signal occurs the scheduler
5194           is not locked, and thus new tasks can be safely added to the
5195           scheduler.
5196
5197           Renamed silc_schedule_wakeup_init and silc_schedule_wakeup_uninit
5198           to silc_schedule_internal_init and silc_schedule_internal_uninit.
5199           Added new platform specific routines
5200           silc_schedule_internal_signals_[un]block and
5201           silc_schedule_internal_signal_[un]register.
5202
5203           Added new functions to SILC Schedule API:
5204           silc_schedule_signal_[un]register.  Each signal that application
5205           is going to use should be registered to the scheduler.
5206
5207           Affected files are lib/silcutil/silcschedule.[ch],
5208           lib/silcutil/*/silc*schedule.c.
5209
5210 Sat Mar 16 22:39:23 EET 2002  Pekka Riikonen <priikone@silcnet.org>
5211
5212         * Check for unauthenticated client and server in the
5213           silc_server_new_client and silc_server_new_server functions.
5214           Affected file silcd/packet_receive.c.
5215
5216         * Added function silc_string_is_ascii to check whether given
5217           string is 7-bit ASCII string.  Affected files are
5218           lib/silcutil/silcutil.[ch].
5219
5220         * Added function silc_id_is_valid_server_id into the
5221           silcd/serverid.c and added checking for valid Server ID's in
5222           silc_server_new_server.  The Server ID must always be based
5223           on the server's public IP address.
5224
5225         * Added logging of DISCONNECT packet message in the server.
5226           Affected file silcd/server.c.
5227
5228 Sat Mar 16 18:04:30 EET 2002  Pekka Riikonen <priikone@silcnet.org>
5229
5230         * Changed all library interfaces that use Global RNG to also
5231           accept SilcRng as argument.  Affected files are
5232           lib/silcclient/command.c, lib/silccore/silcauth.[ch],
5233           lib/silccore/silcchanel.[ch], lib/silcclient/client_channel.c,
5234           silcd/packet_send.c, lib/silccore/silcprivate.[ch],
5235           lib/silcmath/silcprimegen.c, lib/silcmath/silcmath.h, and
5236           lib/silccrypt/rsa.c.
5237
5238         * Added function silc_pkcs_generate_key to the
5239           lib/silccrypt/silcpkcs.[ch] for applications so that they
5240           don't need to do pkcs->pkcs->init calls anymore.
5241
5242         * Remove SilcSocketConnection from the SFTP API since it really
5243           wasn't needed there.  The application has the information
5244           saved in its contexts anyway and the SFTP layer doesn't need
5245           know about it.  Affected files lib/silcsft/silcsftp.h and
5246           lib/silcsftp/sftp_[server/client].c.
5247
5248         * Rewrote the SILC SIM (modules) interface in lib/silcsim.[ch].
5249           The SilcSimContext is not SilcSim.
5250
5251         * Fixed possible buffer overflows in silc_id_render in the
5252           lib/silcutil/silcutil.c.
5253
5254         * On EPOC the global crypto module lists are not used at all
5255           in the crypto library.  Added support for using the constant
5256           algorithm list on EPOC.  Affected files are
5257           lib/silccrypt/silccipher.c, silchash.c, silchmac.c and
5258           silcpkcs.c.
5259
5260         * Fixed the handling of third parameter of KICKED notify, since
5261           it was mistakenly updated to SILC Protocol 1.0 even though it
5262           is to be included in 1.1.  Since it is not in 1.0 it is not
5263           mandatory, and this fix now handles it only if it is provided,
5264           and it is not error if it is not provided.  Affected file
5265           lib/silcclient/client_notify.c.
5266
5267 Sat Mar 16 09:07:27 EET 2002  Pekka Riikonen <priikone@silcnet.org>
5268
5269         * Handled CHANNEL_CHANGE notify (ignore it) in Irssi SILC
5270           client.  Affected file irssi/src/silc/core/client_ops.c.
5271
5272         * Merged with Irssi 0.8.4 from irssi.org CVS.
5273
5274 Thu Mar 14 12:53:57 CET 2002  Pekka Riikonen <priikone@silcnet.org>
5275
5276         * Check for valid socket connection in client entries before
5277           sending any messages.  Fixes a crash, but doesn't fix some
5278           other underlaying bug that is lurking there.  Affected
5279           file silcd/packet_send.c.
5280
5281 Thu Mar 14 13:38:12 EET 2002  Timo Sirainen <tss@iki.fi>
5282
5283         * $usermode, $cumode and $cumode_space expandos shouldn't do
5284           anything with non-SILC server records. Affected file
5285           irssi/src/silc/core/silc-expandos.c
5286
5287 Wed Mar 13 21:38:26 EET 2002  Pekka Riikonen <priikone@silcnet.org>
5288
5289         * Fixed the silc_net_check_[host/local]_by_sock to support
5290           IPv6 bound sockets as well.  Now they can return IPv6 addresses
5291           as well.  Affected file lib/silcutil/silcnet.c.
5292
5293         * Fixed silc_net_addr2bin to correctly convert IPv6 addresses.
5294           Affected lib/silcutil/unix/silcunixnet.c.
5295
5296         * Fixed ID rendering (at least on some platforms, not NetBSD)
5297           for IPv6 addresses.  Affected file lib/silcutil/silcutil.c.
5298
5299 Tue Mar 12 17:58:59 EET 2002  Pekka Riikonen <priikone@silcnet.org>
5300
5301         * Added silc_hash_public_key and silc_hash_public_key_compare
5302           functions to be used with SilcHashTable.  They can be used to
5303           hash public keys and compare public keys in hash table.  Affected
5304           file lib/silcutil/silcutil.[ch].
5305
5306         * Added support for specifying multiple public keys for Client
5307           connection section in server configuration file.  This makes it
5308           possible to accept multiple public keys from same host, or to
5309           make a section that accepts any incoming host, and have the
5310           accepted public keys listed in the section.
5311
5312           Added functions silc_sever_[find/get]_public_key,  added the
5313           support for this actually to all connection sections but only
5314           the Client section is currently allowed to specify multiple
5315           public keys.
5316
5317           Affected files are silcd/server.c, server_internal.h,
5318           command.c, protocol.c, server_util.[ch], packet_receive.c.
5319
5320 Mon Mar 11 23:37:38 EET 2002  Pekka Riikonen <priikone@silcnet.org>
5321
5322         * Merged Irssi 0.8.2 from irssi.org CVS.
5323
5324 Sun Mar 10 23:34:48 CET 2002  Johnny Mnemonic <johnny@themnemonic.org>
5325
5326         * If silc_debug is TRUE, also output standard logging messages
5327           to stderr with the debug output.
5328
5329           Made silc_log_reset_all() flushing all channels before returning.
5330           Also fixed some documentation typos.
5331
5332           Affected files are lib/silcutil/silclog.[ch].
5333
5334 Sun Mar 10 20:07:49 EET 2002  Pekka Riikonen <priikone@silcnet.org>
5335
5336         * Fixed the server to check correctly the amount of connections
5337           from single host, by checking also the type of the connection.
5338           Fixed also the comparison of number of connections and number
5339           of allowed connections.  Affected files are silcd/server.c,
5340           server_util.[ch].
5341
5342 Fri Mar  8 17:16:41 EET 2002  Pekka Riikonen <priikone@silcnet.org>
5343
5344         * Fixed the USERS command reply to save the user's mode on the
5345           channel as well.  Fixed JOIN command reply to check whether a
5346           client is on channel already and not join it twice.  Affected
5347           file lib/silcclient/command_reply.c.
5348
5349         * Added new file silc-expandos.c into irssi/silc/core/ to return
5350           various stuff for various signal for the statusbar etc. updating.
5351           Now Irssi SILC client prints channel user modes etc. on the
5352           statusbar.
5353
5354         * The user mode (like server/router operator changes) is now shown
5355           on the Irssi SILC client's statusbar.  The affected files are
5356           irssi/src/silc/core/client_ops.c, silc-expandos.c.
5357
5358 Thu Mar  7 19:21:22 EET 2002  Pekka Riikonen <priikone@silcnet.org>
5359
5360         * Changed silc_mutex_[un]lock calls in lib/silcutil/silcschedule.c
5361           to SILC_SCHEDULE_[UN]LOCK macros.
5362
5363         * Added more error printing to logs in server code.  Affected
5364           files silcd/server.c and silcd/protocol.c.
5365
5366         * Fixed -S option parsing in Irssi SILC Client.  Affected file
5367           irssi/src/silc/core/silc-core.c.
5368
5369         * Added silc_buffer_alloc_size function.  Affected file is
5370           lib/silcutil/silcbuffer.h.
5371
5372 Tue Mar  5 14:37:27 EET 2002  Pekka Riikonen <priikone@silcnet.org>
5373
5374         * Changed all silc_[hash|hmac|cipher|pkcs]_default tables to
5375           constants.  Affected files in
5376           lib/silccrypt/silcpkcs.[ch], silchash.[ch], silchmac.[ch] and
5377           silccipher.[ch].
5378
5379         * Changed the internal SFTP Memory FS table to const.  Affected
5380           file lib/silcsftp/sftp_fs_memory.c.
5381
5382 Sun Mar  3 18:37:13 EET 2002  Pekka Riikonen <priikone@silcnet.org>
5383
5384         * Fixed the buffer formatting and unformatting routines to
5385           check the size of 64 bits types with sizeof().  Affected
5386           file is lib/silcutil/silcbuffmt.c.
5387
5388 Mon Feb 25 17:19:05 EET 2002  Pekka Riikonen <priikone@silcnet.org>
5389
5390         * Removed 0.6.x backwards support.
5391
5392 Sun Feb 24 12:53:25 EET 2002  Pekka Riikonen <priikone@silcnet.org>
5393
5394         * Changed all integer type names:
5395           [u]int[8/16/32/64] -> Silc[UInt/Int][8/16/32/64].  This is
5396           to avoid collisions with other libraries using same type names
5397           as we did.
5398
5399 Sat Feb 23 20:31:43 EET 2002  Pekka Riikonen <priikone@silcnet.org>
5400
5401         * Added `prefer_ipv6' argument to the functions
5402           silc_net_gethostbyname[_async].  If it is TRUE it will return
5403           IPv6 address over IPv4.  If FALSE IPv4 address is returned
5404           even if IPv6 address was found.  Affected files
5405           lib/silcutil/silcnet.[ch].
5406
5407         * Added support silc_net_create_connection[_async] to fallback
5408           to IPv4 address if IPv6 address could not be used (like if
5409           it doesn't work on a specific system).  Affected file in
5410           lib/silcutil/unix/silcunixnet.c.
5411
5412 Sat Feb 23 15:20:30 EET 2002  Pekka Riikonen <priikone@silcnet.org>
5413
5414         * Added silc_schedule_reinit function to do the enlarging
5415           of the max tasks handling capabilities of the scheduler.
5416           Affected files lib/silcutil/silcschedule.[ch].
5417
5418 Wed Feb 20 20:41:01 EET 2002  Pekka Riikonen <priikone@silcnet.org>
5419
5420         * Added automatic extern "C" { ... } for C++ compilers so the
5421           application does not need to define them.  Affected file
5422           includes/silcincludes.h.
5423
5424         * Renamed lib/silcclient/silcapi.h to silcclient.h as the
5425           old name went against naming convention.  Applications now
5426           include "silcclient.h" instead of "clientlibincludes.h".
5427           Removed includes/clientlibincludes.h, it is redundant now.
5428
5429         * Renamed includes/version.h to silcversion.h.
5430
5431         * Added really preliminary support for OS/2 into the util
5432           library.  Only thread & mutex API is implemented, others
5433           are still to be implemented.  Created the lib/silcutil/os2/
5434           directory.  Created also file includes/silcos2.h.
5435
5436 Wed Feb 20 18:48:49 EET 2002  Pekka Riikonen <priikone@silcnet.org>
5437
5438         * Added preliminary BeOS support into the util library.
5439           Created lib/silcutil/beos/, and implemented all the needed
5440           functions to support SILC on BeOS.  Created also file
5441           includes/silcbeos.h.
5442
5443 Mon Feb 18 15:49:22 EET 2002  Timo Sirainen <tss@iki.fi>
5444
5445         * Added proper initializations to silc's irssi code, so it's
5446           now possible to load it as module.  Affected files
5447           irssi/src/silc/core/silc-core.c,
5448           fe-common/silc/fe-common-silc-core.[ch] and fe-text/silc.c
5449
5450 Sun Feb 17 19:02:56 EET 2002  Pekka Riikonen <priikone@silcnet.org>
5451
5452         * Merged latest Irssi (0.8.1) from the irssi.org's CVS into
5453           the SILC tree.
5454
5455         * Fixed the silcdoc document generator to correct generate
5456           docs from all kinds of filenames.  Affected files are
5457           util/robodoc/Source/generator.c, scripts/silcdoc/silcdoc
5458
5459         * ROBOdoc documented lib/silcutil/silcmemory.h.
5460           Added also new function silc_memdup.
5461
5462         * Removed lib/silcutil/silcbufutil.h and moved those routines
5463           to the lib/silcutil/silcbuffer.h.
5464
5465 Sun Feb 17 15:52:30 EET 2002  Pekka Riikonen <priikone@silcnet.org>
5466
5467         * Added `user_count' to the SilcChannelEntry which now tells the
5468           number of users on the channel.  The user count is now saved
5469           in normal server of global channels as well.  Affected files
5470           silcd/server.c, idlist.h, packet_receive.c and command.c.
5471
5472         * Splitted lib/silcutil/silcutil.[ch] into silcfileutil.[ch] to
5473           include file utility functions.
5474
5475         * Fixed the lib/silcsftp/sftp_fs_memory.c to use silcutil routines
5476           instead of calling directly OS routines.
5477
5478         * Fixed NICK change printing in Irssi SILC Client. Fixed
5479           KICKED notify printing in Irssi SILC Client.  Affected file
5480           irssi/src/silc/core/client_ops.c.
5481
5482         * Fixed a NICK change bug in client library, to not recreate the
5483           client_entry->channels hash table everytime nick is changed.
5484           Affected file lib/silcclient/client.c.
5485
5486 Sun Feb 17 10:10:14 EET 2002  Pekka Riikonen <priikone@silcnet.org>
5487
5488         * ROBOdoc documented the lib/silcske/silcske.h, and improved
5489           the SKE interface a bit.
5490
5491         * Fixed padding problem in PKCS#1. The padding was not actually
5492           random since the random number generator was used incorrectly.
5493           This security bug affects only when encrypting with PKCS#1, and
5494           it is not currently used at all in SILC. SILC only use signing
5495           with PKCS#1. Affected file lib/silccrypt/pkcs1.c.
5496
5497 Sat Feb 16 13:44:24 EET 2002  Pekka Riikonen <priikone@silcnet.org>
5498
5499         * Rewrote the notify handling in Irssi SILC client to not call
5500           the events as signals.  Fixes problems with Perl support.
5501           Affected files irssi/src/silc/core/client_ops.c, silc-channels.c.
5502
5503         * Send the auto-nicking NICK command in client library with
5504           little timeout after connecting.  The affected file is
5505           lib/silcclient/client.c.
5506
5507         * Added following new config file settings:
5508           channel_rekey_secs, key_exchange_rekey, key_exchange_pfs,
5509           key_exchange_timeout, conn_auth_timeout, connections_max,
5510           links_max.
5511
5512           Implemented all the new config settings handling in the server.
5513
5514           Optimized the use of SKE Mutual flag usage.  Use it only
5515           if connection authentication protocol is not based in public
5516           key authentication.
5517
5518           Renamed all SilcServerConfigSection* to SilcServerConfig*
5519           to have a bit shorter names.
5520
5521           Affected files silcd/serverconfig.[ch], server.[ch], and
5522           protocol.[ch].
5523
5524 Sat Feb 16 02:46:43 CET 2002  Johnny Mnemonic <johnny@themnemonic.org>
5525
5526         * Cleaned up the listening sockets code, preparing for the rehash
5527           support.  Affected file is silcd/server.c.
5528
5529         * Fixed some output messages.  Affected files are silcd/silcd.c,
5530           and silcd/server.c.
5531
5532 Fri Feb 15 19:10:20 EET 2002  Pekka Riikonen <priikone@silcnet.org>
5533
5534         * Create lib/doc/silcrng_intro.html document as introduction
5535           to SILC RNG.  ROBOdoc documented lib/silccrypt/silcrng.h.
5536
5537 Fri Feb 15 13:23:03 CET 2002  Johnny Mnemonic <johnny@themnemonic.org>
5538
5539         * Fixes to the silcd config template.  Affected file is
5540           doc/example_silcd.conf.in.
5541
5542         * Removed type casts from silc_calloc(), conforming to the
5543           CodingStyle.  Affected file is lib/silcutil/silcconfig.c.
5544
5545         * Removed param_name member from client, server, and router
5546           section structs, now identifying the param directly.
5547
5548           Added CONFIG_FREE_AUTH macro in config file parsing.
5549
5550           Affected files are silcd/serverconfig.[ch].
5551
5552 Fri Feb 15 12:24:08 EET 2002  Timo Sirainen <tss@iki.fi>
5553
5554         * Fixed command line parameter handling. All SILC initialization
5555           is now done in silc_core_init() which also fixes autoconnecting
5556           to servers.
5557
5558           Affected files irssi/src/silc/core/silc-core.c,
5559           irssi/src/fe-text/silc.c.
5560
5561 Thu Feb 14 22:03:58 EET 2002  Pekka Riikonen <priikone@silcnet.org>
5562
5563         * Added new configuration options and blocks:
5564           keepalive_secs, reconnect_count, reconnect_interval,
5565           reconnect_interval_max, reconnect_keep_trying and
5566           require_reverser_lookup.  Added ConnectionParam block, and
5567           implemented the connection parameters when connecting as
5568           initiator and when accepting connections as responder.
5569
5570           Added CONFIG_IS_DOUBLE macro in config file parsing, to check
5571           whether given configuration value has been given already.
5572
5573           Affected files silcd/serverconfig.[c], server.[c].
5574
5575         * Splitted the doc/example_silcd.conf.in.  Separated the crypto
5576           algorithm parts and created new file silcalgs.conf, that
5577           is now included from the example_silcd.conf.in.
5578
5579         * Optimized the silc_server_connect_to_router_second to take
5580           the connection configuration object from the SilcServerConnection
5581           object instead of finding it during the connecting phase.
5582           Added the configuration object to SilcServerConnection struct.
5583           Affected files silcd/server_internal.h, server.c.
5584
5585 Thu Feb 14 16:02:26 CET 2002  Pekka Riikonen <priikone@silcnet.org>
5586
5587         * Add the client on channel after it was resolved at the
5588           channel message receiving, and it was not already on the
5589           channel.  Affected file lib/silcclient/client_channel.c.
5590
5591 Wed Feb 13 23:16:41 EET 2002  Pekka Riikonen <priikone@silcnet.org>
5592
5593         * Fixed the public key authentication to allocate always the
5594           destination signature buffer instead of using static buffer.
5595           Affected file silcd/protocol.c.
5596
5597 Wed Feb 13 20:51:13 EET 2002  Pekka Riikonen <priikone@silcnet.org>
5598
5599         * Unified the serverconfig.[ch]'s helper function interface.
5600           Affected file silcd/serverconfig.[ch].
5601
5602         * Removed doc/example_silc.conf.in since it is redundant.
5603           The make install will now install irssi/silc.conf file.
5604
5605         * Added new Passphrase and Publickey authentication methods to
5606           config file, allowing both public key and passphrase based
5607           authentication to be set at the same time.
5608
5609           Added `prefer_passphrase_auth' setting in config file which
5610           can be used to set to prefer passwd auth if both passwd and
5611           public key is set.  If not set, public key is preferred.
5612           This has effect only when being initiator (responder will try
5613           both anyway).
5614
5615           Added support for authentication with passphrase and public key
5616           at the same time.  The passphrase is tried first always since
5617           it is faster to check.
5618
5619           Affected file silcd/serverconfig.[ch], server.c, protocol.[ch].
5620
5621 Wed Feb 13 12:46:25 CET 2002  Johnny Mnemonic <johnny@themnemonic.org>
5622
5623         * Merged the new SILC Config library, with the server parsing
5624           support.  Read the header file silcconfig.h or the toolkit
5625           documentation for the news.  Affected files are
5626           doc/example_silcd.conf.in lib/silcutil/silcconfig.[ch]
5627           silcd/command.c silcd/packet_receive.c silcd/packet_send.c
5628           silcd/protocol.c silcd/server.c silcd/server_backup.c
5629           silcd/serverconfig.[ch] silcd/silcd.c.
5630
5631         * Fixed some silclog documentation.  Affected file is
5632           lib/silcutil/silclog.h.
5633
5634 Sun Feb 10 18:11:30 EET 2002  Pekka Riikonen <priikone@silcnet.org>
5635
5636         * The silc_cipher_register, silc_hash_register and
5637           silc_hmac_register now checks if the object to be registered
5638           is registered already.  Affected files are
5639           lib/silccrypt/silccipher.c, silchash.c and silchmac.c.
5640
5641 Sun Feb 10 15:48:38 EET 2002  Pekka Riikonen <priikone@silcnet.org>
5642
5643         * Merged new irssi from irssi.org's CVS, the version 0.7.99.
5644
5645 Sat Feb  9 14:54:33 EET 2002  Pekka Riikonen <priikone@silcnet.org>
5646
5647         * Allow zero length channel messages inside the Channel Message
5648           Payload.  Affected file lib/silccore/silcchannel.c.
5649
5650         * Fixed scripts/silcdoc/silcdoc to support all kinds of filenames
5651           as header filenames.
5652
5653         * Removed lib/silcclient/README and created HTML file
5654           lib/silcclient/silcclient_using.html, which is now included
5655           as part of Toolkit documentation.
5656
5657 Thu Feb  7 10:12:25 CET 2002  Pekka Riikonen <priikone@silcnet.org>
5658
5659         * Fixed CUMODE_CHANGE notify handling to change the mode of
5660           correct client.  Affected file lib/silcclient/client_notify.c.
5661
5662         * Make silc_rng_alloc fail if it cannot allocate the sha1
5663           hash algorithm.  Affected file lib/silccrypt/silcrng.c.
5664
5665 Sun Feb  3 17:20:52 EET 2002  Pekka Riikonen <priikone@silcnet.org>
5666
5667         * Fixed the file transfer's key agreement payload to include
5668           zero port also if the hostname is NULL because it could not
5669           be bound.
5670
5671           Call file transfer monitor callback now also if error occurs
5672           during key agreement protocol.
5673
5674           Changed the silc_client_file_send interface to return the
5675           SilcClientFileError instead of session id.  The session ID
5676           is returned into pointer provided as argument.
5677
5678           Check that the file exists locally before sending the
5679           file transfer request at all.
5680
5681           Affected file lib/silcclient/client_ftp.c, silcapi.h.
5682
5683         * Added SILC_CLIENT_FILE_KEY_AGREEMENT_FAILED file transfer
5684           error than can occur while key agreement protocol.  Affected
5685           file lib/silcclient/silcapi.h.
5686
5687         * Fixed the event_mode CMODE handler to not crash when mode
5688           is changed and +k mode is set in the channel.  Affected file
5689           irssi/src/silc/core/silc-channels.c.
5690
5691         * Fixed SILC_LOG_ERROR to give out Error and not Warning, and
5692           SILC_LOG_WARNING to give out Warning and not Error.  Affected
5693           file lib/silcutil/silclog.c.
5694
5695         * Fixed the channel message payload decryption in the function
5696           silc_channel_message_payload_decrypt to not modify the original
5697           buffer before it is verified that the message decrypted
5698           correctly.  Otherwise, next time it is called with correct
5699           channel key it won't encrypt since the payload is corrupted.
5700           Affected file lib/silccore/silcchannel.c.
5701
5702 Sun Feb  3 11:46:12 EET 2002  Pekka Riikonen <priikone@silcnet.org>
5703
5704         * Do not constantly resize the window.  A fix patch by cras.
5705           Affected file irssi/src/fe-text/screen.c.
5706
5707 Sat Feb  2 16:54:18 EET 2002  Pekka Riikonen <priikone@silcnet.org>
5708
5709         * Applied IPv6 fix patch from Jun-ichiro itojun Hagino.
5710           Affected file lib/silcutil/silcnet.c.
5711
5712 Fri Feb  1 22:33:11 EET 2002  Pekka Riikonen <priikone@silcnet.org>
5713
5714         * Fixed a bug in hash table internal routine for traversing
5715           the table with foreach callback.  The current entry may
5716           become invalid in the callback but it was referenced after
5717           the callback returned.
5718
5719           Do not allow auto rehashing of hash table during the
5720           silc_hash_table_foreach operation, for same reasons as it is
5721           not allowed for SilcHashTableList.  Affected files are
5722           lib/silcutil/silchashtable.[ch].
5723
5724 Fri Feb  1 14:55:00 CET 2002  Pekka Riikonen <priikone@silcnet.org>
5725
5726         * Defined DLLAPI into silcincludes.h and silcwin32.h for
5727           Win32 DLL.  extern's in header files are now declared with
5728           DLLAPI.
5729
5730 Thu Jan 31 23:34:33 EET 2002  Pekka Riikonen <priikone@silcnet.org>
5731
5732         * Fixed private message handling.  It used some old code that
5733           caused the client to crash.  Affecte file is
5734           lib/silcclient/client_prvmsg.c.
5735
5736 Thu Jan 31 19:06:22 EET 2002  Pekka Riikonen <priikone@silcnet.org>
5737
5738         * Added function silc_client_add_channel,
5739           silc_client_replace_channel_id, and removed functions
5740           silc_client_new_channel_id and silc_idlist_get_channel_by_id
5741           from client library.
5742
5743         * Added cross reference of the joined channels to the
5744           SilcClientEntry, and changed the SilcChannelEntry's
5745           users list to SilcHashTable.  The affected files are
5746           lib/silcclient/idlist.[ch].
5747
5748         * Fixed a bug in hash table tarversing.  While the hash table
5749           is traversed with SilcHashTableList the table must not be
5750           rehashed.  It is now guaranteed that auto rehashable tables
5751           are not rehashed while tarversing the list.  Also defined that
5752           silc_hash_table_rehash must not be called while tarversing
5753           the table.  Added function silc_hash_table_list_reset that must
5754           be called after the tarversing is over.  The affected files are
5755           lib/silcutil/silchashtable.[ch].
5756
5757         * Changed all hash table traversing to call the new
5758           silc_hash_table_list_reset in server and in client library.
5759
5760         * Added function silc_client_on_channel to return the
5761           SilcChannelUser entry if the specified client entry is joined
5762           on the specified channel.  This is exported to application as
5763           well.  Affected files lib/silcclient/client_channel.c, silcapi.h.
5764
5765 Wed Jan 30 19:14:31 EET 2002  Pekka Riikonen <priikone@silcnet.org>
5766
5767         * Fixed founder regaining problem with JOIN command on normal
5768           server.  The notify for mode change must be sent always and
5769           not only if !cmd->pending.  Affected file silcd/command.c.
5770
5771         * Fixed the WHOWAS command's reply sending to support the
5772           lists correctly.  Affected file silcd/command.c.
5773
5774 Wed Jan 30 11:11:47 CET 2002  Pekka Riikonen <priikone@silcnet.org>
5775
5776         * When sending JOIN command to router for processing the
5777           sender's old command identifier was not saved back to the
5778           sender's command context, fixed now.  The affected file is
5779           silcd/command.c.
5780
5781         * Create the key in JOIN command of the router did not return
5782           the channel key, added check for this.  Affected file is
5783           silcd/command.c.
5784
5785         * Fixed a channel ID update bug in JOIN command reply.  Do
5786           not directly upgrade the ID but call the function
5787           silc_idlist_replace_channel_id if the ID was changed.
5788           Affected file silcd/command_reply.c.
5789
5790         * Fixed memory leaks from command calling if it would fail.
5791           Affected file silcd/command.c.
5792
5793 Tue Jan 29 19:49:31 EET 2002  Pekka Riikonen <priikone@silcnet.org>
5794
5795         * Applied patches from cras:
5796
5797           Memory leak fixes around libaries, irssi window resize fix,
5798           new silclist.h and silcdlist.h, all extern inline changed to
5799           static inline.
5800
5801         * Removed dotconf from lib/dotconf, not needed anymore.
5802
5803         * Removed TRQ from lib/trq, not needed anymore.
5804
5805         * Do more frequent heartbeats (5 minutes instead of 10 minutes)
5806           with server connections.  Later this will be configurable
5807           in config file after new config file is done.  Affected file
5808           silcd/server.c.
5809
5810 Tue Jan 29 10:35:03 CET 2002  Pekka Riikonen <priikone@silcnet.org>
5811
5812         * Fixed a crash in server related to channel announcements.
5813           Affected file silcd/server.c.
5814
5815 Mon Jan 28 17:49:42 EET 2002  Pekka Riikonen <priikone@silcnet.org>
5816
5817         * Fixed memory leaks in silc_server_create_new_channel*
5818           functions.  Affected file silcd/server.c.
5819
5820         * Fixed the CHANNEL_CHANGE notify to re-announce the channel
5821           which ID was changed.  This way the router will send the
5822           user list for the channel again, and server won't be in
5823           desync in some rare circumstances.  Affected file is
5824           silcd/packet_receive.c.
5825
5826 Sun Jan 27 21:04:19 EET 2002  Pekka Riikonen <priikone@silcnet.org>
5827
5828         * Check for NULL socket pointer in the function
5829           silc_server_packet_send_to_channel_real.  Affected file
5830           silcd/packet_send.c.
5831
5832         * Fixed the BAN notify handling to correctly remove ban
5833           list.  Affected file silcd/packet_receive.c.
5834
5835 Sat Jan 26 23:01:03 EET 2002  Pekka Riikonen <priikone@silcnet.org>
5836
5837         * Fixed some header addition to Toolkit distribution in
5838           lib/silcutil/Makefile.am and lib/trq/Makefile.am.
5839
5840         * Added lib/silcclient/client_ops_example.h as an template
5841           file for application programmers to quickly start using
5842           the SilcClientOperation functions in their application.
5843           Updated the lib/silcclient/README as well to tell about this
5844           nice file made available.
5845
5846 Sat Jan 26 10:45:41 EET 2002  Pekka Riikonen <priikone@silcnet.org>
5847
5848         * Call silc_server_remove_from_channels when removing client
5849           entry when NO_SUCH_CLIENT_ID was received.  Affected file
5850           is silcd/command_reply.c.
5851
5852 Fri Jan 25 19:12:36 EET 2002  Pekka Riikonen <priikone@silcnet.org>
5853
5854         * Added server & router operator statistics updating.  Affected
5855           file silcd/packet_receive.c and silcd/command.c.
5856
5857         * Fixed the SERVER_SIGNOFF notify handling on normal server
5858           not to save the history information for clients.  Same was
5859           fixed earlier in remove_clients_by_server function, but not
5860           here.  Affected file silcd/packet_receive.c.
5861
5862         * Raised the default connection-retry count from 4 to 7 in
5863           server.  Affected file silcd/server.h.
5864
5865         * Cancel any possible reconnect timeouts when we start the
5866           key exchange.  Affected file silcd/server.c.
5867
5868         * Do not reconnect on connection failure when SCONNECT was
5869           given.  Affected files silcd/server.[ch].
5870
5871 Tue Jan 22 18:19:36 EET 2002  Pekka Riikonen <priikone@silcnet.org>
5872
5873         * Removed assert()'s from the lib/silcclient/client_keyagr.c.
5874
5875         * Fixed the NICK command to always give the unformatted
5876           nickname to the one giving the NICK command.  If unformatted
5877           nickname is cached already it will be formatted and the
5878           local entry will always get the unformatted nickname.
5879           Affected file lib/silcclient/idlist.c.
5880
5881         * Fixed some double frees from client library commands.
5882           Affected file is lib/silcclient/command.c.
5883
5884         * Fixed CUMODE command in server to assure that no one can
5885           change founder's mode than the founder itself, there was a
5886           little bug.  Affected file silcd/command.c.
5887
5888 Mon Jan 21 19:07:53 EET 2002  Pekka Riikonen <priikone@silcnet.org>
5889
5890         * Removed the SilcClientCommandDestructor from the client
5891           libary, it is not needed anymore.  Affected files are
5892           lib/silcclient/silcapi.h, command[_reply].[ch],
5893           client_notify, idlist.c.
5894
5895         * Fixed GETKEY command to first resolve client, and then
5896           resolve the server only if the client was not found, instead
5897           of resolving both at the same time.  Affected file is
5898           lib/silcclient/command.c.
5899
5900         * Added silc_client_start_key_exchange_cb and lookup the
5901           remote hostname and IP address before starting the key
5902           exchange with server.  The affected file is
5903           lib/silcclient/client.c.
5904
5905         * The server's public key is now saved using the IP address
5906           of the server and not the servername for the filename.
5907           The hostname public key filename is checked as an fall back
5908           method if the IP address based filename is not found.
5909
5910           Fixed the GETKEY command to save the fetched server key
5911           in correct filename.
5912
5913           Print the remote server's hostname now when new key is
5914           received during connection process.  Affected file is
5915           irssi/src/silc/core/client_ops.c.
5916
5917         * Return always our own public key to the client if it asks
5918           for it with GETKEY command.  Affected file silcd/command.c.
5919
5920         * Removed the use_auto_addr variable from default config
5921           file since it was in wrong section.  Affected file is
5922           irssi/src/config.
5923
5924         * Fixed TOPIC_CHANGE notification to not route it when it
5925           was sent using silc_server_send_notify_to_channel function.
5926           Affected file silcd/command.c.
5927
5928         * Fixed silc_server_send_notify_kicked to send the kicker's
5929           Client ID also, it was missing.  Affected files are
5930           silcd/command.c, silcd/packet_send.[ch].
5931
5932 Thu Jan 17 18:59:11 EET 2002  Pekka Riikonen <priikone@silcnet.org>
5933
5934         * Do not save client history information in SERVER_SIGNOFF.
5935           Fixes the bug in normal server that it does not detect
5936           the client becoming valid after the server becomes back
5937           online.  Affected file silcd/server_util.c.
5938
5939         * Added `sock_error' field  into the SilcSocketConnection
5940           context.  When error occurs during socket operation (read
5941           or write) the error is saved.  Added also new function
5942           silc_socket_get_error to return human readable socket error
5943           message.  Affected files are lib/silcutil/silcsockconn.[ch],
5944           lib/silcutil/unix/silcunixsockconn.c, and
5945           lib/silcutil/win32/silcwin32sockconn.c.
5946
5947         * The server now prints the socket error message in the
5948           signoff for client.  Affected file silcd/server.c.
5949
5950         * Fixed the `created' channel information sending from router
5951           to server in JOIN command.  Checks now whether the channel
5952           really was created or not and set it according that.
5953
5954           Fixed the JOIN command to use the client entry's current
5955           ID during the joining procedure instead of the one it sent
5956           in the command (it is checked though), since it can change
5957           between the packet processing and command processing, and
5958           would just case unnecessary pain in the client end.  Affected
5959           file silcd/command.c.
5960
5961         * Fixed a channel key payload sending to use correct channel
5962           ID when the server was forced to change the channel's ID by
5963           router.  Router sent the key payload with the old Channel ID.
5964           Affected file silcd/packet_receive.c.
5965
5966 Wed Jan 16 22:26:30 EET 2002  Pekka Riikonen <priikone@silcnet.org>
5967
5968         * Call silc_server_save_channel_key only if the key payload
5969           was provided in the JOIN command's command reply.  Affected
5970           file silcd/command_reply.c.
5971
5972 Tue Jan 15 18:49:41 EET 2002  Pekka Riikonen <priikone@silcnet.org>
5973
5974         * Fixed silc_mp_sizeinbase to return the value correctly with
5975           MPI.  Affected file lib/silcmath/mp_mpi.c.
5976
5977         * Fixed the stop_server signal to correctly stop the scheduler
5978           and gracefully stop the server when SIGTERM or SIGINT signals
5979           are received.  Affected file silcd/silcd.c.
5980
5981 Mon Jan  7 23:38:19 CET 2002  Johnny Mnemonic <johnny@themnemonic.org>
5982
5983         * Simple handling of TERM and HUP signals. Also added some log
5984           flushing call around.  Affected file is
5985           silcd/silcd.c.
5986
5987         * Fixed small bugs in silclog.c. Now buffering output will take
5988           effect after 10 seconds since startup: This will ensure that
5989           no important startup messages are lost. Also output redirection
5990           will preserve original format ([Date] [Type] message).
5991           Affected file is lib/silcutil/silclog.c.
5992
5993         * Added two options to the config file, in the logging section:
5994           quicklogs:<yes/no>: and flushdelay:<seconds>:.  Affected files
5995           lib/silcutil/silclog.[ch], silcd/serverconfig.[ch].
5996
5997 Sun Jan  6 12:49:40 EET 2002  Pekka Riikonen <priikone@silcnet.org>
5998
5999         * Do not print the warning about log files not being initialized
6000           more than once to avoid excess logging.  Affected file is
6001           lib/silcutil/silclog.c.
6002
6003         * Fixed the SIM compilation in lib/silcsim/Makefile.am.  Fixed
6004           the SIM copying in make install in Makefile.am.pre.
6005
6006 Sun Jan  6 01:10:21 CET 2001  Johnny Mnemonic <johnny@themnemonic.org>
6007
6008         * Rewritten silclog APIs. Globally interesting changes follows:
6009           silc_log_set_files() changed to silc_log_set_file().
6010           silc_log_set_callbacks() changed to silc_log_set_callback().
6011           ROBOdoc documented silclog header file.
6012           SilcLogCb now returns bool to wether inihibit the default
6013           handler or not (to keep the old behaviour return always TRUE).
6014           The new APIs should also fix the problem of the
6015           silcd_error.log file that was written in the current directory.
6016
6017           New features:
6018           Log files streams will remain opened after silc_log_set_file()
6019           call, means less CPU usage notably on high traffic servers.
6020           File streams are now full buffered, and flushed to the disk
6021           every 5 minutes, lesses HD activity and CPU usage.
6022           Messages can be redirected, allowing admins to configure
6023           one single logfile for all server messages.
6024           the silc_log_quick global variable to activate fast-logging.
6025           Affected files lib/silcutil/silclog.[ch]
6026
6027         * Changed some code to conform new silclog APIs. Affected
6028           files are doc/example_silcd.conf.in, silcd/server.c
6029           irssi/src/silc/core/silc-core.c, silcd/serverconfig.[ch],
6030           silcd/silcd.c.
6031
6032         * Fixed a memory leak that could occur in some situations.
6033           Affected file silcd/serverconfig.c.
6034
6035 Sat Jan  5 13:37:29 EET 2002  Pekka Riikonen <priikone@silcnet.org>
6036
6037         * Added the silc_client_del_client to remove the client from
6038           all channels as well.  Affected file lib/silcclient/idlist.c.
6039
6040         * Fixed the client library to correctly remove the client
6041           from all channels when the client entry is being destroyed.
6042           Affected file lib/silcclient/client_notify.c, command.c.
6043
6044         * Added auto-nicking support to the client library.  If the
6045           applicatio now sets client->nickname it will be sent to the
6046           server after connecting by the library.  This way for example
6047           SILCNICK (or IRCNICK) environment variables will have effect
6048           and always change the nickname automatically to whatever
6049           it is wanted.  Affected file lib/silcclient/client.[ch].
6050
6051         * Renamed silc_server_command_bad_chars to the
6052           silc_server_name_bad_chars and moved it to the
6053           silcd/server_util.[ch].  Added also new function
6054           silc_server_name_modify_bad to return nickname that
6055           includes bad characters as new nickname without those
6056           bad characters.  This check and modify is now used in
6057           silc_server_new_client when the username is initially set
6058           as nickname, so it must be checked to be valid nickname.
6059           Affected file silcd/packet_receive.c.
6060
6061         * The nickname length is now taken from the packet for real
6062           and not trusted to strlen() since it clearly can return
6063           wrong length for nickname including bad characters.  This
6064           also applies to channel names.  Affected file silcd/command.c.
6065
6066         * Removed the lib/silcsilm/modules directory.  Modules are now
6067           compiled into the lib/silcsim.  Fixed the copying of the
6068           modules to follow symbolic links in Makefile.am.pre.
6069
6070 Wed Jan  2 18:56:21 EET 2002  Pekka Riikonen <priikone@silcnet.org>
6071
6072         * Fixed silc_string_regexify list creation.  Fixes bugs with
6073           BAN and INVITE commands in server.  The affected file is
6074           lib/silcutil/unix/silcunixutil.c.
6075
6076 Sun Dec 30 13:41:34 EET 2001  Pekka Riikonen <priikone@silcnet.org>
6077
6078         * Removed the command destructor entirely from the server's
6079           command and command reply routines.  It is not needed, and
6080           its usage was buggy and caused crashes.  Affected files are
6081           silcd/command[_reply].[ch].
6082
6083 Fri Dec 28 12:43:22 EET 2001  Pekka Riikonen <priikone@silcnet.org>
6084
6085         * Cancel protocol and NULL sock->protocol if timeout
6086           occurred during protocol.  Affected file silcd/server.c.
6087
6088         * Cancel protocol timeouts always before calling the final
6089           callback, to assure that after final callback is called
6090           no other state will be called for the protocol anymore.
6091           Affected file silcd/protocol.c.
6092
6093         * Print error log if incoming connection configuration could
6094           not be found.  Affected file silcd/server.c.
6095
6096         * Fixed JOIN command to correctly save the founder mode
6097           to the client on normal SILC server, when the channel
6098           was created by the router.  Affected file silcd/command.c.
6099
6100         * Fixed LIST command (hopefully) to send correct reply
6101           packets.  Affected file silcd/command.c.
6102
6103 Thu Dec 20 16:14:52 CET 2001  Pekka Riikonen <priikone@silcnet.org>
6104
6105         * The silc_packet_receive_process now returns FALSE if the
6106           read data was invalid packet, and TRUE if it was ok.
6107
6108           The server now checks that if unauthenticated connection
6109           sends data and its processing fails the server will close
6110           the connection since it could be a malicious flooder.
6111
6112           Affected files lib/silccore/silcpacket.[ch], silcd/server.c.
6113
6114 Wed Dec 19 21:31:25 EET 2001  Pekka Riikonen <priikone@silcnet.org>
6115
6116         * Make sure the warning about error opening a log file is
6117           printed only once and not everytime it fails (produces
6118           too much useless log).  Affected file lib/silcutil/silclog.c.
6119
6120 Wed Dec 19 18:21:51 CET 2001  Johnny Mnemonic <johnny@themnemonic.org>
6121
6122         * Made the silc_server_daemonise() function more readable.
6123           Affected file silcd/server.c.
6124
6125         * Pid file is now optional, the user may comment it out from
6126           the config file. Removed define SILC_SERVER_PID_FILE, we
6127           don't need a default any longer.  Affected file
6128           configure.in.pre, lib/Makefile.am.pre.
6129
6130         * Make some use of the pid file. The server now dies at startup
6131           if it detects a valid pid file on his path. The server would
6132           die anyway in this circumstance, because of the bind() failure.
6133           Affected file silcd/silcd.c.
6134
6135         * No longer compiling lib/dotconf.
6136
6137 Mon Dec 17 18:24:27 EET 2001  Pekka Riikonen <priikone@silcnet.org>
6138
6139         * Fixed JOIN command parsing not to crash.  Affected file
6140           lib/silcclient/command.c.
6141
6142         * Fied the NICK_CHANGE notify to add the new client entry
6143           even it is resolved.  This removes an <[unknown]> nick
6144           thingy bug in the client.  Affected file is
6145           lib/silcclient/client_notify.c.
6146
6147         * Do not try to allocate 0 bytes (efence does not like it)
6148           in lib/silccore/silccomand.c when encoding payload.
6149
6150         * Do not take IRCNICK as nickname in Irssi SILC client since
6151           it is not possible to set nickname before hand connecting
6152           the server (TODO has an entry about adding auto-nicking
6153           support).
6154
6155         * Changed the silc_server_command_pending to check whether
6156           there already exists an pending entry with the specified
6157           command, command identifier and pending callback.  This is
6158           to fix IDENTIFY and WHOIS related crashes that may register
6159           multiple pending commands with same identifier.  Affected
6160           file silcd/command.c.
6161
6162         * Fixed the server to reconnect to the router even if it
6163           was already reconnecting and EOF was received.  This to
6164           fix a possibility that the server wouldn't ever try to
6165           auto-reconnect to the router.  Affected file silcd/server.c.
6166
6167 Sat Dec 15 20:31:50 EET 2001  Pekka Riikonen <priikone@silcnet.org>
6168
6169         * Fixed the server's password authentication to use the
6170           length of the locally saved password, and not the one
6171           sent in the packet.  Affected file silcd/protocol.c.
6172
6173         * Fixed same password authentication problem in the
6174           Authentication Payload handling routines in
6175           lib/silccore/silcauth.c.
6176
6177         * Yet another password authentication problem fixed with
6178           channel password handling in silcd/command.c.
6179
6180 Mon Dec 10 19:57:40 EET 2001  Pekka Riikonen <priikone@silcnet.org>
6181
6182         * If first character of string in silc_parse_userfqdn is '@'
6183           then do not parse it.  Affected file is
6184           lib/silcutil/silcutil.c.
6185
6186 Sun Dec  9 22:18:50 EET 2001  Pekka Riikonen <priikone@silcnet.org>
6187
6188         * Fixed minor bug in IDENTIFY command reply sending, which
6189           caused various weird problems during JOIN when it was
6190           resolving names for users.  Affected file silcd/command.c.
6191
6192 Sun Dec  9 19:18:41 EET 2001  Pekka Riikonen <priikone@silcnet.org>
6193
6194         * Fixed the IDENTIFY command reply sending to chech better valid
6195           clients.  It was possible to send incomplete list of replies.
6196           Affected file silcd/command.c.
6197
6198 Sat Dec  8 15:58:31 EET 2001  Pekka Riikonen <priikone@silcnet.org>
6199
6200         * Added silc_client_command[s]_[un]register functions now to
6201           dynamically register the commands in client library.  Removed
6202           the static table of commands.  This allows the client library
6203           to call commands without causing the application to know about
6204           what commands library has called.
6205
6206           Removed the INFO command reply kludge to detect when the command
6207           was called by library.  Now library use its own command reply
6208           function for INFO command.
6209
6210           Added function silc_client_command_call to call a command.
6211           Application can use it to call command, not access the structure
6212           directly.
6213
6214           Now all commands that are sent by the client library (not
6215           explicitly sent by application) use own command reply functions.
6216
6217           Affected files around lib/silcclient/ and in
6218           irssi/src/silc/core/.
6219
6220         * Fixed the WHOIS command reply sending to chech better valid
6221           clients.  It was possible to send incomplete list of replies.
6222
6223           Fixed the WHOIS and IDENTIFY to send the request to router
6224           if normal server did not do it and did not find any results.
6225
6226           Affected file silcd/command.c.
6227
6228 Thu Dec  6 17:21:06 EET 2001  Pekka Riikonen <priikone@silcnet.org>
6229
6230         * Moved the internal data from SilcClient context into its
6231           own file, not accesible to application.  Affected files
6232           lib/silcclient/client.h and lib/silcclient/client_internal.h,
6233           and other files in client library.
6234
6235 Thu Dec  6 10:37:55 EET 2001  Pekka Riikonen <priikone@silcnet.org>
6236
6237         * Added doc/examples installation target in Makefile.am.pre.
6238           A patch by salo.
6239
6240 Tue Dec  4 17:43:19 EET 2001  Pekka Riikonen <priikone@silcnet.org>
6241
6242         * If NO_SUCH_CLIENT_ID notify is received for WHOIS or IDENTIFY
6243           commands the found client entry will be removed from the
6244           cache, after notifying application about the error.  Affected
6245           file lib/silcclient/command_reply.c.
6246
6247         * Changed the /MSG to check for exact nickname user gave, and
6248           not let `nick' match `nick@host' if it is only one found.  Now,
6249           user must type the exact nickname (like nick@host2) even if
6250           there are no more than one same nicks found.  This is to avoid
6251           a possibility of sending nickname to wrong nickname since
6252           `nick' could match `nick@host'.  Affected file is
6253           irssi/src/core/silc-servers.c.
6254
6255 Mon Dec  3 18:49:45 EET 2001  Pekka Riikonen <priikone@silcnet.org>
6256
6257         * Do not print "you are now server operator" or similar when
6258           giving /away command.  Affected files are
6259           irssi/src/silc/core/client_ops.c, silc-servers.h.
6260
6261         * Made the silc_server_command_pending_error_check to send
6262           the same command reply payload it received back to the
6263           original sender of the command.  This way all arguments
6264           that was received by the server will be received by the
6265           client too.  Affected file silcd/command.c.
6266
6267         * Added the silc_idcache_add to return the created cache entry
6268           to a pointer.  Affected file lib/silccore/silcidcache.[ch].
6269
6270         * Add global clients to expire if they are not on any channel.
6271           This is because normal server will never know if they signoff
6272           if they are not on any channel.  The cache expiry will take
6273           case of these entries.  This is done by normal servers only.
6274           The affected files are silcd/command_reply.c,
6275           silcd/idlist.[ch], silcd/server and silcd/packet_receive.c.
6276
6277         * If server receives invalid ID notification for WHOIS or
6278           IDENTIFY and the ID exists in the lists, it is removed.
6279           Affected file silcd/command_reply.c.
6280
6281         * If NO_SUCH_CLIENT_ID is received for WHOIS or IDENTIFY command
6282           in client then client entry that it matches is searched and
6283           the nickname is printed on the screen for user.  Affected
6284           file irssi/src/silc/core/client_ops.c.
6285
6286 Mon Dec  3 11:56:59 EET 2001  Pekka Riikonen <priikone@silcnet.org>
6287
6288         * Use cache entry expire time in the LIST command reply to
6289           purge old entries from the cache after the LIST command
6290           reply has been received.  This way we don't have non-existent
6291           entries in the cache for too long.  Affected file is
6292           silcd/command_reply.c.
6293
6294 Sun Dec  2 23:29:07 EET 2001  Pekka Riikonen <priikone@silcnet.org>
6295
6296         * If we are normal server, and we've not resolved client info
6297           in WHOIS or IDENTIFY from router, and it is global client,
6298           we'll check whether it is on some channel.  If it is not
6299           then we cannot be sure about its validity and will resolve it
6300           from router.  Fixes a bug in WHOIS and IDENTIFY.  Affected
6301           file silcd/command.c.
6302
6303         * Search channel by name (if possible) rather than by ID
6304           in IDENTIFY command's command reply.  Affected file is
6305           silcd/command_reply.c.
6306
6307 Sun Dec  2 13:48:46 EET 2001  Pekka Riikonen <priikone@silcnet.org>
6308
6309         * Distribute to the channel passphrase in CMODE_CHANGE notify.
6310           Updated specs and implemented it.  Affected file silcd/command.c,
6311           silcd/packet_send.c and silcd/packet_receive.c.
6312
6313         * Implemented the <founder auth> payload handling in the JOIN
6314           command.  If provided all conditions for channel joining
6315           except requirement to provide correct passphrase can be
6316           overrided by the channel founder.  Updated the protocol specs.
6317           Affected file silcd/command.c.
6318
6319           Added support for founder auth in JOIN command in client
6320           library.  Fixed the parsing of the JOIN command now to support
6321           all options as they should be.  The affected file is
6322           lib/silcclient/command.c.
6323
6324         * Optimized the WHOIS and IDENTIFY commands to send the request
6325           to router only if it includes nicknames or other names.  If
6326           they include only IDs then check the local cache first before
6327           routing.  Affected file is silcd/command.c.
6328
6329         * Added channels topic announcements.  Affected file is
6330           silcd/packet_receive.c and silcd/server.c.
6331
6332         * Fixed the silc_server_send_notify_topic_set to really destine
6333           the packet to channel.  Affected file silcd/packet_send.c.
6334
6335         * Fixed a crash in CHANNEL_CHANGE notify handling in the client
6336           library.  Affected file lib/silcclient/client_notify.c.
6337
6338         * Added UMODE announcements.  Affected file silcd/server.c.
6339
6340 Sat Dec  1 12:52:39 EET 2001  Pekka Riikonen <priikone@silcnet.org>
6341
6342         * Memory leak fixes in:
6343
6344           lib/silcutil/silcsockconn.c
6345           lib/silcske/silcske.c
6346           lib/silcske/groups.c
6347           lib/silccrypt/rsa.c
6348           lib/silccrypt/silcpkcs.c
6349           lib/silccore/silccommand.c
6350           lib/silccore/silcidcache.c
6351           silcd/idlist.c
6352           silcd/packet_send.c
6353           silcd/command.c
6354
6355         * ROBOdoc documented the lib/silcske/groups.h file and a
6356           bit changed the interface for better.
6357
6358 Thu Nov 29 22:12:50 EET 2001  Pekka Riikonen <priikone@silcnet.org>'
6359
6360         * Update the client entry context in the ID cache after
6361           nick change.  Affected file lib/silcclient/command.c.
6362           Fixes the CUMODE command when regaining founder privileges,
6363           and a little WHOIS problem.
6364
6365         * Fixed silc_net_gethostbyname to correctly call the
6366           inet_ntop.  Affected file lib/silcutil/silcnet.c.
6367
6368 Thu Nov 29 19:31:23 EET 2001  Pekka Riikonen <priikone@silcnet.org>'
6369
6370         * Added IPv6 support checking to the configure.in.pre, added
6371           also --enable-ipv6 option to override the check.  Affected
6372           file configure.in.pre.
6373
6374         * The silc_thread_create now calls the start function
6375           directly if threads support is not compiled in.  Removes
6376           ugly #ifdef's from generic code.  Affected files are
6377           lib/silcutil/unix/silcunixthread, win32/silcwin32thread.c.
6378
6379         * Added silc_net_gethostby[name/addr]_async to asynchronously
6380           resolve.  Affected files are lib/silcutil/silcnet.[ch].
6381
6382         * Added support for rendering IPv6 based server, client and
6383           channel IDs.  Affected file lib/silcutil/silcutil.c.
6384
6385         * Added support for creating IPv6 based server IDs.  Affected
6386           file is silcd/serverid.c.
6387
6388 Wed Nov 28 23:46:09 EET 2001  Pekka Riikonen <priikone@silcnet.org>'
6389
6390         * Added silc_net_gethostby[addr/name] into the
6391           lib/silcutil/silcnet.[ch].  Added IPv6 support to Unix network
6392           routines.  Added silc_net_is_ip[4/6].  Affected file is
6393           lib/silcutil/unix/silcunixnet.c.  All routines that take
6394           address as argument now supports both IPv4 and IPv6 addresses.
6395
6396 Mon Nov 26 18:09:48 EET 2001  Pekka Riikonen <priikone@silcnet.org>'
6397
6398         * Fixed LIST command reply sending in server.  Affected file
6399           silcd/command.c.
6400
6401         * Server now sends the kicker's client ID in the KICK notify
6402           to the kicked client.  Affected file silcd/command.c.
6403
6404         * The client library now parses the kickers client ID and
6405           UI displays it.  Affected files lib/silcclient/client_notify.c
6406           and irssi/src/silc/core/silc-channels.c, module-formats.c.
6407
6408         * Made all payload parsing function prototypes consistent.
6409           They all take now const unsigned char * and uint32 pair as
6410           the payload data instead of SilcBuffer.  Changes all around
6411           the source tree.  Other unsigned char* -> const unsigned char*
6412           changes around the tree as well.
6413
6414         * Optimized SFTP client and server packet sending not to
6415           allocate new buffer for each packet but to recycle the
6416           first allocated buffer.  Affected files are
6417           lib/silcsftp/sftp_client.c, sftp_server.c, sftp_util.[ch].
6418
6419         * Optimized the SFTP client to use SilcList instead of
6420           SilcDList for requests, because it is faster.  Affected file
6421           is lib/silcsftp/sftp_client.c.
6422
6423         * Moved the ID Payload routines from lib/silccore/silcpayload.[ch]
6424           into lib/silccore/silcid.[ch].
6425
6426           Renamed silcpayload.[ch] into silcargument.[ch].
6427
6428 Mon Nov 26 15:01:53 CET 2001  Pekka Riikonen <priikone@silcnet.org>
6429
6430         * If client entry is deleted with active key agreement
6431           session, abort the session.
6432
6433           The silc_client_abort_key_agreement now calls the completion
6434           callback with new SILC_KEY_AGREEMENT_ABORTED status.
6435
6436           Affected file lib/silcclient/silcapi.h, client_keyagr.c and
6437           idlist.c.
6438
6439 Sun Nov 25 18:01:45 EET 2001  Pekka Riikonen <priikone@silcnet.org>
6440
6441         * Don't use __restrict in older GCC's.  Affected file is
6442           lib/silcmath/mpi/mpi-priv.h.  A patch by salo.
6443
6444         * silc_net_localhost now attempts to reverse lookup the
6445           IP/hostname.  Affected file lib/silcutil/silcnet.c.
6446
6447         * Defined <founder auth> argument to the SILC_COMMAND_JOIN
6448           command.  It can be used to gain founder privileges at
6449           the same time when joining the channel.
6450
6451           Defined that the SILC_NOTIFY_TYPE_KICKED send the
6452           kicker's client ID as well.  Updated protocol specs.
6453
6454           Defined that the server must send SILC_COMMAND_IDENTIFY
6455           command reply with error status to client who sent
6456           private message with invalid client ID.
6457
6458           Updated the protocol specification.
6459
6460         * Added silc_server_send_command_reply to send any
6461           command reply.  Affected file silcd/packet_send.[ch].
6462
6463         * Added silc_id_payload_encode_data to encode ID payload
6464           from raw ID data.  Affected file lib/silccore/silcpayload.[ch].
6465
6466         * The server now send IDENTIFY command reply with error
6467           status if client ID in private message is invalid.  Affected
6468           file silcd/packet_receive.c.
6469
6470         * Save the server key file with server's IP address in
6471           the filename instead of hostname.  The affected file is
6472           irssi/src/silc/core/client_ops.c.
6473
6474 Sat Nov 24 20:08:22 EET 2001  Pekka Riikonen <priikone@silcnet.org>
6475
6476         * Typo fixes in irssi/src/fe-common/silc/module-formats.c.
6477           A patch by Sunfall.
6478
6479         * Added libtool support for compiling shared objects in
6480           lib/silcsim.  Affected file configure.in.pre and
6481           lib/silcsim/Makefile.am.  Original patch by cras.
6482
6483 Fri Nov 23 23:30:59 EET 2001  Pekka Riikonen <priikone@silcnet.org>
6484
6485         * Pid file configuration, and server's config file fixes
6486           patch by toma.  Updated CREDITS file.
6487
6488 Sun Nov 18 01:34:41 EET 2001  Pekka Riikonen <priikone@silcnet.org>
6489
6490         * Fixed silc_client_channel_message to not try to decrypt
6491           the message twice if it resolved the destination client
6492           information.  This could cause of dropping one channel
6493           message.  Affected file lib/silcclient/client_channel.c.
6494
6495 Wed Nov 14 23:44:56 EET 2001  Pekka Riikonen <priikone@silcnet.org>
6496
6497         * Added silc_client_run_one into lib/silcclient/silcapi.h and
6498           lib/silcclient/client.c. This function is used when the SILC
6499           Client is run under some other scheduler, or event loop or
6500           main loop.  On GUI applications, for example this may be
6501           desired to used to run the client under the GUI application's
6502           main loop.  Typically the GUI application would register an
6503           idle task that calls this function multiple times in a second
6504           to quickly process the SILC specific data.
6505
6506 Wed Nov 14 19:16:52 CET 2001  Johnny Mnemonic <johnny@themnemonic.org>
6507
6508         * Fixed silc_server_drop() for dropping the supplementary
6509           groups as well, this could cause a security hole on some
6510           systems.
6511
6512 Wed Nov 14 16:22:25 EET 2001  Pekka Riikonen <priikone@silcnet.org>
6513
6514         * __pid_t -> pid_t in lib/silccrypt/silcrng.c.  A patch by
6515           johnny.
6516
6517         * Write PID file after dropping privileges.  Added -F option
6518           to run server on foreground.  A patch by debolaz.
6519           Affected files silcd/server.c, silcd/silcd.c.
6520
6521         * Fixed MOTD to return the MOTD file server name.  Affected
6522           file silcd/command.c.
6523
6524         * Added INFO command reply handling to the Irssi SILC Client.
6525           Affected file irssi/src/silc/core/client_ops.c.
6526
6527 Wed Nov 14 00:18:08 EET 2001  Pekka Riikonen <priikone@silcnet.org>
6528
6529         * Fixed the silc_idcache_list_* routines to really support
6530           the dynamic list.  Fixes a crash.  Affected file is
6531           lib/silccore/silcidcache.c.
6532
6533         * Fixed the LIST command reply to really call LIST command's
6534           pending callbacks.  Affected file silcd/command_reply.c.
6535
6536 Tue Nov 13 00:49:17 EET 2001  Pekka Riikonen <priikone@silcnet.org>
6537
6538         * Update conn->local_entry->nickname after giving NICK
6539           command.  Affected file lib/silcclient/command.c.
6540
6541 Sun Nov 11 23:43:02 PST 2001  Brian Costello <bc@wpfr.org>
6542
6543         * Added the [pid] option to the silcd configuration file
6544
6545           Affected files: serverconfig.[ch] and silcd.c
6546
6547 Sun Nov 11 23:56:39 EET 2001  Pekka Riikonen <priikone@silcnet.org>
6548
6549         * Save fingerprint in WHOIS command reply in server.
6550           Affected file silcd/command_reply.c.
6551
6552         * Fixed NICK commands pending callback registration.
6553           Affected file lib/silcclient/command.c.
6554
6555 Sun Nov 11 10:49:10 EET 2001  Pekka Riikonen <priikone@silcnet.org>
6556
6557         * Use ++server->cmd_ident when sending commands in server,
6558           instead of random number.  Affected file silcd/command.c.
6559
6560         * Fixed GETKEY command reply to call actually GETKEY pending
6561           command callbacks.  Affected file silcd/command_reply.c.
6562
6563         * A bit stricter check for nicknames.  Check for same nickname
6564           in NICK command also.  Affected file silcd/command.c.
6565
6566         * Do not call INFO command everytime client ID changes, only
6567           during first connecting.  Affected file lib/silcclient/client.c.
6568
6569         * Set the new nickname only after successful command reply for
6570           NICK command is returned by server.  Affected file
6571           lib/silcclient/command.c.
6572
6573         * Remove nicknames from nicklist during server_signoff notify.
6574           Should fix /NAMES bit more.  The affected file is
6575           irssi/src/silc/core/silc-channels.c.
6576
6577         * Added `fingerprint' field to the SilcIDListData in the
6578           silcd/idlist.h to hold the fingerprint of the client's
6579           public key.
6580
6581           Send the fingerprint of the client's public key in WHOIS
6582           command reply.
6583
6584           Affected files silcd/command.c, and silcd/idlist.[ch].
6585
6586         * Added silc_fingerprint into lib/silcutil/silcutil.[ch] to
6587           create fingerprint from given data.
6588
6589         * Show the fingerprint of the client's public key in WHOIS.
6590           Affected files irssi/src/module-formats.[ch] and
6591           irssi/src/silc/core/client_ops.c.
6592
6593         * Format the multiple same nicknames also during JOIN and
6594           NICK_CHANGE notifys.  Affected file is
6595           lib/silcclient/client_notify.c.
6596
6597         * Do not print error on screen for invalid private message
6598           payload since it can come if someone is sending private
6599           messages with wrong key.  Affected file
6600           lib/silccore/silcprivate.c.
6601
6602         * Fixed multiple concurrent /PING crash.  Affected file
6603           lib/silcclient/command.c.
6604
6605         * Changed the wrong ID encoding.  All IP addresses must be
6606           in MSB first order in encoded format.  They were encoded
6607           wrong and was in LSB format.  Affected files are
6608           silcd/serverid.c, lib/silcutil/silcutil.c.
6609
6610         * Remove silc_net_addr2bin_ne from lib/silcutil/silcnet.[ch].
6611
6612         * Call the `connect' client operation through the scheduler
6613           in case of error.  Affected file lib/silcclient/client.c.
6614
6615         * Call the `failure' client operation even if the error
6616           occurred locally during a protocol.  Affected file is
6617           lib/silcclient/protocol.c.
6618
6619         * Added support of sending LIST command to router from normal
6620           server.  This way normal server can get list of all channels
6621           in the network too.  Fixed the channel list sending in the
6622           server too.  Affected files are silcd/command.c, and
6623           silcd/command_reply.[ch].
6624
6625         * Added silc_server_update_channels_by_server and
6626           silc_server_remove_channels_by_server.  They are used during
6627           disconnection of primary router and in backup router protocol.
6628           Affected file silcd/server_util.[ch], silcd/server.c and
6629           silcd/server_backup.c.
6630
6631         * Fixed channel adding to global list in IDENTIFY command
6632           reply in server.  Affected file silcd/command_reply.c.
6633
6634 Sat Nov 10 21:39:22 EET 2001  Pekka Riikonen <priikone@silcnet.org>
6635
6636         * If the incoming packet type is REKEY or REKEY_DONE process
6637           that packet always synchronously.  Fixes yet another MAC
6638           failed error on slow (dialup) connections.  Affected file
6639           lib/silcclient/client.c and silcd/server.c.
6640
6641 Thu Nov  8 22:21:09 EET 2001  Pekka Riikonen <priikone@silcnet.org>
6642
6643         * Call check_version SKE callback for initiator too.  Affected
6644           file lib/silcske/silcske.c.
6645
6646         * Implemented fix for security hole found in the SKE that was
6647           fixed in the specification few days back; the initiator's
6648           public key is now added to the HASH value computation.
6649           Added backwards support for the old way of doing it too, for
6650           old clients and old servers.  Affected file is
6651           lib/silcske/silcske.c.
6652
6653         * Enabled mutual authentication by default in SKE.  If initiator
6654           is not providing mutual authentication the responder will
6655           force it.  This will provide the proof of posession of the
6656           private key for responder.  The affected files are
6657           lib/silcclient/protocol.c and silcd/protocol.c.
6658
6659         * Do not cache anymore the server's public key during SKE.
6660           We do mutual authentication so the proof of posession of
6661           private key is done, and if the server is authenticated in
6662           conn auth protocol with public key we must have the public
6663           key already.  Affected file silcd/protocol.c.
6664
6665         * Added new global debug variable: silc_debug_hexdump.  If
6666           it is set to TRUE SILC_LOG_HEXDUMP will be printed.  Affected
6667           file lib/silcutil/silclog.[ch].
6668
6669         * Fixed compilation warning due to char * -> const char *.
6670           Affected files lib/silcutil/silcnet.h, and
6671           lib/silccore/silcauth.[ch].
6672
6673 Wed Nov  7 20:43:03 EET 2001  Pekka Riikonen <priikone@silcnet.org>
6674
6675         * Fixed CMODE command when new channel key was created.  If
6676           the creation failed the old key was removed.  Next time giving
6677           same command would crash the server since the old key was
6678           freed already.  Affected file silcd/command.c.
6679
6680         * Fixed the silc_server_announce_get_channels to not crash
6681           on reconnect.  Affected file silcd/server.c.
6682
6683 Wed Nov  7 17:15:07 EET 2001  Pekka Riikonen <priikone@silcnet.org>
6684
6685         * Added silc_log_set_debug_string function to set a regex
6686           string to match for debug output.  Only the function names,
6687           or filenames matching the given debug string is actually
6688           printed.  This way it is possible to filter out those debug
6689           strings that user is not interested in.
6690
6691           Fixed a bug in silc_string_regexify.
6692
6693           Affected files lib/silcutil/silclog.[ch], and
6694           lib/silcutil/unix/silcunixutil.c.
6695
6696         * Changed the -d options in both server and Irssi SILC client
6697           to take the debug string as argument.  Affected files
6698           silcd/silcd.c and irssi/src/silc/core/silc-core.c.
6699
6700 Tue Nov  6 21:31:54 EET 2001  Pekka Riikonen <priikone@silcnet.org>
6701
6702         * Added silc_hash_babbleprint to create a Bubble Babble
6703           Encoded fingerprint.  The encoding is developed by Antti
6704           Huima (draft-huima-babble-01.txt), and it creates human
6705           readable strings out of binary data.  Affected file
6706           lib/silccrypt/silchash.[ch].
6707
6708         * Print the babble print now in addition of fingerprint as well
6709           in Irssi SILC client.  Affected files are
6710           irssi/src/fe-common/silc/module-formats.[ch],
6711           irssi/src/fe-common/silc/core/client_ops.c.
6712
6713 Sun Nov  4 23:37:28 EET 2001  Pekka Riikonen <priikone@silcnet.org>
6714
6715         * Fixed a security problem found in SKE.  The initiator's
6716           public key too is now added to the HASH hash value creation
6717           which is signed by the responder to create the SIGN value.
6718           This will prevent anyone in the middle to lie to the responder
6719           about the initiator's public key.  If this is done now, the
6720           man in the middle will get caught.  Updated the protocol
6721           specification.
6722
6723 Sun Nov  4 11:43:53 EET 2001  Pekka Riikonen <priikone@silcnet.org>
6724
6725         * Better installation directory handling.  Configure module
6726           paths and other paths automatically to example_silc* files
6727           in doc/.  A patch by toma.
6728
6729         * Fixed compiler warning from MPI library, and from SILC RNG.
6730           A patch by johnny.
6731
6732         * Added SILC_SERVER_PID_FILE to define the pid file for server.
6733           It can be configured with ./configure.  A patch by toma.
6734
6735 Sat Nov  3 23:48:23 EET 2001  Pekka Riikonen <priikone@silcnet.org>
6736
6737         * Find correct make to use in prepare-clean.  A patch by
6738           toma.  Affected file prepare-clean.
6739
6740 Sat Nov  3 22:04:00 PST 2001  Brian Costello <bc@mksecure.com>
6741
6742         * Added irssi variables use_auto_addr, auto_bind_ip,
6743           auto_bind_port and auto_public_ip.
6744
6745         * Changed the interface for silc_client_send_key_agreement
6746           in lib/silcclient/silcapi.h
6747
6748         Affected files:
6749
6750          irssi/src/silc/core/silc-core.c
6751          irssi/config
6752          lib/silcclient/silcapi.h
6753          irssi/src/silc/core/silc-channels.c
6754          lib/silcclient/client_keyagr.c
6755          irssi/docs/help/key
6756
6757 Sat Nov  3 17:48:55 EET 2001  Pekka Riikonen <priikone@silcnet.org>
6758
6759         * Added silc_pkcs_public_key_compare to compare two
6760           public keys.  Affected file lib/silccrypt/silcpkcs.[ch].
6761
6762         * Check that the client who set the founder mode on the
6763           channel is the same client that is giving the founder
6764           mode to itself.  It is done by comparing the saved public
6765           key (it is saved even in the authentication is passphrase).
6766           Affected file silcd/command.c.
6767
6768 Fri Nov  2 18:52:08 EST 2001  Pekka Riikonen <priikone@silcnet.org>
6769
6770         * Do not process packet for disconnected socket connection.
6771           Affected file lib/silccore/silcpacket.c.
6772
6773         * Process the DISCONNECT packet through scheduler in the
6774           client library.  Affected file lib/silcclient/client.c.
6775
6776         * Fixed the silc_client_packet_parse to not to increase
6777           the packet sequence number if the conn->sock and the
6778           current socket connection is not same.  This can happen
6779           for example during key agreement when the conn includes
6780           multiple socket connections (listeners).  Affected file
6781           lib/silcclient/client.c.
6782
6783         * The sender of the file transfer request now provides also
6784           the pointer (listener) for the key exchange protocol.  If
6785           the listener cannot be created then it sends empty key
6786           agreement and lets the receiver provide the listener.
6787
6788           Added `local_ip' and `local_port' arguments to the
6789           silc_client_file_send.  If they are provided they are used,
6790           if not then it will attempt to find local IP address, if
6791           not found or bind fails then the remote client will provide
6792           the listener.
6793
6794           Affected files are lib/silcclient/client_ftp.c and
6795           lib/silcclient/silcapi.h.
6796
6797         * Extended the FILE SEND command to support defining the
6798           local IP and port for key exchange listener.  They are
6799           optional.  Affected file irssi/src/silc/core/silc-servers.c.
6800
6801 Thu Nov  1 22:10:07 EST 2001  Pekka Riikonen <priikone@silcnet.org>
6802
6803         * Defined to WHOIS command reply the sending of fingerprint
6804           of the client's public key (if the proof of posession of the
6805           corresponding private key is verified by the server).
6806           Updated to the protocol specification.
6807
6808         * Added support of receiving the client's public key's
6809           fingerprint in command reply in client library.  Affected
6810           file is lib/silcclient/command_reply.c, and
6811           lib/silcclient/idlist.[ch].
6812
6813 Thu Nov  1 18:06:12 EST 2001  Pekka Riikonen <priikone@silcnet.org>
6814
6815         * Do not send over 128 chars long nickname to the server
6816           in NICK command.  Affected file lib/silcclient/command.c.
6817
6818         * Do not send over 256 chars long channel names to the server
6819           in JOIN command.  Affected file lib/silcclient/command.c.
6820
6821 Tue Oct 30 22:48:59 EST 2001  Pekka Riikonen <priikone@silcnet.org>
6822
6823         * Assure that silc_server_close_connection cannot be called
6824           twice for same socket context.  Affected file is
6825           silcd/server.c.
6826
6827 Tue Oct 30 16:58:14 EST 2001  Pekka Riikonen <priikone@silcnet.org>
6828
6829         * Send error message to application if opening file for
6830           writing during file transfer fails.  Affected file is
6831           lib/silcclient/client_ftp.c.
6832
6833           Remove all file transfer sessions for a client that we're
6834           removing from ID cache.
6835
6836           Affected file is lib/silcclient/client_ftp.c.
6837
6838         * Fixed silc_net_addr2bin to return correct address.  Affected
6839           file lib/silcutil/[unix/win32]/silc[unix/win32]net.c.
6840
6841         * Fixed file transfer session removing on signoff notify.
6842           Affected file irssi/src/silc/core/silc-servers.c.
6843
6844         * Added the SilcClientFileError to be returned in the monitor
6845           callback.  Added NO_SUCH_FILE and PERMISSION_DENIED errors.
6846           Affected file lib/silcclient/silcapi.h.
6847
6848 Mon Oct 29 17:43:04 EST 2001  Pekka Riikonen <priikone@silcnet.org>
6849
6850         * Fixed a crash in silc_client_ftp_free_sessions and
6851           silc_client_ftp_session_free_client.  Affected file
6852           lib/silcclient/client_ftp.c.
6853
6854         * Added `disabled' field in the SilcChannelEntry in the server
6855           to indicate if the server entry is disabled.  Affected file
6856           silcd/idlist.h, silcd/command[_reply].c.
6857
6858         * SILC server adds now /var/run/silcd.pid everytime it is
6859           started.  Affected file silcd/silcd.c.
6860
6861         * Added silc_server_packet_send_clients to send a packet to
6862           the provided table of client entries.  Affected file
6863           silcd/packet_send.[ch].
6864
6865         * Fixed a crash in client resolving in client_prvmsg.c in
6866           client library.  Affected file lib/silcclient/client_prvmsg.c.
6867
6868         * Do not actually remove the client directly from ID cache
6869           during SERVER_SIGNOFF, but invalidate it.  This way we
6870           preserve the WHOWAS info for the client.  Affected file
6871           silcd/server_util.c.
6872
6873         * Fixed SERVER_SIGNOFF notify handling in the server.  The
6874           server is now able to process incoming SERVER_SIGNOFF notify
6875           for a server that it doesn't even know about.  It will remove
6876           the clients provided in the notify.  Affected file
6877           silcd/packet_receive.c.
6878
6879         * Check for partial packet in data queue after every packet that
6880           was found from the queue.  Return and wait for more data if
6881           there is partial data in queue.  Affected file is
6882           lib/silccore/silcpacket.c.
6883
6884 Sun Oct 28 18:46:27 EST 2001  Pekka Riikonen <priikone@silcnet.org>
6885
6886         * Added SilcClietFileError enum to indicate error in
6887           file transfer.  Added SILC_CLIENT_FILE_MONITOR_KEY_AGREEMENT
6888           and SILC_CLIENT_FILE_MONITOR_ERROR new monitor statuses.
6889           Affected files lib/silcclient/silcapi.h and
6890           lib/silcclient/client_ftp.c.
6891
6892         * Check that newsize in silc_buffer_realloc is larger than
6893           the old buffer's size.  Affected file lib/silcutil/silcbufutil.h.
6894
6895         * Added better monitor of file transfers.  It now monitors
6896           key agreement protocol during the file transfer too.  Added
6897           error reporting too.  Affected files
6898           irssi/src/silc/core/silc-servers.c,
6899           irssi/src/fe-common/silc/module-formats.[ch].
6900
6901         * Wrote a help file for FILE command.
6902
6903         * Added silc_rng_global_get_byte_fast to get not-so-secure
6904           random data as fast as possible.  Random data is read from
6905           /dev/urandom if available and from the SILC RNG if not
6906           available.  It is used in padding generation.  Affected file
6907           lib/silccrypt/silcrng.[ch].
6908
6909         * All packets in client library are now processed synchronously.
6910           Optimized packet processing a lot.  Affected file
6911           lib/silcclient/client.c.
6912
6913         * All server connection packets are processing synchronously
6914           now in server, to optimize packet processing.  Affected file
6915           silcd/server.c.
6916
6917         * Include files are installed now only in Toolkit distribution
6918           if make install is given.  Affected files: all Makefile.am's.
6919
6920 Thu Oct 25 22:44:06 EDT 2001  Pekka Riikonen <priikone@silcnet.org>
6921
6922         * Assure that silc_client_notify_by_server_resolve does not
6923           resolve the client information multiple times.  If it cannot
6924           be found by the first it cannot be found at all.  Affected
6925           file lib/silcclient/client_notify.c.
6926
6927         * Fixed WHOWAS command reply calling.  Affected file
6928           lib/silcclient/command_reply.c.
6929
6930         * Removed all references to silc_idlist_get_client from the
6931           Irssi SILC client since that call is internal call used by
6932           the library.  The Irssi SILC client will use now client
6933           retrieval functions found in silcapi.h.
6934
6935         * Fixed a bug in resolving nickname info before sending
6936           private message.  It used freed memory.  Affected file
6937           irssi/src/silc/core/silc-servers.c.
6938
6939 Thu Oct 25 19:04:49 EDT 2001  Pekka Riikonen <priikone@silcnet.org>
6940
6941         * Assure my_channels statistics cannot go negative in server.
6942           Affected files silcd/server.c, silcd/server_util.c.
6943
6944 Wed Oct 24 19:53:05 EDT 2001  Pekka Riikonen <priikone@silcnet.org>
6945
6946         * Upgraded dotconf 1.0.2 to 1.0.6 in lib/dotconf.
6947
6948 Tue Oct 23 13:51:19 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
6949
6950         * Win32 Toolkit changes.  Affected files
6951           win32/silc.dsw, win32/libsilc/libsilc.def,
6952           win32/libsilcclient/libsilc.def,
6953           lib/silcutil/silcutil.c, and
6954           lib/sftp/sftp_fs_memory.c.
6955
6956 Mon Oct 22 16:35:05 EDT 2001  Pekka Riikonen <priikone@silcnet.org>
6957
6958         * Added silc_net_localip to return local host's IP address.
6959           Affected file lib/silcutil/silcnet.[ch].
6960
6961         * If key exchange or rekey protocol is active for a connection
6962           parse all packets syncronously since there might be packets
6963           in packet queue that we are not able to process without first
6964           processing packets before them.  Affected file silcd/server,
6965           lib/silcclient/client.c.
6966
6967         * SilcPacketParserCallback now returns TRUE or FALSE to indicate
6968           whether library should continue processing the packet.
6969           Affected file lib/silccore/silcpacket.h.
6970
6971         * Added SilcSFTPMonitor callback, SilcSFTPMonitors and
6972           SilcSFTPMonitorData to SFTP server to monitor various
6973           SFTP client requests.  Affected file lib/silcsftp/silcsftp.h,
6974           lib/silcsftp/sftp_server.c.
6975
6976         * Added silc_file_size to return file size.  Affected file
6977           lib/silcutil/silcutil.[ch].
6978
6979         * Implemented the file transfer support for the client library.
6980           Added preliminary support for simple client to client one-file
6981           transmission.  Affected file lib/silcclient/client_ftp.c,
6982           lib/silccilent/client.[ch].
6983
6984         * Added new local command FILE to the Irssi SILC Client.
6985           It is used to perform the file transfer.  It has subcommands
6986           SEND, RECEIVE, SHOW and CLOSE.  Affected files
6987           irssi/src/silc/core/client_ops.c,
6988           irssi/src/silc/core/silc-server.[ch].
6989
6990 Mon Oct 22 12:50:08 EDT 2001  Pekka Riikonen <priikone@silcnet.org>
6991
6992         * Relay the SILC_PACKET_FTP in the server.  Affected files
6993           silcd/server.c and silcd/packet_receive.c.
6994
6995 Sun Oct 21 20:21:02 EDT 2001  Pekka Riikonen <priikone@silcnet.org>
6996
6997         * Renamed silc_file_read and silc_file_write to functions
6998           silc_file_readfile and silc_file_writefile.  Added function
6999           silc_file_open and silc_file_close.  Affected files
7000           lib/silcutil/silcutil.[ch].
7001
7002 Thu Oct 18 20:58:13 EDT 2001  Pekka Riikonen <priikone@silcnet.org>
7003
7004         * Resolve the client info when received private message or
7005           channel message for a client which nickname we don't know.
7006           Affected files lib/silcclient/client_prvmsg.c and
7007           lib/silcclient/client_channel.c.
7008
7009         * Do not crash in /KEY if client is not connected.  Affected
7010           file irssi/src/silc/core/silc-channels.c.
7011
7012         * Added SilcClientStatus field to the SilcClientEntry in the
7013           lib/silcclient/idlist.h.
7014
7015           Added SILC_CLIENT_STATUS_RESOLVING to mark that the entry
7016           is incomplete and is being resolved, it won't be resolved
7017           twice.
7018
7019           Make sure also that USERS command reply does not resolve
7020           twice information.  Affected file is
7021           lib/silcclient/command_reply.c.
7022
7023           Make sure that silc_client_get_clients_by_list does not
7024           resolve twice same information.
7025
7026         * Check for valid client->id in the silc_server_free_client_data.
7027           Affected file silcd/server.c.
7028
7029         * Fixed /GETKEY nick@server not to crash if the server entry
7030           is not found.  Affected file lib/silcclient/command.c.
7031
7032         * Fixed the silc_server_check_cmode_rights to check the
7033           requested modes correctly.  Affected file silcd/command.c.
7034
7035 Thu Oct 18 12:10:22 CEST 2001  Pekka Riikonen <priikone@silcnet.org>
7036
7037         * Better checks for non-printable chars in nick added.
7038           Affected file silcd/command.c.
7039
7040 Thu Oct 18 09:18:58 EDT 2001  Pekka Riikonen <priikone@silcnet.org>
7041
7042         * Call the silc_server_udpate_servers_by_server in the
7043           primary router that comes back online in the backup resuming
7044           protocol.  Otherwise it routes packets wrong.  Affected file
7045           silcd/server_util.[ch], silcd/server_backup.c.
7046
7047 Wed Oct 17 16:51:18 EDT 2001  Pekka Riikonen <priikone@silcnet.org>
7048
7049         * Added SILC_STR_UI8_[N]STRING[_ALLOC] formats to the
7050           lib/silcutil/silcbuffmt.[ch].
7051
7052         * Redefined the SILC packet header to include the padding
7053           length.  Affected file lib/silccore/silcpacket.[ch].
7054
7055         * Added SILC_PACKET_PADLEN_MAX macro to return the padding
7056           length for maximum padding up to 128 bytes).  Affected
7057           file lib/silccore/silcpacket.h.
7058
7059         * Removed all backwards support for old 0.5.x MAC thingies.
7060           The SILC packet header change makes it impossible to be
7061           backwards compatible.
7062
7063         * Send the ENDING packet with timeout in the backup resuming
7064           protocol.  This is to assure that all routers has connected
7065           to the primary router.  Affected file silcd/server_backup.c.
7066
7067         * Changed the RNG to take the first IV from random data.  It
7068           used to take it from zero actually.  Changed the RNG also
7069           to use /dev/urandom during session.  /dev/random is used
7070           in initialization.  Affected file lib/silccrypt/silcrng.[ch].
7071
7072 Tue Oct 16 20:45:49 EDT 2001  Pekka Riikonen <priikone@silcnet.org>
7073
7074         * Changed the SILC packet header to have the first two bytes
7075           (the packet length) encrypted.  Affected files aroung the
7076           code tree, lib/silccore/silcpacket.[ch].  Removed the
7077           SilcPacketCheckDecrypt callback.  It is not needed anymore
7078           since the silc_packet_receive_process will determine now
7079           whether the packet is normal or special.
7080
7081         * Implemented the unidirectional MAC keys.  Affected files
7082           lib/silcske/silcske.c, silcd/protocol.c and
7083           lib/silcclient/protocol.c.
7084
7085         * Implemented the packet sequence number to the MAC computation.
7086           Affected files lib/silccore/silcpacket.c, silcd/protocol.c,
7087           silcd/packet_send.c, silcd/server.c, lib/silcclient/client.c,
7088           lib/silcclient/protocol.c.
7089
7090 Mon Oct 15 17:42:55 EDT 2001  Pekka Riikonen <priikone@silcnet.org>
7091
7092         * Allow backup router to announce servers.  All servers
7093           announced by backup router are added to the global list
7094           automatically.  Update hte server's socket to our primary
7095           router also when backup router announces a server.
7096           Affected file silcd/packet_receive.c.
7097
7098         * Do not update the client->router in the function
7099           silc_server_udpate_clients_by_server if the client is on
7100           global list.  We might fail to find any specific server
7101           for locally connected clients and local cell clients.  They
7102           should still use the `from' and not `to' as client->router.
7103           This fixes backup router resuming protocol.  Affected file
7104           silcd/server_util.c.
7105
7106         * Decrease channel statistics count only if the channel
7107           deletion worked.  Affected files are silcd/server.c and
7108           silcd/server_util.c.
7109
7110         * Added silc_server_update_servers_by_server to update origin
7111           of all server entries.  Used during backup router protocol.
7112           Affected files silcd/server_util.[ch], silcd/server.c. and
7113           silcd/backup_router.c.
7114
7115         * ROBODoc documented the lib/silccrypt/silchmac.h.  Added new
7116           function silc_hmac_init, silc_hmac_update, silc_hmac_final,
7117           silc_hmac_get_hash and silc_hmac_get_name.  Affected file
7118           lib/silccrypt/silchmac.c.
7119
7120 Sun Oct 14 18:28:22 EDT 2001  Pekka Riikonen <priikone@silcnet.org>
7121
7122         * Assure that router cannot reroute the same channel message
7123           to the sender.  Affected file silcd/packet_receive.c.
7124
7125 Sat Oct 13 12:46:18 EDT 2001  Pekka Riikonen <priikone@silcnet.org>
7126
7127         * Made better checks that the channel message is not sent
7128           to the router it came from.  Affected file is
7129           silcd/packet_send.c.  Fixed memory leak too.
7130
7131         * Announce informations for incoming router connection, but
7132           only after checking if it is replaced by backup router.
7133           Affected file silcd/packet_receive.c.
7134
7135 Fri Oct 12 18:37:24 EDT 2001  Pekka Riikonen <priikone@silcnet.org>
7136
7137         * Fixed the backup resuming protocol to work in multiple
7138           router environment.  Affected file silcd/server_backup.c.
7139
7140         * Route packet only to one router in the function
7141           silc_server_packet_send_to_channel.  Affected file is
7142           silcd/packet_send.c.
7143
7144         * Fixed silc_server_send_notify_dest to set the broadcast
7145           flag.  Fixed the silc_server_send_notify_topic to actually
7146           send the TOPIC_CHANGE notify and not SERVER_SIGNOFF notify.
7147           Affected file silcd/packet_send.c.
7148
7149         * Changed the SFTP Filesystem interface.  Changed the
7150           SilcSFTPFilesystemStruct to SilcSFTPFilesystemOps to include
7151           the filesystem operation function.  The SilcSFTPFilesystem
7152           is now a context that is allocated by all filesystem allocation
7153           functions and it already includes the operations structure
7154           and filesystem specific context.  It is given as argument
7155           now to the silc_sftp_server_start.  This made the interface
7156           a bit cleaner.  Affected file lib/silcsftp/silcsftp[_fs].h,
7157           lib/silcsftp/sftp_fs_memory.c and sftp_server.c.
7158
7159 Thu Oct 11 22:19:26 EDT 2001  Pekka Riikonen <priikone@silcnet.org>
7160
7161         * Changed the backup router adding and getting interfaces
7162           in the server.  The router that will be replaced by the
7163           specified backup router is now sent as argument.  Affected
7164           files silcd/serverconfig.[ch], silcd/backup_router.[ch], and
7165           silcd/server.c.
7166
7167         * Added silc_net_addr2bin_ne to return the binary form of
7168           the IP address in network byte order.  Affected files
7169           lib/silcutil/[unix/win32].silc[unix/win32]net.[ch].
7170
7171 Thu Oct 11 12:14:19 EDT 2001  Pekka Riikonen <priikone@silcnet.org>
7172
7173         * Check for existing server ID in silc_server_new_server
7174           and in silc_server_connect_to_router_final and remove the
7175           old entry if it exists.  Affected file silcd/packet_receive.c,
7176           silcd/server.c.
7177
7178         * Send the channel message always to only one router, either
7179           in upstream or downstream.  Affected file is
7180           silcd/packet_send.c.
7181
7182 Tue Oct  9 17:45:43 EDT 2001  Pekka Riikonen <priikone@silcnet.org>
7183
7184         * Wrote the definition of the backup resuming protocol to the
7185           protocol specification.
7186
7187         * Removed one redundant channel key generation from normal
7188           server during joining procedure.  Removed one redundant
7189           channel key sending from server to router during joining
7190           procedure.  Affected file silcd/command.c.
7191
7192         * Made minor bugfixes to the backup router resuming protocol.
7193           Affected file silcd/server_backup.c, server.c.
7194
7195 Mon Oct  8 16:47:42 EDT 2001  Pekka Riikonen <priikone@silcnet.org>
7196
7197         * Added --disable-asm configuration option.  Affected files
7198           configure.in.pre, lib/silcmath/mpi/configure.in.  A patch
7199           by salo.
7200
7201         * Implemented the backup resuming protocol that is used to
7202           resume the primary router position in the cell after the
7203           primary router comes back online.  Affected files
7204           silcd/server_backup.[ch], silcd/server, silcd/packet_receive.c,
7205           and silcd/server_util.[ch].
7206
7207 Sun Oct  7 12:29:25 EDT 2001  Pekka Riikonen <priikone@silcnet.org>
7208
7209         * Sleep two (2) seconds after sending QUIT command to server.
7210           Affected file lib/silcclient/command.c.
7211
7212         * Assure that if outgoing data buffer is pending do not force
7213           send any data.  Affected file silcd/packet_send.c.
7214
7215         * Assure that if outgoing data buffer is pending do not force
7216           send any data.  Affected file lib/silcclient/client.c.
7217
7218         * Implemented the backup router support when the primary router
7219           goes down.  The servers and routers can now use the backup
7220           router as new primary router without loosing connectivity.
7221
7222 Sat Oct  6 21:18:54 EDT 2001  Pekka Riikonen <priikone@silcnet.org>
7223
7224         * Added new SILC_IDLIST_STATUS_DISABLED flag for entries
7225           in the server to indicate disabled entry.  All data read
7226           from the connection will be ignored and no data is sent
7227           for entry that is disabled.  Affected files are
7228           silcd/idlist.h, silcd/server.c.
7229
7230 Fri Oct  5 00:03:29 EDT 2001  Pekka Riikonen <priikone@silcnet.org>
7231
7232         * Created SFTP client and server test programs in the
7233           lib/silcsftp/tests directory.
7234
7235 Wed Oct  3 23:31:42 EDT 2001  Pekka Riikonen <priikone@silcnet.org>
7236
7237         * Implemented memory filesystem (virtual filesystem) for
7238           SFTP server.  Affected file lib/silcsftp/silcsftp_fs.h,
7239           sftp_fs_memory.c.
7240
7241 Sun Sep 30 22:10:57 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
7242
7243         * Implemented the SFTP (SSH File Transfer Protocol) to the
7244           lib/silcsftp.  It includes SFTP client and SFTP server
7245           implementations.
7246
7247 Sun Sep 30 10:35:44 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
7248
7249         * Moved lib/silccore/silcprotocol.[ch] to the
7250           lib/silcutil library.
7251
7252         * Added silc_buffer_format_vp and silc_buffer_unformat_vp to
7253           take variable argument list pointer as argument.  Affected
7254           file lib/silcutil/silcbuffmt.[ch].
7255
7256         * Added silc_buffer_set function that is used to set data
7257           to a SilcBuffer that is not allocated at all (SilcBufferStruct).
7258           Affected file lib/silcutil/silcbuffer.h.
7259
7260         * Changed various routines in the core library to use the new
7261           silc_buffer_set instead of allocating new buffer only for
7262           temporary purposes.
7263
7264         * Added 64-bit value formatting and unformatting support to the
7265           silc_buffer_[un]format routines.  Affected file is
7266           lib/silcutil/silcbuffmt.[ch].
7267
7268           Added also 64-bit macros: SILC_GET64_MSB and SILC_PUT64_MSB,
7269           to includes/bitmove.h.
7270
7271 Fri Sep 28 21:30:10 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
7272
7273         * Fixed channel user mode saving in client library.  Affected
7274           file lib/silcclient/command[_reply].c.
7275
7276 Thu Sep 27 22:52:30 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
7277
7278         * Defined the file transfer to the SILC Protocol.  Added
7279           new packet type SILC_PACKET_FTP and defined File Transfer
7280           Payload.  The mandatory file transfer protocol is SFTP
7281           (SSH File Transfer Protocol).  Affected file in addition
7282           of the internet draft is lib/silccore/silcpacket.h.
7283
7284         * Deprecated the SILC_PACKET_CELL_ROUTERS and defined new
7285           packet SILC_PACKET_RESUME_ROUTER instead.  The new packet
7286           is used as part of backup router protocol when the primary
7287           router of the cell is back online and wishes to resume
7288           the position as primary router.
7289
7290         * Redefined the MAC generation keys in the protocol.  The
7291           same key is not used anymore in both direction.  Both
7292           direction will now use different keys for sending and
7293           receiving.  This fixes a potential security flaw.  This
7294           change causes incompatibilities in the protocol.
7295
7296         * Redefined also the MAC computation from the packet.
7297           An packet sequence number is now added to the MAC
7298           computation.  This prevents possible replay attacks against
7299           the protocol.  This change too causes incompatibilities
7300           in the protocol.
7301
7302           Added `sequence' field to the SilcPacketContext to hold
7303           the current sequence number for the packet.
7304
7305 Wed Sep 26 20:15:22 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
7306
7307         * Added `created' field to the SilcIDListData in the file
7308           silcd/idlist.h to indicate the time when the entry was
7309           created.
7310
7311         * Added `created' field to the SilcChannelEntry too.  Affected
7312           file silcd/idlist.h.
7313
7314         * Added `creation_time' aguments to all the announcement functions
7315           in the server.  If it is provided then only the entries that
7316           was created after the provided time frame are actually
7317           announced.  Affected file silcd/server.[ch].
7318
7319         * The protocol says that the Channel ID's IP address must be
7320           based on the router's IP address.  Added check for this in
7321           the silc_server_new_channel when processing incoming New Channel
7322           Payload.  Affected file silcd/packet_receive.c.
7323
7324         * Print out the correct version with --version in SILC client.
7325           Affected file irssi/src/silc/core/silc-core.c.
7326
7327 Mon Sep 24 17:19:00 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
7328
7329         * Fixed WHOWAS command to check for completnes of the client
7330           entry always, not just when the command is coming from client.
7331           Affected file silcd/command.c.
7332
7333         * Added new function silc_server_packet_queue_purge to purge the
7334           outgoing data queue to the network.  After the function returns
7335           it is guaranteed that the outgoing packet queue is empty.
7336           Affected file silcd/packet_send.[ch].
7337
7338         * Purge the outgoing packet queue in the rekey protocol's final
7339           callback to assure that all rekey packets go to the network
7340           before quitting the protocol.  Affected file silcd/server.c.
7341
7342         * Added silc_client_packet_queue_parse as similar function as
7343           in server to the client library.  The affected file is
7344           lib/silcclient/client.c.
7345
7346 Sun Sep 23 15:15:53 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
7347
7348         * Splitted silcd/server.c and created silcd/server_util.[ch]
7349           for utility functions.
7350
7351         * Added new socket flag SILC_SF_DISABLED to indicate that the
7352           connection is open but nothing can be sent to or received from
7353           the connection.  Affected file lib/silcutil/silsockconn.[ch].
7354           The checking for disabled socket is checked in the low level
7355           silc_socket_write and silc_socket_read functions.
7356
7357 Thu Sep 20 23:11:28 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
7358
7359         * Allow only nicknames and channel names that fits into the
7360           7-bit unsigned char ASCII set.  Affected file silcd/command.c.
7361
7362 Thu Sep 20 18:04:12 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
7363
7364         * When processing JOIN command reply in server check that if
7365           the channel exists in our global list we'll move it the local
7366           list.  Affected file silcd/command_reply.c.
7367
7368         * Fixed the check whether client is joined on the channel already
7369           in JOIN command.  Affected file lib/silcclient/command.c.
7370
7371         * Fixed the JOIN command reply to check whether the channel
7372           already exists.  Affected file lib/silcclient/command_reply.c.
7373
7374 Wed Sep 19 22:58:32 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
7375
7376         * Added silc_ske_status_string to map the SKE error numbers
7377           to readable strings.  The affected files are
7378           lib/silcske/silcske[_status].[ch].
7379
7380 Tue Sep 18 22:50:41 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
7381
7382         * Do not show the private channels on the WHOIS channel list
7383           as it is not allowed by the protocol.  The affected file is
7384           silcd/server.c.
7385
7386 Sun Sep 16 12:32:58 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
7387
7388         * Assure that the packet length digged from the actual packet
7389           is something sensible in the silc_packet_decrypt_rest_special
7390           in lib/silccrypt/silcpacket.c.
7391
7392         * Free and NULL the allocated pointer in silc_hmac_alloc if
7393           the HMAC allocation fails.  The affected file is
7394           lib/silccrypt/silchmac.c.
7395
7396         * Print the selected security properties to the log files in
7397           the server.  Affected file silcd/protocol.c.
7398
7399         * Add SKE's reference counter even if calling the completion
7400           callback manually.  Otherwise it goes negative, although it
7401           does not cause any problems.  The affected file is
7402           lib/silcske/silcske.c.
7403
7404         * Remove the client entry with short timeout after giving the
7405           KILL command.  Affected file lib/silcclient/command.c.
7406
7407         * Fixed to send error reply in WHOIS and IDENTIFY commands in
7408           case all found clients are already disconnected (WHOWAS would
7409           found them) in the server.  Affected file silcd/command.c.
7410
7411         * Update the last_receive (time of last data received) to be
7412           updated only when received private or channel message so that
7413           the idle time showed in WHOIS makes more sense.
7414
7415         * Added boolean field `valid' in to the SilcClientEntry in the
7416           client library to indicate whether the entry is valid or not.
7417           This fixes the nickname change bug on channel when changing
7418           the nickname to be same than the old (like nick to Nick) the
7419           nickname formatter doesn't set the new nick anymore to Nick@host.
7420           Affected file lib/silcclient/idlist.[ch].
7421
7422         * Now actually fixed the nickname changing on disconnection.
7423           Added new function silc_change_nick to the Irssi SILC Client.
7424           Affected file irssi/src/silc/core/client_ops.c,
7425           irssi/src/silc/core/silc-nicklist.[ch].
7426
7427 Sat Sep 15 13:29:17 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
7428
7429         * Check that the public key exists in the GETKEY command before
7430           trying to encode it.  Affected file silcd/command.c.
7431
7432         * Print some notifications on received public keys with GETKEY
7433           command in the Irssi SILC Client.  Affected files are
7434           irssi/src/fe-common/silc/module-formats.[ch],
7435           irssi/src/silc/core/client_ops.c.
7436
7437         * Use IDENTIFY command to resolve the server information in the
7438           GETKEY command instead of INFO command.  Affected file
7439           lib/silcclient/command.c.
7440
7441         * All command reply functions in the client library now calls
7442           the pending command reply callbacks even if an error has
7443           occurred.  The server has done this a long time and now it was
7444           time to move the client library to this as well.  Now all
7445           errors can be delivered back to the pending command reply
7446           callbacks if necessary.  Affected files are
7447           lib/silcclient/command[_reply].[ch].
7448
7449         * Change the nickname on disconnection back to the username
7450           because in reconnect the server will enforce it to it anyway.
7451           Affected file irssi/src/silc/core/silc-servers.c.
7452
7453         * Fixed a config file parsing bug in the Irssi SILC client.
7454           Affected file irssi/src/silc/core/clientconfig.c.
7455
7456 Thu Sep 13 23:11:18 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
7457
7458         * When printing the channel mode on JOIN, verify that the
7459           channel key and channel's HMAC are valid.  Affected file
7460           irssi/src/silc/core/client_ops.c.
7461
7462 Thu Sep 13 20:24:52 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
7463
7464         * Added defines SILC_DEFAULT_CIPHER, SILC_DEFAULT_HMAC,
7465           SILC_DEFAULT_HASH and SILC_DEFAULT_PKCS in the file
7466           lib/silccrypt/[silccipher.h|silchmac.h|silchash.h|silcpkcs.h].
7467
7468         * Removed channel key rekey task deleting from the function
7469           silc_server_save_channel_key.  Affected file silcd/server.c.
7470           Added explicit timeout task context instead that is used to
7471           delete the task if we are registering a new task before the
7472           new task has elapsed.
7473
7474         * When channel key rekey occurs the client library now saves
7475           the old channel key for a short period of time (10 seconds) and
7476           is able to use it in case some is still sending channel
7477           messages encrypted with the old key after the rekey.  Affected
7478           file lib/silcclient/[idlist.h|client_channel.c].
7479
7480 Sun Sep  9 15:49:16 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
7481
7482         * Added check to the silc_server_new_id_real to not accept
7483           new ID if it is the sender's own ID.  Affected file is
7484           silcd/packet_receive.c.
7485
7486         * Assure that we do not announce ourself or the one we've
7487           sending our announcements when we're router and are announcing
7488           servers to our primary router.  Affected file silcd/server.c.
7489
7490         * Fixed silc_server_command_identify_check_client to assemble
7491           correct WHOIS packet.  It send corrupted WHOIS packet and
7492           caused problem with router to router connections.  Affected
7493           file silcd/command.c.
7494
7495           Fixed also silc_server_command_whois_check the same way
7496           as for the IDENTIFY command.
7497
7498         * Added new SilcIDListStatus to the server in the SilcIDListData
7499           structure.   The status now includes the current status of
7500           the entry (like registered, resolved etc.).  Affected file
7501           silcd/idlist.[ch].  Defined a bunch of different status types
7502           as well.  This replaced the old boolean registered field as well.
7503
7504           Added resolve_cmd_ident field to the SilcClientEntry structure
7505           too so that if the entry is for example being resolved so
7506           another command may attach to the same pending command reply
7507           without requiring to resolve the same entry again.  This concept
7508           should optimize the WHOIS and the IDENTIFY resolving under
7509           heavy load by taking away unnecessary resolving for entries
7510           that are being resolved already.
7511
7512           Added support for adding multiple pending commands for one
7513           command idenfier.  Affected file silcd/command[_reply].[ch].
7514
7515         * Fixed WHOIS and IDENTIFY save to remove the cache entry
7516           before deleting the data.  Otherwise the hash table will have
7517           freed data in comparison functions.  Affected file is
7518           silcd/command_reply.c.
7519
7520         * Fixed silc_idlist_replace_client_id to add the new entry to
7521           the cache with NULL nickname.  Otherwise there will be invalid
7522           memory as the nickname after the nickname is freed.  Affected
7523           file silcd/packet_receive.c.
7524
7525         * Fixed the silc_idlist_get_clients_by_hash.  The entries was
7526           saved into wrong slots because the previous number of entries
7527           was not taken into account.  Affected file silcd/idlist.c.
7528           Fixed same thing in silc_idlist_get_clients_by_nickname too.
7529
7530         * If we are router and we receive JOIN notify to a channel that
7531           does not have any users then notified client is marked as the
7532           channel founder, as it is it.  The affected file is
7533           silcd/packet_receive.c
7534
7535         * Added to the extended hash table API's table_del_*ext functions
7536           the destructor as argument too, so that the caller can decide
7537           which destructor to use or whether to use destructor at all.
7538           Affected file lib/silcutil/silchashtable.[ch].
7539
7540         * Fixed ID Cache purging.  It actually deleted the entries from
7541           the hash table after the data was freed.  The hash table ended
7542           up comparing freed memory.  The affected file is
7543           lib/silccore/silcidcache.c.
7544
7545 Sat Sep  8 10:22:10 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
7546
7547         * Fixed Irssi SILC client's KILL command's HELP syntax.
7548
7549         * The USERS command now resolves the detailed user information
7550           if the userinfo field is missing.  Affected file is
7551           lib/silcclient/command_reply.c.
7552
7553         * Do not print error in silc_file_read if the read file does
7554           not exist.  Just silently return NULL.  Affected file is
7555           lib/silcutil/silcutil.c.
7556
7557         * Fixed the silc_log_output to not wine about NULL filename
7558           and to not create some bogus " " filename.  Affected file is
7559           lib/silcutil/silclog.c.
7560
7561 Fri Sep  7 22:16:38 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
7562
7563         * Fixed various printing bugs on the user interface in the
7564           Irssi SILC Client.  Minor changes that were forgotten from
7565           the release.
7566
7567 Fri Sep  7 17:28:37 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
7568
7569         * Fixed the configure.in.pre and the compilation and distribution
7570           environment to support the new autoconf 2.52.  That version is
7571           now required to compile the CVS trunk.
7572
7573 Thu Sep  6 12:47:37 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
7574
7575         * Renamed function silc_parse_nickname to silc_parse_userfqdn
7576           to generally parse user@fqdn format strings.  Affected file
7577           lib/silcutil/silcutil.c.
7578
7579         * Added nickname_format and nickname_force_format fields to the
7580           SilcClientParams structure.  The first one defines the format
7581           for the nicknames that the library will enforce if the receives
7582           multiple same nicknames.  The second one is boolean value and
7583           can be used to force the library to always enforce the format
7584           to the nicknames regardles whether there are multiple nicknames
7585           or not.  This configurable formatting was employed to flexibly
7586           support accessing multiple nicknames from the user interface.
7587           The userinterface can now set the nicknames to what ever format
7588           they prefer.  Affected file lib/silcclient/silcapi.h.
7589
7590           Added function silc_client_nickname_format to the file
7591           lib/silcclient/idlist.c.  It performs the nickname formatting.
7592
7593           Added new field `hostname´ to the SilcClientEntry context.
7594           It holds the hostname of the client.  Affected file is
7595           lib/silcclient/idlist.h.
7596
7597         * Irssi SILC Client sets the nicknames in nick@hostn format.
7598           Fe. priikone@otaku, priikone@otaku2 etc.  Affected file
7599           irssi/src/silc/core/silc-core.c.
7600
7601           The WHOIS printing now also shows both the real nickname and
7602           the formatted nickname so that user knows how to access the
7603           user if there are multiple same nicknames cached.  Affected
7604           file irssi/src/silc/core/client_ops.c.  Changed the WHOIS
7605           printing formatting too to take the hostname now as a separate
7606           argument.  The Affected file is
7607           irssi/src/fe-common/silc/modules-formats.[ch].
7608
7609         * Changed the silc_client_get_clients_local to accept the formatted
7610           nickname as argument.  It accepts the real nickname too but the
7611           formatted nickname can be used to find the true entry from
7612           multiple entries.  Affected file lib/silcclient/silcapi.h and
7613           lib/silcclient/idlist.c.
7614
7615         * Added nickname_format_parse field to the SilcClientParams.
7616           It is a callback function provided by the application to parse
7617           the nickname out of the formatted nickname string. The library
7618           calls it to get the nickname from the formatted string. Since
7619           the application generally knows better the format of the nickname
7620           string it parses it instead of the library, even though library
7621           encodes the formatted string.  If the callback function is not
7622           provided then the library will use the string as is.  The
7623           affected file is lib/silcclient/silcapi.h.
7624
7625         * All the nickname strings passed to the client library in
7626           commands are now expected to be formatted nickname strings.
7627           If the command does not support the formatted nickname string
7628           it will assume that the sent string is the actual nickname.
7629           Affected file lib/silcclient/command.c.
7630
7631 Tue Sep  4 22:31:28 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
7632
7633         * Added public key authentication support to OPER and SILCOPER
7634           commands in the client library.  Affected file is
7635           lib/silcclient/command.c.
7636
7637 Tue Sep  4 12:39:17 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
7638
7639         * Changed the get_auth_methdod client operation to be asynchronous.
7640           It can be async if the application resolves the authentication
7641           method from the server during the negotiation.  Added new
7642           SilcGetAuthMeth completion callback that the application will
7643           call after resolving the authentication method.
7644
7645           Added function silc_client_request_authentication_method that
7646           the application can use to resolve the authentication method
7647           from the server.  Added also SilcConnectionAuthRequest callback
7648           that the library will call after the server has replied.  The
7649           application can call this function if it does not know the
7650           current authentication method.
7651
7652           Affected files are lib/silcclient/client.c and
7653           lib/silcclient/silcapi.h.
7654
7655         * The Irssi SILC client now automatically resolves the authentication
7656           method incase any configuration information is not present (and
7657           currently there never is).  The affected file is
7658           irssi/src/silc/core/client_ops.c.
7659
7660         * Fixed public key authentication from the client library.
7661           Affected file lib/silcclient/protocol.c.  Changed also the
7662           protocol specification about the public key authentication in
7663           the connection authentication protocol.  The actual data to be
7664           signed is now computed with a hash function before signing.
7665
7666         * Fixed the public key authentication from the server as well.
7667           Affected file silcd/protocol.c.
7668
7669         * Removed the mlock()'s from the memory allocation routines.
7670           Affected file lib/silcutil/silcmemory.c.  The ./configure does
7671           not check anymore for the mlock().  Affected file is
7672           configure.in.pre.
7673
7674         * Fixed USERS command in server to allow the execution of the
7675           command for private and secret channels if the client sending
7676           the command is on the channel.  Affected file silcd/command.c.
7677
7678         * Fixed silc_client_get_clients_local to return the clients
7679           count correctly.  It could return wrong value.  Affected file
7680           lib/silcclient/idlist.c.
7681
7682 Mon Sep  3 20:09:59 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
7683
7684         * Fixed the lib/silcmath/mpi/mpi.h to always use 32-bit data
7685           types.  The assembler optimizations seemed not to like 64-bit
7686           data types.  The assmebler optimizations thus are now enabled
7687           also for BSD systems as opposed to only enable them for Linux.
7688
7689         * Do not check for threads at all on BSD systems.  Affected
7690           file configure.in.pre.
7691
7692         * Removed -n and -h options from the Irssi SILC Client since
7693           they are not used in silc.
7694
7695         * Fixed the prime generation to assure that the first digit
7696           of the generated random number is not zero since our conversion
7697           routines does not like number strings that starts with zero
7698           digit.  If zero digit is seen the random number is regenerated.
7699           This caused some corrupted RSA keys when the zero first digit
7700           was met.  Affected file lib/silcmath/silcprimegen.c.
7701
7702 Sun Sep  2 17:17:24 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
7703
7704         * Fixed WIN32 configuration in the ./configure script.
7705           Fixed to include xti.h on environments that has it.
7706           Patches by Carsten Ilchmann and andrew.
7707
7708 Sat Sep  1 00:29:33 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
7709
7710         * Changed the silc_id_create_client_id to be collision
7711           resistant.  It is now assured that there cannot be created
7712           two same client ID's.  I suspect that some weird bugs in
7713           the server were actually caused by duplicate Client IDs.
7714           Affected file silcd/serverid.[ch].  A router receiving
7715           new ID now also assures and informs the sending server
7716           if the ID caused collision.
7717
7718         * Changed the silc_id_create_channel_id to also assure that
7719           there are no collisions.
7720
7721 Wed Aug 29 17:55:01 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
7722
7723         * Statement about ignoring the Mutual Authentication flag when
7724           performing rekey with PFS was a bit misleading.  It is ignored
7725           if it was set in the initial negotiation, it cannot be even
7726           set in the rekey.  Fixed in the ke-auth draft.  Started the
7727           new versions of the protocol drafts in the doc/.
7728
7729 Sun Aug 26 14:59:15 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
7730
7731         * Fixed a bug in silc_client_command_identify_save when saving
7732           new channel information.  The channel name was no duplicated
7733           and caused crash on exit.  Affected file is
7734           lib/silcclient/command_reply.c.
7735
7736 Fri Aug 17 23:07:45 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
7737
7738         * Fixed the getkey command handling in the server.  Send just
7739           empty OK reply to the sender if the key could not be fetched
7740           (but everything else was ok, like the key just was not available).
7741           Changed the public key parameter to optional in the protocol
7742           specs so that empty OK reply can be sent.  Affected file
7743           silcd/command.c.
7744
7745           Added a message to Irssi SILC client to tell to user if the
7746           server did not return a public key.
7747
7748 Tue Aug 14 07:29:27 CEST 2001  Pekka Riikonen <priikone@silcnet.org>
7749
7750         * Fixed a channel key regeneration bug.  It registered new
7751           timeout tasks exponentially until all system resources were
7752           used.  Affected file silcd/server.c.
7753
7754 Sun Aug 12 20:48:14 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
7755
7756         * Added the SILC Document generator to the scripts/silcdoc.
7757           It can be used to generate the Toolkit Reference Manual out
7758           of the source tree.  Internally it will also use the RoboDoc
7759           generator now imported in util/robodoc.
7760
7761 Sun Aug 12 12:28:17 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
7762
7763         * Added couple of return's in rekey protocol if error orccurred
7764           during the protocol.  The execution must be terminated.
7765           Affected file silcd/protocol.c.  Also, terminate the protocol
7766           always with timeout.
7767
7768 Sat Aug 11 12:36:02 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
7769
7770         * The client's Client ID was created initally from the wrong
7771           nickname (it could have been in format nick@host) in the
7772           silc_server_new_client.  Affected file silcd/packet_receive.c
7773
7774 Sat Aug 11 00:29:57 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
7775
7776         * Added some SILC_LOG_ERROR's to various error conditions
7777           if client could not be added to ID cache.  Affected files
7778           silcd/packet_receive.c and silcd/server.c.
7779
7780         * When client's sock->user_data is freed, NULL also the
7781           client->router and client->connection pointers.  Added check
7782           for these pointers being NULL to various places around the
7783           code.  Affected file silcd/server.c.
7784
7785         * Added client->data.registered == TRUE checks to various
7786           places around the code to assure that unregistered client's
7787           are not handled when it is not allowed.  Affected file
7788           silcd/server.c.
7789
7790         * Added `bool registered' fields to all
7791           silc_idlist_[server|client]_get_* routines to indicate whether
7792           the fetched client needs to be registered or not.  Affected
7793           file silcd/idlist.[ch].
7794
7795         * Add your own entry as registered to the ID cache in the
7796           server.  Affected file server.c.
7797
7798         * Fixed a bug in silc_server_new_server.  The SilcServer was
7799           set as the new server's context instead of SilcServerEntry.
7800           This naturally caused some weird bugs.
7801
7802         * Added "updated" field the SilcChannelEntry which indicates
7803           the time since the channel entry was last accessed.  This
7804           can be used to determine whether it is necessary to
7805           announce the channel after backup resuming protocol.
7806           Affected files silcd/idlist.[ch].
7807
7808 Thu Aug  9 18:28:37 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
7809
7810         * Do not delete the channel rekey task when adding it
7811           for in silc_server_create_channel_key.
7812
7813         * Changed the silc_server_create_channel_key to return
7814           TRUE or FALSE to indicate the success of the channel key
7815           creation.
7816
7817 Thu Jul 26 11:32:31 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
7818
7819         * Fixed MSVC++ project files and added missing files to
7820           Makefiles under win32/.
7821
7822 Wed Jul 25 18:43:54 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
7823
7824         * Do not add TCP_NODELAY flag if the operating system
7825           does not have it defined.  Affected files are
7826           lib/silcutil/[unix/win32]/silc[unix/win32]net.c.
7827
7828         * Fixed buffer overflow from Irssi SILC Client.  Affected
7829           file irssi/src/fe-common/core/themes.c.
7830
7831         * Fixed double free in client library in the file
7832           lib/silcclient/client.c when disconnecting from server.
7833
7834         * Applied double free patch from cras to Irssi SILC client.
7835           Affected files irssi/src/core/[modules/expandos].c
7836
7837         * Fixed the disconnection handling to Irssi SILC Client.
7838           The application must call silc_client_close_connection
7839           in ops->connect client operation in case of failure of
7840           the connection.  Affected file is
7841           irssi/src/silc/core/client_ops.c.
7842
7843         * Do not set sock->protocol to NULL in the function
7844           silc_client_close_connection after executing the protocol's
7845           final callback since the sock might not be valid anymore.
7846           Affected file lib/silcclient/client.c.
7847
7848 Wed Jul 25 16:04:35 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
7849
7850         * Do not enable SILC_THREADS if the linking with libpthread
7851           did not happen.  Affected file configure.in.pre.
7852
7853         * Added notion to protocol specification that server must
7854           verify the sent authentication payload with CMODE when
7855           setting the channel founder key.  Implemented it to the
7856           server.  Affected file silcd/command.c.
7857
7858 Mon Jul 23 18:31:43 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
7859
7860         * Added _EXTRA_DIST SILC distribution variable to the
7861           distributions file.  It is used to conditionally add extra
7862           files or directories to the specific distribution.  Affected
7863           files ./prepare, Makefile.am.pre and distributions.
7864
7865           Removed the `_' from the start of the distribution names.
7866           It is redundant.
7867
7868         * Added README.WIN32 for instructions to compile the Toolkit
7869           under WIN32.
7870
7871 Mon Jul 23 10:12:37 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
7872
7873         * Fixed a double free in disconnection in the server.  Affected
7874           file is silcd/server.c.
7875
7876         * Fixed the lib/silcske/groups.c to work now also with GMP
7877           MP library.  The string conversion did not work when using
7878           specific base and the base is indicated in the string as well.
7879
7880         * Created win32/ directory which now includes MSVC++ specific
7881           stuff so that toolkit (DLLs) may be compiled with MSVC++.
7882           It will appear only in the toolkit distribution
7883
7884 Sun Jul 22 19:40:30 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
7885
7886         * Changed the key material distribution function in case when
7887           the hash output is too short.  The data is now concatenated
7888           a bit differently than it used to.  Made the change to the
7889           SKE protocol specification.
7890
7891         * Added better GMP detection to configure.in.pre.  A patch
7892           by salo.
7893
7894 Fri Jul 20 13:16:00 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
7895
7896         * Fixed a minor bug in SKE that might cause some problem on
7897           some platforms.  Affected file lib/silcske/silcske.c.
7898
7899         * Added the cookie checking for initiator in the SKE.  It checks
7900           that the responder returns the sent cookie unmodified.  The
7901           affected file is lib/silcske/silcske.c.  Added new SKE
7902           error type INVALID_COOKIE that can be sent during the
7903           negotiation.  Fixed some memory leaks as well.
7904
7905         * Added the "invalid cookie" error message to Irssi SILC client's
7906           message formats.
7907
7908 Thu Jul 19 21:44:31 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
7909
7910         * Added `task_max' field to the SilcClientParams to indicate
7911           the maximum tasks the scheduler can handle.  If set to zero,
7912           default values are used.  Affected file lib/silcclient/silcapi.h.
7913
7914         * Fixed memory leaks in silc_client_close_connection.  Affected
7915           file lib/silcclient/client.c.
7916
7917         * Added silc_client_del_client_entry to client library to free
7918           all memory of given client entry.  Affected file is
7919           lib/silcclient/idlist.[ch].
7920
7921         * Added new functions silc_client_del_channel and
7922           silc_client_del_server to delete channel and server entries.
7923           Affected file lib/silcclient/[silcapi.h/idlist.c].
7924
7925         * Removed silc_client_del_client_by_id from silcapi.h.
7926
7927         * Fixed the INFO command to return the server's own info
7928           correctly when querying by Server ID.  Affected file is
7929           silcd/command.c.
7930
7931 Thu Jul 19 14:47:30 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
7932
7933         * Removed the non-blocking settings in WIN32 code in the
7934           silc_sock_[read/write] and added SleepEx instead.  Affected
7935           file lib/silcutil/win32/silcwin32sockconn.c.  The availability
7936           of input data is now checked with FIONREAD and ioctlsocket.
7937
7938 Wed Jul 18 18:34:01 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
7939
7940         * Call silc_schedule_task_del_by_context in the
7941           silc_protocol_cancel instead of silc_schedule_task_del_by_callback.
7942           Affected file lib/silccore/silcprotocol.c.
7943
7944         * Call silc_protocol_cancel for active protocols in the
7945           silc_server_close_connection if the funtion
7946           silc_server_free_sock_user_data has not been called.
7947           Affected file silcd/server.c.
7948
7949         * Generic tasks cannot be deleted using the del_by_fd
7950           task deleting function since generic tasks does not match
7951           any specific fd.  Affected file lib/silcutil/silcschedule.[ch].
7952
7953         * Added a notion to SILCOPER help file that the SILCOPER works
7954           only on router server, not on normal server.
7955
7956 Wed Jul 18 09:40:04 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
7957
7958         * Added for WIN32 support for the new scheduler as well.
7959           Affected file lib/silcutil/win32/silcwin32schedule.c.
7960
7961         * Fixed the SHA1 implementation to work on various platforms.
7962
7963 Tue Jul 17 23:04:10 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
7964
7965         * Rewrote the SILC Scheduler entirely.  Removed the old SILC Task
7966           API.  It is part of the scheduler now.  Everything else is
7967           as previously but some functions has changed their names.
7968           Checkout the lib/silcutil/silcschedule.h for the interface.
7969           Updated all applications to use the new interface.  Affected
7970           files are lib/silcutil/silcschedule.[ch].
7971
7972 Tue Jul 17 16:53:30 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
7973
7974         * Found a bug in the SKE implementation.  The HASH value,
7975           specified by the protocol, was not computed correctly.  The
7976           public key of the responder was not added to the computation
7977           even though it is mandatory.  Affected file lib/silcske/silcske.c.
7978           This unfortunately causes incompatibilities with older
7979           clients and servers.
7980
7981         * Added WIN32 specific network init and uninit functions:
7982           silc_net_win32_init and silc_net_win32_uninit to init and uninit
7983           the Winsock2.  Affected file lib/silcutil/silcnet.h and
7984           lib/silcutil/win32/silcwin32net.c.
7985
7986         * Set the socket always to nonblocking mode on WIN32 after
7987           reading data or writing data.  Affected file is
7988           lib/silcutil/win32/silcwin32sockconn.c.
7989
7990 Mon Jul 16 22:55:26 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
7991
7992         * Fixed various compilation problems under WIN32.  Affected
7993           files lib/silcutil/win32/silcwin32thread.c and
7994           lib/silcutil/win32/silcwin32schedule.c.
7995
7996         * Removed all _internal.h #includes from public header
7997           files.  Internal headers must never be included from
7998           public headers.
7999
8000           Removed also the lib/silcske/payload_internal.h file.
8001
8002         * All include files that may be needed (public and some others
8003           included by the public headers) by application developers are
8004           now copied to the ./includes directory.  It does not copy any
8005           internal headers.  Affected file Makefile.defines.pre and all
8006           Makefile.am's under lib/ and subdirs.
8007
8008 Thu Jul 12 17:49:31 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
8009
8010         * Do not change the ~/.silc directory's permissions automatically.
8011           Affected file irssi/src/silc/core/clientutil.c.
8012
8013 Thu Jul 12 10:18:40 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
8014
8015         * Do not cancel the protocol in silc_server_close_connection
8016           it might cause recursion.  Now cancelled in the function
8017           silc_server_free_sock_user_data.  Affected file silcd/server.c.
8018
8019         * Fixed the silc_server_remove_clients_by_server to regenerate
8020           the channel keys correctly finally.  Added also new function
8021           silc_server_remove_clients_channels to actually do it.
8022           Affected file silcd/server.c.
8023
8024         * Fixed the silc_server_new_channel to not crash by giving
8025           wrong router to the new channel.  Affected file is
8026           silcd/packet_receive.c.
8027
8028 Wed Jul 11 18:31:57 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
8029
8030         * Added SilcClientParams structure to the lib/silcclient/silcapi.h
8031           which is given as argument to the silc_client_alloc now.
8032           It can be used to configure the client and set various parameters
8033           that affect the function of the client.
8034
8035         * The USERS command in server did not check whether the channel
8036           is private or secret.  Affected file silcd/command.c.
8037
8038         * Added new argument to the USERS command in protocol specification.
8039           The USERS command now can take the channel name as argument
8040           as well.  Added support for this in client and server and
8041           updated the protocol specs.
8042
8043         * Completed the GETKEY command in client. It can be now used
8044           to fetch also servers public key not only some clients.
8045           Affected files lib/silcclient/command[_reply].c.
8046
8047         * Added silc_client_get_server to return server entry by the
8048           server name.  Affected files lib/silcclient/silcapi.h and
8049           idlist.c.
8050
8051         * Redefined the IDENTIFY command in protocol specification to be
8052           more generic.  It now can be used to query information about
8053           any entity in the SILC Network, including clients, servers and
8054           channels.  The query may be based either the entity's name
8055           or the ID.  Added support for this in both client and server.
8056
8057           Affected files silcd/command.c and lib/silcclient/command.c
8058           and command_reply.c.
8059
8060         * Optimized the WHOIS and WHOWAS commands in the server. Removed
8061           the _from_client and _from_server functions.  Affected file
8062           silcd/command.c.
8063
8064         * Added silc_client_get_channel_by_id_resolve to the file
8065           lib/silcclient/silcapi.h to resolve channel information by
8066           its ID.  Added also silc_client_get_channel_by_id that
8067           does not resolve it from the server.
8068
8069 Tue Jul 10 18:05:38 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
8070
8071         * Added SilcServerEntry context into the client library
8072           to represent one server.  The INFO command now allocates
8073           these to save the resolved server info.  For now on the
8074           client library will also keep information about servers,
8075           connected and resolved with INFO.
8076
8077           The INFO command now allocates the SilcServerEntry context
8078           and saves the server info there.  The COMMAND_REPLY in
8079           the INFO now returns the parameters to application in
8080           same order as defined in the protocol specification.
8081
8082           The entries are cached in the client->server_cache.
8083
8084         * The INFO command is now issued after received the Client ID
8085           from the server.  Affected file lib/silcclient/client.c.
8086
8087         * The CMODE_CHANGE notify may now return also an SilcServerEntry
8088           to the application as the mode changer might be server.
8089           It is guaranteed that NULL is not returned anymore to the
8090           application.  Affected file lib/silcclient/client_notify.c.
8091
8092           The ID Type is now also passed to the application so that
8093           it can check whether the returned entry is SilcClientEntry
8094           or SilcServerEntry.
8095
8096           Added new function silc_client_get_server_by_id to return
8097           the server entry by ID.  Affected files are the
8098           lib/silcclient/silcapi.h and lib/silcclient/idlist.c.
8099
8100         * Do not create the channel in the Irssi SILC Client when issuing
8101           the JOIN command but when received the sucessful JOIN command
8102           reply.  Otherwise the channel might get created even though we
8103           could not join it.  The Affected file is
8104           irssi/src/silc/core/[silc-channels.c/client_ops.c].
8105
8106         * Fixed a channel joining bug in router.  The router must also
8107           check the channel modes, invite and ban lists etc. when serving
8108           the JOIN command sent by normal server.  Affected file is
8109           silcd/command.c.  The router now resolves the client's
8110           information from the server who sent the JOIN command if it
8111           does not know it, and processes the JOIN command only after
8112           that.
8113
8114         * Changed the SilcCommandCb to take new argument; void *context2.
8115           Affected file lib/silccore/silccommand.h
8116
8117           The second argument in the command callbacks in the server now
8118           includes the SilcServerCommandReplyContext if the command was
8119           called as pending command callback from the command reply.
8120           Otherwise it is NULL. When called as pending the status of the
8121           command reply will be checked and if it was erronous the
8122           error will be sent to the original sender of the command.
8123           This way the client always receives the error messages even
8124           though the server was actually the one who received the error
8125           when it resent the command to router, for example.  Affected
8126           files silcd/command[_reply].[ch].
8127
8128         * Fixed sending WHOWAS command's error message to client if
8129           the requested client could not be found.  It was missing.
8130           silcd/command.c.
8131
8132         * Changed the CMODE and CUMODE commands reply arguments in the
8133           protocol specification.  The Channel ID is now sent in both
8134           of the commands to identify the channel.  Implemented this
8135           new feature to the client and server.  Affected files
8136           lib/silcclient/command_reply.c and silcd/command.c.
8137
8138         * Made better checks for invite and ban lists in the JOIN
8139           command in server.  Affected file silcd/command.c.
8140
8141 Mon Jul  9 18:28:34 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
8142
8143         * The server now performs the incoming host IP/DNS lookup
8144           using the silc_socket_host_lookup and thus does not block
8145           the server anymore.  Affected file silcd/server.c.
8146
8147         * Completed the multi-thread support for SILC Scheduler in
8148           the lib/silcutil/silcschedule.c.
8149
8150         * Fixed the configure.in.pre to detect the pthread correctly
8151           on various systems.
8152
8153         * Fixed a deadlock in silc_task_queue_wakeup in the file
8154           lib/silcutil/silctask.c.
8155
8156 Mon Jul  9 13:40:03 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
8157
8158         * Added new function silc_schedule_wakeup that is used in
8159           multi-threaded environment to wakeup the main thread's
8160           schduler. It needs to be used when a thread adds a new task
8161           or removes a task from task queues. After waking up, the
8162           scheduler will detect the task queue changes. If threads
8163           support is not compiled in this function has no effect.
8164           Implemented the wakeup mechanism to both Unix and WIN32
8165           systems.  Affected files are lib/silcutil/silcschedule.[ch],
8166           lib/silcutil/unix/silcunixschedule.c and the
8167           lib/silcutil/win32/silcwin32schedule.c.
8168
8169         * Added new function silc_task_queue_wakeup to wakeup the
8170           scheduler by the specified task queue.  Affected file
8171           lib/silcutil/silctask.[ch].
8172
8173         * The silc_socket_host_lookup_start now wakes up the scheduler
8174           after adding the timeout task.  Affected file is
8175           lib/silcutil/silcsockconn.c.
8176
8177         * The silc_socket_host_lookup is synchronous now if the threads
8178           support is not compiled in.  However, the callback is still
8179           called asyncronously through the scheduler, anyway.  Affected
8180           file lib/silcutil/silcsockconn.c.
8181
8182 Mon Jul  9 00:24:45 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
8183
8184         * Added new function silc_socket_host_lookup to perform
8185           asynchronous IP and FQDN lookups for the socket connection.
8186           Affected files lib/silcutil/silcsockconn.[ch].
8187
8188 Sun Jul  8 18:44:53 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
8189
8190         * Added SILC_MUTEX_DEFINE to define the mutex on environments
8191           that may or may not compile the mutex support in.
8192
8193           Changed the silc_mutex_alloc interface. It allocates the
8194           mutex now to the sent pointer and returns TRUE or FALSE.
8195
8196           Affected file lib/silcutil/silcmutex.h.
8197
8198         * Wrote the SILC Task Queue interface to support multi-threads.
8199           Affected file lib/silcutil/silctask.[ch].
8200
8201         * Wrote the SILC Scheduler to support multi-threads.  Affected
8202           file lib/silcutil/silcschedule.c.
8203
8204 Sun Jul  8 11:16:01 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
8205
8206         * Implemented the SILC Mutex API and SILC Thread API for WIN32
8207           in lib/silcutil/win32/.
8208
8209 Sun Jul  8 00:18:15 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
8210
8211         * Defined SILC Mutex API and SILC Thread API and implemented
8212           them for Unix.  Affected files are
8213           lib/silcutil/silcmutex.h, lib/silcutil/silcthread.h,
8214           lib/silcutil/unix/silcunixmutex.c and
8215           lib/silcutil/unix/silcunixthread.c.
8216
8217 Sat Jul  7 14:40:31 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
8218
8219         * Fixed the silc_server_remove_clients_by_server's channel
8220           key re-generation.  The hash table handling was incorrect
8221           and would not work with many channels.  Affected file is
8222           silcd/server.c.
8223
8224         * Fixed some memory leaks around the server code.
8225
8226         * Rewrote the silc_server_get_users_on_channel to support IPv6
8227           based Client ID's.  Affected file silcd/server.c.
8228
8229         * Defined the SILC_MESSAGE_FLAG_SIGNED to the protocol
8230           specification.  However, a separate document must be written
8231           to define the detailed signing procedure and the payload
8232           associated with the flag.  Defined the flag to the
8233           lib/silccore/silcchannel.h as well.
8234
8235 Fri Jul  6 18:26:31 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
8236
8237         * Changed the dynamic tables to static size tables in the
8238           lib/silccrypt/silchmac.c.
8239
8240         * Removed GCC dependencies from the code.  A patch by cras.
8241
8242 Fri Jul  6 09:39:35 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
8243
8244         * Do not show the error "Error receiving packet bla bla"
8245           in server if it really was not an error (-2 means that reading
8246           is pending).  Affected file silcd/server.c.
8247
8248 Thu Jul  5 21:22:32 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
8249
8250         * Fixed a possible crash in silc_server_remove_clients_by_server
8251           in silcd/server.c.  Fixed there also some memory leaks.
8252
8253         * Fixed the silc_idlist_replace_client_id.  It could replace
8254           wrong key in the hash table.  Affected file silcd/idlist.c.
8255
8256         * Do not check whether there are global users on the channel
8257           if the channel->global_users is FALSE.  Affected functions
8258           silc_server_remove_from_one_channel and
8259           silc_server_remove_from_channels in silcd/server.c.  Also,
8260           do not check if the removed client is local as we can be
8261           sure that global client was not removed from the channel
8262           and checking for global users is not needed.
8263
8264         * The silc_server_remove_clients_by_server now re-generates
8265           the channel keys correctly for those channels that had
8266           clients removed from them.  Affected file silcd/server.c.
8267
8268 Tue Jul  3 11:39:20 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
8269
8270         * Found the reason of random crashes in the server.  We weren't
8271           ignoring the SIGPIPE signal (which can be sent in write())
8272           and it crashed the server.  Affected file silcd/silcd.c.
8273
8274 Fri Jun 29 20:05:25 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
8275
8276         * Assure that sock->user_data is not NULL in the function
8277           silc_server_packet_send in silcd/packet_send.c.
8278
8279         * Disconnect the remote connection if it could not be added
8280           to any ID lists in the server.  The affected file is
8281           silcd/server.c.
8282
8283         * Check in silc_server_packet_send[_real/dest] that the
8284           socket is not disconnecting and ignore the data if it is.
8285           Affected file silcd/packet_send.c.
8286
8287         * Define inline to __inline on native WIN32 compilation.
8288           Affected file includes/silcwin32.h.
8289
8290         * Added some explicit type casts for inline code since MSVC
8291           require them.  Affected files lib/silcutil/silcbuffer.h,
8292           lib/trq/silcdlist.h and lib/trq/silclist.h.
8293
8294         * Print warning in log files from now on if the packet
8295           decryption fails.  Affected file silcd/server.c.
8296
8297 Thu Jun 28 21:30:39 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
8298
8299         * Changed the `say' client operation's interface to accept
8300           new `type' argument to indicate the type of the message sent
8301           by the library.  The application may filter the library's
8302           messages according the type.  The affected file is the
8303           lib/silcclient/silcapi.h.
8304
8305         * Added two new functions to lib/silcclient/silcapi.h:
8306           silc_client_del_client and silc_client_del_client_by_id.
8307           Affected file lib/silcclient/idlist.c.
8308
8309         * Moved the clientincludes.h from includes/ to silc/ and
8310           serverincludes.h from includes/ to silcd/.
8311
8312         * The modes for the CMODE and CUMODE are now passed as
8313           uint32 for application with COMMAND_REPLY.  The affected
8314           file is lib/silcclient/command_reply.c.
8315
8316 Wed Jun 27 22:24:47 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
8317
8318         * /WHOIS without arguments shows client's own information.
8319           Affected file lib/silcclient/command.c.
8320
8321         * Changed PING to not accept any arguments.  The specs
8322           says that client can ping only the connected server so
8323           requiring an argument is not needed.  Affected file is
8324           lib/silcclient/command.c.
8325
8326 Wed Jun 27 00:10:33 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
8327
8328         * Fixed a fatal bug in private message sending and reception
8329           encryption and decryption when using private message keys.
8330           The implementation was incorrect and did not follow the
8331           specification.  It causd that some of the message were
8332           lost since it did not use the sending and receiving keys
8333           as the protocol suggests.  This has been fixed and will cause
8334           incompatibilities with older clients when sending private
8335           message encrypted with private message keys.  Affected files
8336           lib/silcclient/client_prvmsg.c, lib/silcclient/client_keyagr.c
8337           and various other in Irssi SILC Client.
8338
8339           Added `responder' boolean argument to the functions
8340           silc_client_add_private_message_key[_ske] to indicate when
8341           the key is added as responder or initiator of the key
8342           negotiation.
8343
8344 Tue Jun 26 19:23:07 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
8345
8346         * Removed the silc_ske_check_version function and created
8347           a SilcSKECheckVersion callback.  Added also a function
8348           silc_ske_set_callbacks that is now used to set all SKE
8349           callbacks.  The callback functions are not given to
8350           the SKE functions anymore, but this function is used to
8351           set the callbacks.
8352
8353         * Fixed the WIN32 DLL generation in lib/Makefile.am.pre.
8354
8355         * Added `silc_version' argument to the silc_client_alloc
8356           to define the version of the application for the library.
8357           The library will use the version string to compare it
8358           against the remote host's (usually a server) version
8359           string.  Affected file lib/silcclient/silcapi.h
8360
8361         * Added the KE protocol context to Key Agreement context
8362           in client library so that we can abort the SKE if it
8363           is in process when we get timeout.  Affected file is
8364           lib/silcclient/client_keyagr.c.
8365
8366         * Do not resolve the client ID forever if it returns in the
8367           first time that such client does not exist.  This was done
8368           for example with private message.  Affected file is
8369           lib/silcclient/client_prvmsg.c.
8370
8371 Mon Jun 25 21:42:51 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
8372
8373         * Do not add regex.h for WIN32.  The affected file
8374           includes/silcincludes.h.
8375
8376         * Added WIN32 DLL generation to lib/Makefile.am.pre.  It might
8377           not work yet 100%.  It generates the DLL's automatically
8378           when compiling with --with-win32 under cygwin.
8379
8380 Sun Jun 24 19:49:23 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
8381
8382         * lib/contrib/regex.c is not compiled on WIN32.
8383
8384         * Added silc_net_get_socket_opt function to the
8385           lib/silcutil/silcnet.h.
8386
8387         * Added includes/silcwin32.h for WIN32 specific includes
8388           and definitions.
8389
8390         * Do not use ptime structure or any of the posix process
8391           functions on WIN32 in lib/silccrypt/silrng.c.
8392
8393         * Added silc_gettimeofday to provide generic function
8394           for struct timeval on all platforms.  Added the function
8395           to lib/silcutil/silcutil.h.
8396
8397 Sun Jun 24 12:19:52 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
8398
8399         * Moved the lib/silccore/silcsockconn.[ch] to the utility
8400           library as they clearly belong there.  As a plus side we
8401           can make the actual socket connection routines platform
8402           specific.
8403
8404           Added also new generic function silc_socket_read and
8405           silc_socket_write (that used to be silc_packet_[read/write].
8406           The implementation of these are platform specific.
8407
8408         * Added WIN32 specific routines of silc_socket_[read/write]
8409           to lib/silcutil/win32/silcwin32sockconn.c.
8410
8411 Sat Jun 23 16:01:00 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
8412
8413         * Added preliminary support for native WIN32 compilation under
8414           cygwin (using the -mno-cygwin option for GCC) to the
8415           ./configure.in.pre.  The --with-win32 now prepares the
8416           compilation for native WIN32.
8417
8418         * Rewrote the SILC Scheduler interface in the file
8419           lib/silcutil/silcschedule.h.  The scheduler is now context
8420           based and does not have anymore any global static scheduler.
8421           Moved the Unix scheduler to the lib/silcutil/unix/ directory
8422           and created lib/silcutil/win32 directory for WIN32 based
8423           scheduler.
8424
8425         * Added Unix specific network routines to the
8426           lib/silcutil/unix/silcunixnet.c and the old
8427           lib/silcutil/silcnet.c includes now only generic routines.
8428
8429           Added WIN32 specific network routines to the
8430           lib/silcutil/win32/silcwin32net.c.
8431
8432         * Added Unix specific utility functions from the
8433           lib/silcutil/silcutil.c to lib/silcutil/unix/silcunixutil.c.
8434
8435         * Added WIN32 SILC Scheduler to the file
8436           lib/silcutil/win32/silcwin32schedule.c. The code is of course
8437           untested.
8438
8439 Fri Jun 22 10:44:14 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
8440
8441         * Do not handle JOIN notify in the server if the target client
8442           is not registered (idata->registered == FALSE).  The affected
8443           file is silcd/packet_receive.c.
8444
8445         * Update the nickrec->founder in event_cumode in the Irssi SILC
8446           client.  Affected file irssi/src/silc/core/silc-channels.c.
8447
8448         * Fixed the CUMODE_CHANGE notify handling in the server when
8449           server and router are announcing their clients on channels.
8450           Now the mode changes are saved and notified correctly.  The
8451           affected file is /silcd/packet_receive.c.
8452
8453         * Fixed silc_idlit_replace_[server/client/channel]_id functions.
8454           They really did not replace the cache entry in the ID Cache.
8455           Now they do that.  Affected file silcd/idlist.c.
8456
8457         * Fixed the KICK notify handling in the Irssi SILC client to
8458           update the channel records so that the kicked client does not
8459           appear to be on the channel.  The affected file is
8460           irssi/src/silc/core/silc-channels.c.
8461
8462         * Always update the conn->current_channel when executing command
8463           on a channel.  Affected file irssi/src/silc/core/silc-servers.c.
8464
8465         * Fixed the KILL notify handling in Irssi SILC client to remove
8466           the killed client on all channels.
8467
8468 Thu Jun 21 17:10:08 CEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
8469
8470         * Fixed the silc_parse_command_line to remove extra spaces
8471           from the start and end of the arguments.  Affected file is
8472           lib/silcutil/silcutil.c.
8473
8474         * Cancel and free any active protocol in the function
8475           silc_server_close_connection.  Affected file silcd/server.c.
8476
8477         * Cancel and free any active protocol in the function
8478           silc_client_close_connction.  Affected file is
8479           lib/silcclient/client.c.
8480
8481         * Do not execute the KILL command for clients that are in
8482           history (ie. they are not in the network).  Affected file is
8483           silcd/command.c.
8484
8485         * Fixed KILL notify handling, client does not crash anymore.
8486           Affected file irssi/src/silc/core/silc-channels.c.
8487
8488         * Reduced the default packet buffer size from 2048 to 1024 in
8489           lib/silccore/silcpacket.c.
8490
8491         * Added SILC_SKE_STATUS_FREED SKE status type and a reference
8492           counter to the SKE context that is incresed when the SKE library
8493           performs async operation outside the library.  If the outside
8494           process frees the SKE context and FREED status will be set
8495           and the library will detect after the sync operation that the
8496           libary is freed.  The affected files are
8497           lib/silcske/silcske[_status].[ch].
8498
8499         * Resolve the client entry information in the function
8500           silc_client_channel_message to assure that NULL pointer is not
8501           passed as client entry to the application. */
8502
8503         * Fixed the task timeout calculation to assure that there is
8504           never negative timeouts.  The affected file is
8505           lib/silcutil/silcschedule.c.
8506
8507         * Fixed the channel user mode notification sending in server.
8508           It was sent point-to-point to the router (or to server by router)
8509           but it needs to be destined to a channel.  The routines now
8510           supports sending the channel user mode notifys to the channels
8511           when announcing clients and channels.  Affected files are
8512           silcd/server.c and silcd/packet_receive.c.
8513
8514         * Fixed the CHANNEL_CHANGE notify handling in the client libary.
8515           It did not actually replace the old channel entry in the cache.
8516           Affected file lib/silcclient/client_notify.c.
8517
8518 Tue Jun 19 22:10:36 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
8519
8520         * Fixed a possible crash in silc_packet_send_prepare.  It now
8521           assures always that there is enough space in the buffer and
8522           at the tail area of the buffer (for MAC).
8523
8524           Fixed the inbound buffer reallocation in silc_packet_read.
8525           It was old code and did not handle the reallocation correctly.
8526           Affected
8527
8528           The affected file is lib/silccore/silcpacket.c.
8529
8530         * Fixed buffer overflow in silc_parse_nickname in the file
8531           lib/silcutil/silcutil.c.
8532
8533 Tue Jun 19 13:40:09 CEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
8534
8535         * make install generates new server keys only if there is not
8536           keys already.
8537
8538 Mon Jun 18 18:49:07 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
8539
8540         * Set SILC_MESSAGE_FLAG_NOREPLY when sending the away message.
8541           Added check that if the NOREPLY is set then we will not send
8542           the away message.  This avoids infinite loop of away messages
8543           if both clients are away.  The affected file is
8544           lib/silcclient/client_prvmsg.c.
8545
8546         * Fixed client crash if /NICK was given without arguments.
8547           Affected file lib/silcclient/command.c.
8548
8549         * Server does not send the invite list in INVITE command back
8550           to the client if the list was not altered.  Added this notion
8551           to the protocol spec as well.  Affected file silcd/command.c.
8552
8553           Fixed possible crash in INVITE command by checking the
8554           value of silc_server_get_client_route command.
8555
8556         * Fixed the INVITE notify type handling.  The arguments are now
8557           taken in correct order and client does not crash.  The affected
8558           file is irssi/src/silc/core/silc-channels.c.
8559
8560           Removed the "Inviting xxx to channel" message from the
8561           client library away and let the application handle it.
8562           Affected file lib/silcclient/command.c.  Added that message
8563           to Irssi SILC client's message formats.
8564
8565         * Fixed CMODE command crash in client.  It now checks the
8566           amount of arguments correctly and does not crash.  The affected
8567           file is lib/silcclient/command.c.
8568
8569         * Do not create new channel automatically in silc_channels_join
8570           but check whether the channel by that name already exists.
8571           Affected file irssi/silc/core/silc-channels.c.
8572
8573         * Do not send the SERVER_SIGNOFF to router if the disconnected
8574           entity was the router.  Affected file silcd/server.c.
8575
8576         * Added the handling of the SERVER_SIGNOFF notify to the Irssi
8577           SILC client as it was missing from there.
8578
8579           Added the handling of the KICK notify to the Irssi SILC client
8580           as it was missing.  Added "you have been kicked" message to
8581           Irssi SILC client's message modules formats.
8582
8583           Added the handing of the KILL notify to the Irssi SILC client
8584           as it was missing.  Added the kill message module formats
8585           as well.
8586
8587           The affected file is irssi/src/silc/core/silc-channels.c.
8588
8589         * The router did not save the channel mode the server announced.
8590           Affected file silcd/packet_receive.c.
8591
8592         * Fixed a possible crash in INFO command in server.  If the
8593           server did not provide the server info it crashed.  Affected
8594           file silcd/command.c.
8595
8596 Sun Jun 17 15:26:05 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
8597
8598         * Fixed the GETKEY command in the server to check also the
8599           global list.  Otherwise the GETKEY would not work correctly
8600           in normal SILC server.  Affected file silcd/command.c.
8601
8602 Sat Jun 16 18:00:00 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
8603
8604         * Fixed GETKEY crash, it crashed if the command did not succseed.
8605
8606 Tue Jun 12 21:36:18 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
8607
8608         * Redefined the SILC MP API in lib/silcmath/silcmp.h. The API
8609           is now real and not just an macro interface to GMP.
8610
8611           Removed the entire GMP from the source tree and imported new
8612           NSS MPI library instead.  Reason for removing GMP is that it is
8613           extremely large and compiles extremely slow.  The NSS MPI
8614           is only a few files and compiles in less than 10 seconds.
8615           The speed is also about the same as GMP.  The MPI is imported
8616           to lib/silcmath/mpi.
8617
8618           If the system has GMP installed we will still use the GMP.
8619           If it is not then the NSS MPI will be compiled.
8620
8621 Mon Jun 11 18:07:24 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
8622
8623         * Merged a long nickname (127 characters long) crash bugfix from
8624           Irssi CVS tree.  Affected file irssi/src/core/misc.c.
8625
8626         * Merged a freed memory reference bugfix from Irssi CVS tree.
8627           Affected file irssi/src/core/commands.c.
8628
8629 Sun Jun 10 16:08:35 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
8630
8631         * Added the server's public key sving and verification to the
8632           server when performing the SKE.  This was missing and the
8633           remote server's (or router's) public key was accepted without
8634           checking whether we have it previously or trust it at all.
8635           Affected file silcd/protocol.c.
8636
8637 Sat Jun  9 20:17:30 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
8638
8639         * Check in the silc_server_timeout_remote if protocol is active
8640           and make sure that the protocol's final callback is called so
8641           that all memory if freed.  Affected file silcd/server.c.
8642
8643 Sat Jun  9 12:51:27 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
8644
8645         * silc_server_whois_send_reply crashed the server if the nickname
8646           was 127 characters long.  Affected file silcd/command.c.
8647
8648 Thu Jun  7 16:29:56 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
8649
8650         * Added sanity check to the silc_server_new_client. If the hostname
8651           is provided inside username then check that the provided hostname
8652           really is the same as the resolved one.  If the hostname was not
8653           resolved then check it from the public key.  Affected file is
8654           silcd/packet_receive.c.
8655
8656         * Fixed a fatal bug in Irssi SILC client. Do not send QUIT command
8657           if the server disconnected us and the connection is not valid
8658           anymore.  Affected file irssi/src/silc/core/silc-channels.c.
8659
8660         * Moved the silc_client_[chmode|chumode|chumode_char] away from
8661           the library to the lib/silcutil/silcutil.[ch].
8662
8663 Thu Jun  7 08:57:16 CEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
8664
8665         * Close log file after open.  Affected file
8666           lib/silcutil/silclog.c.
8667
8668         * Check whether sock == NULL in silc_client_send_packet and return
8669           if it is.  Affected file lib/silcclient/silcclient.c.
8670
8671         * Check rec->entry == NULL in the Irssi SILC Client before
8672           sending the channel message.  Affecte file is
8673           irssi/src/silc/core/silc-servers.c.
8674
8675 Tue Jun  5 08:08:21 CEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
8676
8677         * Merged a splitted window bugfix from Irssi CVS tree.  The
8678           affected file is irssi/src/fe-text/textbuffer-view.c.
8679
8680         * Fixed the ME, ACTION and NOTICE printing in Irssi Client.
8681           It did not print nickname.
8682
8683         * Improved the distributions system a bit.
8684
8685 Mon Jun  4 17:57:16 CEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
8686
8687         * Merged /WINDOW bugfix from irssi CVS tree. Affected file is
8688           irssi/src/fe-text/gui-window.c.
8689
8690         * Fixed a fatal bug in Irssi SILC client. Crashed if sent message
8691           to in-active server.  The affected file is
8692           irssi/src/silc/core/client_ops.c.
8693
8694         * Resolve the client in USERS command reply if the entry does
8695           not have username resolved.  The affected file is
8696           lib/silcclient/command_reply.c.  Also, changed the IDENTIFY
8697           command to WHOIS command to really resolve stuff.  The USERS
8698           is not used any more in any critical section so WHOIS can
8699           be used even though it might be slower than IDENTIFY.
8700
8701         * Changed the lib/silcutil/silchashtable.h header to ROBODoc
8702           format.
8703
8704 Sun Jun  3 14:21:32 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
8705
8706         * Changed the protocol API a bit more consistent in the
8707           lib/silccore/silcprotocol.[ch].
8708
8709         * Changed the following headers to ROBODoc format:
8710
8711                 lib/silccore/silcpayload.h
8712                 lib/silccore/silcprotocol.h
8713                 lib/silccore/silcsockconn.h
8714
8715           All core library headers are now formatted.
8716
8717 Sat Jun  2 10:45:09 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
8718
8719         * Fixed a bug in Irssi SILC client; do not show that you are
8720           server/router operator if you really are not.  Affected file is
8721           irssi/src/silc/core/client_ops.c.
8722
8723         * Renamed silc_command_free_payload to silc_command_payload_free.
8724           Affected file lib/silccore/silccommand.h
8725
8726         * Added silcmath.h to include the prototoypes of various routines
8727           in the lib/silcmath.  Removed the old modinv.h, mpbin.h and
8728           silcprimegen.h.
8729
8730         * Changed the following headers to ROBODoc format:
8731
8732                 lib/silccore/silcchannel.h
8733                 lib/silccore/silccommand.h
8734                 lib/silccore/silcid.h
8735                 lib/silccore/silcidcache.h
8736                 lib/silccore/silcmode.h
8737                 lib/silccore/silcnotify.h
8738                 lib/silccore/silcpacket.h
8739                 lib/silcmath/silcmath.h
8740
8741 Fri Jun  1 22:19:37 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
8742
8743         * Added checking to the server code not to start the server if
8744           ciphers and stuff are not configured properly.  Affected files
8745           silcd/serverconfig.[h] and silcd/server.c.
8746
8747         * Changed the layout of the header files of the public interfaces
8748           in the SILC libraries.  The new layout supports ROBODoc
8749           documentation tool (and some others) so that it is easy to create
8750           a library reference manual.  All the other headers and source
8751           code must still follow the CodingStyle document.  Also source
8752           code must not include these ROBODoc stuffs, only the headers.
8753           Furthermore, all public interface headers must now be named
8754           by using `silc' prefix, example: silcapi.h, silccipher.h.
8755           Some files were renamed due to this.  All the other headers
8756           must not be used as public interfaces.  I will update the
8757           CodingStyle document later.  Changed following headers, so far:
8758
8759                 lib/silcclient/silcapi.h
8760                 lib/silccore/silcauth.h
8761                 lib/silccore/silcprivate.h
8762                 lib/silccrypt/silcdh.h
8763
8764 Fri Jun  1 10:28:09 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
8765
8766         * Updated TODO.
8767
8768         * Removed silc_client_packet_send_flush from the client library
8769           as it is not needed.  Affected file lib/silcclient/client.[ch].
8770
8771         * Added printing of message of unresolved authentication method
8772           to the Irssi SILC client.  Added it to the module formats.
8773           Removed the same message from the client library.
8774
8775 Thu May 31 13:57:33 CEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
8776
8777         * Added new distribution feature, DISTLABEL.  Every distribution
8778           can define own preprocessor label that can be used in the
8779           source code.  For example: #ifdef SILC_DIST_CLIENT.  Affected
8780           file distributions, acconfig.h.pre and prepare.
8781
8782 Tue May 29 22:16:40 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
8783
8784         * Added Makefile.defines_int to include the actual definitions
8785           for Makefile.defines.in.  Tested the new distribution system,
8786           created distributions and tested installation.
8787
8788         * Added AWAY message printing to the Irssi SILC client.  Added
8789           the messages to the irssi/src/fe-common/silc/module-formats.[ch].
8790
8791         * Added SCONNECT command to call the SILC's CONNECT command.
8792           Cannot use CONNECT directly since Irssi uses that internally.
8793           Affected file irssi/src/silc/core/silc-servers.c.
8794
8795           Added ACTION local command.  It is same as ME command but takes
8796           the channel as mandatory argument.
8797
8798           Rewrote some of the Irssi's help files to suite for SILC
8799           protocol.
8800
8801 Mon May 28 19:05:22 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
8802
8803         * Added Makefile.defines[.in] that should for now on be included
8804           in all Makefile.am file in the source tree.  That file includes
8805           all common compilation definitions for SILC source tree.
8806
8807 Mon May 28 10:30:51 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
8808
8809         * Minor changes to the ./prepare script to change the package
8810           name according the distribution name to the configure.in.
8811
8812 Sun May 27 22:24:57 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
8813
8814         * Created new distribution system.  Added file `distributions'
8815           that defines all the distributions that can be created out of
8816           the SILC source tree.  The ./prepare script now reads that
8817           file to determine how to prepare the distributions.  The
8818           first argument to the ./prepare is the name of the distribution
8819           and second is the version of the distribution.  If given
8820           without arguments it creates the default (toolkit) distribution
8821           with the default version (defined in ./prepare).
8822
8823           All Makefile.am files that are subject to the distributions
8824           are now named as Makefile.am.pre.  These are ./Makefile.am
8825           and lib/Makefile.am.  Others may be changed later.
8826
8827 Sun May 27 15:57:17 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
8828
8829         * Added invite list, ban list, some key management and connection
8830           error message printing to module formats in the Irssi SILC client.
8831
8832         * Added new silc_client_set_away_message to set the away message
8833           that is back to the person who sent private message.  The
8834           affected file lib/silcclient/silcapi.h and the
8835           lib/silcclient/client_prvmsg.c.
8836
8837 Sun May 27 12:39:48 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
8838
8839         * Fixed the private message sending in the Irssi SILC client,
8840           added local command KEY to the Irssi SILC client.
8841
8842           Added key management and key agreement message formats to the
8843           irssi/src/fe-common/silc/module-formats.[ch].
8844
8845           Added USERS (alias WHO) printing, server/router operator
8846           indication and LIST command printing to the module formats.
8847
8848 Sat May 26 17:43:42 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
8849
8850         * Fixed channel joining notify handling, cumode notify handling
8851           from Irssi SILC client.
8852
8853         * Added SILC specific module-formats to the Irssi SILC client so
8854           that SILC specific message hilighting, colors etc is possible.
8855           Affected file irssi/src/fe-common/silc/module-formats.[ch].
8856
8857           Added channel mode, channel user mode, actions, notices,
8858           whois and whowas printing to the the module-formats.c.
8859
8860         * Fixed a bug in channel deletion in the server.  The channel
8861           is not left to the cache even if the channel founder auth mode
8862           is set when there are no users anymore on the channel.  Affected
8863           file silcd/server.c.
8864
8865         * The silc_net_localhost now resolves the entire hostname including
8866           the domain name.  Affected file lib/silcutil/silcnet.c.
8867
8868 Sat May 26 12:13:37 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
8869
8870         * Changed the ask_passphrase client operation to be ascynchronous.
8871           It has now a completion callback and a context that the
8872           application must call after it has got the passphrase from
8873           the user.  Affected files lib/silcclient/silcapi.h,
8874           lib/silcclient/protocol.c, lib/silcclient/command.c and
8875           silc/client_ops.c.
8876
8877           Added SilcAskPassphrase callback that the application calls
8878           to deliver the passphrase to the library.
8879
8880         * Changed the SKE protocol's SilcSKEVerifyCb to be asynchronous.
8881           The public key verification and especially a certificate
8882           verification is asynchronous procedure.
8883
8884           Added new SILC_SKE_STATUS_PENDING status to indicate the
8885           request is pending and a callback will be called to finalize
8886           the request.
8887
8888           Added also SILC_SKE_STATUS_PUBLIC_KEY_NOT_PROVIDED status to
8889           indicate that remote end did not send its public key (or
8890           certificate), even though we require it.  Added check for this
8891           condition in the SKE.  This was a security bug, now fixed.
8892
8893           Defined new SilcSKEVerifyCbCompletion callback that is called
8894           when the verification process is completed.
8895
8896           The affected files lib/silcske/silcske_status.h and
8897           lib/silcske/silcske.[ch].
8898
8899         * Changed the verify_public_key client operation to be async
8900           as well.  Defined SilcVerifyPublicKey callback that is used to
8901           indicate the success of the public key verification process.
8902
8903           Changed the server and client to use the new async client
8904           operations.
8905
8906         * Changed the Irssi SILC client's internal scheduler to be called
8907           twice as many times as it used to be.  As a result the client
8908           should be a bit faster now.  Affected file is
8909           irssi/src/silc/core/silc-core.c.
8910
8911         * Added support to Irssi SILC client of asynchronous public key
8912           verification and passphrase inquiry.  Affected file is
8913           irssi/src/silc/core/silc-core.c.
8914
8915 Fri May 25 14:38:38 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
8916
8917         * Do not say "You have left channel %s" in client library.
8918           Moved it to the application.  Affected files are
8919           lib/silcclient/command.c and silc/client_ops.c.
8920
8921         * Fixed silc_client_get_clients.  Command context was not
8922           duplicated and was freed memory in the callback.  Affected
8923           file lib/silcclient/idlist.c.
8924
8925         * Do not say "you are now talking..." on JOIN command in the
8926           client library.  The appliation must handle it.
8927
8928         * Do not say ".. changed topic to" in command reply in the
8929           client libary.  The application must handle it.
8930
8931         * Fixed TOPIC command sending in the client library.
8932
8933         * Fixed a memory leak in silc_client_command_free in the file
8934           lib/silcclient/command.c.
8935
8936 Thu May 24 19:08:55 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
8937
8938         * Imported a modified version of Irssi client to the source tree.
8939           The Irssi will be used to create a new client called
8940           Irssi SILC.  Imported to irssi/.
8941
8942           Added silc_core_init_finish function to the Irssi.  Affected
8943           file irssi/configure.in.
8944
8945           A lot changes in the Makefile.ams around the irssi tree.
8946
8947 Tue May 22 22:23:49 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
8948
8949         * Do not rehash if the new size is same as the old size of the
8950           hash table, in the silc_hash_table_rehash*.  The affected file
8951           lib/silcutil/silchashtable.c.
8952
8953         * Replaced hash_table_del_by_context calls from the server
8954           (when channel->user_list and client->channels) to the
8955           hash_table_del as it is sufficient and faster.
8956
8957 Tue May 22 17:27:16 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
8958
8959         * Added silc_hash_table_list, silc_hash_table_get and the
8960           SilcHashTableList structure to provide an alternative way to
8961           traverse the hash table.  The affected files are
8962           lib/silcutil/silchashtable.[ch].
8963
8964         * Changed the server's idlist routines to use the hash table
8965           routines to optimize the code.
8966
8967 Mon May 21 21:46:20 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
8968
8969         * Replaced the client entry's `channel' list and channel entry's
8970           `user_list' list to hash tables for optimized lookup.  Changed
8971           the code to use the hash table interface around the code.
8972           Affected file lib/silcd/idlist.[ch].
8973
8974         * Added `auto_rehash' boolean argument to the function
8975           silc_hash_table_alloc to indicate whether the hash table should
8976           auto-rehash when it thinks is appropriate time.  It will
8977           increase the hash table size if the there is twice as much
8978           entries in the table than the size of the table, and will
8979           decrease the size if there are twice as less entries than
8980           the size of the table.
8981
8982 Mon May 21 09:51:11 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
8983
8984         * Fixed silc_xxx_get_supported to not crash at some circumstances.
8985
8986 Sun May 20 13:45:58 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
8987
8988         * silc_idcache_purge_by_context deletes the entry now by context
8989           as it is supposed to do.  Affected file lib/silccore/idcache.c.
8990
8991         * Send the ERR_NO_SUCH_NICK in the WHOIS command reply if the
8992           client is not anymore valid (WHOWAS givens the info) and not
8993           the ERR_NO_SUCH_CLIENT_ID if the nickname still exists.
8994
8995 Sat May 19 16:30:03 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
8996
8997         * Removed the `data' and `data_len' arguments from the ID Cache
8998           interfaces and added `name' argument.  ID Cache does not handle
8999           anymore the binary data only a names associated with given ID.
9000
9001         * When hashing a Client ID with silc_hash_id the entire ID is
9002           not hashed anymore, instead only the hash of the Client ID is
9003           hashed.  This way we can access the Client ID from the cache
9004           with Client ID but with the hash of the ID (which is a hash of
9005           the nickname) as well without any difference in performance.
9006
9007           Added also silc_idcache_find_by_id_one_ext to do one on one
9008           searching when we have the actual ID.  Added also function
9009           silc_hash_client_id_compare.  The affected files are
9010           lib/silccore/idcache.[ch] and lib/silcutil/silcutil.[ch].
9011
9012         * When hashing the name associated with a ID it is always done
9013           in lowercase.  This way we can access the cache without worrying
9014           about case-sensitivity, even though, for example nicknames are
9015           case sensitive.
9016
9017         * Fixed a bug in server with channel message sending.  It put
9018           wrong ID type as destination ID.  The affected file
9019           silcd/packet_send.c.
9020
9021         * silc_idcache_del_by_context now deletes from all hash tables
9022           by context.  Affected file lib/silccore/idcache.c.
9023
9024 Fri May 18 17:42:00 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9025
9026         * Changed the client library to use the new ID Cache interface.
9027           Changes around the source tree.
9028
9029         * Added silc_hash_table_rehash_ext to rehash with specific
9030           hash function.  Affected file lib/silcutil/silchashtable.[ch].
9031
9032         * Added silc_hash_string_compare to compare two strings in the
9033           hash table.  Affected file lib/silcutil/silcutil.[ch].
9034
9035 Fri May 18 11:18:45 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9036
9037         * Added new function silc_idcache_del_by_context into the
9038           lib/silccore/idcache.[ch].
9039
9040         * Changed the server's ID list routines to use the new ID Cache
9041           interface.  Changes around the source tree.
9042
9043 Fri May 18 08:35:31 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9044
9045         * Added silc_hash_table_del[_by_context]_ext functions in to the
9046           lib/silcutil/silchashtable.[ch].
9047
9048           Removed silc_hash_table_find_all* routines and added new
9049           silc_hash_table_find_foreach to replace them.
9050
9051           Added silc_hash_table_replace_ext function as extended
9052           replacing function.  Separated the simple hash table interface
9053           from the extended hash table interface in the file
9054           lib/silcutil/silchashtable.h.
9055
9056         * Fixed minor bugs and changed it to use some of the new
9057           hash table functions in lib/silccore/idcache.c
9058
9059 Thu May 17 18:15:12 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9060
9061         * Added new function silc_hash_table_find_all to return all keys
9062           in the hash table by the specified key.  As the hash table is
9063           collision resistant it also makes it possible to have several
9064           duplicate keys in the hash table.  This function may be used to
9065           find all of the keys from the hash.
9066
9067           Added user_context arguments to the SilcHashFunction,
9068           SilcHashCompare and SilcHashDestructor to deliver user specified
9069           context.
9070
9071           Added new fuctions silc_hash_table_find[_all]_ext to do
9072           extended lookup with specified hash and compare functions and
9073           specified user contexts.
9074
9075           Added new function silc_hash_table_add_ext to add the key
9076           with specified hash function and user context.
9077
9078           Added new function silc_hash_table_foreach to traverse all
9079           entrys in the hash table.  Added SilcHashForeach callback
9080           function.
9081
9082           Added new function silc_hash_table_del_by_context to delete
9083           the entry only if the context associated with the key matches.
9084
9085           Affected files are lib/silcutil/silchashtable.[ch].
9086
9087         * Removed silc_hash_[server/client/channel]_id and added just
9088           silc_hash_id to the lib/silcutil/silcutil.[ch].  Added also
9089           silc_hash_id_compare to compare two ID's using as the hash table
9090           comparison function.  Added also silc_hash_data to hash
9091           binary data and silc_hash_data_compare to compare it.
9092
9093         * Removed silc_idlist_find_client_by_hash as it is not needed
9094           anymore.  Affected file silcd/idlist.[ch].
9095
9096         * Rewrote the entire ID Cache system (in lib/silccore/idcache.[ch])
9097           to use internally the SilcHashTable.  The new ID Cache is a lot
9098           faster than the old one.  Some of the ID Cache interface was also
9099           rewritten and obsolete and stupid functions were removed.
9100
9101 Wed May 16 23:03:30 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9102
9103         * Added entry_count field to the SilcHashTable to keep the number
9104           of the entries in the table.  Implemented the function
9105           silc_hash_table_rehash.  Added new function
9106           silc_hash_table_count.  Affected file lib/silcutil/silchashtable.c.
9107
9108           Fixed a minor bug in silc_hash_table_free.
9109
9110         * Added silc_hash_string, silc_hash_uint, silc_hash_ptr,
9111           silc_hash_client_id, silc_hash_server_id and silc_hash_channel_id
9112           into the lib/silcutil/silcutil.[ch].
9113
9114 Wed May 16 20:02:47 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9115
9116         * Implemented a collision resistant hash table into the
9117           lib/silcutil/silchashtable[ch].  See the header and the source
9118           for the SilcHashTable API.
9119
9120 Tue May 15 22:05:46 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9121
9122         * Merged dotconf version 1.0.2 into lib/dotconf.
9123
9124 Sun May 13 19:32:09 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9125
9126         * Do not compile anything in lib/silcsim/* if the SIM support
9127           is not enabled.  The tree should now compile without problems
9128           under cygwin.
9129
9130 Thu May 10 22:49:51 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9131
9132         * Compiled the SILC under cygwin.  Compiled and tested briefly
9133           without problems.  More tests needed.  The SIMs didn't compile
9134           though.
9135
9136         * Added various #ifdef HAVE_* stuff to lib/silccrypt/silrng.c.
9137
9138         * Fixed possible crash in silc_get_username in the
9139           lib/silcutil/silcutil.c.
9140
9141 Tue May  8 09:04:03 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9142
9143         * Fixed a va_arg in silc/client_ops.c.
9144
9145         * Oops, RC5 routines were named AES and caused some problems
9146           when not using SIM's.  Affected file lib/silccrypt/rc5.c.
9147
9148 Sun May  6 13:59:48 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9149
9150         * Added new SilcIDIP structure into the lib/silccore/id.h and
9151           replaced the old `ip' fields from all SILC ID's to that type.
9152           This is a step towards IPv6 support.
9153
9154           The silc_id_get_len takes now the ID as an extra argument.
9155           The silc_id_id2str, silc_id_str2id and silc_id_dup now supports
9156           both IPv4 and IPv6 based ID's.
9157
9158           The affected files are lib/silccore/id.[ch] and other files
9159           around the tree using these routines.
9160
9161         * Removed the ID length arguments in server from various
9162           silc_server_send_notify_* routines -> they are not needed
9163           anymore.
9164
9165 Sat May  5 13:56:33 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9166
9167         * Fixed memory leak in silc_encode_pem_file in the file
9168           lib/silcutil/silcutil.c.
9169
9170 Thu May  3 21:23:50 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9171
9172         * Check minor version as well in the SKE.  Affected files are
9173           silcd/protocol.c and lib/silcclient/protocol.c.
9174
9175         * Added --identifier option to the server so that an identifier
9176           can be when creating the public key for the server.  Affected
9177           file is silcd/silcd.c.
9178
9179         * Fixed minor decoding bug in silc_pkcs_decode_identifier in
9180           lib/silccrypt/silcpkcs.c.
9181
9182 Wed May  2 20:50:49 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9183
9184         * Register default ciphers and stuff when using -C option with
9185           the server.  Affected file sildc/silcd.c.
9186
9187         * Put back the servers public key filename format, it is better
9188           than the new one.  For now, the client keys are saved with the
9189           new filename format.  The affected file silc/client_ops.c.
9190
9191         * Implemented the Cipher API for the rest of the ciphers that
9192           did not implement it or implemented it the wrong way.
9193
9194 Wed May  2 13:31:26 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9195
9196         * Register default ciphers and stuff when using the -S option
9197           in the client.  Affected file silc/silc.c.  Same also when
9198           creating new key pair with -C option.
9199
9200 Tue May  1 14:18:13 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9201
9202         * Fixed the silc_verify_public_key client operation function to
9203           save the public keys differently.  The fingerprint is now
9204           used as filename and not the hostname.  This way also the
9205           client keys are saved uniquely and not with hostnames.  The
9206           affected file is silc/client_ops.c.
9207
9208         * Trimmed the silc_hash_fingerprint function to remove extra
9209           whitespaces from the end of the fingerprint.  The affected
9210           file is lib/silccrypt/silchash.c.
9211
9212         * Updated TODO.
9213
9214         * Added silc_cipher_register_default function to register all
9215           default ciphers.  It can be used when configuration files
9216           does not exist and the application does not want any specific
9217           ciphers in any specific order.
9218
9219           The SilcDList is now used as silc_cipher_list dynamically
9220           allocated cipher list.  Removed the static list all together
9221           and now all ciphers must be allocated to the dynamic list.
9222           The silc_cipher_alloc routine was changed to check only the
9223           dynamic list.
9224
9225           All silc_cipher_* routines that used to return int returns
9226           now bool.
9227
9228           The affected files lib/silccrypt/silccrypt.[ch].
9229
9230         * The same thing was done to silc_hash_* as for silc_cipher_*
9231           routines.  Affected files lib/silccrypt/silchash.[ch].
9232
9233         * The same thing was done to silc_pkcs_* as for silc_cipher_*
9234           routines.  Affected files lib/silccrypt/silcpkcs.[ch].
9235           Added also silc_pkcs_[un]register[_default] functions.
9236           Removed the data_context from the PKCS API.
9237
9238         * Added silc_hmac_register_default function to register default
9239           hmacs.  Affected files lib/silccrypt/silchmac.[ch].  Added also
9240           SILC_ALL_HMACS macro that can be used with silc_hmac_unregister
9241           to unregister all hmacs at once.
9242
9243         * Register the default ciphers, hash functions, PKCSs and HMACs
9244           if client's configuration file does not exist.  The affected
9245           file silc/silc.c.
9246
9247         * The client did not load the hash functions from the SIM
9248           modules at all.  Added support for this.  Affected file is
9249           silc/clientconfig.c.
9250
9251         * When decoding public key with silc_pkcs_public_key_decode, check
9252           the supported algorithm only if PKCS are registered.  Affected
9253           file lib/silccrypt/silcpkcs.c.  The same was done with the
9254           silc_pkcs_private_key_decode.
9255
9256         * Fixed the SILC List routines to keep the list always in order.
9257           It used to change the list's order when traversing the list but
9258           not it preserves the order.  Affected file lib/trq/silclist.h.
9259
9260 Mon Apr 30 17:29:03 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9261
9262         * Added the client library to use the SilcSocketConnection's
9263           reference counter (by silc_socket_dup) to prevent the bug that
9264           the socket object may be freed underneath async operation.
9265
9266         * The name resolv library checking fixes in the configure.in.pre.
9267           The patch by salo.
9268
9269         * Created new version of the protocol drafts for future
9270           development. The -03 drafts are the ones that will be changed
9271           in the trunk now and the -02 will remain as they are.
9272
9273         * Send list of CUMODE notifys to the router when announcing
9274           the channel users to the router.  Affected file silcd/server.c.
9275           If the router receiving channel founder CUMODE for a channel
9276           that already has channel founder it will send CUMODE notify
9277           to the sender to remove the channel founder rights from the
9278           announced client.  Affected file silcd/packet_receive.c.
9279
9280         * The CUMODE notify may now use Server ID as well as the entity
9281           who changes the mode.  Updated protocool specs.
9282
9283         * Updated INSTALL and README files.
9284
9285 Sun Apr 29 23:17:50 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9286
9287         * New web pages in the http://silc.pspt.fi.  The pages was
9288           designed by salo.
9289
9290         * Updated CREDITS.
9291
9292 Sun Apr 29 13:33:41 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9293
9294         * Implemented the [DenyConnectin] config section in the server.
9295           Added silc_server_config_denied_conn to check whether incoming
9296           connection is denied.  Affected file silcd/serverconfig.[ch].
9297
9298         * Do not check the ports when checking the incoming configuration
9299           data if the port is 0, meaning any.  Affected file is
9300           silcd/serverconfig.c.
9301
9302 Fri Apr 20 18:58:43 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9303
9304         * Fixed buffer overflow in silc_string_compare in the file
9305           lib/silcutil/silcutil.c.
9306
9307         * Fixed double free in silc_server_command_leave in the file
9308           silcd/command.c.
9309
9310 Fri Apr 20 14:00:11 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9311
9312         * Fixed the version checking in the server.  Affected file is
9313           silcd/protocol.c.
9314
9315 Thu Apr 19 19:52:46 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9316
9317         * Fixed the configuration data fetching when accepting new
9318           connections in the server.  Affected file silcd/server.c.
9319
9320 Thu Apr 19 11:40:20 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9321
9322         * Added `sender_entry' argument to the function
9323           silc_server_packet_relay_to_channel so that we can check
9324           whether some destination actually belongs to the same route
9325           the sender belongs (ie, we must not resend the packet to the
9326           sender).  Affected file silcd/packet_send.[ch].
9327
9328         * Added `servername' field to the SilcClientEntry in the server
9329           to hold the name of the server where client is from.  Affected
9330           file is silcd/idlist.h.
9331
9332 Wed Apr 18 22:19:03 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9333
9334         * Moved the channel message encrypting in the router betwen
9335           router connections from silc_server_channel_message to the
9336           silc_server_packet_relay_to_channel since we want to check
9337           whether we have anybody channel before encrypting anything.
9338           Affected files silcd/packet_[receive/send].c.
9339
9340 Tue Apr 17 21:18:19 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9341
9342         * Fixed the [AdminConnection] server config section to support
9343           multiple entries.  Affected file silcd/serverconfig.c.
9344
9345         * Added support into the server to check the validity of the
9346           incoming connection before executing any KE or authentication
9347           protocols.
9348
9349         * The connection configuration is now saved to the KE and
9350           connection auth protocol contexts and not fetched anymore in
9351           the protocol.  Affected files silcd/server.c, silcd/protocol.[ch].
9352
9353         * The local hosts listenning address and port is also resolved
9354           now when starting the server.  We want to have the socket object
9355           to include the real address and port for the listener.  Added
9356           new function silc_net_check_local_by_sock into the files
9357           lib/silcutil/silcnet.[ch].
9358
9359         * Fixed a broadcast bug in server -> do not broadcast if we
9360           are standalone.
9361
9362         * Fixed a routing bug.  Do not route broadcast packets ever.
9363           Broadcast packets must be processed always and not routed since
9364           they may be destined to some other host than yourself and thus
9365           would get routed without no good reason.  Affected file is
9366           silcd/server.c.
9367
9368         * Added function silc_server_config_is_primary_route to check
9369           whether primary router connection has been configured (a router
9370           configuration that we are initiating).  If there is not, we
9371           will assume that there is only two routers in the SILC network
9372           and we will use the incoming router connection as our primary
9373           route.  Affected files silcd/serverconfig.[ch], silcd/server.c.
9374
9375         * Changed the order of the broadcasting.  Broadcast _after_ the
9376           packet has been processed not before.  Affected file is
9377           silcd/server.c.
9378
9379         * Fixed a [ClientConnection] parsing bug.  The port was never
9380           parsed correctly thus resulting to port 0.  Affected file
9381           silcd/serverconfig.c.
9382
9383         * Fixed silc_server_send_notify_args -> it ignored the `broadcast'
9384           argument and did not set the broadcast packet flag.  Affected
9385           file silcd/packet_send.c.  Fixed same bug in the function
9386           silc_server_send_notify as well.
9387
9388         * If we receive NEW_ID packet for our own ID in the server, ignore
9389           the packet.
9390
9391 Mon Apr 16 12:10:33 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9392
9393         * Updated TODO.
9394
9395         * Removed the nickname from the Private Message Payload.
9396           Updated the code and the protocol specs.
9397
9398         * Updated protocol specs for submitting to the IETF.
9399
9400         * Tweaked the Random Number Generator a bit.  Affected file
9401           lib/silccrypt/silcrng.c.  Exported a new function
9402           silc_rng_[global]_add_noise which can be used to add more
9403           noise to the RNG.
9404
9405 Sat Apr 14 16:21:32 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9406
9407         * Do not parse packets with different timeout when protocol
9408           is active -> may cause problem with rekey.  Affected file
9409           silcd/server.c.
9410
9411         * When server receives signoff notify it must not create
9412           new channel key if the client is on any channels since the
9413           sender of the signoff notify will create it.
9414
9415 Fri Apr 13 17:12:46 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9416
9417         * Added printing of error messages during SKE protocol from the
9418           failure packet sent by server during SKE.  Affected file
9419           silc/client_ops.c.
9420
9421         * Removed the client's failure_callback handling with timeout
9422           and handle it immediately when received.
9423
9424         * The SKE library returned wrong type in SUCCESS and FAILURE
9425           packets.  They must be 32 bit MSB not 16 bit MSB.
9426
9427 Fri Apr 13 00:09:08 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9428
9429         * Ok, rewrote the logic of the re-key and now it seems to work.
9430           I tested it on high traffic with frequent re-keys without
9431           problems.  Added hmac_receive (and renamed hmac to hmac_send)
9432           in SilcClientConnection in lib/silcclient/client.h and
9433           in SilcIDListData in silcd/idlist.h.  Also, removed the
9434           SilcPacketParserContext's cipher and hmac fields as they are
9435           not needed anymore and actually caused some problems when
9436           the ciphers and hmac's changed underneath the packet parser.
9437
9438 Thu Apr 12 14:42:51 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9439
9440         * If re-key protocol is active then process the incoming packets
9441           synchronously since we must assure that icoming packets encrypted
9442           with the old key is processed before the new keys is set to
9443           use.  This is true other packets than for REKEY packets.
9444           Affected file silcd/server.c.  The same was done to client library
9445           as well, affected file lib/silcclient/client.c.
9446
9447 Thu Apr 12 12:01:52 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9448
9449         * Fixed bug in client and server to accept the force send if
9450           the packet is send from silc_[server/client]_packet_process
9451           function.  Otherwise the packets are never delivered, oops.
9452
9453 Wed Apr 11 22:10:15 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9454
9455         * Disable force sending of packets when REKEY protocol is active.
9456           We must assure that no packet is sent directly when rekey is
9457           performed.  All packets must be sent through packet queue.
9458           Added macro SILC_SERVER_IS_REKEY to silcd/server.h and
9459           SILC_CLIENT_IS_REKEY to lib/silcclient/client.h.  Affected
9460           function is silc_[server/client]_packet_send_real to check
9461           the situation.
9462
9463         * Replaced the SIM paths from example config files to
9464           /usr/local/modules.  Also, make install creates now
9465           /usr/local/silc/logs directory to hold all the SILC server
9466           logs.
9467
9468 Wed Apr 11 16:59:59 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9469
9470         * Made the configure.in.pre work on Solaris.  Patch by salo.
9471
9472         * Made all ciphers compatible with non-x86 machines.  Defined
9473           CBC mode macros into lib/silccrypt/ciphers_def.h.
9474
9475 Tue Apr 10 20:32:44 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9476
9477         * Fixed the make install.
9478
9479 Tue Apr 10 16:20:34 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9480
9481         * When MAC computation fails the silc_packet_decrypt returned 0
9482           even though it was supposed to return -1.  Fixed this.  The
9483           affected file is lib/silccore/silcpacket.c.
9484
9485         * Do not replace the config files in /etc/silc (in make install)
9486           if they already exist.  Affected file ./Makefile.am.
9487
9488         * Do not send re-key packets immediately but through packet queue.
9489           Affected file silcd/protocol.c and lib/silcclient/protocol.c.
9490
9491         * Changed silc_net_check_host_by_sock to return FALSE if the
9492           IP/DNS could not be resolved.  Though, it returns the IP address
9493           now even if it could not resolve it (but returns also FALSE).
9494           Affected file lib/silcutil/silcnet.[ch].
9495
9496 Mon Apr  9 21:54:44 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9497
9498         * Added silc_pkcs_decode_identifier to decode the public key's
9499           identifier.  Affected file lib/silccrypt/silpkcs.[ch].
9500           Added also silc_pkcs_free_identifier.  Added also new context
9501           SilcPublicKeyIdentifier.
9502
9503         * Added -S option to the silc client.  It is used to dump the
9504           contents of the specified public key file.
9505
9506         * Changed the PKCS api to return the public key length when
9507           setting the public key.
9508
9509         * Fixed a fatal bug in the public and private key file loading.
9510           Affected file lib/silccrypt/silcpkcs.c.
9511
9512         * Execute the packet parsing for client with zero (0) timeout
9513           if the protocol is active.  Affected file silcd/server.c.
9514
9515 Sun Apr  8 19:30:56 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9516
9517         * Made the key generation options to the silcd program.  Added
9518           -C option, equivalent to client's option.
9519
9520         * Added new [ServerKeys] config section to the server.  It
9521           configures the server's public and private key.
9522
9523         * Defined generic Public Key Payload into the protocol
9524           specification to send specific type of public keys and
9525           certificates.
9526
9527         * Defined new command SILC_COMMAND_GETKEY to fetch a client's
9528           public key or certificate.
9529
9530         * Implemented the GETKEY command to the server and to the
9531           client library and on user interface.
9532
9533 Sun Apr  8 01:37:21 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9534
9535         * Made preliminary `make install' work.
9536
9537 Thu Apr  5 17:42:30 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9538
9539         * Added SilcServerRekey context into silcd/idlist.h.
9540
9541         * Added the PFS support as defined in the specification to the
9542           SKE protocol.  Affected files lib/silcske/*.c.
9543
9544         * Added `ske_group' field to the SilcServerRekey context to hold
9545           the number of the SKE group that is used with PFS in re-key.
9546           Affected file silcd/idlist.h.
9547
9548         * Added PFS re-key support to the server.  Affected file is
9549           silcd/protocol.c.
9550
9551         * Added silc_protocol_cancel to cancel execution of the next
9552           state of the protocol.  Affected file is
9553           lib/silccore/silcprotocol.[ch].
9554
9555         * Added the re-key support with and without PFS to the client
9556           library.  Re-key is performed once in an hour, by default.
9557
9558           Added new protocol type SILC_PROTOCOL_CLIENT_REKEY.
9559           Added silc_client_rekey_callback and silc_client_rekey_final.
9560           Affected files are lib/silcclient/protocol.[ch] and
9561           lib/silcclient/client.[ch].
9562
9563         * Removed the `hmac_key' and `hmac_key_len' fields from the
9564           SilcClientConnection structure; not needed.  Affected file is
9565           lib/silcclient/client.h.
9566
9567         * Updated TODO.
9568
9569 Wed Apr  4 16:32:31 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9570
9571         * Do not ask whether user wants to use the negotiated private key
9572           for private messages, just use it.  Affected file is
9573           silc/local_command.c.
9574
9575         * Added `send_enc_key' and `enc_key_len' fields to the
9576           SilcIDListData structure since they are needed in the re-key
9577           phase.  Affected file is silcd/idlist.[ch].
9578
9579         * Implemented the simple re-key protocol into the server.
9580           Affected files silcd/server.c and silcd/protocol.[ch].  The
9581           re-key will be performed once in an hour, by default.
9582
9583           Added new protocol type SILC_PROTOCOL_SERVER_REKEY.
9584           Added silc_server_rekey, silc_server_rekey_callback and
9585           silc_server_rekey_final.
9586
9587         * Removed Tunneled flag from the protocol.  Updated the code
9588           and the specifications.
9589
9590         * Adde `pfs' field to the SilcIDListData to indicate whether
9591           the PFS is to be performed in the re-key.  Affected file is
9592           silcd/idlist.h.
9593
9594 Tue Apr  3 21:52:42 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9595
9596         * Defined uint8, int8, uint16, int16, uint32, int32, uint64 and
9597           int64 of at least the xintXX size.  If void * is less that 4
9598           bytes uint32 * will be used.  Defined bool as boolean.
9599
9600         * Changed _ALL_ unsigned long and unsigned int to uint32,
9601           unsgined short to uint16 in the source tree.
9602
9603         * Fixed a fatal bug in silc_server_remove_clients_by_server.  Do
9604           not handle clients that has entry->data.registered == FALSE.
9605           They are not in the network anymore.  Affected file is
9606           silcd/server.c.
9607
9608 Tue Apr  3 16:39:19 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9609
9610         * Implemented the sending of the SERVER_SIGNOFF notify in the
9611           server.  Affected file is silcd/server.c.
9612
9613         * Added silc_server_send_notify_args into silcd/packet_send.[ch].
9614           Added also silc_notify_payload_encode_args into the
9615           lib/silccore/silcnotify.[ch].
9616
9617         * Implemented ther SERVER_SIGNOFF notify handling in the server.
9618           Affected file silcd/packet_receive.c.
9619
9620         * Implemented the SERVER_SIGNOFF notify handling in the client
9621           library.  Affected file lib/silcclient/client_notify.c.  Also,
9622           implemnted the printing of the SERVER_SIGNOFF info to the
9623           application.  Affected file silc/client_ops.c.
9624
9625         * The silc_idlist_del_server now returns TRUE or FALSE to indicate
9626           if the deleting was successful.  Affected file silcd/idlist.[ch].
9627
9628         * Added support for public key authentication in the connection
9629           authentication protocol in the client library.  Affected file
9630           lib/silcclient/protocol.c.
9631
9632         * Changed the server's silc_idlist_get_clients_by_* interface
9633           to support already allocated array so that new entries may be
9634           added to pre-allocated array.  Affected file silcd/idlist.[ch].
9635           This fixes some bugs with WHOIS, WHOWAS and IDENTIFY commands
9636           and command replies.
9637
9638         * All command reply functions in the server now calls the
9639           pending command callback even if error occured.  This way the
9640           error will be delivered to the client as well.  Affected files
9641           silcd/command.c and silcd/command_reply.c.
9642
9643         * Fixed INFO command to return local server's info if no server
9644           was provided.  Affected file lib/silcclient/command.c.
9645
9646         * Removed RESTART command for good.  Updated the code and the
9647           protocol specs.
9648
9649         * Rewrote parts of the task system.  It is a bit simpler now.
9650           Removed unsued task priorities. The affected files are
9651           lib/silcutil/silctask.[ch].
9652
9653 Mon Apr  2 20:02:33 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9654
9655         * Moved the USERS printing from the library to the application.
9656           Affected files lib/silcclient/command.c and silc/client_ops.c.
9657
9658 Mon Apr  2 13:13:23 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9659
9660         * Updated TODO.
9661
9662         * Added channel key re-key support.  The re-key is perfomed
9663           only by the router and is done once in an hour.  Added `rekey'
9664           field to the SilcChannelEntry in the server.  Affected files
9665           silcd/server.c and silcd/idlist.h.
9666
9667         * Added silc_task_unregister_by_context into the file
9668           lib/silcutil/silctask.[ch].
9669
9670 Sun Apr  1 19:49:34 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9671
9672         * Added SILC_UMODE_GONE mode to indicate when the client is not
9673           present in the SILC network.  Added also support to the local
9674           command AWAY that will set this mode.  Added support of showing
9675           "xxx is gone" in WHOIS command.  The USERS command shows the
9676           gone status as well.
9677
9678         * Fixed setting server and router operator privileges in the
9679           server's UMODE command.  Affected file silcd/command.c.
9680
9681         * Merged the SKE KE1 and KE2 payloads into one payload.  The
9682           new KE payload is equivalent to the old KE2 payload.
9683
9684           Cleaned up the SKE Start Payload parsing.  It now uses the
9685           simple buffer unformatting to do the parsing.  A lot faster
9686           now.
9687
9688           Added new Mutual Authentication flag (SILC_SKE_SP_FLAG_MUTUAL)
9689           to the SKE that is used to indicate whether both of the SKE
9690           parties should perform authentication.  By default only the
9691           responder performs authentication.  By setting this flag also
9692           the initiator must do authentication.  By default it is unset
9693           since in normal SKE case, client to server connection, only
9694           the responder should do authentication.  When doing SKE between
9695           two clients both should perform authentication.  Updated the
9696           code and the protocol specs.
9697
9698         * A little fix to IDENTIFY command in the server.  Search the
9699           client first by hash not nickname.  Affected file is
9700           silcd/command.c.
9701
9702         * Fixed the silc_client_close_connection to support closing
9703           the client to client connections wihtout deleting too much
9704           data.  Affected file lib/silcclient/client.c.
9705
9706         * Fixed a fatal bug in server and client; if KE1 or KE2 packets
9707           are received if protocol used to be active but is not anymore
9708           the application would crash due to NULL pointer dereference.
9709           Affected files silcd/server.c and lib/silcclient/client.c.
9710
9711         * Added `hash' field to the SilcClientConnection to include
9712           the hash function negotiated in the SKE protocol.
9713
9714         * Added new channel mode SILC_CMODE_FOUNDER_AUTH that is used
9715           to set the channel founder authentication data.  A client can
9716           claim the founder rights later by providing the authentication
9717           data to the CUMODE command using SILC_CUMODE_FOUNDER mode.
9718           This way the channel founder can regain the channel founder
9719           privileges even it is left the channel.  This works only on
9720           local server and the client must be connected to the same
9721           server to be able to regain the founder rights.  Updated the
9722           protocol specs accordingly.
9723
9724           Added support to the CMODE command in the client to set the
9725           founder auth data.  Read the README to see how to set it.
9726
9727           Added support to the CUMODE command to claim the founder
9728           rights.  Read the README to see how to do it.
9729
9730           Added support for the founder authentication to the Channel
9731           Entry in the server.  Affected file silcd/idlist.h.
9732
9733           Added support for the SILC_CMODE_FOUNDER_AUTH mode in the
9734           server's CMODE command.  Affected file silcd/command.c.
9735
9736         * Added the following new functions into lib/silccore/silcauth.[ch]:
9737           silc_auth_get_method and silc_auth_get_data.
9738
9739         * The server now saves the remote hosts public key to the
9740           SilcIDListData pointer.  Affected file silcd/protocol.c.
9741
9742         * The normal server now does not remove the channel entry from
9743           the cache if the founder authentication data is set.  It used
9744           to remove it if the founder was the last one on the channel on
9745           the server and left the channel.  The auth data is saved and
9746           if the channel is re-joined later the old entry is used with
9747           the old auth data.  Affected files silcd/command_reply.c and
9748           silcd/server.c.
9749
9750         * Removed the `pkcs' field from the SilcIDListData structure
9751           in the server; it is not used.  Affected file silcd/idlist.h.
9752
9753 Sat Mar 31 15:38:36 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9754
9755         * Fixed packet processing on slow links.  Partial packets were
9756           never re-processed because the incoming data buffer was cleared
9757           by the application.  Application must not directly clear the
9758           sock->inbuf, the packet processing routines handle it.  Fixed
9759           this in client library and in server.
9760
9761 Fri Mar 30 16:35:27 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9762
9763         * Fixed the WHOIS and IDENTIFY send reply function to really
9764           check whether to send list or just one entry.  Affected file
9765           silcd/command.c.
9766
9767         * Cleaned up the LEAVE command's channel key distribution.  The
9768           affected file silcd/command.c.
9769
9770         * Changed CMODE_CHANGE's <Client ID> to <ID Payload> as server
9771           can enforce the channel mode as well.  In that case the ID
9772           includes the ID of the server.  The code now enforces the
9773           mode change if the router have different mode than the server.
9774
9775         * The notify client operation with CMODE_CHANGE notify can now
9776           return NULL client_entry pointer if the CMODE was not changed
9777           by client.  Application must check for this.
9778
9779         * Added <Server ID> argument to INFO command to support server
9780           info fetching by Server ID.
9781
9782         * Added silc_server_announce_get_channel_users to get assembled
9783           packets of channel users of the specified channel.  Affected
9784           file silcd/server.[ch].
9785
9786         * Fixed bug in CHANNEL_CHANGE notify in the server.  The new ID
9787           was freed underneath the ID Cache.
9788
9789         * Re-announce clients when the server received CHANNEL_CHANGE
9790           notify from the router.  Affected file silcd/packet_send.c.
9791
9792 Thu Mar 29 19:10:28 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9793
9794         * Fixed a fatal bug when client does /join 1 2 3 4 5 6 the server
9795           crashed since it did not handle the fact that there is no cipher
9796           called "3" and didn't check the error condition.  Now fixed.
9797
9798         * Added SILC_MESSAGE_FLAG_REQUEST message flag as generic request
9799           flag.  It can be used to send message requests.
9800
9801 Thu Mar 29 12:26:25 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9802
9803         * Implemented the RESTART command in the client.
9804
9805         * Added SILC_MESSAGE_FLAG_NOTICE message flag for informational
9806           notice type messages.  Added notice printing to the user
9807           interface.
9808
9809         * The channel keys are not re-generated if the channel's mode
9810           is PRIVKEY, ie private key on the channel exists.  Affected
9811           files silcd/server.c and silcd/command.c.
9812
9813         * Fixed a little bug in channel message delivery when channel
9814           private keys are set in the server.  Affected file is
9815           silcd/packet_send.c.
9816
9817         * Changed the setting on channel->on_channel = TRUE from the
9818           silc_client_save_channel_key to the JOIN command reply.  The
9819           key payload is not received if the private channel key is set.
9820           Affected file lib/silcclient/command_reply.c and the
9821           lib/silcclient/client_channel.c.
9822
9823         * When the CMODE_CHANGE notify is sent and the channel private
9824           key mode is removed the channel key must be re-generated in
9825           other cells as well.  Added this support for the router in the
9826           silcd/packet_receive.c.
9827
9828         * Added new local command NOTICE to send notice message on
9829           channel.  Affected file silc/local_command.[ch].
9830
9831 Wed Mar 28 23:55:54 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9832
9833         * Added new local command ME to the client.  It is used to send
9834           message to a channel with SILC_MESSAGE_FLAG_ACTION to indicate
9835           some action.  Affected file silc/local_command.[ch].
9836
9837         * Changed channel_message and private_message client operations
9838           to deliver the message flags to the application.  Added also
9839           the `flags' arguments to the silc_client_send_channel_message
9840           and silc_client_send_private_message functions.  Affected file
9841           silcapi.h.
9842
9843 Wed Mar 28 20:50:47 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9844
9845         * Redefined the Private Message Payload to support private message
9846           keys and to support the new private message flags.  Updated
9847           the protocol specs.  Flags makes it possible to have for example
9848           CTCP style messages.
9849
9850         * Added new type SilcPrivateMessagePayload and defined an API
9851           for it in the lib/silcclient/silcprivate.[ch].
9852
9853         * Tested private message private keys successfully.  Tested the
9854           private message key set, unset and list commands with the new
9855           KEY command.
9856
9857         * Redefined the Channel Message Payload to include the channel
9858           message flags (equal with private message flags) to support
9859           for example CTCP style messages.
9860
9861         * Defined some of the message (for channel and private message)
9862           flags.  Updated the protocol specs and added the flags to the
9863           lib/silccore/silcchannel.h.  The type is SilcMessageFlags.
9864
9865 Wed Mar 28 15:52:36 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9866
9867         * Added SilcKeyAgreementStatus type to the key agreement routines
9868           to indicate the current status and error if one occured.
9869           The status types are defined in the lib/silcclient/silcapi.h.
9870
9871         * Added new local command KEY that is used to set and unset private
9872           keys for channels, set and unset private keys for private messages
9873           with remote clients and to send key agreement requests and
9874           negotiate the key agreement protocol with remote client.  The
9875           key agreement is supported only to negotiate private message keys,
9876           it currently cannot be used to negotiate private keys for channels,
9877           as it is not convenient for that purpose.
9878
9879         * Fixed a minor pending callback setting bug in the function
9880           silc_client_get_client_by_id_resolve, now the function works.
9881           Affected file lib/silcclient/idlist.c.
9882
9883         * Added function silc_net_get_local_port to get local bound
9884           port by socket.  Added to lib/silcutil/silcnet.[ch].
9885
9886         * Added `sockets' and `sockets_count' fields to the SilcClient
9887           object.  They hold the sockets of the listenning sockets in
9888           the client.  Listenning sockets may be for example the key
9889           agreement server.  Affected file lib/silcclient/client.[ch].
9890           Added functions the silc_client_add_socket and the
9891           silc_client_del_socket.  They are exported to the application
9892           as well.
9893
9894         * Added ~./silc/clientkeys to support other client's public keys.
9895
9896         * Renamed verify_server_key client operation to verify_public_key
9897           and added one argument to indicate the type of the connection
9898           (server, client etc.).
9899
9900 Tue Mar 27 22:22:38 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9901
9902         * Added silc_server_connection_auth_request to handle the
9903           incoming CONNECTION_AUTH_REQUEST packet.  Affected file is
9904           silcd/packet_receive.[ch].
9905
9906         * Added silc_server_send_connection_auth_request into the
9907           silcd/packet_send.c to send the connection auth request packet.
9908
9909         * Cleaned up the silcd/protocol.c a bit and fixed some memory
9910           leaks.
9911
9912         * Fixed the public key authentication in responder side in the
9913           server.  The `auth_data' pointer includes the SilcPublicKey
9914           not the path to the public key.  Affected file silcd/protocol.c.
9915
9916         * Implemented the public key authentication in the initiator side
9917           in the server.  Affected file silcd/protocol.c.
9918
9919         * Removed the [RedirectClient] config section from the server
9920           configuration.  Is not needed and I don't want to implement it.
9921
9922 Tue Mar 27 12:49:56 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9923
9924         * Cleaned up the CMODE command in the server.  It now works
9925           correctly and supports all the modes defined in the protocol.
9926           Affected file is silcd/command.c.
9927
9928         * Added `hmac_name' field to the SilcChannelEntry in the server
9929           to hold the default HMAC of the channel.  It can be set when
9930           creating the channel (with JOIN command).  Affected files
9931           silcd/idlist.[ch].
9932
9933         * Added <cipher> and <hmac> argument to the CMODE_CHANGE notify
9934           type to indicate the change of the current cipher and hmac
9935           on the channel.  Client can safely ignore the <cipher> argument
9936           (if it chooses to do so) since the CHANNEL_KEY packet will
9937           force the channel key change anyway.  The <hmac> argument is
9938           important since the client is responsible of setting the new
9939           HMAC and the hmac key into use.
9940
9941         * Fixed the CMODE command in the client library as well.
9942
9943         * Tested CMODE command in router environment successfully.
9944
9945 Mon Mar 26 14:39:48 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9946
9947         * Show the version of the remote client (or server) when connecting
9948           to the server.  It is logged to the log file.  Affected file
9949           is silcd/protocol.c.
9950
9951         * Fixed the KILLED notify handling in the client library.  The
9952           client must be removed from all channels when receiving the
9953           KILLED notify.
9954
9955           Also, do not remove the client entry when giving the KILL
9956           command but when the KILLED notify is received.
9957
9958         * Removed silc_idlist_find_client_by_nickname from the server.
9959           Not needed anymore.  Affected files silcd/idlist.[ch].
9960
9961         * Implemented the CHANNEL_CHANGE notify type handling to the
9962           server.  Affected file silcd/server.c.
9963
9964         * Updated TODO.
9965
9966 Mon Mar 26 12:11:14 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9967
9968         * Added silc_server_send_notify_invite to send the INVITE
9969           notify between routers.
9970
9971         * Implemented the INVITE command correctly to the server.
9972
9973         * Implemented the INVITE notify type handling in the server.
9974
9975         * Implemented the INVITE command to the client library and on the
9976           user interface.
9977
9978 Sun Mar 25 20:27:09 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9979
9980         * Added function silc_server_get_client_resolve to find the
9981           client entry by ID from all ID lists and then resolve it
9982           (using WHOIS) if it cannot be found.  Affected file is
9983           silcd/server.[ch].
9984
9985 Sun Mar 25 13:52:51 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
9986
9987         * Implemented the BAN command to the client library.
9988
9989         * The JOIN command in the server now checks the invite list
9990           and the ban list.
9991
9992         * Changed the silc_command_reply_payload_encode_va and the
9993           silc_command_payload_encode_va to support that if argument is
9994           NULL it ignores and checks the next argument.  Affected file
9995           lib/silccore/silccommand.c.
9996
9997         * Added silc_server_send_notify_ban to send the BAN notify
9998           type between routers.
9999
10000         * Chaned the silc_notify_payload_encode to support that if
10001           argument is NULL it ignores and checks the next argument.
10002           Affected file lib/silccore/silcnotify.c.
10003
10004         * Tested ban lists in router environment successfully.
10005
10006 Sat Mar 24 14:47:25 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
10007
10008         * Implemented BAN command to the server, in silcd/command.[ch].
10009
10010         * Removed the BAN and INVITE_LIST modes from the CMODE command
10011           in the server code.
10012
10013         * Added function silc_string_match to regex match two strings.
10014           Affected files lib/silcutil/silcutil.[ch].
10015
10016 Fri Mar 23 22:02:40 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
10017
10018         * Redefined parts of the SilcChannelEntry in the server to support
10019           the new ban and invite lists.
10020
10021 Fri Mar 23 16:25:11 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
10022
10023         * Redefined the INVITE command.  The same command can be used to
10024           invite individuals to the channel but also to manage the invite
10025           list of the channel (to add to and remove from the invite list).
10026           Updated the protocol specs.
10027
10028         * Added new command SILC_COMMAND_BAN that can be used to manage
10029           the ban list of the channel.  Updated the protocol specs.
10030
10031         * Removed the channel modes: the SILC_CMODE_BAN and the
10032           SILC_CMODE_INVITE_LIST as they were a bit kludge to be included
10033           in the CMODE command.  The equivalent features are now available
10034           using INVITE and BAN commands.  Updated the protocol specs.
10035
10036         * Added new SILC_NOTIFY_TYPE_BAN notify type to notify routers
10037           in the network about change in the current ban list.  The notify
10038           type is not used by the client.
10039
10040         * Redefined parts of the SILC_NOTIFY_TYPE_INVITE command to
10041           support the invite lists.
10042
10043 Thu Mar 22 22:52:23 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
10044
10045         * Added new function silc_string_regexify that converts string
10046           including wildcard characters into regex string that can
10047           be used by the GNU regex library.  Added into the file
10048           lib/silcutil/silcutil.[ch].
10049
10050           Added silc_string_regex_combine to combine to regex strings
10051           into one so that they can be used as one regex string by
10052           the GNU regex library.  Added into the file
10053           lib/silcutil/silcutil.[ch].
10054
10055           Added silc_string_regex_match to match two strings.  It returns
10056           TRUE if the strings match.  Added into lib/silcutil/silcutil.[ch].
10057
10058 Thu Mar 22 15:29:42 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
10059
10060         * Imported GNU regex to the soruce tree into lib/contrib.
10061           Fixed some compiler warning from the regex.c.
10062
10063 Wed Mar 21 15:27:58 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
10064
10065         * Fixed MOTD command in the server to work in router environment.
10066
10067         * Fixed the MOTD command in the client library to support
10068           the server argument in the command.
10069
10070         * Added `nickname_len' argument to the silc_idlist_add_client
10071           in the server, as the `nickname' argument may be binary data
10072           (it may be hash).
10073
10074         * Added silc_idlist_get_channels to return all channels from
10075           the ID list.
10076
10077         * Implemented LIST command to the server.  Affected file is
10078           silcd/command.c.
10079
10080         * Implemented the LIST command to the client library and on the
10081           user interface.
10082
10083         * Added [<user count>] argument to the LIST command reply.
10084           With private channels the user count is not shown.
10085
10086         * Updated TODO and README.
10087
10088 Tue Mar 20 21:05:57 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
10089
10090         * The client entry's data.registered must be TRUE even with
10091           global client entry on global client list.  The data.registered
10092           is used to check whether the client is anymore in the network,
10093           for example with WHOWAS command so it must be valid.
10094
10095         * Fixed the WHOWAS command in the server.  It now actually works
10096           in router environment.  Added function into silcd/command_reply.c
10097           silc_server_command_reply_whowas_save.
10098
10099         * Added silc_idlist_purge function to the silcd/idlist.c
10100           to periodically purge the ID Cache.
10101
10102         * Fixed INFO command in the server.  It works now in router
10103           environment.  Added <server name> argument to the INFO command
10104           reply.  Updated the protocol specs.
10105
10106         * Fixed minor bug in silc_idcache_purge to not purge if the
10107           expire value is zero.
10108
10109         * Fixed various bugs in WHOIS and IDENTIFY command handling as
10110           they were buggy because of the WHOWAS information.
10111
10112         * Fixed local command MSG to handle the async resolving of
10113           the remote client properly.  It used to fail the first MSG.
10114           Affected file silc/local_command.c.
10115
10116         * Added `data_len' field to SilcIDCache context.
10117
10118 Tue Mar 20 16:29:00 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
10119
10120         * Update TODO.  Todo in commands in the server.
10121
10122 Tue Mar 20 15:45:14 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
10123
10124         * Added new notify type SILC_NOTIFY_TYPE_UMODE_CHANGE that is
10125           used by routers as broadcast packet to inform other routers
10126           about the changed user mode.
10127
10128           Implemented the notify handling in the server.  Affected file is
10129           silcd/packet_receive.c.  Added the function
10130           silc_server_send_notify_umode to the silcd/packet_send.[ch].
10131
10132         * Added new generic Channel Payload and deprecated the New Channel
10133           Payload.  The New Channel Payload is now the generic Channel
10134           Payload.
10135
10136         * Added new argument `mode' to the silc_server_send_new_channel
10137           as it is required in the Channel Payload now.
10138
10139         * Renamed the SilcChannelPayload to SilcChannelMessagePayload
10140           and created a new and real SilChannelPayload to represent the
10141           new generic Channel Payload.  Implemented the encode/decode
10142           for Channel Payload.  Affected file lib/silccore/silcchannel.[ch].
10143
10144         * Added silc_server_get_client_channel_list to return the list
10145           of channels the client has joined for WHOIS command reply.
10146           Affected file silcd/server.[ch].
10147
10148         * Implemented the channel list sending in the WHOIS command reply
10149           in server and in the client.
10150
10151           Implemented the channel list displaying on the user interface
10152           as well.  Affected file silc/client_ops.c.
10153
10154         * Added silc_channel_payload_parse_list to parse list of Channel
10155           Payloads.  It returns SilcDList list of SilcChannelPayloads.
10156           Client for example can use this function to parse the list of
10157           channels it receives in the WHOIS command reply.  The caller
10158           must free the list by calling silc_channel_payload_list_free.
10159           Affected files lib/silccore/silcchannel.[ch].
10160
10161 Mon Mar 19 21:39:15 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
10162
10163         * Added one new argument <user mode> to the WHOIS command reply
10164           to return the mode of the user in SILC.  Updated the protocol
10165           specs.
10166
10167           Implemented it to the server and client.
10168
10169 Mon Mar 19 18:43:06 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
10170
10171         * Fixed the mode printing on the user interface on joining.
10172           Affected file silc/client_ops.c.
10173
10174         * Implemented the UMODE command and user modes in general to the
10175           client library and to the user interface.
10176
10177         * Implemented the UMODE command to the server.
10178
10179         * The server now sends UNKNOWN_COMMAND error status if client sends
10180           unknown command.  Affected file silcd/command.c.
10181
10182         * All server commands now handle the command identifier the right
10183           way when sending the command reply to the client.  The client can
10184           use to identify the command replies with the identifier.
10185
10186 Mon Mar 19 16:13:07 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
10187
10188         * Added silc_server_get_client_route to resolve the route to
10189           the client indicated by the client ID.  Affected file is
10190           silcd/server.[ch].
10191
10192         * Added silc_server_relay_packet as general function to relay
10193           packet to arbitrary destination.  This deprecates functions
10194           like _send_private_message_key, _relay_notify etc.  Affected
10195           file is silcd/packet_send.[ch].
10196
10197           Removed silc_server_send_key_agreement,
10198           silc_server_send_private_message_key and
10199           silc_server_packet_relay_notify functions from the file
10200           silcd/packet_send.[ch].
10201
10202         * Updated TODO.
10203
10204         * Implemented the SILC_NOTIFY_TYPE_KILLED notify handling in the
10205           server.  Affected file silcd/packet_receive.[ch].
10206
10207         * Implemented the KILL command to the client.  Implemented the
10208           SILC_NOTIFY_TYPE_KILLED notify handling in the client library.
10209           Affected files lib/silcclient/command[_reply].c and
10210           lib/silcclient/client_notify.c.  Implemented the KILL notify
10211           printing in the user inteface.
10212
10213         * Fixed a lot silc_parse_nick memory leaks from the client
10214           library in the file lib/silcclient/command.c.
10215
10216         * Changed the silc_server_send_notify_on_channels's `sender'
10217           argument from SilcSocketConnection to SilcClientEntry to
10218           check the sender as entry and not as connection object and not
10219           to send to the client provided as argument.  The affected file
10220           is silcd/packet_send.[ch].
10221
10222         * The notify packets that are destined directly to the client used
10223           to not to be processed by the server.  Now changed that and the
10224           server processes all notify packets.  After relaying the packet
10225           to the client the notify packet is processed in the server.
10226
10227         * The silc_server_free_client_data now checks whether there is
10228           pending outgoing traffic for the client and purges the data to
10229           the network before removing the client entry.
10230
10231 Sun Mar 18 21:02:47 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
10232
10233         * Added SILC_NOTIFY_TYPE_KILLED notify type.  It is sent when
10234           an client is killed from the SILC Network.  Updated the protocol
10235           specs accordingly.
10236
10237           Added new function silc_server_send_notify_killed to the
10238           silcd/packet_send.[ch].
10239
10240         * Added function silc_server_packet_relay_notify to relay notify
10241           packets that are destined directly to a client.  In this case
10242           the server does not process the notify packets but merely relays
10243           it to the client.  Affected file silcd/packet_send.[ch].
10244
10245           Added also silc_server_packet_process_relay_notify to check
10246           whereto relay the notify.  Affected file is
10247           silcd/packet_receive.[ch].
10248
10249         * Implemented the KILL command to the server.
10250
10251         * Updated TODO.
10252
10253         * Added the backup schema desgined last fall to the protocol
10254           specs for everyone to see.  The specification is in the
10255           *-spec-xx.txt draft and the packet type definitions for the
10256           backup routers is in *-pp-xx.txt draft.  Thusly, added also
10257           new packet type SILC_PACKET_CELL_ROUTERS.
10258
10259         * A big security problem in the implementation discovered.  The
10260           signoff of an client did not cause new channel key generation
10261           which it of course should've done.  The channel keys must be
10262           always re-generated when client leaves (or signoffs) the channel.
10263           The silc_server_remove_from_channels funtion now handles
10264           the channel key re-generation.
10265
10266         * Added `sender' argument to the silc_server_send_notify_on_channels
10267           to not to send the client provided as argument.  Affected file
10268           silcd/packet_send.[ch].
10269
10270 Fri Mar 16 15:52:49 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
10271
10272         * Implemented OPER and SILCOPER commands into the server and
10273           the client library.
10274
10275         * Added silc_auth_verify and silc_auth_verify_data to verify
10276           the authentication directly from the authentication payload.
10277           It supports verifying both passphrase and public key based
10278           authentication.  Affected file lib/silccore/silcauth.[ch].
10279
10280         * Added `hash' field to the SilcIDListData structure.  It is the
10281           hash negotiated in the SKE protocol.  Affected file is
10282           silcd/idlist.[ch].
10283
10284         * Slight redesigning of the SilcAuthPayload handling routines.
10285           Do not send SilcPKCS but SilcPublicKey as argument.
10286
10287         * Implemented the public key authentication support to the
10288           serverconfig.  The public key is loaded from the provided path
10289           and saved as authentication data to void * pointer.  Thus,
10290           changed the unsigned char *auth_data to void *auth_data;
10291
10292         * Fixed SHUTDOWN command to send the reply before the server
10293           is shutdown. :)  Affected file silcd/command.c.
10294
10295         * Fixed fatal bug in CONNECT command.  The hostname was invalid
10296           memory and server crashed.  Affected file silcd/command.c.
10297
10298         * Fixed fatal bug in CLOSE command.  The server_entry became
10299           invalid but was referenced later in the command.  Affected file
10300           silcd/command.c.
10301
10302 Thu Mar 15 12:46:58 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
10303
10304         * Fixed fatal bug in failure packet handling.  Server ignored
10305           the failure and thus crashed when it came.
10306
10307         * Updated TODO.
10308
10309 Wed Mar 14 20:37:35 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
10310
10311         * Added new SILC_CF_LAG_STRICT command flag that strictly forces
10312           that the command may be executed only once in (about) 2 seconds.
10313           The old SILC_CF_LAG flag is same but allows command bursts up
10314           to five before limiting.
10315
10316           Added the support for CF_LAG and CF_LAG_STRICT flags to the
10317           server code.  Various commands now includes the CF_LAG_STRICT
10318           flag to disallow any kind of miss-use of the command.
10319
10320         * Fixed the silc_buffer_unformat to not to allocate any data
10321           if the length of the data is zero.  It used to allocate the
10322           length + 1.  Affected file lib/silcutil/silcbuffmt.c.
10323
10324 Wed Mar 14 16:10:30 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
10325
10326         * Changed the format of AdminConnection configuration section
10327           in the server.  Added username of the admin to the format.
10328           Affected files silcd/serverconfig.[ch].
10329
10330           Added silc_server_config_find_admin into silcd/serverconfig.[ch]
10331           to return admin configuration data by host, username and/or
10332           nickname.
10333
10334 Wed Mar 14 13:18:16 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
10335
10336         * Implemented WHOWAS command to the server.  Added the functions:
10337
10338           silc_server_command_whowas_parse,
10339           silc_server_command_whowas_send_reply,
10340           silc_server_command_whowas_from_client and
10341           silc_server_command_whowas_from_server
10342
10343         * Added <Client ID> argument to the WHOWAS command reply.  Updated
10344           the protocol specs accordingly.
10345
10346         * Implemented WHOWAS command and command_reply to the client
10347           library.
10348
10349           Implemented the WHOWAS printing on the user interface.
10350
10351 Tue Mar 13 22:17:34 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
10352
10353         * Added new argument to the WHOWAS command reply, the real name.
10354           It is an optional argument.  Updated the protocol specs.
10355
10356         * Added SilcIDCacheDestructor callback that is registered when
10357           the SilcIDCache is allocated.  The callback is called when
10358           an cache entry in the ID Cache expires, or is purged from the
10359           cache.  Added into lib/silccore/idcache.[ch].
10360
10361           Added silc_idlist_client_destructor to the silcd/idlist.[ch]
10362           to destruct the client entries when the cache entry expires.
10363           Other ID Cache's in server and in the client library ignores
10364           the destructor.
10365
10366         * If the ID Cache entry's `expire' field is zero then the entry
10367           never expires.  Added boolean `expire' argument to the
10368           silc_idcache_add function in the lib/silccore/idcache.[ch].
10369           If it is TRUE the default expiry value is used.
10370
10371         * Added silc_server_free_client_data_timeout that is registered
10372           when client disconnects.  By default for 5 minutes we preserve
10373           the client entry for history - for WHOWAS command.
10374
10375 Tue Mar 13 13:26:18 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
10376
10377         * Added support to the server to enforce that commands are not
10378           executed more than once in 2 seconds.  If server receives
10379           commands from client more frequently, timeout is registered
10380           to process the commands.  Affected file silcd/command.c.
10381           Added new function silc_server_command_process_timeout.
10382
10383         * Changed NICK_NOTIFY handling in client library to check that
10384           if the client's nickname was changed, so there is no need to
10385           resolve anything from the server.
10386
10387         * Removed error printing from the WHOIS and IDENTIFY commands.
10388           If error occurs then it is ignored silently in the client library.
10389           The application, however, may map the received error to
10390           human readable error string.  The application currently maps
10391           the NO_SUCH_NICKNAME error to string.
10392
10393         * Made the command status message public to the application.  Moved
10394           them from lib/silcclient/command_reply.c to
10395           lib/silcclient/command_reply.h.  The application can map the
10396           received command status to the string with the
10397           silc_client_command_status_message function.
10398
10399         * Added check to the server to check that client's ID is same
10400           as the Source ID in the packet the client sent.  They must
10401           match.
10402
10403 Tue Mar 13 12:49:21 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
10404
10405         * Added dist-bzip hook to the Makefile.am to make bzip2
10406           compressed distributions.
10407
10408 Mon Mar 12 18:43:38 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
10409
10410         * Server now enforces the maximum length for the nickname and
10411           the channel as protocol specification dictates.  128 bytes for
10412           nickname and 256 bytes for channel name.
10413
10414         * Moved the WHOIS printing to the application.  The client libary
10415           does not print out the WHOIS information anymore, the application
10416           must do it.  Renamed silc_client_command_reply_whois_print to
10417           the silc_client_command_reply_whois_save.
10418
10419           The client's idle time is also sent to the application now, and
10420           the idle is shown on screen.
10421
10422         * Added silc_client_command_reply_identify_save to save the
10423           received IDENTIFY entries.
10424
10425         * Do not check for channel private keys in message sending and
10426           reception if the channel does not have the PRIVKEY mode set.
10427           Affected file lib/silclient/client_channel.c.
10428
10429 Sun Mar 11 20:25:06 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
10430
10431         * Fixed a minor bug if WHOIS and IDENTIFY command parsing that
10432           just surfaced after chaning the JOIN procedure.
10433
10434 Sun Mar 11 14:59:05 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
10435
10436         * Added silc_client_get_clients_by_list to get client entries
10437           from Client ID list, that is returned for example by JOIN
10438           and USERS command replies.  The application should use this
10439           function for example when JOIN command reply is received to
10440           resolve the clients already on the channel (library does not
10441           do that anymore as USERS command reply is not used in the JOIN
10442           procedure anymore).  Affected files lib/silcclient/silcapi.h and
10443           lib/silcclient/idlist.c.
10444
10445         * JOIN command reply and USERS command reply returns now SilcBuffer
10446           pointers instead of unsigned char pointers when returning
10447           the client list and mode list.
10448
10449         * Added <Client ID> argument to the JOIN command reply, mainly
10450           for the server to identify for which client the command was
10451           originally sent.  Updated protocol specs accordingly.
10452
10453         * Added SilcDlist private_key pointer to the SilcChannelEntry
10454           in the client to support the channel private keys.  Affected
10455           file is lib/silcclient/idlist.h.
10456
10457         * Added SilcChannelPrivateKey argument to the function
10458           silc_client_send_channel_message so that application can choose
10459           to use specific private ke if it wants to.  If it is not provided,
10460           the normal channel key is used, unless private keys are set.
10461           In this case the first (key that was added first) is used
10462           as the encryption key.
10463
10464         * Implemented the support for channel private key handling.
10465           Implemented the following functions:
10466
10467           silc_client_add_channel_private_key,
10468           silc_client_del_channel_private_keys,
10469           silc_client_del_channel_private_key,
10470           silc_client_list_channel_private_keys and
10471           silc_client_free_channel_private_keys
10472
10473           Affected file lib/silcclient/client_channel.c.
10474
10475         * Added the support for the private keys in the channel message
10476           sending and encryption and in the message reception and
10477           decryption.  Affected funtions are
10478           silc_client_send_channel_message and silc_client_channel_message.
10479
10480 Sat Mar 10 21:36:22 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
10481
10482         * Added SKE's key verify callback to the client library's
10483           KE protocol context. Affected files lib/silcclient/protocol.[ch].
10484
10485         * Removed the statement that server (or router) must send USERS
10486           command reply when joining to the channel so that the client
10487           knows who are on the channel.  Instead, the client list and
10488           client's mode list is now sent in the JOIN command reply to the
10489           client who joined channel.  This is better solution.
10490
10491         * Added function silc_server_get_users_on_channel and function
10492           silc_server_save_users_on_channel to the silcd/server.[ch].
10493
10494         * Removed function silc_server_command_send_users from the
10495           silcd/command.c.
10496
10497         * Do not show topic on the client library anymore.  The topic is
10498           sent in the command reply notify to the application and the
10499           application must show the topic now.
10500
10501 Sat Mar 10 00:07:37 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
10502
10503         * Added client searching by nickname hash into the IDENTIFY and
10504           WHOIS commands in the server as they were clearly missing from
10505           them.  Affected file is silcd/command.c.
10506
10507         * Fixed a bug in private message receiving in the client library.
10508           The remote ID was freed and it wasn't supposed, now it is
10509           duplicated.
10510
10511 Fri Mar  9 12:40:42 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
10512
10513         * Minor fix to the channel payload; allocate the data area, as it
10514           needs to be of specific length.
10515
10516         * If the key agreement port is zero then the operating
10517           system will define the bound port.  Affected files are
10518           lib/silcclient/silcapi.h and lib/silcclient/client_keyagr.c.
10519
10520         * Added new function silc_channel_payload_decrypt into the file
10521           lib/silccore/silcchannel.[ch].
10522
10523         * Moved the channel message etc, check from silc_packet_decrypt
10524           to applications.  The library calls now a generic
10525           SilcPacketCheckDecrypt callback which is to return TRUE or FALSE
10526           when the packet is either normal or special.  This was done to
10527           allow more wide range of checking that was not allowed when
10528           the code was in library.  Now applications can do virtually any
10529           checks to the packet and return to the library the decision how
10530           the packet should be processed.  Affected files are
10531           lib/silccore/silcpacket.[ch].
10532
10533           Added silc_server_packet_decrypt_check to the server and
10534           silc_client_packet_decrypt_check to the client library.
10535
10536         * Added silc_server_packet_send_srcdest into silcd/packet_send.[ch]
10537           to send with specified source and destination information.
10538
10539         * Channel message delivery between routers was broken after the
10540           channel key distribution was fixed earlier.  The channel key
10541           was used be to distributed to other routers as well which is not
10542           allowed by the protocol.  Now this is fixed and channel keys
10543           really are cell specific and the channel message delivery between
10544           routers comply with the protocol specification.
10545
10546         * Fixed various commands in server to check also the global list
10547           for the channel entry and not just the local list.  The affected
10548           file silcd/command.c.
10549
10550 Thu Mar  8 21:39:03 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
10551
10552         * Added assert()s to buffer formatting and unformatting routines
10553           to assert (if --enable-debug) when error occurs.  Affected
10554           file: lib/silcutil/silcbuffmt.c.
10555
10556         * Changed to auto-reconnect to check whether the remote host is
10557           router and register the re-connect timeout if it is.  It used
10558           to check that whether we are normal server, but router must do
10559           auto-reconnect with another router as well.  Affected file
10560           silcd/server.c.
10561
10562         * Removed the [<key len>] option from CMODE command as the cipher
10563           name decides the key length, nowadays.  See the defined ciphers
10564           from the protocol specification.
10565
10566         * Added [<hmac>] option to the CMODE command to define the HMAC
10567           for the channel.  Added SILC_CMODE_HMAC channel mode.
10568
10569         * Added [<hmac>] option for the JOIN command so that user can
10570           select which HMAC is used to compute the MACs of the channel
10571           messages.
10572
10573         * Added Hmac field to the Channel Message Payload.  The integrity
10574           of plaintext channel messages are now protected by computing
10575           MAC of the message and attaching the MAC to the payload.  The
10576           MAC is encrypted.  Now, it is clear that this causes some
10577           overhead to the size of the packet but rationale for this is that
10578           now the receiver can verify whether the channel message decrypted
10579           correctly and also when private keys are set for the channel the
10580           receiver can decrypt the packet with several keys and check from
10581           the MAC which key decrypted the message correctly.
10582
10583         * Added silc_cipher_encrypt and silc_cipher_decrypt into the
10584           lib/silccrypt/silccipher.[ch].
10585
10586         * Added silc_hash_len to return the digest length into the
10587           lib/silcrypt/silchash.[ch].
10588
10589         * Rewrote parts of Silc Channel Payload interface in the
10590           lib/silccore/silcchannel.[ch].  The encode function now also
10591           encrypts the packet and parse function decrypts it.
10592
10593 Wed Mar  7 20:58:50 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
10594
10595         * Fixed a minor formatting bug in the SKE's key material processing.
10596           It actually might have processed the keys wrong way resulting
10597           into wrong keys.
10598
10599         * Redefined the mandatory HMAC algorithms and added new algorithms.
10600           Added hmac-sha1-96 and hmac-md5-96 which are normal hmac-sha1
10601           and hmac-md5 truncated to 96 bits.  The mandatory is now
10602           hmac-sha1-96.  Rest are optional (including the one that used
10603           to be mandatory).  Rationale for this is that the truncated HMAC
10604           length is sufficient from security point of view and can actually
10605           make the attack against the HMAC harder.  Also, the truncated
10606           HMAC causes less overhead to the packets.  See the RFC2104 for
10607           more information.
10608
10609         * Added new [hmac] configuration section.  The SKE used to use
10610           the hash names (md5 and sha1) in the SKE proposal as HMCAS which
10611           is of course wrong.  The official names that must be proposed in
10612           the SKE are the ones defined in the protocol specification
10613           (hmac-sha1-96 for example).  The user can configure any hmac
10614           using any hash function configured in the [hash] section.  At
10615           least, the mandatory must be configured.
10616
10617           Rewrote the HMAC interface in lib/silccrypt/silchmac.[ch].
10618
10619         * Added HMAC list to the SKE proposal list.  It has now both
10620           hash algorithm list and HMAC list.  This makes the protocol
10621           incompatible with previous versions.  The SKE now seems to work
10622           the way it is supposed to work, for the first time actually.
10623
10624         * Defined plain Hash algorithms to the protocol specification.
10625           Added sha1 and md5.
10626
10627 Tue Mar  6 15:36:11 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
10628
10629         * Implemented support for key agreement packets into the server.
10630           Added functions silc_server_key_agreement and
10631           silc_server_send_key_agreement.  Other than these functions,
10632           server has nothing to do with this packet.
10633
10634         * Added support for private message key packets into the server.
10635           Added functions silc_server_private_message_key and
10636           silc_server_send_private_message_key.
10637
10638         * Updated TODO.
10639
10640         * Changed the silc_[client|server]_protocol_ke_set_keys to be
10641           called in the protocol's final callback instead in the END
10642           protocol state.  This makes a little more sense and in the same
10643           time in client we can use the same protocol routines for normal
10644           key exchange and to key agreement packet handling as well.
10645
10646         * Added to both client's and server's KE protocol context the
10647           SilcSKEKeyMaterial pointer to save the key material.  We will
10648           bring the key material to the protocol's final callback by doing
10649           this.  The final callback must free the key material.
10650
10651         * Added SKE's packet_send callback into client's KE protocol
10652           context so that the caller can choose what packet sending function
10653           is used.  This way we can use different packet sending when
10654           doing normal SKE when doing key agreement packet handling (in
10655           the key agreement packet handling we do not want to encrypt
10656           the packets).
10657
10658         * Implemented the responder side of the key agreement routines
10659           in the client.  The client can now bind to specified port and
10660           accept incoming key negotiation.  The key material is passed
10661           to the application after the protocol is over.
10662
10663         * Implemented the processing of incoming Key Agreement packet
10664           in the client.  Added function silc_client_key_agreement to
10665           process the packet.
10666
10667         * Implemented the intiator side of the key agreement routines
10668           in the client.  The client can now initiate key agreement with
10669           another remote client.  The key material is passed to the
10670           application after the protocol is over.
10671
10672         * Created client_keyagr.c to include all the key agreement
10673           routines.
10674
10675         * Added macro SILC_TASK_CALLBACK_GLOBAL which is equal to the
10676           SILC_TASK_CALLBACK except that it is not static.
10677
10678         * Created client_notify.c and moved the Notify packet handling
10679           from the client.[ch] into that file.
10680
10681         * Created client_prvmsg.c and moved all private message and
10682           private message key routines from the client.[ch] into that file.
10683
10684         * Create client_channel.c and moved all channel message and
10685           channel private key routines from the client.[ch] into that file.
10686
10687         * Changed silc_client_get_client_by_id_resolve to resolve with
10688           WHOIS command instead of IDENTIFY command, in the file
10689           lib/silclient/idlist.c.
10690
10691 Mon Mar  5 18:39:49 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
10692
10693         * Implemented the SKE's responder side to the Client library.
10694
10695         * When FAILURE is received to the protocol do not trust it
10696           blindly.  Register a timeout to wait whether the remote closes
10697           the connection as it should do it, only after that process the
10698           actual failure.  This was changed to both client and server.
10699
10700         * Added client_internal.h to include some of the structures
10701           there instead of client.h in lib/silcclient/.
10702
10703         * Added function silc_task_unregister_by_callback to unregister
10704           timeouts by the callback function.
10705
10706 Sat Mar  3 19:15:43 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
10707
10708         * Some "Incomplete WHOIS info" errors has been appearing on the
10709           log files.  Took away the entry->userinfo check from WHOIS
10710           reply sending.  The entry->userinfo is now " " if client did not
10711           provide one.  I thought this was fixed earlier but something
10712           is wrong still.  Let's see if the error still appears.
10713
10714 Wed Feb 28 20:56:29 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
10715
10716         * Fixed a minor bug in the login when the channel key is
10717           re-generated in the server.  It used to generate the key in
10718           wrong order and thus caused problems in the channel traffic.
10719
10720         * Fixed a minor bug in channel key distsribution after
10721           KICK command.  The key was not sent to the router even though
10722           it should've been.
10723
10724 Tue Feb 27 20:24:25 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
10725
10726         * Added silc_ske_process_key_material_data as generic routine
10727           to process any key material as the SILC protocol dictates.  The
10728           function is used by the actual SKE library but can be used by
10729           applications as well.  This relates to the private message keys
10730           and the channel private keys since they must be processed the
10731           same way the normal SILC session keys.  The protocol dictates
10732           this.  Affected files: lib/silcske/silcske.[ch].
10733
10734           Added also silc_ske_free_key_material to free the
10735           SilcSKEKeyMaterial structure.
10736
10737         * Defined silc_cipher_set_key function to set the key for
10738           cipher without using the object's method function.  The affected
10739           files: lib/silccrypt/silccipher.[ch].
10740
10741         * Implemented silc silc_client_add_private_message_key,
10742           silc_client_add_private_message_key_ske,
10743           silc_client_del_private_message_key,
10744           silc_client_list_private_message_keys and
10745           silc_client_free_private_message_keys functions in the
10746           client library.
10747
10748           Added functions silc_client_send_private_message_key to send
10749           the Private Message Key payload and silc_client_private_message_key
10750           to handle incoming Private Message Key payload.
10751
10752         * Added Cipher field to the Private Message Key payload to set
10753           the cipher to be used.  If ignored, the default cipher defined
10754           in the SILC protocol (aes-256-cbc) is used.
10755
10756 Tue Feb 27 13:30:52 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
10757
10758         * Removed lib/silcclient/ops.h file.
10759
10760           Redefined parts of the SILC Client Library API. Created new
10761           file silcapi.h that deprecates the ops.h file and defines the
10762           published Client Library API.  Defined also private message key
10763           API and channel private key API into the file.
10764
10765           This is the file that the application must include from the
10766           SILC Client Library.  Other files need not be included by
10767           the application anymore.
10768
10769         * Added new key_agreement client operation callback and also
10770           defined the Key Agreement library API for the application.
10771
10772 Tue Feb 27 11:28:31 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
10773
10774         * Added new packet type: SILC_PACKET_KEY_AGREEMENT.  This packet
10775           is used by clients to request key negotiation  between another
10776           client in the SILC network.  If the negotiation is started it
10777           is performed using the SKE protocol.  The result of the
10778           negotiation, the secret key material, can be used for example
10779           as private message key.
10780
10781           Implemented the Key Agreement payload into the files
10782           lib/silccore/silauth.[ch].
10783
10784 Mon Feb 26 12:13:58 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
10785
10786         * Redefined ciphers for the SILC protocol.  Added some new ciphers
10787           and defined the key lengths for the algorithms.  Changed the
10788           code accordingly.  The default key length is now 256 bits.
10789
10790         * Fixed SKE key distribution function silc_ske_process_key_material
10791           when the key length is more than 128 bits.  The default key
10792           length in SILC is now 256 bits.
10793
10794         * Added new command status type: SILC_STATUS_ERR_UNKOWN_ALGORITHM
10795           to indicate unsupported algorithm.
10796
10797         * Renamed rijndael.c to aes.c and all functions as well.
10798
10799         * Fixed a long standing channel key setting bug in client library.
10800           Weird that it has never surfaced before.
10801
10802         * Fixed bug in channel deletion.  If the entire channel is removed
10803           then it must also delete the references of the channel entry
10804           from the client's channel list as the client's channel entry and
10805           the channel's client entry share same memory.
10806
10807 Sun Feb 25 20:47:29 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
10808
10809         * Implemented CONNECT and SHUTDOWN commands in the client.
10810
10811         * Implemented CLOSE command to the client.
10812
10813         * Added the function silc_idlist_find_server_by_name into the
10814           files silcd/idlist.[ch].
10815
10816           Added the function silc_idlist_find_server_by_conn into the
10817           files silcd/idlist.[ch].
10818
10819 Sat Feb 24 23:45:49 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
10820
10821         * DIE command was renamed to SHUTDOWN.  Updated the both code
10822           and protocol specs.
10823
10824         * Defined SILC_UMODE_NONE, SILC_UMODE_SERVER_OPERATOR and
10825           SILC_UMODE_ROUTER_OPERATOR modes into lib/silccore/silcmode.h.
10826
10827         * Implemented CONNECT, CLOSE and SHUTDOWN commands to the server
10828           side.
10829
10830         * Added function silc_server_create_connection function to create
10831           connection to remote router.  My server implementation actually
10832           does not allow router to connect to normal server (it expects
10833           that normal server always initiates the connection to the router)
10834           so the CONNECT command is only good for connecting to another
10835           router.
10836
10837 Sat Feb 24 16:03:45 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
10838
10839         * Added SILC_NOTIFY_TYPE_KICKED to indicate that the client
10840           or some other client was kicked from the channel.
10841
10842           Implemented the handling of the notify type to both client
10843           and server.
10844
10845           Implemented silc_server_send_notify_kicked to send the KICKED
10846           notify.  It is used to send it to the server's primary router.
10847
10848         * Implemented the KICK command into server and client.
10849
10850         * Added `query' argument to the silc_idlist_get_client function
10851           to indicate whether to query the client from server or not if
10852           it was not found.
10853
10854         * Added new command status type SILC_STATUS_ERR_NO_CHANNEL_FOPRIV
10855           to indicate that the client is not channel founder.
10856
10857         * Updated TODO.
10858
10859 Sat Feb 24 00:00:55 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
10860
10861         * Removed the rng context from SilcPacketContext structure and
10862           changed that the packet routine uses the Global RNG API.
10863
10864 Fri Feb 23 11:22:57 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
10865
10866         * Added support for quit message that client can "leave" on the
10867           channel when it quits the SILC.  It is ditributed inside the
10868           SILC_NOTIFY_TYPE_SIGNOFF notify type.
10869
10870           Added silc_server_free_client_data that will take the
10871           signoff message as argument.
10872
10873         * Changed SKE routines to use the silc_pkcs_sign/verify routines.
10874
10875 Thu Feb 22 23:05:36 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
10876
10877         * Updated parts of the protocol specification to keep it up
10878           to date.
10879
10880 Thu Feb 22 15:08:20 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
10881
10882         * Added List flag (SILC_PACKET_FLAG_LIST) to indicate list of
10883           payloads in one packet.
10884
10885         * Deprecated following packet types: NEW_ID_LIST, NEW_CHANNEL_LIST,
10886           NEW_CHANNEL_USER_LIST, SET_MODE and SET_MODE_LIST.  List packets
10887           use now the new List flag.
10888
10889         * Also deprecated the following packet types: REPLACE_ID,
10890           NEW_CHANNEL_USER and REMOVE_CHANNEL_USER packet types.
10891
10892         * Added list support for Notify packet in server.
10893
10894         * Added silc_server_send_notify_channel_change to send the
10895           CHANNEL_CHANGE notify type to replace channel ID's.  Deprecates
10896           the silc_server_send_replace_id.
10897
10898         * Added silc_server_send_notify_nick_change to send the
10899           NICK_CHANGE notify type.  Deprecates the function
10900           silc_server_send_replace_id.
10901
10902         * Added silc_server_send_notify_join to send the JOIN notify type.
10903           Deprecates the function silc_server_send_new_channel_user.
10904
10905         * Added silc_server_send_notify_leave to send LEAVE notify type.
10906           Deprecates the function silc_server_send_remove_channel_user.
10907
10908         * Added silc_server_send_notify_cmode and
10909           silc_server_send_notify_cumode to send CMODE and CUMODE notify
10910           types.  Deprecates the silc_server_send_set_mode function.
10911
10912         * Added SERVER_SIGNOFF notify type to indicate that server has
10913           quit.  This means that all clients on the channel from that
10914           server will drop.  This can be also used when netsplit happens.
10915
10916           Deprecated REMOVE_ID packet type since it is not needed anymore
10917           even from server.
10918
10919           Added silc_server_send_notify_server_signoff to send the
10920           SERVER_SIGNOFF notify type.  Deprecates the function
10921           silc_server_send_remove_id.
10922
10923           Added also silc_server_send_notify_signoff to send the
10924           SIGNOFF notify type.
10925
10926         * Employed the PKCS #1. It is the mandatory way to do RSA in the
10927           SILC protocol from this day on.  Changed the protocol
10928           specification as well.
10929
10930         * Added silc_server_send_notify_topic_set to send TOPIC_SET
10931           notify type.  It is used between routers to notify about
10932           topic changes on a channel.
10933
10934         * Added silc_id_dup into lib/silccore/id.[ch] to duplicate
10935           ID data.
10936
10937         * Partly updated the protocol specification to comply with the
10938           changes now made.  It is still though a bit outdated.
10939
10940         * The JOIN notify type now takes one extra argument <Channel ID>.
10941           The packet used to be destined to the channel but now the
10942           JOIN type may be sent as list thus it is impossible to
10943           destine it to any specific channel.  By adding this argument
10944           it is again possible.
10945
10946 Wed Feb 21 22:39:30 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
10947
10948         * Added CREDITS file.  The CHANGES and CREDITS file will appear
10949           in the distribution as well.
10950
10951 Wed Feb 21 14:17:04 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
10952
10953         * Implemented CMODE_CHANGE, CUMODE_CHANGE and TOPIC_SET notify
10954           types in the server's silcd/packet_receive.c.
10955
10956         * Implemented CMODE and CUMODE to work in router environment.
10957
10958         * Fixed minor encoding and decoding buglet from the
10959           lib/silccore/silcmode.c.
10960
10961         * Fixed buffer overflow from lib/silcclient/command.c in USERS
10962           command parsing.
10963
10964 Wed Feb 21 12:44:00 EET 2001  Mika Boström <bostik@lut.fi>
10965
10966         * Changed all SilcConfigServer* and silc_config_server* to
10967           SilcServerConfig* and silc_server_config*, respectively.
10968           Patch by Bostik.
10969
10970 Wed Feb 21 00:10:00 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
10971
10972         * Associated the ID (client or server ID) to the Authentication
10973           Payload to avoid any possibility of forging.  Updated the
10974           protocol specification and the code accordingly.
10975
10976 Tue Feb 20 14:14:14 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
10977
10978         * The RSA key length is now save to the RsaKey context in the
10979           key generation process in lib/silccrypt/rsa.c.  The key length
10980           is now used to figure out the maximum size of the block allowed
10981           to be encrypted/signed.
10982
10983         * Added silc_mp_mp2bin_noalloc into lib/silcmath/mpbin.[ch].  It
10984           is equivalent to the silc_mp_mp2bin but does not allocate any
10985           memory.
10986
10987         * Changed silc_mp_mp2bin API to take length argument.  If it is
10988           non-zero then the buffer is allocated that large.  If zero, then
10989           the size is approximated using silc_mp_sizeinbase, which however
10990           is not relieable.
10991
10992         * Created Global RNG API which is global RNG that application can
10993           initialize.  After initializing, any routine anywhere in the
10994           code (including library) can use RNG without allocating a new
10995           RNG object.  This was done to allow this sort of use of the
10996           RNG in code that has no chance to allocate RNG object.  All
10997           applications currently allocate this and many routines in the
10998           library use this.  Affected file lib/silccrypt/silcrng.[ch].
10999
11000         * Removed the RNG kludge from lib/silcmath/primegen.c and changed
11001           it to use the Global RNG API.
11002
11003         * Defined Authentication Payload into protocol specification that
11004           is used during SILC session to authenticate entities.  It is
11005           used for example by client to authenticate itself to the server
11006           to obtain server operator privileges.
11007
11008           Implemented this payload into the lib/silccore/silcauth.[ch].
11009           Implemented also routines for public key based authentication
11010           as the new protocol specification dictates.
11011
11012           Moved definitions of different authentication methods from
11013           lib/silccore/silcprotocol.h into lib/silccore/silcauth.h.
11014
11015         * Added silc_pkcs_encrypt, silc_pkcs_decrypt, silc_pkcs_sign,
11016           silc_pkcs_verify and silc_pkcs_sign_with_hash and
11017           silc_pkcs_verify_with_hash functions into the file
11018           lib/silccrypt/silcpkcs.[ch].
11019
11020 Mon Feb 19 19:59:28 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
11021
11022         * The client entry's userinfo pointer must be always valid.
11023           Otherwise the [<unknown>] bug will surface beacuse the WHOIS
11024           will fail since it requires the userinfo.  Now, the userinfo
11025           is allocated as "" if actual userinfo does not exist.  Actually,
11026           it must exist and it is totally Ok to drop client connections
11027           that does not announce the userinfo.  However, we will make
11028           this workaround for now.
11029
11030         * Added silc_net_get_remote_port into lib/silcutil/silcnet.[ch]
11031           to return the remote port by socket.
11032
11033 Mon Feb 19 14:26:49 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
11034
11035         * Changed SILC_SERVER_COMMAND_EXEC_PENDING macro to the name
11036           SILC_SERVER_PENDING_EXEC and added an new macro
11037           SILC_SERVER_PENDING_DESTRUCTOR which is called to free the
11038           data or when error occurs while processing the pending command.
11039
11040           Added new argument `destructor' into silc_server_command_pending
11041           and to the SilcServerCommandPending object.  This destructor is
11042           now called after calling the pending callback or if error occurs
11043           immediately.  If error occurs the actual pending callback won't
11044           be called at all - only the destructor.  The destructor may be
11045           NULL if destructor is not needed.
11046
11047           All this applies for client library code as well.  Similar
11048           changes were made there as well for the pending commands.
11049
11050           In the client, the application must now allocate the
11051           SilcClientCommandContext with the silc_client_command_alloc
11052           function.
11053
11054         * Added reference counter to the SilcServerCommandContext.  Added
11055           function silc_server_command_alloc and silc_server_command_dup
11056           functions.
11057
11058           Same type of functions added to the client library for the same
11059           purpose as well.
11060
11061         * Removed the cmd_ident from IDListData away since it is now
11062           global for all connections.  It is the command identifier used
11063           in command sending and with pending commands.  The affected file
11064           is silcd/idlist.h.
11065
11066         * Added reference counter to the SilcSocketConnection objecet to
11067           indicate the usage count of the object.  The object won't be
11068           freed untill the reference counter hits zero.  Currently only
11069           server uses this, and client ignores it.  The client must be
11070           set to use this too later.  The affected files are
11071           lib/silccore/silcsockconn.[ch].  Added also the function
11072           silc_socket_dup to increase the reference counter.
11073
11074           This was mainly added because it is possible that the socket
11075           is removed underneath of pending command or other async
11076           operation.  Now it won't be free'd and proper DISCONNECTING
11077           flags, etc. can be set to avoid sending data to connection that
11078           is not valid anymore.
11079
11080         * Added SILC_SET_DISCONNECTING to server.c when EOF is read from
11081           the connection.  After that it sets SILC_SET_DISCONNECTED.
11082           It is, however, possible that the socket data is not still freed.
11083           The silc_server_packet_process now checks that data is not
11084           read or written to connection that is DISCONNECTED.  The socket
11085           get's freed when the reference counter hits zero.
11086
11087 Mon Feb 19 00:50:57 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
11088
11089         * Changed the client operation API: channel_message operation's
11090           `sender' is now the client entry of the sender, not the nickname
11091           and the `channel' is the channel entry, not the channel name.
11092
11093           In the private_message operation the `sender' is now also the
11094           client entry of the sender not the nickname.
11095
11096           Affected file is lib/silcclient/ops.h and all applications
11097           using the client operations.
11098
11099 Sat Feb 17 22:11:50 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
11100
11101         * Moved the calling of ops->connect() from connect_to_server_final
11102           into receive_new_id functin since that is the point when the
11103           client is actually allowed to send traffic to network.  The
11104           affected file is lib/silcclient/client.c.
11105
11106 Sat Feb 17 13:15:35 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
11107
11108         * When receiving NEW_CHANNEL_LIST, NEW_CHANNEL_USER_LIST,
11109           NEW_ID_LIST and SET_MODE_LIST packets, broadcast the list packet
11110           (if needs broadcasting) instead of broadcasting the packets one
11111           by one which would make a burst in the network traffic.
11112
11113         * Added `broadcast' argument to the functions in silcd/server.[ch]
11114           silc_server_create_new_channel[_with_id] to indicate whether
11115           to send New Channel packet to primary router.
11116
11117 Sat Feb 17 01:06:44 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
11118
11119         * Added new function into the silcd/server.[ch] files:
11120           silc_server_create_new_channel_with_id to create new channel with
11121           already existing Channel ID.
11122
11123         * Added new packet type SILC_PACKET_SET_MODE_LIST into the file
11124           lib/silccore/silcpacket.h.  This packet is used t send list of
11125           Set Mode payloads inside one packet.  Server uses this to set
11126           the modes for the channels and clients on those channels, that it
11127           announced to the router when it connected to it.  The protocol
11128           specification has been updated accordingly.
11129
11130         * The silc_server_new_channel did not handle the packet coming
11131           from normal server as it normally does not send that.  However,
11132           when it announces its channels it does send it.  Implemented
11133           the support for that.
11134
11135         * Added SILC_ID_CHANNEL_COMPARE macro to compare to Channel ID's
11136           into the file lib/silccore/id.h.
11137
11138 Fri Feb 16 23:57:29 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
11139
11140         * Fixed memory leaks in the functions silc_idlist_del_client,
11141           silc_idlist_del_channel and silc_idlist_del_server in the file
11142           silcd/idlist.c.  All of those leaked like a sieve.
11143
11144         * Fixed some small memory leaks in the client's function
11145           silc_client_notify_by_server.
11146
11147         * Added functions into silcd/server.c: silc_server_announce_clients,
11148           silc_server_announce_channels and silc_server_announce_server.
11149           These functions are used by normal and router server to announce
11150           to its primary router about clients, channels and servers (when
11151           router) that we own.  This is done after we've connected to the
11152           router.
11153
11154           These functions effectively implements the following packet types:
11155           SILC_PACKET_NEW_CHANNEL_LIST, SILC_PACKET_NEW_CHANNEL_USER_LIST
11156           and SILC_PACKET_NEW_ID_LIST.
11157
11158         * Added new functions into the silcd/packet_receive.[ch]:
11159           silc_server_new_id_list, silc_server_new_channel_list and
11160           silc_server_new_channel_user_list to handle the incoming
11161           NEW_ID_LIST, NEW_CHANNEL_LIST and NEW_CHANNEL_USER_LIST packets.
11162
11163         * Added support of changing Channel ID in the function
11164           silc_server_replace_id.  If the server that announces a channel
11165           to the router already exists in the router (with same name but
11166           with different Channel ID), router is responsible to send
11167           Replace ID packet to the server and force the server to change
11168           the Channel ID to the one router has.
11169
11170         * Added new notify type SILC_NOTIFY_TYPE_CHANNEL_CHANGE to notify
11171           client that the Channel ID has been changed by the router.  The
11172           normal server sends this to the client.  Client must start using
11173           the new Channel ID as the channel's ID.
11174
11175           Implemented handling of this new type into lib/silcclient/client.c
11176           into the function silc_client_notify_by_server.
11177
11178         * Added new function silc_idlist_replace_channel_id into the files
11179           silcd/idlist.[ch] to replace the Channel ID.
11180
11181 Fri Feb 16 14:14:00 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
11182
11183         * Call silc_server_command_identify_check always when processing
11184           the IDENTIFY command in silcd/command.c
11185
11186 Thu Feb 15 20:07:37 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
11187
11188         * Added new packet type SILC_PACKET_HEARTBEAT that is used to
11189           send keepalive packets.  The packet can be sent by clients,
11190           servers and routers.
11191
11192           Added function silc_socket_set_heartbeat into the file
11193           lib/silccore/silcsockconn.[ch] to set the heartbeat timeout.
11194           If not set, the heartbeat is not performed.  The actual
11195           heartbeat is implemented in the low level socket connection
11196           library.  However, application is responsible of actually
11197           sending the packet.
11198
11199           Added silc_server_send_heartbeat to send the actual heartbeat
11200           packet into silcd/packet_send.[ch].  Server now performs
11201           keepalive with all connections.
11202
11203         * Added silc_task_get_first function into lib/silcutil/silctask.c
11204           to return the timeout task with shortest timeout.  There was a bug
11205           in task unregistration that caused problems.  TODO has been
11206           updated to include that task system must be rewritten.
11207
11208         * The client library will now resolve the client information when
11209           receiving JOIN notify from server for client that we know but
11210           have incomplete information.
11211
11212         * Rewrote parts of silc_server_remove_from_channels and
11213           silc_server_remove_from_one_channel as they did not remove the
11214           channel in some circumstances even though they should've.
11215
11216         * Encryption problem encountered in server:
11217
11218           The LEAVE command used to send the Channel Key packet to the
11219           router immediately after generating it.  However, the code
11220           had earlier sent Remove Channel user packet but not immediately,
11221           ie. it was put to queue.  The order of packets in the router
11222           was that Channel Key packet was first and Remove Channel User
11223           packet was second, even though they were encrypted in the
11224           reverse order.  For this reason, MAC check failed.  Now, this
11225           is fixed by not sending the Channel Key packet immediately but
11226           putting it to queue.  However, this is more fundamental problem:
11227           packets that are in queue should actually not be encrypted
11228           because packets that are sent immediately gets encrypted
11229           actually with wrong IV (and thus MAC check fails).  So, packets
11230           that are in queue should be encrypted when they are sent to
11231           the wire and not when they put to the queue.
11232
11233           However, the problem is that the current system has not been
11234           designed to work that way.  Instead, the packet is encrypted
11235           as soon as possible and left to the queue.  The queue is then
11236           just purged into wire.  There won't be any fixes for this
11237           any time soon.  So, the current semantic for packet sending
11238           is as follows:
11239
11240           o If you send packet to remote host and do not force the send
11241           (the packet will be in queue) then all subsequent packets to the
11242           same remote host must also be put to the queue.  Only after the
11243           queue has been purged is it safe again to force the packet
11244           send immediately.
11245
11246           o If you send all packets immediately then it safe to send
11247           any of subsequent packets through the queue, however, after
11248           the first packet is put to queue then any subsequent packets
11249           must also be put to the queue.
11250
11251           Follow these rules and everything works fine.
11252
11253 Thu Feb 15 14:24:32 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
11254
11255         * Added new function silc_server_remove_clients_by_server to
11256           remove all client entries from ID list when the server connection
11257           is lost.  In this case it is also important to invalidate all
11258           client entires as they hold the invalid server entry.  This
11259           fixes fatal bug when server has lost connection and will reconnect
11260           again.
11261
11262 Wed Feb 14 16:03:25 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
11263
11264         * Made some sanity checks to silc_server_daemonise like to check
11265           whether the requested user and group actually exists.
11266
11267         * Added sanity check to SKE's silc_ske_responder_finish to check
11268           that the public and private key actually is valid.
11269
11270         * Invalidate the client's nickname when receiving Replace ID
11271           packet and the Client ID is being replaced.  This means that the
11272           server will query the nickname if someone needs it (client)
11273           a bit later.
11274
11275         * Sort the ID Cache in client library when the ID Cache data
11276           has changed (needs sorting).
11277
11278         * Do not allow for SILC client to create several connections to
11279           several servers.  The client does not support windows right now
11280           and generating multiple connections causes weird behaviour.
11281
11282           Irssi-silc client does support windows and can handle several
11283           connections without problems, see: www.irssi.org and SILC plugin.
11284
11285         * Fixed some places where client was added to the IDList.  The
11286           rule of thumb is following (in order to get everything right):
11287           If the client is directly connected local client then the
11288           `connection' argument must be set and `router' argument must be
11289           NULL to silc_idlist_add_client function.  If the client is not
11290           directly connected client then the `router' argument must
11291           bet set and the `connection' argument must be NULL to the
11292           silc_idlist_add_client function.
11293
11294         * The funtion silc_server_packet_send_local_channel actually did
11295           not check whether the client was locally connected or not.  It
11296           does that now.  Fixed a bug related to LEAVE command.
11297
11298         * Fixed Remove Channel User payload parsing bug in server's
11299           silcd/packet_receive.c.  Fixed a bug related to LEAVE command.
11300
11301         * The server's silc_server_save_channel_key now checks also the
11302           global ID list for the channel as it might not be in the local
11303           list.  Fixed a bug related to LEAVE command.
11304
11305         * Is this the end of the [<unknown>] buglet that has been lurking
11306           around for a long time?  A little for loop fix in server's
11307           silc_server_command_whois_parse that is used by both IDENTIFY
11308           and WHOIS command.  At least, this was a clear bug and a cause
11309           of one type of [<unknown>] buglet.
11310
11311         * WHOIS and IDENTIFY commands call the function
11312           silc_server_command_[whois/identify]_check function even if
11313           we are not router server.
11314
11315 Tue Feb 13 19:55:59 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
11316
11317         * Added --with-gmp configuration option.  If set the GMP
11318           is always compiled in the SILC source tree.  If not set then
11319           it is checked whether the system has the GMP3 installed.  If
11320           it has then the GMP won't be compiled (the system's headers
11321           and library is used), if it doesn't have it then the GMP is
11322           compiled in the SILC source tree.
11323
11324 Mon Feb 12 11:20:32 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
11325
11326         * Changed RSA private exponent generation to what PKCS #1
11327           suggests.  We try to find the smallest possible d by doing
11328           modinv(e, lcm(phi)) instead of modinv(e, phi).  Note: this is
11329           not security fix but optimization.
11330
11331 Sun Feb 11 18:19:51 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
11332
11333         * Added new config entry [Identity] to fork the server and run
11334           it as specific user and group.  A patch from Bostik.
11335
11336         * Imported Dotconf configuration library into lib/dotconf.
11337           This will be used to create the SILC configuration files later.
11338           It will appear in the distsribution after this commit.
11339
11340 Sat Feb 10 21:13:45 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
11341
11342         * A big code auditing weekend happening.  Auditing code for
11343           obvious mistakes, bugs and errors.  Also, removing any code
11344           that is obsolete.
11345
11346           Removed files for being obsolete:
11347
11348           o lib/silcutil/silcbuffer.c (the buffer interface is entirely in
11349           inline in the file lib/silcutil/silcbuffer.h)
11350
11351           o lib/silcutil/silcbufutil.c (the header has inline versions)
11352
11353           Changed code to fix possible error conditions:
11354
11355           o The buffer formatting routines now check that the destination
11356           buffer really has enough space to add the data.  This applies for
11357           both buffer formatting and unformatting
11358           (lib/silcutil/silcbuffmt.[ch]).  Also, the entire buffer
11359           unformatting was changed to accomodate following rules:
11360           XXX_*STRING_ALLOC will allocate space for the data into the pointer
11361           sent to the function while XXX_*STRING will not allocate or copy
11362           the data into the buffer.  Instead it sets the pointer from the
11363           buffer into the pointer sent as argument (XXX_*STRING used to
11364           require that the pointer must be allocated already).  This change
11365           makes this whole thing a bit more consistent and more optimized
11366           (note that the data returned in the unformatting with XXX_*STRING
11367           must not be freed now).  The routines return now -1 on error.
11368
11369           o Tried to find all code that use buffer_format and buffer_unformat
11370           and added return value checking to prevent formatting and
11371           especially unformatting errors and possible subsequent fatal
11372           errors.
11373
11374           o Changed ske->x and ske->KEY to mallocated pointers in
11375           lib/silcske/silcske.h.  Fixed possible data and memory leak.
11376
11377           o Added return value checking to all *_parse* functions.  Fixed
11378           many memory leaks as well.
11379
11380           o Added length argument to silc_id_str2id in lib/silccore/id.[ch]
11381           so that buffer overflows would not happen.  All code now also
11382           checks the return value as it can fail.
11383
11384 Mon Feb  5 20:08:30 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
11385
11386         * Added reconnection support to server if the normal server looses
11387           its connection to the router (for example if router is rebooted).
11388           The server performs normal reconnection strategy implemented
11389           to the server.  Affected file silcd/server.c.
11390
11391 Sun Feb  4 13:18:32 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
11392
11393         * Added new packet type SILC_PACKET_SET_MODE that is used to
11394           distribute the information about changed modes (for clients,
11395           channels and clients channel modes) to all routers in the
11396           network.  Updated the protocol specification accordingly.
11397
11398           Added functions into silcd/packet_send.c and
11399           silcd/packet_receive.c: silc_server_send_set_mode,
11400           silc_server_set_mode.
11401
11402           Added new files silcmode.[ch] into lib/silccore that implements
11403           the encoding and decoding of Set Mode Payload.  Added new type
11404           SilcSetModePayload.  Moved the definitions of different modes
11405           from lib/silccore/silcchannel.h into lib/silccore/silcmode.h.
11406
11407 Sat Feb  3 15:44:54 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
11408
11409         * Oops, a little mistake in server's connection authentication
11410           protocol.  The protocol is not ended with FAILURE but with
11411           SUCCESS if the authentication is Ok. :)  Affected file is
11412           silcd/protocol.c.
11413
11414         * Implemented NICK_CHANGE notify handling in server in the file
11415           silcd/packet_receive.c  The NICK_CHANGE notify is distributed to
11416           the local clients on the channel.  After the changing nickname
11417           in router environment snhould work and the [<unknown>] nickname
11418           should appear no more.
11419
11420           The silc_server_replace_id function that receives the Replace ID
11421           payload now sends the NICK_CHANGE notify type also in the file
11422           silcd/packet_receive.c
11423
11424         * Changed WHOIS and IDENTIFY command to support the maximum amount
11425           of arguments defined in protocol specs (3328 arguments).  This
11426           fixed a bug that caused problems when there were more than three
11427           users on a channel.
11428
11429 Fri Feb  2 11:42:56 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
11430
11431         * Added extra parameter, command identifier, to the
11432           silc_client_send_command so that explicit command identifier
11433           can be defined.
11434
11435           Changed that ID list routines uses specific command identifier
11436           when sending WHOIS/IDENTIFY requests to the server so that they
11437           can be identified when the reply comes back.
11438
11439           Affected files lib/silcclient/command.[ch],
11440           lib/silcclient/client.c and lib/silcclient/idlist.[ch].
11441
11442         * Added `sender' argument to silc_server_packet_send_to_channel
11443           to indicaet the sender who originally sent the packet to us
11444           that we are now re-sending.  Ignored if NULL.  Affected file
11445           silcd/packet_send.[ch].
11446
11447         * Added some server statistics support in silcd/server_internal.h
11448           SilcServerStatistics structure and around the server code.  Also
11449           send some nice statistics information when client is connecting
11450           to the client.
11451
11452 Thu Feb  1 23:31:21 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
11453
11454         * Fixed channel ID decoding in server's JOIN command reply in
11455           silcd/command_reply.c
11456
11457         * Fixed braodcasting of replace ID payload to not to send it if
11458           we are standalone server in silcd/packet_receive.c.
11459
11460         * Fixed all channel message sending routines to not to send
11461           packets to clients that has router set, since they are routed
11462           separately in the same function earlier.  Affects file
11463           silcd/packet_send.c and all channel packet sending functions.
11464
11465         * In USERS reply, res_argv[i] are not allocated, the table
11466           is allocated.  Thus changed that free the table, not its
11467           internals.
11468
11469         * In server's whois_check and identify_check if the client is
11470           locally connected do not send any WHOIS commands - they are not
11471           needed.
11472
11473 Thu Feb  1 21:32:27 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
11474
11475         * Fixed some minor bugs in client when sending WHOIS command.  The
11476           arguments was in wrong order.
11477
11478         * Removed statis function add_to_channel from server in
11479           silcd/command.c that was previously used with the joining but
11480           is obsolete now.
11481
11482         * Tested USERS command in router environment successfully with two
11483           routers, two servers and two clients.
11484
11485 Thu Feb  1 00:54:26 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
11486
11487         * Reorganized the USERS command and command reply in client library
11488           in lib/silcclient/command.c and lib/silcclient/command_reply.c.
11489           When the command is given by user we register a pending command
11490           callback that will reprocess the command after the reply has been
11491           received from the server.  When reprocessing the packet we then
11492           display the information.  Thus, the USERS information is displayed
11493           now in the command callback instead of in the command reply
11494           callback.  The processing of the command is same as previously
11495           when server has sent the command reply in the JOINing process.
11496
11497         * Added to USERS command in silcd/command_reply.c to join the client,
11498           we didn't use to know about, to the channel after we've created
11499           a client entry for it.  Also, for clienet we did know already still
11500           check whether it is on the channel or not and add it if not.
11501
11502         * Removed silc_server_command_join_notify as the function and its
11503           use was obsolete.
11504
11505 Tue Jan 30 22:39:15 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
11506
11507         * Changed the client's pending command handling to the same as the
11508           server's pending command handling.  It is also now possible to
11509           execute command reply functions from other command reply
11510           function as the function callbacks for commands and command
11511           replies are one and same.  The pending commands are not static
11512           list anymore, it is mallocated SilcDList in lib/silcclient/client.h
11513           in client connection context.  Thus, pending commands are server
11514           connection specific as it is convenient.
11515
11516           Changed the function silc_client_command_pending and
11517           silc_client_command_pending_del and added new function
11518           silc_client_command_pending_check.  Removed the
11519           SILC_CLIENT_CMD_REPLY_EXEC, and SILC_CLIENT_PENDING_COMMAND_CHECK
11520           macros.
11521
11522         * Added cmd_ident, current command identifier, to the client
11523           connection context in lib/silcclient/client.h to keep track on
11524           command identifiers used in command sending.  Client's command reply
11525           function handling now supports the mandatory command identifiers.
11526
11527         * Added SILC_CLIENT_COMMAND_EXEC_PENDING macros to all command reply
11528           funtions in client to fully support pending command callbacks.
11529
11530         * NOTE: the name_list in USERS (old NAMES) command is NOT sent anymore
11531           as one of the arguments to the application in the command reply
11532           client operation.
11533
11534         * NOTE: The FORWARDED flag is depracated.  It used to be depracated
11535           before first releasing SILC but came back.  Now it is removed again
11536           and should come back nomore.  The FORWARDED flag was used only
11537           by the JOINing procedure by forwarding the command packet to router.
11538           Now, the JOINing procedure has been changed to more generic (due
11539           to various router environment issues) and FORWARDED is not needed
11540           anymore for anything.  The protocol specification is yet to be
11541           updated.
11542
11543           Now, removed silc_server_packet_forward from server and the flag
11544           SILC_PACKET_FORWARDED from lib/silccore/silcpacket.h.
11545
11546 Tue Jan 30 00:05:05 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
11547
11548         * Renamed NAMES command to USERS command.  The NAMES was named that
11549           due to historical reasons.  Now it is renamed.  Also, rewrote
11550           parts of the USERS command.  The nickname list is not sent anymore
11551           by the server.  Only Client ID and mode lists are sent in the USERS
11552           command.  Changed this also to the protocol specification.
11553
11554           The client now resolves the names and stuff after it receives
11555           the USERS list from the server when joining to the channel.
11556
11557         * WHOIS and IDENTIFY commands has been changed to support multiple
11558           Client ID's per command.  One can now search for multiple users
11559           in the network by sending only one WHOIS or IDENTIFY command.
11560           Changed the code and the protocol specifications.
11561
11562         * Removed silc_server_command_identify_parse and changed that IDENTIFY
11563           uses silc_server_command_whois_parse to parse the request. */
11564
11565         * If normal server, do not parse the WHOIS and IDENTIFY requests
11566           before sending it to the router.  Saves some time.
11567
11568 Sun Jan 28 16:19:49 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
11569
11570         * Fixed JOIN command on client library.  Wrong number of arguments
11571           used to crash the client.
11572
11573         * Added silc_server_channel_has_global function to check whether
11574           channel has global users or not.
11575
11576         * Added silc_server_channel_has_local function to check whether channel
11577           has locally connected clients on the channel.
11578
11579         * The silc_server_remove_from_one_channel now checks whether the
11580           channel has global users or not after given client was removed from
11581           the channel.  It also checks whether the channel has local clients
11582           on the channel anymore.  If it does not have then the channel entry
11583           is removed as it is not needed anymore.
11584
11585         * The silc_server_notify now checks on JOIN notify whether the joining
11586           client is one of locally connected or global.  If it is global then
11587           the channel has now global users on the channel and that is marked
11588           to the channel entry.  Also, it now saves the global client to
11589           global list who is joining and JOINs it to the channel.  This is
11590           for normal server, that is.
11591
11592           Changed silc_server_send_notify_on_channel,
11593           silc_server_packet_relay_to_channel and
11594           silc_server_packet_send_to_channel check if we are normal server
11595           and client has router set (ie. global client) do not send the
11596           message to that client, as it is already routed to our router.
11597
11598         * Implemented LEAVE notify type handling in silc_server_notify
11599           function.
11600
11601         * Tested LEAVE command in router environment successfully.  Tested
11602           with two routers, two servers and two clients.
11603
11604         * Updated TODO.
11605
11606         * idlist_find_xxx_by_id routines now dumps the ID on the debug mode.
11607
11608         * Implemented SIGNOFF notify type handling in silc_server_notify
11609           function.
11610
11611         * silc_server_remove_id now removes the client entry from all channels
11612           it has joined and thusly sends SIGNOFF notify type.
11613
11614         * Rewrote the NAMES list generation in server by removing two excess
11615           loops.  The lists are created now inside one loop.
11616
11617 Sat Jan 27 22:34:56 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
11618
11619         * silc_server_remove_channel_user checks now also global list
11620           for channel and client.
11621
11622         * silc_server_new_channel_user checks now both local and global
11623           list for channel and client.  Fixed a bug in client id decoding.
11624           Used to decode wrong buffer.
11625
11626         * silc_server_channel_message checks now both local and global
11627           list for channel entry.
11628
11629         * Tested channel joining (hence JOIN) in router environment
11630           successfully.  Tested with two routers, two servers and two
11631           clients.
11632
11633         * Tested channel message sending in router environment successfully.
11634
11635 Thu Jan 11 03:22:57 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
11636
11637         * Added silc_server_save_channel_key into server.[ch] to save the
11638           received channel key in Channel Key payload processing. It is
11639           also used in JOIN command reply handling.
11640
11641           Equivalent function silc_client_save_channel_key added into
11642           client.[ch] into client library.
11643
11644         * Changed JOIN command reply to send information whether the channel
11645           was created or not (is existing already) and the channel key
11646           payload.  Changed protocol specs accordingly.
11647
11648         * Fixed bugs in WHOIS and IDENTIFY command reply sending when
11649           the request was sent by ID and not by nickname.  Crashed on
11650           NULL dereference.
11651
11652 Sat Dec 23 21:55:07 EET 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
11653
11654         * Fixed a bug in Client library.  IDENTIFY and WHOIS reply functions
11655           now correctly save the received data.
11656
11657         * silc_server_free_sock_user_data now notifies routers in the
11658           network about entities leaving the network.
11659
11660           At the same time implemented functions silc_server_remove_id
11661           and silc_server_send_remove_id to receive and send REMOVE_ID
11662           packets.  The packet is used to notify routers in the network
11663           about leaving entities.  The ID removed will become invalid in
11664           the network.
11665
11666         * Added function silc_idlist_del_server into server. Removes and
11667           free's server entry from ID list.
11668
11669         * silc_server_private_message function now checks, if we are router,
11670           that the destination ID really is valid ID, naturally.
11671
11672         * In router when NEW_ID packet is received (for new client) the
11673           hash of the Client ID is saved in the ID Cache but the
11674           client->nickname is set to NULL, instead of putting the hash
11675           to it as well.
11676
11677           IDENTIFY command now also checks that client->nickname must be
11678           valid. If it is not if will request the data from the server who
11679           owns the client.  Added new function
11680           silc_server_command_identify_check.
11681
11682         * Added silc_command_set_command into lib/silccore/silcommand.[ch]
11683           to set the command to already allocated Command Payload.
11684
11685         * Tested private message sending in router environment with two
11686           routers, two servers and two clients.  Fixed minor bugs and now
11687           it works fine.
11688
11689         * Fixed segfault from client's NAMES command. Used to crash if
11690           not on any channel.
11691
11692         * Forwarded packets must not be routed even if it is not destined
11693           to the receiver.  Changed server code comply with this.
11694
11695 Sun Dec 17 14:40:08 EET 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
11696
11697         * Added `require_reverse_mapping' boolean value to ServerParams
11698           structure. If TRUE (not default) the server will require that
11699           the connecting host has fully qualified domain name.
11700
11701           If the reverse mapping is not required and hostname could not be
11702           found the IP address is used as hostname.
11703
11704 Sat Dec 16 17:39:54 EET 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
11705
11706         * Implemented version string checking to both client and server.
11707           The check is incomplete currently due to the abnormal version
11708           strings used in development version of SILC.
11709
11710         * Changed all command functions in server to use the new
11711           CHECK_ARGS macro.
11712
11713 Fri Dec 15 15:55:12 EET 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
11714
11715         * Changed char *data to unsigned char *data in ID Cache system to
11716           support binary data as ID Cache data. Changed code to support
11717           binary data in lib/silccore/idcache.c.
11718
11719         * Renamed silc_server_packet_relay_command_reply to
11720           silc_server_command_reply as it is normal packet receiving
11721           function. Rewrote the function to accept command replys for
11722           servers and not only for clients.
11723
11724         * Mark remote router always as registered server if we are connecting
11725           to it.  Otherwise, commands sent by the router to us are ignored.
11726
11727         * All ID List find routines now returns the ID Cache Entry pointer
11728           as well if requested.
11729
11730         * WHOIS command works now in router environment, tested with two
11731           routers, two servers and two clients.
11732
11733         * Cleaned up and rewrote IDENTIFY command. IDENTIFY should work now
11734           in router environment (as it is almost equivalent to WHOIS) but
11735           hasn't been tested thoroughly.  Added new functions:
11736
11737           silc_server_command_identify_parse
11738           silc_server_command_identify_send_reply
11739           silc_server_command_identify_from_client
11740           silc_server_command_identify_from_server
11741
11742         * Disabled route cache adding because adding two different ID's with
11743           same IP replaces the old cache entry thus giving wrong route.
11744           The entry->router->connection is always the fastest route anyway
11745           so route cache may not be needed.  Of course, new routes maybe
11746           established after receiving the ID when the entry->router->connection
11747           might not be anymore the most optimal.
11748
11749 Thu Dec 14 15:55:35 EET 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
11750
11751         * Add route cache for received ID for fast routing.
11752
11753         * Added silc_server_packet_route to route received packet on router
11754           that is not destined to us.
11755
11756         * Renamed silc_server_get_route to silc_server_route_get.
11757
11758         * Added id_string and id_string_len fields into SilcServer to
11759           include encoded ServerID for fast comparing without excess
11760           encoding of the ID's.
11761
11762         * Cleaned up WHOIS command on server side. Added following static
11763           functions:
11764
11765           silc_server_command_whois_parse
11766           silc_server_command_whois_check
11767           silc_server_command_whois_send_reply
11768           silc_server_command_whois_from_client
11769           silc_server_command_whois_from_server
11770
11771         * Added macro SILC_SERVER_COMMAND_CHECK_ARGC to check mandatory
11772           arguments in command replies. All command functions should be
11773           updated to use this macro.
11774
11775 Sun Dec 10 23:52:00 EET 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
11776
11777         * Minor typo fixes on command reply handling on server.
11778
11779 Tue Nov 28 11:05:39 EET 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
11780
11781         * Added silc_server_command_add_to_channel internal routine to add
11782           the client to the channel after router has created the channel and
11783           sent command reply to the server.
11784
11785         * Added generic silc_server_send_command to send any command from
11786           server.
11787
11788         * Use static buffer with ID rendering instead of duplicating data.
11789
11790 Mon Nov 27 21:39:40 EET 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
11791
11792         * Fixed a channel user mode bug when joining to a channel server gave
11793           everybody channel founder rights, oops.
11794
11795         * We mark ourselves as the router of the incoming server connection
11796           if we are router ourselves.  This way we can check in some packet
11797           sending functions whether it is locally connected server.  For
11798           incoming router connections we put NULL.
11799
11800         * For router sending packets locally means now always sending the
11801           packet cell wide; to local clients and local servers.  For normal
11802           server sending packet locally means sending it to only local
11803           clients.
11804
11805         * Fixed the JOIN command to really work in router environment.  If the
11806           channel is created it is always created by the router.  Router is
11807           also responsible of making the initial joining to the channel,
11808           sending JOIN notify to the sending server and distributing
11809           NEW_CHANNEL and NEW_CHANNEL_USER packets.  Hence, if the channel
11810           does not exist server doesn't do anything else but forward the
11811           command to the router which performs everything.
11812
11813         * Added silc_server_send_channel_key function to send the Channel Key
11814           payload.
11815
11816         * Added silc_server_create_channel_key to create new channel key.  The
11817           channel key is now re-generated everytime someone joins or leaves
11818           a channel, as protocol dictates.  Note: channel->key_len is the
11819           key length in bits.
11820
11821 Wed Nov 22 22:14:19 EET 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
11822
11823         * Splitted server.[ch] finally.  Created now packet_send.[ch] and
11824           packet_receive.[ch] to separate packet sending and receiving
11825           routines.  The server.[ch] now includes everything else including
11826           actual packet processing (writing and reading data) and other
11827           server issues.
11828
11829           Renamed silc_server_private_message_send_internal to
11830           silc_server_send_private_message.  The routine is still though
11831           used only to relay private messages as server does not send
11832           private messages itself.
11833
11834           Renamed silc_server_new_channel to silc_server_create_new_channel
11835           and added new function sicl_server_new_channel that handles the
11836           incoming New Channel packet.  Added also new sending function
11837           silc_server_send_new_channel to send New Channel Payload.
11838
11839         * Added new function silc_server_notify to process incoming notify
11840           packet to the server/router. Server may then relay the notify
11841           to clients if needed.
11842
11843         * Added new function silc_server_new_channel_user to process incoming
11844           New Channel User packet.  Router will redistribute the packet and
11845           send JOIN notify to its local clients and locally connected servers
11846           if needed.  Normal server will send JOIN notify to its local client
11847           on same channel when received this packet.  Added also corresponding
11848           sending function silc_server_send_new_channel_user to sent the
11849           payload.
11850
11851         * Added boolean route argument to send_notif_to_channel and
11852           packet_send_to_channel functions to attempt to route the packet
11853           if it is TRUE and send only locally if it is FALSE.
11854
11855 Tue Nov 21 19:49:31 EET 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
11856
11857         * silc_server_replace_id now broadcasts the received replace ID
11858           packet if it is not broadcast packet already. The router must
11859           broadcast to inform other routers about changed ID.
11860
11861         * Added backpointer to server's router into SilcServer context in
11862           silcd/server_internal.h.
11863
11864         * Fixed silc_server_packet_broadcast to send correct broadcast
11865           packets.
11866
11867         * The channel key is now distributed to the local client as soon
11868           as it is received from the router (in router environment) so that
11869           no other packet may be sent for the channel until client has
11870           received the key.
11871
11872         * silc_server_remove_channel_user now broadcasts the received
11873           Remove Channel User packet if it is not broadcast packet already.
11874           The router must broadcast to inform other routers about removed
11875           channel user.
11876
11877         * Added users field into SilcPacketContext that is a reference count
11878           of the context.  One can increase the reference count by calling
11879           silc_packet_context_dup which is now changed to just increase the
11880           reference count instead of duplicating the data.  The reference
11881           count is decresed by calling silc_packet_context_free that will
11882           free the data after the reference count hits zero.
11883
11884           For now on the packet context and everything allocated into it
11885           (including the raw packet from network) must be freed by calling
11886           the new silc_packet_context_free function.  Added also new function
11887           silc_packet_context_alloc that must be used now to allocate the
11888           context.  This also means that if a routine is asynchronous from
11889           silc_[client/server]_packet_parse_type the packet context must
11890           be duplicated by calling silc_packet_context_dup.  Otherwise it
11891           gets free'd after silc_[client/server]_packet_parse_type returns.
11892           Also, one must remember that if packet is duplicated then its
11893           reference count must be decresed by calling the free function as
11894           many times as it was duplicated.
11895
11896         * Changed SilcBuffer field from protocol contexts to SilcPacketContext
11897           from both client and server.
11898
11899 Mon Nov 20 23:47:03 EET 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
11900
11901         * Made joining to a channel working in router environment.
11902
11903         * Cleaned up JOIN command on server side and create function
11904           silc_server_command_join_channel internal routine to make the
11905           joining happen.
11906
11907 Thu Nov  9 21:12:39 EET 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
11908
11909         * Changed silc_command_pending list to SilcDList.  Also, added
11910           `ident' field to SilcServerCommandPending structure to identify
11911           the reply and to call correct callback.
11912
11913           Added silc_server_command_pending_check function to replace the
11914           corresnponding macro.  The silc_command_pending list is not
11915           extern anymore.
11916
11917         * Added silc_command_set_ident into lib/silccore/silccommand.[ch]
11918           to set identifier to previously allocated Command Payload.  It
11919           is used to set identifier for command when resending Command
11920           Payload.
11921
11922         * Added silc_command_payload_encode_payload to encode Command
11923           Payload buffer from SilcCommandPayload structure.
11924
11925         * Added silc_argument_payload_encode_payload to encode Argument
11926           payload buffer from SilcArgumentPayload structure.
11927
11928 Wed Nov  8 21:03:28 EET 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
11929
11930         * Changed WHOIS command to support router connection on server side.
11931           The whois request is always sent to router unless the server is
11932           standalone server.  After server has received the reply from the
11933           router will it send the reply to the client.
11934
11935         * Added silc_server_packet_broadcast into silcd/server.[ch] to
11936           broadcast received broadcast packet.  The function is used only
11937           by router.  The broadcast packet is always sent to the router's
11938           primary route.
11939
11940         * Added silc_id_render function in lib/silcutil/silcutil.[ch] to
11941           render given ID to printable string, for log files for example.
11942
11943 Tue Nov  7 22:14:19 EET 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
11944
11945         * Made basic router to router connections working.  At least they
11946           can now connect to each other but nothing really works the way
11947           they are supposed - yet.
11948
11949         * Added new initiator token to RouterConnection configuration
11950           file in silcd/serverconfig.[ch].  It is used to tell whether we
11951           are the initiator to the remote router or whether we'll expect
11952           the other end to connect.
11953
11954         * Moved registering of listener task to silc_server_init, hence
11955           the server starts listenning as soon as it is run, even if it
11956           does not have connections to other routers.  Let's see how well
11957           this will work.
11958
11959         * Changed default connection retry timeouts for more suitable in
11960           silcd/server.h.
11961
11962         * Removed cipher and such arguments from silc_idlist_add_client
11963           and silc_idlist_add_server prototypes from silcd/idlist.[ch].
11964           Added new function silc_idlist_add_data to add the keys and stuff
11965           to any ID entry.
11966
11967         * Added SilcIDListData structure and added it to SilcClientEntry
11968           and SilcServerEntry as their first field in the structure.  This
11969           way we can explicitly cast the ID entries to the SilcIDListData
11970           structure and get common data for the entries.  In past, we had
11971           to first check what type of connection it is and then cast it to
11972           correct ID entry type.  Now, we can directly cast the opaque
11973           pointer to the SilcIDListData (no matter what ID entry it actually
11974           is) and get the data needed.
11975
11976 Mon Nov  6 21:56:12 EET 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
11977
11978         * Wow, found a bug in scheduler.  The scheduler uninitialized itself
11979           in some circumstances even if threre were timeout tasks, though not
11980           IO tasks, but tasks anyway.  Now fixed.
11981
11982         * Defined SilcServerConnection structure to hold connection specific
11983           stuff about directly connected servers and routers.  The definition
11984           is currently in silcd/server_internal.h.  I thought about having
11985           a bit more important role fro this struct but for now it is used
11986           only when connecting to other server (or router actually).
11987
11988         * Added connecting retry support in server when connecting to
11989           router(s).  The retry feature implement exponential backoff
11990           algorithm.  Also, added SilcServerParams structure to hold default
11991           parameters for server.  For now, it include these retry settings
11992           and are hard coded.  After server is moded to be as Silc Server
11993           Library this structure will be more important.
11994
11995 Sun Nov  5 22:28:44 EET 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
11996
11997         * Changed client librarys channel->clients table to SilcList and
11998           changed code accordingly.
11999
12000 Thu Nov  2 16:28:01 EET 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
12001
12002         * Changed client's channel table to SilcList and changed code
12003           accordingly.  Also changed SilcChannelClientEntry to include back-
12004           pointer to the channel so that client entry can use that structure
12005           as list as well and we have fast cross-reference to the channel.
12006           This change dramatically decreased the complexity of channel
12007           handling with client entry and vice versa (removed one extra
12008           loop when searching for channel entry from many functions).
12009
12010         * Changed server->sim from table to SilcDList and changed code
12011           accordingly.
12012
12013         * NAMES command can now be used from user interface.  It will show
12014           the user list on the channel, neatly.
12015
12016         * Added realname pointer to SilcClientEntry in lib/silcclient/idlist.h.
12017           Code now saves realname of the user if it becomes available.
12018
12019         * Renamed configure.in to configure.in.pre and made ./prepare
12020           script to automatically add correct version string to
12021           configure.in which it creates from configure.in.pre.
12022
12023 Wed Nov  1 17:21:26 EET 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
12024
12025         * NAMES command reply now shows users mode with the nickname when
12026           joining to channel.
12027
12028         * Moved silc_client_ch[u]mode[_char] functions from
12029           silc/clientutil.[ch] to lib/silcclient/client.[ch].  Though, that
12030           place sucks, they are utility functions and should be in some
12031           other file.
12032
12033         * Fixed some unsigned int's to unsigned short's.  Patch by cras.
12034
12035         * Fixed contrib/getopt*.[ch] to not require config.h.  Patch by
12036           cras.
12037
12038 Tue Oct 31 20:10:37 EET 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
12039
12040         * Updated README.
12041
12042         * Added TRQ (efficient deque and list library) into lib/trq.  This is
12043           a very good list library that is currently used in the SILC.  Defined
12044           SilcList API over the library because I didn't like the API very
12045           much.  See lib/trq/silclist.h for the API and examples of how to
12046           use the API.  Fixed various places in the code to use the new
12047           SilcList API. The SilcList is meant for lists that has a structure
12048           already defined as a list.  It is not suitable to add just some
12049           context to the list (in TRQ, the context is the list actually).
12050
12051           So, I defined SilcDList that can be used for the purpose where
12052           predefined list structure does not exit.  This can be used as
12053           such list.  Now some context just can be added to the SilcDList.
12054           Currently this list is not used in the SILC just yet, though there
12055           are a lot places where this can replace dynamically allocated
12056           tables and I will fix these places, later, to use SilcDList.
12057           See lib/trq/silcdlist.h for SilcDList (they are all inline functions,
12058           and use TRQ internally).
12059
12060           Also fixed some annoying warning messages that the original TRQ
12061           code generated.  Also minor changes to TRQ's Makefile.in.
12062
12063         * Added support for querying by Client ID to both WHOIS and
12064           IDENTIFY commands into server, as required by the protocol.
12065
12066         * Removed method function pointers from SilcBuffer structure. They
12067           weren't used to anything and just increased the context size for
12068           no good reason.  This change also made silc_buffer_alloc and
12069           silc_buffer_free functions inline functions.
12070
12071         * Disabled command flooding detection support until it's fixed so
12072           that it accepts commands in but does not execute them more than once
12073           in two seconds.
12074
12075         * Added silc_net_localhost(), to return local hostname, into
12076           lib/silcutil/silcnet.[ch].  Also added client->hostname pointer
12077           that must be initialized before calling silc_client_init.
12078
12079         * Added new function: silc_server_send_notify_on_channels to send
12080           notify messages to all channels client has joined.  It is assured
12081           that the message is sent only once per client.
12082
12083         * Moved silc_log_format (from lib/silcutil/silclog.[ch] into
12084           lib/silcutil/silcutil.[ch] as silc_format function.  The new
12085           function is generic and is used by server as well, not only by
12086           the logging routines.
12087
12088         * Added new SKE status type: SILC_SKE_STATUS_BAD_VERSION to indicate
12089           the provided version string was not acceptable.  Added new function:
12090           silc_ske_check_version into lib/silcske/silcske.h.  The function
12091           must be implemented by the application (client or server) and it
12092           does not reside in the SKE library.  The function checks the version
12093           string remote end sent.
12094
12095         * Added back pointers (to opaque context and to SilcSocketConnection)
12096           into SilcPacketContext structure into lib/silccore/silcpacket.h.
12097
12098         * Added silc_packet_context_dup into lib/silccore/silcpacket.[ch] to
12099           duplicate packet context structure.
12100
12101         * Changed `notify' client operation to send same arguments as client
12102           receives from server except for ID's.  ID's are mapped to correct
12103           ID entry and that is returned.  Also, if channel entry is not sent
12104           by server but the notify is for channel the channel entry is sent
12105           to application (otherwise application doesn't know that it is for
12106           channel (library gets it from packet's Destination ID)).
12107
12108         * Added silc_client_remove_from_channels into client library to
12109           remove a client from all channels it has joined to.  Used when
12110           received SIGNOFF notify from server.  Added also new function
12111           silc_client_replace_from_channels to replace old ID entry with
12112           new ID entry on all channels.  Used when received NICK_CHANGE
12113           notify from server.
12114
12115         * Fixed ID Cache list handling in silc_idlist_get_client in
12116           lib/silcclient/idlist.c.  Also, added silc_idlist_get_client_by_id
12117           to get (or query) client by ID.
12118
12119         * Updated TODO list.
12120
12121         * Added connection authentication status message defined by the
12122           protocol: SILC_CONN_AUTH_OK and SILC_CONN_AUTH_FAILED and added the
12123           support for these into the code in client and server side.
12124
12125         * Added generic function silc_client_send_command to send any command
12126           with variable argument list.  Application should use this function
12127           to send commands if the command functions provided by the library
12128           does not suite for the application's user interface needs.
12129
12130         * Added new `failure' client operation.  Application is notified about
12131           received failure packet if client is executing a protocol.  In this
12132           case the protocol's execution has failed.
12133
12134         * Added SKE's end notify to send the SKE_SUCCESS notify message that
12135           is required by the protocol.
12136
12137         * Added SILC_PROTOCOL_STATE_FAILURE to indicate received failure
12138           packet from remote.  SILC_PROTOCOL_STATE_ERROR indicates local
12139           error at our end.
12140
12141         * Added status flag to SilcSKE object to indicate realtime status
12142           of the SKE protocol.
12143
12144         * Application receives now exactly same command reply arguments as
12145           the library receives from server.  However, if ID is received the
12146           corresponding ID entry is returned to the application (eg. Client
12147           ID is mapped to correct SilcClientEntry entry and that is returned).
12148           Changed command_reply client operation due to this change.
12149
12150         * Changed all ID's in commands and in command replys as ID Payloads.
12151           Change affected both client and server side codes.
12152
12153           All ID's sent in SILC network (with execption of ID's in SILC
12154           Packet header) are sent in ID Payload to support variable length
12155           ID's.
12156
12157         * Server now notifies nick changes and notifies all clients on
12158           the channels about the new nickname (about the new Client ID,
12159           actually).
12160
12161         * Implemented CMODE command to change channel modes. Supports all
12162           channel modes defined by the protocol specs except ban and invite
12163           lists. (Also, private channel key mode is supported but support for
12164           setting private channel key in client is missing, thus, this mode
12165           has no effect on client side (except that server requires that the
12166           client uses private channel key and normal channel traffic does not
12167           work anymore)).
12168
12169           Also, invite mode works per se, but INVITE command does not work
12170           yet correctly, so you can set channel as invite only channel but
12171           inviting clients to the channel does not work (it is yet to be
12172           thought what's the best way to do it).
12173
12174         * Added new command SILC_COMMAND_CUMODE to change user mode on the
12175           channel.  Defined user modes: CHANNEL_FOUNDER and CHANNEL_OPERATOR.
12176           Implemented CUMODE command to change user's mode on the channel.
12177           Supports all modes defined by the protocol specs.
12178
12179         * Added NAMES command reply to return users modes on the channel.
12180
12181         * Removed unnecessary and slow ciphers from lib/silccrypt.
12182
12183         * Set SO_KEEPALIVE option to connection sockets by default.
12184
12185         * Added new command reply status: SILC_STATUS_USER_NOT_ON_CHANNEL.
12186
12187         * Added notify types: MOTD, CMODE_CHANGE and CUMODE_CHANGE.  Also,
12188           redefined the Notify Payload into protocol specs.
12189
12190         * Added silc_id_payload_parse_id to get ID directly from raw
12191           ID payload data.
12192
12193 Mon Oct  9 20:57:02 EEST 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
12194
12195         * Changed SILC_COMMAND_IDENTIFY in protocol specification to
12196           accept searching by Client ID as well.
12197
12198         * Added support for LEAVE and SIGNOFF notify types in client library.
12199
12200         * Added silc_id_payload_parse_data into lib/silccore/silcpayload.[ch]
12201           to parse ID Payload from raw data.
12202
12203 Sun Oct  8 19:33:08 EEST 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
12204
12205         * Added flags parameter into silc_ske_assemble_security_properties
12206           function in lib/silcske/silcske.[ch].
12207
12208         * Changed notify client operation to fit better for notify messages
12209           sent by server.  The notify payload received from server is now
12210           passed to the application (after parsing it to SilcNotifyPayload).
12211           It is application's responsibility to retrieve the arguments
12212           from the payload and show the message the way it wants.  The message
12213           sent by server is implementation specific.
12214
12215         * Changed public keys to comply with the protocol specification.
12216           Old public keys are not supported anymore and are not compatible.
12217
12218         * Removed nickname from Channel Payload as the latest draft removed
12219           it.  The client must resolve the nickname from the NAMES command
12220           reply received when it joined the channel.
12221
12222           Also, changed all channel_xxxx_payload to channel_payload_xxxx.
12223
12224 Sat Oct  7 21:55:01 EEST 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
12225
12226         * Fixed some errors in protocol specification drafts.
12227
12228         * Created lib/silccore/silcnotify.c to implement Notify Payload
12229           encoding and decoding, lib/silccore/silcpayload.[ch] to implement
12230           generic payloads described by protocol specifications.  The file
12231           includes implementations for ID Payload and Argument Payload.
12232
12233         * Changed Command Payload implementation to use the new Argument
12234           Payload.  Changed command_xxxx_payload to command_payload_xxxx
12235           to comply with SILC coding conventions.
12236
12237         * Added suppport for Argument Payload handling in Notify Payload
12238           implementation as protocol requires it.  Added the new support
12239           into server and client lib as well.
12240
12241 Thu Oct  5 21:16:28 EEST 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
12242
12243         * Added support for multiple nicknames on same channel.  [n] is
12244           added locally to the nickname if there are more than one same
12245           nicknames on the channel.
12246
12247         * Server now sends all nicknames that matched WHOIS request.
12248           Client also shows the list received from server.
12249
12250         * Added TOPIC command to client side.  User can now set and show
12251           current topic on channel.
12252
12253         * Added MOTD command to client and server.  Also, server sends the
12254           motd when client connects to the server.
12255
12256         * Changed version strings to comply ISO 8601.
12257
12258 Wed Oct  4 23:29:06 EEST 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
12259
12260         * Fixed protocol error handling in client library.  It should now
12261           cope even if the SKE fails for some reason.
12262
12263         * Made new protocol specification drafts for submitting to IETF.
12264
12265         * Implemented TOPIC command to server in silcd/command.c.
12266
12267         * Added two new notify types into lib/silccore/silcnotify.h:
12268           SILC_NOTIFY_TYPE_NICK_CHANGE and SILC_NOTIFY_TYPE_TOPIC_SET to
12269           notify nickname change and topic setting/change on a channel.
12270
12271         * API change of command_reply operation in client library.  The
12272           application gets now the status type received from server as well.
12273
12274 Sat Sep 30 16:57:42 EEST 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
12275
12276         * Removed the function just added to lib/silcutil/silcschedule.[ch].
12277
12278         * Cras fixed and optimized the packet handling even further and
12279           it should work now.  Minor change to the prototype of function
12280           silc_packet_receive_process in lib/silccore/silcpacket.[ch].
12281
12282 Sat Sep 30 08:48:47 EEST 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
12283
12284         * Added new function into lib/silcutil/silcschedule.[ch]:
12285           silc_schedule_with_fd to select() a specified fd.  The function
12286           returns after timeout expires or data arrives or goes.  The
12287           function is used by packet routines to wait that all data is
12288           received from network.
12289
12290         * Fixed data reading from network in lib/silccore/silcpacket.c.
12291           The code now assures that all data is read from the fd and then
12292           continues packet processing.  This was a bug fix since the code
12293           used to drop some data in some circumstances.
12294
12295         * Added new function into lib/silcclient/client.[ch]:
12296           silc_client_start_key_exchange to start key exchange after
12297           connection has been established to server.  The code internally
12298           now uses this funtion but its main purpose was to provide it
12299           for applications that perform their own connecting.  After
12300           application has created a connection it merely calls this
12301           function to start the key exchange between client and server.
12302           The library takes care of everything else after that.
12303
12304           Updated also lib/silcclient/README to explain the usage of
12305           this new function.
12306
12307         * Do not send to application information that connection has
12308           been established.  Application gets notified it by connect
12309           operation anyway.
12310
12311 Thu Sep 28 23:40:19 EEST 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
12312
12313         * Applied cras's patch to add silc_schedule_one function.  The
12314           function runs scheduler once and returns.
12315
12316         * Fixed the scheduler after cras messed it up.  The timeout
12317           handling works now as it's supposed to work.
12318
12319         * Added into lib/silccore/ silcnotify.h to include notify
12320           message types support.  Changed silc_server_send_notify*
12321           functions, in server.[ch], to support those new notify types.
12322           Added the support for the notify types into client library,
12323           as well.  Added new notify client operation into ops.h in
12324           lib/silcclient/.
12325
12326         * Changed silc_server_packet_send_to_channel to send normal
12327           packets instead of just channel message packets.  The function
12328           is now used to send the notify packets to channels.  It is not
12329           used to send channel message packets anymore, as server never
12330           sends them anymore.
12331
12332         * Added explicit casting into lib/silcutil/silcbuffmt.c to few
12333           va_arg()s as it seems to require it nowadays.  I guess, if SILC
12334           is compiled with older va_arg() the new code should work anyway.
12335
12336 Wed Sep 13 18:10:14 EEST 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
12337
12338         * Splitted core library.  Core library (lib/silccore) includes
12339           now only SILC protocol specific core (and common) components.
12340           Created new utility library (lib/silcutil) that includes more
12341           generic purpose stuff.  The stuff for util library was taken
12342           from the old core library.  This was minor and easy split.
12343
12344         * Created SILC Client Library (lib/silcclient) that includes
12345           implementation of the SILC client without user interface.  This
12346           was major move from silc/ directory.  The code has been changed
12347           so that it is transparent towards the user interface.  The
12348           silc/ directory includes now the same user interface as before
12349           and it uses the new client library.  Read lib/silcclient/README.
12350           Basicly, the client library performs everything else related
12351           to SILC except user interface handling.  Also, configuration
12352           files are considered to be part of user interface and library
12353           does not handle them.
12354
12355           This change also changed a lot of structures, function naming etc.
12356           Most important change was that SilcClientWindow object was
12357           renamed to SilcClientConnection in the client library.  Created
12358           also new file lib/silcclient/ops.h.  Also added new files
12359           silc/local_command.[ch] and silc/client_ops.[ch].
12360
12361           All these changes were made to make it easier for user interface
12362           designers to create what ever user interface for the SILC client
12363           they want.
12364
12365           It is also expected that the server will be moved to lib
12366           directory as well and SILC Server Library will be created;
12367           sometimes in the future.
12368
12369         * Removed Local commands from lib/silccore/silccommand.h as
12370           they are application specific and new client library does not
12371           handle any of those anymore.
12372
12373         * Several functions moved to lib/silcutil/silcutilc.[ch] from
12374           old client implementation in silc/.
12375
12376         * Added support for callback functions in SILC_LOG_* macros.
12377           Application can now set its own callbacks that will be called
12378           instead of using the default functions that will always print
12379           the debug messages to stderr (or stdout).  Also, debugging can
12380           now be disabled by setting silc_debug to FALSE and re-enabled by
12381           setting it to TRUE.  Note, that logging will still work even
12382           if debugging is disabled.
12383
12384           New functions in lib/silcutil/silclog.[ch]: silc_log_set_callbacks,
12385           silc_log_reset_callbacks, silc_log_set_debug_callbacks and
12386           silc_log_reset_debug_callbacks.
12387
12388         * To enable debugging in silc client one must give now -d
12389           option on command line.
12390
12391         * Changed silc_schedule_init to automatically allocate task queues
12392           if they are not allocated before calling it.
12393
12394 Thu Sep  7 10:49:33 EEST 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
12395
12396         * Added GMP 3.1 into math library.
12397
12398 Sun Aug 20 21:27:26 EEST 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
12399
12400         * Added SILC_PACKET_REMOVE_CHANNEL_USER to remove a client from
12401           a channel in SILC network.  The packet is used by servers and
12402           routers to notify other routers that user has left a channel.
12403           This little feature was missing until now.  Added the feature
12404           to protocol specification as well.
12405
12406           Added functions: silc_server_send_remove_channel_user and
12407           silc_server_remove_channel_user into server.[ch].
12408
12409         * Added SILC_PACKET_REKEY and SILC_PACKET_REKEY_DONE into
12410           lib/silccore/silcpacket.h.  However, they are not implemented
12411           yet.
12412
12413 Sat Aug 19 23:04:16 EEST 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
12414
12415         * Fixed joining to a channel and sending channel messages
12416           between server and router.  The channel message sending should
12417           now work inside a cell.
12418
12419 Tue Jul 25 20:46:13 EEST 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
12420
12421         * Fixed the private message sending between server and router.
12422           The private message sending should now work inside a cell.
12423
12424         * Added silc_server_replace_id into server.[ch] to replace
12425           existing ID in the SILC network.
12426
12427         * Added silc_idlist_find_server_by, silc_idlist_replace_client_id
12428           and silc_idlist_replace_server_id into idlist.[ch] in server.
12429
12430 Mon Jul 24 18:33:31 EEST 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
12431
12432         * Fixed the server to server connections.  Server can again now
12433           connect to router.  Router to router connections probably does
12434           not work just yet.
12435
12436 Thu Jul 20 13:15:01 EEST 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
12437
12438         * Added dynamic protocol registering support.  Now protocols can
12439           registered and unregistered on the fly.  Patch by cras.
12440
12441 Wed Jul 19 19:08:46 EEST 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
12442
12443         * Added lib/contrib directory to hold routines that some platforms
12444           don't have but are needed by SILC.
12445
12446         * Added getopt.c, getopt1.c and getopt.h from GNU C library
12447           into lin/contrib to provide getopt() and getopt_long() for
12448           those who don't have it.
12449
12450 Tue Jul 18 20:41:20 EEST 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
12451
12452         * Added AWAY command to client.  When away message is set and
12453           client receives a private message packet the client automatically
12454           replies to the sender with the away message.
12455
12456         * Fixed a bug in lib/silcmath/mpbin.c: silc_mp_mp2bin.  This
12457           bug seemed to be the cause of recent problems when compiling
12458           with gcc-2.95.
12459
12460         * Added version detection support to SKE protocol specification
12461           and added the new changes to the SKE implementation as well.
12462           There were other minor changes in the SKE protocol as well.
12463
12464           Many changes in lib/silcske/silcske.[ch] and in
12465           lib/silcske/payload.[ch].
12466
12467         * Added ^U functionality, clear input line.  Patch from cras.
12468
12469 Mon Jul 17 23:33:26 EEST 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
12470
12471         * Mainly small bugfixes on core library.  Fixed some debugging
12472           logging and buffer overflow in silclog.c.
12473
12474         * Updated config.sub and config.guess on the distribution tree.
12475
12476 Sat Jul 15 15:33:48 EEST 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
12477
12478         * Added command lagging support in server. Client may execute
12479           commands now only once in two seconds.
12480
12481 Thu Jul 13 22:10:21 EEST 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
12482
12483         * Optimized packet reception. MAC computation and checking is now
12484           also more optimized.  A lot previously duplicated code is now
12485           used as generic by both client and server.
12486
12487         * Fixed key pair generation in clientutil.c
12488
12489 Wed Jul 12 18:28:07 EEST 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
12490
12491         * Added into lib/silccore/silcbufutil.[ch] new function;
12492           silc_buffer_realloc.
12493
12494         * Moved generic packet sending/encryption functions to
12495           lib/silccore/silcpacket.[ch] from client and server.  Some
12496           rewriting of the functions.
12497
12498         * Moved all generic packet reception/decryption functions to
12499           lib/silccore/silcpacket.[ch] from client and server.  The
12500           packet processing is now much cleaner in both client and server.
12501           These were major changes in both client and server.
12502
12503         * Created many common functions in server to do packet sending.
12504           Previously code were duplicated a lot, this has been removed
12505           with these changes.
12506
12507 Tue Jul 11 20:27:26 EEST 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
12508
12509         * Rewrote major parts of the ID cache system.  Don't know
12510           whether it is better now or not but at least the API is more
12511           cleaner now.
12512
12513         * Major rewrite on ID cache stuff on client because of the ID
12514           cache API changes.  Added idlist.c to client.
12515
12516         * Also major rewrite on ID cache stuff on server as well.
12517           Major rewrite of idlist.[ch]. SilcXXXList's are now named
12518           SilcXXXEntry's.  We won't keep anymore idlist specific pointers
12519           in hand, instead they are all put into the ID cache system now.
12520           All server_idlist_* routines uses ID cache now instead of
12521           traversing its own lists (those lists does not exist anymore).
12522           SilcIDList though still exists.  Also, SilcXXXEntry's are
12523           now pointers.
12524
12525 Sun Jul  9 15:19:24 EEST 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
12526
12527         * Finally made the SKE implementation compliant to the protocol
12528           specification.  All mp integers are now binary encoded as
12529           opposed being HEX encoded.
12530
12531         * Added lib/silcmath/mpbin.[ch].  Encoding mp intergers to and
12532           from binary data.
12533
12534         * Added into lib/silccore/silcutil.[ch] PEM encoding/decoding
12535           functions: silc_[encode/decode]_pem.  Also added function
12536           silc_encode_pem_file to PEM encode with newlines ('\n') for
12537           saving into a file.
12538
12539         * SILC public keys are now encoded either PEM or binary.  Same
12540           option is for private keys as well.  By default private keys
12541           are binary encoded and public keys PEM encoded.  Silly HEX
12542           encoding were removed.
12543
12544         * Added into lib/silccrypt/silchash.[ch] silc_hash_fingerprint
12545           function to create fingerprints.
12546
12547         * Fixed a bug in SHA1; does not change the original data anymore.
12548
12549         * Partly implemented INFO command on client and server side.
12550           Fixed CLEAR command.  Changes to SERVER command; show current
12551           server(s) when giving command without arguments.  Added
12552           VERSION command to client.
12553
12554         * Added check to server that unregistered connections cannot
12555           execute commands (unless it is specificly allowed).
12556
12557 Thu Jul  6 18:12:24 EEST 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
12558
12559         * Fixed screen refresh.
12560
12561         * Fixed channel joining bug from client.  On some circumstances
12562           client tried to join to a channel it had already joined.
12563
12564         * Added public key verification process into client's protocol.c.
12565           The client now verifies the public key from user and saves
12566           it into ~./silc/serverkeys/ directory.
12567
12568           Added into: clientutil.[ch]: silc_client_verify_server_key.
12569
12570         * Changed SKE protocol's silc_ske_initiator_finish function
12571           to accept callback function that verifies the received public
12572           key.  Removed old silc_ske_verify_public_key function.
12573
12574 Wed Jul  5 19:19:02 EEST 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
12575
12576         * Added into silcpkcs[ch]: silc_pkcs_public_key[_data]_set and
12577           silc_pkcs_private_key[_data]_set.
12578
12579         * Made the password and public authentication more cleaner in
12580           server's protocol.c.
12581
12582         * Removed historic and obsolete protocol `channel_auth' from
12583           both client and server.
12584
12585         * Removed wrong way of sending command status messages from
12586           server to client in server's command.c.  The old way violated
12587           protocol specification.
12588
12589           Changes to silccore/silccommand.[ch]: removed
12590           silc_command_encode_status_payload -> not needed anymore,
12591           changed silc_command_encode_payload_va to accept extra
12592           argument on variable argument list.  The argument type must
12593           now be provided to the function.  Also, added new function:
12594           silc_command_encode_reply_payload_va which is same as
12595           normal command_encode_payload_va except command status type
12596           is provided as extra argument.
12597
12598 Tue Jul  4 18:26:39 EEST 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
12599
12600         * Added ~./silc directory handling.  The directory includes the
12601           public and private keys for the client.
12602
12603           Added silc_client_check_silc_dir, silc_client_create_identifier
12604           and silc_client_load_keys.
12605
12606         * Implemented SILC protocol compliant public key.  Added public
12607           and private key saving to and loading from files.
12608
12609           Added into silcpkcs.[ch]: silc_pkcs_encode_identifier,
12610           silc_pkcs_public_key_encode[_data], silc_pkcs_public_key_decode,
12611           silc_pkcs_private_key_encode[_data], silc_pkcs_private_key_decode,
12612           silc_pkcs_public_key_alloc, silc_pkcs_public_key_free,
12613           silc_pkcs_private_key_alloc and silc_pkcs_private_key_free.
12614
12615           Implemented: silc_pkcs_save_[public/private]_key[_data] and
12616           silc_pkcs_load_[public/private]_key.
12617
12618 Mon Jul  3 18:51:27 EEST 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
12619
12620         * Added silc_server_get_route (route.[ch]) to get connection
12621           data for the fastest route for given ID.
12622
12623         * Implemented INVITE command on client and server.  The command
12624           were re-defined in the SILC Protocol Specification and the
12625           implementation now complies with the specification.
12626
12627         * Implemented PING command on client and server.
12628
12629         * Implemented NAMES command on client and server.  The server side
12630           supports currently only normal server not router server yet.
12631           Some changes to NAMES definition in SILC protocol specification.
12632
12633 Sun Jul  2 18:23:01 EEST 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
12634
12635         * Implemented LEAVE command on client and server.
12636
12637         * Previously deprecated SILC_PACKET_FORWARDED flag is now in use
12638           again.  This change was made to the protocol as well.  Server
12639           should not violate the protocol specification anymore.
12640
12641 Fri Jun 30 14:03:26 EEST 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
12642
12643         * Added SOCKS4 and SOCKS5 support to SILC client.  SOCKS5
12644           was tested.  SOCKS4 was not but should work anyway.