Sun Mar 11 15:22:42 CET 2007 Jochen Eisinger <coffee@silcnet.org>
authorJochen Eisinger <coffee@silcnet.org>
Sun, 11 Mar 2007 14:23:14 +0000 (14:23 +0000)
committerJochen Eisinger <coffee@silcnet.org>
Sun, 11 Mar 2007 14:23:14 +0000 (14:23 +0000)
* Import perl script for sign_messages from silc-plugin.  Affected
  file apps/irssi/scripts/silc.pl

1  2 
CHANGES
apps/irssi/scripts/Makefile.am
apps/irssi/scripts/silc.pl

diff --combined CHANGES
index 7f3432386d46da742e296712bbc90db4faafd7da,0000000000000000000000000000000000000000..183039dd1bdf2ae669637d95164376e785e94080
mode 100644,000000..100644
--- /dev/null
+++ b/CHANGES
@@@ -1,12031 -1,0 +1,12036 @@@
++Sun Mar 11 15:22:42 CET 2007  Jochen Eisinger <coffee@silcnet.org>
++
++      * Import perl script for sign_messages from silc-plugin.  Affected
++        file apps/irssi/scripts/silc.pl
++
 +Sun Mar 11 15:19:10 CET 2007  Jochen Eisinger <coffee@silcnet.org>
 +
 +      * Only wait for a nick on connecting, when it differs
 +        (not counting case) from the username.  Affected file
 +        is apps/irssi/src/silc/core/silc-servers.c
 +
 +Sun Mar 11 13:50:53 CET 2007  Jochen Eisinger <coffee@silcnet.org>
 +
 +      * Use time settings for lag settings.  Affected file is
 +        apps/irssi/src/silc/core/silc-lag.c
 +
 +Wed Feb 21 17:01:01 EET 2007  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Fixed WHOIS command and requested attributes handling in
 +        client library.  Affected files are lib/silcclient/command.c
 +        and lib/silcclient/client_attrs.c.
 +
 +      * Fixed silc_time_value to actually work.  Added new function
 +        silc_timezone.  Affected files are lib/silcutil/silctime.[ch].
 +
 +Tue Feb 20 08:31:28 EET 2007  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * SILC Client 1.1 beta2.
 +
 +Mon Feb 19 16:06:27 EET 2007  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Fixed client to properly abort TCP stream creation when
 +        giving /QUIT.  Affected file 
 +        apps/irssi/src/silc/core/silc-servers.c.
 +
 +      * Fixed several connecting aborting crashes from the client
 +        library, packet engine and socket stream.  Affected files
 +        are in lib/silclient/, lib/silccore/silcpacket.c and
 +        lib/silcutil/unix/silcunixsocketstream.c.
 +
 +      * Fixed private key export double free crash in key generation.
 +        Affected file is lib/silccrypt/silcpk.c.
 +
 +      * Fixed FSM event waiting when there are multiple signallers
 +        and the waiter goes away after the first signal.  Affected
 +        file in lib/silcutil/silcfsm.c.
 +
 +Sun Feb 18 22:02:22 EET 2007  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Fixed FSM event signalling to check if the waiter has gone
 +        away already.  Affected file is lib/silcutil/silcfsm.c.
 +
 +      * Fixed counter mode encryption/decryption to handle non-padded
 +        SILC packets correctly.  The silc_cipher_set_iv now
 +        in counter mode resets for a new block.  Affected files are
 +        in lib/silcske/, lib/silccrypt/, lib/silcpacket/.
 +
 +Sun Feb 18 12:15:21 EET 2007  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * SILC Client 1.1 beta1.
 +
 +      * Memory leak fixes around the libraries.
 +
 +Fri Feb 16 16:53:16 EET 2007  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Added better check for epoll() in configure.  Affected file
 +        is lib/configure.ad.
 +
 +Thu Feb 15 16:50:34 EET 2007  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Fixed per scheduler data input buffer in packet engine.  Use
 +        list of inbufs instead of just one so that multiple streams
 +        can do partial reads to different buffers.  Affected file is
 +        lib/silccore/silcpacket.c.
 +
 +      * Fixed WATCH notify handling in client library.  Affected file
 +        is lib/silcclient/client_notify.c.
 +
 +Wed Feb 14 17:05:38 EET 2007  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Fixed packet wrapper stream API to support encoder/decoder
 +        for packets, and to handle partial reading correctly.  Fixed
 +        also inbuf size checking in reading to have enough space before
 +        reading.  Affected files are lib/silccore/silcpacket.[ch].
 +
 +      * Rewrote file transfer in client library.  Affected files are
 +        in lib/silcclient/.
 +
 +      * Added TCP/UDP listener (internal) API to client library to have
 +        generic way of dealing with listeners.  Fixed Key Agreement and
 +        file transfer to use it.  Affected files are in lib/silcclient/.
 +
 +      * Fixed SKE to process SUCCESS packets synchronously and to call
 +        completion synchronously.  Affected file is lib/silcske/silske.c.
 +
 +      * Fixed pthread rwlock detection.  Affected file includes/silc.h.in.
 +
 +      * Implemented SILC_ATTRIBYUTE_PHONE_NUMBER.  Affected files are
 +        lib/silccore/silcattrs.[ch].  SILC Protocol version 1.3 change.
 +
 +Fri Feb  2 22:24:11 EET 2007  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Added support for SILC protocol version 1.3 NEW_CLIENT packet
 +        to client library.  Affected file is
 +        lib/silcclient/client_register.c.
 +
 +      * Serialize NICK and JOIN commands to avoid problems locally
 +        with changing ID while joining to channel.  Affected file is
 +        lib/silcclient/command.c.
 +
 +      * Fixed entry resolving while handling incoming JOIN notify.
 +        Handle properly cases, in re-processing of notify packets, where
 +        the IDs may become invalid while resolving the entry (like nick
 +        change).  Entry is invalid if it doesn't have nickname, and such
 +        entries are not delivered to application anymore.  These fixes
 +        problems of not seeing JOINs when remote user changes nickname
 +        at the same time.  Affected files are in lib/silcclient/.
 +
 +Thu Feb  1 18:35:58 EET 2007  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Added support for computing message payload MAC in new way
 +        (SILC Protocol version 1.3).  Bakcwards support for old way
 +        remains.  Affected files are lib/silccore/silcmessage.[ch].
 +
 +Sat Jan 27 22:37:30 EET 2007  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Added SilcRwLock API, a read/write lock.  Affected files are
 +        lib/silcutil/silcmutex.h and in lib/silcutil/[unix|win32|symbian]/.
 +
 +Wed Jan 24 18:55:21 EET 2007  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Merged Irssi SVN (irssi 0.8.11).  Affected files in apps/irssi/.
 +
 +Tue Jan 23 16:05:27 EET 2007  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * The silc_schedule_set_listen_fd now returns boolean value.
 +        Fixed FD task adding to check correctly for already added
 +        FD tasks.  Added stricter error checking for FD scheduling
 +        with epoll().  Affected files are lib/silcutil/silcschedule.[ch]
 +        and lib/silcutil/unix/silcunixschedule.c.
 +
 +      * The silc_stream_set_notifier now returns boolean value.  Changed
 +        all streams to support and check for the error condition.
 +        Affected files are in lib/silcutil/.
 +
 +      * Fixed SKE library session aborting and deletion.  Affected
 +        file are lib/silcske/silcske.c.
 +
 +Tue Jan 16 18:22:08 EET 2007  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Implemented PKCS #1 with appendix with hash OID in the
 +        signature.  Affected files are lib/silccrypt/silcpkcs1.[ch],
 +        lib/silccrypt/silchash.[ch] and
 +        lib/silcasn1/silcasn1[_encode|decode].[ch].
 +
 +Sun Jan 14 23:12:41 EET 2007  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Added support for Version (V) SILC public key identifier.
 +        Affected files are lib/silccrypt/silcpk.[ch].
 +
 +Tue Jan  9 19:37:51 EET 2007  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Rewrote connection auth request in client library.  It is now
 +        done automatically by the library and the resolved method given
 +        as a hint to get_auth_method client operation.  Affected files
 +        are lib/silcclient/.
 +
 +Wed Jan  3 18:06:33 EET 2007  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Added silc_packet_stream_wrap into lib/silccore/silcpacket.[ch].
 +        It can be used to wrap SilcPacketStream into SilcStream.
 +
 +      * Fixed %p formatting from silc_snprintf.  Affected file is
 +        lib/silcutil/silcsnprintf.c.
 +
 +      * Ported SFTP library to new utility library.  Ported also
 +        the SFTP testers.  Affected files in lib/silcsftp/.
 +
 +Tue Jan  2 17:18:46 EET 2007  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Added lib/silcutil/silcsnprintf.[ch].  Added in addition
 +        of silc_snprintf, silc_vsnprintf, silc_asprintf and
 +        silc_vasprintf.
 +
 +Sat Dec 30 23:23:17 EET 2006  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Added preliminary Symbian support.  Changes around the source
 +        tree.  The symbian/ directory now includes Carbide.c++ project
 +        files to compile the sources.
 +
 +      * Added silc_snprintf.  Affected files are
 +          lib/silcutil/silcstrutil.[ch].
 +
 +Thu Dec 21 18:01:51 EET 2006  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Changed SILC_FSM_[CONTINUE|YIELD|WAIT|FINISH] enums to
 +        macros.  SILC_FSM_CONTINUE macro now immediately calls the
 +        next state instead of first returning back to FSM.  Helps
 +        in debugging crashes etc.
 +
 +          Removed FSM Semaphores.  Introduced FSM Event which is
 +        asynchronous event.   Affected files are in lib/.
 +
 +      * Added epoll(7) support to SILC Scheduler.  It is used by default
 +        if it is available.  Affected files are
 +        lib/silcutil/silcschedule.[ch],
 +        lib/silcutil/unix/silcunixschedule.c.
 +
 +Tue Dec 19 20:39:35 EET 2006  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Added CTR mode to AES.  Simplified cipher implementation API
 +        more.  Affected files are in lib/silccrypt/.
 +
 +Sun Dec 17 16:46:55 EET 2006  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Removed `detach' client operation.  The detachment data is
 +        now delivered in SILC_COMMAND_DETACH command reply to
 +        application.  Affected file in lib/silcclient/.
 +
 +      * Rewrote resuming/detaching in client library.
 +
 +      * Added boolean encryption indicator for silc_cipher_set_key.
 +        Affected files lib/silccrypt/silccipher.[ch].
 +
 +Wed Dec 13 18:05:50 EET 2006  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Added silc_likely and silc_unlikely macros for GCC branch
 +        prediction optimizations.  Affected file lib/silcutil/silctypes.h.
 +
 +      * Added assembler AES optimization.  Cleaned up the SILC Cipher
 +        implementation API.  Affected files are in lib/silccrypt/.
 +
 +Tue Dec 12 18:56:14 EET 2006  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Changed back the SILC_FSM_THREAD_WAIT operation to not
 +        continue to next state if thread is finished already.  That
 +        check is not done anymore.  Affected files are
 +        lib/silcutil/silcfsm.[ch].
 +
 +Sun Dec 10 13:54:52 EET 2006  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Removed silc_packet_[get|set]_ciphers and
 +        silc_packet_[get|set]_hmacs.  Added silc_packet_set_keys that
 +        handle REKEY_DONE packet sending in rekey.  Affected files
 +        are lib/silccore/silcpacket.[ch].
 +
 +      * Added silc_fsm_is_started.  Affected files are
 +        lib/silcutil/silcfsm.[ch].
 +
 +      * Added settings sign_channel_message, sign_private_message
 +        and key_exchange_rekey_pfs to SILC Client.  Added UDP transport
 +        support for key agreement in /KEY command. Affected files
 +        in apps/irssi/src/silc/core/.
 +
 +      * During SILC Client initialization forward log messages to
 +        stderr.   Affected files in apps/irssi/src/silc/core/.
 +
 +Thu Dec  7 19:07:21 EET 2006  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Added silc_ske_get_key_material.  Affected files are
 +        lib/silcske/silcske.[ch].
 +
 +      * Added silc_packet_stream_is_udp.  Affected files are
 +        lib/silccore/silcpacket.[ch].
 +
 +      * Added SKE packet retransmission support with UDP transport.
 +        Affected file is lib/silcske/silcske.c.
 +
 +Sun Dec  3 22:00:12 EET 2006  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Added silc_socket_stream_is_udp.  Affected file is
 +        lib/silcutil/silcsocketstream.[ch].
 +
 +      * Added UDP transport support to packet engine.  Affected file
 +        is lib/silccore/silcpacket.c.
 +
 +      * Added silc_socket_stream_is_udp.  Affected file is
 +        lib/silcutil/silcsocketstream.[ch].
 +
 +Sat Nov 18 11:33:03 EET 2006  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Added silc_packet_send_va[_ext] to send variable argument
 +        formatted buffers.  Affected files lib/silcore/silcpacket.[ch].
 +
 +      * Timeout freelist garbage collection added to scheduler.
 +        Affected file lib/silcutil/silcschedule.c.
 +
 +Thu Nov  9 18:12:15 EET 2006  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Added silc_show_public_key_file to
 +        lib/silcapputil/silcapputil.[ch].
 +
 +      * Added SILC_STR_ADVANCE support for buffer unformatting.
 +        Affected file lib/silcutil/silcbuffmt.c.
 +
 +Tue Nov  7 18:04:36 EET 2006  Pekka Riikonen <priikone@silcnet.org
 +
 +      * Added silc_string_split to lib/silcutil/silcstrutil.[ch].
 +
 +      * Added silc_mutex_assert_locked to lib/silcutil/silcmutex.h.
 +
 +      * silc_fsm_continue[_sync] now cancels erlier timeout set with
 +        silc_fsm_next_later.  Affected file lib/silcutil/silcfsm.c.
 +
 +Sat Nov  4 21:50:37 EET 2006  Pekka Riikonen <priikone@silcnet.org
 +
 +      * Added SILC_STR_FUNC to buffer format API.  Affected files
 +        are lib/silcutil/silcbuffmt.[ch].
 +
 +      * Added silc_buffer_[s]enlarge to lib/silcutil/silcbuffer.h.
 +
 +      * No more memory allocation for message payload parsing.
 +        Pre-allocated buffer can be used with message payload encoding.
 +        Affected files lib/silccore/silcmessage.[ch].
 +
 +Fri Oct 27 21:01:26 EEST 2006  Pekka Riikonen <priikone@silcnet.org
 +
 +      * Added silc_buffer_sunformat and silc_buffer_sunformat_vp
 +        to silcutil/silcbuffmt.[ch].
 +
 +Sun Oct 22 13:03:07 EEST 2006  Pekka Riikonen <priikone@silcnet.org
 +
 +      * Added SILC_STR_BUFFER to format and unformat SilcBuffer.
 +        Affected file lib/silcutil/silcbuffmt.[ch].
 +
 +      * Removed silc_schedule_signal_[un]register and
 +        silc_schedule_signal_call.  Added silc_schedule_task_add_signal
 +        to add signal task.  Only one callback per signal may be
 +        added.  The signals are now automatically called back to
 +        caller.  Affected files lib/silcutil/silcschedule.[ch] and
 +        silcutil/[unix/win32]/silc[unix/win32]schedule.c.
 +
 +      * Added silc_time_msec and silc_time_usec to silcutil/silctime.[ch].
 +
 +      * Added SilcSKEParams for SKE parameters and simplied even more
 +        the SKE interface.  Affected files are lib/silcske/silcske.[ch].
 +        Added support for IV included and session port handling with
 +        UDP/IP connections.
 +
 +      * Added Secure ID (SID) support with IV Included flag (for UDP/IP)
 +        in lib/silccore/silcpacket.[ch].  Added silc_packet_set_sid
 +        which is called after every rekey when IV Included flag is used.
 +        See SILC specifications for details.
 +
 +Thu Oct 19 10:03:03 EEST 2006  Pekka Riikonen <priikone@silcnet.org
 +
 +      * Added lib/silcapputil and moved SILC application specific
 +        utility routines from the generic util library lib/silcutil
 +        to the new library.  Removed lib/silcidcache and moved that
 +        to lib/silcapputil as well.
 +
 +Tue Sep 19 00:14:11 EEST 2006  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Added SILC_STR_ADVANCE.  Affected file is
 +        lib/silcutil/silcbuffmt.[ch].
 +
 +      * The silc_buffer_strformat preserves buffer locations now.
 +
 +      * Added lib/silcutil/silcatomic.h for atomic operations.
 +
 +Sat Sep 16 11:23:06 EEST 2006  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Added lib/silchttp, SILC HTTP server, a very simple HTTP
 +        server.
 +
 +      * Fixed MIME deocing when data portion is not present.
 +        Affected file lib/silcutil/silcmime.c.
 +
 +Wed Jul 19 12:06:38 EEST 2006  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Moved lib/silccore/silcidcache.[ch] to lib/silcutil/.
 +
 +      * Added IV Included support to packet routines, to allow
 +        packet sending and receiving on UDP/IP.  Affected files are
 +        lib/silccore/silcpacket.[ch].
 +
 +      * Added SILC_FSM_YIELD.  Affected files lib/silcutil/silcfsm.[ch].
 +
 +Tue Jul 18 20:10:28 EEST 2006  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Added UDP support to network and socket stream library.
 +
 +Sat Jun 24 22:33:18 EEST 2006  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Added conditional variables.  New files are
 +        lib/silcutil/silcondvar.h and platform specific implementations.
 +
 +Thu Jan  5 20:02:31 CET 2006 Patrik Weiskircher <pat@icore.at>
 +
 +      * make sure session->hostname and session->port are valid before the
 +        application callback is done, since things will go wrong if the
 +        application immediately calls silc_client_file_receive. Affected
 +        file lib/silcclient/client_ftp.c.
 +        Patch received from Stefan Siegel <stesie@brokenpipe.de>, thanks!
 +
 +Fri Dec 30 22:54:21 EET 2005  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * New SILC PKCS API enabling support for other public keys
 +        and certificates, lib/silccrypt/silcpkcs.[ch], silcpk.[ch].
 +
 +      * Separated SILC Public Key Payload routines from the PKCS API
 +        to lib/silccore/silcpubkey.[ch].
 +
 +Wed Dec 28 13:55:22 EET 2005  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Added SILC Key Repository library, lib/silcskr.
 +
 +      * Added SILC Server library, lib/silcserver.
 +
 +Mon Dec 19 18:04:24 EET 2005  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * MIME objects in attributes now use SilcMime.  Affected files
 +        are lib/silccore/silcattrs.[ch].
 +
 +Sat Dec 17 20:13:31 EET 2005  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Synchronize semaphore posting for real threads in FSM.
 +        Affected files are lib/silcutil/silcfsm.c, silcfsm_i.h.
 +
 +Mon Nov 28 17:06:54 EET 2005  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Added silc_file_set_nonblock.  Affected file is
 +        lib/silcutil/silcfileutil.h.
 +
 +      * Added silc_fd_stream_file to lib/silcutil/silcfdstream.[ch].
 +
 +Sat Nov 26 16:13:40 EET 2005  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * FSM based implementation of SILC SKE.  Simpler interface also.
 +        Affected files are in lib/silcske/.
 +
 +      * Added SilcBool type.  Affected file lib/silcutil/silctypes.h.
 +
 +Sat Nov 19 17:34:51 EET 2005  Pekka Riikonen <priikone@silcnet.org>
 +
 +        * Added SilcMime API to lib/silcutil/silcmime.[ch].  The old
 +          silc_mime_parse is available but deprecated.
 +
 +        * Check that packet is valid when processing key exchange,
 +          authentication and rekey protocols.  Fixes a crashbug.
 +          Affected files are apps/silcd/protocol.c and
 +          lib/silcclient/protocol.c.
 +
 +        * Added SILC_HASH_MAXLEN to lib/silccrypt/silchash.h, and changed
 +          all hash buffers to use that instead of fixed values.
 +
 +Wed Nov 16 15:47:12 EET 2005  Pekka Riikonen <priikone@silcnet.org>
 +
 +        * Added SHA-256 to crypto library.  The SHA-256 takes now
 +          precedence over SHA-1.
 +
 +Thu May 26 20:31:06 EEST 2005  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Check for valid return value from regcomp.  Affected file
 +        lib/silcutil/unix/silcunixutil.c.
 +
 +Tue May 10 23:11:17 EEST 2005  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Fixed silc_hash_uint to work with integers.  Affected
 +        file lib/silcutil/silcutil.c.
 +
 +Tue May 10 15:11:53 EEST 2005  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Rewritten SILC Log API.  Affected files lib/silcutil/silclog.[ch].
 +
 +Mon May  9 12:00:08 EEST 2005  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Fixed channel public key list saving on JOIN command reply
 +        on backup router.  Affected file apps/silcd/command_reply.c.
 +
 +Mon May  2 10:42:49 EEST 2005  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Added default limit how many channels client can join,
 +        default is 50.  Added 'channel_join_limit' configuration
 +        option to server too.  Affected files are apps/silcd/command.c
 +        and serverconfig.[ch].
 +
 +Sun May  1 17:42:55 EEST 2005  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * --without-silc -> --with-silc, --without-irssi -> --with-irssi.
 +        On Toolkit the server and client are not compiled by default.
 +        Affected file configure.ad.
 +
 +Thu Apr 28 15:57:37 EEST 2005  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Added lib/contrib/getopt.[ch] for platforms that don't
 +        have it (it is not GPL implementation).
 +
 +      * Fixed compilation when pkg-config is used.
 +
 +Wed Apr 27 11:49:41 EEST 2005  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * A comma in invite/ban string is invalid, check for it.
 +        Affected file apps/silcd/server_util.c.
 +
 +      * Added SERVICE command to the server.  It parses the command
 +        request but SILC Server does not support services for the
 +        time being.  Affected file apps/silcd/command.[ch].
 +
 +      * Added SERVICE command and command reply to client library.
 +        It is however incomplete.  Updated Toolkit documentation.
 +        Affected files are lib/silcclient/command[_reply].[ch].
 +
 +      * Fixed IDENTIFY/WHOWAS command reply to send the username
 +        correctly (uninitialized buffer).  Affected file is
 +        apps/silcd/server_query.c.
 +
 +Mon Apr 25 14:25:24 EEST 2005  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Moved silcer/, silc/, silcd/ and irssi/ to apps/.  This
 +        finalizes the major restructuring of the CVS tree.
 +
 +Mon Apr 25 00:39:30 EEST 2005  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Send empty MOTD reply if MOTD file cannot be read.
 +        Affected file silcd/command.c.
 +
 +Sun Apr 24 12:01:37 EEST 2005  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Optimized primer number generator to use simpler conversion
 +        routines.  Also assure that the prime number will have the
 +        highest bit set after modifying it.  Affected file is
 +        lib/silcmath/silcprimegen.c.
 +
 +      * Added LibTomMath to SILC Math library (SILC_DIST_TMA).
 +
 +      * Added FastTomMath to SILC Math Library (SILC_DIST_TFM),
 +        for now only for testing purposes, it will not be delivered
 +        in any distribution for now.
 +
 +      * Removed NSS MPI from the source tree.  Due to upcoming
 +        license change for the SILC Toolkit, we cannot deliver the
 +        NSS MPI anymore.  I decided to replace it in all distributions
 +        with public domain library.
 +
 +      * Removed GNU regex from lib/contrib and introduced free
 +        GNU compatible regex, lib/contrib/regexpr.[ch].  Added
 +        GNU regex compatible API to it (only partial).
 +
 +      * Removed getopt routines from lib/contrib.
 +
 +Fri Apr 22 12:21:44 EEST 2005  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Use silc_server_send_command_reply to send replies instead
 +        of encoding packet itself.  Affected file silcd/command.c.
 +
 +      * Added command sending and receiving statistics to server.
 +        Affected files in silcd/.
 +
 +      * GCC 4 warning fixes.  -Wno-pointer-sign option is now used
 +        with GCC, for it not to warn about pointer signedness.
 +
 +Tue Apr 19 11:57:35 EEST 2005  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Added context to the SilcIDCache destructor.  Affected
 +        files are lib/silccore/silcidcache.[ch],
 +        lib/silcclient/client.c and silcd/server.c.
 +
 +Mon Apr 18 09:53:28 EEST 2005  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Added pkg-config check to configure.
 +
 +      * The PublicKeyDir must not be used with Admin block in server
 +        config.  Affected file silcd/serverconfig.c.
 +
 +Sat Apr 16 20:23:48 EEST 2005  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Added Autodist.
 +
 +Thu Apr 14 20:25:08 EEST 2005  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Handle empty LIST command reply correcttly in server.  Affected
 +        file silcd/command_reply.c.
 +
 +      * Handle empty LIST command reply correctly in client library.
 +        The application will now receive one LIST command reply with
 +        all arguments set to NULL if there are no channels.  Updated
 +        Client Library documentation accordingly.  Affected file
 +        lib/silcclient/command_reply.c.
 +
 +Tue Apr 12 00:02:09 EEST 2005  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Added channel name string stringprep profile to the protocol
 +        and implementation to allow a little free'er channel name
 +        strings.  Affected files are lib/silcutil/silcstringprep.[ch].
 +
 +      * Added silc_channel_name_[check|verify] to check and verify
 +        channel name strings.  Affected files are
 +        lib/silcutil/silcstrutil.[ch].
 +
 +      * Added support for the new channel name preparation in client
 +        library and server.  Affected files in lib/silcclient and
 +        silcd/.
 +
 +Mon Apr 11 13:40:27 EEST 2005  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Added the Autodist into the source tree.  It replaces the
 +        old ./prepare.  It can be used to create distributions as
 +        previously.  See README.CVS and README.DIST.  See
 +        distributions in distdir/.
 +
 +Sun Apr 10 11:30:56 EEST 2005  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Make sure query sends at least an error back if nothing
 +        more is sent.  Affected file silcd/server_query.c.
 +
 +Thu Apr  7 14:50:01 EEST 2005  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * During query, check if the original command caller goes
 +        away.  If it does, stop the query.  Affected file
 +        silcd/server_query.c.
 +
 +      * Check for valid channel creation in JOIN command reply.
 +        Affected file lib/silcclient/command_reply.c.
 +
 +      * Handle the resolver counter in silc_client_get_users_by_channel
 +        callback correctly.  Fixed auto-join bug in Gaim.  Affected
 +        file lib/silcclient/idlist.c.
 +
 +Wed Apr  6 16:56:53 EEST 2005  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Added some better error messages.  Affected file
 +        silcd/command_reply.c and packet_receive.c.
 +
 +      * Handle error in WATCH command propely on backup router.
 +        Affected file silcd/command.c.
 +
 +      * Fixed freeing of unfreeable variable in WHOIS command reply.
 +        Affected file silcd/command_reply.c.
 +
 +Wed Apr  6 09:10:31 CEST 2005  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Added pkg-config .pc file creation for silc core library
 +        and silcclient library.  A patch by c0ffee.
 +
 +      * Removed the need for GNU Libidn.  Added the simple stringprep
 +        from libidn into lib/contrib/.  It is now used also on Windows
 +        build.
 +
 +Mon Apr  4 15:15:46 EEST 2005  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Simplified the invite and ban string handling in the
 +        server.  Check for valid invite and ban arguments also.
 +        Affected file silcd/server_util.c.
 +
 +Sun Apr  3 14:58:53 EEST 2005  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Added WATCH list announcing in backup router protocol.
 +        Affected files are silcd/command.c, server.c, server_backup.c.
 +
 +      * Do not change users mode to founder on normal server/backup
 +        if the founder mode is set, and user is first one to join.
 +        Affected file silcd/pcaket_receive.c.
 +
 +      * Do not send CUMODE_CHANGE notify back to sender.  Affected
 +        file silcd/packet_receive.c.
 +
 +      * Added getrusage() to take noise in SILC RNG.  A patch by
 +        Mika Boström.  Affected files are configure.in.pre,
 +        includes/silcincludes.h.in, lib/silccrypt/silcrng.c.
 +
 +Sat Apr  2 18:09:30 EEST 2005  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Splitted the SILC libraries configuration into a configure
 +        fragment into lib/configure.ad.  It is now possible, once
 +        this feature is added, to specify whether to compile or not
 +        compile included SILC libraries.  Affected files are
 +        configure.in.pre, lib/silcmath/mpi/configure.ad,
 +        lib/configure.ad, Makefile.defines.pre and
 +        Makefile.defines_int.pre.
 +
 +      * Added --with-silc-includes and --with-silc-libs to configure.
 +        If specified the included libs are not compiled, but the
 +        specified libs are used.  Pkg-config is not yet supported.
 +        Affected file configure.in.pre.
 +
 +      * Fixed WATCH command handling on backup router.  Router does not
 +        send the watch command any more to backup if it originates from
 +        backup.  Affected file silcd/command.c.
 +
 +Fri Apr  1 18:52:47 EEST 2005  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Changed announcing to not announce unregistered clients.
 +        Affected file silcd/server.c.
 +
 +      * Fixed username handling in command reply.  Affected file
 +        silcd/command_reply.c.
 +
 +      * Log files are now 0600.  Affected file lib/silcutil/silclog.c.
 +
 +Thu Mar 31 22:34:22 CEST 2005  Patrik Weiskircher <pat@icore.at>
 +
 +      * Added new define SILC_MACOSX, if __APPLE__ and __MACH__ is defined.
 +          Affected file: includes/silcincludes.h.in
 +
 +      * bool is defined as _Bool on Mac OS X now.
 +          Affected file: lib/silcutil/silctypes.h
 +
 +Thu Mar 31 08:52:06 EEST 2005  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Added support for UTF-8 nicknames, channel names and
 +        server names in client library.  Affected files in
 +        lib/silcclient/.
 +
 +      * Added __SILC_HAVE_PTHREAD, __SILC_HAVE_SIM, __SILC_HAVE_LIBIDN,
 +        and __SILC_ENABLE_DEBUG to include/silcclient.h for third-party
 +        software to check how Toolkit has been compiled.
 +
 +Wed Mar 30 22:16:35 EEST 2005  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Added silc_utf8_str[n]casecmp into lib/silcutil/silcutf8.[ch].
 +
 +      * Use silc_utf8_str[n]casecmp instead of strcmp routines
 +        in library and in SILC Client when dealing with nicknames
 +        and other identifier strings.  Affected file in client lib
 +        and irssi.
 +
 +      * Convert nickname to UTF-8 in /msg and /smsg.  Affected file
 +        irssi/src/silc/core/silc-servers.c.
 +
 +Wed Mar 30 10:50:02 EEST 2005  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Fixed idcache to work with the new identifier strings.
 +        Affected file lib/silccore/silcidcache.c.
 +
 +      * Added UTF-8 hash and compare function for SilcHashTable.
 +        Affected file lib/silcutil/silcutil.[ch].
 +
 +      * Added casefolding stringprep, SILC_CASEFOLD_PREP.
 +        Affected file lib/silcutil/silcstringprep.[ch].
 +
 +      * Changed the identifier string handling to include the original
 +        format in client, server, channel entries and normalized
 +        format in cache.  Affected files in silcd/.
 +
 +Tue Mar 29 16:51:35 EEST 2005  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Added support for the new identifier strings and their
 +        validity checking.  Nicknames, channel names and usernames
 +        can now include practically any kind of letters and various
 +        other characters.  Affected files in silcd/ and in libraries.
 +
 +        NOTE: comparing these strings should now be done with memcmp()
 +        to check binary compatibility.  All these strings are normalized
 +        and casing is irrelevant.
 +
 +      * Added silc_identifier_check to lib/silcutil/silcstrutil.[ch]
 +        as easy function for applications to check whether identifier
 +        strings are valid.
 +
 +Tue Mar 29 00:45:11 EEST 2005  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Fixed SILC_STRING_LDAP_DN encoding and decoding.  Affected
 +        file lib/silcutil/silcutf8.c.
 +
 +      * Added SILC_STRING_UTF8_ESCAPE to lib/silcutil/silcstrutil.h.
 +
 +Mon Mar 28 22:46:23 CEST 2005  Jochen Eisinger <jochen@penguin-breeder.org>
 +
 +      * Make public key in getkey reply mandatory.  Affected file
 +        lib/silcclient/command_reply.c
 +
 +Sun Mar 27 19:03:31 CEST 2005  Patrik Weiskircher <pat@icore.at>
 +
 +      * Added Parameter dont_register_crypto_library to
 +        SilcClientParam. If set to TRUE, silcclient library will
 +        not initalize the Crypto Libraries and application
 +        will need to do it. Affected file lib/silcclient/silcclient.h,
 +          lib/silcclient/client.c.
 +
 +Sun Mar 27 19:02:48 EEST 2005  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Imported new silc_utf8_[encode|decode] routines from
 +        my internal SILC 1.1 source tree.  New encodings added:
 +        SILC_STRING_LOCALE (SILC_STRING_LANGUAGE is deprecated),
 +        SILC_STRING_UTF8, SILC_STRING_PRINTABLE, SILC_STRING_VISIBLE,
 +        SILC_STRING_TELETEX, SILC_STRING_NUMERICAL and
 +        SILC_STRING_LDAP_DN.
 +
 +      * Splitted UTF-8 routines into lib/silcutil/silcutf8.[ch].
 +
 +      * Implemented stringprep (RFC 3454) API.  Internally we use
 +        GNU Libidn's stringprep, for now, so it is required now to
 +        compile SILC sources.  Added lib/silcutil/silcstringprep.[ch].
 +
 +      * Added checking for GNU Libidn and --with-libidn to configure.
 +
 +Wed Mar 23 11:20:33 CET 2005  Jochen Eisinger <jochen@penguin-breeder.org>
 +
 +      * If the passphrases entered do not match while generating a new key,
 +        completly start over instead of going into an infinite loop asking
 +        the user to re-enter the passphrase correctly.  Affected file
 +        lib/silcutil/silcapputil.c
 +
 +Sun Jan  9 14:28:51 CET 2005  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Make sure server is removed from backup list when it is
 +        deleted.  Affected files silcd/command.c, server.c,
 +        server_util.c.
 +
 +      * Close socket when connecting to router fails.  Affected
 +        file silcd/server.c.
 +
 +Tue Jan  4 13:06:26 CET 2005  Jochen Eisinger <jochen@penguin-breeder.org>
 +
 +      * Adopt configuration toolchain to current auto-tools.
 +        Affected files prepare, irssi/configure.in
 +      * Revert most of the UTF-8 fixes to SILC Client 1.0.1.  Will
 +        redo that.  Affected files irssi/src/silc/core/client_ops.c,
 +        irssi/src/fe-common/silc/fe-silc-channels.c
 +      * Take over command line options into silcclient data structure.
 +        Affected file irssi/src/silc/core/silc-core.c
 +
 +Wed Dec  8 16:15:11 CET 2004  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Do not try to initiate backup resuming protocol forever.
 +        Affected file silcd/server_backup.c.
 +
 +Wed Nov 24 18:24:05 CET 2004  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * ID change in resuming has to be done before changing
 +        detached client's modes, since the ID change may fail and
 +        leave ghosts on the network.  Affected file is
 +        silcd/packet_receive.c.
 +
 +Tue Nov 23 16:54:35 CET 2004  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Fixed Win32 scheduler to not stuck anymore.  A patch from
 +        Juha Räsänen.  Affected file is
 +        lib/silcutil/win32/silcwin32schedule.c.
 +
 +      * Fixed QoS parsing for connection blocks in server.  Affected
 +        file is silcd/serverconfig.c.
 +
 +      * Fixed server statistics increasing in server.  Affected file
 +        is silcd/server.c.
 +
 +      * The CLOSE command now marks backup router as self disconnected
 +        to avoid resuming problems.  Affected file silcd/command.c.
 +
 +Wed Sep 22 19:46:32 CEST 2004  Patrik Weiskircher <pat@icore.at>
 +
 +      * When using silc_net_create_connection[_async], and your system can
 +        create IPv6 sockets, it will try to connect to the IPv6 host.
 +        Now it tries to connect to an IPv4 host if IPv6 fails. Affected
 +        file lib/silcutil/unix/silcunixnet.c
 +
 +Fri Jun 18 19:26:58 CEST 2004  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Check for valid route when receiving packet from router and
 +        when routing it to local server in the cell.  A patch from
 +        Matt Miller.  Affected files silcd/router.c and server.c.
 +
 +Sat May  1 13:55:54 CEST 2004  Patrik Weiskircher <pat@icore.at>
 +
 +      * Couldn't detach and reattach twice, because of the previous
 +        commit. Affected file silcd/packet_receive.c
 +
 +Fri Apr 30 19:40:28 CEST 2004  Patrik Weiskircher <pat@icore.at>
 +
 +      * Added check to ignore Port value if Initiator is FALSE.
 +        Remote router coudln't connect if Port was set. Affected file
 +        silcd/serverconfig.c
 +
 +      * If some client tries to resume more than once at the same time,
 +        server crashed. Router didn't crash, but showed odd behaviour
 +        (didn't allow clients to join anymore, ..). Affected files
 +        silcd/packet_receive.c silcd/idlist.h
 +
 +Mon Mar 15 21:10:08 EET 2004  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Destroy the file transfer session in silc_client_file_close
 +        with timeout.  Affected file lib/silcclient/client_ftp.c.
 +
 +      * Call SFTP server monitor in READ and WRITE after the actual
 +        operations.  Affected file lib/silcsftp/sftp_server.c.
 +
 +Wed Mar 10 21:30:02 EET 2004  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Create one configure script from configure fragments
 +        (configure.ad).  This is a first step towards new distribution
 +        system.  Affected files prepare, configure.in.pre,
 +        lib/silcmath/mpi/configure.ad.
 +
 +Wed Mar 10 18:35:24 CET 2004  Jochen Eisinger <jochen@penguin-breeder.org>
 +
 +      * Removed expiring of client key pair.  Affected file is
 +        irssi/src/silc/core/clientutil.c
 +
 +Tue Mar  9 17:11:58 EET 2004  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Check the number of connections from real number of
 +        connections instead of socket number, when deciding if
 +        server is full.  Affected files are silcd/server.c,
 +        server_internal.h and silcd.c.
 +
 +      * Clarified the connections_max meaning in General section
 +        in doc/example_silcd.conf.in.
 +
 +      * The reconnect_keep_trying default value set to TRUE
 +        if it is not defined in the config file.  Affected file
 +        silcd/serverconfig.c.
 +
 +Wed Mar  3 15:13:49 CET 2004  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Fixed crashbug in connection closing, after a protocol
 +        completion callback, which might have closed it already.
 +        Affected file silcd/server.c.
 +
 +      * Fixed rekey with PFS in backup router.  It did not allow
 +        rekeys with PFS, and when the rekey protocol timedout
 +        it crashed the backup router without the above fix.  Affected
 +        file silcd/packet_send.c and server.c.
 +
 +Sat Feb 28 16:25:09 EET 2004  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * The silc_client_add_channel_private_key now returns the
 +        private key context if pointer is given as argument.
 +        Affected files are lib/silcclient/silcclient.h and
 +        client_channel.c.
 +
 +      * Added support for using channel private keys in SILC
 +        Client Library even if the private key mode is not set
 +        on the channel.  Affected file lib/silcclient/client_channel.c.
 +
 +      * The channel private key used to decrypt message is now
 +        delivered to the application in the 'channel_messageÃ' client
 +        operation.  Affected files are lib/silcclient/silcclient.h
 +        and client_channel.c.
 +
 +      * Fixed wrong arg type for user limit in CMODE command reply.
 +        Affected file silcd/command.c.
 +
 +      * The user limit is now taken and saved to SilcClientEntry in
 +        JOIN and CMODE command replies and in CMODE_CHANGE notify.
 +        Affected files lib/silcclient/silcclient.h, command_reply.c
 +        and client_notify.c.
 +
 +      * Added support to the new private message key indicator
 +        packet.  Added a new function to the client library:
 +        silc_client_send_private_message_key_request.  The sender
 +        indicates to be initiator, and receiver is responder.
 +        Added the indicator to the SilcClientEntry as 'prv_resp'
 +        boolean.  Affected files are lib/silcclient/silcclient.h
 +        client.[ch], and client_prvmsg.c.
 +
 +Fri Feb 27 11:25:26 CET 2004  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Fixed the JOIN command calling when called with both
 +       -auth and -founder.  Affected file is lib/silcclien/command.c.
 +
 +Wed Feb 25 23:12:11 EET 2004  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Check watcher list for resumed clients as well.  Affected
 +        file is silcd/packet_receive.c.
 +
 +Tue Feb 24 16:49:10 EET 2004  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Implemented the user limit to the CMODE_CHANGE notify,
 +        CMODE command reply and JOIN command reply in server.
 +        Affected files are silcd/server.c, command.c, command_reply.c,
 +        packet_send.c and packet_receive.c.
 +
 +Mon Feb 23 23:31:15 EET 2004  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Defined SILC_STRFMT_END that must be used now with
 +        silc_buffer_strformat, instead of SILC_STR_END.  Fixes
 +        crashes on AMD64.  Affected files are lib/silcutil/silcbuffmt.h,
 +        lib/silcclient/silcvcard.c, silcd/server_util.c.
 +
 +      * Fixed the adding of public key to the WATCH list in server.
 +        Fixed the WATCH notify sending to client.  Affected files
 +        are silcd/packet_send.[ch], command.c, server_util.c.
 +
 +      * Implemented the watching by public key in the SILC Client
 +        Library and SILC Client.  Affected files are
 +        lib/silcclient/command.c and client_notify.c.
 +
 +Mon Feb 23 09:30:30 CET 2004  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Added support for public key watching in server.  Affected
 +        files are silcd/server.c, server_internal.h, command.c,
 +        server_util.c.
 +
 +Sun Feb 22 19:03:59 EET 2004  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Added public key to the SIlcClientEntry.  Affected files
 +        are lib/silcclient/silcclient.h, command_reply.c, idlist.c
 +
 +      * Fixed the get_clients_whois reply processing to return
 +        exactly same entries server returned.  Makes it possible
 +        to search using attributes.  Affected file is
 +        lib/silcclient/idlist.c.
 +
 +Sat Feb 21 19:21:57 EET 2004  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Save founder key to SilcChannelEntry.  Affected files are
 +        lib/silcclient/silcclient.h, command_reply.c, idlist.c.
 +
 +Fri Feb 20 20:37:38 EET 2004  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Call the monitor callback with _CLOSED status from the
 +        silc_client_file_close.  Affected files are
 +        lib/silcclient/client_fpt.c, silcclient.h
 +
 +      * Added silc_client_get_clients_whois which resolves using
 +        WHOIS, and supports requested attributes as well.
 +        Affected files are lib/silcclient/silcclient.h, idlist.c.
 +
 +Fri Feb 19 21:09:22 EET 2004  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Added support for asking the destination filename where
 +        the downloaded file is saved in the file transfer.  Affected
 +        files are lib/silccilent/silcclient.h, client_ftp.c.
 +
 +Wed Feb 18 02:46:17 EET 2004  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Fixed error handling in resuming data processing.  Affected
 +        files are lib/silcclient/client_resume.c and client.c.
 +
 +Tue Feb 17 19:34:30 EET 2004  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Fixed silc_client_send_private_message to return TRUE correctly.
 +        Affected file lib/silcclient/client_prvmsg.c.
 +
 +      * Added topic to the SilcChannelEntry.  Affected files are
 +        lib/silcclient/silcclient.h, command_reply.c, client_notify.c.
 +
 +Fri Feb 13 14:19:14 CET 2004  Jochen Eisinger <jochen@penguin-breeder.org>
 +
 +      * Use conn->cmd_ident for all silc_client_command_call()s.  Affected
 +        file lib/silcclient/command.c
 +
 +Fri Feb 13 13:53:45 CET 2004  Jochen Eisinger <jochen@penguin-breeder.org>
 +
 +      * Convert all commands to UTF-8 before passing them to the
 +        client library.  Still need to convert replies from UTF-8 to
 +        the locale encoding.  Affected file
 +        irssi/src/silc/core/silc-cmdqueue.c
 +
 +Fri Feb 13 13:13:07 CET 2004  Jochen Eisinger <jochen@penguin-breeder.org>
 +
 +      * redirect all silc_client_command_calls through a queueing framework.
 +        This fixes /CYCLE and the annoying "nick change after auto-joining
 +        a channel".  Furthermore it defines one central point where
 +        command parameters can be UTF-8-ified.  Affected files
 +        irssi/src/silc/core/Makefile, client_ops.c, silc-channels.c,
 +        silc-servers.[ch], silc-core.c, silc-cmdqueue.[ch], silc-lag.c
 +
 +Fri Feb 13 12:04:41 CET 2004  Jochen Eisinger <jochen@penguin-breeder.org>
 +
 +      * use asynchronous connect() to establish router connections.
 +        Fixes problem when the primary router goes down.  Affected files
 +        silcd/server.c, silcd/server_backup.c
 +
 +Thu Feb 12 20:09:59 EET 2004  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Added SILC_[32|64]_TO_PTR and SILC_PTR_TO_[32|64] macros.
 +        Fixed various compilation warnings when type casting ints
 +        to pointers or vice versa, of different size.  Updates around
 +        the source free.
 +
 +Tue Feb  3 23:25:17 EET 2004  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Surrogates not allowed in UTF-8 strings, updated decoder.
 +        Affected file lib/silcutil/silcstrutil.c.  Added UTF-8
 +        testers in lib/silcutil/tests/ directory.
 +
 +Wed Jan 14 18:42:44 EET 2004  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Added SILC_CLIENT_CONN_ERROR_KE, ERROR_AUTH, ERROR_RESUME and
 +        ERROR_TIMEOUT SilcClientConnectionStatus errors.  Affected
 +        files are lib/silcclient/silcclient.h, client.c.
 +
 +Mon Jan 12 13:01:10 CET 2004  Jochen Eisinger <jochen@penguin-breeder.org>
 +
 +      * When resuming a session fails, notify the user that the session
 +        file needs to be removed eventually.  Affected files
 +        irssi/src/fe-common/silc/module-formats.[ch],
 +        irssi/src/silc/core/client_ops.c.
 +
 +Tue Jan 04 12:16:04 CET 2004  Jochen Eisinger <jochen@penguin-breeder.org>
 +
 +      * Added DIST_SUBDIRS symbols to include all subdirs in distributions.
 +        Affected files lib/silcutil/Makefile.am, lib/silcmath/Makefile.am
 +
 +      * Typofix in Irssi::Silc module.  Affected file
 +        irssi/src/perl/silc/Silc.xs.
 +
 +Tue Jan 04 02:43:44 CET 2004  Jochen Eisinger <jochen@penguin-breeder.org>
 +
 +      * Changed the way NOTICE flagged messages are treated. Added support
 +        for notices in queries and signing notices.  Affected files
 +        irssi/default.theme; irssi/docs/help/in/notice.in;
 +        irssi/src/fe-common/silc/module-formats.[ch], fe-silc-messages.c;
 +        irssi/src/silc/core/client_ops.c, silc-channels.c, silc-servers.c
 +
 +      * Fixed typo in /ACTION help.  Affected file
 +        irssi/docs/help/in/action.in
 +
 +Mon Jan 03 23:26:38 CET 2004  Jochen Eisinger <jochen@penguin-breeder.org>
 +
 +      * Fixed typo in perl module.  Affected file
 +        irssi/src/perl/silc/Server.xs
 +
 +      * Changed the way ACTION flagged messages are treated. Added support
 +        for actions in queries and signing actions.  Affected files
 +        irssi/default.theme; irssi/docs/help/in/action.in;
 +        irssi/src/fe-common/silc/module-formats.[ch], fe-silc-messages.c,
 +        fe-silc-queries.c; irssi/src/silc/core/client_ops.c, silc-channels.c,
 +        silc-servers.[ch]
 +
 +Mon Jan 03 16:04:29 CET 2004  Jochen Eisinger <jochen@penguin-breeder.org>
 +
 +      * Incorrectly reported error when client had to be resolved from
 +        server in /SMSG.  Affected file irssi/src/silc/core/silc-servers.c
 +
 +Sat Jan  3 16:37:15 EET 2004  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Fixed whois public key hash table deleting and adding in
 +        detached client case.  Affected file silcd/packet_receive.c.
 +
 +Sat Jan 03 12:15:38 CET 2004  Jochen Eisinger <jochen@penguin-breeder.org>
 +
 +      * Changed filenames of silc/fe module not to collide with filenames
 +        from core/fe.  Also seperated public messages printing from
 +        query messages printing.  Affected files are all in
 +        irssi/src/fe-common/silc.
 +
 +Sat Jan  3 12:18:07 EET 2004  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Fixed the invite process handling during joining to use
 +        correct server name for the client that is matched against
 +        the invite string for the channel.  Wrong server name caused
 +        inability to join the channel.  Affected file is
 +        silcd/command.c.
 +
 +Fri Jan  2 23:34:17 EET 2004  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Fixed the CUMODE channel founder authentication on normal
 +        server to not remove the founder rights on existing founder
 +        before checking that router accepts the mode change.  Affected
 +        files are silcd/command.c and silcd/packet_receive.c.
 +
 +      * Remove the server entry correctly when rekey timeouts and
 +        remote router connection on normal server is closed.  Fixes
 +        a crash where server uses the freed server entry.  Affected
 +        file silcd/server.c.
 +
 +Fri Jan 02 10:28:15 CET 2004  Jochen Eisinger <jochen@penguin-breeder.org>
 +
 +      * Add /SILCNET [ADD|REMOVE|LIST] command to manage different SILC
 +        networks.  This is the first step in solving the bug about
 +        /SERVER ADD -silcnet <silcnet>.  Affected files
 +        irssi/docs/in/silcnet.in; irssi/src/fe-common/silc/Makefile.am,
 +        fe-silcnet.c, fe-common-silc.c, module-formats.[ch];
 +        irssi/src/silc/core/silc-chatnets.[ch], silc-core.c, Makefile.am
 +
 +Thu Jan 01 20:11:32 CET 2004  Jochen Eisinger <jochen@penguin-breeder.org>
 +
 +      * /SMSG and /MMSG now correctly create new queries. Affected files
 +        irssi/src/fe-common/silc/fe-messages.c, irssi/scripts/silc-mime.pl
 +
 +      * Add basic support for SILC protocol specific variables in perl.
 +        Affected files irssi/src/perl/silc/*, irssi/configure.in,
 +        irssi/src/perl/Makefile.am
 +
 +Wed Dec 31 17:06:55 CET 2003  Jochen Eisinger <jochen@penguin-breeder.org>
 +
 +      * Don't use silc_get_input, it's obviously not reliable.  Fixes
 +        issue when the current key expires.  Affect file
 +        irssi/src/silc/core/clientutils.c
 +
 +      * Make the session data filename configurable.  This makes it
 +        possible to have different session files for different
 +        SILC networks.  Affected files irssi/src/silc/core/silc-core.c,
 +        client_ops.[ch], silc-servers.c,
 +        irssi/src/silc/fe-common/silc/module-formats.[ch]
 +
 +      * Use the same set of libtool files for the MPI lib as for the
 +        rest of the toolkit.  Affected files lib/silcmath/mpi/config.guess,
 +        config.sub, configure.in, install-sh, missing, mkinstalldirs
 +
 +Sun Dec 28 21:57:39 EET 2003  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Fixed server statistics decrementing error to not go to
 +        negative.  Affected file silcd/packet_receive.c.
 +
 +Sat Dec 20 14:42:36 EET 2003  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Use silc_server_query_add_error to add error in public key
 +        search error.  Added support in send_reply to send errors
 +        without specific argument.  Affected file silcd/server_query.c.
 +
 +      * Fixed the WHOIS, IDENTIFY and WHOWAS error handling in SILC
 +        Client for NO_SUCH_NICK.  It was against the protocol specs.
 +        Affected file irssi/src/silc/core/client_ops.c.
 +
 +      * Added backwards support for the wrong NO_SUCH_NICK error sending
 +        in server.  To be removed in SILC Server 1.0.  Both old clients
 +        and clients with fixed error handling now works.  Affected file
 +        silcd/server_query.c.
 +
 +Sat Dec 20 00:44:47 CET 2003  Patrik Weiskircher <pat@icore.at>
 +
 +      * fixed a bug in the whois using attributes function where no
 +        error was sent if no nickname and client id but the attributes were
 +        given to whois. Affected file silcd/server_query.c
 +
 +Tue Dec 16 21:34:59 CET 2003  Patrik Weiskircher <pat@icore.at>
 +
 +      * remove public key from public key hashtable on detach. Affected
 +        file silcd/packet_receive.c
 +
 +      * free public key hashtable before removing clients on server
 +        shutdown. Affected file silcd/server.c
 +
 +      * remove public key prior deleting client-data on killing a client.
 +        Affected file silcd/server_util.c
 +
 +Sat Dec 06 21:35:14 CET 2003  Patrik Weiskircher <pat@icore.at>
 +
 +      * Getting the MOTD from other servers works now. Affected
 +        files are silcd/command.c and silcd/command_reply.c
 +
 +Thu Dec 04 11:33:46 CET 2003  Jochen Eisinger <jochen@penguin-breeder.org>
 +
 +      * Initialize the variable idletag, since it is tested in
 +        silc_core_deinit for its default value.  Affected file
 +        irssi/src/silc/core/silc-core.c
 +
 +Sun Nov 30 19:47:02 CET 2003  Patrik Weiskircher <pat@icore.at>
 +
 +      * Fixed signed channel messages across cells. Affected file
 +        silcd/packet_send.c
 +
 +Fri Nov 28 19:13:21 EET 2003  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Changed the SILC_LOG_* macros to not be empty if SILC_DEBUG
 +        is not defined.  They can now be safely used in if-statements
 +        without braces.  Affected file lib/silcutil/silclog.h.
 +
 +      * Added the checks for backup closing connection due to error
 +        (local or remote) and thus not allow the resuming to occur
 +        in reconnect.  Affected files are silcd/packet_send.c
 +        and server.c.
 +
 +Tue Nov 25 15:20:59 EET 2003  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Help file updates.  Affected files in irssi/src/docs/help/in/.
 +
 +Wed Nov 23 20:51:21 CET 2003  Patrik Weiskircher <pat@icore.at>
 +
 +      * Fixed channel messages across cells. Affected file
 +        silcd/packet_send.c
 +
 +Wed Nov 12 11:34:56 EET 2003  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Fixed file transmission accepting in client library to not
 +        start the negotiation if user hasn't accepted the transfer,
 +        instead create new session for resent transfer.  Affected
 +        file lib/silcclient/client_ftp.c.
 +
 +      * Show the session ID in the file transmision list.  Remove
 +        session from list that failed to transfer.  Switch the current
 +        session automatically after transmission, and in errors, to new
 +        session if other sessions exists in the transfer list.  Affected
 +        files are irssi/src/silc/core/silc-servers.c,
 +        irssi/src/fe-common/silc/modfule-formats.c.
 +
 +Mon Nov 10 14:41:40 CET 2003  Jochen Eisinger <jochen@penguin-breeder.org>
 +
 +      * Fixed MIME header parsing for the hopefully last time.  Affected
 +        file lib/silcutil/silcstrutil.c
 +
 +Mon Nov 10 13:03:46 EET 2003  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Rewrote the PKCS#1 routines.  Added lib/silccrypt/silcpkcs1.[ch].
 +
 +      * The SILC RNG is now gauranteed to return non-zero random
 +        values.  Affected files are lib/silccrypt/silcrng.[ch].
 +
 +Sun Nov  9 20:44:56 EET 2003  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Fixed nickname formatting when changing only case of the
 +        nickname.  Affected file lib/silcclient/idlist.c.
 +
 +Sun Nov  9 19:33:59 CET 2003  Jochen Eisinger <jochen@penguin-breeder.org>
 +
 +      * Fixed a memory leak and incorrect printing of the "appears as"
 +        message.  Affected file irssi/src/silc/core/client_ops.c
 +
 +Sun Nov  9 17:45:11 EET 2003  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Added CRT (Chinese Remainder Theorem) supported RSA
 +        private keys and private key operations.  This significantly
 +        increases private key operation efficiency.  No compatibility
 +        issues with new or old private keys.  Affected files are
 +        lib/silccrypt/rsa.[ch], rsa_internal.h and pkcs1.c.
 +
 +Sat Nov  8 13:08:53 EET 2003  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Fixed GCC-3.3.2 related compilation warnings from the
 +        source tree.
 +
 +Fri Nov  7 23:01:47 EET 2003  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Removed RC6 from distributions.
 +
 +Fri Nov  7 19:38:42 EET 2003  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Added some better comments to lib/silccrypt/silcpkcs.h,
 +        optimized some routines in lib/silccrypt/silcpkcs.c.
 +        Added test_silcpkcs into lib/silccrypt/tests/.
 +
 +      * Fixed silc_rng_global_init to actually init the global RNG
 +        if RNG wasn't provided for it.  Affected file is
 +        lib/silccrypt/silrng.c.
 +
 +Thu Nov  6 21:08:28 EET 2003  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Added silc_hash_table_find_by_context_ext.  Affected files
 +        lib/silcutil/silchashtable.[ch].
 +
 +      * Save the public key on normal server in WHOIS command reply
 +        from attributes, if present, and add it to public key hash
 +        table.  Fixes WHOIS resolving by public key on normal server.
 +
 +        Optimized the attributes resolving on normal server to not
 +        resolve if we resolved them already from router.
 +
 +        Affected files are silcd/server_query.c, command_reply.c.
 +
 +Wed Nov  5 19:36:30 CET 2003 Patrik Weiskircher <pat@icore.at>
 +
 +      * Added support for whois using attributes.
 +        Affected files silcd/command_reply.c, silcd/packet_receive.c,
 +        silcd/server.c, silcd/server_internal.h, silcd/server_query.c,
 +        silcd/server_util.c
 +
 +      * Added support for whois using public key attribute to /WHOIS i
 +        client command. Affected files irssi/docs/help/in/whois.in,
 +        irssi/src/silc/core/silc-servers.c, lib/silcclient/command.c
 +
 +Wed Nov  5 23:37:36 EET 2003 Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Fixed UMODE setting in server when the client has anonymous
 +        mode set.  The mode setting was not working.  Affected file
 +        silcd/command.c.
 +
 +Mon Nov  2 11:36:08 CET 2003 Jochen Eisinger <jochen@penguin-breeder.org>
 +
 +      * Fixed some bugs and typos related to sending split messages.
 +          Print notification when sending messages with /MMSG.  Affected
 +        files irssi/scripts/silc-mime.pl, irssi/src/silc/core/client_ops.c
 +
 +Fri Oct 31 12:33:59 EET 2003 Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Optimized the socket referencing in packet routines, client
 +        library and server.  Affected files are lib/silccore/silcpacket.c,
 +        lib/silcclient/client.c and silcd/server.c.
 +
 +      * If silc_socket_set_qos is given with NULL arguments the QoS is
 +        reset from the socket.  Affected files are
 +        lib/silcutil/silcsockconn.[ch].
 +
 +Thu Oct 30 21:23:24 CET 2003 Jochen Eisinger <jochen@penguin-breeder.org>
 +
 +      * Add a /LISTKEYS command which lists the locally cached
 +        client and server keys.  Affected files
 +        irssi/src/fe-common/module-formats.[ch],
 +        irssi/src/silc/core/silc-{channels,servers}.c
 +        irssi/docs/help/in/listkeys.in
 +
 +Thu Oct 30 20:23:40 EET 2003 Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Check that packet queue purging was successful.  Affected
 +        files lib/silcclient/client.c and silcd/packet_send.c.  Related
 +        to MAC failed errors.
 +
 +      * Do not clear the inbuf even if it is empty if QoS was applied
 +        to it.  Otherwise the QoS data is cleared and MAC failed error
 +        will occur.  Affected file lib/silccore/silcpacket.c.
 +
 +      * Use the rekey period time as rekey protocol timeout value.
 +        If the rekey does not succeed during the rekey period there's
 +        something very wrong, and we most likely end up with wrong keys,
 +        do graceful reconnect then.   Affected file silcd/server.c.
 +
 +      * Take reference of the socket in the parser context, as it's
 +        possible to have the parsers in queue after the socket is
 +        disconnected and this may cause crash.  Affected files are
 +        lib/silccore/silcpacket.c, lib/silcclient/client.c and
 +        silcd/server.c.
 +
 +Thu Oct 30 17:01:01 EET 2003 Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Fixed KICK command reply sending, it sent to replies.
 +        Affected file silcd/command.c.
 +
 +Wed Oct 30 14:06:52 CET 2003 Jochen Eisinger <jochen@penguin-breeder.org>
 +
 +      * Finish the silc-mime.pl script. It now supports MIME type
 +        guessing using magic files, signing data messages, executing
 +        MIME handlers in background. Affected files
 +        irssi/scripts/silc-mime.pl and irssi/docs/help/in/mmsg.in
 +
 +      * Changed MIME signal handler to make things easier for the perl
 +        script. Affected files irssi/src/silc/core/client_ops.c,
 +        silc-servers.c, and irssi/docs/signals.txt
 +
 +      * Cleaned up the silc_mime_parse function and fixed detection
 +        of wrapped header lines. Affected file lib/silcutil/silcstrutil.c
 +
 +Sun Oct 26 21:19:02 EET 2003 Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Resolve the IP for file transfer listener from the connection
 +        socket.  Affected file lib/silcclient/client_ftp.c.
 +
 +      * Accept NULL hostname parameter in the functions
 +          silc_net_check_[local|remote]_by_socket.  Do not reverse lookup
 +        if hostname is not wanted.
 +
 +Fri Oct 24 21:24:12 CEST 2003  Jochen Eisinger <jochen@penguin-breeder.org>
 +
 +      * Fixed race condition between silc_client_init and
 +          my_silc_scheduler. Affected file irssi/src/silc/core/silc-core.c
 +
 +Fri Oct 24 16:43:40 EEST 2003  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Fixed file transfer connection closing when SIGNOFF for
 +        the client is received from server.  Affected file is
 +        lib/silcclient/client_ftp.c.
 +
 +Tue Oct 21 13:35:57 CEST 2003  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Check for disconnected socket in QUIT callback.  Affected
 +        file silcd/command.c.
 +
 +Thu Oct 21 09:43:17 CEST 2003  Jochen Eisinger <jochen@penguin-breeder.org>
 +
 +        * Modified the MIME parsing to allow \n and \r\n as delimiters.
 +        Affected files lib/silcutil/silcstrutil.c
 +
 +      * Cleaned up the escape/unescape functions for correctness and
 +        speed. Affected file irssi/src/silc/core/client_ops.c
 +
 +      * Removed handling for data messages with Content-Type: text/*,
 +        moved parsing of MIME headers to the signal handler, added
 +        support for signing and verifying data messages. Affected
 +        files are irssi/docs/signals.txt, irssi/src/silc/core/client_ops.c,
 +        irssi/src/silc/core/silc-{servers,channels}.c
 +
 +      * Added a perl script for handling data messages based on
 +        information read from Mailcap files. New file
 +        irssi/scripts/silc-mime.pl
 +
 +Mon Oct 20 16:08:22 EEST 2003  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Added new SILC_MESSAGE_FLAG_ACK that can  be used to
 +        acknowledge recepetion of a message to the sender.  Updated
 +        protocol specs.
 +
 +Sat Oct 18 11:55:33 EEST 2003  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Unregister channel key saving callback when deleting channel.
 +        Affected file lib/silcclient/idlist.c.
 +
 +      * Do not remove the client from channels in NOTIFY_TYPE_SIGNOFF
 +        before calling notify client operation.  Affected file is
 +        lib/silcclient/client_notify.c.
 +
 +      * Unregister QoS tasks when deleting the socket connection.
 +        Affected files lib/silcutil/silcsockconn.[ch],
 +        unix/silcunixsockconn.c.
 +
 +      * Implemented latest presence-attrs draft changes.  Affected
 +        files lib/silccore/silcattrs.h and
 +        irssi/src/silc/core/silc-queries.c.
 +
 +Tue Oct 14 18:24:53 EEST 2003  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Save old channel keys in list to allow more rapid change
 +        of channel keys if server for some reason does that.  This
 +        avoids loosing so many channel messages due to not having
 +        key to decrypt.  Affected file lib/silcclient/silcclient.h,
 +        idlist.c and client_channel.c.
 +
 +Mon Oct 13 21:37:47 EEST 2003  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Continued backup router tests and fixes.  Affected files
 +        silcd/server_backup, server_util.c, server.c.  See TODO.
 +
 +Sun Oct 12 19:58:18 EEST 2003  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Fixed SERVER_SIGNOFF handling in servers.  The client
 +        was removed from wrong list thus not removing the client
 +        at all.  Affected file silcd/packet_receive.c.
 +
 +      * Do not execute rekey protocol for disabled connections as
 +        it would never go through.  Affected file silcd/server.c.
 +
 +      * Added timeout for rekey protocol to catch if the protocol
 +        never executes successfully.  Affected files silcd/server.c
 +        and protocol.h.
 +
 +Sat Oct 11 15:39:22 EEST 2003  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Abandon packet processing for disconnected sockets.  Check
 +        this always after calling packet processing callback.
 +        Affected file lib/silccore/silcpacket.c.
 +
 +      * Fixed double registration disconnection code in server.
 +        Closed wrong connection.  Affected file silcd/packet_receive.c.
 +
 +Fri Oct 10 16:27:12 EEST 2003  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * On normal server reconnect to primary during resuming 4
 +        times, then give up.  Affected file silcd/server_backup.c.
 +
 +      * If during reconnecting to routers we notice we have router
 +        connection but no primary router set, the server is in desync.
 +        Reconnect to primary to restore network.  Affected file
 +        silcd/server.c.
 +
 +      * Assure that only one protocol is exeucting at the same time.
 +        Added checks for all protocols.  Affected files are
 +        silcd/server.c and server_backup.c.
 +
 +Thu Oct  9 20:24:09 EEST 2003  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Check that a string is not already part on invite/ban
 +        string when processing it.  Affected file silcd/server_util.c.
 +
 +Thu Oct  9 12:06:40 CEST 2003  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Fixed the CUMODE_CHANGE for founder mode changes to comply
 +        with 1.2 version of the protocol.  Affected file is
 +        silcd/packet_receive.c.
 +
 +Wed Oct  8 19:41:15 EEST 2003  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * ERR_BAD_PASSWORD now returns the Channel ID of the channel
 +        where the passphrase was given.  Affected file is
 +        silcd/command.c.
 +
 +Wed Oct  8 09:32:12 CEST 2003  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * INVITE and BAN notifys are now delivered from routers to
 +        servers (but not clients) on the channel.  Updated specs and
 +        code.  Affected files silcd/packet_[send|receive].[ch],
 +        command.c, server.c and server_util.c.
 +
 +      * Implemented INVITE and BAN announcing.  Affected files are
 +        silcd/server.[ch], server_util.c.
 +
 +      * Implemented SilcStatus error type argument returning in
 +        command reply error in server.  Affected file silcd/command.c.
 +
 +      * Implemented SilcStatus argument returning in comand reply
 +        in client library.  The command_reply client operation now
 +        returns error specific arguments as well.  Affected files
 +        are lib/silcclient/command_reply.[ch], client_resume.c,
 +        lib/silccore/silcstatus.[ch].
 +
 +Sun Oct  5 20:22:08 EEST 2003  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Backup router protocol version 1.2 implemented.  Testing still
 +        required.  Affected files in silcd/server_backup.[ch], server.c,
 +        packet_receive.c and server_internal.h.
 +
 +Sun Oct  5 12:36:37 EEST 2003  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * silc_client_send_[channel|private]_message now return TRUE
 +        or FALSE.  Affected file lib/silcclien/client_channel.c and
 +        client_prvmsg.c.
 +
 +Thu Oct  2 17:03:09 EEST 2003  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Check for explicit nickname in INVITE and BAN processing
 +        during join as well (and don't expect only wildcards in
 +        invite/ban strings).  Affected file silcd/command.c.
 +
 +      * Fixed the INVITE and BAN by public key.  The public key saved
 +        is the PK payload (as specified) not the raw data.  Affected
 +        file silcd/server_util.c.
 +
 +Wed Oct  1 20:29:06 EEST 2003  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * UTF-8 text message support for actions and notices in SILC
 +        Client.  Affected file irssi/src/silc/core/client_ops.c.
 +
 +      * silc_get_username and silc_get_real_name now returns sensible
 +        data on Win32.  Patch by Toni Willberg.  Affected file is
 +        lib/silcutil/win32/silcwin32util.c.
 +
 +Sun Aug 24 23:35:19 CEST 2003  Jochen Eisinger <c0ffee@penguin-breeder.org>
 +
 +      * Provide a signal handler to send MIME encoded messages and emit
 +        a signal when a MIME encoded message is received. Also document
 +        the signals for usage with the perl interface.
 +
 +        A sample perl script will be supplied at a later point.
 +
 +        Affected files are irssi/docs/signals.txt,
 +        irssi/src/silc/core/client_ops.[ch],
 +        irssi/src/silc/core/silc-{channels,servers}.c
 +
 +Sun Aug 24 12:58:30 CEST 2003  Jochen Eisinger <c0ffee@penguin-breeder.org>
 +
 +      * Use SILC_COMMAND_PING to estimate the round-trip time to the
 +        server. Use this time to display a lag and disconnect when it
 +        exceeds a specified limit.
 +
 +        Affected files are irssi/src/silc/core/silc-{lag,core}.c.
 +
 +Mon Aug 11 17:14:17 EEST 2003  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Remove the channel auth list in normal server if router
 +        encofrces its list during connecting.  Send notify to channel
 +        to remove the mode to remove the list.  Affected files are
 +        silcd/server_util.c and silcd/packet_receive.c.
 +
 +Wed Aug  6 14:52:04 EEST 2003  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Added support for channel public keys.  Updated protocol specs
 +        and implemented it.  Affected files are
 +        silcd/command.c, command_reply.c, lib/silcclient/command.c,
 +        lib/silcclient/command_reply.c.
 +
 +Wed Jul 23 12:17:01 EEST 2003  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Ignore SIGXFSZ and SIGXCPU signals in server.  They can
 +        terminate the process on Linux.  Affected file silcd/silcd.c.
 +
 +Mon Jun  2 19:13:27 EEST 2003  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Check for NULL buffer in silc_buffer_clear.  Affected file
 +        is lib/silcutil/silcbuffer.h.
 +
 +      * Simplified the backup router protocol by removing the _GLOBAL
 +        types.  Updated protocol specs and the code.  Affected files
 +        are silcd/server_backup.[ch].
 +
 +Thu Apr 24 19:50:25 EEST 2003  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Deny '@' and '!' from nicknames since they are reserved
 +        by the SILC_COMMAND_INVITE and SILC_COMMAND_BAN commands.
 +        Updated protocol specs and the code.
 +
 +        Affected files are silcd/server_util.[ch].
 +
 +Wed Apr  9 18:51:59 EEST 2003  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Fixed stack overflow in Irssi SILC client.  Affected
 +        file irssi/src/silc/core/client_ops.c.
 +
 +      * Check that Host is set in ServerConnection and RouterConnection
 +        in silcd.conf.  Affected file silcd/serverconfig.c.
 +
 +      * Fixed crash in server with protocol completion callbacks,
 +        namely rekey and backup resuming protocols.  Affected files
 +        are silcd/server_backup.c and silcd/server.c.
 +
 +      * Fixed rekey protocol to not restart if it is started already.
 +        Affected files are lib/silcclient/client.c and
 +        silcd/server.c.c
 +
 +Mon Mar 17 18:35:24 EET 2003  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Rewrote SilcList, affected file lib/silcutil/silc*list.h.
 +
 +      * Fixed EOF handling in SILC Config, affected file
 +        lib/silcutil/silcconfig.c.
 +
 +      * Fixed buffer overflows in lib/silcutil/silcstrutil.c.
 +
 +      * Fixed RESOLVING flag handling in JOIN notify and other
 +        notifys to handle the resolvings correctly in client library.
 +        Affected file lib/silcclient/client_notify.c.
 +
 +      * Do not send full INVITE and BAN lists in INVITE and BAN
 +        notifys, only the changed information.  Affected file
 +        silcd/command.c.
 +
 +      * Fixed INVITE notify sending in INVITE command, send it
 +        only when needed.  Affected file silcd/command.c.
 +
 +      * Handle the founder key change properly in CMODE_CHANGE
 +        notify.  Bug #122.  Affected file silcd/packet_receive.c.
 +
 +Sun Mar  9 16:29:20 EET 2003  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Remove the mark for output (mark it only for input) after
 +        purging outgoing queue.  Prevents the "Error in select()"
 +        floods.  Affected file silcd/packet_send.c.
 +
 +      * Fixed incorrect connection deletion from client library
 +        after calling "connect" client operation.  Could cause
 +        crashes for example during reconnect timeouts.  Affected
 +        files are lib/silcclient/client.c and
 +        irssi/src/silc/core/client_ops.c.
 +
 +      * Check server private key file permissions before starting
 +        the server.  Affected file silcd/serverconfig.c.
 +
 +Tue Feb  4 22:53:26 EET 2003  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * NULL terminate allocated string in silc_buffer_strformat.
 +        Affected file lib/silcutil/silcbuffmt.c.
 +
 +      * Rewrote the invite/ban list string handling in server to
 +        use SilcBuffer instead.  Affected files are silcd/command.c
 +        and silcd/server_util.c.
 +
 +Mon Feb  3 14:43:52 CET 2003  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Fixed double free in CMODE command when setting new HMAC
 +        for channel.  Affected file silcd/command.c.
 +
 +      * Added couple of missing memset's to zero sensitive memory.
 +        Affected files silcd/command.c, lib/silcclient/command.c.
 +
 +Sun Jan 26 12:20:30 EET 2003  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Fixed a double free in INVITE command error handling in
 +        server.  Affected file silcd/command.c.
 +
 +      * Added macros SILC_SWAB_[16|32] to swab byte order of
 +        16-bit and 32-bit unsigned integers.  Affected file
 +        lib/silcutil/silctypes.h.
 +
 +      * Use the SILC_SWAB_16 instead of htons() in server when
 +        handling ports since the ports in structures are always
 +        in little-endian order (regardless of platform).  Affected
 +        file silcd/serverid.c and silcd/server_backup.c.
 +
 +Tue Jan 21 17:18:04 EET 2003  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Send DISCONNECT in close admin command in server.  Affected
 +        file silcd/command.c.
 +
 +      * Check whether we are already connecting to a remote router
 +        (in addition of checking whether we are already connected)
 +        before creating new connection.  Affected file silcd/server.c.
 +
 +Thu Jan 16 18:47:00 EET 2003  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Added better compiler and compiler flags checking in
 +        configure.
 +
 +      * Check that socket is valid after QoS is applied to data.
 +        Affected file lib/silcutil/unix/silcunixsockconn.c.
 +
 +      * Make sure the socket connecetion is not closed to early
 +        when closing connection in server.  Also make sure the
 +        connection is always closed after error in a protocol.
 +        Affected file silcd/server.c.
 +
 +Wed Jan 15 11:03:36 CET 2003  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Removed --session and --dummy options from Irssi SILC Client.
 +        -d option is available only if --enable-debug was given.
 +        Affected files are irssi/src/silc/core/silc-core,
 +        irssi/src/core/session.c and irssi/src/fe-text/silc.c.
 +
 +Tue Jan 14 12:25:09 CET 2003  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Added silc_buffer_steal to steal the data from the buffer.
 +        Affected file lib/silcutil/silcbuffer.h.
 +
 +Sat Jan 11 18:16:29 CET 2003  Giovanni Giacobbi <giovanni@giacobbi.net>
 +
 +      * Fixed server crash with double Primary block in config file.
 +
 +        Fixed also various memory leaks around the config file
 +        parser.  Affected files lib/silcutil/silcconfig.c,
 +        silcd/serverconfig.c.
 +
 +      * Changed my nickname (Johnny Mnemonic) to my real name, this
 +        means that bugs introduced by him were actually introduced
 +        by me!
 +
 +Tue Jan  7 21:58:53 CET 2003  Jochen Eisinger <c0ffee@penguin-breeder.org>
 +
 +      * Don't display "foo appears as foo\nYou're now known as foo"
 +        messages.  Affected file irssi/src/silc/core/client_ops.c
 +
 +Tue Jan  7 20:08:15 EET 2003  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Fixed error handling of invalid client entry when calling
 +        commands in server.  Fixes a crash.  Affected file
 +        silcd/command.c.
 +
 +Thu Dec 26 14:19:29 EET 2002  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Added some sanity checks in server for correctness of the
 +        server configuration.  Affected file silcd/serverconfig.c.
 +
 +Fri Dec 20 10:47:59 CET 2002  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Prevent endless resolving of user informations in USERS
 +        command by checking the command reply status correctly.
 +        Affected file lib/silcclient/command_reply.c.
 +
 +Tue Dec 17 10:05:00 CET 2002  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Fixed file writing on WIN32 to use O_BINARY flag.  Affected
 +        file is lib/silcutil/silcfileutil.c.  A patch by Matthew
 +        Aldous <Matthew@Aldous.com>.
 +
 +      * Added better implementation using CriticalSection of
 +        SilcMutex on WIN32.  A patch by Mikko Lähteenmäki
 +        <mikko.lahteenmaki@pikabaana.net>.
 +
 +      * Added some Winsock WIN32 compatiblity defines into
 +        includes/silcwin32.h.
 +
 +Mon Dec 16 19:33:05 EET 2002  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Fixed double free in async host lookup code.  Affected file
 +        lib/silcutil/silcsockconn.c.
 +
 +      * On backup router handle now the SERVER_SIGNOFF from router
 +        for local connected servers too, and close the connections.
 +
 +        Do not process them as normally signing off servers when they
 +        really signoff by sending EOF fe, but always assume that
 +        router sends the SERVER_SIGNOFF.
 +
 +        Affected files silcd/server.c and silcd/packet_receive.c.
 +
 +      * Fixed socket unsetting when closing connections.  Affected
 +        files silcd/server.c and silcd/packet_send.c.
 +
 +      * Do not print the nickname in SERVER_SIGNOFF if we do not
 +        have it.  Prevents asserts in Irssi core.  It is possible we
 +        don't have the nick if it was just being resolved when server
 +        signoff.  Affected file irssi/src/silc/core/client_ops.c.
 +
 +Thu Dec 12 23:22:50 EET 2002  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Fixed autonick crashbug in client library.  Affected file
 +        lib/silcclient/client.c.
 +
 +      * Fixed Unix implementation of SilcMutex to really assert if
 +        the mutex is locked/unlcoked already.  Affected file
 +        lib/silcutil/unix/silcunixmutex.c.
 +
 +      * Fixed locking in silc_schedule_uninit.  It didn't lock
 +        when dispatching timeout tasks.  Affected file is
 +        lib/silcutil/silcschedule.c.
 +
 +      * Changed Win32 implementation of SilcThread to use modern
 +        Win32 interface.  Affected file is
 +        lib/silcutil/win32/silcwin32thread.c  A patch by Mikko L.
 +
 +Thu Dec 12 12:06:59 CET 2002 Jochen Eisinger <c0ffee@penguin-breeder.org>
 +
 +      * Don't print signed messages when sending failed.  Affected files
 +        irssi/src/silc/core/silc-[servers.c/commands.h]
 +
 +      * Send adquate signal when founding a channel by joing it.  Affect
 +        file irssi/src/silc/core/client_ops.c
 +
 +Wed Dec 11 21:46:19 CET 2002 Jochen Eisinger <c0ffee@penguin-breeder.org>
 +
 +      * Fix theme abstracts parsing.  Affected files irssi/default.theme,
 +        irssi/src/fe-common/core/themes.c
 +
 +Wed Dec 11 20:20:07 EET 2002 Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Fixed close command to use the port correctly when closing
 +        server connections.  Affected file silcd/idlist.c.
 +
 +      * Check for NULL outbuf in silc_socket_write.  It is possible
 +        that it is NULL is some odd case.  Affected files are
 +        lib/silcutil/[unix/win32]/silc[unix/win32]sockconn.c.
 +
 +      * Do not call final protocol callback for backup router
 +        resuming protocol when closing connection.  It is closed
 +        by timeout in case of error.  Affected file silcd/server.c.
 +
 +      * Backup reconnect to router if backup resuming protocol
 +        failed.  Affected file silcd/server_backup.c.
 +
 +Wed Dec 11 10:01:26 CET 2002 Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Fixed double free in SKE library error hadling when signature
 +        error occurred.  Affected file lib/silcske/silcske.c.
 +
 +      * Save the fingerprint to new SilcClientEntry after changing
 +        nickname.  Affected file lib/silcclient/client_notify.c.
 +
 +      * Print SIGNOFF in Irssi SILC client only if the nickname is
 +        known.  Prevents asserts in Irssi core.  It is possible we
 +        don't have the nick if it was just being resolved when it
 +        quit.  Affected file irssi/src/silc/core/client_ops.c.
 +
 +Tue Dec 10 21:47:56 EET 2002  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Fixed double free in invite list adding code when adding
 +        invite strings.  Affected file silcd/server_util.c.
 +
 +Fri Dec  6 17:40:24 EET 2002  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * More log printing during backup router protocol.  Affected
 +        file silcd/server_backup.c.
 +
 +      * Removed backwards support for old private key file format.
 +        Affected file lib/silccrypt/silcpkcs.c.
 +
 +      * Removed backwards support for not-so-strict decryption length
 +        check, it's strict now.  Affected lib/silccrypt/silccipher.c.
 +
 +      * GETKEY to update the client entrys fingerprint too.
 +        Affected file lib/silcclient/command_reply.c.
 +
 +      * Added --without-libtoolfix for package builders using weird
 +        wrappers around libtool (BSD at least).
 +
 +Thu Dec  5 22:29:46 EET 2002  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Fixed backup router bugs:  When backup resumes router and
 +        receives a CHANNEL_MESSAGE packet the backup must not act
 +        as router since the packet header decryption would be
 +        different.  Also, when relaying packets to channel, do
 +        not re-encrypt packets on backup that came from the primary
 +        since the connection isn't really router-router connection.
 +        Affected files silcd/server.c, silcd/packet_send.c.
 +
 +      * Added checks in encryption/decryption that encryption/decryption
 +        length sent as argument really is multiple by block size.  Helps
 +        catching really weird bugs like the above backup router bugs
 +        when packets are being decrypted in wrong way.  Affected files
 +        lib/silccore/silcpacket.c, and lib/silccrypt/silccipher.c.
 +
 +      * Fixed padding generation in private key file encryption.
 +        Affected file lib/silccrypt/silcpkcs.c.
 +
 +Thu Dec  5 16:35:23 EET 2002  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Added ignore_message_signatures setting which can be used
 +        to ignore signatures in messages.  Affected files are
 +        irssi/src/silc/core/client_ops.c, silc-core.c.
 +
 +      * Fixed the libtoolfix to use command line options instead of
 +        environment variables.  They didn't work as expected.  Now,
 +        the libtool is fully run-time configurable.
 +
 +Wed Dec  4 21:08:52 CET 2002  Jochen Eisinger <c0ffee@penguin-breeder.org>
 +
 +      * Verify signature payload for signed messages. Affected files
 +        irssi/src/silc/core/client_ops.h, irssi/src/silc/core/silc-servers.c,
 +        irssi/src/silc/core/silc-core.h
 +
 +      * Display signature verification result in public and private
 +        messages using theme abstracts. See irssi/default.theme for
 +        examples on their usage. Affected files
 +        irssi/default.theme, irssi/src/fe-common/silc/fe-messages.h,
 +        irssi/src/fe-common/silc/module-formats.[ch],
 +        irssi/src/fe-common/silc/fe-common-silc.c,
 +        irssi/src/fe-common/silc/Makefile.am
 +        irssi/src/fe-common/core/fe-messages.[ch]
 +
 +      * Fixed bugs in Irssi's theme parsing. Affected files
 +        irssi/src/fe-common/core/themes.c
 +
 +Wed Dec  4 18:29:13 EET 2002  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Calculate the correct length for signed messages before
 +        encrypting, it must be multiple by block size.  Affected
 +        file lib/silccore/silcmessage.c.
 +
 +      * silc_message_signed_get_public_key returns now both
 +        decoded and encoded public key.  Affected files are
 +        lib/silccore/silcmessage.[ch].
 +
 +      * Added libtoolfix script that makes the libtool more generic
 +        and configurable in run-time.  Now we can specify in run-time
 +        if what kind of libraries we want to create, regardless of
 +        configuration.  SIMs are now creates even if --disable-shared
 +        was explicitly given.
 +
 +Tue Dec  3 23:26:55 EET 2002  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Fixed founder key sending in CMODE command in client.
 +        Affected file lib/silcclient/command.c.
 +
 +      * Fixed CUMODE founder authentication in server to not check
 +        for client's public key since it's not supposed to do that.
 +        Affected file silcd/command.c.
 +
 +Tue Dec  3 12:02:41 CET 2002  Jochen Eisinger <c0ffee@penguin-breeder.org>
 +
 +      * Set realname and hostname in NICK_REC records. Affected file
 +        irssi/src/silc/core/silc-nicklist.c
 +
 +Mon Dec  2 20:50:20 EET 2002  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Remove 1.0 protocol backwards compat code from client
 +        library.
 +
 +      * Added more reliable check for whether nickname did change
 +        or not, or whether only Client ID changed in NICK_CHANGE
 +        notify.  Affected file lib/silcclient/client_notify.c.
 +        Fixes bug in '@' character handling in a nickname.
 +
 +      * Added support for automatically parsing signature from
 +        the message payload.  Added new function
 +        silc_message_get_signature to return the payload to
 +        application.  Affected files lib/silccore/silcmessage.[ch].
 +
 +      * Changed the private_message and channel_message client
 +        operations to deliver the SilcMessagePayload to the
 +        application too.  Application can use it fe. to get the
 +        signature from the message for verification.  Affected
 +        file lib/silcclient/silcclient.h, client_channel.c and
 +        client_prvmsg.c.
 +
 +      * Redefined the signed payload for message payloads.
 +        Updated protocol specs and implemented.
 +
 +Mon Dec  2 16:28:29 EET 2002  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Fixed wrong invite and ban list handling in server command
 +        reply.  Affected files are silcd/command_reply.c,
 +        silcd/server_util.[ch].
 +
 +Sun Dec  1 20:48:17 EET 2002  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Fixed CMODE setting in server when founder mode was set.
 +        Affected file silcd/command.c.  Bug #95.
 +
 +      * Added support to setting specific public key in CMODE in
 +        Irssi SILC client.  Affected file lib/silcclient/command.c.
 +
 +      * Added support to use specific public key in CUMODE in
 +        Irssi SILC Client.  Affected file lib/silcclient/command.c.
 +
 +      * Added support for inviting and banning by public key in
 +        Irssi SILC client.  Affected file lib/silcclient/command.c.
 +
 +      * Fixed fingerprint/babbleprint showing in invite and ban
 +        list command replys.  Affected file is
 +        irssi/src/silc/core/client_ops.c.
 +
 +Sun Dec  1 16:32:03 CET 2002  Jochen Eisinger <c0ffee@penguin-breeder.org>
 +
 +      * Format CMODE +c and +h to display both the mode and the argument
 +
 +Sun Dec  1 18:17:22 EET 2002  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Added test vectors and test programs for SHA-1, MD5,
 +        HMAC-SHA1 and HMAC-MD5.  New tests are located in
 +        lib/silccrypt/tests/.  Fixed also argument decoding bug in
 +        MD5 implementation.  Affected file lib/silccrypt/md5.c.
 +
 +      * Changed the channel private key and private message key
 +        generation (with static keys) to use SHA1 instead of MD5,
 +        as SHA1 is the mandatory hash function in SILC.  Affected
 +        file lib/silcclient/client_[channel/prvmsg].c.
 +
 +      * Changed the private key file encryption to use SHA1 instead
 +        of MD5.  Added support for the old generation and added
 +        automatic change of the key (to be removed later).  Affected
 +        files lib/silccrypt/silcpkcs.c.
 +
 +Sat Nov 30 19:07:52 EET 2002  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Load only files with .pub suffix in PublicKeyDir.  Affected
 +        file silcd/serverconfig.c.
 +
 +Sat Nov 30 14:29:34 CET 2002  Johnny Mnemonic <johnny@themnemonic.org>
 +
 +      * Extended the SILC_SERVER_LOG_ERROR macro to all available logging
 +        channels.  Affected files silcd/silcd.c, silcd/server.h.
 +
 +      * Added the config directive PublicKeyDir for the client block.
 +        Affected files doc/exampe_silcd.conf.in, silcd/serverconfig.[ch].
 +
 +Sat Nov 30 09:30:55 CET 2002  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Merged Toni's irssi/silc.conf patch.
 +
 +      * ROBODoc cleanup patch to lib/silccrypt/silcpkcs.h by johnny.
 +
 +      * Max alloc tests in allocation routines.  Affected file
 +        lib/silcutil/silcmemory.c.
 +
 +Fri Nov 29 23:44:29 EET 2002  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Fixed a typo in resuming code that fixed detach/resume code
 +        in server.  Bug #93.  Affected file silcd/packet_receive.c.
 +
 +Thu Nov 28 17:17:11 CET 2002  Jochen Eisinger <c0ffee@penguin-breeder.org>
 +
 +      * Do reverse lookups for server when /connecting. Affected files
 +        irssi/silc.conf, irssi/src/core/servers.c, irssi/src/core/network.c,
 +        irssi/src/core/net-nonblock.*
 +
 +Thu Nov 28 16:19:18 CET 2002  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Added library versioning for shared libraries.  Affected
 +        files configure.in.pre and lib/Makefile.am.pre.
 +
 +Wed Nov 27 21:51:52 CET 2002  Jochen Eisinger <c0ffee@penguin-breeder.org>
 +
 +      * Display INVITE and BAN lists as specified by SILC 1.2
 +
 +Wed Nov 27 16:01:11 CET 2002  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Do not send invite list back unless asked (when sending
 +        no arguments) or when list was modified.  Affected file
 +        silcd/command.c.
 +
 +      * Remove client from invite list in KILLED notify and in
 +        KILL command.  Affected file silcd/command.c and
 +        silcd/server.[ch].
 +
 +      * Fixed bugs in invite list handling in INVITE command.
 +        Affected files silcd/command.c and silcd/server_util.c.
 +
 +      * Merged with Irssi 0.8.6.
 +
 +      * Fixed UTF-8 in Irssi SILC Client, setlocale was missing.
 +        Affected file irssi/src/fe-text/silc.c.
 +
 +Mon Nov 25 18:21:43 EET 2002  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * The silc_argument_get_[first/next] now return the argument
 +        type to caller.  Added silc_argument_payload_encode_one.
 +
 +        Affected files are lib/silccore/silcargument.[ch].
 +
 +      * Added support for the SILC 1.2 INVITE command and new
 +        invite lists to server.  Affected files are silcd/command.c,
 +        silcd/server_util.[ch] and silcd/packet_[receive/send].[ch].
 +
 +      * Added support for the SILC 1.2 BAN command and new
 +        ban lists to server.  Affected files are silcd/command.c,
 +        silcd/server_util.[ch] and silcd/packet_[receive/send].[ch].
 +
 +      * Added support to client sending new INVITE command.  Affected
 +        file is lib/silcclient/command.c.
 +
 +      * Added support to client sending new BAN command.  Affected
 +        file is lib/silcclient/command.c.
 +
 +      * Added support for removing client from invite list when kicked
 +        from channel, as SILC 1.2 dictates.  Affected files are
 +        silcd/packet_receive.c and silcd/command.c.
 +
 +Sun Nov 24 18:26:42 EET 2002  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * If iv argument to silc_cipher_[encrypt/decrypt] is NULL, use
 +        automatically the cipher's internal IV.  Affected files
 +        lib/silccrypt/silccipher.[ch].
 +
 +      * Assure the RESUME_CLIENT packet is not sent to twice to
 +        backup router if the detached client was originated from
 +        the backup.  Affected file silcd/server.c.  Bug #76.
 +
 +      * Changed silc_sim_symname to not allocate memory.  Affected
 +        file lib/silcsim/silcsimutil.c.
 +
 +      * Fixed memory leaks with SIMs in server.  Affected files
 +        silcd/serverconfig.c, silcd/server.c.
 +
 +      * Fixed channel key distribution after resuming detached
 +        client.  Affected files silcd/packet_receive.c.
 +
 +      * Fixed channel's global_user boolean checking after detaching.
 +        Check it after changing the owner of the client not before.
 +        Affected file silcd/packet_receive.c.
 +
 +      * Fixed few double frees from client library.  Fixes at least
 +        Bug #81, possibly others too.
 +
 +      * UTF-8 decode topics also in JOIN command reply and TOPIC_SET
 +        notifys in Irssi SILC Client.  Affected file is
 +        irssi/src/silc/core/client_ops.c.  Bug #82.
 +
 +      * Applied Ville Räsänen's manual page and --mandir bugfix
 +        patch.  Affected files are configure.in.pre and Makefile.am.pre.
 +        Bug #88.
 +
 +Fri Nov 22 18:34:20 EET 2002  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Added support to backup router protocol for backup to tell
 +        normal server that it cannot use the backup router as primary
 +        because the primary isn't really down.  Updated protocol
 +        specs.
 +
 +      * Added support for primary router to tell backup router that
 +        resuming is not possible because the backup really isn't primary
 +        in the cell.  For example if backup disconnected itself the
 +        resuming is not allowed since the primary really did not
 +        go down.  Updated protocol specs.
 +
 +      * Removed MARS from crypto library.
 +
 +      * Defined the CTR mode and Randomized CBC mode in SILC.  The
 +        CTR mode is RECOMMENDED now in specification.  Defined also
 +        Serpent cipher as optional cipher.  Updated the protocol specs.
 +
 +Thu Nov 21 12:43:28 EET 2002  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Added support for inviting/banning by IP/MASK, public key,
 +        and explicit Client ID.  Redefined the command and notify
 +        types to allow easier forwards support for other methods
 +        of inviting/banning.  Updated protocol specs.
 +
 +      * Remove the client from channel's invite lists if the client
 +        is kicked or killed.  Updated protocol specs.
 +
 +      * Unified the Channel Message Payload and Private Message
 +        into one Message Payload.  Updated protocol specs and
 +        implemented.
 +
 +Tue Nov 19 22:30:56 EET 2002  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Don't wait for EOF after socket error has occurred, but
 +        close the connection.  Affected file is silcd/server.c.
 +
 +Mon Nov 18 18:58:26 EET 2002  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Added support for setting FOUNDER mode on channel with
 +        specific public key which can be set with CMODE command.
 +        Updated protocol specs and implemented in client and server.
 +
 +      * Fixed the Irssi SILC client to correctly shutdown the client
 +        library to avoid memory leaks.  Affected files are
 +        irssi/src/silc/core/silc-core.c and silc-servers.c.
 +
 +      * Deprecated the No Reply flag in SKE protocol and introduced
 +        "IV Included" flag which can be used to indicate that the IV
 +        is included in the ciphertext.  This makes it possible to use
 +        SILC on unreliable transport, such as UDP which may cause
 +        packet reordering and losses.  Updated protocol specs, did
 +        not implement yet.
 +
 +Sun Nov 17 15:50:57 EET 2002  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Fixed the MPI implementation of silc_mp_sizeinbase to return
 +        < 32 bit values in correct size.  Affected file is
 +        lib/silcmath/mp_mpi.c.
 +
 +Sat Nov 16 13:14:45 EET 2002  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Fixed the KE Start Payload parsing to check that mandatory
 +        fields are present.  Affected file lib/silcske/payload.c.
 +
 +      * Fixed compilation warnigs in Irssi SILC Client.  Affected
 +        files are irssi/src/silc/core/silc-query.c. client_ops.c.
 +
 +Thu Nov 14 19:33:28 CET 2002  Jochen Eisinger <c0ffee@penguin-breeder.org>
 +
 +      * Print "nick now appears as newnick" and update Irssi's nicklist
 +        when you change your nick to "nick". Closes #62
 +
 +      * Never format your own nick. Closes #63
 +
 +Thu Nov 14 09:44:54 CET 2002  Jochen Eisinger <c0ffee@penguin-breeder.org>
 +
 +      * SILC_UMODE_GONE changes are now propagated correctly to the
 +        Irssi client. Closes #54
 +
 +Tue Nov 12 19:42:18 CET 2002  Jochen Eisinger <c0ffee@penguin-breeder.org>
 +
 +      * Fixed example in /HELP KEY
 +
 +      * Added expando $j which expands to current SILC Client version
 +
 +Tue Nov 12 19:46:39 EET 2002  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Fixed public key decoding in crypto library.
 +
 +      * Added better error printing to SKE library.
 +
 +Tue Nov 12 08:50:12 CET 2002  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Fixed NICK command to not crash if nickname was not sent.
 +
 +Mon Nov 11 19:32:00 EET 2002  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Added Encrypt-Then-MAC order to SILC packet MAC generation.
 +        Deprecated the old Encrypt-And-MAC order.  Updated protocol
 +        specs and implemented.
 +
 +      * Added Encrypt-Then-MAC order to Channel Message Payload MAC
 +        generation.  Updated specs and implemented.
 +
 +Sun Nov 10 12:20:56 EET 2002  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Added support for rekey before 2^32 sequence number wraps.
 +        Affected files in server and client library.
 +
 +      * Padding must be at least 8 bytes now.  Implemented and updated
 +        protocol specs.
 +
 +      * Compute maximum padding for authentication packets to make
 +        passphrase approximation attacks impossible.  Affected files
 +        in client library and in server.
 +
 +      * Fixed PING command sending in client library and handling in
 +        server.  The server ID must be ID Payload, not raw ID data.
 +        Affected files in server and client library.
 +
 +      * Defined that all public keys sent in commands and notify
 +        payloads are actually Public Key Payloads not raw public key
 +        data.  Updated protocol specs and implemented.
 +
 +      * Updated protocol version to 1.2.  Updated specs and code.
 +
 +      * Added ERR_UNSUPPORTED_PUBLIC_KEY and ERR_OPERATION_ALLOWED
 +        status types.  Updated specs and the code.
 +
 +      * Added support for normal client to kill its own entries from
 +        the network.  Updated protocol specs and the code.
 +
 +      * Defined the SILC_MESSAGE_FLAG_SIGNED.  Updated protocol specs
 +        and added initial implementation.
 +
 +      * Added MAC field to the Private Message Payload to protect
 +        against chosen ciphertext attacks.  Updated the protocol specs
 +        and implemented.
 +
 +      * Added idle and signon fields to the ATTRIBUTE_SERVICE
 +        attribute to indicate the user's current idle and signon time
 +        of a service.  Updated protocol specs and implemented.
 +
 +Thu Nov  7 19:21:10 EET 2002  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Added "do_not_bind" argument to silc_client_file_send what
 +        can be used to not bind locally but assume the file receiver
 +        provides the point of connect.  Usefull when sender is behind
 +        NAT device.  Affected file lib/silcclient/silcclient.h and
 +        client_ftp.c.
 +
 +      * Added -no-listener option to FILE SEND command in Irssi SILC
 +        client.  Affected file irssi/src/silc/core/silc-servers.c.
 +        Renamed FILE RECEIVE to FILE ACCEPT.
 +
 +      * Confirm passphrase for private key encryption in
 +        silc_create_key_pair and silc_change_private_key_passphrase.
 +        Affected files are lib/silcutil/silcapputil.c.
 +
 +Thu Nov  7 10:05:28 CET 2002  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Move silc_client_packet_send back to internal, added
 +        silc_client_send_packet, a bit simpler function for application.
 +        Affected files lib/silcclient/silcclient.h, client.c and
 +        client_internal.h.
 +
 +      * Moved the SilcClientEntry, SilcChannelEntry and
 +        SilcServerEntry to silcclient.h to be public and documented
 +        them for application.  Affected files are
 +        lib/silcclient/silcclient.h and idlist.h.
 +
 +Wed Nov  6 17:18:13 EET 2002  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Fixed manual page installation patch by Ville Räsänen.
 +        USERS help page fix patch by Ville Räsänen
 +
 +      * Changed the silc_client_command_call interface to make
 +        the command call simpler for the application.  The library
 +        now handles the command line parsing, command finding and
 +        execution.  Application only needs to call the function
 +        with the command line.  Affected files are
 +        lib/silcclient/silcclient.h, command.[ch].
 +
 +      * Fixed silc_get_input to NULL-terminate the returned input.
 +        Affected file lib/silcutil/silcutil.c.
 +
 +      * Resolve the client's public key in JOIN command if the
 +        founder auth data is being requested but we don't know the
 +        client's public key.  Affected file silcd/command.c.
 +        Bug #53.
 +
 +Mon Nov  4 16:02:59 EET 2002  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Print notify for server opers when backup router comes
 +        online.  Affected file silcd/server.c.
 +
 +      * Fixed the INVITE command to send the invite list in
 +        command reply.  Affected file silcd/command_reply.c.
 +
 +      * Fixed MOTD command reply sending.  Affected file
 +        silcd/command.c.
 +
 +      * UTF-8 decode the topic in TOPIC command reply and LIST
 +        command reply in Irssi SILC client.  Affected file is
 +        irssi/src/silc/core/client_ops.c.
 +
 +Sun Nov  3 17:59:15 EET 2002  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Fixed the INVITE command to not crash Irssi SILC client
 +        when given without nickname argument.  AFfected file
 +        irssi/src/silc/core/client_ops.c.
 +
 +      * Fixed double free in WHOIS query on normal server when
 +        forwarding query to router.  Affected file is
 +        silcd/server_query.c.
 +
 +      * Fixed WATCH command reply handling on normal server which
 +        was missing altogether.  Affected file silcd/command_reply.c.
 +        Bug #44.
 +
 +Sun Nov  3 00:42:05 EET 2002  Mika Boström <bostik@lut.fi>
 +
 +      * Added man-pages for silc(1), silcd(8) and silcd.conf(5).
 +        Included yodl sources for each of these. Also modified
 +        Makefile.am prototype to install these files to proper
 +        locations. Updated CREDITS. Affected file Makefile.am.pre,
 +        new files doc/*.yo, doc/silc.1, doc/silcd.conf.5,
 +        doc/silcd.8.
 +
 +Sat Nov  2 21:26:56 EET 2002  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Added support for encrypted private key files.  Now
 +        passphrase must be provided when new key pair is created
 +        (can be empty though), and prompted when loading the
 +        private key.  Added support for loading the old-style
 +        non-encrypted private keys as well.  Affected files
 +        lib/silccrypt/silcpkcs.[ch], Irssi SILC client and
 +        SILC Server.
 +
 +      * Fixed silc_get_input to accept input on all terminals.
 +        Affected file lib/silcutil/silcutil.c.
 +
 +      * Moved the Irssi SILC client key loading and other stuff
 +        to be called after the arguments and UI is initialized.
 +        Affected file irssi/src/silc/core/silc-core.c.  Bug #31.
 +
 +      * Added -P option to Irssi SILC client which can be used
 +        to change the passphrase of the private key.  Affected
 +        file irssi/src/silc/core/silc-core.c.
 +
 +      * Added silc_change_private_key_passphrase apputil routine
 +        to lib/silcutil/silcapputil.[ch].
 +
 +Sat Nov  2 12:53:09 EET 2002  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Fixed connection closing in client library to not crash.
 +        Moved the connection freeing totally to function
 +        silc_clinet_del_connection.  Affected file
 +        lib/silcclinet/client.c.
 +
 +Fri Nov  1 18:57:02 EET 2002  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Changed includes/silcincludes.h to silcincludes.h.in to
 +        include configuration specific information.  The silcdefs.h
 +        is not included in to installation anymore (it's only
 +        compilation time header).
 +
 +Fri Nov  1 10:30:26 CET 2002  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Moved the SilcClient and SilcClientConnection from client.h
 +        to the public lib/silcclient/silcclient.h.  Changed the
 +        structures a bit.
 +
 +Thu Oct 31 22:44:07 EET 2002  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * If version string in silc_clinet_alloc is NULL the library
 +        puts it automatically.  Affected file lib/silcclient/client.c.
 +
 +      * Changed the version strings from variables to #define's
 +        in includes/silcversion.h.
 +
 +Wed Oct 30 16:17:30 CET 2002  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Added shared library complation support.
 +
 +Tue Oct 29 21:48:55 EET 2002  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Added lib/silcutil/silcapputil.[ch] for application
 +        utility functions.  It includes routines for applications'
 +        convenience.  Added silc_create_key_pair, silc_show_public_key
 +        and silc_load_key_pair functions.
 +
 +Tue Oct 29 17:36:44 EET 2002  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Send RESUME_CLIENT packet from router to backup routers
 +        to in resuming.  Affected file silcd/packet_receive.c.
 +
 +Mon Oct 28 21:23:39 EET 2002  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * In IDENTIFY command parsing, send all other IDs except
 +        Client IDs explicitly to router for resolving on normal
 +        server.  Also check that ID received in WHOIS command is
 +        always Client ID, others are not allowed.  Affected file
 +        silcd/server_query.c.
 +
 +      * Merged latest changes from irssi.org CVS.
 +
 +Sun Oct 27 11:44:32 EET 2002  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Merged c0ffee's /set heartbeat patch to Irssi SILC client.
 +        Affected files irssi/src/silc/core/silc-core, silc-server.c.
 +
 +      * Fixed the heartbeat sending in Irssi SILC client.  Moved
 +        the silc_client_packet_send to silcclient.h for application
 +        usage.  Affected files lib/silcclient/client_internal.h
 +        lib/silcclient/silcclient.h.
 +
 +      * Fixed a bug in query resolving in server.  Used wrong
 +        variable in a for loop and crashed.  Affected file is
 +        silcd/server_query.c.
 +
 +      * Server constructs requested attributes only to locally
 +        connected clients.  Affected file silcd/server_query.c.
 +        Bug #36.
 +
 +      * Fixed a bug when sending resolving from router to server
 +        with requested attributes.  The constructed WHOIS command
 +        was incorrect.  Affected file silcd/server_query.c.
 +        Bug #38.
 +
 +      * Fixed Requested Attributes saving in WHOIS command reply.
 +        The length of the data buffer must be saved too.  Affected
 +        file silcd/command_reply.c.
 +
 +      * Update the client entry's servername after detaching is
 +        over.  Affected file silcd/packet_receive.c.  Bug #37.
 +
 +      * Resolve incomplete client entrys in CUMODE_CHANGE and
 +        CMODE_CHANGE notifys.  Affected file is
 +        lib/silcclient/client_notify.c.  Bug #42.
 +
 +Thu Oct 24 12:22:35 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Fixed channel key packet processing bug on backup router
 +        during backup resuming protocol.  Affected file is
 +        silcd/packet_receive.c.
 +
 +      * Fixed memory leaks in server.  Affected files are
 +        silcd/server.c and silcd/packet_receive.c.
 +
 +      * Fixed packet decryption problem when backup router encrypted
 +        channel message with wrong key during backup resuming
 +        protocol.  Affected file silcd/packet_send.c.
 +
 +      * ROBODoc documented lib/silccrypt/silccipher.h.  A patch by
 +        Toni Willberg (toniw@iki.fi)
 +
 +      * Changed the SilcCipher context to be private.  Changed the
 +        silc_cipher_get_iv to just return pointer to the IV.  Added
 +        silc_cipher_get_name to return the name of the cipher.
 +        Fixed code all around to support these changes.  Affected
 +        files are lib/silccrypt/silccipher.[ch], client library and
 +        server.
 +
 +Wed Oct 23 19:01:41 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Fixed unaligned access in lib/silccore/silcattrs.c.
 +
 +      * Fixed libtool linking in lib/silcsim/Makefile.am.
 +
 +      * Fixed services attribute printing.  Affected files is
 +        irssi/src/silc/core/silc-queries.c.
 +
 +Wed Oct 23 09:51:04 CEST 2002  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Fixed a crashbug in incoming server accepting.  Affected
 +        file silcd/server.c.
 +
 +Tue Oct 22 13:02:32 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Added automatically generated index to Toolkit Reference
 +        Manual.
 +
 +      * Added support for Postscript Toolkit Reference Manual.
 +
 +Mon Oct 21 21:30:40 CEST 2002  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Merged DISCONNECT fix, and autoconn port fix from Irssi
 +        CVS.
 +
 +Sun Oct 20 19:54:55 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Added 'send_events' boolean argument to the function
 +        silc_schedule_set_listen_fd which sends the set events to
 +        the application explicitly if set to TRUE.  Default action
 +        should be FALSE.  Affected file lib/silcutil/silcschedule.[ch],
 +        lib/silcclient/client_internal.h and silcd/server_internal.h.
 +
 +      * Added silc_compare_timeval to determine which time values
 +        is smaller.  Affected file lib/silcutil/silcutil.[ch].
 +
 +      * Added sort-of "Quality of Service" (QoS) support to
 +        SilcSocketConnection.  Data reception can be controlled with
 +        rate limit per second and/or read data length limit.
 +        Added silc_socket_set_qos.  Affected files are
 +        lib/silcutil/silcsockconn.[ch] and unix/silcunixsockconn.c.
 +
 +      * Added the QoS configuration to SILC Server configuration
 +        file.  Affected files are silcd/serverconfig.[ch] and
 +        server.c.
 +
 +Sun Oct 20 14:12:24 CEST 2002  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Merged with irssi.org CVS.
 +
 +      * Failed OPER and SILCOPER authentications are now logged.
 +        Affected file silcd/command.c.  Bugs #25.
 +
 +Sat Oct 19 13:32:15 CEST 2002  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * ROBODoc documented lib/silcutil/silcbuffer.h and
 +        lib/silcutil/silcdlist.h.  Patch by Ville Räsänen
 +        <ville.rasanen@iki.fi>.
 +
 +Fri Oct 18 10:51:04 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Added support for auto-passphrase authentication from the
 +        config file during connecting which was not implemented
 +        yet.  Affected file irssi/src/silc/core/client_ops.c.
 +
 +      * Fixed a bug in authentication protocol failure handling which
 +        was processing wrong callback context.  Affected files
 +        are lib/silcclient/client.c and protocol.c.
 +
 +      * Fixed the /ATTR allow off to actually work.  Affected file
 +        is irssi/src/silc/core/silc-queries.c.
 +
 +      * Fixed the /ATTR -del to work.  Affected file is
 +        irssi/src/silc/core/silc-queries.c.
 +
 +Thu Oct 17 23:45:12 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Fixed string formatting crashbug in lib/silccore/silcattrs.c.
 +
 +      * Fixed mask attribute adding in Irssi SILC client.  Affected
 +        file irssi/src/silc/core/silc-queries.c.
 +
 +Thu Oct 17 16:40:39 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Added support for saving the requested attributes in
 +        WHOIS to directory.  Affected file is
 +        irssi/src/silc/core/silc-queries.c.
 +
 +Wed Oct 16 17:40:56 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Added support for parsing VCard fields that do not have
 +        the TYPE= for types.  Affected file lib/silcutil/silcvcard.c.
 +
 +      * Fixed a double free bug in hash table foreach function
 +        if the entry was deleted in the foreach callback.  Affected
 +        file lib/silcutil/silchashtable.c.
 +
 +Tue Oct 15 18:05:24 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Added silc_attribute_get_verify_data to return the signature
 +        verification data for either user digital signature or
 +        server digital signature in Requested Attributes.  Affected
 +        files are lib/silccore/silcattrs.[ch].
 +
 +      * Added silc_vcard_alloc which is used to allocated dynamic
 +        SilcVCard context.  The silc_vcard_free now checks whether
 +        the context is dynamically allocated or not.  Affected files
 +        are lib/silcutil/silcvcard.[ch].
 +
 +Mon Oct 14 17:55:44 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Periodically remove the NOATTR status from client entry
 +        so that the client may take the attributes in use even after
 +        server has resolved them unsuccessfully earlier.  Affected
 +        file silcd/server_query.c and idlist.h.
 +
 +      * Moved sha1hash and md5hash from client->internal to
 +        SilcClient for application usage.  Affected files are
 +        lib/silcclient/client.h and client_internal.h.
 +
 +      * Fixed attribute encoding and decoding bugs.  Affected
 +        files lib/silccore/silcattrs.[ch].
 +
 +      * Added ATTR command to Irssi SILC Client which is used to
 +        manage user's Requested Attributes sending and values for
 +        WHOIS command.  Affected files around Irssi SILC client.
 +
 +Mon Oct 14 14:33:54 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Added silc_buffer_strformat which can be used to format
 +        strings into a buffer which size is automatically increased.
 +        Affected file lib/silcutil/silcbuffmt.[ch].
 +
 +      * Added implementation of VCard (RFC 2426) which can be used
 +        as part of Requested Attributes in WHOIS command.  Affected
 +        file lib/silcutil/silcvcard.[ch].
 +
 +Fri Oct 11 23:52:17 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Some strncat -> silc_strncat changes our the core and
 +        client library.
 +
 +      * Added SILC_SKE_STATUS_SIGNATURE_ERROR and OUT_OF_MEMORY
 +        errors.  Added better error printing to SKE library.
 +        Affected files lib/silcske/silcske.c, silcske_status.h and
 +        payload.c.
 +
 +      * Save the PKCS key length even if only private key is set to
 +        SilcPKCS.  Affected file lib/silccrypt/silcpkcs.[ch] and rsa.c.
 +
 +      * Fixed the usage of silc_pkcs_get_key_len since it returns the
 +        length in bits not in bytes.  Affected files are
 +        lib/silcske/silcske.c, lib/silccore/silcauth.c and
 +        silcd/server_query.c.
 +
 +Wed Oct  9 17:22:57 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Added silc_attribute_payload_encode_data to directly encode
 +        the data into the attributes buffer.  Renamed function
 +        silc_attribute_payload_parse_list to silc_attribute_payload_parse.
 +        Affected files are lib/silccore/silcattrs.[ch].
 +
 +      * silc_hash_table_find_foreach calls the foreach function now
 +        once even if the nothing was found with context set to NULL.
 +        Affected file lib/silcutil/silchashtable.[ch].
 +
 +      * Remove the RESOLVING flag from client entry after received
 +        the Requested Attributes from the client.  Fixed memory leak
 +        in client entry freeing.  Affected files silcd/server_query.c
 +        and idlist.c.
 +
 +      * Added Requested Attributes support into SILC Client Library.
 +        It is not able to send requested attributes in WHOIS command,
 +        and also receive and process requested attributes.  Added
 +        silc_client_attribute_[add|del] and silc_client_attributes_get
 +        functions.  Added also `ignore_requested_attributes' to the
 +        SilcClientParams to not use attributes in client.  Affected
 +        files are lib/silcclient/command.c, client_attrs.[ch],
 +        silcclient.h, client_internal and client.[ch].
 +
 +      * Changed the silc_client_get_client_by_id to support Requested
 +        Attributes, it takes them as argument now.  Affected file
 +        is lib/silcclient/silcclient.h, and idlist.c.
 +
 +      * Added -details option to WHOIS command in Irssi SILC Client
 +        to support the requested attributes.  By default it requests
 +        all attributes.  Affected file lib/silcclient/command.c and
 +        irssi/doc/help/in/whois.in.
 +
 +Tue Oct  8 17:58:28 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Add also SERVICE attribute for server-constructed attribute
 +        data.  Also digitally sign the attributes and add
 +        SERVER_DIGITAL_SIGNATURE attribute.  Affected file is
 +        silcd/server_query.c.
 +
 +Mon Oct  7 18:25:35 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Changed the silc_attribute_payload_encode to support list
 +        of attributes (function may be called several times to add
 +        a new attribute).  Removed the silc_attribute_payload_encode_list
 +        function.  The encoding function now also automatically encodes
 +        the data, so the caller does not need to do that.  Affected
 +        files lib/silccore/silcattrs.[ch].
 +
 +      * Added support for replying on behalf of the user to the
 +        Requested Attributes in WHOIS command in the server.  Affected
 +        file silcd/server_query.c.
 +
 +      * SILC_NOT_IMPLEMENTED macro use SILC_LOG_INFO now instead of
 +        SILC_LOG_DEBUG.  Affected file lib/silcutil/silclog.h.
 +
 +Sun Oct  6 16:48:32 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Don't swtich to become primary router if we are backup if
 +        decryption error has occurred.  Affected file silcd/server.c.
 +
 +      * Fixed a bug in backup router IP address comparison in
 +        silc_server_backup_get.
 +
 +        Save now also the port of the server/router and use that
 +        in comparison as well.  Affected file silcd/server_backup.c.
 +
 +      * Normal server now reconnects to backup router automatically
 +        if connection is lost to it.  Affected file silcd/server.c.
 +
 +Thu Sep 26 13:51:02 CEST 2002  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * If packet processing fails (like integrity check fails)
 +        the connection is closed now.  Affected files are
 +        lib/silccore/silcpacket.c and silcd/server.c.
 +
 +Mon Sep 23 10:59:39 CEST 2002  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Fixed double free in RSA public key set function
 +        silc_rsa_set_public_key.  Affected file lib/silccrypt/rsa.c.
 +        Bug #29.
 +
 +Sun Sep 22 14:54:05 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Rewrote WHOIS, WHOWAS and IDENTIFY commands in the server.
 +        Added server_query.[ch] which provides one interface for
 +        querying information using all three commands.
 +
 +      * Changed all "typedef unsigned char" in core library to
 +        "typedef SilcUInt8".
 +
 +Sat Sep 21 21:36:45 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Added silc_strncat into lib/silcutil/silcstrutil.[ch].
 +
 +      * Renamed silc_server_get_client_resolve to
 +        silc_server_query_resolve and moved to server_query.[ch].
 +
 +Wed Sep 18 18:28:04 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Resumed client packet handling from server put the resumed
 +        client on wrong list on router and caused the client not
 +        be present on the network anymore.  Now fixed to put the
 +        client to correct list.  Affected file silcd/packet_receive.c.
 +
 +Wed Sep 18 15:13:48 CEST 2002  Johnny Mnemonic <johnny@themnemonic.org>
 +
 +      * Various cleanup in error message output in config parsing code
 +        and in server init code.  Fixed error log files containing
 +        too many newlines ('\n') in some situations.  Affected files are
 +        silcd/serverconfig.c, silcd/silcd.c, and silcd/server.c.
 +
 +Wed Sep 18 10:51:23 CEST 2002  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Use the reverse lookupped hostname in client internals
 +        instead of one user provided us as remote server name.
 +        Affected file lib/silcclient/client.c.
 +
 +Mon Sep 16 12:02:54 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Added 'app_context' to silc_schedule_init.  It is an
 +        application specific context that is delivered to application
 +        in task callback functions.  Affected files are
 +        lib/silcutil/silcutil.[ch].
 +
 +      * The hb_context in SilcSocketConnection is not freed
 +        automatically anymore (application must free it).  Freeing
 +        it automatic is inconsistent.  Affected files are
 +        lib/silcutil/silcsockconn.[ch].
 +
 +Sun Sep 15 22:16:19 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Added support for removing explicitly added client connections
 +        in rehash and closing the client connections if they were
 +        unconfigured in the rehash.  Affected file silcd/server.c.
 +
 +      * Added support for aborting automatically pending commands
 +        that never receives the reply (to avoid memory leaks).
 +        Added also silc_server_command_pending_timed to set the
 +        specific timeout for pending command.  Affected files are
 +        silcd/command[_reply].[ch].
 +
 +      * Added SILC_STATUS_ERR_TIMEDOUT status.  Updated protocol
 +        specs and lib/silccore/silcstatus.h.
 +
 +Sun Sep 15 12:25:10 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Changed the silc_get_time to accept time value as argument
 +        or if zero is sent return current local time.  Affected
 +        file lib/silcutil/silcutil.[ch].
 +
 +      * Added STATS command to client library and Irssi SILC client.
 +        Patch provided by Ville Räsänen <ville.rasanen@iki.fi>.
 +
 +Wed Sep 11 09:22:00 CEST 2002  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Assure that channel key is set before sending it.  May
 +        crash server otherwise.  Affected file silcd/packet_send.c.
 +
 +Tue Sep 10 09:50:08 CEST 2002  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Assure that endless loop cannot happen with detached client
 +        resolving on normal server.  Added idlist status
 +        SILC_IDLIST_STATUS_RESUME_RES.   Affected files are
 +        silcd/idlist.h and silcd/packet_receive.c.
 +
 +Mon Sep  9 12:18:18 CEST 2002  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Incoming file transfer request cannot use same session as
 +        the sending session.  This can happen when sending file to
 +        yourself.  Crashed the client on quit.  Affected file
 +        lib/silcclient/client_ftp.c.  Bug #24.
 +
 +Sun Sep  8 18:39:25 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Implemented the draft-riikonen-precense-attrs draft and
 +        the Attribute Payload into the lib/silccore/silcattrs.[ch].
 +
 +Sun Sep  8 13:13:44 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Distribute the SERVER_SIGNOFF notify also to local backup
 +        routers from the primary router.  The backup router may not
 +        have the signing of local server directly connected and need
 +        to know about the signoff.  Affected file silcd/server_util.c.
 +
 +      * Use the primary router as the origin of the locally connected
 +        server when it is disconnecting from the backup router since
 +        that's where it really is coming from.  Now the clients from
 +        the disconnecting server are removed correctly and "shadow"
 +        clients are not left to the backup router.  Affected file
 +        silcd/server.c.
 +
 +Sat Sep  7 22:26:50 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * If normal server is standalone and found existing but disabled
 +        channel, do not re-create the channel since it creates
 +        duplicate same channels.  Affected file silcd/server.c.
 +
 +      * Added anonymous client connections support to server.  New
 +        "anonymous" configuration option to ConnectionParams section
 +        added.  If set to true, the username and hostname information
 +        of the client will be scrambled and anonymous user mode is
 +        set automatically to the user.  Affected files are
 +        silcd/serverconfig.[ch], silcd/packet_receive.c and server.c.
 +
 +Sat Sep  7 16:02:09 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * In JOIN notify handling, mark that the cache entry of the
 +        client cannot be expired.  Can cause crashes on normal
 +        server (asserts client->channels).  Affected file is
 +        silcd/packet_receive.c.
 +
 +      * From now on distribution versions are used as protocol versions
 +        instead of by default using the Toolkit base version as protocol
 +        version.  Affected file prepare.
 +
 +      * Do not set the locally resolved hostname for local client
 +        entry but take what server sends.  This way the real hostname
 +        is showed in WHOIS for yourself.  Affected file is
 +        lib/silcclient/idlist.c and lib/silcclient/client.c.
 +
 +      * Resolve local info with IDENTIFY when connecting to server.y
 +
 +Sat Sep  7 14:22:43 CEST 2002 Lubomir Sedlacik <salo@silcnet.org>
 +
 +      * Rewritten check for POSIX threads.  Use --with-pthreads[=DIR]
 +        for implied search (not needed on platforms which has native
 +        pthreads library).  Use --without-pthreads to disable threads.
 +        Affected file is configure.in.pre
 +
 +      * Fixed --with-iconv on platforms which need to bypass (broken)
 +          native iconv().  Affected file is configure.in.pre
 +
 +Sat Sep  7 15:08:13 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Moved -C option parsing in Irssi SILC client at same time
 +        as other options.  The UI was initialized earlier and caused
 +        problems on command line.  Bug #16.  Affected file is
 +        irssi/src/silc/core/silc-core.c.
 +
 +Mon Sep  2 23:00:30 CEST 2002 Johnny Mnemonic <johnny@themnemonic.org>
 +
 +      * Added global variable silc_log_timestamp that tells silclog
 +        wether to print or not the timestamp in the logging files.
 +        Affected file lib/silcutil/silclog.[ch].
 +
 +      * Added silcd configuration option Timestamp in the Logging
 +        section.  Affected file silcd/serverconfig.[ch],
 +        doc/example_silcd.conf.in.
 +
 +Fri Aug 30 08:57:33 CEST 2002 Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Fixed fingerprint checking to check for entirely empty
 +        fingerprint instead of two first bytes when determining
 +        if it is set.  Bug #18.  Affected file silcd/command.c.
 +
 +      * Fixed duplicate PKCS name registering to not allow it.
 +        Bugs #17.  Affected file lib/silccrypt/silcpkcs.c.
 +
 +Sun Aug 25 08:02:04 CEST 2002 Lubomir Sedlacik <salo@silcnet.org>
 +
 +      * Conditionalize non-gcc compiler optimizations for various
 +        platforms, enable those commented out.  Cleanups.
 +        Affected file lib/silcmath/mpi/configure.in
 +
 +Sat Aug 24 15:11:32 EEST 2002 Timo Sirainen <tss@iki.fi>
 +
 +      * silc_rng_exec_command() left zombie processes if command
 +        didn't generate any output.  Affected file
 +        lib/silccrypt/silcrng.c
 +
 +Fri Aug 23 22:05:44 CEST 2002 Lubomir Sedlacik <salo@silcnet.org>
 +
 +      * Rewrote iconv checking, introduce --with-iconv for systems
 +        which rely on libiconv.  Check if iconv() provided by libc
 +        is good enough, otherwise demand libiconv.  Affected file
 +        configure.in.pre
 +
 +Fri Aug 23 07:10:52 CEST 2002 Lubomir Sedlacik <salo@silcnet.org>
 +
 +      * Search for ldopen() also in libc.  This enables SIM support
 +        on *BSD systems.  Based on patch from Alex Zepeda.  Affected
 +        file configure.in.pre
 +
 +Sun Aug 18 04:44:30 CEST 2002 Lubomir Sedlacik <salo@silcnet.org>
 +
 +      * Don't call AM_CONDITIONAL conditonally for SILC_THREADS.
 +        This fixes prepare on *BSD systems.  Affected file
 +        configure.in.pre
 +
 +Sun Aug  4 15:55:40 CEST 2002 Pekka Riikonen <priikone@silcnet.org>
 +
 +      * More fixed for not having purge timeout for global clients
 +        that are on channel.  Affected files silcd/command_reply.c
 +        and server_util.c.
 +
 +      * Fixed the rekey protocol to work with backup router connections.
 +        Rekey packets are now allowed on disabled connections as
 +        well.  Affected files silcd/packet_send.c and server.c.
 +
 +      * Do not switch to be as backup router when shutting down and
 +        closing the primary connection.  Affected file silcd/server.c.
 +
 +      * Fixed memory leaks in backup router deleting.  Added
 +        silc_server_backup_free to free all data during shutdown of
 +        server.  Affected files silcd/server_backup.[ch].
 +
 +Sun Jul 14 21:33:32 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Do not process commands if the sock->user_data is NULL.
 +        Affected file silcd/command.c.
 +
 +Tue Jul  9 19:03:11 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Fixed buffer overflow and security problems (loosing bits
 +        in CFB encryption) in SILC RNG.  Problems reported by
 +        Markku-Juhani O. Saarinen <mjos@saturn.tcs.hut.fi>.
 +
 +Sun Jul  7 13:10:01 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Added yet more checks that client is not expired on global
 +        list if it is on channels.  Affected file is
 +        silcd/command_reply.c.
 +
 +Sat Jul  6 11:45:11 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Merged c0ffee's MIME signal patch which adds support for
 +        sending also MIME messages in Irssi SILC Client, and handling
 +        received MIME messages in a signal (and perhaps doing something
 +        to non-textual MIME messages).
 +
 +Sun Jun 30 01:30:22 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Fixed pending command deletion in server and client library
 +        to check the whole list instead of breaking after first found.
 +        The affected files are silcd/command.[ch] and
 +        lib/silcclient/command.[ch].
 +
 +Sat Jun 29 17:40:12 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Return NO_SUCH_CHANNEL error in USERS for channel that is
 +        secret or private, otherwise it's possible to find out
 +        whether a secret channel exists or not.  Affected file
 +        silcd/command.c.
 +
 +      * If CMODE change fails during the mode setting, assure that
 +        the old mode mask is set for the channel back.  Affected
 +        file silcd/command.c.
 +
 +      * Fixed passphrase saving on +a channel on normal server
 +        after successful JOIN command.  Affected file silcd/command.c.
 +
 +Fri Jun 28 11:53:25 CEST 2002 Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Remove server/router operator privileges in DETACH command,
 +        since it's possible to resume to server where these
 +        privileges would not be allowed for the client.  Affected
 +        file silcd/command.c.
 +
 +      * Do not set to wait for backup in rehash of the server.
 +        Affected file silcd/server.c.
 +
 +      * Do not check listener sockets when counting how many
 +        socket connections we have.  Affected file is
 +        silcd/server_util.c.
 +
 +      * Do not announce disconnected clients that are remaining
 +        in history (for WHOWAS).  This is because SIGNOFF notify
 +        for these has been sent earlier already.  Affected file
 +        silcd/server.c.
 +
 +Thu Jun 27 20:07:27 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Buffer overflow with CUMODE command's mode->mode character
 +        conversion.  Reported by Ville Räsänen.  Affected file
 +        lib/silcutil/silcutil.c.
 +
 +Thu Jun 27 16:54:33 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Allow heartbeat packets to go disabled connections anyway.
 +        Affected files silcd/server.c and silcd/packet_send.c.
 +
 +      * Do not broadcast New Channel packets with List flag set
 +        in the packet to backup routers.  The router must check
 +        for the correctness of the packets before sending them.
 +        It is possible that router will have enforce Channel ID
 +        change and this would cause desync in the backup router.
 +        Affected file silcd/packet_receive.c.
 +
 +      * Remove SILC_PACKET_FLAG_LIST from the temp packets that
 +        are handled in list parsing.  They are not list packets
 +        anymore.  Affected file silcd/packet_receive.c.
 +
 +Thu Jun 27 11:27:07 CEST 2002 Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Stop waiting for backup router through the timeout, not
 +        directly after backup router has arrived.  Affected file
 +        silcd/server.c.
 +
 +      * Do not re-create channel keys and send them when removing
 +        clients in server shutdown.  Affected files are
 +        silcd/server_internal.h and silcd/server_util.c.
 +
 +      * Notify distribution to backup routers was missing from
 +        the silc_server_send_notify_dest function which caused
 +        desyncing problems with backup router.  Affected file is
 +        silcd/packet_send.c.
 +
 +      * The client's channel removing was working wrong on
 +        backup router.  It assumed that it doesn't know global
 +        information but backup router does know.  For this reason
 +        it could remove channel when it wasn't supposed to do that.
 +        Affected file silcd/server.c and silcd/server_util.c.
 +
 +Wed Jun 26 15:14:12 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Stop for a couple seconds after badkup router has become
 +        primary router.  Affected file silcd/server.c.
 +
 +      * Added silc_server_remove_servers_by_server, which is used
 +        to remove servers originated from some other server.  Also
 +        clients of those servers can be removed too.  Affected file
 +        silcd/server_util.[ch].
 +
 +      * When removing clients after a server has signed of remove
 +        also all servers behind that server (unless they are known
 +        to be available locally), and send SERVER_SIGNOFF for each
 +        of the server separately.  Also the signed off clients are
 +        sent now separately per signed off server.  The affected files
 +        are silcd/server.c and silcd/server_util.[ch].
 +
 +      * All servers added with silc_idlist_add_server must always
 +        have both "router" and "connection" pointers set.  Otherwise,
 +        bad server entries may be left around in the cache.
 +        Affected file silcd/command_reply.c.
 +
 +      * Do not create the channel key in NEW_CHANNEL packet
 +        processing if the channel is empty.  Affected file
 +        silcd/packet_receive.c.
 +
 +      * Completed backup router support for standalone routers.
 +        Supports also servers in the cell that do not use the backup
 +        at all.
 +
 +Wed Jun 26 10:38:11 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Fixed a bug in silc_string_regexify which did not add '^'
 +        at the start of each string, and thus the matching was
 +        not explicit.  For example ban list iikone@*!*@* would
 +        match also "priikone", which is wrong, it would have to be
 +        *iikone@*!*@* to match also "priikone".  Affected
 +        file lib/silcutil/unix/silcunixutil.c.
 +
 +Tue Jun 25 18:47:39 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Enable all local server connections before updating client
 +        caches when we've become backup router.  Otherwise, signoff
 +        packets may not reach the clients.  Affected files are
 +        silcd/server.c and silcd/server_util.[ch].
 +
 +      * Fixed a bug in version string parsing which could crash
 +        the program with specially formatted version string.
 +        Bug reported and patch provided by Ville Räsänen.  Affected
 +        file lib/silcutil/silcutil.c.
 +
 +      * Handle the disconnection immediately when DISCONNECT
 +        packet is received in server.  Affected file silcd/server.c.
 +
 +      * Primary router now waits a short time (10 seconds) for
 +        backup router connection before accepting any other
 +        connection (except local).  Affected file silcd/server.c,
 +        serverconfig.[ch].
 +
 +      * Fixed a crash in client libary in NICK_CHANGE notify when
 +        NICK_CHANGE arrived for client entry we are resolving
 +        currently.  Affected file lib/silcclient/client_notify.c.
 +
 +      * Call the sconn->callback completion even if error had
 +        occurred.  Start reconnecting always if connection to
 +        primary router fails during backup router protocol.
 +        Affected files silcd/server.c and server_backup.c.
 +
 +Mon Jun 24 17:47:52 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Added functions silc_server_send_opers and
 +        silc_server_send_opers_notify to send packets stricly
 +        to operators.  Added macro SILC_SERVER_SEND_OPERS macro
 +        to send variable argument notify to operators.
 +        Affected files silcd/packet_send.[ch] and silcd/server.h.
 +
 +      * Removed UMODE rights checking with UMODE_CHANGE notify.
 +        Affected file silcd/packet_receive.c.
 +
 +      * Server/router operator now receives notify when network
 +        switches to backup router and when it resumes the use of
 +        primary router.  Affected file silcd/server.c and
 +        silcd/server_backup.c.
 +
 +      * Fixed the updating of client information after backup
 +        resuming protocol is over; update all except local clients
 +        to the new primary router.  The affected file is
 +        silcd/server_util.c.
 +
 +      * Added support for closing active connections in rehash
 +        that were unconfigured by the user.  Supports currently
 +        closing server and router connections.  Affected file
 +        silcd/server.c.
 +
 +      * Rewrote some SILC_LOG_DEBUG's in silcd/server_backup.c.
 +
 +Sun Jun 23 17:32:31 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Don't do SILC_STRING_LANGUAGE encoding if the outbuffer
 +        is NULL since seems that on some platforms NULL is allowed
 +        and on some it's not.  Fallback encoding is used instead.
 +        Affected file lib/silcutil/silcstrutil.c.
 +
 +      * Fixed statistics updating for incoming server connection
 +        which could cause problems when re-connecting.  Affected
 +        file silcd/server.c.
 +
 +      * Preliminary backup router support for standalone router
 +        added.  Affected files in silcd/.
 +
 +      * Mark server connections in backup router disabled before
 +        and after backup protocol.  Affected file is
 +        silcd/server_backup.c.
 +
 +      * Added support for reconnecting to remote server connection
 +        even if the protocol fails, and if the configuration wants
 +        us to keep trying to connect anyway.
 +
 +        Server connection is not allowed to backup router if
 +        backup router does not have connection to primary router yet.
 +
 +        Affected file is silcd/server.c.
 +
 +Sat Jun 22 21:34:59 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Added silc_client_udpate_server function to update changed
 +        server info.  Affected file lib/silcclient/idlist.[ch].
 +
 +      * Added check for server entries that are being resolved when
 +        notify is received.  If being resolved, handle the received
 +        notify only after it's resolved so that all notifys are
 +        handled in same order as received from the server.
 +
 +        Added similar resolver check to channel entries.  Every
 +        notify that cause resolving of any information that affects
 +        channel entry marks the channel entry in waiting state.
 +        After whatever resolving is over the waiters are signalled
 +        and only then the notifys are handled in the same order
 +        as delivered from the server.
 +
 +        Affected files are lib/silcclient/idlist.[ch], and
 +        client_notify.c.
 +
 +      * Fixed KILLED notify handling in normal server.  Affected
 +        file silcd/packet_receive.c.
 +
 +      * Added SILC_IDLIST_STATUS_LOCAL which indicates that entry
 +        is locally connected, or was locally connected (but may
 +        be detached and connection is not active).  Added also
 +        SILC_IS_LOCAL for checking this status.  Affected files
 +        silcd/idlist.h, silcd/packet_receive.c, silcd/server_util.c,
 +        silcd/server.c and silcd/server_internal.h.
 +
 +Sat Jun 22 17:06:58 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Don't send or handle TOPIC_SET if topic is already set and
 +        is same as being set.  Affected files silcd/command.c and
 +        silcd/packet_receive.c.
 +
 +      * Fixed CMODE change rights checking to work correctly when
 +        removing modes by operator.  Affected file is
 +        silcd/server_util.c.
 +
 +      * Fixed some handling with New Channel packet in router and
 +        fixed some CMODE_CHANGE notify handling in server and router.
 +        Affected file is silcd/packet_receive.c.
 +
 +      * Changed "disconnect" client operation to include the
 +        reason of the disconnection and optional disconnection
 +        message.  Affected file lib/silcclient/silcclient.h.
 +
 +      * Made the compilation of lib/contrib/ stuff conditional.
 +        Affected files configure.in.pre, lib/contrib/Makefile.am.
 +
 +Sat Jun 22 12:49:21 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
 +
 +      * All CMODE_CHANGE and CUMODE_CHANGE notifys are now sent back
 +        to the sender of the notify too, to avoid situation where two
 +        notifys are in the network at the same time going to oppsite
 +        directions.  Affected file silcd/packet_receice.c.
 +
 +Fri Jun 21 10:00:32 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Delete the client from channel even if the cilent->id is
 +        NULL.  It was possible that client was deleted without
 +        removing from channels (theoretically at least).  Affected
 +        file silcd/server.c and silcd/server_util.c.
 +
 +      * Free the client data too when resuming is not successful.
 +        Affected file silcd/packet_receive.c.
 +
 +      * Merged some code from c0ffee's silc-plugin.  Affected files
 +        irssi/src/silc/core/silc-channels.c and silc-expandos.c.
 +
 +      * Added SILC_PRIMARY_ROUTE and SILC_BROADXAST macros to
 +        silcd/server_internal.h.  SILC_PRIMARY_ROUTE Returns pointer
 +        to the primary router connection, the other one returns
 +        TRUE if packet must be broadcasted to network.
 +
 +      * All notifys that are destined to primary router (to network)
 +        are now automatically sent to backup routers even if the
 +        router is standalone (and has backup router).  Affected files
 +        in silcd/.
 +
 +      * Added --without-irssi and --without-silcd configuration
 +        options for disabling the compilation of these applications.
 +        Affected file configure.in.pre and prepare.
 +
 +Thu Jun 20 13:48:15 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Implemented SILC_STRING_BMP and SILC_STRING_UNIVERSAL for
 +        UTF-8 encoding and decoding.  Added also new encodings
 +        SILC_STRING_BMP_LSB and SILC_STRING_UNIVERSAL_LSB.
 +
 +        Added also SILC_STRING_LANGUAGE which is language and charset
 +        specific encoder and decoer for those platforms that support
 +        iconv().  It can convert the UTF-8 to and from the locale
 +        specific character set.
 +
 +        Affected file lib/silcutil/silcstrutil.[ch].
 +
 +      * Added macro SILC_NOT_IMPLEMENTED to lib/silcutil/silclog.h.
 +
 +      * Added function silc_get_command_name to the file
 +        lib/silcutil/silcutil.[ch].
 +
 +      * Improved the server debug output a bit.  Affected files are
 +        in silcd/.
 +
 +Wed Jun 19 17:46:31 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Save the channel passphrase when received succesful JOIN
 +        command reply from router, on normal server.  Otherwise
 +        joinig +a channels from normal server is not possible.
 +        Affected file silcd/command.c.
 +
 +      * Fixed a bug in TOPIC_SET notify handling.  The notifier
 +        may be other than client too, like server or channel.
 +        It expected it to always be only client and ignored the
 +        notify.  Affected file silcd/packet_recieve.c.
 +
 +      * Removed some (unnecessary) debug printing from
 +        lib/silccore/silcid.c and lib/silccore/silcargument.c.
 +
 +      * Do not force CMODE_CHANGE when server is announcing new
 +        channel.
 +
 +        Router announces stuff only after server reannounces channel
 +        after CHANNEL_CHANGE notify.
 +
 +        These fixes optimizes the announcing procedure, and perhaps
 +        fixes some problems too.  Affected file silcd/packet_receive.c.
 +
 +      * Fixed SERVER_SIGNOFF sending to local clients.  It was
 +        totally broken and sent the notify to all local clients,
 +        instead of only to those that was on same channel as the
 +        signing off clients.  Affected file silcd/server_util.c.
 +
 +      * Added -D option to server.  It can be used to give debug
 +        level.  The levels are from 0 - 99, and are predefined for
 +        smooth server debugging.  (see silcd.c for the predefined
 +        levels).  Affected file silcd/server.c.
 +
 +Wed Jun 19 16:01:51 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Fixed a bug in Irssi SILC client to close the connection
 +        properly when disconnecting from server.  Affected file
 +        irssi/src/silc/core/client_ops.c.
 +
 +Tue Jun 18 17:14:52 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
 +
 +      * When authenticating as founder during JOIN command, check
 +        that the one authenticating becomes the only founder on the
 +        channel.  Affected file silcd/command.c.
 +
 +      * Better checking for founder mode setting when CUMODE_CHANGE
 +        notify is received.  Affected file silcd/packet_receive.c.
 +
 +      * Close all connections when shutting down the server by sending
 +        DISCONNECT packet.  Close all listeners too when shutting
 +        down the server.  Affected file silcd/server.c.
 +
 +      * Handle DISCONNECT packet correctly in client library by
 +        calling the "disconnect" client operation.  Affected file
 +        lib/silcclient/client.c.
 +
 +      * Handle local errors correctly during resuming.  Affected
 +        file lib/silcclient/client.c.
 +
 +Tue Jun 18 10:26:27 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
 +
 +      * The log file is not dupped internally anymore in
 +        lib/silcutil/silclog.c.  Fixed memory leaks too.
 +
 +      * The scheduler now dispatches all pending timeout tasks
 +        when it is uninitialized with silc_schedule_uninit.
 +        Affected file lib/silcutil/silcschedule.c.
 +
 +Mon Jun 17 21:30:55 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Added --enable-stack-trace option to configure.  Added
 +        memory allocation stack trace support.  Added files
 +        lib/silcutil/stacktrace.[ch].  Affected files are
 +        lib/silcutil/silcmemory.[ch].
 +
 +      * Fixed memory leaks from libraries and server.  Affected
 +        files around the tree.
 +
 +      * Reverted back a fix made to CUMODE which broke it.
 +        Affected file silcd/command.c.
 +
 +Sun Jun 16 11:49:45 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Added SILC_MESSAGE_FLAG_UTF8 to the protocol specs and the
 +        core library, and implemented it.  All textual messages SHOULD
 +        use this flag and the message MUST be UTF-8 encoded.
 +        All text messages sent by Irssi SILC client are now UTF-8
 +        encoded (regardless whether the terminal supports UTF-8 or not).
 +        Affected files are lib/silccore/silcchannel.h,
 +        irssi/src/silc/core/silc-servers.c, silc-channels.c and
 +        client_ops.c.
 +
 +Sat Jun 15 18:23:39 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Added lots of new statistics updating that was missing from
 +        the server and router code.  Affected files in silcd/.
 +
 +      * Sending SIGUSR1 signal to server now dumps the current
 +        server statistics into /tmp directory.  Affected file is
 +        silcd/silcd.c.
 +
 +      * ROBODoc documented the lib/silccrypt/silchash.h.  Improved
 +        the SILC Hash Interface also.  Added new functions
 +        silc_hash_get_name, silc_hash_init, silc_hash_update and
 +        silc_hash_final.  Affected file lib/silccrypt/silchash.c.
 +
 +Sat Jun 15 12:09:14 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Added some better info printing for client during connecting.
 +        Affected file silcd/server_util.c.
 +
 +      * Implemented the SILC_CHANNEL_UMODE_QUIET mode that can be used
 +        to silence a user on a channel.  Affected files are
 +        lib/silcclient/client_channel.c, irssi/src/silc/core/client_ops.c,
 +        irssi/src/fe-common/silc/module-formats.[ch], silcd/command.c
 +        and silcd/packet_receive.c.
 +
 +      * Fixed a fatal bug in handling of malformed command payload.
 +        Affected file silcd/command.c.
 +
 +      * Fixed a double free when announcing channel users to router.
 +        Affected file silcd/server.c.
 +
 +      * After successful authentication to channel founder mode, check
 +        that there isn't anyone else with founder mode on the channel.
 +        The one that authenticated will become founder and anyone
 +        else is demoted.  Affected file silcd/command.c.
 +
 +      * Added error printing of any error that has occurred during
 +        any command in client library.  Affected file is
 +        irssi/src/silc/core/client_ops.c.
 +
 +      * Removed some error printing from the client library and left
 +        it for the application to worry (from the error status it
 +        receives in 'command' client operation.  Affected file is
 +        lib/silcclient/command.c.
 +
 +Fri Jun 14 22:59:02 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Added new status types KEY_AGREEMENT_ALREADY_STARTED and
 +        KEY_AGREEMENT_SELF_DENIED to lib/silcclient/silcclient.h.
 +        Starting key agreement with itself is denied.  Affected file
 +        is lib/silcclient/client_keyagr.c.
 +
 +      * Fixed some error checkings from the SFTP library which caused
 +        misbehaviour.  Affected files are lib/silcsftp/sftp_client.c
 +        and lib/silcsftp/sftp_util.c.
 +
 +      * Added new "debug" and "debug_string" settings to Irssi SILC
 +        client which can be used to print runtime debugging on the
 +        Irssi's screen.  Available when compiled with --enable-debug
 +        option.  Affected file irssi/src/silc/core/silc-core.c.
 +
 +Tue Jun 11 16:36:02 CEST 2002 Johnny Mnemonic <johnny@themnemonic.org>
 +
 +      * Fixed a missing variadic parameter in a function call that
 +        caused server crash when a non-allowed connection arrived.
 +        Reported by Richard Becker.  Affected file silcd/server.c.
 +
 +Mon Jun 10 16:29:42 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Added WATCH list sending to backup routers from router.
 +        The WATCH command is sent by the router to the backup
 +        router.  Affected file silcd/command.c.
 +
 +      * Mark the backup_router flag for RouterConnection entry
 +        if the backup router stuff is defined in the config file.
 +        Affected file silcd/serverconfig.c.
 +
 +      * Fixed some backup data sending around the code to work better
 +        if the router is standalone router.  Not all places were fixed.
 +        Affected file silcd/packet_receive.c, silcd/packet_send.c,
 +        silcd/server.c.
 +
 +      * Fixed the router connecting when connecting to multiple
 +        routers.  It ignored every other router except the first
 +        one.  Affected file silcd/server.c.
 +
 +Mon Jun 10 09:28:21 CEST 2002 Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Made the private key generation after expiration optional.
 +        If not created after expiration the old key will re-expire
 +        at a later time (and thus key pair is not necessary to
 +        change).  Affected file irssi/src/silc/core/clientutil.c.
 +
 +Sun Jun  9 18:58:25 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
 +
 +      * The length arguments in bind() and connect() were wrong
 +        and fixed now to used SIZEOF_SOCKADDR in the
 +        lib/silcutil/unix/silcunixutil.c.
 +
 +Tue Jun  4 18:36:05 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Fixed detach timeout handling to use Client ID and not
 +        the actual client entry which may be freed in the callback.
 +        Affected file silcd/command.c.
 +
 +Thu May 30 15:53:45 CEST 2002 Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Merged c0ffee's multiple interface support patch.
 +        Affected files in silcd/.
 +
 +Wed May 29 18:08:15 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Cleanup keys properly.  Affected file is
 +        irssi/src/silc/core/clientutil.c.
 +
 +Tue May 28 20:11:41 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Display the user mode on the status bar.  Affected file
 +        irssi/src/silc/core/silc-expandos.c.
 +
 +Tue May 28 13:56:26 CEST 2002 Pekka Riikonen <priikone@silcnet.org>
 +
 +      * If private message key is not set, but the flag is set in
 +        the packet, ignore the packet since it cannot be decrypted.
 +        Affected file lib/silcclient/client_prvmsg.c.
 +
 +Thu May 23 12:00:14 CEST 2002 Pekka Riikonen <priikone@silcnet.org>
 +
 +      * When resuming client, remove the old client entry from
 +        the watcher list too.  Affected file silcd/packet_receive.c.
 +
 +      * Do not allow normal server to force founder mode away
 +        from router if the founder mode is already set.  Affected
 +        file silcd/packet_receive.c.
 +
 +      * Remove the client entry with watch notify types with short
 +        timeout, and not directly, so that other notifys can be
 +        retrieved too.  Affected file lib/silcclient/client_notify.c.
 +
 +      * Display notification about data messages that cannot be
 +        displayed.  Affected files irssi/src/silc/core/client_ops.c,
 +        irssi/src/fe-common/silc/module-formats.[ch].
 +
 +Sun May 19 18:59:00 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Fixed the CHANNEL_CHANGE notify handling in client libary
 +        to not use freed memory.  Affected file is
 +        lib/silcclient/client_notify.c.
 +
 +      * Fixed CUMODE_CHANGE notify handling in server.  Affected
 +        file silcd/packet_receive.c.
 +
 +      * Fixed USERS command to support empty channels.  Affected
 +        file silcd/command.c.
 +
 +Sat May 18 11:35:19 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Allow multiple identical pending commands to be registered
 +        in client library.  Affected file is lib/silcclient/command.c.
 +
 +      * Call the completion for resolving client information only
 +        after all resolvers has finished.  This fixes a crash in
 +        the client.  Added support for checking when the resolvers
 +        are finished.  Affected file is lib/silcclient/idlist.c.
 +
 +      * Wait by default 3 seconds before reconnecting to the server
 +        after being disconnected.  Makes the /detach command a bit
 +        more usable.
 +
 +Fri May 17 17:23:45 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Check the watcher list before sending signoff notifys
 +        when closing client connection.  Affected file is
 +        silcd/server.c.
 +
 +      * Added better CMODE command rights checking.  Affected file
 +        silcd/server_util.c.
 +
 +Fri May 17 08:33:41 CEST 2002 Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Fixed watcher list checking during server signoff.  It
 +        crashed the server.  Affected file silcd/server_util.c.
 +
 +      * The JOIN command reply returns now the founder's public
 +        key.  Affected file is silcd/command.c.
 +
 +      * Announce the channel mode, and the mode properties with
 +        CMODE_CHANGE notify.  Affected file silcd/server.c.
 +
 +      * Mark new channels by default disabled, untill at least
 +        one user joins the channel.  Affected file is
 +        silcd/packet_receive.c.
 +
 +Thu May 16 13:05:13 CEST 2002 Pekka Riikonen <priikone@silcnet.org>
 +
 +      * The nickname argument to watch notify can be optional.
 +        Fixes a crash in server.  Affected file silcd/packet_send.c.
 +
 +      * Remove the client entry from cache if the WATCH notify type
 +        is KILLED, SERVER_SIGNOFF or SIGNOFF.  Affected file is
 +        lib/silcclient/client_notify.c.
 +
 +      * Check the watcher list before and after changing nickname
 +        when the NICK_CHANGE notify is received.  Affected file is
 +        silcd/idlist.c.
 +
 +      * Fixed a crash in OPER and SILCOPER command sending.  Empty
 +        passphrase caused the crash.  Affected file is
 +        lib/silcclient/command.c.
 +
 +Wed May 15 19:01:42 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Merged with Irssi CVS for Irssi SILC client.
 +
 +Tue May 14 19:37:48 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Completed the protocol specifications.
 +
 +Tue May  7 20:41:58 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Merged with Irssi CVS for Irssi SILC client.
 +
 +Tue May  7 11:07:16 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Added the founder's public key delivery to the
 +        CUMODE_CHANGE notify type as well.  Updated the protocol
 +        specs and the code.  Affected files are silcd/packet_send.[ch],
 +        silcd/packet_receive.c and silcd/command.c.
 +
 +Mon May  6 19:46:12 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Added silc_pkcs_public_key_copy function into the
 +        lib/silccrypt/silcpkcs.[ch].
 +
 +      * Remove the `iv' from the SilcChannelEntry since we can
 +        live without it.  Affected files are silcd/idlist.h and
 +        silcd/packet_receive.c.
 +
 +      * Added support for sending the founder's public key in
 +        the CMODE_CHANGE notify packet in the server.  Affected
 +        files are silcd/packet_send.[ch], silcd/packet_receive.c,
 +        silcd/command.c and silcd/server.c.
 +
 +      * Changed the FOUNDER_AUTH authentication to use only
 +        public key authentication as defined by new protocol
 +        specs.  Passphrase authentication with that mode cannot
 +        be used anymore.  It is now possible to reclaim founder
 +        mode from any server in the network.  Affected files are
 +        silcd/command.c, silcd/idlist.h and silcd/command_reply.c.
 +
 +      * Added permanent channels support by making the channel
 +        permanent when FOUNDER_AUTH mode is set on the channel.
 +        The channel will not be destroyed even if channel is empty
 +        when that mode is set.  Protocol TODO #17.  Affected
 +        files are silcd/server.[ch], server_util.[ch],
 +        silcd/command.c, silcd/packet_receive.c and
 +        lib/silcclient/command.c.
 +
 +Fri May  3 18:36:51 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Added reference counter to the command reply context in
 +        the client library.  Affected files are
 +        lib/silcclient/command_reply.[ch].
 +
 +Fri May  3 11:37:10 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Fixed rekey protocol with PFS in the client library.
 +        Affected file is lib/silcclient/protocol.c.
 +
 +      * Added support for list of errors in client library
 +        command reply handling.  Affected file is
 +        lib/silcclient/command_reply.c.
 +
 +      * Defined that the WHOIS and IDENTIFY commands can send
 +        list of errors.  Updated the protocol specs.  Protocol
 +        TODO #2.
 +
 +      * Added support for sending list of errors to WHOIS and
 +        IDENTIFY commands in server.  Added support for receiving
 +        list of errors in server.  Affected files are
 +        silcd/command.c and silcd/command_reply.c.
 +
 +      * Fixed client info resolving on LEAVE command in client
 +        library to not crash.  Affected file is
 +        lib/silcclient/client_notify.c.
 +
 +Thu May  2 08:45:11 CEST 2002 Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Defined that the NICK command replies with thew changed
 +        nickname too, to make the nickname changing simpler at
 +        the client's end.  Updated protocol specs and the code
 +        in client and server.  Affected files are
 +        silcd/command.c, lib/silcclient/command_reply.c and
 +        lib/silcclient/command.c.
 +
 +Mon Apr 29 20:10:42 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Added `Compressed' packet flag to indicate that the packet
 +        payload is compressed by the sender.  Updated the protocol
 +        specs and the core library.  The compression still is not
 +        implemented in the sources.  Affected file is
 +        lib/silccore/silcpacket.h.
 +
 +Mon Apr 29 09:48:12 CEST 2002  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Remove pending command callbacks also if the connection
 +        to the server is destroyed.  Affected file is
 +        lib/silcclient/client.c.
 +
 +Sat Apr 27 19:52:32 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Added new QUIET channel user mode that can be used to
 +        quiet a user in a channel.  Updated the protocol specs but
 +        it wasn't implemented yet.  Protocol TODO #27.  Affected
 +        file is lib/silccore/silcmode.h.
 +
 +Mon Apr 22 09:09:44 CEST 2002  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Added BLOCK_INVITE user mode to be able to block incoming
 +        invite notifications.  Protoocol TODO #26.  Affected files
 +        are lib/silccore/silcmode.h, lib/silcclient/command.c and
 +        silcd/command.c.
 +
 +      * SILC Publickey fields MUST be UTF-8 encoded now.  Updated
 +        the protocol specs and the code.  Affected file is
 +        lib/silccrypt/silcpkcs.c.
 +
 +Sun Apr 21 19:44:38 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Disconnect Payload includes now the status type.  Updated
 +        the protocol specs and the code.  Protocol TODO #25.
 +        Affected files are silcd/server.c, lib/silcclient/client.c.
 +
 +      * Added NOT_AUTHENTICATED, BAD_SERVER_ID, INCOMPLETE_INFORMATION,
 +        KEY_EXCHANGE_FAILED and BAD_VERSION error status types.
 +        Moved the silc_client_command_status_messages table to the
 +        lib/silcutil/silcutil.c and added new funtion
 +        silc_get_status_message, which deprecates function
 +        silc_client_status_message.  Affected files are
 +        lib/silccore/silcstatus.h, lib/silcclient/command_reply.[ch],
 +        lib/silcutil/silcutil.[ch].
 +
 +Fri Apr 19 17:35:15 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Defined that the nickname hash in Client ID MUST be from
 +        lowercase nickname.  This effectively changes nicknames in
 +        SILC to case-insensitive.  Updated the protocol specs and
 +          the code.  Affected files are lib/silcutil/silcutil.[ch],
 +          silcd/serverid.c, and silcd/idlist.c.
 +
 +      * Added new channel user modes BLOCK_MESSAGES_USERS and
 +        BLOCK_MESSAGES_ROBOTS.  Updated the protocol specs and the
 +        code.  Affected files are lib/silccore/silcmode.h,
 +        lib/silcclient/command.c, and silcd/packet_send.c.
 +
 +      * Added new error status ERR_RESOURCE_LIMIT.  Updated protocol
 +        specs and code.  Affected file lib/silccore/silcstatus.h.
 +
 +      * Added support for watch list.  It is possible to add nicknames
 +        to be watched, and when they come to network, leave network
 +        or user mode changes the watcher will be notified of this
 +        change.  Added SILC_COMMAND_WATCH command, added new
 +        notify type SILC_NOTIFY_TYPE_WATCH to deliver the watch
 +        notifications.  Updated the protocol specs and implemented
 +        this to library, client and server.  Protocol TODO #21.
 +        Affected files are lib/silccore/silccomand.h,
 +        lib/silccore/silcnotify.h, lib/silcclient/command[_reply].[ch],
 +        silcd/command[_reply].[ch], lib/silcclient/client_notify.c,
 +        silcd/packet_send.[ch], silcd/packet_receive.c, and
 +        irssi/src/silc/core/client_ops.c.
 +
 +      * Added user mode SILC_UMODE_REJECT_WATCHING to reject
 +        somebody watching you.  Updated the protocol specs and the
 +        code.  Affected files are lib/silccore/silcmode.h, and
 +        lib/silcclient/command.c.
 +
 +Fri Apr 19 09:02:20 CEST 2002  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Added service support to SILC protocol.  Added new command
 +          SILC_COMMAND_SERVICE.  Updated the protocol specs and the
 +          core library.  Services are not implemented in server or
 +          client for now.  Protocol TODO #20.  Affected files are
 +          lib/silccore/silcstatus.h, lib/silccore/silccommand.h.
 +
 +      * Added SilcStatus argument to `command' client operation
 +        to return the error status when command sending fails
 +        locally.  Changed all command in client library to return
 +        correct command status.  Affected files are
 +        lib/silcclient/command.c, lib/silcclient/silcclient.h and
 +        irssi/src/silc/core/client_ops.c.
 +
 +Thu Apr 18 14:09:51 CEST 2002  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Added silc_mime_parse function to parse MIME headers.
 +        Affected files are lib/silcutil/silcstruti.[ch].
 +
 +      * Added MIME header parsing in Irssi SILC Client.  It displays
 +        all textual MIME objects, others it ignores.  Affected file
 +        is irssi/src/silc/core/clien_ops.c.
 +
 +Wed Apr 17 22:07:59 CEST 2002  Johnny Mnemonic <johnny@themnemonic.org>
 +
 +      * Fixed a bug in the pid writing function, which couldn't be
 +        written in a root-owned directory.
 +
 +Tue Apr 16 09:34:40 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Defined that channel message to unknown Channel ID must
 +        cause SILC_NOTIFY_TYPE_ERROR notify message to the sender.
 +        Updated the protocol specs and the code in server.  The
 +        affected file is silcd/packet_receive.c.
 +
 +Mon Apr 15 19:57:57 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Added new notify type SILC_NOTIFY_TYPE_ERROR and specified
 +        that it is used to send error notifys if error occurs during
 +        some SILC packet processing, except commands.  The error
 +        types are same as for command reply types.  Defined that
 +        if private message is sent to unknown Client ID the error
 +        is sent in SILC_NOTIFY_TYPE_ERROR instead of command reply.
 +        Updated the protocol specs and code.  Affected files are
 +        lib/silccore/silcnotify.h, added lib/silccore/silcstatus.h,
 +        lib/silcclient/client_notify.c, silcd/packet_receive.c,
 +        and irssi/src/silc/core/client_ops.c.  Renamed the
 +          SilcCommandStatus to SilcStatus.
 +
 +      * Defined the use of extra WHOIS attributes in WHOIS command.
 +        The <Requested Attributes> (defined in a separate document)
 +        can be used to request additional information about user
 +        not returned by standard WHOIS command.  Defined that server
 +        can send WHOIS command directly to client.  Client provides
 +        the requested attributes to the server.  Updated the protocol
 +        specs.  Protocol TODO #4.  Implementation is not done yet
 +          (Protocol TODO #24).
 +
 +      * Renamed function silc_client_command_status_message to
 +        silc_client_status_message.  Affected files are
 +        lib/silcclient/command_reply.[ch].
 +
 +Sun Apr 14 21:13:42 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Changed the WHOIS, IDENTIFY and WHOWAS count arguments to
 +        32 bit integers.  Updated the protcol specs and the code.
 +        Affected files are silcd/command.c and
 +        lib/silcclient/command.c.
 +
 +Sun Apr 14 19:49:02 CEST 2002  Johnny Mnemonic <johnny@themnemonic.org>
 +
 +      * Fixed a bug in library where sending a bogus authentication
 +        payload would lead to a crash.  Affected file is
 +        lib/silccore/silcauth.c.
 +
 +Sat Apr 13 13:09:24 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Added detach_disabled and detach_timeout server config
 +        options to the server.  Affected files silcd/serverconfig.[ch],
 +        silcd/command.c and silcd/packet_receive.c.
 +
 +Fri Apr 12 20:09:08 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Added resolve_cmd_ident field to the SilcClientEntry structure
 +        too so that if the entry is for example being resolved so
 +        another command may attach to the same pending command reply
 +        without requiring to resolve the same entry again.  Added
 +          support for adding multiple pending commands for one
 +        command idenfier.  Affected files lib/silcclient/command.[ch],
 +        lib/silcclient/command_reply.[ch], lib/silcclient/idlist.h.
 +
 +Fri Apr 12 10:17:51 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Defined that server receives WHOIS command reply for private
 +        and secret channels too.  Updated protocol specs and the
 +        code in server.  Affected file silcd/command.c.
 +
 +      * Defined <channel user mode list> argument to WHOIS command
 +        reply for returning user modes on the channels.  The
 +        channel list now doesn't include the user mode anymore but the
 +        actual channel mode.  Updated protocol specs and the code in
 +        client and server.  Affected files are silcd/command_reply.c,
 +        silcd/command.c, silcd/server.c, irssi/src/silc/core/client_ops.c,
 +        and lib/silcclient/command_reply.c.
 +
 +      * Save the channels list in WHOIS command reply in normal server
 +        so that WHOIS always shows joined channels also in normal
 +        server and not just on router.  Affected file is
 +        silcd/command_reply.c.
 +
 +Thu Apr 11 22:29:33 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Defined that server receives USERS command reply for private
 +        and secret channels too.  Updated protocol specs and the
 +        code in server.  Affected file silcd/command.c.
 +
 +Thu Apr 11 16:32:08 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Changed the UMODE's mode mask argument to be optional.  If
 +        not provided then the command merely returns the current mode
 +        mask to the client.  Updated protocol specs and the server.
 +        Affected file is silcd/command.c.
 +
 +      * Added SILC session detachment/resuming support.  It is possible
 +        to detach by closing the network connection and then re-connect
 +        and resume to the old client session.  Added DETACHED user
 +        mode that server will set for detached client.  Added new
 +        packet RESUME_CLIENT which is used to perform the resuming
 +        process.  Added DETACH command.  Updated the protocol specs,
 +        core library, client and server.  Protocol TODO #22.  Very
 +        many affected files around the tree.
 +
 +Wed Apr 10 16:32:01 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Changed the CMODE's mode mask argument to be optional.  If
 +        not provided then the command merely returns the current mode
 +        mask to the client.  Updated protocol specs and the server.
 +        Affected file is silcd/command.c.
 +
 +      * Changed the Killer's Client ID in KILLED notify to be just
 +        any ID payload since router server is allowed to kill as well.
 +        Updated protocol specs, client libary and server.  Affected
 +        files are lib/silcclient/client_notify.c, silcd/packet_receive.c,
 +        and irssi/src/silc/core/client_ops.c.
 +
 +Tue Apr  9 17:15:42 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Added new user modes ANONYMOUS for special anonymous servers
 +        that may set the mode for client, and BLOCK_PRIVMSG which
 +        client may set to block incoming private messages unless the
 +        Private Message Key flag is set (using private keys to protect
 +        private messages).  Updated protocol specs and code in client
 +        and server and core library.  Protocol TODO #23.  Affected
 +        files are lib/silccore/silcmode.h, silcd/server.[ch],
 +        irssi/src/silc/core/client_ops.c, silcd/packet_receive.c,
 +        irssi/docs/help/in/umode.in, lib/silcclient/command.c.
 +
 +      * Added new channel user mode BLOCK_MESSAGES which the client
 +        may set to itself to tell server not send channel messages.
 +        Other packets such as channel key packets are still sent.
 +        Protocol TODO #23.  Updated the protocol specs, client and
 +        server.  Affected files are lib/silccore/silcmode.h,
 +        irssi/docs/help/in/cumode.in, lib/silcclient/command.c,
 +        lib/silcutil/silcutil.c, silcd/command.c, and
 +        silcd/packet_send.c.
 +
 +Mon Apr  8 23:57:32 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Redefined the Status Payload to include now two 8 bit fields,
 +        instead of one 16 bit field.  This now makes it possible to
 +        send list of errors.  Updated the protocol specs and the code
 +        in core library, client library and server.  Protocol TODO #1.
 +        Affected files are lib/silccore/silccommand.[ch],
 +        lib/silcclient/command_reply.[ch], silcd/command.c,
 +        silcd/command_reply.c and silcd/packet_receive.[ch].
 +
 +Mon Apr  8 19:57:40 CEST 2002  Johnny Mnemonic <johnny@themnemonic.org>
 +
 +      * Added config parse status SILC_CONFIG_EPRINTLINE, this status
 +        must be handled by the application and should tell the application
 +        that an error message was already printed, and it should print the
 +        config coords (line, filename, ...).  Affected files are
 +        silcd/serverconfig.c, lib/silcutil/silcconfig.[ch].
 +
 +      * Added local macro SILC_SERVER_CONFIG_ALLOCTMP to make the
 +        server config parsing code more readable.
 +
 +        Fixed a bug in the fetch_logging() config callback.
 +
 +        Affected files is silcd/serverconfig.c.
 +
 +      * Drop root privileges when started in foreground.  Don't drop them
 +        if debugging also.  Affected file is silcd/silcd.c.
 +
 +Mon Apr  8 17:00:41 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Added more IM-like features by introducing new user modes
 +        for setting various presence information.  Added new modes:
 +        INDISPOSED, BUSY, PAGE, HYPER and ROBOT.  Updated protocol
 +          specs and code.  Protocol TODO #19. Affected files are
 +          lib/silccore/silcmode.h, irssi/src/silc/core/client_ops.c,
 +        irssi/docs/help/in/umode.in and lib/silcclient/command.c.
 +
 +Sun Apr  7 17:07:59 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Added STATS command to the protocol after all, to return
 +        various statistical information about the network.  It can
 +        be used by clients to retrieve statistical information, and
 +        servers may use it to to fetch cell and network wide
 +        statistics from router.  Updated the protocol specs and
 +        implemented it to the server.  Protocol TODO #16.
 +        Affected files are lib/silccore/silccommand, silcd/command.[ch],
 +        silcd/command_reply.[ch].
 +
 +Sat Apr  6 17:08:58 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * The LIST command reply in client libary now adds new channel
 +        entry if the returned channel doesn't exist yet in cache,
 +        and returns the channel entry to the application in the
 +        command_reply client operation.  Affected file is
 +        lib/silcclient/command_reply.c.
 +
 +      * Changed the channel message payload's MAC generation to
 +        include the IV in the MAC as well.  This way all relevant
 +        parts of the channel message payload are authenticated also
 +        with the channel message MAC (and not only by packet MAC).
 +        Causes incompatibility with 1.0 protocol.  Protocol TODO #7.
 +        Affected file is lib/silccore/silcchannel.c.
 +
 +      * Fixed the SKE to save the remote version, since the
 +        silc_ske_parse_version mistakenly checked wrong version,
 +        after it replaced the start payload.  Affected files are
 +        lib/silcske/silcske.[ch].
 +
 +Fri Apr  5 16:03:03 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Splitted lib/silcutil/silcutil.h into silcstrutil.h for
 +        string utility functions.  Added there also new functions
 +        silc_utf8_[encode/decode/valid] for UTF-8 string encoding.
 +        Affected files lib/silcutil/silcstrutil.[ch].
 +
 +      * Renamed silc_*_pem functions to silc_pem_* functions.  Affected
 +        files are lib/silcutil/silcstrutil.[ch].
 +
 +      * Defined that the security property fields in SKE SHOULD be
 +        UTF-8 encoded, defined that version string MUST be US-ASCII
 +        encoded, defined that passphrases sent in connection
 +        authentication protocol MUST be UTF-8 encoded.  Implemented
 +        these to the client and server.  Defined also that other
 +        passphrases sent in the protocol MUST be UTF-8 encoded.
 +        Affected files are lib/silcske/silcske.c,
 +        lib/silcclient/protocol.c, silcd/protocol.c,
 +        silcd/serverconfig.c, and lib/silccore/silcauth.c.
 +
 +      * Changed the silc_client_close_connection interface to not
 +        need the SilcSocketConnection which should not be visible
 +        to application.  Affected files are lib/silcclient/client.c
 +        and lib/silcclient/silcclient.h.
 +
 +      * Rewrote the text for Private Message Key Payload in the
 +        protocol specification.  Protocol TODO #11.
 +
 +Wed Apr  3 16:24:51 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Upgraded the protocol version to 1.1, updated protocol specs
 +        and software.
 +
 +      * Added the nickname as new argument to NICK_CHANGE notify and
 +        added it to protocol specs and implemented it to client and
 +        server.  Protocol TODO #3.  Affected files are silcd/idlist.[ch],
 +        silcd/command.c, silcd/packet_receive.c, packet_send.[ch], and
 +        lib/silcclient/client_notify.c.
 +
 +      * Added the killer's client ID to the KILLED notify and added
 +        it to protocol specs and implemented it to client and server.
 +        Protocol TODO #13.  Affected files are silcd/command.c,
 +        silcd/packet_receive.c, packet_send.[ch],
 +        lib/silcclient/client_notify.c, irssi/src/silc/core/client_ops.c.
 +        The killer's client entry is now returned to application in
 +        the `notify' client operation.
 +
 +      * Fixed the Max Argument fields that had too large value set
 +        in the protocol specs.  Protocol TODO #14.
 +
 +      * Added the LEAVE command reply to return the ID of parted
 +        channel.  Updated protocol specs and implemented it to the
 +        client and server.  Protocol TODO #15.  Affected files are
 +        silcd/command.c, lib/silcclient/command_reply.c.  The channel
 +        entry is now returned to application in the `command_reply'
 +        client operation.
 +
 +      * Rewrote the version SKE version checking in client libary
 +        and in server to use the silc_parse_version_string.  Affected
 +        files are lib/silcclient/protocol.c, silcd/protocol.c.
 +
 +      * Added SILC_STATUS_ERR_NO_CHANNEL_FOPRIV error status to few
 +        commands that was missing it, and updated protocol specs and
 +        the server implementation.  Protocol TODO #10.  The affected
 +        file is silcd/command.c.
 +
 +      * Defined new message flags SILC_MESSAGE_FLAG_REPLY to be
 +        generic reply to a generic request (REQUEST flag), and
 +        SILC_MESSAGE_FLAG_DATA to send any kind of data in a generic
 +        way.  A draft-riikonen-silc-flags-payloads-00.txt is written
 +        to define the payload for DATA flag.  Added the flags to
 +        the implementation.  Protocol TODO #9.  Affected file is
 +        lib/silccore/silcchannel.h.
 +
 +        Changed the client library to return the message length
 +        to application as well in the channel_message and private_message
 +        client operations.  Affected files are
 +        lib/silcclient/client_prvmsg, lib/silcclient/client_channel.c,
 +        lib/silcclient/silcclient.h, irssi/src/silc/core/client_ops.c,
 +        and lib/silcclient/client_ops_example.c.
 +
 +      * Added two new channel modes: SILC_CMODE_SILENCE_USERS
 +        and SILC_CMODE_SILENCE_OPERS which can be used to moderate
 +        the channel.  Updated protocol specs and impelemented this
 +        to client and server.  Protocol TODO #6.  Affected files are
 +        silcd/packet_receive.c, server_util.c, lib/silcclient/command.c,
 +        lib/silcclient/client_channel.c, lib/silccore/silcmode.h.
 +
 +        Added new options m and M to CMODE command in Irssi SILC
 +        client to set these modes.
 +
 +      * Deprecated all administrative commands from SILC protocol
 +        since they are highly implementation specific commands.
 +        Updated protocol specs.  Moved the old commands in
 +        implementations to private range of command types.  Affected
 +        files are silcd/command.c, lib/silcclient/command.c and
 +        lib/silcclient/command_reply.c.  Protocol TODO #8.
 +
 +      * Fixed a bug in server where sending unknown command crashes
 +        the server.  Affected file silcd/command.c.
 +
 +Wed Apr  3 09:57:47 CEST 2002  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Added SILC_PROTOCOLVERSION macro to check protocol version
 +        of a socket connection.  The affected file is
 +        lib/silcutil/silcsockconn.h.
 +
 +      * Added better error logging in rekey protocol.  Affected file
 +        silcd/protocol.c.
 +
 +      * Do not check public key types in SKE during rekey.  Affected
 +        file lib/silcske/payload.c.
 +
 +      * Fixed the rekey protocol with PFS, which was totally broken.
 +        Affected file silcd/protocol.c.
 +
 +Tue Apr  2 14:55:06 CEST 2002  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Some client implementations quit network by doing first LEAVE
 +        and then immediately SIGNOFF (like Bombyx).  We now do check
 +        after a short time after LEAVE notify and check whether the
 +        client is still valid after LEAVE, and if not we remove it from
 +        cache.  Affected file is lib/silcclient/client_notify.c.
 +
 +Tue Apr  2 13:39:04 CEST 2002  Johnny Mnemonic <johnny@themnemonic.org>
 +
 +      * Merged version 1.1.4 of zlib. Even if it not currently in use,
 +        it's good not to have security holes here.
 +
 +      * Fixed a negative refcount situtuation for the config context.
 +        Affected file is silcd/serverconfig.c.
 +
 +Mon Apr  1 20:15:10 CEST 2002  Johnny Mnemonic <johnny@themnemonic.org>
 +
 +      * ROBOdoc documented lib/silcutil/silcutil.h.
 +
 +Sat Mar 30 21:06:45 EET 2002  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Optimized even more the SilcPacketContext structure.  Now
 +        totally saved 16 bytes of memory per context after optimization.
 +        Affected files are lib/silccore/silcpacket.[ch].
 +
 +      * Made strict checks for valid SILC IDs.  Affected file is
 +        lib/silccore/silcid.c.
 +
 +Sat Mar 30 18:15:55 EET 2002  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Changed the object argument for silc_cipher_register,
 +        silc_hash_register, silc_hmac_register and silc_pkcs_register
 +        to const.  Affected files are lib/silccrypt/silccipher.[ch],
 +        silchash.[ch], silchmac.[ch] and silcpkcs.[ch].
 +
 +      * Changed the silc_get_username and silc_get_real_name to
 +        never fail.  Affected file lib/silcutil/unix/silcunixutil.c.
 +
 +      * Fixed the Irssi SILC Client to use the silc_get_username and
 +        silc_get_real_name insted of glib routines since the glib
 +        routines only corrupt stack.  Fixes the Irssi SILC to work in
 +        Cygwin.  Affected file irssi/src/silc/core/silc-core.c.
 +
 +      * Fixed the Irssi to not use g_get_home_dir since it crashes
 +        or returns garbage on cygwin and corrupts stack.  Added function
 +        get_home_dir to Irssi routines.  Affected files are
 +        irssi/src/core/misc.[ch] and irssi/src/core/core.c.
 +
 +Fri Mar 29 21:55:41 EET 2002  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Made some structure optimizations.  SFTP memory FS MemFSEntry
 +        entry structure.  Optimized SilcTask structure.  Optimized
 +        SilcPacketContext structure.
 +
 +        Affected files lib/silcsftp/sftp_fs_memory.c,
 +        lib/silcutil/silcschedule.c, lib/silccore/silcpacket.h.
 +
 +Fri Mar 29 10:41:07 EET 2002  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * And yet again reverted back the config thing since Johnny
 +        screwed it up.  Affected file silcd/serverconfig.[ch], server.c,
 +        and silcd.c.
 +
 +      * Fixed memory leaks from config object.  Affected files are
 +        silcd/serverconfig.[ch].
 +
 +      * Added support for adding new connections to the server in rehash.
 +        After rehash they take effect.
 +
 +        Added support for changing the maximum allowed connections in
 +        rehash.  The number can grow but going smaller is not supported.
 +
 +        Added function silc_server_num_sockets_by_remote to the
 +        silcd/server_util.[ch].
 +
 +        Affected files are silcd/server.c, and silcd/serverconfig.[ch].
 +
 +Fri Mar 29 03:26:12 CET 2002 Johnny Mnemonic <johnny@themnemonic.org>
 +
 +      * Added preliminary checking during config parsing for a valid
 +        public/private key and removed further checks in the code.
 +        Affected files are silcd/serverconfig.[ch], server.c.
 +
 +      * Moved functions silc_server_drop() and silc_server_daemonise()
 +        from server.c to silcd.c since they are stricly related to
 +        the application activity.
 +
 +      * Reverted a small part of the automatic ref/unref since
 +        it caused a double unref in some situations.  Affected
 +        files are silcd/silcd.[ch], server.c, serverconfig.c.
 +
 +      * Added some .cvsignore files in the lib directory.
 +
 +Thu Mar 28 22:51:15 EET 2002  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Fixed silc_net_gethostbyaddr to correctly resolve by
 +        address.  Affected file lib/silcutil/silcnet.c.
 +
 +      * Fixed the notify relaying to client.  The HMAC to be used
 +        with relayed packets ws wrong and caused decryption failure
 +        at the client end.  Affected file is silcd/packet_receive.c.
 +
 +Thu Mar 28 19:02:05 EET 2002  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Created new branch silc_protocol_1_0_branch.
 +
 +      * Reverted the silc_log_quick change in lib/silcutil/silclog.c.
 +
 +      * Changed the silc_server_config_* routines to be SilcServer
 +        independent.  They are now officially application specific code
 +        and not part of generic server implementation.  Affected files
 +        are silcd/serverconfig.[ch], silcd/silcd.c, silcd/server.c.
 +
 +Thu Mar 28 17:01:43 EET 2002  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Added automatic referencing of config context in the
 +        silc_server_config_alloc, and automatic unreferencing in the
 +        silc_server_config_destroy.  Affected files are
 +        silcd/serverconfig.[ch], silcd/silcd.c.
 +
 +      * Fixed the silc_log_quick handling in the logging routines.
 +        It didn't log quickly when it was TRUE.  Affected file is
 +        lib/silcutil/silclog.c.  Also the flush delay was set even
 +        if it was 0 in config file.  Affected file is
 +        silcd/serverconfig.c.
 +
 +      * Added support for changing key pair of the server in rehash.
 +        Affected file silcd/server.c.
 +
 +Thu Mar 28 12:17:21 CET 2002  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Fixed the TOPIC_SET notify to not cras.  It changed the topic
 +        too early, before getting the channel entry.  Affected file
 +        is silcd/packet_receive.c.
 +
 +Thu Mar 28 09:58:16 CET 2002  Johnny Mnemonic <johnny@themnemonic.org>
 +
 +      * Added functions silc_server_config_[ref/unref], these are used
 +        to prevent that the config object is destroyed.
 +
 +        No longer directly affect global variables silc_log_quick and
 +        silc_log_delay, they are first cached inside the config object
 +        and then applied with silc_server_config_setlogfiles().
 +
 +        silc_server_config_set_defaults() is now internal to
 +        serverconfig.c, there are no reasons to show this internal stuff
 +        to the server.
 +
 +        Affected files are silcd/serverconfig.[ch].
 +
 +      * Added macro SILC_SERVER_LOG_STDERR(), this should replace most
 +        fprintf's to stderr, since some code may be executed again after
 +        the server went into the background.  Affected files are
 +        silcd/server.[ch].
 +
 +      * Added rehash support. Added function silc_server_rehash() that
 +        will perform all the basic tasks of the rehashing procedure.
 +
 +      * Added command line option `-x, --hexdump'. This will enable the
 +        SILC_LOG_HEXDUMP calls that are no longer enabled with `--debug'.
 +        The option `--hexdump' implies `--debug'.
 +
 +      * Fixed a bad bug in the logging APIs (silcutil library) where
 +        the application would crash after calling silc_log_reset_all().
 +
 +Wed Mar 27 19:43:16 EET 2002  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Fixed the KICKED notify handling in client library to
 +        correctly remove the channel and all entries from the
 +        channel when I was kicked.  This bug crashed the client.
 +
 +        Fixed yet another but in KICKED notify handling to remove
 +        the kicked client correctly from the channel.
 +
 +        Affected file is lib/silcclient/client_notify.c.
 +
 +      * Fixed a minor bug in looking up correct client entry
 +        in KICKED notify in server.  Affected file is
 +        silcd/packet_receive.c.
 +
 +      * Fixed the lib/silcmath/Makefile.am to include the MPI and GMP
 +        sources correctly to distribution.  Fixes --with-gmp option.
 +
 +      * Removed the manual rehashing from ID Cache, and changed it
 +        to use the SILC Hash Table's auto rehash feature.  Affected
 +        file is lib/silccore/silcidcache.c.
 +
 +Wed Mar 27 00:07:11 EET 2002  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Fixed a bug in the silc_client_nickname_format function that
 +        handles the multiple same nickname formatting.  Two clients
 +        with same nickname caused problems after the first one left
 +        and rejoined.  It didn't format the nickname correctly.
 +        Affected file is lib/silcclient/idlist.c.
 +
 +Tue Mar 26 19:33:03 CET 2002  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Don't change the topic if olod topic is same as new one.
 +        Affected file is silcd/packet_receive.c.
 +
 +Mon Mar 25 21:11:35 EET 2002  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Added cross-reference support to the SILC Documentation
 +        generator.  All types across all HTML files are now cross-
 +        referenced.  Affected files util/robodoc/generator.c and
 +        scripts/silcdoc/silcdoc.
 +
 +      * Added file lib/silcutil/silctypes.h to include all the
 +        arithmetic type definitions and some macros.  Removed
 +        includes/bitmove.h and moved macros to silctypes.h.
 +
 +Mon Mar 25 17:19:46 EET 2002  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Merged bugfixes for Irssi SILC client from irssi.org CVS.
 +
 +Sun Mar 24 11:21:04 EET 2002  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Added `type' argument to silc_id_payload_parse_id function which
 +        now returns the type of the ID to the sent pointer.  Affected
 +        file is lib/silccore/silcid.[ch].
 +
 +      * Added check for CMODE_CHANGE notify type that mode change is
 +        allowed by the sender.  Affected file silcd/packet_receive.c.
 +
 +      * Added check for CUMODE_CHANGE notify type that mode change is
 +        allowed by the sender.  Affected file silcd/packet_receive.c.
 +        Added the ID type as CUMODE_CHANGE notify type as argument
 +        to the `notify' client operation.  Affected files are
 +        lib/silcclient/client_notify.c, irssi/src/silc/core/client_ops.c.
 +
 +      * Added function silc_client_add_server to the client library.
 +        Added support for resolving also channel and server info when
 +        received unknown entity in notify packet.  Affected files are
 +        lib/silcclient/idlist.[ch], lib/silcclient/client_notify.c.
 +
 +      * Added function silc_command_get_status to return the command
 +        status from the command reply's argument payload.  Affected files
 +        are lib/silccore/silccommand.[ch].
 +
 +      * Added check for KICKED notify type that the kicking is
 +        allowed by the client.  Affected file silcd/packet_receive.c.
 +
 +      * Created function silc_get_input which can be used to get input
 +        (echo on or off) from user on command line.  Affected files are
 +        lib/silcutil/silcutil.[ch].
 +
 +Sat Mar 23 09:51:26 EET 2002  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Optimized silc_server_packet_relay_to_channel function.
 +        Added new function silc_channel_message_payload_encrypt which
 +        can be called directly if channel message payload needs to
 +        be encrypted and is already encoded (no need to call _encode
 +        function).  Packet relaying is now done by router without any
 +        extra memory allocations.  Affected files are
 +        lib/silccore/silcchanel.[ch], silcd/packet_receive.c and
 +        silcd/packet_send.c.
 +
 +      * Fixed the INVITE notify handling.  It took wrong arguments
 +        as invite list and invite delete.  Affected file is
 +        silcd/packet_receive.c.
 +
 +      * Added check for TOPIC_SET notify type that the topic change is
 +        allowed by the client.  Affected file silcd/packet_receive.c.
 +
 +      * Added check for INVITE notify type that inviting is allowed by
 +        the client.  Affected file silcd/packet_receive.c.
 +
 +      * Changed the silc_server_client_on_channel to return the
 +        SilcChannelClientEntry as well.  Moved the function
 +        silc_server_check_cmode_rights to server_util.[ch].
 +        Affected files are silcd/server_util.[ch], silcd/command.c.
 +
 +      * Added function silc_server_check_umode_rights to check whether
 +        changing client's user mode is allowed.  Added check for
 +        UMODE_CHANGE notify type that the umode change is allowed
 +        by the client.  Affected files are silcd/server_util.[ch],
 +        silcd/packet_receive.c and silcd/command.c.
 +
 +Fri Mar 22 12:25:58 CET 2002  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Fixed the SILC_PACKET_MAX_ID_LEN to actually be the max
 +        ID length.  It ignored that ID can be IPv6 based as well.
 +        Affected file lib/silccore/silcpacket.h.
 +
 +      * Fixed the silc_id_id2str and silc_id_str2id to take the
 +        IPv6 address offset's into consideration.  Affecte file is
 +        lib/silccore/silcid.c.
 +
 +Thu Mar 21 20:44:13 EET 2002  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Fixed the internal Unix scheduler functions to check for
 +        NULL context they may receive.  The affected file is
 +        lib/silcutil/unix/silcunixschedule.c.
 +
 +Thu Mar 21 19:12:22 EET 2002  Timo Sirainen <tss@iki.fi>
 +
 +      * Changed hardcoded ~/.silc paths to use get_irssi_dir() so you
 +          can specify different directory with --home command line
 +        parameter. Affected files irssi/src/silc/core/client_ops.c,
 +          clientutil.c
 +
 +        * SILC-specific commands aren't now executed if the active server
 +          isn't of SILC-type, so there won't be problems with having
 +          IRC and SILC protocol support in same client. Affected files
 +          irssi/src/silc/core/silc-channels.c, silc-servers.c,
 +        silc-commands.h
 +
 +Wed Mar 20 11:06:57 CET 2002  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Improved the signal support in SILC Schedule.  Added new
 +        function silc_schedule_signal_call which is used by application
 +        to mark a signal to be called.  It is now safe to perform
 +        any kind of tasks in signal callbacks since it is guaranteed
 +        that the application specified signal callback is called
 +        after the signal is over.  Affected files are
 +        lib/silcutil/silcschedule.[ch], lib/silcutil/*/silc*schedule.c.
 +
 +Tue Mar 19 20:42:41 EET 2002  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Added `name' field to SilcChannelPrivateKey to represent
 +        application given name for the key.  Moved also the context from
 +        lib/silcclient/idlist.h into lib/silcclient/silcclient.h.
 +        Added the `name' argument also to the function
 +        silc_client_add_channel_private_key.
 +
 +        Added function silc_client_current_channel_private_key to set the
 +        current channel private key in use.
 +
 +        Added "change" command to KEY command which can be used to change
 +        the current channel private key.  Bound the command also to
 +        alt+K (Alt+Shift+k).
 +
 +        Also affected files lib/silcclient/client_channel.c,
 +        irssi/src/docs/help/in/key.in, irssi/src/silc/core/silc-channel.c.
 +
 +Tue Mar 19 16:32:43 CET 2002  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Added silc_rng_get_byte_fast function in to the
 +        lib/silccrypt/silcrng.[ch].
 +
 +      * Changed the interface of silc_packet_assemble and the
 +        silc_packet_send_prepare.  If silc_packet_assmble is now
 +        called the application does not call silc_packet_send_prepare
 +        because the library will call it automatically.  These
 +        interfaces now also return a reference to the outgoing buffer
 +        which includes the assembled packet, which the application can
 +        use to encrypt the packet.
 +
 +        Affected files are lib/silccore/silcpacket.[ch],
 +        lib/silcclient/client.c, client_channel.c client_prvmsg.c,
 +        silcd/packet_send.c, server_backup.c and packet_receive.c.
 +
 +      * Fixed a packet sending bug on very high load, where outgoing
 +        packet queue wasn't handled correctly and packets got corrupted.
 +        Affected files are lib/silcutil/*/silc*sockconn.c,
 +        lib/silcclient/client.c and silcd/server.c.
 +
 +Mon Mar 18 21:00:41 EET 2002  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Added macro SILC_PACKET_DATALEN which can be used during
 +        packet assembling to check whether the data to be added to
 +        the packet will fit to SILC_PACKET_MAX_LEN.  If not the data
 +        len is truncated until it fits it.
 +
 +        Added checks for maximum length of channel message payload and
 +        private message payload also.
 +
 +        Added checks for maximum packet length in server and in
 +        client library.
 +
 +        Affected files are lib/silccore/silcpacket.h, silcd/packet_send.c,
 +        lib/silcclient/client.c, lib/silccore/silcchannel.c and
 +        lib/silccore/silcprivate.c, lib/silcclient/client_channel.c and
 +        lib/silcclient/client_prvmsg.c.
 +
 +Mon Mar 18 14:54:42 CET 2002  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Added silc_server_packet_queue_purge call to the
 +        silc_server_disconnect_remote to assure that all data in the
 +        queue before disconnecting is sent to the network.  Affected
 +        file silcd/server.c.
 +
 +Sun Mar 17 19:26:16 EET 2002  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Added the deleting of server's own ID cache entry to the
 +        silc_server_free function.  Free also everything else that
 +        has been allocated in silc_server_init.  The affected file
 +        is silcd/server.c.
 +
 +Sun Mar 17 15:44:56 EET 2002  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Added functions silc_parse_version_string, silc_version_to_num,
 +        and silc_ske_parse_version to parse SILC protocol style version
 +        strings.  Affected files lib/silcutil/silcutil.[ch] and
 +        lib/silcske/silcske.[ch].
 +
 +      * Added new configuration params: version_protocol, version_software
 +        and version_software_vendor to specify what version the remote
 +        host must at least be to be able to connect to server.  The vendor
 +        string can be regex matched too.  Added new function
 +        silc_server_connection_allowed to check maximum number of allowed
 +        connections, and allowed versions for incoming connections.
 +        Affected files are silcd/server.c, server_util.[ch] and
 +        serverconfig.[ch].
 +
 +Sun Mar 17 10:24:50 EET 2002  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Added preliminary support for signals in scheduler.  The
 +        signals we care about are now blocked always when the scheduler
 +        is locked.  This way we can synchronise the use of signal with
 +        scheduler.  It is guaranteed that when signal occurs the scheduler
 +        is not locked, and thus new tasks can be safely added to the
 +        scheduler.
 +
 +        Renamed silc_schedule_wakeup_init and silc_schedule_wakeup_uninit
 +        to silc_schedule_internal_init and silc_schedule_internal_uninit.
 +        Added new platform specific routines
 +        silc_schedule_internal_signals_[un]block and
 +        silc_schedule_internal_signal_[un]register.
 +
 +        Added new functions to SILC Schedule API:
 +        silc_schedule_signal_[un]register.  Each signal that application
 +        is going to use should be registered to the scheduler.
 +
 +        Affected files are lib/silcutil/silcschedule.[ch],
 +        lib/silcutil/*/silc*schedule.c.
 +
 +Sat Mar 16 22:39:23 EET 2002  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Check for unauthenticated client and server in the
 +        silc_server_new_client and silc_server_new_server functions.
 +        Affected file silcd/packet_receive.c.
 +
 +      * Added function silc_string_is_ascii to check whether given
 +        string is 7-bit ASCII string.  Affected files are
 +        lib/silcutil/silcutil.[ch].
 +
 +      * Added function silc_id_is_valid_server_id into the
 +        silcd/serverid.c and added checking for valid Server ID's in
 +        silc_server_new_server.  The Server ID must always be based
 +        on the server's public IP address.
 +
 +      * Added logging of DISCONNECT packet message in the server.
 +        Affected file silcd/server.c.
 +
 +Sat Mar 16 18:04:30 EET 2002  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Changed all library interfaces that use Global RNG to also
 +        accept SilcRng as argument.  Affected files are
 +        lib/silcclient/command.c, lib/silccore/silcauth.[ch],
 +        lib/silccore/silcchanel.[ch], lib/silcclient/client_channel.c,
 +        silcd/packet_send.c, lib/silccore/silcprivate.[ch],
 +        lib/silcmath/silcprimegen.c, lib/silcmath/silcmath.h, and
 +        lib/silccrypt/rsa.c.
 +
 +      * Added function silc_pkcs_generate_key to the
 +        lib/silccrypt/silcpkcs.[ch] for applications so that they
 +        don't need to do pkcs->pkcs->init calls anymore.
 +
 +      * Remove SilcSocketConnection from the SFTP API since it really
 +        wasn't needed there.  The application has the information
 +        saved in its contexts anyway and the SFTP layer doesn't need
 +        know about it.  Affected files lib/silcsft/silcsftp.h and
 +        lib/silcsftp/sftp_[server/client].c.
 +
 +      * Rewrote the SILC SIM (modules) interface in lib/silcsim.[ch].
 +        The SilcSimContext is not SilcSim.
 +
 +      * Fixed possible buffer overflows in silc_id_render in the
 +        lib/silcutil/silcutil.c.
 +
 +      * On EPOC the global crypto module lists are not used at all
 +        in the crypto library.  Added support for using the constant
 +        algorithm list on EPOC.  Affected files are
 +        lib/silccrypt/silccipher.c, silchash.c, silchmac.c and
 +        silcpkcs.c.
 +
 +      * Fixed the handling of third parameter of KICKED notify, since
 +        it was mistakenly updated to SILC Protocol 1.0 even though it
 +        is to be included in 1.1.  Since it is not in 1.0 it is not
 +        mandatory, and this fix now handles it only if it is provided,
 +        and it is not error if it is not provided.  Affected file
 +        lib/silcclient/client_notify.c.
 +
 +Sat Mar 16 09:07:27 EET 2002  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Handled CHANNEL_CHANGE notify (ignore it) in Irssi SILC
 +        client.  Affected file irssi/src/silc/core/client_ops.c.
 +
 +      * Merged with Irssi 0.8.4 from irssi.org CVS.
 +
 +Thu Mar 14 12:53:57 CET 2002  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Check for valid socket connection in client entries before
 +        sending any messages.  Fixes a crash, but doesn't fix some
 +        other underlaying bug that is lurking there.  Affected
 +        file silcd/packet_send.c.
 +
 +Thu Mar 14 13:38:12 EET 2002  Timo Sirainen <tss@iki.fi>
 +
 +      * $usermode, $cumode and $cumode_space expandos shouldn't do
 +        anything with non-SILC server records. Affected file
 +        irssi/src/silc/core/silc-expandos.c
 +
 +Wed Mar 13 21:38:26 EET 2002  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Fixed the silc_net_check_[host/local]_by_sock to support
 +        IPv6 bound sockets as well.  Now they can return IPv6 addresses
 +        as well.  Affected file lib/silcutil/silcnet.c.
 +
 +      * Fixed silc_net_addr2bin to correctly convert IPv6 addresses.
 +        Affected lib/silcutil/unix/silcunixnet.c.
 +
 +      * Fixed ID rendering (at least on some platforms, not NetBSD)
 +        for IPv6 addresses.  Affected file lib/silcutil/silcutil.c.
 +
 +Tue Mar 12 17:58:59 EET 2002  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Added silc_hash_public_key and silc_hash_public_key_compare
 +        functions to be used with SilcHashTable.  They can be used to
 +        hash public keys and compare public keys in hash table.  Affected
 +        file lib/silcutil/silcutil.[ch].
 +
 +      * Added support for specifying multiple public keys for Client
 +        connection section in server configuration file.  This makes it
 +        possible to accept multiple public keys from same host, or to
 +        make a section that accepts any incoming host, and have the
 +        accepted public keys listed in the section.
 +
 +        Added functions silc_sever_[find/get]_public_key,  added the
 +        support for this actually to all connection sections but only
 +        the Client section is currently allowed to specify multiple
 +        public keys.
 +
 +        Affected files are silcd/server.c, server_internal.h,
 +        command.c, protocol.c, server_util.[ch], packet_receive.c.
 +
 +Mon Mar 11 23:37:38 EET 2002  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Merged Irssi 0.8.2 from irssi.org CVS.
 +
 +Sun Mar 10 23:34:48 CET 2002  Johnny Mnemonic <johnny@themnemonic.org>
 +
 +      * If silc_debug is TRUE, also output standard logging messages
 +        to stderr with the debug output.
 +
 +        Made silc_log_reset_all() flushing all channels before returning.
 +        Also fixed some documentation typos.
 +
 +        Affected files are lib/silcutil/silclog.[ch].
 +
 +Sun Mar 10 20:07:49 EET 2002  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Fixed the server to check correctly the amount of connections
 +        from single host, by checking also the type of the connection.
 +        Fixed also the comparison of number of connections and number
 +        of allowed connections.  Affected files are silcd/server.c,
 +        server_util.[ch].
 +
 +Fri Mar  8 17:16:41 EET 2002  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Fixed the USERS command reply to save the user's mode on the
 +        channel as well.  Fixed JOIN command reply to check whether a
 +        client is on channel already and not join it twice.  Affected
 +        file lib/silcclient/command_reply.c.
 +
 +      * Added new file silc-expandos.c into irssi/silc/core/ to return
 +        various stuff for various signal for the statusbar etc. updating.
 +        Now Irssi SILC client prints channel user modes etc. on the
 +        statusbar.
 +
 +      * The user mode (like server/router operator changes) is now shown
 +        on the Irssi SILC client's statusbar.  The affected files are
 +        irssi/src/silc/core/client_ops.c, silc-expandos.c.
 +
 +Thu Mar  7 19:21:22 EET 2002  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Changed silc_mutex_[un]lock calls in lib/silcutil/silcschedule.c
 +        to SILC_SCHEDULE_[UN]LOCK macros.
 +
 +      * Added more error printing to logs in server code.  Affected
 +        files silcd/server.c and silcd/protocol.c.
 +
 +      * Fixed -S option parsing in Irssi SILC Client.  Affected file
 +        irssi/src/silc/core/silc-core.c.
 +
 +      * Added silc_buffer_alloc_size function.  Affected file is
 +        lib/silcutil/silcbuffer.h.
 +
 +Tue Mar  5 14:37:27 EET 2002  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Changed all silc_[hash|hmac|cipher|pkcs]_default tables to
 +        constants.  Affected files in
 +        lib/silccrypt/silcpkcs.[ch], silchash.[ch], silchmac.[ch] and
 +        silccipher.[ch].
 +
 +      * Changed the internal SFTP Memory FS table to const.  Affected
 +        file lib/silcsftp/sftp_fs_memory.c.
 +
 +Sun Mar  3 18:37:13 EET 2002  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Fixed the buffer formatting and unformatting routines to
 +        check the size of 64 bits types with sizeof().  Affected
 +        file is lib/silcutil/silcbuffmt.c.
 +
 +Mon Feb 25 17:19:05 EET 2002  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Removed 0.6.x backwards support.
 +
 +Sun Feb 24 12:53:25 EET 2002  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Changed all integer type names:
 +        [u]int[8/16/32/64] -> Silc[UInt/Int][8/16/32/64].  This is
 +        to avoid collisions with other libraries using same type names
 +        as we did.
 +
 +Sat Feb 23 20:31:43 EET 2002  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Added `prefer_ipv6' argument to the functions
 +        silc_net_gethostbyname[_async].  If it is TRUE it will return
 +        IPv6 address over IPv4.  If FALSE IPv4 address is returned
 +        even if IPv6 address was found.  Affected files
 +        lib/silcutil/silcnet.[ch].
 +
 +      * Added support silc_net_create_connection[_async] to fallback
 +        to IPv4 address if IPv6 address could not be used (like if
 +        it doesn't work on a specific system).  Affected file in
 +        lib/silcutil/unix/silcunixnet.c.
 +
 +Sat Feb 23 15:20:30 EET 2002  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Added silc_schedule_reinit function to do the enlarging
 +        of the max tasks handling capabilities of the scheduler.
 +        Affected files lib/silcutil/silcschedule.[ch].
 +
 +Wed Feb 20 20:41:01 EET 2002  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Added automatic extern "C" { ... } for C++ compilers so the
 +        application does not need to define them.  Affected file
 +        includes/silcincludes.h.
 +
 +      * Renamed lib/silcclient/silcapi.h to silcclient.h as the
 +        old name went against naming convention.  Applications now
 +        include "silcclient.h" instead of "clientlibincludes.h".
 +        Removed includes/clientlibincludes.h, it is redundant now.
 +
 +      * Renamed includes/version.h to silcversion.h.
 +
 +      * Added really preliminary support for OS/2 into the util
 +        library.  Only thread & mutex API is implemented, others
 +        are still to be implemented.  Created the lib/silcutil/os2/
 +        directory.  Created also file includes/silcos2.h.
 +
 +Wed Feb 20 18:48:49 EET 2002  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Added preliminary BeOS support into the util library.
 +        Created lib/silcutil/beos/, and implemented all the needed
 +        functions to support SILC on BeOS.  Created also file
 +        includes/silcbeos.h.
 +
 +Mon Feb 18 15:49:22 EET 2002  Timo Sirainen <tss@iki.fi>
 +
 +      * Added proper initializations to silc's irssi code, so it's
 +        now possible to load it as module.  Affected files
 +        irssi/src/silc/core/silc-core.c,
 +        fe-common/silc/fe-common-silc-core.[ch] and fe-text/silc.c
 +
 +Sun Feb 17 19:02:56 EET 2002  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Merged latest Irssi (0.8.1) from the irssi.org's CVS into
 +        the SILC tree.
 +
 +      * Fixed the silcdoc document generator to correct generate
 +        docs from all kinds of filenames.  Affected files are
 +        util/robodoc/Source/generator.c, scripts/silcdoc/silcdoc
 +
 +      * ROBOdoc documented lib/silcutil/silcmemory.h.
 +        Added also new function silc_memdup.
 +
 +      * Removed lib/silcutil/silcbufutil.h and moved those routines
 +        to the lib/silcutil/silcbuffer.h.
 +
 +Sun Feb 17 15:52:30 EET 2002  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Added `user_count' to the SilcChannelEntry which now tells the
 +        number of users on the channel.  The user count is now saved
 +        in normal server of global channels as well.  Affected files
 +        silcd/server.c, idlist.h, packet_receive.c and command.c.
 +
 +      * Splitted lib/silcutil/silcutil.[ch] into silcfileutil.[ch] to
 +        include file utility functions.
 +
 +      * Fixed the lib/silcsftp/sftp_fs_memory.c to use silcutil routines
 +        instead of calling directly OS routines.
 +
 +      * Fixed NICK change printing in Irssi SILC Client. Fixed
 +        KICKED notify printing in Irssi SILC Client.  Affected file
 +        irssi/src/silc/core/client_ops.c.
 +
 +      * Fixed a NICK change bug in client library, to not recreate the
 +        client_entry->channels hash table everytime nick is changed.
 +        Affected file lib/silcclient/client.c.
 +
 +Sun Feb 17 10:10:14 EET 2002  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * ROBOdoc documented the lib/silcske/silcske.h, and improved
 +        the SKE interface a bit.
 +
 +      * Fixed padding problem in PKCS#1. The padding was not actually
 +        random since the random number generator was used incorrectly.
 +        This security bug affects only when encrypting with PKCS#1, and
 +        it is not currently used at all in SILC. SILC only use signing
 +        with PKCS#1. Affected file lib/silccrypt/pkcs1.c.
 +
 +Sat Feb 16 13:44:24 EET 2002  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Rewrote the notify handling in Irssi SILC client to not call
 +        the events as signals.  Fixes problems with Perl support.
 +        Affected files irssi/src/silc/core/client_ops.c, silc-channels.c.
 +
 +      * Send the auto-nicking NICK command in client library with
 +        little timeout after connecting.  The affected file is
 +        lib/silcclient/client.c.
 +
 +      * Added following new config file settings:
 +        channel_rekey_secs, key_exchange_rekey, key_exchange_pfs,
 +        key_exchange_timeout, conn_auth_timeout, connections_max,
 +        links_max.
 +
 +        Implemented all the new config settings handling in the server.
 +
 +        Optimized the use of SKE Mutual flag usage.  Use it only
 +        if connection authentication protocol is not based in public
 +        key authentication.
 +
 +        Renamed all SilcServerConfigSection* to SilcServerConfig*
 +        to have a bit shorter names.
 +
 +        Affected files silcd/serverconfig.[ch], server.[ch], and
 +        protocol.[ch].
 +
 +Sat Feb 16 02:46:43 CET 2002  Johnny Mnemonic <johnny@themnemonic.org>
 +
 +      * Cleaned up the listening sockets code, preparing for the rehash
 +        support.  Affected file is silcd/server.c.
 +
 +      * Fixed some output messages.  Affected files are silcd/silcd.c,
 +        and silcd/server.c.
 +
 +Fri Feb 15 19:10:20 EET 2002  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Create lib/doc/silcrng_intro.html document as introduction
 +        to SILC RNG.  ROBOdoc documented lib/silccrypt/silcrng.h.
 +
 +Fri Feb 15 13:23:03 CET 2002  Johnny Mnemonic <johnny@themnemonic.org>
 +
 +      * Fixes to the silcd config template.  Affected file is
 +        doc/example_silcd.conf.in.
 +
 +      * Removed type casts from silc_calloc(), conforming to the
 +        CodingStyle.  Affected file is lib/silcutil/silcconfig.c.
 +
 +      * Removed param_name member from client, server, and router
 +        section structs, now identifying the param directly.
 +
 +        Added CONFIG_FREE_AUTH macro in config file parsing.
 +
 +        Affected files are silcd/serverconfig.[ch].
 +
 +Fri Feb 15 12:24:08 EET 2002  Timo Sirainen <tss@iki.fi>
 +
 +      * Fixed command line parameter handling. All SILC initialization
 +          is now done in silc_core_init() which also fixes autoconnecting
 +        to servers.
 +
 +        Affected files irssi/src/silc/core/silc-core.c,
 +        irssi/src/fe-text/silc.c.
 +
 +Thu Feb 14 22:03:58 EET 2002  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Added new configuration options and blocks:
 +        keepalive_secs, reconnect_count, reconnect_interval,
 +        reconnect_interval_max, reconnect_keep_trying and
 +        require_reverser_lookup.  Added ConnectionParam block, and
 +        implemented the connection parameters when connecting as
 +        initiator and when accepting connections as responder.
 +
 +        Added CONFIG_IS_DOUBLE macro in config file parsing, to check
 +        whether given configuration value has been given already.
 +
 +        Affected files silcd/serverconfig.[c], server.[c].
 +
 +      * Splitted the doc/example_silcd.conf.in.  Separated the crypto
 +        algorithm parts and created new file silcalgs.conf, that
 +        is now included from the example_silcd.conf.in.
 +
 +      * Optimized the silc_server_connect_to_router_second to take
 +        the connection configuration object from the SilcServerConnection
 +        object instead of finding it during the connecting phase.
 +        Added the configuration object to SilcServerConnection struct.
 +        Affected files silcd/server_internal.h, server.c.
 +
 +Thu Feb 14 16:02:26 CET 2002  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Add the client on channel after it was resolved at the
 +        channel message receiving, and it was not already on the
 +        channel.  Affected file lib/silcclient/client_channel.c.
 +
 +Wed Feb 13 23:16:41 EET 2002  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Fixed the public key authentication to allocate always the
 +        destination signature buffer instead of using static buffer.
 +        Affected file silcd/protocol.c.
 +
 +Wed Feb 13 20:51:13 EET 2002  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Unified the serverconfig.[ch]'s helper function interface.
 +        Affected file silcd/serverconfig.[ch].
 +
 +      * Removed doc/example_silc.conf.in since it is redundant.
 +        The make install will now install irssi/silc.conf file.
 +
 +      * Added new Passphrase and Publickey authentication methods to
 +        config file, allowing both public key and passphrase based
 +        authentication to be set at the same time.
 +
 +        Added `prefer_passphrase_auth' setting in config file which
 +        can be used to set to prefer passwd auth if both passwd and
 +        public key is set.  If not set, public key is preferred.
 +        This has effect only when being initiator (responder will try
 +        both anyway).
 +
 +        Added support for authentication with passphrase and public key
 +        at the same time.  The passphrase is tried first always since
 +        it is faster to check.
 +
 +        Affected file silcd/serverconfig.[ch], server.c, protocol.[ch].
 +
 +Wed Feb 13 12:46:25 CET 2002  Johnny Mnemonic <johnny@themnemonic.org>
 +
 +      * Merged the new SILC Config library, with the server parsing
 +        support.  Read the header file silcconfig.h or the toolkit
 +        documentation for the news.  Affected files are
 +        doc/example_silcd.conf.in lib/silcutil/silcconfig.[ch]
 +        silcd/command.c silcd/packet_receive.c silcd/packet_send.c
 +        silcd/protocol.c silcd/server.c silcd/server_backup.c
 +        silcd/serverconfig.[ch] silcd/silcd.c.
 +
 +      * Fixed some silclog documentation.  Affected file is
 +        lib/silcutil/silclog.h.
 +
 +Sun Feb 10 18:11:30 EET 2002  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * The silc_cipher_register, silc_hash_register and
 +        silc_hmac_register now checks if the object to be registered
 +        is registered already.  Affected files are
 +        lib/silccrypt/silccipher.c, silchash.c and silchmac.c.
 +
 +Sun Feb 10 15:48:38 EET 2002  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Merged new irssi from irssi.org's CVS, the version 0.7.99.
 +
 +Sat Feb  9 14:54:33 EET 2002  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Allow zero length channel messages inside the Channel Message
 +        Payload.  Affected file lib/silccore/silcchannel.c.
 +
 +      * Fixed scripts/silcdoc/silcdoc to support all kinds of filenames
 +        as header filenames.
 +
 +      * Removed lib/silcclient/README and created HTML file
 +        lib/silcclient/silcclient_using.html, which is now included
 +        as part of Toolkit documentation.
 +
 +Thu Feb  7 10:12:25 CET 2002  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Fixed CUMODE_CHANGE notify handling to change the mode of
 +        correct client.  Affected file lib/silcclient/client_notify.c.
 +
 +      * Make silc_rng_alloc fail if it cannot allocate the sha1
 +        hash algorithm.  Affected file lib/silccrypt/silcrng.c.
 +
 +Sun Feb  3 17:20:52 EET 2002  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Fixed the file transfer's key agreement payload to include
 +        zero port also if the hostname is NULL because it could not
 +        be bound.
 +
 +        Call file transfer monitor callback now also if error occurs
 +        during key agreement protocol.
 +
 +        Changed the silc_client_file_send interface to return the
 +        SilcClientFileError instead of session id.  The session ID
 +        is returned into pointer provided as argument.
 +
 +        Check that the file exists locally before sending the
 +        file transfer request at all.
 +
 +        Affected file lib/silcclient/client_ftp.c, silcapi.h.
 +
 +      * Added SILC_CLIENT_FILE_KEY_AGREEMENT_FAILED file transfer
 +        error than can occur while key agreement protocol.  Affected
 +        file lib/silcclient/silcapi.h.
 +
 +      * Fixed the event_mode CMODE handler to not crash when mode
 +        is changed and +k mode is set in the channel.  Affected file
 +        irssi/src/silc/core/silc-channels.c.
 +
 +      * Fixed SILC_LOG_ERROR to give out Error and not Warning, and
 +        SILC_LOG_WARNING to give out Warning and not Error.  Affected
 +        file lib/silcutil/silclog.c.
 +
 +      * Fixed the channel message payload decryption in the function
 +        silc_channel_message_payload_decrypt to not modify the original
 +        buffer before it is verified that the message decrypted
 +        correctly.  Otherwise, next time it is called with correct
 +        channel key it won't encrypt since the payload is corrupted.
 +        Affected file lib/silccore/silcchannel.c.
 +
 +Sun Feb  3 11:46:12 EET 2002  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Do not constantly resize the window.  A fix patch by cras.
 +        Affected file irssi/src/fe-text/screen.c.
 +
 +Sat Feb  2 16:54:18 EET 2002  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Applied IPv6 fix patch from Jun-ichiro itojun Hagino.
 +        Affected file lib/silcutil/silcnet.c.
 +
 +Fri Feb  1 22:33:11 EET 2002  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Fixed a bug in hash table internal routine for traversing
 +        the table with foreach callback.  The current entry may
 +        become invalid in the callback but it was referenced after
 +        the callback returned.
 +
 +        Do not allow auto rehashing of hash table during the
 +        silc_hash_table_foreach operation, for same reasons as it is
 +        not allowed for SilcHashTableList.  Affected files are
 +        lib/silcutil/silchashtable.[ch].
 +
 +Fri Feb  1 14:55:00 CET 2002  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Defined DLLAPI into silcincludes.h and silcwin32.h for
 +        Win32 DLL.  extern's in header files are now declared with
 +        DLLAPI.
 +
 +Thu Jan 31 23:34:33 EET 2002  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Fixed private message handling.  It used some old code that
 +        caused the client to crash.  Affecte file is
 +        lib/silcclient/client_prvmsg.c.
 +
 +Thu Jan 31 19:06:22 EET 2002  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Added function silc_client_add_channel,
 +        silc_client_replace_channel_id, and removed functions
 +        silc_client_new_channel_id and silc_idlist_get_channel_by_id
 +        from client library.
 +
 +      * Added cross reference of the joined channels to the
 +        SilcClientEntry, and changed the SilcChannelEntry's
 +        users list to SilcHashTable.  The affected files are
 +        lib/silcclient/idlist.[ch].
 +
 +      * Fixed a bug in hash table tarversing.  While the hash table
 +        is traversed with SilcHashTableList the table must not be
 +        rehashed.  It is now guaranteed that auto rehashable tables
 +        are not rehashed while tarversing the list.  Also defined that
 +        silc_hash_table_rehash must not be called while tarversing
 +        the table.  Added function silc_hash_table_list_reset that must
 +        be called after the tarversing is over.  The affected files are
 +        lib/silcutil/silchashtable.[ch].
 +
 +      * Changed all hash table traversing to call the new
 +        silc_hash_table_list_reset in server and in client library.
 +
 +      * Added function silc_client_on_channel to return the
 +        SilcChannelUser entry if the specified client entry is joined
 +        on the specified channel.  This is exported to application as
 +        well.  Affected files lib/silcclient/client_channel.c, silcapi.h.
 +
 +Wed Jan 30 19:14:31 EET 2002  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Fixed founder regaining problem with JOIN command on normal
 +        server.  The notify for mode change must be sent always and
 +        not only if !cmd->pending.  Affected file silcd/command.c.
 +
 +      * Fixed the WHOWAS command's reply sending to support the
 +        lists correctly.  Affected file silcd/command.c.
 +
 +Wed Jan 30 11:11:47 CET 2002  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * When sending JOIN command to router for processing the
 +        sender's old command identifier was not saved back to the
 +        sender's command context, fixed now.  The affected file is
 +        silcd/command.c.
 +
 +      * Create the key in JOIN command of the router did not return
 +        the channel key, added check for this.  Affected file is
 +        silcd/command.c.
 +
 +      * Fixed a channel ID update bug in JOIN command reply.  Do
 +        not directly upgrade the ID but call the function
 +        silc_idlist_replace_channel_id if the ID was changed.
 +        Affected file silcd/command_reply.c.
 +
 +      * Fixed memory leaks from command calling if it would fail.
 +        Affected file silcd/command.c.
 +
 +Tue Jan 29 19:49:31 EET 2002  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Applied patches from cras:
 +
 +        Memory leak fixes around libaries, irssi window resize fix,
 +        new silclist.h and silcdlist.h, all extern inline changed to
 +        static inline.
 +
 +      * Removed dotconf from lib/dotconf, not needed anymore.
 +
 +      * Removed TRQ from lib/trq, not needed anymore.
 +
 +      * Do more frequent heartbeats (5 minutes instead of 10 minutes)
 +        with server connections.  Later this will be configurable
 +        in config file after new config file is done.  Affected file
 +        silcd/server.c.
 +
 +Tue Jan 29 10:35:03 CET 2002  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Fixed a crash in server related to channel announcements.
 +        Affected file silcd/server.c.
 +
 +Mon Jan 28 17:49:42 EET 2002  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Fixed memory leaks in silc_server_create_new_channel*
 +        functions.  Affected file silcd/server.c.
 +
 +      * Fixed the CHANNEL_CHANGE notify to re-announce the channel
 +        which ID was changed.  This way the router will send the
 +        user list for the channel again, and server won't be in
 +        desync in some rare circumstances.  Affected file is
 +        silcd/packet_receive.c.
 +
 +Sun Jan 27 21:04:19 EET 2002  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Check for NULL socket pointer in the function
 +        silc_server_packet_send_to_channel_real.  Affected file
 +        silcd/packet_send.c.
 +
 +      * Fixed the BAN notify handling to correctly remove ban
 +        list.  Affected file silcd/packet_receive.c.
 +
 +Sat Jan 26 23:01:03 EET 2002  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Fixed some header addition to Toolkit distribution in
 +        lib/silcutil/Makefile.am and lib/trq/Makefile.am.
 +
 +      * Added lib/silcclient/client_ops_example.h as an template
 +        file for application programmers to quickly start using
 +        the SilcClientOperation functions in their application.
 +        Updated the lib/silcclient/README as well to tell about this
 +        nice file made available.
 +
 +Sat Jan 26 10:45:41 EET 2002  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Call silc_server_remove_from_channels when removing client
 +        entry when NO_SUCH_CLIENT_ID was received.  Affected file
 +        is silcd/command_reply.c.
 +
 +Fri Jan 25 19:12:36 EET 2002  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Added server & router operator statistics updating.  Affected
 +        file silcd/packet_receive.c and silcd/command.c.
 +
 +      * Fixed the SERVER_SIGNOFF notify handling on normal server
 +        not to save the history information for clients.  Same was
 +        fixed earlier in remove_clients_by_server function, but not
 +        here.  Affected file silcd/packet_receive.c.
 +
 +      * Raised the default connection-retry count from 4 to 7 in
 +        server.  Affected file silcd/server.h.
 +
 +      * Cancel any possible reconnect timeouts when we start the
 +        key exchange.  Affected file silcd/server.c.
 +
 +      * Do not reconnect on connection failure when SCONNECT was
 +        given.  Affected files silcd/server.[ch].
 +
 +Tue Jan 22 18:19:36 EET 2002  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Removed assert()'s from the lib/silcclient/client_keyagr.c.
 +
 +      * Fixed the NICK command to always give the unformatted
 +        nickname to the one giving the NICK command.  If unformatted
 +        nickname is cached already it will be formatted and the
 +        local entry will always get the unformatted nickname.
 +        Affected file lib/silcclient/idlist.c.
 +
 +      * Fixed some double frees from client library commands.
 +        Affected file is lib/silcclient/command.c.
 +
 +      * Fixed CUMODE command in server to assure that no one can
 +        change founder's mode than the founder itself, there was a
 +        little bug.  Affected file silcd/command.c.
 +
 +Mon Jan 21 19:07:53 EET 2002  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Removed the SilcClientCommandDestructor from the client
 +        libary, it is not needed anymore.  Affected files are
 +        lib/silcclient/silcapi.h, command[_reply].[ch],
 +        client_notify, idlist.c.
 +
 +      * Fixed GETKEY command to first resolve client, and then
 +        resolve the server only if the client was not found, instead
 +        of resolving both at the same time.  Affected file is
 +        lib/silcclient/command.c.
 +
 +      * Added silc_client_start_key_exchange_cb and lookup the
 +        remote hostname and IP address before starting the key
 +        exchange with server.  The affected file is
 +        lib/silcclient/client.c.
 +
 +      * The server's public key is now saved using the IP address
 +        of the server and not the servername for the filename.
 +        The hostname public key filename is checked as an fall back
 +        method if the IP address based filename is not found.
 +
 +        Fixed the GETKEY command to save the fetched server key
 +        in correct filename.
 +
 +        Print the remote server's hostname now when new key is
 +        received during connection process.  Affected file is
 +        irssi/src/silc/core/client_ops.c.
 +
 +      * Return always our own public key to the client if it asks
 +        for it with GETKEY command.  Affected file silcd/command.c.
 +
 +      * Removed the use_auto_addr variable from default config
 +        file since it was in wrong section.  Affected file is
 +        irssi/src/config.
 +
 +      * Fixed TOPIC_CHANGE notification to not route it when it
 +        was sent using silc_server_send_notify_to_channel function.
 +        Affected file silcd/command.c.
 +
 +      * Fixed silc_server_send_notify_kicked to send the kicker's
 +        Client ID also, it was missing.  Affected files are
 +        silcd/command.c, silcd/packet_send.[ch].
 +
 +Thu Jan 17 18:59:11 EET 2002  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Do not save client history information in SERVER_SIGNOFF.
 +        Fixes the bug in normal server that it does not detect
 +        the client becoming valid after the server becomes back
 +        online.  Affected file silcd/server_util.c.
 +
 +      * Added `sock_error' field  into the SilcSocketConnection
 +        context.  When error occurs during socket operation (read
 +        or write) the error is saved.  Added also new function
 +        silc_socket_get_error to return human readable socket error
 +        message.  Affected files are lib/silcutil/silcsockconn.[ch],
 +        lib/silcutil/unix/silcunixsockconn.c, and
 +        lib/silcutil/win32/silcwin32sockconn.c.
 +
 +      * The server now prints the socket error message in the
 +        signoff for client.  Affected file silcd/server.c.
 +
 +      * Fixed the `created' channel information sending from router
 +        to server in JOIN command.  Checks now whether the channel
 +        really was created or not and set it according that.
 +
 +        Fixed the JOIN command to use the client entry's current
 +        ID during the joining procedure instead of the one it sent
 +        in the command (it is checked though), since it can change
 +        between the packet processing and command processing, and
 +        would just case unnecessary pain in the client end.  Affected
 +        file silcd/command.c.
 +
 +      * Fixed a channel key payload sending to use correct channel
 +        ID when the server was forced to change the channel's ID by
 +        router.  Router sent the key payload with the old Channel ID.
 +        Affected file silcd/packet_receive.c.
 +
 +Wed Jan 16 22:26:30 EET 2002  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Call silc_server_save_channel_key only if the key payload
 +        was provided in the JOIN command's command reply.  Affected
 +        file silcd/command_reply.c.
 +
 +Tue Jan 15 18:49:41 EET 2002  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Fixed silc_mp_sizeinbase to return the value correctly with
 +        MPI.  Affected file lib/silcmath/mp_mpi.c.
 +
 +      * Fixed the stop_server signal to correctly stop the scheduler
 +        and gracefully stop the server when SIGTERM or SIGINT signals
 +        are received.  Affected file silcd/silcd.c.
 +
 +Mon Jan  7 23:38:19 CET 2002  Johnny Mnemonic <johnny@themnemonic.org>
 +
 +      * Simple handling of TERM and HUP signals. Also added some log
 +        flushing call around.  Affected file is
 +        silcd/silcd.c.
 +
 +      * Fixed small bugs in silclog.c. Now buffering output will take
 +        effect after 10 seconds since startup: This will ensure that
 +        no important startup messages are lost. Also output redirection
 +        will preserve original format ([Date] [Type] message).
 +        Affected file is lib/silcutil/silclog.c.
 +
 +      * Added two options to the config file, in the logging section:
 +        quicklogs:<yes/no>: and flushdelay:<seconds>:.  Affected files
 +        lib/silcutil/silclog.[ch], silcd/serverconfig.[ch].
 +
 +Sun Jan  6 12:49:40 EET 2002  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Do not print the warning about log files not being initialized
 +        more than once to avoid excess logging.  Affected file is
 +        lib/silcutil/silclog.c.
 +
 +      * Fixed the SIM compilation in lib/silcsim/Makefile.am.  Fixed
 +        the SIM copying in make install in Makefile.am.pre.
 +
 +Sun Jan  6 01:10:21 CET 2001  Johnny Mnemonic <johnny@themnemonic.org>
 +
 +      * Rewritten silclog APIs. Globally interesting changes follows:
 +        silc_log_set_files() changed to silc_log_set_file().
 +        silc_log_set_callbacks() changed to silc_log_set_callback().
 +        ROBOdoc documented silclog header file.
 +        SilcLogCb now returns bool to wether inihibit the default
 +        handler or not (to keep the old behaviour return always TRUE).
 +        The new APIs should also fix the problem of the
 +        silcd_error.log file that was written in the current directory.
 +
 +        New features:
 +        Log files streams will remain opened after silc_log_set_file()
 +        call, means less CPU usage notably on high traffic servers.
 +        File streams are now full buffered, and flushed to the disk
 +        every 5 minutes, lesses HD activity and CPU usage.
 +        Messages can be redirected, allowing admins to configure
 +        one single logfile for all server messages.
 +        the silc_log_quick global variable to activate fast-logging.
 +        Affected files lib/silcutil/silclog.[ch]
 +
 +      * Changed some code to conform new silclog APIs. Affected
 +        files are doc/example_silcd.conf.in, silcd/server.c
 +        irssi/src/silc/core/silc-core.c, silcd/serverconfig.[ch],
 +        silcd/silcd.c.
 +
 +      * Fixed a memory leak that could occur in some situations.
 +        Affected file silcd/serverconfig.c.
 +
 +Sat Jan  5 13:37:29 EET 2002  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Added the silc_client_del_client to remove the client from
 +        all channels as well.  Affected file lib/silcclient/idlist.c.
 +
 +      * Fixed the client library to correctly remove the client
 +        from all channels when the client entry is being destroyed.
 +        Affected file lib/silcclient/client_notify.c, command.c.
 +
 +      * Added auto-nicking support to the client library.  If the
 +        applicatio now sets client->nickname it will be sent to the
 +        server after connecting by the library.  This way for example
 +        SILCNICK (or IRCNICK) environment variables will have effect
 +        and always change the nickname automatically to whatever
 +        it is wanted.  Affected file lib/silcclient/client.[ch].
 +
 +      * Renamed silc_server_command_bad_chars to the
 +        silc_server_name_bad_chars and moved it to the
 +        silcd/server_util.[ch].  Added also new function
 +        silc_server_name_modify_bad to return nickname that
 +        includes bad characters as new nickname without those
 +        bad characters.  This check and modify is now used in
 +        silc_server_new_client when the username is initially set
 +        as nickname, so it must be checked to be valid nickname.
 +        Affected file silcd/packet_receive.c.
 +
 +      * The nickname length is now taken from the packet for real
 +        and not trusted to strlen() since it clearly can return
 +        wrong length for nickname including bad characters.  This
 +        also applies to channel names.  Affected file silcd/command.c.
 +
 +      * Removed the lib/silcsilm/modules directory.  Modules are now
 +        compiled into the lib/silcsim.  Fixed the copying of the
 +        modules to follow symbolic links in Makefile.am.pre.
 +
 +Wed Jan  2 18:56:21 EET 2002  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Fixed silc_string_regexify list creation.  Fixes bugs with
 +        BAN and INVITE commands in server.  The affected file is
 +        lib/silcutil/unix/silcunixutil.c.
 +
 +Sun Dec 30 13:41:34 EET 2001  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Removed the command destructor entirely from the server's
 +        command and command reply routines.  It is not needed, and
 +        its usage was buggy and caused crashes.  Affected files are
 +        silcd/command[_reply].[ch].
 +
 +Fri Dec 28 12:43:22 EET 2001  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Cancel protocol and NULL sock->protocol if timeout
 +        occurred during protocol.  Affected file silcd/server.c.
 +
 +      * Cancel protocol timeouts always before calling the final
 +        callback, to assure that after final callback is called
 +        no other state will be called for the protocol anymore.
 +        Affected file silcd/protocol.c.
 +
 +      * Print error log if incoming connection configuration could
 +        not be found.  Affected file silcd/server.c.
 +
 +      * Fixed JOIN command to correctly save the founder mode
 +        to the client on normal SILC server, when the channel
 +        was created by the router.  Affected file silcd/command.c.
 +
 +      * Fixed LIST command (hopefully) to send correct reply
 +        packets.  Affected file silcd/command.c.
 +
 +Thu Dec 20 16:14:52 CET 2001  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * The silc_packet_receive_process now returns FALSE if the
 +        read data was invalid packet, and TRUE if it was ok.
 +
 +        The server now checks that if unauthenticated connection
 +        sends data and its processing fails the server will close
 +        the connection since it could be a malicious flooder.
 +
 +        Affected files lib/silccore/silcpacket.[ch], silcd/server.c.
 +
 +Wed Dec 19 21:31:25 EET 2001  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Make sure the warning about error opening a log file is
 +        printed only once and not everytime it fails (produces
 +        too much useless log).  Affected file lib/silcutil/silclog.c.
 +
 +Wed Dec 19 18:21:51 CET 2001  Johnny Mnemonic <johnny@themnemonic.org>
 +
 +      * Made the silc_server_daemonise() function more readable.
 +        Affected file silcd/server.c.
 +
 +      * Pid file is now optional, the user may comment it out from
 +        the config file. Removed define SILC_SERVER_PID_FILE, we
 +        don't need a default any longer.  Affected file
 +        configure.in.pre, lib/Makefile.am.pre.
 +
 +      * Make some use of the pid file. The server now dies at startup
 +        if it detects a valid pid file on his path. The server would
 +        die anyway in this circumstance, because of the bind() failure.
 +        Affected file silcd/silcd.c.
 +
 +      * No longer compiling lib/dotconf.
 +
 +Mon Dec 17 18:24:27 EET 2001  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Fixed JOIN command parsing not to crash.  Affected file
 +        lib/silcclient/command.c.
 +
 +      * Fied the NICK_CHANGE notify to add the new client entry
 +        even it is resolved.  This removes an <[unknown]> nick
 +        thingy bug in the client.  Affected file is
 +        lib/silcclient/client_notify.c.
 +
 +      * Do not try to allocate 0 bytes (efence does not like it)
 +        in lib/silccore/silccomand.c when encoding payload.
 +
 +      * Do not take IRCNICK as nickname in Irssi SILC client since
 +        it is not possible to set nickname before hand connecting
 +        the server (TODO has an entry about adding auto-nicking
 +        support).
 +
 +      * Changed the silc_server_command_pending to check whether
 +        there already exists an pending entry with the specified
 +        command, command identifier and pending callback.  This is
 +        to fix IDENTIFY and WHOIS related crashes that may register
 +        multiple pending commands with same identifier.  Affected
 +        file silcd/command.c.
 +
 +      * Fixed the server to reconnect to the router even if it
 +        was already reconnecting and EOF was received.  This to
 +        fix a possibility that the server wouldn't ever try to
 +        auto-reconnect to the router.  Affected file silcd/server.c.
 +
 +Sat Dec 15 20:31:50 EET 2001  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Fixed the server's password authentication to use the
 +        length of the locally saved password, and not the one
 +        sent in the packet.  Affected file silcd/protocol.c.
 +
 +      * Fixed same password authentication problem in the
 +        Authentication Payload handling routines in
 +        lib/silccore/silcauth.c.
 +
 +      * Yet another password authentication problem fixed with
 +        channel password handling in silcd/command.c.
 +
 +Mon Dec 10 19:57:40 EET 2001  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * If first character of string in silc_parse_userfqdn is '@'
 +        then do not parse it.  Affected file is
 +        lib/silcutil/silcutil.c.
 +
 +Sun Dec  9 22:18:50 EET 2001  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Fixed minor bug in IDENTIFY command reply sending, which
 +        caused various weird problems during JOIN when it was
 +        resolving names for users.  Affected file silcd/command.c.
 +
 +Sun Dec  9 19:18:41 EET 2001  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Fixed the IDENTIFY command reply sending to chech better valid
 +        clients.  It was possible to send incomplete list of replies.
 +        Affected file silcd/command.c.
 +
 +Sat Dec  8 15:58:31 EET 2001  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Added silc_client_command[s]_[un]register functions now to
 +        dynamically register the commands in client library.  Removed
 +        the static table of commands.  This allows the client library
 +        to call commands without causing the application to know about
 +        what commands library has called.
 +
 +        Removed the INFO command reply kludge to detect when the command
 +        was called by library.  Now library use its own command reply
 +        function for INFO command.
 +
 +        Added function silc_client_command_call to call a command.
 +        Application can use it to call command, not access the structure
 +        directly.
 +
 +        Now all commands that are sent by the client library (not
 +        explicitly sent by application) use own command reply functions.
 +
 +        Affected files around lib/silcclient/ and in
 +        irssi/src/silc/core/.
 +
 +      * Fixed the WHOIS command reply sending to chech better valid
 +        clients.  It was possible to send incomplete list of replies.
 +
 +        Fixed the WHOIS and IDENTIFY to send the request to router
 +        if normal server did not do it and did not find any results.
 +
 +        Affected file silcd/command.c.
 +
 +Thu Dec  6 17:21:06 EET 2001  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Moved the internal data from SilcClient context into its
 +        own file, not accesible to application.  Affected files
 +        lib/silcclient/client.h and lib/silcclient/client_internal.h,
 +        and other files in client library.
 +
 +Thu Dec  6 10:37:55 EET 2001  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Added doc/examples installation target in Makefile.am.pre.
 +        A patch by salo.
 +
 +Tue Dec  4 17:43:19 EET 2001  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * If NO_SUCH_CLIENT_ID notify is received for WHOIS or IDENTIFY
 +        commands the found client entry will be removed from the
 +        cache, after notifying application about the error.  Affected
 +        file lib/silcclient/command_reply.c.
 +
 +      * Changed the /MSG to check for exact nickname user gave, and
 +        not let `nick' match `nick@host' if it is only one found.  Now,
 +        user must type the exact nickname (like nick@host2) even if
 +        there are no more than one same nicks found.  This is to avoid
 +        a possibility of sending nickname to wrong nickname since
 +        `nick' could match `nick@host'.  Affected file is
 +        irssi/src/core/silc-servers.c.
 +
 +Mon Dec  3 18:49:45 EET 2001  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Do not print "you are now server operator" or similar when
 +        giving /away command.  Affected files are
 +        irssi/src/silc/core/client_ops.c, silc-servers.h.
 +
 +      * Made the silc_server_command_pending_error_check to send
 +        the same command reply payload it received back to the
 +        original sender of the command.  This way all arguments
 +        that was received by the server will be received by the
 +        client too.  Affected file silcd/command.c.
 +
 +      * Added the silc_idcache_add to return the created cache entry
 +        to a pointer.  Affected file lib/silccore/silcidcache.[ch].
 +
 +      * Add global clients to expire if they are not on any channel.
 +        This is because normal server will never know if they signoff
 +        if they are not on any channel.  The cache expiry will take
 +        case of these entries.  This is done by normal servers only.
 +        The affected files are silcd/command_reply.c,
 +        silcd/idlist.[ch], silcd/server and silcd/packet_receive.c.
 +
 +      * If server receives invalid ID notification for WHOIS or
 +        IDENTIFY and the ID exists in the lists, it is removed.
 +        Affected file silcd/command_reply.c.
 +
 +      * If NO_SUCH_CLIENT_ID is received for WHOIS or IDENTIFY command
 +        in client then client entry that it matches is searched and
 +        the nickname is printed on the screen for user.  Affected
 +        file irssi/src/silc/core/client_ops.c.
 +
 +Mon Dec  3 11:56:59 EET 2001  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Use cache entry expire time in the LIST command reply to
 +        purge old entries from the cache after the LIST command
 +        reply has been received.  This way we don't have non-existent
 +        entries in the cache for too long.  Affected file is
 +        silcd/command_reply.c.
 +
 +Sun Dec  2 23:29:07 EET 2001  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * If we are normal server, and we've not resolved client info
 +        in WHOIS or IDENTIFY from router, and it is global client,
 +        we'll check whether it is on some channel.  If it is not
 +        then we cannot be sure about its validity and will resolve it
 +        from router.  Fixes a bug in WHOIS and IDENTIFY.  Affected
 +        file silcd/command.c.
 +
 +      * Search channel by name (if possible) rather than by ID
 +        in IDENTIFY command's command reply.  Affected file is
 +        silcd/command_reply.c.
 +
 +Sun Dec  2 13:48:46 EET 2001  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Distribute to the channel passphrase in CMODE_CHANGE notify.
 +        Updated specs and implemented it.  Affected file silcd/command.c,
 +        silcd/packet_send.c and silcd/packet_receive.c.
 +
 +      * Implemented the <founder auth> payload handling in the JOIN
 +        command.  If provided all conditions for channel joining
 +        except requirement to provide correct passphrase can be
 +        overrided by the channel founder.  Updated the protocol specs.
 +        Affected file silcd/command.c.
 +
 +        Added support for founder auth in JOIN command in client
 +        library.  Fixed the parsing of the JOIN command now to support
 +        all options as they should be.  The affected file is
 +        lib/silcclient/command.c.
 +
 +      * Optimized the WHOIS and IDENTIFY commands to send the request
 +        to router only if it includes nicknames or other names.  If
 +        they include only IDs then check the local cache first before
 +        routing.  Affected file is silcd/command.c.
 +
 +      * Added channels topic announcements.  Affected file is
 +        silcd/packet_receive.c and silcd/server.c.
 +
 +      * Fixed the silc_server_send_notify_topic_set to really destine
 +        the packet to channel.  Affected file silcd/packet_send.c.
 +
 +      * Fixed a crash in CHANNEL_CHANGE notify handling in the client
 +        library.  Affected file lib/silcclient/client_notify.c.
 +
 +      * Added UMODE announcements.  Affected file silcd/server.c.
 +
 +Sat Dec  1 12:52:39 EET 2001  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Memory leak fixes in:
 +
 +        lib/silcutil/silcsockconn.c
 +        lib/silcske/silcske.c
 +        lib/silcske/groups.c
 +        lib/silccrypt/rsa.c
 +        lib/silccrypt/silcpkcs.c
 +        lib/silccore/silccommand.c
 +        lib/silccore/silcidcache.c
 +        silcd/idlist.c
 +        silcd/packet_send.c
 +        silcd/command.c
 +
 +      * ROBOdoc documented the lib/silcske/groups.h file and a
 +        bit changed the interface for better.
 +
 +Thu Nov 29 22:12:50 EET 2001  Pekka Riikonen <priikone@silcnet.org>'
 +
 +      * Update the client entry context in the ID cache after
 +        nick change.  Affected file lib/silcclient/command.c.
 +        Fixes the CUMODE command when regaining founder privileges,
 +        and a little WHOIS problem.
 +
 +      * Fixed silc_net_gethostbyname to correctly call the
 +        inet_ntop.  Affected file lib/silcutil/silcnet.c.
 +
 +Thu Nov 29 19:31:23 EET 2001  Pekka Riikonen <priikone@silcnet.org>'
 +
 +      * Added IPv6 support checking to the configure.in.pre, added
 +        also --enable-ipv6 option to override the check.  Affected
 +        file configure.in.pre.
 +
 +      * The silc_thread_create now calls the start function
 +        directly if threads support is not compiled in.  Removes
 +        ugly #ifdef's from generic code.  Affected files are
 +        lib/silcutil/unix/silcunixthread, win32/silcwin32thread.c.
 +
 +      * Added silc_net_gethostby[name/addr]_async to asynchronously
 +        resolve.  Affected files are lib/silcutil/silcnet.[ch].
 +
 +      * Added support for rendering IPv6 based server, client and
 +        channel IDs.  Affected file lib/silcutil/silcutil.c.
 +
 +      * Added support for creating IPv6 based server IDs.  Affected
 +        file is silcd/serverid.c.
 +
 +Wed Nov 28 23:46:09 EET 2001  Pekka Riikonen <priikone@silcnet.org>'
 +
 +      * Added silc_net_gethostby[addr/name] into the
 +        lib/silcutil/silcnet.[ch].  Added IPv6 support to Unix network
 +        routines.  Added silc_net_is_ip[4/6].  Affected file is
 +        lib/silcutil/unix/silcunixnet.c.  All routines that take
 +        address as argument now supports both IPv4 and IPv6 addresses.
 +
 +Mon Nov 26 18:09:48 EET 2001  Pekka Riikonen <priikone@silcnet.org>'
 +
 +      * Fixed LIST command reply sending in server.  Affected file
 +        silcd/command.c.
 +
 +      * Server now sends the kicker's client ID in the KICK notify
 +        to the kicked client.  Affected file silcd/command.c.
 +
 +      * The client library now parses the kickers client ID and
 +        UI displays it.  Affected files lib/silcclient/client_notify.c
 +        and irssi/src/silc/core/silc-channels.c, module-formats.c.
 +
 +      * Made all payload parsing function prototypes consistent.
 +        They all take now const unsigned char * and uint32 pair as
 +        the payload data instead of SilcBuffer.  Changes all around
 +        the source tree.  Other unsigned char* -> const unsigned char*
 +        changes around the tree as well.
 +
 +      * Optimized SFTP client and server packet sending not to
 +        allocate new buffer for each packet but to recycle the
 +        first allocated buffer.  Affected files are
 +        lib/silcsftp/sftp_client.c, sftp_server.c, sftp_util.[ch].
 +
 +      * Optimized the SFTP client to use SilcList instead of
 +        SilcDList for requests, because it is faster.  Affected file
 +        is lib/silcsftp/sftp_client.c.
 +
 +      * Moved the ID Payload routines from lib/silccore/silcpayload.[ch]
 +        into lib/silccore/silcid.[ch].
 +
 +        Renamed silcpayload.[ch] into silcargument.[ch].
 +
 +Mon Nov 26 15:01:53 CET 2001  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * If client entry is deleted with active key agreement
 +        session, abort the session.
 +
 +        The silc_client_abort_key_agreement now calls the completion
 +        callback with new SILC_KEY_AGREEMENT_ABORTED status.
 +
 +        Affected file lib/silcclient/silcapi.h, client_keyagr.c and
 +        idlist.c.
 +
 +Sun Nov 25 18:01:45 EET 2001  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Don't use __restrict in older GCC's.  Affected file is
 +        lib/silcmath/mpi/mpi-priv.h.  A patch by salo.
 +
 +      * silc_net_localhost now attempts to reverse lookup the
 +        IP/hostname.  Affected file lib/silcutil/silcnet.c.
 +
 +      * Defined <founder auth> argument to the SILC_COMMAND_JOIN
 +        command.  It can be used to gain founder privileges at
 +        the same time when joining the channel.
 +
 +        Defined that the SILC_NOTIFY_TYPE_KICKED send the
 +        kicker's client ID as well.  Updated protocol specs.
 +
 +        Defined that the server must send SILC_COMMAND_IDENTIFY
 +        command reply with error status to client who sent
 +        private message with invalid client ID.
 +
 +        Updated the protocol specification.
 +
 +      * Added silc_server_send_command_reply to send any
 +        command reply.  Affected file silcd/packet_send.[ch].
 +
 +      * Added silc_id_payload_encode_data to encode ID payload
 +        from raw ID data.  Affected file lib/silccore/silcpayload.[ch].
 +
 +      * The server now send IDENTIFY command reply with error
 +        status if client ID in private message is invalid.  Affected
 +        file silcd/packet_receive.c.
 +
 +      * Save the server key file with server's IP address in
 +        the filename instead of hostname.  The affected file is
 +        irssi/src/silc/core/client_ops.c.
 +
 +Sat Nov 24 20:08:22 EET 2001  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Typo fixes in irssi/src/fe-common/silc/module-formats.c.
 +        A patch by Sunfall.
 +
 +      * Added libtool support for compiling shared objects in
 +        lib/silcsim.  Affected file configure.in.pre and
 +        lib/silcsim/Makefile.am.  Original patch by cras.
 +
 +Fri Nov 23 23:30:59 EET 2001  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Pid file configuration, and server's config file fixes
 +        patch by toma.  Updated CREDITS file.
 +
 +Sun Nov 18 01:34:41 EET 2001  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Fixed silc_client_channel_message to not try to decrypt
 +        the message twice if it resolved the destination client
 +        information.  This could cause of dropping one channel
 +        message.  Affected file lib/silcclient/client_channel.c.
 +
 +Wed Nov 14 23:44:56 EET 2001  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Added silc_client_run_one into lib/silcclient/silcapi.h and
 +        lib/silcclient/client.c. This function is used when the SILC
 +        Client is run under some other scheduler, or event loop or
 +        main loop.  On GUI applications, for example this may be
 +        desired to used to run the client under the GUI application's
 +        main loop.  Typically the GUI application would register an
 +        idle task that calls this function multiple times in a second
 +        to quickly process the SILC specific data.
 +
 +Wed Nov 14 19:16:52 CET 2001  Johnny Mnemonic <johnny@themnemonic.org>
 +
 +        * Fixed silc_server_drop() for dropping the supplementary
 +          groups as well, this could cause a security hole on some
 +          systems.
 +
 +Wed Nov 14 16:22:25 EET 2001  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * __pid_t -> pid_t in lib/silccrypt/silcrng.c.  A patch by
 +        johnny.
 +
 +      * Write PID file after dropping privileges.  Added -F option
 +        to run server on foreground.  A patch by debolaz.
 +        Affected files silcd/server.c, silcd/silcd.c.
 +
 +      * Fixed MOTD to return the MOTD file server name.  Affected
 +        file silcd/command.c.
 +
 +      * Added INFO command reply handling to the Irssi SILC Client.
 +        Affected file irssi/src/silc/core/client_ops.c.
 +
 +Wed Nov 14 00:18:08 EET 2001  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Fixed the silc_idcache_list_* routines to really support
 +        the dynamic list.  Fixes a crash.  Affected file is
 +        lib/silccore/silcidcache.c.
 +
 +      * Fixed the LIST command reply to really call LIST command's
 +        pending callbacks.  Affected file silcd/command_reply.c.
 +
 +Tue Nov 13 00:49:17 EET 2001  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Update conn->local_entry->nickname after giving NICK
 +        command.  Affected file lib/silcclient/command.c.
 +
 +Sun Nov 11 23:43:02 PST 2001  Brian Costello <bc@wpfr.org>
 +
 +      * Added the [pid] option to the silcd configuration file
 +
 +        Affected files: serverconfig.[ch] and silcd.c
 +
 +Sun Nov 11 23:56:39 EET 2001  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Save fingerprint in WHOIS command reply in server.
 +        Affected file silcd/command_reply.c.
 +
 +      * Fixed NICK commands pending callback registration.
 +        Affected file lib/silcclient/command.c.
 +
 +Sun Nov 11 10:49:10 EET 2001  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Use ++server->cmd_ident when sending commands in server,
 +        instead of random number.  Affected file silcd/command.c.
 +
 +      * Fixed GETKEY command reply to call actually GETKEY pending
 +        command callbacks.  Affected file silcd/command_reply.c.
 +
 +      * A bit stricter check for nicknames.  Check for same nickname
 +        in NICK command also.  Affected file silcd/command.c.
 +
 +      * Do not call INFO command everytime client ID changes, only
 +        during first connecting.  Affected file lib/silcclient/client.c.
 +
 +      * Set the new nickname only after successful command reply for
 +        NICK command is returned by server.  Affected file
 +        lib/silcclient/command.c.
 +
 +      * Remove nicknames from nicklist during server_signoff notify.
 +        Should fix /NAMES bit more.  The affected file is
 +        irssi/src/silc/core/silc-channels.c.
 +
 +      * Added `fingerprint' field to the SilcIDListData in the
 +        silcd/idlist.h to hold the fingerprint of the client's
 +        public key.
 +
 +        Send the fingerprint of the client's public key in WHOIS
 +        command reply.
 +
 +        Affected files silcd/command.c, and silcd/idlist.[ch].
 +
 +      * Added silc_fingerprint into lib/silcutil/silcutil.[ch] to
 +        create fingerprint from given data.
 +
 +      * Show the fingerprint of the client's public key in WHOIS.
 +        Affected files irssi/src/module-formats.[ch] and
 +        irssi/src/silc/core/client_ops.c.
 +
 +      * Format the multiple same nicknames also during JOIN and
 +        NICK_CHANGE notifys.  Affected file is
 +        lib/silcclient/client_notify.c.
 +
 +      * Do not print error on screen for invalid private message
 +        payload since it can come if someone is sending private
 +        messages with wrong key.  Affected file
 +        lib/silccore/silcprivate.c.
 +
 +      * Fixed multiple concurrent /PING crash.  Affected file
 +        lib/silcclient/command.c.
 +
 +      * Changed the wrong ID encoding.  All IP addresses must be
 +        in MSB first order in encoded format.  They were encoded
 +        wrong and was in LSB format.  Affected files are
 +        silcd/serverid.c, lib/silcutil/silcutil.c.
 +
 +      * Remove silc_net_addr2bin_ne from lib/silcutil/silcnet.[ch].
 +
 +      * Call the `connect' client operation through the scheduler
 +        in case of error.  Affected file lib/silcclient/client.c.
 +
 +      * Call the `failure' client operation even if the error
 +        occurred locally during a protocol.  Affected file is
 +        lib/silcclient/protocol.c.
 +
 +      * Added support of sending LIST command to router from normal
 +        server.  This way normal server can get list of all channels
 +        in the network too.  Fixed the channel list sending in the
 +        server too.  Affected files are silcd/command.c, and
 +        silcd/command_reply.[ch].
 +
 +      * Added silc_server_update_channels_by_server and
 +        silc_server_remove_channels_by_server.  They are used during
 +        disconnection of primary router and in backup router protocol.
 +        Affected file silcd/server_util.[ch], silcd/server.c and
 +        silcd/server_backup.c.
 +
 +      * Fixed channel adding to global list in IDENTIFY command
 +        reply in server.  Affected file silcd/command_reply.c.
 +
 +Sat Nov 10 21:39:22 EET 2001  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * If the incoming packet type is REKEY or REKEY_DONE process
 +        that packet always synchronously.  Fixes yet another MAC
 +        failed error on slow (dialup) connections.  Affected file
 +        lib/silcclient/client.c and silcd/server.c.
 +
 +Thu Nov  8 22:21:09 EET 2001  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Call check_version SKE callback for initiator too.  Affected
 +        file lib/silcske/silcske.c.
 +
 +      * Implemented fix for security hole found in the SKE that was
 +        fixed in the specification few days back; the initiator's
 +        public key is now added to the HASH value computation.
 +        Added backwards support for the old way of doing it too, for
 +        old clients and old servers.  Affected file is
 +        lib/silcske/silcske.c.
 +
 +      * Enabled mutual authentication by default in SKE.  If initiator
 +        is not providing mutual authentication the responder will
 +        force it.  This will provide the proof of posession of the
 +        private key for responder.  The affected files are
 +        lib/silcclient/protocol.c and silcd/protocol.c.
 +
 +      * Do not cache anymore the server's public key during SKE.
 +        We do mutual authentication so the proof of posession of
 +        private key is done, and if the server is authenticated in
 +        conn auth protocol with public key we must have the public
 +        key already.  Affected file silcd/protocol.c.
 +
 +      * Added new global debug variable: silc_debug_hexdump.  If
 +        it is set to TRUE SILC_LOG_HEXDUMP will be printed.  Affected
 +        file lib/silcutil/silclog.[ch].
 +
 +      * Fixed compilation warning due to char * -> const char *.
 +        Affected files lib/silcutil/silcnet.h, and
 +        lib/silccore/silcauth.[ch].
 +
 +Wed Nov  7 20:43:03 EET 2001  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Fixed CMODE command when new channel key was created.  If
 +        the creation failed the old key was removed.  Next time giving
 +        same command would crash the server since the old key was
 +        freed already.  Affected file silcd/command.c.
 +
 +      * Fixed the silc_server_announce_get_channels to not crash
 +        on reconnect.  Affected file silcd/server.c.
 +
 +Wed Nov  7 17:15:07 EET 2001  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Added silc_log_set_debug_string function to set a regex
 +        string to match for debug output.  Only the function names,
 +        or filenames matching the given debug string is actually
 +        printed.  This way it is possible to filter out those debug
 +        strings that user is not interested in.
 +
 +        Fixed a bug in silc_string_regexify.
 +
 +        Affected files lib/silcutil/silclog.[ch], and
 +        lib/silcutil/unix/silcunixutil.c.
 +
 +      * Changed the -d options in both server and Irssi SILC client
 +        to take the debug string as argument.  Affected files
 +        silcd/silcd.c and irssi/src/silc/core/silc-core.c.
 +
 +Tue Nov  6 21:31:54 EET 2001  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Added silc_hash_babbleprint to create a Bubble Babble
 +        Encoded fingerprint.  The encoding is developed by Antti
 +        Huima (draft-huima-babble-01.txt), and it creates human
 +        readable strings out of binary data.  Affected file
 +        lib/silccrypt/silchash.[ch].
 +
 +      * Print the babble print now in addition of fingerprint as well
 +        in Irssi SILC client.  Affected files are
 +        irssi/src/fe-common/silc/module-formats.[ch],
 +        irssi/src/fe-common/silc/core/client_ops.c.
 +
 +Sun Nov  4 23:37:28 EET 2001  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Fixed a security problem found in SKE.  The initiator's
 +        public key too is now added to the HASH hash value creation
 +        which is signed by the responder to create the SIGN value.
 +        This will prevent anyone in the middle to lie to the responder
 +        about the initiator's public key.  If this is done now, the
 +        man in the middle will get caught.  Updated the protocol
 +        specification.
 +
 +Sun Nov  4 11:43:53 EET 2001  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Better installation directory handling.  Configure module
 +        paths and other paths automatically to example_silc* files
 +        in doc/.  A patch by toma.
 +
 +      * Fixed compiler warning from MPI library, and from SILC RNG.
 +        A patch by johnny.
 +
 +      * Added SILC_SERVER_PID_FILE to define the pid file for server.
 +        It can be configured with ./configure.  A patch by toma.
 +
 +Sat Nov  3 23:48:23 EET 2001  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Find correct make to use in prepare-clean.  A patch by
 +        toma.  Affected file prepare-clean.
 +
 +Sat Nov  3 22:04:00 PST 2001  Brian Costello <bc@mksecure.com>
 +
 +      * Added irssi variables use_auto_addr, auto_bind_ip,
 +          auto_bind_port and auto_public_ip.
 +
 +      * Changed the interface for silc_client_send_key_agreement
 +          in lib/silcclient/silcapi.h
 +
 +      Affected files:
 +
 +         irssi/src/silc/core/silc-core.c
 +         irssi/config
 +         lib/silcclient/silcapi.h
 +         irssi/src/silc/core/silc-channels.c
 +         lib/silcclient/client_keyagr.c
 +         irssi/docs/help/key
 +
 +Sat Nov  3 17:48:55 EET 2001  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Added silc_pkcs_public_key_compare to compare two
 +        public keys.  Affected file lib/silccrypt/silcpkcs.[ch].
 +
 +      * Check that the client who set the founder mode on the
 +        channel is the same client that is giving the founder
 +        mode to itself.  It is done by comparing the saved public
 +        key (it is saved even in the authentication is passphrase).
 +        Affected file silcd/command.c.
 +
 +Fri Nov  2 18:52:08 EST 2001  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Do not process packet for disconnected socket connection.
 +        Affected file lib/silccore/silcpacket.c.
 +
 +      * Process the DISCONNECT packet through scheduler in the
 +        client library.  Affected file lib/silcclient/client.c.
 +
 +      * Fixed the silc_client_packet_parse to not to increase
 +        the packet sequence number if the conn->sock and the
 +        current socket connection is not same.  This can happen
 +        for example during key agreement when the conn includes
 +        multiple socket connections (listeners).  Affected file
 +        lib/silcclient/client.c.
 +
 +      * The sender of the file transfer request now provides also
 +        the pointer (listener) for the key exchange protocol.  If
 +        the listener cannot be created then it sends empty key
 +        agreement and lets the receiver provide the listener.
 +
 +        Added `local_ip' and `local_port' arguments to the
 +        silc_client_file_send.  If they are provided they are used,
 +        if not then it will attempt to find local IP address, if
 +        not found or bind fails then the remote client will provide
 +        the listener.
 +
 +        Affected files are lib/silcclient/client_ftp.c and
 +        lib/silcclient/silcapi.h.
 +
 +      * Extended the FILE SEND command to support defining the
 +        local IP and port for key exchange listener.  They are
 +        optional.  Affected file irssi/src/silc/core/silc-servers.c.
 +
 +Thu Nov  1 22:10:07 EST 2001  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Defined to WHOIS command reply the sending of fingerprint
 +        of the client's public key (if the proof of posession of the
 +        corresponding private key is verified by the server).
 +        Updated to the protocol specification.
 +
 +      * Added support of receiving the client's public key's
 +        fingerprint in command reply in client library.  Affected
 +        file is lib/silcclient/command_reply.c, and
 +        lib/silcclient/idlist.[ch].
 +
 +Thu Nov  1 18:06:12 EST 2001  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Do not send over 128 chars long nickname to the server
 +        in NICK command.  Affected file lib/silcclient/command.c.
 +
 +      * Do not send over 256 chars long channel names to the server
 +        in JOIN command.  Affected file lib/silcclient/command.c.
 +
 +Tue Oct 30 22:48:59 EST 2001  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Assure that silc_server_close_connection cannot be called
 +        twice for same socket context.  Affected file is
 +        silcd/server.c.
 +
 +Tue Oct 30 16:58:14 EST 2001  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Send error message to application if opening file for
 +        writing during file transfer fails.  Affected file is
 +        lib/silcclient/client_ftp.c.
 +
 +        Remove all file transfer sessions for a client that we're
 +        removing from ID cache.
 +
 +        Affected file is lib/silcclient/client_ftp.c.
 +
 +      * Fixed silc_net_addr2bin to return correct address.  Affected
 +        file lib/silcutil/[unix/win32]/silc[unix/win32]net.c.
 +
 +      * Fixed file transfer session removing on signoff notify.
 +        Affected file irssi/src/silc/core/silc-servers.c.
 +
 +      * Added the SilcClientFileError to be returned in the monitor
 +        callback.  Added NO_SUCH_FILE and PERMISSION_DENIED errors.
 +        Affected file lib/silcclient/silcapi.h.
 +
 +Mon Oct 29 17:43:04 EST 2001  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Fixed a crash in silc_client_ftp_free_sessions and
 +        silc_client_ftp_session_free_client.  Affected file
 +        lib/silcclient/client_ftp.c.
 +
 +      * Added `disabled' field in the SilcChannelEntry in the server
 +        to indicate if the server entry is disabled.  Affected file
 +        silcd/idlist.h, silcd/command[_reply].c.
 +
 +      * SILC server adds now /var/run/silcd.pid everytime it is
 +        started.  Affected file silcd/silcd.c.
 +
 +      * Added silc_server_packet_send_clients to send a packet to
 +        the provided table of client entries.  Affected file
 +        silcd/packet_send.[ch].
 +
 +      * Fixed a crash in client resolving in client_prvmsg.c in
 +        client library.  Affected file lib/silcclient/client_prvmsg.c.
 +
 +      * Do not actually remove the client directly from ID cache
 +        during SERVER_SIGNOFF, but invalidate it.  This way we
 +        preserve the WHOWAS info for the client.  Affected file
 +        silcd/server_util.c.
 +
 +      * Fixed SERVER_SIGNOFF notify handling in the server.  The
 +        server is now able to process incoming SERVER_SIGNOFF notify
 +        for a server that it doesn't even know about.  It will remove
 +        the clients provided in the notify.  Affected file
 +        silcd/packet_receive.c.
 +
 +      * Check for partial packet in data queue after every packet that
 +        was found from the queue.  Return and wait for more data if
 +        there is partial data in queue.  Affected file is
 +        lib/silccore/silcpacket.c.
 +
 +Sun Oct 28 18:46:27 EST 2001  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Added SilcClietFileError enum to indicate error in
 +        file transfer.  Added SILC_CLIENT_FILE_MONITOR_KEY_AGREEMENT
 +        and SILC_CLIENT_FILE_MONITOR_ERROR new monitor statuses.
 +        Affected files lib/silcclient/silcapi.h and
 +        lib/silcclient/client_ftp.c.
 +
 +      * Check that newsize in silc_buffer_realloc is larger than
 +        the old buffer's size.  Affected file lib/silcutil/silcbufutil.h.
 +
 +      * Added better monitor of file transfers.  It now monitors
 +        key agreement protocol during the file transfer too.  Added
 +        error reporting too.  Affected files
 +        irssi/src/silc/core/silc-servers.c,
 +        irssi/src/fe-common/silc/module-formats.[ch].
 +
 +      * Wrote a help file for FILE command.
 +
 +      * Added silc_rng_global_get_byte_fast to get not-so-secure
 +        random data as fast as possible.  Random data is read from
 +        /dev/urandom if available and from the SILC RNG if not
 +        available.  It is used in padding generation.  Affected file
 +        lib/silccrypt/silcrng.[ch].
 +
 +      * All packets in client library are now processed synchronously.
 +        Optimized packet processing a lot.  Affected file
 +        lib/silcclient/client.c.
 +
 +      * All server connection packets are processing synchronously
 +        now in server, to optimize packet processing.  Affected file
 +        silcd/server.c.
 +
 +      * Include files are installed now only in Toolkit distribution
 +        if make install is given.  Affected files: all Makefile.am's.
 +
 +Thu Oct 25 22:44:06 EDT 2001  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Assure that silc_client_notify_by_server_resolve does not
 +        resolve the client information multiple times.  If it cannot
 +        be found by the first it cannot be found at all.  Affected
 +        file lib/silcclient/client_notify.c.
 +
 +      * Fixed WHOWAS command reply calling.  Affected file
 +        lib/silcclient/command_reply.c.
 +
 +      * Removed all references to silc_idlist_get_client from the
 +        Irssi SILC client since that call is internal call used by
 +        the library.  The Irssi SILC client will use now client
 +        retrieval functions found in silcapi.h.
 +
 +      * Fixed a bug in resolving nickname info before sending
 +        private message.  It used freed memory.  Affected file
 +        irssi/src/silc/core/silc-servers.c.
 +
 +Thu Oct 25 19:04:49 EDT 2001  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Assure my_channels statistics cannot go negative in server.
 +        Affected files silcd/server.c, silcd/server_util.c.
 +
 +Wed Oct 24 19:53:05 EDT 2001  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Upgraded dotconf 1.0.2 to 1.0.6 in lib/dotconf.
 +
 +Tue Oct 23 13:51:19 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Win32 Toolkit changes.  Affected files
 +        win32/silc.dsw, win32/libsilc/libsilc.def,
 +        win32/libsilcclient/libsilc.def,
 +        lib/silcutil/silcutil.c, and
 +        lib/sftp/sftp_fs_memory.c.
 +
 +Mon Oct 22 16:35:05 EDT 2001  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Added silc_net_localip to return local host's IP address.
 +        Affected file lib/silcutil/silcnet.[ch].
 +
 +      * If key exchange or rekey protocol is active for a connection
 +        parse all packets syncronously since there might be packets
 +        in packet queue that we are not able to process without first
 +        processing packets before them.  Affected file silcd/server,
 +        lib/silcclient/client.c.
 +
 +      * SilcPacketParserCallback now returns TRUE or FALSE to indicate
 +        whether library should continue processing the packet.
 +        Affected file lib/silccore/silcpacket.h.
 +
 +      * Added SilcSFTPMonitor callback, SilcSFTPMonitors and
 +        SilcSFTPMonitorData to SFTP server to monitor various
 +        SFTP client requests.  Affected file lib/silcsftp/silcsftp.h,
 +        lib/silcsftp/sftp_server.c.
 +
 +      * Added silc_file_size to return file size.  Affected file
 +        lib/silcutil/silcutil.[ch].
 +
 +      * Implemented the file transfer support for the client library.
 +        Added preliminary support for simple client to client one-file
 +        transmission.  Affected file lib/silcclient/client_ftp.c,
 +        lib/silccilent/client.[ch].
 +
 +      * Added new local command FILE to the Irssi SILC Client.
 +        It is used to perform the file transfer.  It has subcommands
 +        SEND, RECEIVE, SHOW and CLOSE.  Affected files
 +        irssi/src/silc/core/client_ops.c,
 +        irssi/src/silc/core/silc-server.[ch].
 +
 +Mon Oct 22 12:50:08 EDT 2001  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Relay the SILC_PACKET_FTP in the server.  Affected files
 +        silcd/server.c and silcd/packet_receive.c.
 +
 +Sun Oct 21 20:21:02 EDT 2001  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Renamed silc_file_read and silc_file_write to functions
 +        silc_file_readfile and silc_file_writefile.  Added function
 +        silc_file_open and silc_file_close.  Affected files
 +        lib/silcutil/silcutil.[ch].
 +
 +Thu Oct 18 20:58:13 EDT 2001  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Resolve the client info when received private message or
 +        channel message for a client which nickname we don't know.
 +        Affected files lib/silcclient/client_prvmsg.c and
 +        lib/silcclient/client_channel.c.
 +
 +      * Do not crash in /KEY if client is not connected.  Affected
 +        file irssi/src/silc/core/silc-channels.c.
 +
 +      * Added SilcClientStatus field to the SilcClientEntry in the
 +        lib/silcclient/idlist.h.
 +
 +        Added SILC_CLIENT_STATUS_RESOLVING to mark that the entry
 +        is incomplete and is being resolved, it won't be resolved
 +        twice.
 +
 +        Make sure also that USERS command reply does not resolve
 +        twice information.  Affected file is
 +        lib/silcclient/command_reply.c.
 +
 +        Make sure that silc_client_get_clients_by_list does not
 +        resolve twice same information.
 +
 +      * Check for valid client->id in the silc_server_free_client_data.
 +        Affected file silcd/server.c.
 +
 +      * Fixed /GETKEY nick@server not to crash if the server entry
 +        is not found.  Affected file lib/silcclient/command.c.
 +
 +      * Fixed the silc_server_check_cmode_rights to check the
 +        requested modes correctly.  Affected file silcd/command.c.
 +
 +Thu Oct 18 12:10:22 CEST 2001  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Better checks for non-printable chars in nick added.
 +        Affected file silcd/command.c.
 +
 +Thu Oct 18 09:18:58 EDT 2001  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Call the silc_server_udpate_servers_by_server in the
 +        primary router that comes back online in the backup resuming
 +        protocol.  Otherwise it routes packets wrong.  Affected file
 +        silcd/server_util.[ch], silcd/server_backup.c.
 +
 +Wed Oct 17 16:51:18 EDT 2001  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Added SILC_STR_UI8_[N]STRING[_ALLOC] formats to the
 +        lib/silcutil/silcbuffmt.[ch].
 +
 +      * Redefined the SILC packet header to include the padding
 +        length.  Affected file lib/silccore/silcpacket.[ch].
 +
 +      * Added SILC_PACKET_PADLEN_MAX macro to return the padding
 +        length for maximum padding up to 128 bytes).  Affected
 +        file lib/silccore/silcpacket.h.
 +
 +      * Removed all backwards support for old 0.5.x MAC thingies.
 +        The SILC packet header change makes it impossible to be
 +        backwards compatible.
 +
 +      * Send the ENDING packet with timeout in the backup resuming
 +        protocol.  This is to assure that all routers has connected
 +        to the primary router.  Affected file silcd/server_backup.c.
 +
 +      * Changed the RNG to take the first IV from random data.  It
 +        used to take it from zero actually.  Changed the RNG also
 +        to use /dev/urandom during session.  /dev/random is used
 +        in initialization.  Affected file lib/silccrypt/silcrng.[ch].
 +
 +Tue Oct 16 20:45:49 EDT 2001  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Changed the SILC packet header to have the first two bytes
 +        (the packet length) encrypted.  Affected files aroung the
 +        code tree, lib/silccore/silcpacket.[ch].  Removed the
 +        SilcPacketCheckDecrypt callback.  It is not needed anymore
 +        since the silc_packet_receive_process will determine now
 +        whether the packet is normal or special.
 +
 +      * Implemented the unidirectional MAC keys.  Affected files
 +        lib/silcske/silcske.c, silcd/protocol.c and
 +        lib/silcclient/protocol.c.
 +
 +      * Implemented the packet sequence number to the MAC computation.
 +        Affected files lib/silccore/silcpacket.c, silcd/protocol.c,
 +        silcd/packet_send.c, silcd/server.c, lib/silcclient/client.c,
 +        lib/silcclient/protocol.c.
 +
 +Mon Oct 15 17:42:55 EDT 2001  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Allow backup router to announce servers.  All servers
 +        announced by backup router are added to the global list
 +        automatically.  Update hte server's socket to our primary
 +        router also when backup router announces a server.
 +        Affected file silcd/packet_receive.c.
 +
 +      * Do not update the client->router in the function
 +        silc_server_udpate_clients_by_server if the client is on
 +        global list.  We might fail to find any specific server
 +        for locally connected clients and local cell clients.  They
 +        should still use the `from' and not `to' as client->router.
 +        This fixes backup router resuming protocol.  Affected file
 +        silcd/server_util.c.
 +
 +      * Decrease channel statistics count only if the channel
 +        deletion worked.  Affected files are silcd/server.c and
 +        silcd/server_util.c.
 +
 +      * Added silc_server_update_servers_by_server to update origin
 +        of all server entries.  Used during backup router protocol.
 +        Affected files silcd/server_util.[ch], silcd/server.c. and
 +        silcd/backup_router.c.
 +
 +      * ROBODoc documented the lib/silccrypt/silchmac.h.  Added new
 +        function silc_hmac_init, silc_hmac_update, silc_hmac_final,
 +        silc_hmac_get_hash and silc_hmac_get_name.  Affected file
 +        lib/silccrypt/silchmac.c.
 +
 +Sun Oct 14 18:28:22 EDT 2001  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Assure that router cannot reroute the same channel message
 +        to the sender.  Affected file silcd/packet_receive.c.
 +
 +Sat Oct 13 12:46:18 EDT 2001  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Made better checks that the channel message is not sent
 +        to the router it came from.  Affected file is
 +        silcd/packet_send.c.  Fixed memory leak too.
 +
 +      * Announce informations for incoming router connection, but
 +        only after checking if it is replaced by backup router.
 +        Affected file silcd/packet_receive.c.
 +
 +Fri Oct 12 18:37:24 EDT 2001  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Fixed the backup resuming protocol to work in multiple
 +        router environment.  Affected file silcd/server_backup.c.
 +
 +      * Route packet only to one router in the function
 +        silc_server_packet_send_to_channel.  Affected file is
 +        silcd/packet_send.c.
 +
 +      * Fixed silc_server_send_notify_dest to set the broadcast
 +        flag.  Fixed the silc_server_send_notify_topic to actually
 +        send the TOPIC_CHANGE notify and not SERVER_SIGNOFF notify.
 +        Affected file silcd/packet_send.c.
 +
 +      * Changed the SFTP Filesystem interface.  Changed the
 +        SilcSFTPFilesystemStruct to SilcSFTPFilesystemOps to include
 +        the filesystem operation function.  The SilcSFTPFilesystem
 +        is now a context that is allocated by all filesystem allocation
 +        functions and it already includes the operations structure
 +        and filesystem specific context.  It is given as argument
 +        now to the silc_sftp_server_start.  This made the interface
 +        a bit cleaner.  Affected file lib/silcsftp/silcsftp[_fs].h,
 +        lib/silcsftp/sftp_fs_memory.c and sftp_server.c.
 +
 +Thu Oct 11 22:19:26 EDT 2001  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Changed the backup router adding and getting interfaces
 +        in the server.  The router that will be replaced by the
 +        specified backup router is now sent as argument.  Affected
 +        files silcd/serverconfig.[ch], silcd/backup_router.[ch], and
 +        silcd/server.c.
 +
 +      * Added silc_net_addr2bin_ne to return the binary form of
 +        the IP address in network byte order.  Affected files
 +        lib/silcutil/[unix/win32].silc[unix/win32]net.[ch].
 +
 +Thu Oct 11 12:14:19 EDT 2001  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Check for existing server ID in silc_server_new_server
 +        and in silc_server_connect_to_router_final and remove the
 +        old entry if it exists.  Affected file silcd/packet_receive.c,
 +        silcd/server.c.
 +
 +      * Send the channel message always to only one router, either
 +        in upstream or downstream.  Affected file is
 +        silcd/packet_send.c.
 +
 +Tue Oct  9 17:45:43 EDT 2001  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Wrote the definition of the backup resuming protocol to the
 +        protocol specification.
 +
 +      * Removed one redundant channel key generation from normal
 +        server during joining procedure.  Removed one redundant
 +        channel key sending from server to router during joining
 +        procedure.  Affected file silcd/command.c.
 +
 +      * Made minor bugfixes to the backup router resuming protocol.
 +        Affected file silcd/server_backup.c, server.c.
 +
 +Mon Oct  8 16:47:42 EDT 2001  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Added --disable-asm configuration option.  Affected files
 +        configure.in.pre, lib/silcmath/mpi/configure.in.  A patch
 +        by salo.
 +
 +      * Implemented the backup resuming protocol that is used to
 +        resume the primary router position in the cell after the
 +        primary router comes back online.  Affected files
 +        silcd/server_backup.[ch], silcd/server, silcd/packet_receive.c,
 +        and silcd/server_util.[ch].
 +
 +Sun Oct  7 12:29:25 EDT 2001  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Sleep two (2) seconds after sending QUIT command to server.
 +        Affected file lib/silcclient/command.c.
 +
 +      * Assure that if outgoing data buffer is pending do not force
 +        send any data.  Affected file silcd/packet_send.c.
 +
 +      * Assure that if outgoing data buffer is pending do not force
 +        send any data.  Affected file lib/silcclient/client.c.
 +
 +      * Implemented the backup router support when the primary router
 +        goes down.  The servers and routers can now use the backup
 +        router as new primary router without loosing connectivity.
 +
 +Sat Oct  6 21:18:54 EDT 2001  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Added new SILC_IDLIST_STATUS_DISABLED flag for entries
 +        in the server to indicate disabled entry.  All data read
 +        from the connection will be ignored and no data is sent
 +        for entry that is disabled.  Affected files are
 +        silcd/idlist.h, silcd/server.c.
 +
 +Fri Oct  5 00:03:29 EDT 2001  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Created SFTP client and server test programs in the
 +        lib/silcsftp/tests directory.
 +
 +Wed Oct  3 23:31:42 EDT 2001  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Implemented memory filesystem (virtual filesystem) for
 +        SFTP server.  Affected file lib/silcsftp/silcsftp_fs.h,
 +        sftp_fs_memory.c.
 +
 +Sun Sep 30 22:10:57 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Implemented the SFTP (SSH File Transfer Protocol) to the
 +        lib/silcsftp.  It includes SFTP client and SFTP server
 +        implementations.
 +
 +Sun Sep 30 10:35:44 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Moved lib/silccore/silcprotocol.[ch] to the
 +        lib/silcutil library.
 +
 +      * Added silc_buffer_format_vp and silc_buffer_unformat_vp to
 +        take variable argument list pointer as argument.  Affected
 +        file lib/silcutil/silcbuffmt.[ch].
 +
 +      * Added silc_buffer_set function that is used to set data
 +        to a SilcBuffer that is not allocated at all (SilcBufferStruct).
 +        Affected file lib/silcutil/silcbuffer.h.
 +
 +      * Changed various routines in the core library to use the new
 +        silc_buffer_set instead of allocating new buffer only for
 +        temporary purposes.
 +
 +      * Added 64-bit value formatting and unformatting support to the
 +        silc_buffer_[un]format routines.  Affected file is
 +        lib/silcutil/silcbuffmt.[ch].
 +
 +        Added also 64-bit macros: SILC_GET64_MSB and SILC_PUT64_MSB,
 +        to includes/bitmove.h.
 +
 +Fri Sep 28 21:30:10 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Fixed channel user mode saving in client library.  Affected
 +        file lib/silcclient/command[_reply].c.
 +
 +Thu Sep 27 22:52:30 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Defined the file transfer to the SILC Protocol.  Added
 +        new packet type SILC_PACKET_FTP and defined File Transfer
 +        Payload.  The mandatory file transfer protocol is SFTP
 +        (SSH File Transfer Protocol).  Affected file in addition
 +        of the internet draft is lib/silccore/silcpacket.h.
 +
 +      * Deprecated the SILC_PACKET_CELL_ROUTERS and defined new
 +        packet SILC_PACKET_RESUME_ROUTER instead.  The new packet
 +        is used as part of backup router protocol when the primary
 +        router of the cell is back online and wishes to resume
 +        the position as primary router.
 +
 +      * Redefined the MAC generation keys in the protocol.  The
 +        same key is not used anymore in both direction.  Both
 +        direction will now use different keys for sending and
 +        receiving.  This fixes a potential security flaw.  This
 +        change causes incompatibilities in the protocol.
 +
 +      * Redefined also the MAC computation from the packet.
 +        An packet sequence number is now added to the MAC
 +        computation.  This prevents possible replay attacks against
 +        the protocol.  This change too causes incompatibilities
 +        in the protocol.
 +
 +        Added `sequence' field to the SilcPacketContext to hold
 +        the current sequence number for the packet.
 +
 +Wed Sep 26 20:15:22 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Added `created' field to the SilcIDListData in the file
 +        silcd/idlist.h to indicate the time when the entry was
 +        created.
 +
 +      * Added `created' field to the SilcChannelEntry too.  Affected
 +        file silcd/idlist.h.
 +
 +      * Added `creation_time' aguments to all the announcement functions
 +        in the server.  If it is provided then only the entries that
 +        was created after the provided time frame are actually
 +        announced.  Affected file silcd/server.[ch].
 +
 +      * The protocol says that the Channel ID's IP address must be
 +        based on the router's IP address.  Added check for this in
 +        the silc_server_new_channel when processing incoming New Channel
 +        Payload.  Affected file silcd/packet_receive.c.
 +
 +      * Print out the correct version with --version in SILC client.
 +        Affected file irssi/src/silc/core/silc-core.c.
 +
 +Mon Sep 24 17:19:00 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Fixed WHOWAS command to check for completnes of the client
 +        entry always, not just when the command is coming from client.
 +        Affected file silcd/command.c.
 +
 +      * Added new function silc_server_packet_queue_purge to purge the
 +        outgoing data queue to the network.  After the function returns
 +        it is guaranteed that the outgoing packet queue is empty.
 +        Affected file silcd/packet_send.[ch].
 +
 +      * Purge the outgoing packet queue in the rekey protocol's final
 +        callback to assure that all rekey packets go to the network
 +        before quitting the protocol.  Affected file silcd/server.c.
 +
 +      * Added silc_client_packet_queue_parse as similar function as
 +        in server to the client library.  The affected file is
 +        lib/silcclient/client.c.
 +
 +Sun Sep 23 15:15:53 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Splitted silcd/server.c and created silcd/server_util.[ch]
 +        for utility functions.
 +
 +      * Added new socket flag SILC_SF_DISABLED to indicate that the
 +        connection is open but nothing can be sent to or received from
 +        the connection.  Affected file lib/silcutil/silsockconn.[ch].
 +        The checking for disabled socket is checked in the low level
 +        silc_socket_write and silc_socket_read functions.
 +
 +Thu Sep 20 23:11:28 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Allow only nicknames and channel names that fits into the
 +        7-bit unsigned char ASCII set.  Affected file silcd/command.c.
 +
 +Thu Sep 20 18:04:12 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * When processing JOIN command reply in server check that if
 +        the channel exists in our global list we'll move it the local
 +        list.  Affected file silcd/command_reply.c.
 +
 +      * Fixed the check whether client is joined on the channel already
 +        in JOIN command.  Affected file lib/silcclient/command.c.
 +
 +      * Fixed the JOIN command reply to check whether the channel
 +        already exists.  Affected file lib/silcclient/command_reply.c.
 +
 +Wed Sep 19 22:58:32 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Added silc_ske_status_string to map the SKE error numbers
 +        to readable strings.  The affected files are
 +        lib/silcske/silcske[_status].[ch].
 +
 +Tue Sep 18 22:50:41 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Do not show the private channels on the WHOIS channel list
 +        as it is not allowed by the protocol.  The affected file is
 +        silcd/server.c.
 +
 +Sun Sep 16 12:32:58 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Assure that the packet length digged from the actual packet
 +        is something sensible in the silc_packet_decrypt_rest_special
 +        in lib/silccrypt/silcpacket.c.
 +
 +      * Free and NULL the allocated pointer in silc_hmac_alloc if
 +        the HMAC allocation fails.  The affected file is
 +        lib/silccrypt/silchmac.c.
 +
 +      * Print the selected security properties to the log files in
 +        the server.  Affected file silcd/protocol.c.
 +
 +      * Add SKE's reference counter even if calling the completion
 +        callback manually.  Otherwise it goes negative, although it
 +        does not cause any problems.  The affected file is
 +        lib/silcske/silcske.c.
 +
 +      * Remove the client entry with short timeout after giving the
 +        KILL command.  Affected file lib/silcclient/command.c.
 +
 +      * Fixed to send error reply in WHOIS and IDENTIFY commands in
 +        case all found clients are already disconnected (WHOWAS would
 +        found them) in the server.  Affected file silcd/command.c.
 +
 +      * Update the last_receive (time of last data received) to be
 +        updated only when received private or channel message so that
 +        the idle time showed in WHOIS makes more sense.
 +
 +      * Added boolean field `valid' in to the SilcClientEntry in the
 +        client library to indicate whether the entry is valid or not.
 +        This fixes the nickname change bug on channel when changing
 +        the nickname to be same than the old (like nick to Nick) the
 +        nickname formatter doesn't set the new nick anymore to Nick@host.
 +        Affected file lib/silcclient/idlist.[ch].
 +
 +      * Now actually fixed the nickname changing on disconnection.
 +        Added new function silc_change_nick to the Irssi SILC Client.
 +        Affected file irssi/src/silc/core/client_ops.c,
 +        irssi/src/silc/core/silc-nicklist.[ch].
 +
 +Sat Sep 15 13:29:17 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Check that the public key exists in the GETKEY command before
 +        trying to encode it.  Affected file silcd/command.c.
 +
 +      * Print some notifications on received public keys with GETKEY
 +        command in the Irssi SILC Client.  Affected files are
 +        irssi/src/fe-common/silc/module-formats.[ch],
 +        irssi/src/silc/core/client_ops.c.
 +
 +      * Use IDENTIFY command to resolve the server information in the
 +        GETKEY command instead of INFO command.  Affected file
 +        lib/silcclient/command.c.
 +
 +      * All command reply functions in the client library now calls
 +        the pending command reply callbacks even if an error has
 +        occurred.  The server has done this a long time and now it was
 +        time to move the client library to this as well.  Now all
 +        errors can be delivered back to the pending command reply
 +        callbacks if necessary.  Affected files are
 +        lib/silcclient/command[_reply].[ch].
 +
 +      * Change the nickname on disconnection back to the username
 +        because in reconnect the server will enforce it to it anyway.
 +        Affected file irssi/src/silc/core/silc-servers.c.
 +
 +      * Fixed a config file parsing bug in the Irssi SILC client.
 +        Affected file irssi/src/silc/core/clientconfig.c.
 +
 +Thu Sep 13 23:11:18 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * When printing the channel mode on JOIN, verify that the
 +        channel key and channel's HMAC are valid.  Affected file
 +        irssi/src/silc/core/client_ops.c.
 +
 +Thu Sep 13 20:24:52 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Added defines SILC_DEFAULT_CIPHER, SILC_DEFAULT_HMAC,
 +        SILC_DEFAULT_HASH and SILC_DEFAULT_PKCS in the file
 +        lib/silccrypt/[silccipher.h|silchmac.h|silchash.h|silcpkcs.h].
 +
 +      * Removed channel key rekey task deleting from the function
 +        silc_server_save_channel_key.  Affected file silcd/server.c.
 +        Added explicit timeout task context instead that is used to
 +        delete the task if we are registering a new task before the
 +        new task has elapsed.
 +
 +      * When channel key rekey occurs the client library now saves
 +        the old channel key for a short period of time (10 seconds) and
 +        is able to use it in case some is still sending channel
 +        messages encrypted with the old key after the rekey.  Affected
 +        file lib/silcclient/[idlist.h|client_channel.c].
 +
 +Sun Sep  9 15:49:16 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Added check to the silc_server_new_id_real to not accept
 +        new ID if it is the sender's own ID.  Affected file is
 +        silcd/packet_receive.c.
 +
 +      * Assure that we do not announce ourself or the one we've
 +        sending our announcements when we're router and are announcing
 +        servers to our primary router.  Affected file silcd/server.c.
 +
 +      * Fixed silc_server_command_identify_check_client to assemble
 +        correct WHOIS packet.  It send corrupted WHOIS packet and
 +        caused problem with router to router connections.  Affected
 +        file silcd/command.c.
 +
 +        Fixed also silc_server_command_whois_check the same way
 +        as for the IDENTIFY command.
 +
 +      * Added new SilcIDListStatus to the server in the SilcIDListData
 +        structure.   The status now includes the current status of
 +        the entry (like registered, resolved etc.).  Affected file
 +        silcd/idlist.[ch].  Defined a bunch of different status types
 +        as well.  This replaced the old boolean registered field as well.
 +
 +        Added resolve_cmd_ident field to the SilcClientEntry structure
 +        too so that if the entry is for example being resolved so
 +        another command may attach to the same pending command reply
 +        without requiring to resolve the same entry again.  This concept
 +        should optimize the WHOIS and the IDENTIFY resolving under
 +        heavy load by taking away unnecessary resolving for entries
 +        that are being resolved already.
 +
 +        Added support for adding multiple pending commands for one
 +        command idenfier.  Affected file silcd/command[_reply].[ch].
 +
 +      * Fixed WHOIS and IDENTIFY save to remove the cache entry
 +        before deleting the data.  Otherwise the hash table will have
 +        freed data in comparison functions.  Affected file is
 +        silcd/command_reply.c.
 +
 +      * Fixed silc_idlist_replace_client_id to add the new entry to
 +        the cache with NULL nickname.  Otherwise there will be invalid
 +        memory as the nickname after the nickname is freed.  Affected
 +        file silcd/packet_receive.c.
 +
 +      * Fixed the silc_idlist_get_clients_by_hash.  The entries was
 +        saved into wrong slots because the previous number of entries
 +        was not taken into account.  Affected file silcd/idlist.c.
 +        Fixed same thing in silc_idlist_get_clients_by_nickname too.
 +
 +      * If we are router and we receive JOIN notify to a channel that
 +        does not have any users then notified client is marked as the
 +        channel founder, as it is it.  The affected file is
 +        silcd/packet_receive.c
 +
 +      * Added to the extended hash table API's table_del_*ext functions
 +        the destructor as argument too, so that the caller can decide
 +        which destructor to use or whether to use destructor at all.
 +        Affected file lib/silcutil/silchashtable.[ch].
 +
 +      * Fixed ID Cache purging.  It actually deleted the entries from
 +        the hash table after the data was freed.  The hash table ended
 +        up comparing freed memory.  The affected file is
 +        lib/silccore/silcidcache.c.
 +
 +Sat Sep  8 10:22:10 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Fixed Irssi SILC client's KILL command's HELP syntax.
 +
 +      * The USERS command now resolves the detailed user information
 +        if the userinfo field is missing.  Affected file is
 +        lib/silcclient/command_reply.c.
 +
 +      * Do not print error in silc_file_read if the read file does
 +        not exist.  Just silently return NULL.  Affected file is
 +        lib/silcutil/silcutil.c.
 +
 +      * Fixed the silc_log_output to not wine about NULL filename
 +        and to not create some bogus " " filename.  Affected file is
 +        lib/silcutil/silclog.c.
 +
 +Fri Sep  7 22:16:38 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Fixed various printing bugs on the user interface in the
 +        Irssi SILC Client.  Minor changes that were forgotten from
 +        the release.
 +
 +Fri Sep  7 17:28:37 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Fixed the configure.in.pre and the compilation and distribution
 +        environment to support the new autoconf 2.52.  That version is
 +        now required to compile the CVS trunk.
 +
 +Thu Sep  6 12:47:37 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Renamed function silc_parse_nickname to silc_parse_userfqdn
 +        to generally parse user@fqdn format strings.  Affected file
 +        lib/silcutil/silcutil.c.
 +
 +      * Added nickname_format and nickname_force_format fields to the
 +        SilcClientParams structure.  The first one defines the format
 +        for the nicknames that the library will enforce if the receives
 +        multiple same nicknames.  The second one is boolean value and
 +        can be used to force the library to always enforce the format
 +        to the nicknames regardles whether there are multiple nicknames
 +        or not.  This configurable formatting was employed to flexibly
 +        support accessing multiple nicknames from the user interface.
 +        The userinterface can now set the nicknames to what ever format
 +        they prefer.  Affected file lib/silcclient/silcapi.h.
 +
 +        Added function silc_client_nickname_format to the file
 +        lib/silcclient/idlist.c.  It performs the nickname formatting.
 +
 +        Added new field `hostname´ to the SilcClientEntry context.
 +        It holds the hostname of the client.  Affected file is
 +        lib/silcclient/idlist.h.
 +
 +      * Irssi SILC Client sets the nicknames in nick@hostn format.
 +        Fe. priikone@otaku, priikone@otaku2 etc.  Affected file
 +        irssi/src/silc/core/silc-core.c.
 +
 +        The WHOIS printing now also shows both the real nickname and
 +        the formatted nickname so that user knows how to access the
 +        user if there are multiple same nicknames cached.  Affected
 +        file irssi/src/silc/core/client_ops.c.  Changed the WHOIS
 +        printing formatting too to take the hostname now as a separate
 +        argument.  The Affected file is
 +        irssi/src/fe-common/silc/modules-formats.[ch].
 +
 +      * Changed the silc_client_get_clients_local to accept the formatted
 +        nickname as argument.  It accepts the real nickname too but the
 +        formatted nickname can be used to find the true entry from
 +        multiple entries.  Affected file lib/silcclient/silcapi.h and
 +        lib/silcclient/idlist.c.
 +
 +      * Added nickname_format_parse field to the SilcClientParams.
 +        It is a callback function provided by the application to parse
 +        the nickname out of the formatted nickname string. The library
 +        calls it to get the nickname from the formatted string. Since
 +        the application generally knows better the format of the nickname
 +        string it parses it instead of the library, even though library
 +        encodes the formatted string.  If the callback function is not
 +        provided then the library will use the string as is.  The
 +        affected file is lib/silcclient/silcapi.h.
 +
 +      * All the nickname strings passed to the client library in
 +        commands are now expected to be formatted nickname strings.
 +        If the command does not support the formatted nickname string
 +        it will assume that the sent string is the actual nickname.
 +        Affected file lib/silcclient/command.c.
 +
 +Tue Sep  4 22:31:28 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Added public key authentication support to OPER and SILCOPER
 +        commands in the client library.  Affected file is
 +        lib/silcclient/command.c.
 +
 +Tue Sep  4 12:39:17 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Changed the get_auth_methdod client operation to be asynchronous.
 +        It can be async if the application resolves the authentication
 +        method from the server during the negotiation.  Added new
 +        SilcGetAuthMeth completion callback that the application will
 +        call after resolving the authentication method.
 +
 +        Added function silc_client_request_authentication_method that
 +        the application can use to resolve the authentication method
 +        from the server.  Added also SilcConnectionAuthRequest callback
 +        that the library will call after the server has replied.  The
 +        application can call this function if it does not know the
 +        current authentication method.
 +
 +        Affected files are lib/silcclient/client.c and
 +        lib/silcclient/silcapi.h.
 +
 +      * The Irssi SILC client now automatically resolves the authentication
 +        method incase any configuration information is not present (and
 +        currently there never is).  The affected file is
 +        irssi/src/silc/core/client_ops.c.
 +
 +      * Fixed public key authentication from the client library.
 +        Affected file lib/silcclient/protocol.c.  Changed also the
 +        protocol specification about the public key authentication in
 +        the connection authentication protocol.  The actual data to be
 +        signed is now computed with a hash function before signing.
 +
 +      * Fixed the public key authentication from the server as well.
 +        Affected file silcd/protocol.c.
 +
 +      * Removed the mlock()'s from the memory allocation routines.
 +        Affected file lib/silcutil/silcmemory.c.  The ./configure does
 +        not check anymore for the mlock().  Affected file is
 +        configure.in.pre.
 +
 +      * Fixed USERS command in server to allow the execution of the
 +        command for private and secret channels if the client sending
 +        the command is on the channel.  Affected file silcd/command.c.
 +
 +      * Fixed silc_client_get_clients_local to return the clients
 +        count correctly.  It could return wrong value.  Affected file
 +        lib/silcclient/idlist.c.
 +
 +Mon Sep  3 20:09:59 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Fixed the lib/silcmath/mpi/mpi.h to always use 32-bit data
 +        types.  The assembler optimizations seemed not to like 64-bit
 +        data types.  The assmebler optimizations thus are now enabled
 +        also for BSD systems as opposed to only enable them for Linux.
 +
 +      * Do not check for threads at all on BSD systems.  Affected
 +        file configure.in.pre.
 +
 +      * Removed -n and -h options from the Irssi SILC Client since
 +        they are not used in silc.
 +
 +      * Fixed the prime generation to assure that the first digit
 +        of the generated random number is not zero since our conversion
 +        routines does not like number strings that starts with zero
 +        digit.  If zero digit is seen the random number is regenerated.
 +        This caused some corrupted RSA keys when the zero first digit
 +        was met.  Affected file lib/silcmath/silcprimegen.c.
 +
 +Sun Sep  2 17:17:24 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Fixed WIN32 configuration in the ./configure script.
 +        Fixed to include xti.h on environments that has it.
 +        Patches by Carsten Ilchmann and andrew.
 +
 +Sat Sep  1 00:29:33 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Changed the silc_id_create_client_id to be collision
 +        resistant.  It is now assured that there cannot be created
 +        two same client ID's.  I suspect that some weird bugs in
 +        the server were actually caused by duplicate Client IDs.
 +        Affected file silcd/serverid.[ch].  A router receiving
 +        new ID now also assures and informs the sending server
 +        if the ID caused collision.
 +
 +      * Changed the silc_id_create_channel_id to also assure that
 +        there are no collisions.
 +
 +Wed Aug 29 17:55:01 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Statement about ignoring the Mutual Authentication flag when
 +        performing rekey with PFS was a bit misleading.  It is ignored
 +        if it was set in the initial negotiation, it cannot be even
 +        set in the rekey.  Fixed in the ke-auth draft.  Started the
 +        new versions of the protocol drafts in the doc/.
 +
 +Sun Aug 26 14:59:15 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Fixed a bug in silc_client_command_identify_save when saving
 +        new channel information.  The channel name was no duplicated
 +        and caused crash on exit.  Affected file is
 +        lib/silcclient/command_reply.c.
 +
 +Fri Aug 17 23:07:45 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Fixed the getkey command handling in the server.  Send just
 +        empty OK reply to the sender if the key could not be fetched
 +        (but everything else was ok, like the key just was not available).
 +        Changed the public key parameter to optional in the protocol
 +        specs so that empty OK reply can be sent.  Affected file
 +        silcd/command.c.
 +
 +        Added a message to Irssi SILC client to tell to user if the
 +        server did not return a public key.
 +
 +Tue Aug 14 07:29:27 CEST 2001  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Fixed a channel key regeneration bug.  It registered new
 +        timeout tasks exponentially until all system resources were
 +        used.  Affected file silcd/server.c.
 +
 +Sun Aug 12 20:48:14 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Added the SILC Document generator to the scripts/silcdoc.
 +        It can be used to generate the Toolkit Reference Manual out
 +        of the source tree.  Internally it will also use the RoboDoc
 +        generator now imported in util/robodoc.
 +
 +Sun Aug 12 12:28:17 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Added couple of return's in rekey protocol if error orccurred
 +        during the protocol.  The execution must be terminated.
 +        Affected file silcd/protocol.c.  Also, terminate the protocol
 +        always with timeout.
 +
 +Sat Aug 11 12:36:02 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * The client's Client ID was created initally from the wrong
 +        nickname (it could have been in format nick@host) in the
 +        silc_server_new_client.  Affected file silcd/packet_receive.c
 +
 +Sat Aug 11 00:29:57 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Added some SILC_LOG_ERROR's to various error conditions
 +        if client could not be added to ID cache.  Affected files
 +        silcd/packet_receive.c and silcd/server.c.
 +
 +      * When client's sock->user_data is freed, NULL also the
 +        client->router and client->connection pointers.  Added check
 +        for these pointers being NULL to various places around the
 +        code.  Affected file silcd/server.c.
 +
 +      * Added client->data.registered == TRUE checks to various
 +        places around the code to assure that unregistered client's
 +        are not handled when it is not allowed.  Affected file
 +        silcd/server.c.
 +
 +      * Added `bool registered' fields to all
 +        silc_idlist_[server|client]_get_* routines to indicate whether
 +        the fetched client needs to be registered or not.  Affected
 +        file silcd/idlist.[ch].
 +
 +      * Add your own entry as registered to the ID cache in the
 +        server.  Affected file server.c.
 +
 +      * Fixed a bug in silc_server_new_server.  The SilcServer was
 +        set as the new server's context instead of SilcServerEntry.
 +        This naturally caused some weird bugs.
 +
 +      * Added "updated" field the SilcChannelEntry which indicates
 +        the time since the channel entry was last accessed.  This
 +        can be used to determine whether it is necessary to
 +        announce the channel after backup resuming protocol.
 +        Affected files silcd/idlist.[ch].
 +
 +Thu Aug  9 18:28:37 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Do not delete the channel rekey task when adding it
 +        for in silc_server_create_channel_key.
 +
 +      * Changed the silc_server_create_channel_key to return
 +        TRUE or FALSE to indicate the success of the channel key
 +        creation.
 +
 +Thu Jul 26 11:32:31 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Fixed MSVC++ project files and added missing files to
 +        Makefiles under win32/.
 +
 +Wed Jul 25 18:43:54 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Do not add TCP_NODELAY flag if the operating system
 +        does not have it defined.  Affected files are
 +        lib/silcutil/[unix/win32]/silc[unix/win32]net.c.
 +
 +      * Fixed buffer overflow from Irssi SILC Client.  Affected
 +        file irssi/src/fe-common/core/themes.c.
 +
 +      * Fixed double free in client library in the file
 +        lib/silcclient/client.c when disconnecting from server.
 +
 +      * Applied double free patch from cras to Irssi SILC client.
 +        Affected files irssi/src/core/[modules/expandos].c
 +
 +      * Fixed the disconnection handling to Irssi SILC Client.
 +        The application must call silc_client_close_connection
 +        in ops->connect client operation in case of failure of
 +        the connection.  Affected file is
 +        irssi/src/silc/core/client_ops.c.
 +
 +      * Do not set sock->protocol to NULL in the function
 +        silc_client_close_connection after executing the protocol's
 +        final callback since the sock might not be valid anymore.
 +        Affected file lib/silcclient/client.c.
 +
 +Wed Jul 25 16:04:35 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Do not enable SILC_THREADS if the linking with libpthread
 +        did not happen.  Affected file configure.in.pre.
 +
 +      * Added notion to protocol specification that server must
 +        verify the sent authentication payload with CMODE when
 +        setting the channel founder key.  Implemented it to the
 +        server.  Affected file silcd/command.c.
 +
 +Mon Jul 23 18:31:43 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Added _EXTRA_DIST SILC distribution variable to the
 +        distributions file.  It is used to conditionally add extra
 +        files or directories to the specific distribution.  Affected
 +        files ./prepare, Makefile.am.pre and distributions.
 +
 +        Removed the `_' from the start of the distribution names.
 +        It is redundant.
 +
 +      * Added README.WIN32 for instructions to compile the Toolkit
 +        under WIN32.
 +
 +Mon Jul 23 10:12:37 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Fixed a double free in disconnection in the server.  Affected
 +        file is silcd/server.c.
 +
 +      * Fixed the lib/silcske/groups.c to work now also with GMP
 +        MP library.  The string conversion did not work when using
 +        specific base and the base is indicated in the string as well.
 +
 +      * Created win32/ directory which now includes MSVC++ specific
 +        stuff so that toolkit (DLLs) may be compiled with MSVC++.
 +        It will appear only in the toolkit distribution
 +
 +Sun Jul 22 19:40:30 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Changed the key material distribution function in case when
 +        the hash output is too short.  The data is now concatenated
 +        a bit differently than it used to.  Made the change to the
 +        SKE protocol specification.
 +
 +      * Added better GMP detection to configure.in.pre.  A patch
 +        by salo.
 +
 +Fri Jul 20 13:16:00 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Fixed a minor bug in SKE that might cause some problem on
 +        some platforms.  Affected file lib/silcske/silcske.c.
 +
 +      * Added the cookie checking for initiator in the SKE.  It checks
 +        that the responder returns the sent cookie unmodified.  The
 +        affected file is lib/silcske/silcske.c.  Added new SKE
 +        error type INVALID_COOKIE that can be sent during the
 +        negotiation.  Fixed some memory leaks as well.
 +
 +      * Added the "invalid cookie" error message to Irssi SILC client's
 +        message formats.
 +
 +Thu Jul 19 21:44:31 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Added `task_max' field to the SilcClientParams to indicate
 +        the maximum tasks the scheduler can handle.  If set to zero,
 +        default values are used.  Affected file lib/silcclient/silcapi.h.
 +
 +      * Fixed memory leaks in silc_client_close_connection.  Affected
 +        file lib/silcclient/client.c.
 +
 +      * Added silc_client_del_client_entry to client library to free
 +        all memory of given client entry.  Affected file is
 +        lib/silcclient/idlist.[ch].
 +
 +      * Added new functions silc_client_del_channel and
 +        silc_client_del_server to delete channel and server entries.
 +        Affected file lib/silcclient/[silcapi.h/idlist.c].
 +
 +      * Removed silc_client_del_client_by_id from silcapi.h.
 +
 +      * Fixed the INFO command to return the server's own info
 +        correctly when querying by Server ID.  Affected file is
 +        silcd/command.c.
 +
 +Thu Jul 19 14:47:30 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Removed the non-blocking settings in WIN32 code in the
 +        silc_sock_[read/write] and added SleepEx instead.  Affected
 +        file lib/silcutil/win32/silcwin32sockconn.c.  The availability
 +        of input data is now checked with FIONREAD and ioctlsocket.
 +
 +Wed Jul 18 18:34:01 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Call silc_schedule_task_del_by_context in the
 +        silc_protocol_cancel instead of silc_schedule_task_del_by_callback.
 +        Affected file lib/silccore/silcprotocol.c.
 +
 +      * Call silc_protocol_cancel for active protocols in the
 +        silc_server_close_connection if the funtion
 +        silc_server_free_sock_user_data has not been called.
 +        Affected file silcd/server.c.
 +
 +      * Generic tasks cannot be deleted using the del_by_fd
 +        task deleting function since generic tasks does not match
 +        any specific fd.  Affected file lib/silcutil/silcschedule.[ch].
 +
 +      * Added a notion to SILCOPER help file that the SILCOPER works
 +        only on router server, not on normal server.
 +
 +Wed Jul 18 09:40:04 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Added for WIN32 support for the new scheduler as well.
 +        Affected file lib/silcutil/win32/silcwin32schedule.c.
 +
 +      * Fixed the SHA1 implementation to work on various platforms.
 +
 +Tue Jul 17 23:04:10 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Rewrote the SILC Scheduler entirely.  Removed the old SILC Task
 +        API.  It is part of the scheduler now.  Everything else is
 +        as previously but some functions has changed their names.
 +        Checkout the lib/silcutil/silcschedule.h for the interface.
 +        Updated all applications to use the new interface.  Affected
 +        files are lib/silcutil/silcschedule.[ch].
 +
 +Tue Jul 17 16:53:30 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Found a bug in the SKE implementation.  The HASH value,
 +        specified by the protocol, was not computed correctly.  The
 +        public key of the responder was not added to the computation
 +        even though it is mandatory.  Affected file lib/silcske/silcske.c.
 +        This unfortunately causes incompatibilities with older
 +        clients and servers.
 +
 +      * Added WIN32 specific network init and uninit functions:
 +        silc_net_win32_init and silc_net_win32_uninit to init and uninit
 +        the Winsock2.  Affected file lib/silcutil/silcnet.h and
 +        lib/silcutil/win32/silcwin32net.c.
 +
 +      * Set the socket always to nonblocking mode on WIN32 after
 +        reading data or writing data.  Affected file is
 +        lib/silcutil/win32/silcwin32sockconn.c.
 +
 +Mon Jul 16 22:55:26 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Fixed various compilation problems under WIN32.  Affected
 +        files lib/silcutil/win32/silcwin32thread.c and
 +        lib/silcutil/win32/silcwin32schedule.c.
 +
 +      * Removed all _internal.h #includes from public header
 +        files.  Internal headers must never be included from
 +        public headers.
 +
 +        Removed also the lib/silcske/payload_internal.h file.
 +
 +      * All include files that may be needed (public and some others
 +        included by the public headers) by application developers are
 +        now copied to the ./includes directory.  It does not copy any
 +        internal headers.  Affected file Makefile.defines.pre and all
 +        Makefile.am's under lib/ and subdirs.
 +
 +Thu Jul 12 17:49:31 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Do not change the ~/.silc directory's permissions automatically.
 +        Affected file irssi/src/silc/core/clientutil.c.
 +
 +Thu Jul 12 10:18:40 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Do not cancel the protocol in silc_server_close_connection
 +        it might cause recursion.  Now cancelled in the function
 +        silc_server_free_sock_user_data.  Affected file silcd/server.c.
 +
 +      * Fixed the silc_server_remove_clients_by_server to regenerate
 +        the channel keys correctly finally.  Added also new function
 +        silc_server_remove_clients_channels to actually do it.
 +        Affected file silcd/server.c.
 +
 +      * Fixed the silc_server_new_channel to not crash by giving
 +        wrong router to the new channel.  Affected file is
 +        silcd/packet_receive.c.
 +
 +Wed Jul 11 18:31:57 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Added SilcClientParams structure to the lib/silcclient/silcapi.h
 +        which is given as argument to the silc_client_alloc now.
 +        It can be used to configure the client and set various parameters
 +        that affect the function of the client.
 +
 +      * The USERS command in server did not check whether the channel
 +        is private or secret.  Affected file silcd/command.c.
 +
 +      * Added new argument to the USERS command in protocol specification.
 +        The USERS command now can take the channel name as argument
 +        as well.  Added support for this in client and server and
 +        updated the protocol specs.
 +
 +      * Completed the GETKEY command in client. It can be now used
 +        to fetch also servers public key not only some clients.
 +        Affected files lib/silcclient/command[_reply].c.
 +
 +      * Added silc_client_get_server to return server entry by the
 +        server name.  Affected files lib/silcclient/silcapi.h and
 +        idlist.c.
 +
 +      * Redefined the IDENTIFY command in protocol specification to be
 +        more generic.  It now can be used to query information about
 +        any entity in the SILC Network, including clients, servers and
 +        channels.  The query may be based either the entity's name
 +        or the ID.  Added support for this in both client and server.
 +
 +        Affected files silcd/command.c and lib/silcclient/command.c
 +        and command_reply.c.
 +
 +      * Optimized the WHOIS and WHOWAS commands in the server. Removed
 +        the _from_client and _from_server functions.  Affected file
 +        silcd/command.c.
 +
 +      * Added silc_client_get_channel_by_id_resolve to the file
 +        lib/silcclient/silcapi.h to resolve channel information by
 +        its ID.  Added also silc_client_get_channel_by_id that
 +        does not resolve it from the server.
 +
 +Tue Jul 10 18:05:38 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Added SilcServerEntry context into the client library
 +        to represent one server.  The INFO command now allocates
 +        these to save the resolved server info.  For now on the
 +        client library will also keep information about servers,
 +        connected and resolved with INFO.
 +
 +        The INFO command now allocates the SilcServerEntry context
 +        and saves the server info there.  The COMMAND_REPLY in
 +        the INFO now returns the parameters to application in
 +        same order as defined in the protocol specification.
 +
 +        The entries are cached in the client->server_cache.
 +
 +      * The INFO command is now issued after received the Client ID
 +        from the server.  Affected file lib/silcclient/client.c.
 +
 +      * The CMODE_CHANGE notify may now return also an SilcServerEntry
 +        to the application as the mode changer might be server.
 +        It is guaranteed that NULL is not returned anymore to the
 +        application.  Affected file lib/silcclient/client_notify.c.
 +
 +        The ID Type is now also passed to the application so that
 +        it can check whether the returned entry is SilcClientEntry
 +        or SilcServerEntry.
 +
 +        Added new function silc_client_get_server_by_id to return
 +        the server entry by ID.  Affected files are the
 +        lib/silcclient/silcapi.h and lib/silcclient/idlist.c.
 +
 +      * Do not create the channel in the Irssi SILC Client when issuing
 +        the JOIN command but when received the sucessful JOIN command
 +        reply.  Otherwise the channel might get created even though we
 +        could not join it.  The Affected file is
 +        irssi/src/silc/core/[silc-channels.c/client_ops.c].
 +
 +      * Fixed a channel joining bug in router.  The router must also
 +        check the channel modes, invite and ban lists etc. when serving
 +        the JOIN command sent by normal server.  Affected file is
 +        silcd/command.c.  The router now resolves the client's
 +        information from the server who sent the JOIN command if it
 +        does not know it, and processes the JOIN command only after
 +        that.
 +
 +      * Changed the SilcCommandCb to take new argument; void *context2.
 +        Affected file lib/silccore/silccommand.h
 +
 +        The second argument in the command callbacks in the server now
 +        includes the SilcServerCommandReplyContext if the command was
 +        called as pending command callback from the command reply.
 +        Otherwise it is NULL. When called as pending the status of the
 +        command reply will be checked and if it was erronous the
 +        error will be sent to the original sender of the command.
 +        This way the client always receives the error messages even
 +        though the server was actually the one who received the error
 +        when it resent the command to router, for example.  Affected
 +        files silcd/command[_reply].[ch].
 +
 +      * Fixed sending WHOWAS command's error message to client if
 +        the requested client could not be found.  It was missing.
 +        silcd/command.c.
 +
 +      * Changed the CMODE and CUMODE commands reply arguments in the
 +        protocol specification.  The Channel ID is now sent in both
 +        of the commands to identify the channel.  Implemented this
 +        new feature to the client and server.  Affected files
 +        lib/silcclient/command_reply.c and silcd/command.c.
 +
 +      * Made better checks for invite and ban lists in the JOIN
 +        command in server.  Affected file silcd/command.c.
 +
 +Mon Jul  9 18:28:34 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * The server now performs the incoming host IP/DNS lookup
 +        using the silc_socket_host_lookup and thus does not block
 +        the server anymore.  Affected file silcd/server.c.
 +
 +      * Completed the multi-thread support for SILC Scheduler in
 +        the lib/silcutil/silcschedule.c.
 +
 +      * Fixed the configure.in.pre to detect the pthread correctly
 +        on various systems.
 +
 +      * Fixed a deadlock in silc_task_queue_wakeup in the file
 +        lib/silcutil/silctask.c.
 +
 +Mon Jul  9 13:40:03 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Added new function silc_schedule_wakeup that is used in
 +        multi-threaded environment to wakeup the main thread's
 +        schduler. It needs to be used when a thread adds a new task
 +        or removes a task from task queues. After waking up, the
 +        scheduler will detect the task queue changes. If threads
 +        support is not compiled in this function has no effect.
 +        Implemented the wakeup mechanism to both Unix and WIN32
 +        systems.  Affected files are lib/silcutil/silcschedule.[ch],
 +        lib/silcutil/unix/silcunixschedule.c and the
 +        lib/silcutil/win32/silcwin32schedule.c.
 +
 +      * Added new function silc_task_queue_wakeup to wakeup the
 +        scheduler by the specified task queue.  Affected file
 +        lib/silcutil/silctask.[ch].
 +
 +      * The silc_socket_host_lookup_start now wakes up the scheduler
 +        after adding the timeout task.  Affected file is
 +        lib/silcutil/silcsockconn.c.
 +
 +      * The silc_socket_host_lookup is synchronous now if the threads
 +        support is not compiled in.  However, the callback is still
 +        called asyncronously through the scheduler, anyway.  Affected
 +        file lib/silcutil/silcsockconn.c.
 +
 +Mon Jul  9 00:24:45 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Added new function silc_socket_host_lookup to perform
 +        asynchronous IP and FQDN lookups for the socket connection.
 +        Affected files lib/silcutil/silcsockconn.[ch].
 +
 +Sun Jul  8 18:44:53 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Added SILC_MUTEX_DEFINE to define the mutex on environments
 +        that may or may not compile the mutex support in.
 +
 +        Changed the silc_mutex_alloc interface. It allocates the
 +        mutex now to the sent pointer and returns TRUE or FALSE.
 +
 +        Affected file lib/silcutil/silcmutex.h.
 +
 +      * Wrote the SILC Task Queue interface to support multi-threads.
 +        Affected file lib/silcutil/silctask.[ch].
 +
 +      * Wrote the SILC Scheduler to support multi-threads.  Affected
 +        file lib/silcutil/silcschedule.c.
 +
 +Sun Jul  8 11:16:01 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Implemented the SILC Mutex API and SILC Thread API for WIN32
 +        in lib/silcutil/win32/.
 +
 +Sun Jul  8 00:18:15 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Defined SILC Mutex API and SILC Thread API and implemented
 +        them for Unix.  Affected files are
 +        lib/silcutil/silcmutex.h, lib/silcutil/silcthread.h,
 +        lib/silcutil/unix/silcunixmutex.c and
 +        lib/silcutil/unix/silcunixthread.c.
 +
 +Sat Jul  7 14:40:31 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Fixed the silc_server_remove_clients_by_server's channel
 +        key re-generation.  The hash table handling was incorrect
 +        and would not work with many channels.  Affected file is
 +        silcd/server.c.
 +
 +      * Fixed some memory leaks around the server code.
 +
 +      * Rewrote the silc_server_get_users_on_channel to support IPv6
 +        based Client ID's.  Affected file silcd/server.c.
 +
 +      * Defined the SILC_MESSAGE_FLAG_SIGNED to the protocol
 +        specification.  However, a separate document must be written
 +        to define the detailed signing procedure and the payload
 +        associated with the flag.  Defined the flag to the
 +        lib/silccore/silcchannel.h as well.
 +
 +Fri Jul  6 18:26:31 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Changed the dynamic tables to static size tables in the
 +        lib/silccrypt/silchmac.c.
 +
 +      * Removed GCC dependencies from the code.  A patch by cras.
 +
 +Fri Jul  6 09:39:35 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Do not show the error "Error receiving packet bla bla"
 +        in server if it really was not an error (-2 means that reading
 +        is pending).  Affected file silcd/server.c.
 +
 +Thu Jul  5 21:22:32 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Fixed a possible crash in silc_server_remove_clients_by_server
 +        in silcd/server.c.  Fixed there also some memory leaks.
 +
 +      * Fixed the silc_idlist_replace_client_id.  It could replace
 +        wrong key in the hash table.  Affected file silcd/idlist.c.
 +
 +      * Do not check whether there are global users on the channel
 +        if the channel->global_users is FALSE.  Affected functions
 +        silc_server_remove_from_one_channel and
 +        silc_server_remove_from_channels in silcd/server.c.  Also,
 +        do not check if the removed client is local as we can be
 +        sure that global client was not removed from the channel
 +        and checking for global users is not needed.
 +
 +      * The silc_server_remove_clients_by_server now re-generates
 +        the channel keys correctly for those channels that had
 +        clients removed from them.  Affected file silcd/server.c.
 +
 +Tue Jul  3 11:39:20 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Found the reason of random crashes in the server.  We weren't
 +        ignoring the SIGPIPE signal (which can be sent in write())
 +        and it crashed the server.  Affected file silcd/silcd.c.
 +
 +Fri Jun 29 20:05:25 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Assure that sock->user_data is not NULL in the function
 +        silc_server_packet_send in silcd/packet_send.c.
 +
 +      * Disconnect the remote connection if it could not be added
 +        to any ID lists in the server.  The affected file is
 +        silcd/server.c.
 +
 +      * Check in silc_server_packet_send[_real/dest] that the
 +        socket is not disconnecting and ignore the data if it is.
 +        Affected file silcd/packet_send.c.
 +
 +      * Define inline to __inline on native WIN32 compilation.
 +        Affected file includes/silcwin32.h.
 +
 +      * Added some explicit type casts for inline code since MSVC
 +        require them.  Affected files lib/silcutil/silcbuffer.h,
 +        lib/trq/silcdlist.h and lib/trq/silclist.h.
 +
 +      * Print warning in log files from now on if the packet
 +        decryption fails.  Affected file silcd/server.c.
 +
 +Thu Jun 28 21:30:39 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Changed the `say' client operation's interface to accept
 +        new `type' argument to indicate the type of the message sent
 +        by the library.  The application may filter the library's
 +        messages according the type.  The affected file is the
 +        lib/silcclient/silcapi.h.
 +
 +      * Added two new functions to lib/silcclient/silcapi.h:
 +        silc_client_del_client and silc_client_del_client_by_id.
 +        Affected file lib/silcclient/idlist.c.
 +
 +      * Moved the clientincludes.h from includes/ to silc/ and
 +        serverincludes.h from includes/ to silcd/.
 +
 +      * The modes for the CMODE and CUMODE are now passed as
 +        uint32 for application with COMMAND_REPLY.  The affected
 +        file is lib/silcclient/command_reply.c.
 +
 +Wed Jun 27 22:24:47 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * /WHOIS without arguments shows client's own information.
 +        Affected file lib/silcclient/command.c.
 +
 +      * Changed PING to not accept any arguments.  The specs
 +        says that client can ping only the connected server so
 +        requiring an argument is not needed.  Affected file is
 +        lib/silcclient/command.c.
 +
 +Wed Jun 27 00:10:33 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Fixed a fatal bug in private message sending and reception
 +        encryption and decryption when using private message keys.
 +        The implementation was incorrect and did not follow the
 +        specification.  It causd that some of the message were
 +        lost since it did not use the sending and receiving keys
 +        as the protocol suggests.  This has been fixed and will cause
 +        incompatibilities with older clients when sending private
 +        message encrypted with private message keys.  Affected files
 +        lib/silcclient/client_prvmsg.c, lib/silcclient/client_keyagr.c
 +        and various other in Irssi SILC Client.
 +
 +        Added `responder' boolean argument to the functions
 +        silc_client_add_private_message_key[_ske] to indicate when
 +        the key is added as responder or initiator of the key
 +        negotiation.
 +
 +Tue Jun 26 19:23:07 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Removed the silc_ske_check_version function and created
 +        a SilcSKECheckVersion callback.  Added also a function
 +        silc_ske_set_callbacks that is now used to set all SKE
 +        callbacks.  The callback functions are not given to
 +        the SKE functions anymore, but this function is used to
 +        set the callbacks.
 +
 +      * Fixed the WIN32 DLL generation in lib/Makefile.am.pre.
 +
 +      * Added `silc_version' argument to the silc_client_alloc
 +        to define the version of the application for the library.
 +        The library will use the version string to compare it
 +        against the remote host's (usually a server) version
 +        string.  Affected file lib/silcclient/silcapi.h
 +
 +      * Added the KE protocol context to Key Agreement context
 +        in client library so that we can abort the SKE if it
 +        is in process when we get timeout.  Affected file is
 +        lib/silcclient/client_keyagr.c.
 +
 +      * Do not resolve the client ID forever if it returns in the
 +        first time that such client does not exist.  This was done
 +        for example with private message.  Affected file is
 +        lib/silcclient/client_prvmsg.c.
 +
 +Mon Jun 25 21:42:51 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Do not add regex.h for WIN32.  The affected file
 +        includes/silcincludes.h.
 +
 +      * Added WIN32 DLL generation to lib/Makefile.am.pre.  It might
 +        not work yet 100%.  It generates the DLL's automatically
 +        when compiling with --with-win32 under cygwin.
 +
 +Sun Jun 24 19:49:23 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * lib/contrib/regex.c is not compiled on WIN32.
 +
 +      * Added silc_net_get_socket_opt function to the
 +        lib/silcutil/silcnet.h.
 +
 +      * Added includes/silcwin32.h for WIN32 specific includes
 +        and definitions.
 +
 +      * Do not use ptime structure or any of the posix process
 +        functions on WIN32 in lib/silccrypt/silrng.c.
 +
 +      * Added silc_gettimeofday to provide generic function
 +        for struct timeval on all platforms.  Added the function
 +        to lib/silcutil/silcutil.h.
 +
 +Sun Jun 24 12:19:52 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Moved the lib/silccore/silcsockconn.[ch] to the utility
 +        library as they clearly belong there.  As a plus side we
 +        can make the actual socket connection routines platform
 +        specific.
 +
 +        Added also new generic function silc_socket_read and
 +        silc_socket_write (that used to be silc_packet_[read/write].
 +        The implementation of these are platform specific.
 +
 +      * Added WIN32 specific routines of silc_socket_[read/write]
 +        to lib/silcutil/win32/silcwin32sockconn.c.
 +
 +Sat Jun 23 16:01:00 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Added preliminary support for native WIN32 compilation under
 +        cygwin (using the -mno-cygwin option for GCC) to the
 +        ./configure.in.pre.  The --with-win32 now prepares the
 +        compilation for native WIN32.
 +
 +      * Rewrote the SILC Scheduler interface in the file
 +        lib/silcutil/silcschedule.h.  The scheduler is now context
 +        based and does not have anymore any global static scheduler.
 +        Moved the Unix scheduler to the lib/silcutil/unix/ directory
 +        and created lib/silcutil/win32 directory for WIN32 based
 +        scheduler.
 +
 +      * Added Unix specific network routines to the
 +        lib/silcutil/unix/silcunixnet.c and the old
 +        lib/silcutil/silcnet.c includes now only generic routines.
 +
 +        Added WIN32 specific network routines to the
 +        lib/silcutil/win32/silcwin32net.c.
 +
 +      * Added Unix specific utility functions from the
 +        lib/silcutil/silcutil.c to lib/silcutil/unix/silcunixutil.c.
 +
 +      * Added WIN32 SILC Scheduler to the file
 +        lib/silcutil/win32/silcwin32schedule.c. The code is of course
 +          untested.
 +
 +Fri Jun 22 10:44:14 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
 +
 +      * Do not handle JOIN notify in the server if the target client
 +        is not registered (idata->registered == FALSE).  The affected
 +        file is silcd/packet_receive.c.
 +
 +      * Update the nickrec->founder in event_cumode in the Irssi SILC
 +        client.  Affected file irssi/src/silc/core/silc-channels.c.
 +
 +      * Fixed the CUMODE_CHANGE notify handling in the server when
 +        server and router are announcing their clients on channels.
 +        Now the mode changes are saved and notified correctly.  The
 +        affected file is /silcd/packet_receive.c.
 +
 +      * Fixed silc_idlit_replace_[server/client/channel]_id functions.
 +        They really did not replace the cache entry in the ID Cache.
 +        Now they do that.  Affected file silcd/idlist.c.
 +
 +      * Fixed the KICK notify handling in the Irssi SILC client to
 +        update the channel records so that the kicked client does not
 +        appear to be on the channel.  The affected file is
 +        irssi/src/silc/core/silc-channels.c.
 +
 +      * Always update the conn->current_channel when executing command
 +        on a channel.  Affected file irssi/src/silc/core/silc-servers.c.
 +
 +      * Fixed the KILL notify handling in Irssi SILC client to remove
 +        the killed client on all channels.
 +
 +Thu Jun 21 17:10:08 CEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
 +
 +      * Fixed the silc_parse_command_line to remove extra spaces
 +        from the start and end of the arguments.  Affected file is
 +        lib/silcutil/silcutil.c.
 +
 +      * Cancel and free any active protocol in the function
 +        silc_server_close_connection.  Affected file silcd/server.c.
 +
 +      * Cancel and free any active protocol in the function
 +        silc_client_close_connction.  Affected file is
 +        lib/silcclient/client.c.
 +
 +      * Do not execute the KILL command for clients that are in
 +        history (ie. they are not in the network).  Affected file is
 +        silcd/command.c.
 +
 +      * Fixed KILL notify handling, client does not crash anymore.
 +        Affected file irssi/src/silc/core/silc-channels.c.
 +
 +      * Reduced the default packet buffer size from 2048 to 1024 in
 +        lib/silccore/silcpacket.c.
 +
 +      * Added SILC_SKE_STATUS_FREED SKE status type and a reference
 +        counter to the SKE context that is incresed when the SKE library
 +        performs async operation outside the library.  If the outside
 +        process frees the SKE context and FREED status will be set
 +        and the library will detect after the sync operation that the
 +        libary is freed.  The affected files are
 +        lib/silcske/silcske[_status].[ch].
 +
 +      * Resolve the client entry information in the function
 +        silc_client_channel_message to assure that NULL pointer is not
 +        passed as client entry to the application. */
 +
 +      * Fixed the task timeout calculation to assure that there is
 +        never negative timeouts.  The affected file is
 +        lib/silcutil/silcschedule.c.
 +
 +      * Fixed the channel user mode notification sending in server.
 +        It was sent point-to-point to the router (or to server by router)
 +        but it needs to be destined to a channel.  The routines now
 +        supports sending the channel user mode notifys to the channels
 +        when announcing clients and channels.  Affected files are
 +        silcd/server.c and silcd/packet_receive.c.
 +
 +      * Fixed the CHANNEL_CHANGE notify handling in the client libary.
 +        It did not actually replace the old channel entry in the cache.
 +        Affected file lib/silcclient/client_notify.c.
 +
 +Tue Jun 19 22:10:36 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
 +
 +      * Fixed a possible crash in silc_packet_send_prepare.  It now
 +        assures always that there is enough space in the buffer and
 +        at the tail area of the buffer (for MAC).
 +
 +        Fixed the inbound buffer reallocation in silc_packet_read.
 +        It was old code and did not handle the reallocation correctly.
 +        Affected
 +
 +        The affected file is lib/silccore/silcpacket.c.
 +
 +      * Fixed buffer overflow in silc_parse_nickname in the file
 +        lib/silcutil/silcutil.c.
 +
 +Tue Jun 19 13:40:09 CEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
 +
 +      * make install generates new server keys only if there is not
 +        keys already.
 +
 +Mon Jun 18 18:49:07 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
 +
 +      * Set SILC_MESSAGE_FLAG_NOREPLY when sending the away message.
 +        Added check that if the NOREPLY is set then we will not send
 +        the away message.  This avoids infinite loop of away messages
 +        if both clients are away.  The affected file is
 +        lib/silcclient/client_prvmsg.c.
 +
 +      * Fixed client crash if /NICK was given without arguments.
 +        Affected file lib/silcclient/command.c.
 +
 +      * Server does not send the invite list in INVITE command back
 +        to the client if the list was not altered.  Added this notion
 +        to the protocol spec as well.  Affected file silcd/command.c.
 +
 +        Fixed possible crash in INVITE command by checking the
 +        value of silc_server_get_client_route command.
 +
 +      * Fixed the INVITE notify type handling.  The arguments are now
 +        taken in correct order and client does not crash.  The affected
 +        file is irssi/src/silc/core/silc-channels.c.
 +
 +        Removed the "Inviting xxx to channel" message from the
 +        client library away and let the application handle it.
 +        Affected file lib/silcclient/command.c.  Added that message
 +        to Irssi SILC client's message formats.
 +
 +      * Fixed CMODE command crash in client.  It now checks the
 +        amount of arguments correctly and does not crash.  The affected
 +        file is lib/silcclient/command.c.
 +
 +      * Do not create new channel automatically in silc_channels_join
 +        but check whether the channel by that name already exists.
 +        Affected file irssi/silc/core/silc-channels.c.
 +
 +      * Do not send the SERVER_SIGNOFF to router if the disconnected
 +        entity was the router.  Affected file silcd/server.c.
 +
 +      * Added the handling of the SERVER_SIGNOFF notify to the Irssi
 +        SILC client as it was missing from there.
 +
 +        Added the handling of the KICK notify to the Irssi SILC client
 +        as it was missing.  Added "you have been kicked" message to
 +        Irssi SILC client's message modules formats.
 +
 +        Added the handing of the KILL notify to the Irssi SILC client
 +        as it was missing.  Added the kill message module formats
 +        as well.
 +
 +        The affected file is irssi/src/silc/core/silc-channels.c.
 +
 +      * The router did not save the channel mode the server announced.
 +        Affected file silcd/packet_receive.c.
 +
 +      * Fixed a possible crash in INFO command in server.  If the
 +        server did not provide the server info it crashed.  Affected
 +        file silcd/command.c.
 +
 +Sun Jun 17 15:26:05 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
 +
 +      * Fixed the GETKEY command in the server to check also the
 +        global list.  Otherwise the GETKEY would not work correctly
 +        in normal SILC server.  Affected file silcd/command.c.
 +
 +Sat Jun 16 18:00:00 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
 +
 +      * Fixed GETKEY crash, it crashed if the command did not succseed.
 +
 +Tue Jun 12 21:36:18 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
 +
 +      * Redefined the SILC MP API in lib/silcmath/silcmp.h. The API
 +        is now real and not just an macro interface to GMP.
 +
 +        Removed the entire GMP from the source tree and imported new
 +        NSS MPI library instead.  Reason for removing GMP is that it is
 +        extremely large and compiles extremely slow.  The NSS MPI
 +        is only a few files and compiles in less than 10 seconds.
 +        The speed is also about the same as GMP.  The MPI is imported
 +        to lib/silcmath/mpi.
 +
 +        If the system has GMP installed we will still use the GMP.
 +        If it is not then the NSS MPI will be compiled.
 +
 +Mon Jun 11 18:07:24 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
 +
 +      * Merged a long nickname (127 characters long) crash bugfix from
 +        Irssi CVS tree.  Affected file irssi/src/core/misc.c.
 +
 +      * Merged a freed memory reference bugfix from Irssi CVS tree.
 +        Affected file irssi/src/core/commands.c.
 +
 +Sun Jun 10 16:08:35 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
 +
 +      * Added the server's public key sving and verification to the
 +        server when performing the SKE.  This was missing and the
 +        remote server's (or router's) public key was accepted without
 +        checking whether we have it previously or trust it at all.
 +        Affected file silcd/protocol.c.
 +
 +Sat Jun  9 20:17:30 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
 +
 +      * Check in the silc_server_timeout_remote if protocol is active
 +        and make sure that the protocol's final callback is called so
 +        that all memory if freed.  Affected file silcd/server.c.
 +
 +Sat Jun  9 12:51:27 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
 +
 +      * silc_server_whois_send_reply crashed the server if the nickname
 +        was 127 characters long.  Affected file silcd/command.c.
 +
 +Thu Jun  7 16:29:56 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
 +
 +      * Added sanity check to the silc_server_new_client. If the hostname
 +        is provided inside username then check that the provided hostname
 +        really is the same as the resolved one.  If the hostname was not
 +        resolved then check it from the public key.  Affected file is
 +        silcd/packet_receive.c.
 +
 +      * Fixed a fatal bug in Irssi SILC client. Do not send QUIT command
 +        if the server disconnected us and the connection is not valid
 +        anymore.  Affected file irssi/src/silc/core/silc-channels.c.
 +
 +      * Moved the silc_client_[chmode|chumode|chumode_char] away from
 +        the library to the lib/silcutil/silcutil.[ch].
 +
 +Thu Jun  7 08:57:16 CEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
 +
 +      * Close log file after open.  Affected file
 +        lib/silcutil/silclog.c.
 +
 +      * Check whether sock == NULL in silc_client_send_packet and return
 +        if it is.  Affected file lib/silcclient/silcclient.c.
 +
 +      * Check rec->entry == NULL in the Irssi SILC Client before
 +        sending the channel message.  Affecte file is
 +        irssi/src/silc/core/silc-servers.c.
 +
 +Tue Jun  5 08:08:21 CEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
 +
 +      * Merged a splitted window bugfix from Irssi CVS tree.  The
 +        affected file is irssi/src/fe-text/textbuffer-view.c.
 +
 +      * Fixed the ME, ACTION and NOTICE printing in Irssi Client.
 +        It did not print nickname.
 +
 +      * Improved the distributions system a bit.
 +
 +Mon Jun  4 17:57:16 CEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
 +
 +      * Merged /WINDOW bugfix from irssi CVS tree. Affected file is
 +        irssi/src/fe-text/gui-window.c.
 +
 +      * Fixed a fatal bug in Irssi SILC client. Crashed if sent message
 +        to in-active server.  The affected file is
 +        irssi/src/silc/core/client_ops.c.
 +
 +      * Resolve the client in USERS command reply if the entry does
 +        not have username resolved.  The affected file is
 +        lib/silcclient/command_reply.c.  Also, changed the IDENTIFY
 +        command to WHOIS command to really resolve stuff.  The USERS
 +        is not used any more in any critical section so WHOIS can
 +        be used even though it might be slower than IDENTIFY.
 +
 +      * Changed the lib/silcutil/silchashtable.h header to ROBODoc
 +        format.
 +
 +Sun Jun  3 14:21:32 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
 +
 +      * Changed the protocol API a bit more consistent in the
 +        lib/silccore/silcprotocol.[ch].
 +
 +      * Changed the following headers to ROBODoc format:
 +
 +              lib/silccore/silcpayload.h
 +              lib/silccore/silcprotocol.h
 +              lib/silccore/silcsockconn.h
 +
 +        All core library headers are now formatted.
 +
 +Sat Jun  2 10:45:09 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
 +
 +      * Fixed a bug in Irssi SILC client; do not show that you are
 +        server/router operator if you really are not.  Affected file is
 +        irssi/src/silc/core/client_ops.c.
 +
 +      * Renamed silc_command_free_payload to silc_command_payload_free.
 +        Affected file lib/silccore/silccommand.h
 +
 +      * Added silcmath.h to include the prototoypes of various routines
 +        in the lib/silcmath.  Removed the old modinv.h, mpbin.h and
 +        silcprimegen.h.
 +
 +      * Changed the following headers to ROBODoc format:
 +
 +              lib/silccore/silcchannel.h
 +              lib/silccore/silccommand.h
 +              lib/silccore/silcid.h
 +              lib/silccore/silcidcache.h
 +              lib/silccore/silcmode.h
 +              lib/silccore/silcnotify.h
 +              lib/silccore/silcpacket.h
 +              lib/silcmath/silcmath.h
 +
 +Fri Jun  1 22:19:37 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
 +
 +      * Added checking to the server code not to start the server if
 +        ciphers and stuff are not configured properly.  Affected files
 +        silcd/serverconfig.[h] and silcd/server.c.
 +
 +      * Changed the layout of the header files of the public interfaces
 +        in the SILC libraries.  The new layout supports ROBODoc
 +        documentation tool (and some others) so that it is easy to create
 +        a library reference manual.  All the other headers and source
 +        code must still follow the CodingStyle document.  Also source
 +        code must not include these ROBODoc stuffs, only the headers.
 +        Furthermore, all public interface headers must now be named
 +        by using `silc' prefix, example: silcapi.h, silccipher.h.
 +        Some files were renamed due to this.  All the other headers
 +        must not be used as public interfaces.  I will update the
 +        CodingStyle document later.  Changed following headers, so far:
 +
 +              lib/silcclient/silcapi.h
 +              lib/silccore/silcauth.h
 +              lib/silccore/silcprivate.h
 +              lib/silccrypt/silcdh.h
 +
 +Fri Jun  1 10:28:09 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
 +
 +      * Updated TODO.
 +
 +      * Removed silc_client_packet_send_flush from the client library
 +        as it is not needed.  Affected file lib/silcclient/client.[ch].
 +
 +      * Added printing of message of unresolved authentication method
 +        to the Irssi SILC client.  Added it to the module formats.
 +        Removed the same message from the client library.
 +
 +Thu May 31 13:57:33 CEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
 +
 +      * Added new distribution feature, DISTLABEL.  Every distribution
 +        can define own preprocessor label that can be used in the
 +        source code.  For example: #ifdef SILC_DIST_CLIENT.  Affected
 +        file distributions, acconfig.h.pre and prepare.
 +
 +Tue May 29 22:16:40 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
 +
 +      * Added Makefile.defines_int to include the actual definitions
 +        for Makefile.defines.in.  Tested the new distribution system,
 +        created distributions and tested installation.
 +
 +      * Added AWAY message printing to the Irssi SILC client.  Added
 +        the messages to the irssi/src/fe-common/silc/module-formats.[ch].
 +
 +      * Added SCONNECT command to call the SILC's CONNECT command.
 +        Cannot use CONNECT directly since Irssi uses that internally.
 +        Affected file irssi/src/silc/core/silc-servers.c.
 +
 +        Added ACTION local command.  It is same as ME command but takes
 +        the channel as mandatory argument.
 +
 +        Rewrote some of the Irssi's help files to suite for SILC
 +        protocol.
 +
 +Mon May 28 19:05:22 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
 +
 +      * Added Makefile.defines[.in] that should for now on be included
 +        in all Makefile.am file in the source tree.  That file includes
 +        all common compilation definitions for SILC source tree.
 +
 +Mon May 28 10:30:51 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
 +
 +      * Minor changes to the ./prepare script to change the package
 +        name according the distribution name to the configure.in.
 +
 +Sun May 27 22:24:57 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
 +
 +      * Created new distribution system.  Added file `distributions'
 +        that defines all the distributions that can be created out of
 +        the SILC source tree.  The ./prepare script now reads that
 +        file to determine how to prepare the distributions.  The
 +        first argument to the ./prepare is the name of the distribution
 +        and second is the version of the distribution.  If given
 +        without arguments it creates the default (toolkit) distribution
 +        with the default version (defined in ./prepare).
 +
 +        All Makefile.am files that are subject to the distributions
 +        are now named as Makefile.am.pre.  These are ./Makefile.am
 +        and lib/Makefile.am.  Others may be changed later.
 +
 +Sun May 27 15:57:17 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
 +
 +      * Added invite list, ban list, some key management and connection
 +        error message printing to module formats in the Irssi SILC client.
 +
 +      * Added new silc_client_set_away_message to set the away message
 +        that is back to the person who sent private message.  The
 +        affected file lib/silcclient/silcapi.h and the
 +        lib/silcclient/client_prvmsg.c.
 +
 +Sun May 27 12:39:48 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
 +
 +      * Fixed the private message sending in the Irssi SILC client,
 +        added local command KEY to the Irssi SILC client.
 +
 +        Added key management and key agreement message formats to the
 +        irssi/src/fe-common/silc/module-formats.[ch].
 +
 +        Added USERS (alias WHO) printing, server/router operator
 +        indication and LIST command printing to the module formats.
 +
 +Sat May 26 17:43:42 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
 +
 +      * Fixed channel joining notify handling, cumode notify handling
 +        from Irssi SILC client.
 +
 +      * Added SILC specific module-formats to the Irssi SILC client so
 +        that SILC specific message hilighting, colors etc is possible.
 +        Affected file irssi/src/fe-common/silc/module-formats.[ch].
 +
 +        Added channel mode, channel user mode, actions, notices,
 +        whois and whowas printing to the the module-formats.c.
 +
 +      * Fixed a bug in channel deletion in the server.  The channel
 +        is not left to the cache even if the channel founder auth mode
 +        is set when there are no users anymore on the channel.  Affected
 +        file silcd/server.c.
 +
 +      * The silc_net_localhost now resolves the entire hostname including
 +        the domain name.  Affected file lib/silcutil/silcnet.c.
 +
 +Sat May 26 12:13:37 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
 +
 +      * Changed the ask_passphrase client operation to be ascynchronous.
 +        It has now a completion callback and a context that the
 +        application must call after it has got the passphrase from
 +        the user.  Affected files lib/silcclient/silcapi.h,
 +        lib/silcclient/protocol.c, lib/silcclient/command.c and
 +        silc/client_ops.c.
 +
 +        Added SilcAskPassphrase callback that the application calls
 +        to deliver the passphrase to the library.
 +
 +      * Changed the SKE protocol's SilcSKEVerifyCb to be asynchronous.
 +        The public key verification and especially a certificate
 +        verification is asynchronous procedure.
 +
 +        Added new SILC_SKE_STATUS_PENDING status to indicate the
 +        request is pending and a callback will be called to finalize
 +        the request.
 +
 +        Added also SILC_SKE_STATUS_PUBLIC_KEY_NOT_PROVIDED status to
 +        indicate that remote end did not send its public key (or
 +        certificate), even though we require it.  Added check for this
 +        condition in the SKE.  This was a security bug, now fixed.
 +
 +        Defined new SilcSKEVerifyCbCompletion callback that is called
 +        when the verification process is completed.
 +
 +        The affected files lib/silcske/silcske_status.h and
 +        lib/silcske/silcske.[ch].
 +
 +      * Changed the verify_public_key client operation to be async
 +        as well.  Defined SilcVerifyPublicKey callback that is used to
 +        indicate the success of the public key verification process.
 +
 +        Changed the server and client to use the new async client
 +        operations.
 +
 +      * Changed the Irssi SILC client's internal scheduler to be called
 +        twice as many times as it used to be.  As a result the client
 +        should be a bit faster now.  Affected file is
 +        irssi/src/silc/core/silc-core.c.
 +
 +      * Added support to Irssi SILC client of asynchronous public key
 +        verification and passphrase inquiry.  Affected file is
 +        irssi/src/silc/core/silc-core.c.
 +
 +Fri May 25 14:38:38 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
 +
 +      * Do not say "You have left channel %s" in client library.
 +        Moved it to the application.  Affected files are
 +        lib/silcclient/command.c and silc/client_ops.c.
 +
 +      * Fixed silc_client_get_clients.  Command context was not
 +        duplicated and was freed memory in the callback.  Affected
 +        file lib/silcclient/idlist.c.
 +
 +      * Do not say "you are now talking..." on JOIN command in the
 +        client library.  The appliation must handle it.
 +
 +      * Do not say ".. changed topic to" in command reply in the
 +        client libary.  The application must handle it.
 +
 +      * Fixed TOPIC command sending in the client library.
 +
 +      * Fixed a memory leak in silc_client_command_free in the file
 +        lib/silcclient/command.c.
 +
 +Thu May 24 19:08:55 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
 +
 +      * Imported a modified version of Irssi client to the source tree.
 +        The Irssi will be used to create a new client called
 +        Irssi SILC.  Imported to irssi/.
 +
 +        Added silc_core_init_finish function to the Irssi.  Affected
 +        file irssi/configure.in.
 +
 +        A lot changes in the Makefile.ams around the irssi tree.
 +
 +Tue May 22 22:23:49 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
 +
 +      * Do not rehash if the new size is same as the old size of the
 +        hash table, in the silc_hash_table_rehash*.  The affected file
 +        lib/silcutil/silchashtable.c.
 +
 +      * Replaced hash_table_del_by_context calls from the server
 +        (when channel->user_list and client->channels) to the
 +        hash_table_del as it is sufficient and faster.
 +
 +Tue May 22 17:27:16 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
 +
 +      * Added silc_hash_table_list, silc_hash_table_get and the
 +        SilcHashTableList structure to provide an alternative way to
 +        traverse the hash table.  The affected files are
 +        lib/silcutil/silchashtable.[ch].
 +
 +      * Changed the server's idlist routines to use the hash table
 +        routines to optimize the code.
 +
 +Mon May 21 21:46:20 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
 +
 +      * Replaced the client entry's `channel' list and channel entry's
 +        `user_list' list to hash tables for optimized lookup.  Changed
 +        the code to use the hash table interface around the code.
 +        Affected file lib/silcd/idlist.[ch].
 +
 +      * Added `auto_rehash' boolean argument to the function
 +        silc_hash_table_alloc to indicate whether the hash table should
 +        auto-rehash when it thinks is appropriate time.  It will
 +        increase the hash table size if the there is twice as much
 +        entries in the table than the size of the table, and will
 +        decrease the size if there are twice as less entries than
 +        the size of the table.
 +
 +Mon May 21 09:51:11 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
 +
 +      * Fixed silc_xxx_get_supported to not crash at some circumstances.
 +
 +Sun May 20 13:45:58 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
 +
 +      * silc_idcache_purge_by_context deletes the entry now by context
 +        as it is supposed to do.  Affected file lib/silccore/idcache.c.
 +
 +      * Send the ERR_NO_SUCH_NICK in the WHOIS command reply if the
 +        client is not anymore valid (WHOWAS givens the info) and not
 +        the ERR_NO_SUCH_CLIENT_ID if the nickname still exists.
 +
 +Sat May 19 16:30:03 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
 +
 +      * Removed the `data' and `data_len' arguments from the ID Cache
 +        interfaces and added `name' argument.  ID Cache does not handle
 +        anymore the binary data only a names associated with given ID.
 +
 +      * When hashing a Client ID with silc_hash_id the entire ID is
 +        not hashed anymore, instead only the hash of the Client ID is
 +        hashed.  This way we can access the Client ID from the cache
 +        with Client ID but with the hash of the ID (which is a hash of
 +        the nickname) as well without any difference in performance.
 +
 +        Added also silc_idcache_find_by_id_one_ext to do one on one
 +        searching when we have the actual ID.  Added also function
 +        silc_hash_client_id_compare.  The affected files are
 +        lib/silccore/idcache.[ch] and lib/silcutil/silcutil.[ch].
 +
 +      * When hashing the name associated with a ID it is always done
 +        in lowercase.  This way we can access the cache without worrying
 +        about case-sensitivity, even though, for example nicknames are
 +        case sensitive.
 +
 +      * Fixed a bug in server with channel message sending.  It put
 +        wrong ID type as destination ID.  The affected file
 +        silcd/packet_send.c.
 +
 +      * silc_idcache_del_by_context now deletes from all hash tables
 +        by context.  Affected file lib/silccore/idcache.c.
 +
 +Fri May 18 17:42:00 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
 +
 +      * Changed the client library to use the new ID Cache interface.
 +        Changes around the source tree.
 +
 +      * Added silc_hash_table_rehash_ext to rehash with specific
 +        hash function.  Affected file lib/silcutil/silchashtable.[ch].
 +
 +      * Added silc_hash_string_compare to compare two strings in the
 +        hash table.  Affected file lib/silcutil/silcutil.[ch].
 +
 +Fri May 18 11:18:45 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
 +
 +      * Added new function silc_idcache_del_by_context into the
 +        lib/silccore/idcache.[ch].
 +
 +      * Changed the server's ID list routines to use the new ID Cache
 +        interface.  Changes around the source tree.
 +
 +Fri May 18 08:35:31 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
 +
 +      * Added silc_hash_table_del[_by_context]_ext functions in to the
 +        lib/silcutil/silchashtable.[ch].
 +
 +        Removed silc_hash_table_find_all* routines and added new
 +        silc_hash_table_find_foreach to replace them.
 +
 +        Added silc_hash_table_replace_ext function as extended
 +        replacing function.  Separated the simple hash table interface
 +        from the extended hash table interface in the file
 +        lib/silcutil/silchashtable.h.
 +
 +      * Fixed minor bugs and changed it to use some of the new
 +        hash table functions in lib/silccore/idcache.c
 +
 +Thu May 17 18:15:12 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
 +
 +      * Added new function silc_hash_table_find_all to return all keys
 +        in the hash table by the specified key.  As the hash table is
 +        collision resistant it also makes it possible to have several
 +        duplicate keys in the hash table.  This function may be used to
 +        find all of the keys from the hash.
 +
 +        Added user_context arguments to the SilcHashFunction,
 +        SilcHashCompare and SilcHashDestructor to deliver user specified
 +        context.
 +
 +        Added new fuctions silc_hash_table_find[_all]_ext to do
 +        extended lookup with specified hash and compare functions and
 +        specified user contexts.
 +
 +        Added new function silc_hash_table_add_ext to add the key
 +        with specified hash function and user context.
 +
 +        Added new function silc_hash_table_foreach to traverse all
 +        entrys in the hash table.  Added SilcHashForeach callback
 +        function.
 +
 +        Added new function silc_hash_table_del_by_context to delete
 +        the entry only if the context associated with the key matches.
 +
 +        Affected files are lib/silcutil/silchashtable.[ch].
 +
 +      * Removed silc_hash_[server/client/channel]_id and added just
 +        silc_hash_id to the lib/silcutil/silcutil.[ch].  Added also
 +        silc_hash_id_compare to compare two ID's using as the hash table
 +        comparison function.  Added also silc_hash_data to hash
 +        binary data and silc_hash_data_compare to compare it.
 +
 +      * Removed silc_idlist_find_client_by_hash as it is not needed
 +        anymore.  Affected file silcd/idlist.[ch].
 +
 +      * Rewrote the entire ID Cache system (in lib/silccore/idcache.[ch])
 +        to use internally the SilcHashTable.  The new ID Cache is a lot
 +        faster than the old one.  Some of the ID Cache interface was also
 +        rewritten and obsolete and stupid functions were removed.
 +
 +Wed May 16 23:03:30 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
 +
 +      * Added entry_count field to the SilcHashTable to keep the number
 +        of the entries in the table.  Implemented the function
 +        silc_hash_table_rehash.  Added new function
 +        silc_hash_table_count.  Affected file lib/silcutil/silchashtable.c.
 +
 +        Fixed a minor bug in silc_hash_table_free.
 +
 +      * Added silc_hash_string, silc_hash_uint, silc_hash_ptr,
 +        silc_hash_client_id, silc_hash_server_id and silc_hash_channel_id
 +        into the lib/silcutil/silcutil.[ch].
 +
 +Wed May 16 20:02:47 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
 +
 +      * Implemented a collision resistant hash table into the
 +        lib/silcutil/silchashtable[ch].  See the header and the source
 +        for the SilcHashTable API.
 +
 +Tue May 15 22:05:46 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
 +
 +      * Merged dotconf version 1.0.2 into lib/dotconf.
 +
 +Sun May 13 19:32:09 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
 +
 +      * Do not compile anything in lib/silcsim/* if the SIM support
 +        is not enabled.  The tree should now compile without problems
 +        under cygwin.
 +
 +Thu May 10 22:49:51 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
 +
 +      * Compiled the SILC under cygwin.  Compiled and tested briefly
 +        without problems.  More tests needed.  The SIMs didn't compile
 +        though.
 +
 +      * Added various #ifdef HAVE_* stuff to lib/silccrypt/silrng.c.
 +
 +      * Fixed possible crash in silc_get_username in the
 +        lib/silcutil/silcutil.c.
 +
 +Tue May  8 09:04:03 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
 +
 +      * Fixed a va_arg in silc/client_ops.c.
 +
 +      * Oops, RC5 routines were named AES and caused some problems
 +        when not using SIM's.  Affected file lib/silccrypt/rc5.c.
 +
 +Sun May  6 13:59:48 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
 +
 +      * Added new SilcIDIP structure into the lib/silccore/id.h and
 +        replaced the old `ip' fields from all SILC ID's to that type.
 +        This is a step towards IPv6 support.
 +
 +        The silc_id_get_len takes now the ID as an extra argument.
 +        The silc_id_id2str, silc_id_str2id and silc_id_dup now supports
 +        both IPv4 and IPv6 based ID's.
 +
 +        The affected files are lib/silccore/id.[ch] and other files
 +        around the tree using these routines.
 +
 +      * Removed the ID length arguments in server from various
 +        silc_server_send_notify_* routines -> they are not needed
 +        anymore.
 +
 +Sat May  5 13:56:33 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
 +
 +      * Fixed memory leak in silc_encode_pem_file in the file
 +        lib/silcutil/silcutil.c.
 +
 +Thu May  3 21:23:50 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
 +
 +      * Check minor version as well in the SKE.  Affected files are
 +        silcd/protocol.c and lib/silcclient/protocol.c.
 +
 +      * Added --identifier option to the server so that an identifier
 +        can be when creating the public key for the server.  Affected
 +        file is silcd/silcd.c.
 +
 +      * Fixed minor decoding bug in silc_pkcs_decode_identifier in
 +        lib/silccrypt/silcpkcs.c.
 +
 +Wed May  2 20:50:49 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
 +
 +      * Register default ciphers and stuff when using -C option with
 +        the server.  Affected file sildc/silcd.c.
 +
 +      * Put back the servers public key filename format, it is better
 +        than the new one.  For now, the client keys are saved with the
 +        new filename format.  The affected file silc/client_ops.c.
 +
 +      * Implemented the Cipher API for the rest of the ciphers that
 +        did not implement it or implemented it the wrong way.
 +
 +Wed May  2 13:31:26 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
 +
 +      * Register default ciphers and stuff when using the -S option
 +        in the client.  Affected file silc/silc.c.  Same also when
 +        creating new key pair with -C option.
 +
 +Tue May  1 14:18:13 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
 +
 +      * Fixed the silc_verify_public_key client operation function to
 +        save the public keys differently.  The fingerprint is now
 +        used as filename and not the hostname.  This way also the
 +        client keys are saved uniquely and not with hostnames.  The
 +        affected file is silc/client_ops.c.
 +
 +      * Trimmed the silc_hash_fingerprint function to remove extra
 +        whitespaces from the end of the fingerprint.  The affected
 +        file is lib/silccrypt/silchash.c.
 +
 +      * Updated TODO.
 +
 +      * Added silc_cipher_register_default function to register all
 +        default ciphers.  It can be used when configuration files
 +        does not exist and the application does not want any specific
 +        ciphers in any specific order.
 +
 +        The SilcDList is now used as silc_cipher_list dynamically
 +        allocated cipher list.  Removed the static list all together
 +        and now all ciphers must be allocated to the dynamic list.
 +        The silc_cipher_alloc routine was changed to check only the
 +        dynamic list.
 +
 +        All silc_cipher_* routines that used to return int returns
 +        now bool.
 +
 +        The affected files lib/silccrypt/silccrypt.[ch].
 +
 +      * The same thing was done to silc_hash_* as for silc_cipher_*
 +        routines.  Affected files lib/silccrypt/silchash.[ch].
 +
 +      * The same thing was done to silc_pkcs_* as for silc_cipher_*
 +        routines.  Affected files lib/silccrypt/silcpkcs.[ch].
 +        Added also silc_pkcs_[un]register[_default] functions.
 +        Removed the data_context from the PKCS API.
 +
 +      * Added silc_hmac_register_default function to register default
 +        hmacs.  Affected files lib/silccrypt/silchmac.[ch].  Added also
 +        SILC_ALL_HMACS macro that can be used with silc_hmac_unregister
 +        to unregister all hmacs at once.
 +
 +      * Register the default ciphers, hash functions, PKCSs and HMACs
 +        if client's configuration file does not exist.  The affected
 +        file silc/silc.c.
 +
 +      * The client did not load the hash functions from the SIM
 +        modules at all.  Added support for this.  Affected file is
 +        silc/clientconfig.c.
 +
 +      * When decoding public key with silc_pkcs_public_key_decode, check
 +        the supported algorithm only if PKCS are registered.  Affected
 +        file lib/silccrypt/silcpkcs.c.  The same was done with the
 +        silc_pkcs_private_key_decode.
 +
 +      * Fixed the SILC List routines to keep the list always in order.
 +        It used to change the list's order when traversing the list but
 +        not it preserves the order.  Affected file lib/trq/silclist.h.
 +
 +Mon Apr 30 17:29:03 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
 +
 +      * Added the client library to use the SilcSocketConnection's
 +        reference counter (by silc_socket_dup) to prevent the bug that
 +        the socket object may be freed underneath async operation.
 +
 +      * The name resolv library checking fixes in the configure.in.pre.
 +        The patch by salo.
 +
 +      * Created new version of the protocol drafts for future
 +        development. The -03 drafts are the ones that will be changed
 +        in the trunk now and the -02 will remain as they are.
 +
 +      * Send list of CUMODE notifys to the router when announcing
 +        the channel users to the router.  Affected file silcd/server.c.
 +        If the router receiving channel founder CUMODE for a channel
 +        that already has channel founder it will send CUMODE notify
 +        to the sender to remove the channel founder rights from the
 +        announced client.  Affected file silcd/packet_receive.c.
 +
 +      * The CUMODE notify may now use Server ID as well as the entity
 +        who changes the mode.  Updated protocool specs.
 +
 +      * Updated INSTALL and README files.
 +
 +Sun Apr 29 23:17:50 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
 +
 +      * New web pages in the http://silc.pspt.fi.  The pages was
 +        designed by salo.
 +
 +      * Updated CREDITS.
 +
 +Sun Apr 29 13:33:41 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
 +
 +      * Implemented the [DenyConnectin] config section in the server.
 +        Added silc_server_config_denied_conn to check whether incoming
 +        connection is denied.  Affected file silcd/serverconfig.[ch].
 +
 +      * Do not check the ports when checking the incoming configuration
 +        data if the port is 0, meaning any.  Affected file is
 +        silcd/serverconfig.c.
 +
 +Fri Apr 20 18:58:43 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
 +
 +      * Fixed buffer overflow in silc_string_compare in the file
 +        lib/silcutil/silcutil.c.
 +
 +      * Fixed double free in silc_server_command_leave in the file
 +        silcd/command.c.
 +
 +Fri Apr 20 14:00:11 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
 +
 +      * Fixed the version checking in the server.  Affected file is
 +        silcd/protocol.c.
 +
 +Thu Apr 19 19:52:46 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
 +
 +      * Fixed the configuration data fetching when accepting new
 +        connections in the server.  Affected file silcd/server.c.
 +
 +Thu Apr 19 11:40:20 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
 +
 +      * Added `sender_entry' argument to the function
 +        silc_server_packet_relay_to_channel so that we can check
 +        whether some destination actually belongs to the same route
 +        the sender belongs (ie, we must not resend the packet to the
 +        sender).  Affected file silcd/packet_send.[ch].
 +
 +      * Added `servername' field to the SilcClientEntry in the server
 +        to hold the name of the server where client is from.  Affected
 +        file is silcd/idlist.h.
 +
 +Wed Apr 18 22:19:03 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
 +
 +      * Moved the channel message encrypting in the router betwen
 +        router connections from silc_server_channel_message to the
 +        silc_server_packet_relay_to_channel since we want to check
 +        whether we have anybody channel before encrypting anything.
 +        Affected files silcd/packet_[receive/send].c.
 +
 +Tue Apr 17 21:18:19 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
 +
 +      * Fixed the [AdminConnection] server config section to support
 +        multiple entries.  Affected file silcd/serverconfig.c.
 +
 +      * Added support into the server to check the validity of the
 +        incoming connection before executing any KE or authentication
 +        protocols.
 +
 +      * The connection configuration is now saved to the KE and
 +        connection auth protocol contexts and not fetched anymore in
 +        the protocol.  Affected files silcd/server.c, silcd/protocol.[ch].
 +
 +      * The local hosts listenning address and port is also resolved
 +        now when starting the server.  We want to have the socket object
 +        to include the real address and port for the listener.  Added
 +        new function silc_net_check_local_by_sock into the files
 +        lib/silcutil/silcnet.[ch].
 +
 +      * Fixed a broadcast bug in server -> do not broadcast if we
 +        are standalone.
 +
 +      * Fixed a routing bug.  Do not route broadcast packets ever.
 +        Broadcast packets must be processed always and not routed since
 +        they may be destined to some other host than yourself and thus
 +        would get routed without no good reason.  Affected file is
 +        silcd/server.c.
 +
 +      * Added function silc_server_config_is_primary_route to check
 +        whether primary router connection has been configured (a router
 +        configuration that we are initiating).  If there is not, we
 +        will assume that there is only two routers in the SILC network
 +        and we will use the incoming router connection as our primary
 +        route.  Affected files silcd/serverconfig.[ch], silcd/server.c.
 +
 +      * Changed the order of the broadcasting.  Broadcast _after_ the
 +        packet has been processed not before.  Affected file is
 +        silcd/server.c.
 +
 +      * Fixed a [ClientConnection] parsing bug.  The port was never
 +        parsed correctly thus resulting to port 0.  Affected file
 +        silcd/serverconfig.c.
 +
 +      * Fixed silc_server_send_notify_args -> it ignored the `broadcast'
 +        argument and did not set the broadcast packet flag.  Affected
 +        file silcd/packet_send.c.  Fixed same bug in the function
 +        silc_server_send_notify as well.
 +
 +      * If we receive NEW_ID packet for our own ID in the server, ignore
 +        the packet.
 +
 +Mon Apr 16 12:10:33 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
 +
 +      * Updated TODO.
 +
 +      * Removed the nickname from the Private Message Payload.
 +        Updated the code and the protocol specs.
 +
 +      * Updated protocol specs for submitting to the IETF.
 +
 +      * Tweaked the Random Number Generator a bit.  Affected file
 +        lib/silccrypt/silcrng.c.  Exported a new function
 +        silc_rng_[global]_add_noise which can be used to add more
 +        noise to the RNG.
 +
 +Sat Apr 14 16:21:32 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
 +
 +      * Do not parse packets with different timeout when protocol
 +        is active -> may cause problem with rekey.  Affected file
 +        silcd/server.c.
 +
 +      * When server receives signoff notify it must not create
 +        new channel key if the client is on any channels since the
 +        sender of the signoff notify will create it.
 +
 +Fri Apr 13 17:12:46 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
 +
 +      * Added printing of error messages during SKE protocol from the
 +        failure packet sent by server during SKE.  Affected file
 +        silc/client_ops.c.
 +
 +      * Removed the client's failure_callback handling with timeout
 +        and handle it immediately when received.
 +
 +      * The SKE library returned wrong type in SUCCESS and FAILURE
 +        packets.  They must be 32 bit MSB not 16 bit MSB.
 +
 +Fri Apr 13 00:09:08 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
 +
 +      * Ok, rewrote the logic of the re-key and now it seems to work.
 +        I tested it on high traffic with frequent re-keys without
 +        problems.  Added hmac_receive (and renamed hmac to hmac_send)
 +        in SilcClientConnection in lib/silcclient/client.h and
 +        in SilcIDListData in silcd/idlist.h.  Also, removed the
 +        SilcPacketParserContext's cipher and hmac fields as they are
 +        not needed anymore and actually caused some problems when
 +        the ciphers and hmac's changed underneath the packet parser.
 +
 +Thu Apr 12 14:42:51 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
 +
 +      * If re-key protocol is active then process the incoming packets
 +        synchronously since we must assure that icoming packets encrypted
 +        with the old key is processed before the new keys is set to
 +        use.  This is true other packets than for REKEY packets.
 +        Affected file silcd/server.c.  The same was done to client library
 +        as well, affected file lib/silcclient/client.c.
 +
 +Thu Apr 12 12:01:52 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
 +
 +      * Fixed bug in client and server to accept the force send if
 +        the packet is send from silc_[server/client]_packet_process
 +        function.  Otherwise the packets are never delivered, oops.
 +
 +Wed Apr 11 22:10:15 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
 +
 +      * Disable force sending of packets when REKEY protocol is active.
 +        We must assure that no packet is sent directly when rekey is
 +        performed.  All packets must be sent through packet queue.
 +        Added macro SILC_SERVER_IS_REKEY to silcd/server.h and
 +        SILC_CLIENT_IS_REKEY to lib/silcclient/client.h.  Affected
 +        function is silc_[server/client]_packet_send_real to check
 +        the situation.
 +
 +      * Replaced the SIM paths from example config files to
 +        /usr/local/modules.  Also, make install creates now
 +        /usr/local/silc/logs directory to hold all the SILC server
 +        logs.
 +
 +Wed Apr 11 16:59:59 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
 +
 +      * Made the configure.in.pre work on Solaris.  Patch by salo.
 +
 +      * Made all ciphers compatible with non-x86 machines.  Defined
 +        CBC mode macros into lib/silccrypt/ciphers_def.h.
 +
 +Tue Apr 10 20:32:44 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
 +
 +      * Fixed the make install.
 +
 +Tue Apr 10 16:20:34 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
 +
 +      * When MAC computation fails the silc_packet_decrypt returned 0
 +        even though it was supposed to return -1.  Fixed this.  The
 +        affected file is lib/silccore/silcpacket.c.
 +
 +      * Do not replace the config files in /etc/silc (in make install)
 +        if they already exist.  Affected file ./Makefile.am.
 +
 +      * Do not send re-key packets immediately but through packet queue.
 +        Affected file silcd/protocol.c and lib/silcclient/protocol.c.
 +
 +      * Changed silc_net_check_host_by_sock to return FALSE if the
 +        IP/DNS could not be resolved.  Though, it returns the IP address
 +        now even if it could not resolve it (but returns also FALSE).
 +        Affected file lib/silcutil/silcnet.[ch].
 +
 +Mon Apr  9 21:54:44 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
 +
 +      * Added silc_pkcs_decode_identifier to decode the public key's
 +        identifier.  Affected file lib/silccrypt/silpkcs.[ch].
 +        Added also silc_pkcs_free_identifier.  Added also new context
 +        SilcPublicKeyIdentifier.
 +
 +      * Added -S option to the silc client.  It is used to dump the
 +        contents of the specified public key file.
 +
 +      * Changed the PKCS api to return the public key length when
 +        setting the public key.
 +
 +      * Fixed a fatal bug in the public and private key file loading.
 +        Affected file lib/silccrypt/silcpkcs.c.
 +
 +      * Execute the packet parsing for client with zero (0) timeout
 +        if the protocol is active.  Affected file silcd/server.c.
 +
 +Sun Apr  8 19:30:56 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
 +
 +      * Made the key generation options to the silcd program.  Added
 +        -C option, equivalent to client's option.
 +
 +      * Added new [ServerKeys] config section to the server.  It
 +        configures the server's public and private key.
 +
 +      * Defined generic Public Key Payload into the protocol
 +        specification to send specific type of public keys and
 +        certificates.
 +
 +      * Defined new command SILC_COMMAND_GETKEY to fetch a client's
 +        public key or certificate.
 +
 +      * Implemented the GETKEY command to the server and to the
 +        client library and on user interface.
 +
 +Sun Apr  8 01:37:21 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
 +
 +      * Made preliminary `make install' work.
 +
 +Thu Apr  5 17:42:30 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
 +
 +      * Added SilcServerRekey context into silcd/idlist.h.
 +
 +      * Added the PFS support as defined in the specification to the
 +        SKE protocol.  Affected files lib/silcske/*.c.
 +
 +      * Added `ske_group' field to the SilcServerRekey context to hold
 +        the number of the SKE group that is used with PFS in re-key.
 +        Affected file silcd/idlist.h.
 +
 +      * Added PFS re-key support to the server.  Affected file is
 +        silcd/protocol.c.
 +
 +      * Added silc_protocol_cancel to cancel execution of the next
 +        state of the protocol.  Affected file is
 +        lib/silccore/silcprotocol.[ch].
 +
 +      * Added the re-key support with and without PFS to the client
 +        library.  Re-key is performed once in an hour, by default.
 +
 +        Added new protocol type SILC_PROTOCOL_CLIENT_REKEY.
 +        Added silc_client_rekey_callback and silc_client_rekey_final.
 +        Affected files are lib/silcclient/protocol.[ch] and
 +        lib/silcclient/client.[ch].
 +
 +      * Removed the `hmac_key' and `hmac_key_len' fields from the
 +        SilcClientConnection structure; not needed.  Affected file is
 +        lib/silcclient/client.h.
 +
 +      * Updated TODO.
 +
 +Wed Apr  4 16:32:31 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
 +
 +      * Do not ask whether user wants to use the negotiated private key
 +        for private messages, just use it.  Affected file is
 +        silc/local_command.c.
 +
 +      * Added `send_enc_key' and `enc_key_len' fields to the
 +        SilcIDListData structure since they are needed in the re-key
 +        phase.  Affected file is silcd/idlist.[ch].
 +
 +      * Implemented the simple re-key protocol into the server.
 +        Affected files silcd/server.c and silcd/protocol.[ch].  The
 +        re-key will be performed once in an hour, by default.
 +
 +        Added new protocol type SILC_PROTOCOL_SERVER_REKEY.
 +        Added silc_server_rekey, silc_server_rekey_callback and
 +        silc_server_rekey_final.
 +
 +      * Removed Tunneled flag from the protocol.  Updated the code
 +        and the specifications.
 +
 +      * Adde `pfs' field to the SilcIDListData to indicate whether
 +        the PFS is to be performed in the re-key.  Affected file is
 +        silcd/idlist.h.
 +
 +Tue Apr  3 21:52:42 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
 +
 +      * Defined uint8, int8, uint16, int16, uint32, int32, uint64 and
 +        int64 of at least the xintXX size.  If void * is less that 4
 +        bytes uint32 * will be used.  Defined bool as boolean.
 +
 +      * Changed _ALL_ unsigned long and unsigned int to uint32,
 +        unsgined short to uint16 in the source tree.
 +
 +      * Fixed a fatal bug in silc_server_remove_clients_by_server.  Do
 +        not handle clients that has entry->data.registered == FALSE.
 +        They are not in the network anymore.  Affected file is
 +        silcd/server.c.
 +
 +Tue Apr  3 16:39:19 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
 +
 +      * Implemented the sending of the SERVER_SIGNOFF notify in the
 +        server.  Affected file is silcd/server.c.
 +
 +      * Added silc_server_send_notify_args into silcd/packet_send.[ch].
 +        Added also silc_notify_payload_encode_args into the
 +        lib/silccore/silcnotify.[ch].
 +
 +      * Implemented ther SERVER_SIGNOFF notify handling in the server.
 +        Affected file silcd/packet_receive.c.
 +
 +      * Implemented the SERVER_SIGNOFF notify handling in the client
 +        library.  Affected file lib/silcclient/client_notify.c.  Also,
 +        implemnted the printing of the SERVER_SIGNOFF info to the
 +        application.  Affected file silc/client_ops.c.
 +
 +      * The silc_idlist_del_server now returns TRUE or FALSE to indicate
 +        if the deleting was successful.  Affected file silcd/idlist.[ch].
 +
 +      * Added support for public key authentication in the connection
 +        authentication protocol in the client library.  Affected file
 +        lib/silcclient/protocol.c.
 +
 +      * Changed the server's silc_idlist_get_clients_by_* interface
 +        to support already allocated array so that new entries may be
 +        added to pre-allocated array.  Affected file silcd/idlist.[ch].
 +        This fixes some bugs with WHOIS, WHOWAS and IDENTIFY commands
 +        and command replies.
 +
 +      * All command reply functions in the server now calls the
 +        pending command callback even if error occured.  This way the
 +        error will be delivered to the client as well.  Affected files
 +        silcd/command.c and silcd/command_reply.c.
 +
 +      * Fixed INFO command to return local server's info if no server
 +        was provided.  Affected file lib/silcclient/command.c.
 +
 +      * Removed RESTART command for good.  Updated the code and the
 +        protocol specs.
 +
 +      * Rewrote parts of the task system.  It is a bit simpler now.
 +        Removed unsued task priorities. The affected files are
 +        lib/silcutil/silctask.[ch].
 +
 +Mon Apr  2 20:02:33 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
 +
 +      * Moved the USERS printing from the library to the application.
 +        Affected files lib/silcclient/command.c and silc/client_ops.c.
 +
 +Mon Apr  2 13:13:23 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
 +
 +      * Updated TODO.
 +
 +      * Added channel key re-key support.  The re-key is perfomed
 +        only by the router and is done once in an hour.  Added `rekey'
 +        field to the SilcChannelEntry in the server.  Affected files
 +        silcd/server.c and silcd/idlist.h.
 +
 +      * Added silc_task_unregister_by_context into the file
 +        lib/silcutil/silctask.[ch].
 +
 +Sun Apr  1 19:49:34 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
 +
 +      * Added SILC_UMODE_GONE mode to indicate when the client is not
 +        present in the SILC network.  Added also support to the local
 +        command AWAY that will set this mode.  Added support of showing
 +        "xxx is gone" in WHOIS command.  The USERS command shows the
 +        gone status as well.
 +
 +      * Fixed setting server and router operator privileges in the
 +        server's UMODE command.  Affected file silcd/command.c.
 +
 +      * Merged the SKE KE1 and KE2 payloads into one payload.  The
 +        new KE payload is equivalent to the old KE2 payload.
 +
 +        Cleaned up the SKE Start Payload parsing.  It now uses the
 +        simple buffer unformatting to do the parsing.  A lot faster
 +        now.
 +
 +        Added new Mutual Authentication flag (SILC_SKE_SP_FLAG_MUTUAL)
 +        to the SKE that is used to indicate whether both of the SKE
 +        parties should perform authentication.  By default only the
 +        responder performs authentication.  By setting this flag also
 +        the initiator must do authentication.  By default it is unset
 +        since in normal SKE case, client to server connection, only
 +        the responder should do authentication.  When doing SKE between
 +        two clients both should perform authentication.  Updated the
 +        code and the protocol specs.
 +
 +      * A little fix to IDENTIFY command in the server.  Search the
 +        client first by hash not nickname.  Affected file is
 +        silcd/command.c.
 +
 +      * Fixed the silc_client_close_connection to support closing
 +        the client to client connections wihtout deleting too much
 +        data.  Affected file lib/silcclient/client.c.
 +
 +      * Fixed a fatal bug in server and client; if KE1 or KE2 packets
 +        are received if protocol used to be active but is not anymore
 +        the application would crash due to NULL pointer dereference.
 +        Affected files silcd/server.c and lib/silcclient/client.c.
 +
 +      * Added `hash' field to the SilcClientConnection to include
 +        the hash function negotiated in the SKE protocol.
 +
 +      * Added new channel mode SILC_CMODE_FOUNDER_AUTH that is used
 +        to set the channel founder authentication data.  A client can
 +        claim the founder rights later by providing the authentication
 +        data to the CUMODE command using SILC_CUMODE_FOUNDER mode.
 +        This way the channel founder can regain the channel founder
 +        privileges even it is left the channel.  This works only on
 +        local server and the client must be connected to the same
 +        server to be able to regain the founder rights.  Updated the
 +        protocol specs accordingly.
 +
 +        Added support to the CMODE command in the client to set the
 +        founder auth data.  Read the README to see how to set it.
 +
 +        Added support to the CUMODE command to claim the founder
 +        rights.  Read the README to see how to do it.
 +
 +        Added support for the founder authentication to the Channel
 +        Entry in the server.  Affected file silcd/idlist.h.
 +
 +        Added support for the SILC_CMODE_FOUNDER_AUTH mode in the
 +        server's CMODE command.  Affected file silcd/command.c.
 +
 +      * Added the following new functions into lib/silccore/silcauth.[ch]:
 +        silc_auth_get_method and silc_auth_get_data.
 +
 +      * The server now saves the remote hosts public key to the
 +        SilcIDListData pointer.  Affected file silcd/protocol.c.
 +
 +      * The normal server now does not remove the channel entry from
 +        the cache if the founder authentication data is set.  It used
 +        to remove it if the founder was the last one on the channel on
 +        the server and left the channel.  The auth data is saved and
 +        if the channel is re-joined later the old entry is used with
 +        the old auth data.  Affected files silcd/command_reply.c and
 +        silcd/server.c.
 +
 +      * Removed the `pkcs' field from the SilcIDListData structure
 +        in the server; it is not used.  Affected file silcd/idlist.h.
 +
 +Sat Mar 31 15:38:36 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
 +
 +      * Fixed packet processing on slow links.  Partial packets were
 +        never re-processed because the incoming data buffer was cleared
 +        by the application.  Application must not directly clear the
 +        sock->inbuf, the packet processing routines handle it.  Fixed
 +        this in client library and in server.
 +
 +Fri Mar 30 16:35:27 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
 +
 +      * Fixed the WHOIS and IDENTIFY send reply function to really
 +        check whether to send list or just one entry.  Affected file
 +        silcd/command.c.
 +
 +      * Cleaned up the LEAVE command's channel key distribution.  The
 +        affected file silcd/command.c.
 +
 +      * Changed CMODE_CHANGE's <Client ID> to <ID Payload> as server
 +        can enforce the channel mode as well.  In that case the ID
 +        includes the ID of the server.  The code now enforces the
 +        mode change if the router have different mode than the server.
 +
 +      * The notify client operation with CMODE_CHANGE notify can now
 +        return NULL client_entry pointer if the CMODE was not changed
 +        by client.  Application must check for this.
 +
 +      * Added <Server ID> argument to INFO command to support server
 +        info fetching by Server ID.
 +
 +      * Added silc_server_announce_get_channel_users to get assembled
 +        packets of channel users of the specified channel.  Affected
 +        file silcd/server.[ch].
 +
 +      * Fixed bug in CHANNEL_CHANGE notify in the server.  The new ID
 +        was freed underneath the ID Cache.
 +
 +      * Re-announce clients when the server received CHANNEL_CHANGE
 +        notify from the router.  Affected file silcd/packet_send.c.
 +
 +Thu Mar 29 19:10:28 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
 +
 +      * Fixed a fatal bug when client does /join 1 2 3 4 5 6 the server
 +        crashed since it did not handle the fact that there is no cipher
 +        called "3" and didn't check the error condition.  Now fixed.
 +
 +      * Added SILC_MESSAGE_FLAG_REQUEST message flag as generic request
 +        flag.  It can be used to send message requests.
 +
 +Thu Mar 29 12:26:25 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
 +
 +      * Implemented the RESTART command in the client.
 +
 +      * Added SILC_MESSAGE_FLAG_NOTICE message flag for informational
 +        notice type messages.  Added notice printing to the user
 +        interface.
 +
 +      * The channel keys are not re-generated if the channel's mode
 +        is PRIVKEY, ie private key on the channel exists.  Affected
 +        files silcd/server.c and silcd/command.c.
 +
 +      * Fixed a little bug in channel message delivery when channel
 +        private keys are set in the server.  Affected file is
 +        silcd/packet_send.c.
 +
 +      * Changed the setting on channel->on_channel = TRUE from the
 +        silc_client_save_channel_key to the JOIN command reply.  The
 +        key payload is not received if the private channel key is set.
 +        Affected file lib/silcclient/command_reply.c and the
 +        lib/silcclient/client_channel.c.
 +
 +      * When the CMODE_CHANGE notify is sent and the channel private
 +        key mode is removed the channel key must be re-generated in
 +        other cells as well.  Added this support for the router in the
 +        silcd/packet_receive.c.
 +
 +      * Added new local command NOTICE to send notice message on
 +        channel.  Affected file silc/local_command.[ch].
 +
 +Wed Mar 28 23:55:54 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
 +
 +      * Added new local command ME to the client.  It is used to send
 +        message to a channel with SILC_MESSAGE_FLAG_ACTION to indicate
 +        some action.  Affected file silc/local_command.[ch].
 +
 +      * Changed channel_message and private_message client operations
 +        to deliver the message flags to the application.  Added also
 +        the `flags' arguments to the silc_client_send_channel_message
 +        and silc_client_send_private_message functions.  Affected file
 +        silcapi.h.
 +
 +Wed Mar 28 20:50:47 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
 +
 +      * Redefined the Private Message Payload to support private message
 +        keys and to support the new private message flags.  Updated
 +        the protocol specs.  Flags makes it possible to have for example
 +        CTCP style messages.
 +
 +      * Added new type SilcPrivateMessagePayload and defined an API
 +        for it in the lib/silcclient/silcprivate.[ch].
 +
 +      * Tested private message private keys successfully.  Tested the
 +        private message key set, unset and list commands with the new
 +        KEY command.
 +
 +      * Redefined the Channel Message Payload to include the channel
 +        message flags (equal with private message flags) to support
 +        for example CTCP style messages.
 +
 +      * Defined some of the message (for channel and private message)
 +        flags.  Updated the protocol specs and added the flags to the
 +        lib/silccore/silcchannel.h.  The type is SilcMessageFlags.
 +
 +Wed Mar 28 15:52:36 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
 +
 +      * Added SilcKeyAgreementStatus type to the key agreement routines
 +        to indicate the current status and error if one occured.
 +        The status types are defined in the lib/silcclient/silcapi.h.
 +
 +      * Added new local command KEY that is used to set and unset private
 +        keys for channels, set and unset private keys for private messages
 +        with remote clients and to send key agreement requests and
 +        negotiate the key agreement protocol with remote client.  The
 +        key agreement is supported only to negotiate private message keys,
 +        it currently cannot be used to negotiate private keys for channels,
 +        as it is not convenient for that purpose.
 +
 +      * Fixed a minor pending callback setting bug in the function
 +        silc_client_get_client_by_id_resolve, now the function works.
 +        Affected file lib/silcclient/idlist.c.
 +
 +      * Added function silc_net_get_local_port to get local bound
 +        port by socket.  Added to lib/silcutil/silcnet.[ch].
 +
 +      * Added `sockets' and `sockets_count' fields to the SilcClient
 +        object.  They hold the sockets of the listenning sockets in
 +        the client.  Listenning sockets may be for example the key
 +        agreement server.  Affected file lib/silcclient/client.[ch].
 +        Added functions the silc_client_add_socket and the
 +        silc_client_del_socket.  They are exported to the application
 +        as well.
 +
 +      * Added ~./silc/clientkeys to support other client's public keys.
 +
 +      * Renamed verify_server_key client operation to verify_public_key
 +        and added one argument to indicate the type of the connection
 +        (server, client etc.).
 +
 +Tue Mar 27 22:22:38 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
 +
 +      * Added silc_server_connection_auth_request to handle the
 +        incoming CONNECTION_AUTH_REQUEST packet.  Affected file is
 +        silcd/packet_receive.[ch].
 +
 +      * Added silc_server_send_connection_auth_request into the
 +        silcd/packet_send.c to send the connection auth request packet.
 +
 +      * Cleaned up the silcd/protocol.c a bit and fixed some memory
 +        leaks.
 +
 +      * Fixed the public key authentication in responder side in the
 +        server.  The `auth_data' pointer includes the SilcPublicKey
 +        not the path to the public key.  Affected file silcd/protocol.c.
 +
 +      * Implemented the public key authentication in the initiator side
 +        in the server.  Affected file silcd/protocol.c.
 +
 +      * Removed the [RedirectClient] config section from the server
 +        configuration.  Is not needed and I don't want to implement it.
 +
 +Tue Mar 27 12:49:56 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
 +
 +      * Cleaned up the CMODE command in the server.  It now works
 +        correctly and supports all the modes defined in the protocol.
 +        Affected file is silcd/command.c.
 +
 +      * Added `hmac_name' field to the SilcChannelEntry in the server
 +        to hold the default HMAC of the channel.  It can be set when
 +        creating the channel (with JOIN command).  Affected files
 +        silcd/idlist.[ch].
 +
 +      * Added <cipher> and <hmac> argument to the CMODE_CHANGE notify
 +        type to indicate the change of the current cipher and hmac
 +        on the channel.  Client can safely ignore the <cipher> argument
 +        (if it chooses to do so) since the CHANNEL_KEY packet will
 +        force the channel key change anyway.  The <hmac> argument is
 +        important since the client is responsible of setting the new
 +        HMAC and the hmac key into use.
 +
 +      * Fixed the CMODE command in the client library as well.
 +
 +      * Tested CMODE command in router environment successfully.
 +
 +Mon Mar 26 14:39:48 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
 +
 +      * Show the version of the remote client (or server) when connecting
 +        to the server.  It is logged to the log file.  Affected file
 +        is silcd/protocol.c.
 +
 +      * Fixed the KILLED notify handling in the client library.  The
 +        client must be removed from all channels when receiving the
 +        KILLED notify.
 +
 +        Also, do not remove the client entry when giving the KILL
 +        command but when the KILLED notify is received.
 +
 +      * Removed silc_idlist_find_client_by_nickname from the server.
 +        Not needed anymore.  Affected files silcd/idlist.[ch].
 +
 +      * Implemented the CHANNEL_CHANGE notify type handling to the
 +        server.  Affected file silcd/server.c.
 +
 +      * Updated TODO.
 +
 +Mon Mar 26 12:11:14 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
 +
 +      * Added silc_server_send_notify_invite to send the INVITE
 +        notify between routers.
 +
 +      * Implemented the INVITE command correctly to the server.
 +
 +      * Implemented the INVITE notify type handling in the server.
 +
 +      * Implemented the INVITE command to the client library and on the
 +        user interface.
 +
 +Sun Mar 25 20:27:09 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
 +
 +      * Added function silc_server_get_client_resolve to find the
 +        client entry by ID from all ID lists and then resolve it
 +        (using WHOIS) if it cannot be found.  Affected file is
 +        silcd/server.[ch].
 +
 +Sun Mar 25 13:52:51 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
 +
 +      * Implemented the BAN command to the client library.
 +
 +      * The JOIN command in the server now checks the invite list
 +        and the ban list.
 +
 +      * Changed the silc_command_reply_payload_encode_va and the
 +        silc_command_payload_encode_va to support that if argument is
 +        NULL it ignores and checks the next argument.  Affected file
 +        lib/silccore/silccommand.c.
 +
 +      * Added silc_server_send_notify_ban to send the BAN notify
 +        type between routers.
 +
 +      * Chaned the silc_notify_payload_encode to support that if
 +        argument is NULL it ignores and checks the next argument.
 +        Affected file lib/silccore/silcnotify.c.
 +
 +      * Tested ban lists in router environment successfully.
 +
 +Sat Mar 24 14:47:25 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
 +
 +      * Implemented BAN command to the server, in silcd/command.[ch].
 +
 +      * Removed the BAN and INVITE_LIST modes from the CMODE command
 +        in the server code.
 +
 +      * Added function silc_string_match to regex match two strings.
 +        Affected files lib/silcutil/silcutil.[ch].
 +
 +Fri Mar 23 22:02:40 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
 +
 +      * Redefined parts of the SilcChannelEntry in the server to support
 +        the new ban and invite lists.
 +
 +Fri Mar 23 16:25:11 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
 +
 +      * Redefined the INVITE command.  The same command can be used to
 +        invite individuals to the channel but also to manage the invite
 +        list of the channel (to add to and remove from the invite list).
 +        Updated the protocol specs.
 +
 +      * Added new command SILC_COMMAND_BAN that can be used to manage
 +        the ban list of the channel.  Updated the protocol specs.
 +
 +      * Removed the channel modes: the SILC_CMODE_BAN and the
 +        SILC_CMODE_INVITE_LIST as they were a bit kludge to be included
 +        in the CMODE command.  The equivalent features are now available
 +        using INVITE and BAN commands.  Updated the protocol specs.
 +
 +      * Added new SILC_NOTIFY_TYPE_BAN notify type to notify routers
 +        in the network about change in the current ban list.  The notify
 +        type is not used by the client.
 +
 +      * Redefined parts of the SILC_NOTIFY_TYPE_INVITE command to
 +        support the invite lists.
 +
 +Thu Mar 22 22:52:23 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
 +
 +      * Added new function silc_string_regexify that converts string
 +        including wildcard characters into regex string that can
 +        be used by the GNU regex library.  Added into the file
 +        lib/silcutil/silcutil.[ch].
 +
 +        Added silc_string_regex_combine to combine to regex strings
 +        into one so that they can be used as one regex string by
 +        the GNU regex library.  Added into the file
 +        lib/silcutil/silcutil.[ch].
 +
 +        Added silc_string_regex_match to match two strings.  It returns
 +        TRUE if the strings match.  Added into lib/silcutil/silcutil.[ch].
 +
 +Thu Mar 22 15:29:42 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
 +
 +      * Imported GNU regex to the soruce tree into lib/contrib.
 +        Fixed some compiler warning from the regex.c.
 +
 +Wed Mar 21 15:27:58 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
 +
 +      * Fixed MOTD command in the server to work in router environment.
 +
 +      * Fixed the MOTD command in the client library to support
 +        the server argument in the command.
 +
 +      * Added `nickname_len' argument to the silc_idlist_add_client
 +        in the server, as the `nickname' argument may be binary data
 +        (it may be hash).
 +
 +      * Added silc_idlist_get_channels to return all channels from
 +        the ID list.
 +
 +      * Implemented LIST command to the server.  Affected file is
 +        silcd/command.c.
 +
 +      * Implemented the LIST command to the client library and on the
 +        user interface.
 +
 +      * Added [<user count>] argument to the LIST command reply.
 +        With private channels the user count is not shown.
 +
 +      * Updated TODO and README.
 +
 +Tue Mar 20 21:05:57 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
 +
 +      * The client entry's data.registered must be TRUE even with
 +        global client entry on global client list.  The data.registered
 +        is used to check whether the client is anymore in the network,
 +        for example with WHOWAS command so it must be valid.
 +
 +      * Fixed the WHOWAS command in the server.  It now actually works
 +        in router environment.  Added function into silcd/command_reply.c
 +        silc_server_command_reply_whowas_save.
 +
 +      * Added silc_idlist_purge function to the silcd/idlist.c
 +        to periodically purge the ID Cache.
 +
 +      * Fixed INFO command in the server.  It works now in router
 +        environment.  Added <server name> argument to the INFO command
 +        reply.  Updated the protocol specs.
 +
 +      * Fixed minor bug in silc_idcache_purge to not purge if the
 +        expire value is zero.
 +
 +      * Fixed various bugs in WHOIS and IDENTIFY command handling as
 +        they were buggy because of the WHOWAS information.
 +
 +      * Fixed local command MSG to handle the async resolving of
 +        the remote client properly.  It used to fail the first MSG.
 +        Affected file silc/local_command.c.
 +
 +      * Added `data_len' field to SilcIDCache context.
 +
 +Tue Mar 20 16:29:00 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
 +
 +      * Update TODO.  Todo in commands in the server.
 +
 +Tue Mar 20 15:45:14 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
 +
 +      * Added new notify type SILC_NOTIFY_TYPE_UMODE_CHANGE that is
 +        used by routers as broadcast packet to inform other routers
 +        about the changed user mode.
 +
 +        Implemented the notify handling in the server.  Affected file is
 +        silcd/packet_receive.c.  Added the function
 +        silc_server_send_notify_umode to the silcd/packet_send.[ch].
 +
 +      * Added new generic Channel Payload and deprecated the New Channel
 +        Payload.  The New Channel Payload is now the generic Channel
 +        Payload.
 +
 +      * Added new argument `mode' to the silc_server_send_new_channel
 +        as it is required in the Channel Payload now.
 +
 +      * Renamed the SilcChannelPayload to SilcChannelMessagePayload
 +        and created a new and real SilChannelPayload to represent the
 +        new generic Channel Payload.  Implemented the encode/decode
 +        for Channel Payload.  Affected file lib/silccore/silcchannel.[ch].
 +
 +      * Added silc_server_get_client_channel_list to return the list
 +        of channels the client has joined for WHOIS command reply.
 +        Affected file silcd/server.[ch].
 +
 +      * Implemented the channel list sending in the WHOIS command reply
 +        in server and in the client.
 +
 +        Implemented the channel list displaying on the user interface
 +        as well.  Affected file silc/client_ops.c.
 +
 +      * Added silc_channel_payload_parse_list to parse list of Channel
 +        Payloads.  It returns SilcDList list of SilcChannelPayloads.
 +        Client for example can use this function to parse the list of
 +        channels it receives in the WHOIS command reply.  The caller
 +        must free the list by calling silc_channel_payload_list_free.
 +        Affected files lib/silccore/silcchannel.[ch].
 +
 +Mon Mar 19 21:39:15 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
 +
 +      * Added one new argument <user mode> to the WHOIS command reply
 +        to return the mode of the user in SILC.  Updated the protocol
 +        specs.
 +
 +        Implemented it to the server and client.
 +
 +Mon Mar 19 18:43:06 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
 +
 +      * Fixed the mode printing on the user interface on joining.
 +        Affected file silc/client_ops.c.
 +
 +      * Implemented the UMODE command and user modes in general to the
 +        client library and to the user interface.
 +
 +      * Implemented the UMODE command to the server.
 +
 +      * The server now sends UNKNOWN_COMMAND error status if client sends
 +        unknown command.  Affected file silcd/command.c.
 +
 +      * All server commands now handle the command identifier the right
 +        way when sending the command reply to the client.  The client can
 +        use to identify the command replies with the identifier.
 +
 +Mon Mar 19 16:13:07 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
 +
 +      * Added silc_server_get_client_route to resolve the route to
 +        the client indicated by the client ID.  Affected file is
 +        silcd/server.[ch].
 +
 +      * Added silc_server_relay_packet as general function to relay
 +        packet to arbitrary destination.  This deprecates functions
 +        like _send_private_message_key, _relay_notify etc.  Affected
 +        file is silcd/packet_send.[ch].
 +
 +        Removed silc_server_send_key_agreement,
 +        silc_server_send_private_message_key and
 +        silc_server_packet_relay_notify functions from the file
 +        silcd/packet_send.[ch].
 +
 +      * Updated TODO.
 +
 +      * Implemented the SILC_NOTIFY_TYPE_KILLED notify handling in the
 +        server.  Affected file silcd/packet_receive.[ch].
 +
 +      * Implemented the KILL command to the client.  Implemented the
 +        SILC_NOTIFY_TYPE_KILLED notify handling in the client library.
 +        Affected files lib/silcclient/command[_reply].c and
 +        lib/silcclient/client_notify.c.  Implemented the KILL notify
 +        printing in the user inteface.
 +
 +      * Fixed a lot silc_parse_nick memory leaks from the client
 +        library in the file lib/silcclient/command.c.
 +
 +      * Changed the silc_server_send_notify_on_channels's `sender'
 +        argument from SilcSocketConnection to SilcClientEntry to
 +        check the sender as entry and not as connection object and not
 +        to send to the client provided as argument.  The affected file
 +        is silcd/packet_send.[ch].
 +
 +      * The notify packets that are destined directly to the client used
 +        to not to be processed by the server.  Now changed that and the
 +        server processes all notify packets.  After relaying the packet
 +        to the client the notify packet is processed in the server.
 +
 +      * The silc_server_free_client_data now checks whether there is
 +        pending outgoing traffic for the client and purges the data to
 +        the network before removing the client entry.
 +
 +Sun Mar 18 21:02:47 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
 +
 +      * Added SILC_NOTIFY_TYPE_KILLED notify type.  It is sent when
 +        an client is killed from the SILC Network.  Updated the protocol
 +        specs accordingly.
 +
 +        Added new function silc_server_send_notify_killed to the
 +        silcd/packet_send.[ch].
 +
 +      * Added function silc_server_packet_relay_notify to relay notify
 +        packets that are destined directly to a client.  In this case
 +        the server does not process the notify packets but merely relays
 +        it to the client.  Affected file silcd/packet_send.[ch].
 +
 +        Added also silc_server_packet_process_relay_notify to check
 +        whereto relay the notify.  Affected file is
 +        silcd/packet_receive.[ch].
 +
 +      * Implemented the KILL command to the server.
 +
 +      * Updated TODO.
 +
 +      * Added the backup schema desgined last fall to the protocol
 +        specs for everyone to see.  The specification is in the
 +        *-spec-xx.txt draft and the packet type definitions for the
 +        backup routers is in *-pp-xx.txt draft.  Thusly, added also
 +        new packet type SILC_PACKET_CELL_ROUTERS.
 +
 +      * A big security problem in the implementation discovered.  The
 +        signoff of an client did not cause new channel key generation
 +        which it of course should've done.  The channel keys must be
 +        always re-generated when client leaves (or signoffs) the channel.
 +        The silc_server_remove_from_channels funtion now handles
 +        the channel key re-generation.
 +
 +      * Added `sender' argument to the silc_server_send_notify_on_channels
 +        to not to send the client provided as argument.  Affected file
 +        silcd/packet_send.[ch].
 +
 +Fri Mar 16 15:52:49 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
 +
 +      * Implemented OPER and SILCOPER commands into the server and
 +        the client library.
 +
 +      * Added silc_auth_verify and silc_auth_verify_data to verify
 +        the authentication directly from the authentication payload.
 +        It supports verifying both passphrase and public key based
 +        authentication.  Affected file lib/silccore/silcauth.[ch].
 +
 +      * Added `hash' field to the SilcIDListData structure.  It is the
 +        hash negotiated in the SKE protocol.  Affected file is
 +        silcd/idlist.[ch].
 +
 +      * Slight redesigning of the SilcAuthPayload handling routines.
 +        Do not send SilcPKCS but SilcPublicKey as argument.
 +
 +      * Implemented the public key authentication support to the
 +        serverconfig.  The public key is loaded from the provided path
 +        and saved as authentication data to void * pointer.  Thus,
 +        changed the unsigned char *auth_data to void *auth_data;
 +
 +      * Fixed SHUTDOWN command to send the reply before the server
 +        is shutdown. :)  Affected file silcd/command.c.
 +
 +      * Fixed fatal bug in CONNECT command.  The hostname was invalid
 +        memory and server crashed.  Affected file silcd/command.c.
 +
 +      * Fixed fatal bug in CLOSE command.  The server_entry became
 +        invalid but was referenced later in the command.  Affected file
 +        silcd/command.c.
 +
 +Thu Mar 15 12:46:58 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
 +
 +      * Fixed fatal bug in failure packet handling.  Server ignored
 +        the failure and thus crashed when it came.
 +
 +      * Updated TODO.
 +
 +Wed Mar 14 20:37:35 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
 +
 +      * Added new SILC_CF_LAG_STRICT command flag that strictly forces
 +        that the command may be executed only once in (about) 2 seconds.
 +        The old SILC_CF_LAG flag is same but allows command bursts up
 +        to five before limiting.
 +
 +        Added the support for CF_LAG and CF_LAG_STRICT flags to the
 +        server code.  Various commands now includes the CF_LAG_STRICT
 +        flag to disallow any kind of miss-use of the command.
 +
 +      * Fixed the silc_buffer_unformat to not to allocate any data
 +        if the length of the data is zero.  It used to allocate the
 +        length + 1.  Affected file lib/silcutil/silcbuffmt.c.
 +
 +Wed Mar 14 16:10:30 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
 +
 +      * Changed the format of AdminConnection configuration section
 +        in the server.  Added username of the admin to the format.
 +        Affected files silcd/serverconfig.[ch].
 +
 +        Added silc_server_config_find_admin into silcd/serverconfig.[ch]
 +        to return admin configuration data by host, username and/or
 +        nickname.
 +
 +Wed Mar 14 13:18:16 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
 +
 +      * Implemented WHOWAS command to the server.  Added the functions:
 +
 +        silc_server_command_whowas_parse,
 +        silc_server_command_whowas_send_reply,
 +        silc_server_command_whowas_from_client and
 +        silc_server_command_whowas_from_server
 +
 +      * Added <Client ID> argument to the WHOWAS command reply.  Updated
 +        the protocol specs accordingly.
 +
 +      * Implemented WHOWAS command and command_reply to the client
 +        library.
 +
 +        Implemented the WHOWAS printing on the user interface.
 +
 +Tue Mar 13 22:17:34 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
 +
 +      * Added new argument to the WHOWAS command reply, the real name.
 +        It is an optional argument.  Updated the protocol specs.
 +
 +      * Added SilcIDCacheDestructor callback that is registered when
 +        the SilcIDCache is allocated.  The callback is called when
 +        an cache entry in the ID Cache expires, or is purged from the
 +        cache.  Added into lib/silccore/idcache.[ch].
 +
 +        Added silc_idlist_client_destructor to the silcd/idlist.[ch]
 +        to destruct the client entries when the cache entry expires.
 +        Other ID Cache's in server and in the client library ignores
 +        the destructor.
 +
 +      * If the ID Cache entry's `expire' field is zero then the entry
 +        never expires.  Added boolean `expire' argument to the
 +        silc_idcache_add function in the lib/silccore/idcache.[ch].
 +        If it is TRUE the default expiry value is used.
 +
 +      * Added silc_server_free_client_data_timeout that is registered
 +        when client disconnects.  By default for 5 minutes we preserve
 +        the client entry for history - for WHOWAS command.
 +
 +Tue Mar 13 13:26:18 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
 +
 +      * Added support to the server to enforce that commands are not
 +        executed more than once in 2 seconds.  If server receives
 +        commands from client more frequently, timeout is registered
 +        to process the commands.  Affected file silcd/command.c.
 +        Added new function silc_server_command_process_timeout.
 +
 +      * Changed NICK_NOTIFY handling in client library to check that
 +        if the client's nickname was changed, so there is no need to
 +        resolve anything from the server.
 +
 +      * Removed error printing from the WHOIS and IDENTIFY commands.
 +        If error occurs then it is ignored silently in the client library.
 +        The application, however, may map the received error to
 +        human readable error string.  The application currently maps
 +        the NO_SUCH_NICKNAME error to string.
 +
 +      * Made the command status message public to the application.  Moved
 +        them from lib/silcclient/command_reply.c to
 +        lib/silcclient/command_reply.h.  The application can map the
 +        received command status to the string with the
 +        silc_client_command_status_message function.
 +
 +      * Added check to the server to check that client's ID is same
 +        as the Source ID in the packet the client sent.  They must
 +        match.
 +
 +Tue Mar 13 12:49:21 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
 +
 +      * Added dist-bzip hook to the Makefile.am to make bzip2
 +        compressed distributions.
 +
 +Mon Mar 12 18:43:38 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
 +
 +      * Server now enforces the maximum length for the nickname and
 +        the channel as protocol specification dictates.  128 bytes for
 +        nickname and 256 bytes for channel name.
 +
 +      * Moved the WHOIS printing to the application.  The client libary
 +        does not print out the WHOIS information anymore, the application
 +        must do it.  Renamed silc_client_command_reply_whois_print to
 +        the silc_client_command_reply_whois_save.
 +
 +        The client's idle time is also sent to the application now, and
 +        the idle is shown on screen.
 +
 +      * Added silc_client_command_reply_identify_save to save the
 +        received IDENTIFY entries.
 +
 +      * Do not check for channel private keys in message sending and
 +        reception if the channel does not have the PRIVKEY mode set.
 +        Affected file lib/silclient/client_channel.c.
 +
 +Sun Mar 11 20:25:06 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
 +
 +      * Fixed a minor bug if WHOIS and IDENTIFY command parsing that
 +        just surfaced after chaning the JOIN procedure.
 +
 +Sun Mar 11 14:59:05 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
 +
 +      * Added silc_client_get_clients_by_list to get client entries
 +        from Client ID list, that is returned for example by JOIN
 +        and USERS command replies.  The application should use this
 +        function for example when JOIN command reply is received to
 +        resolve the clients already on the channel (library does not
 +        do that anymore as USERS command reply is not used in the JOIN
 +        procedure anymore).  Affected files lib/silcclient/silcapi.h and
 +        lib/silcclient/idlist.c.
 +
 +      * JOIN command reply and USERS command reply returns now SilcBuffer
 +        pointers instead of unsigned char pointers when returning
 +        the client list and mode list.
 +
 +      * Added <Client ID> argument to the JOIN command reply, mainly
 +        for the server to identify for which client the command was
 +        originally sent.  Updated protocol specs accordingly.
 +
 +      * Added SilcDlist private_key pointer to the SilcChannelEntry
 +        in the client to support the channel private keys.  Affected
 +        file is lib/silcclient/idlist.h.
 +
 +      * Added SilcChannelPrivateKey argument to the function
 +        silc_client_send_channel_message so that application can choose
 +        to use specific private ke if it wants to.  If it is not provided,
 +        the normal channel key is used, unless private keys are set.
 +        In this case the first (key that was added first) is used
 +        as the encryption key.
 +
 +      * Implemented the support for channel private key handling.
 +        Implemented the following functions:
 +
 +        silc_client_add_channel_private_key,
 +        silc_client_del_channel_private_keys,
 +        silc_client_del_channel_private_key,
 +        silc_client_list_channel_private_keys and
 +        silc_client_free_channel_private_keys
 +
 +        Affected file lib/silcclient/client_channel.c.
 +
 +      * Added the support for the private keys in the channel message
 +        sending and encryption and in the message reception and
 +        decryption.  Affected funtions are
 +        silc_client_send_channel_message and silc_client_channel_message.
 +
 +Sat Mar 10 21:36:22 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
 +
 +      * Added SKE's key verify callback to the client library's
 +        KE protocol context. Affected files lib/silcclient/protocol.[ch].
 +
 +      * Removed the statement that server (or router) must send USERS
 +        command reply when joining to the channel so that the client
 +        knows who are on the channel.  Instead, the client list and
 +        client's mode list is now sent in the JOIN command reply to the
 +        client who joined channel.  This is better solution.
 +
 +      * Added function silc_server_get_users_on_channel and function
 +        silc_server_save_users_on_channel to the silcd/server.[ch].
 +
 +      * Removed function silc_server_command_send_users from the
 +        silcd/command.c.
 +
 +      * Do not show topic on the client library anymore.  The topic is
 +        sent in the command reply notify to the application and the
 +        application must show the topic now.
 +
 +Sat Mar 10 00:07:37 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
 +
 +      * Added client searching by nickname hash into the IDENTIFY and
 +        WHOIS commands in the server as they were clearly missing from
 +        them.  Affected file is silcd/command.c.
 +
 +      * Fixed a bug in private message receiving in the client library.
 +        The remote ID was freed and it wasn't supposed, now it is
 +        duplicated.
 +
 +Fri Mar  9 12:40:42 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
 +
 +      * Minor fix to the channel payload; allocate the data area, as it
 +        needs to be of specific length.
 +
 +      * If the key agreement port is zero then the operating
 +        system will define the bound port.  Affected files are
 +        lib/silcclient/silcapi.h and lib/silcclient/client_keyagr.c.
 +
 +      * Added new function silc_channel_payload_decrypt into the file
 +        lib/silccore/silcchannel.[ch].
 +
 +      * Moved the channel message etc, check from silc_packet_decrypt
 +        to applications.  The library calls now a generic
 +        SilcPacketCheckDecrypt callback which is to return TRUE or FALSE
 +        when the packet is either normal or special.  This was done to
 +        allow more wide range of checking that was not allowed when
 +        the code was in library.  Now applications can do virtually any
 +        checks to the packet and return to the library the decision how
 +        the packet should be processed.  Affected files are
 +        lib/silccore/silcpacket.[ch].
 +
 +        Added silc_server_packet_decrypt_check to the server and
 +        silc_client_packet_decrypt_check to the client library.
 +
 +      * Added silc_server_packet_send_srcdest into silcd/packet_send.[ch]
 +        to send with specified source and destination information.
 +
 +      * Channel message delivery between routers was broken after the
 +        channel key distribution was fixed earlier.  The channel key
 +        was used be to distributed to other routers as well which is not
 +        allowed by the protocol.  Now this is fixed and channel keys
 +        really are cell specific and the channel message delivery between
 +        routers comply with the protocol specification.
 +
 +      * Fixed various commands in server to check also the global list
 +        for the channel entry and not just the local list.  The affected
 +        file silcd/command.c.
 +
 +Thu Mar  8 21:39:03 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
 +
 +      * Added assert()s to buffer formatting and unformatting routines
 +        to assert (if --enable-debug) when error occurs.  Affected
 +        file: lib/silcutil/silcbuffmt.c.
 +
 +      * Changed to auto-reconnect to check whether the remote host is
 +        router and register the re-connect timeout if it is.  It used
 +        to check that whether we are normal server, but router must do
 +        auto-reconnect with another router as well.  Affected file
 +        silcd/server.c.
 +
 +      * Removed the [<key len>] option from CMODE command as the cipher
 +        name decides the key length, nowadays.  See the defined ciphers
 +        from the protocol specification.
 +
 +      * Added [<hmac>] option to the CMODE command to define the HMAC
 +        for the channel.  Added SILC_CMODE_HMAC channel mode.
 +
 +      * Added [<hmac>] option for the JOIN command so that user can
 +        select which HMAC is used to compute the MACs of the channel
 +        messages.
 +
 +      * Added Hmac field to the Channel Message Payload.  The integrity
 +        of plaintext channel messages are now protected by computing
 +        MAC of the message and attaching the MAC to the payload.  The
 +        MAC is encrypted.  Now, it is clear that this causes some
 +        overhead to the size of the packet but rationale for this is that
 +        now the receiver can verify whether the channel message decrypted
 +        correctly and also when private keys are set for the channel the
 +        receiver can decrypt the packet with several keys and check from
 +        the MAC which key decrypted the message correctly.
 +
 +      * Added silc_cipher_encrypt and silc_cipher_decrypt into the
 +        lib/silccrypt/silccipher.[ch].
 +
 +      * Added silc_hash_len to return the digest length into the
 +        lib/silcrypt/silchash.[ch].
 +
 +      * Rewrote parts of Silc Channel Payload interface in the
 +        lib/silccore/silcchannel.[ch].  The encode function now also
 +        encrypts the packet and parse function decrypts it.
 +
 +Wed Mar  7 20:58:50 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
 +
 +      * Fixed a minor formatting bug in the SKE's key material processing.
 +        It actually might have processed the keys wrong way resulting
 +        into wrong keys.
 +
 +      * Redefined the mandatory HMAC algorithms and added new algorithms.
 +        Added hmac-sha1-96 and hmac-md5-96 which are normal hmac-sha1
 +        and hmac-md5 truncated to 96 bits.  The mandatory is now
 +        hmac-sha1-96.  Rest are optional (including the one that used
 +        to be mandatory).  Rationale for this is that the truncated HMAC
 +        length is sufficient from security point of view and can actually
 +        make the attack against the HMAC harder.  Also, the truncated
 +        HMAC causes less overhead to the packets.  See the RFC2104 for
 +        more information.
 +
 +      * Added new [hmac] configuration section.  The SKE used to use
 +        the hash names (md5 and sha1) in the SKE proposal as HMCAS which
 +        is of course wrong.  The official names that must be proposed in
 +        the SKE are the ones defined in the protocol specification
 +        (hmac-sha1-96 for example).  The user can configure any hmac
 +        using any hash function configured in the [hash] section.  At
 +        least, the mandatory must be configured.
 +
 +        Rewrote the HMAC interface in lib/silccrypt/silchmac.[ch].
 +
 +      * Added HMAC list to the SKE proposal list.  It has now both
 +        hash algorithm list and HMAC list.  This makes the protocol
 +        incompatible with previous versions.  The SKE now seems to work
 +        the way it is supposed to work, for the first time actually.
 +
 +      * Defined plain Hash algorithms to the protocol specification.
 +        Added sha1 and md5.
 +
 +Tue Mar  6 15:36:11 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
 +
 +      * Implemented support for key agreement packets into the server.
 +        Added functions silc_server_key_agreement and
 +        silc_server_send_key_agreement.  Other than these functions,
 +        server has nothing to do with this packet.
 +
 +      * Added support for private message key packets into the server.
 +        Added functions silc_server_private_message_key and
 +        silc_server_send_private_message_key.
 +
 +      * Updated TODO.
 +
 +      * Changed the silc_[client|server]_protocol_ke_set_keys to be
 +        called in the protocol's final callback instead in the END
 +        protocol state.  This makes a little more sense and in the same
 +        time in client we can use the same protocol routines for normal
 +        key exchange and to key agreement packet handling as well.
 +
 +      * Added to both client's and server's KE protocol context the
 +        SilcSKEKeyMaterial pointer to save the key material.  We will
 +        bring the key material to the protocol's final callback by doing
 +        this.  The final callback must free the key material.
 +
 +      * Added SKE's packet_send callback into client's KE protocol
 +        context so that the caller can choose what packet sending function
 +        is used.  This way we can use different packet sending when
 +        doing normal SKE when doing key agreement packet handling (in
 +        the key agreement packet handling we do not want to encrypt
 +        the packets).
 +
 +      * Implemented the responder side of the key agreement routines
 +        in the client.  The client can now bind to specified port and
 +        accept incoming key negotiation.  The key material is passed
 +        to the application after the protocol is over.
 +
 +      * Implemented the processing of incoming Key Agreement packet
 +        in the client.  Added function silc_client_key_agreement to
 +        process the packet.
 +
 +      * Implemented the intiator side of the key agreement routines
 +        in the client.  The client can now initiate key agreement with
 +        another remote client.  The key material is passed to the
 +        application after the protocol is over.
 +
 +      * Created client_keyagr.c to include all the key agreement
 +        routines.
 +
 +      * Added macro SILC_TASK_CALLBACK_GLOBAL which is equal to the
 +        SILC_TASK_CALLBACK except that it is not static.
 +
 +      * Created client_notify.c and moved the Notify packet handling
 +        from the client.[ch] into that file.
 +
 +      * Created client_prvmsg.c and moved all private message and
 +        private message key routines from the client.[ch] into that file.
 +
 +      * Create client_channel.c and moved all channel message and
 +        channel private key routines from the client.[ch] into that file.
 +
 +      * Changed silc_client_get_client_by_id_resolve to resolve with
 +        WHOIS command instead of IDENTIFY command, in the file
 +        lib/silclient/idlist.c.
 +
 +Mon Mar  5 18:39:49 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
 +
 +      * Implemented the SKE's responder side to the Client library.
 +
 +      * When FAILURE is received to the protocol do not trust it
 +        blindly.  Register a timeout to wait whether the remote closes
 +        the connection as it should do it, only after that process the
 +        actual failure.  This was changed to both client and server.
 +
 +      * Added client_internal.h to include some of the structures
 +        there instead of client.h in lib/silcclient/.
 +
 +      * Added function silc_task_unregister_by_callback to unregister
 +        timeouts by the callback function.
 +
 +Sat Mar  3 19:15:43 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
 +
 +      * Some "Incomplete WHOIS info" errors has been appearing on the
 +        log files.  Took away the entry->userinfo check from WHOIS
 +        reply sending.  The entry->userinfo is now " " if client did not
 +        provide one.  I thought this was fixed earlier but something
 +        is wrong still.  Let's see if the error still appears.
 +
 +Wed Feb 28 20:56:29 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
 +
 +      * Fixed a minor bug in the login when the channel key is
 +        re-generated in the server.  It used to generate the key in
 +        wrong order and thus caused problems in the channel traffic.
 +
 +      * Fixed a minor bug in channel key distsribution after
 +        KICK command.  The key was not sent to the router even though
 +        it should've been.
 +
 +Tue Feb 27 20:24:25 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
 +
 +      * Added silc_ske_process_key_material_data as generic routine
 +        to process any key material as the SILC protocol dictates.  The
 +        function is used by the actual SKE library but can be used by
 +        applications as well.  This relates to the private message keys
 +        and the channel private keys since they must be processed the
 +        same way the normal SILC session keys.  The protocol dictates
 +        this.  Affected files: lib/silcske/silcske.[ch].
 +
 +        Added also silc_ske_free_key_material to free the
 +        SilcSKEKeyMaterial structure.
 +
 +      * Defined silc_cipher_set_key function to set the key for
 +        cipher without using the object's method function.  The affected
 +        files: lib/silccrypt/silccipher.[ch].
 +
 +      * Implemented silc silc_client_add_private_message_key,
 +        silc_client_add_private_message_key_ske,
 +        silc_client_del_private_message_key,
 +        silc_client_list_private_message_keys and
 +        silc_client_free_private_message_keys functions in the
 +        client library.
 +
 +        Added functions silc_client_send_private_message_key to send
 +        the Private Message Key payload and silc_client_private_message_key
 +        to handle incoming Private Message Key payload.
 +
 +      * Added Cipher field to the Private Message Key payload to set
 +        the cipher to be used.  If ignored, the default cipher defined
 +        in the SILC protocol (aes-256-cbc) is used.
 +
 +Tue Feb 27 13:30:52 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
 +
 +      * Removed lib/silcclient/ops.h file.
 +
 +        Redefined parts of the SILC Client Library API. Created new
 +        file silcapi.h that deprecates the ops.h file and defines the
 +        published Client Library API.  Defined also private message key
 +        API and channel private key API into the file.
 +
 +        This is the file that the application must include from the
 +        SILC Client Library.  Other files need not be included by
 +        the application anymore.
 +
 +      * Added new key_agreement client operation callback and also
 +        defined the Key Agreement library API for the application.
 +
 +Tue Feb 27 11:28:31 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
 +
 +      * Added new packet type: SILC_PACKET_KEY_AGREEMENT.  This packet
 +          is used by clients to request key negotiation  between another
 +          client in the SILC network.  If the negotiation is started it
 +          is performed using the SKE protocol.  The result of the
 +          negotiation, the secret key material, can be used for example
 +          as private message key.
 +
 +        Implemented the Key Agreement payload into the files
 +        lib/silccore/silauth.[ch].
 +
 +Mon Feb 26 12:13:58 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
 +
 +      * Redefined ciphers for the SILC protocol.  Added some new ciphers
 +        and defined the key lengths for the algorithms.  Changed the
 +        code accordingly.  The default key length is now 256 bits.
 +
 +      * Fixed SKE key distribution function silc_ske_process_key_material
 +        when the key length is more than 128 bits.  The default key
 +        length in SILC is now 256 bits.
 +
 +      * Added new command status type: SILC_STATUS_ERR_UNKOWN_ALGORITHM
 +        to indicate unsupported algorithm.
 +
 +      * Renamed rijndael.c to aes.c and all functions as well.
 +
 +      * Fixed a long standing channel key setting bug in client library.
 +        Weird that it has never surfaced before.
 +
 +      * Fixed bug in channel deletion.  If the entire channel is removed
 +        then it must also delete the references of the channel entry
 +        from the client's channel list as the client's channel entry and
 +        the channel's client entry share same memory.
 +
 +Sun Feb 25 20:47:29 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
 +
 +      * Implemented CONNECT and SHUTDOWN commands in the client.
 +
 +      * Implemented CLOSE command to the client.
 +
 +      * Added the function silc_idlist_find_server_by_name into the
 +        files silcd/idlist.[ch].
 +
 +        Added the function silc_idlist_find_server_by_conn into the
 +        files silcd/idlist.[ch].
 +
 +Sat Feb 24 23:45:49 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
 +
 +      * DIE command was renamed to SHUTDOWN.  Updated the both code
 +        and protocol specs.
 +
 +      * Defined SILC_UMODE_NONE, SILC_UMODE_SERVER_OPERATOR and
 +        SILC_UMODE_ROUTER_OPERATOR modes into lib/silccore/silcmode.h.
 +
 +      * Implemented CONNECT, CLOSE and SHUTDOWN commands to the server
 +        side.
 +
 +      * Added function silc_server_create_connection function to create
 +        connection to remote router.  My server implementation actually
 +        does not allow router to connect to normal server (it expects
 +        that normal server always initiates the connection to the router)
 +        so the CONNECT command is only good for connecting to another
 +        router.
 +
 +Sat Feb 24 16:03:45 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
 +
 +      * Added SILC_NOTIFY_TYPE_KICKED to indicate that the client
 +        or some other client was kicked from the channel.
 +
 +        Implemented the handling of the notify type to both client
 +        and server.
 +
 +        Implemented silc_server_send_notify_kicked to send the KICKED
 +        notify.  It is used to send it to the server's primary router.
 +
 +      * Implemented the KICK command into server and client.
 +
 +      * Added `query' argument to the silc_idlist_get_client function
 +        to indicate whether to query the client from server or not if
 +        it was not found.
 +
 +      * Added new command status type SILC_STATUS_ERR_NO_CHANNEL_FOPRIV
 +        to indicate that the client is not channel founder.
 +
 +      * Updated TODO.
 +
 +Sat Feb 24 00:00:55 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
 +
 +      * Removed the rng context from SilcPacketContext structure and
 +        changed that the packet routine uses the Global RNG API.
 +
 +Fri Feb 23 11:22:57 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
 +
 +      * Added support for quit message that client can "leave" on the
 +        channel when it quits the SILC.  It is ditributed inside the
 +        SILC_NOTIFY_TYPE_SIGNOFF notify type.
 +
 +        Added silc_server_free_client_data that will take the
 +        signoff message as argument.
 +
 +      * Changed SKE routines to use the silc_pkcs_sign/verify routines.
 +
 +Thu Feb 22 23:05:36 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
 +
 +      * Updated parts of the protocol specification to keep it up
 +        to date.
 +
 +Thu Feb 22 15:08:20 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
 +
 +      * Added List flag (SILC_PACKET_FLAG_LIST) to indicate list of
 +        payloads in one packet.
 +
 +      * Deprecated following packet types: NEW_ID_LIST, NEW_CHANNEL_LIST,
 +        NEW_CHANNEL_USER_LIST, SET_MODE and SET_MODE_LIST.  List packets
 +        use now the new List flag.
 +
 +      * Also deprecated the following packet types: REPLACE_ID,
 +        NEW_CHANNEL_USER and REMOVE_CHANNEL_USER packet types.
 +
 +      * Added list support for Notify packet in server.
 +
 +      * Added silc_server_send_notify_channel_change to send the
 +        CHANNEL_CHANGE notify type to replace channel ID's.  Deprecates
 +        the silc_server_send_replace_id.
 +
 +      * Added silc_server_send_notify_nick_change to send the
 +        NICK_CHANGE notify type.  Deprecates the function
 +        silc_server_send_replace_id.
 +
 +      * Added silc_server_send_notify_join to send the JOIN notify type.
 +        Deprecates the function silc_server_send_new_channel_user.
 +
 +      * Added silc_server_send_notify_leave to send LEAVE notify type.
 +        Deprecates the function silc_server_send_remove_channel_user.
 +
 +      * Added silc_server_send_notify_cmode and
 +        silc_server_send_notify_cumode to send CMODE and CUMODE notify
 +        types.  Deprecates the silc_server_send_set_mode function.
 +
 +      * Added SERVER_SIGNOFF notify type to indicate that server has
 +        quit.  This means that all clients on the channel from that
 +        server will drop.  This can be also used when netsplit happens.
 +
 +        Deprecated REMOVE_ID packet type since it is not needed anymore
 +        even from server.
 +
 +        Added silc_server_send_notify_server_signoff to send the
 +        SERVER_SIGNOFF notify type.  Deprecates the function
 +        silc_server_send_remove_id.
 +
 +        Added also silc_server_send_notify_signoff to send the
 +        SIGNOFF notify type.
 +
 +      * Employed the PKCS #1. It is the mandatory way to do RSA in the
 +        SILC protocol from this day on.  Changed the protocol
 +        specification as well.
 +
 +      * Added silc_server_send_notify_topic_set to send TOPIC_SET
 +        notify type.  It is used between routers to notify about
 +        topic changes on a channel.
 +
 +      * Added silc_id_dup into lib/silccore/id.[ch] to duplicate
 +        ID data.
 +
 +      * Partly updated the protocol specification to comply with the
 +        changes now made.  It is still though a bit outdated.
 +
 +      * The JOIN notify type now takes one extra argument <Channel ID>.
 +        The packet used to be destined to the channel but now the
 +        JOIN type may be sent as list thus it is impossible to
 +        destine it to any specific channel.  By adding this argument
 +        it is again possible.
 +
 +Wed Feb 21 22:39:30 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
 +
 +      * Added CREDITS file.  The CHANGES and CREDITS file will appear
 +        in the distribution as well.
 +
 +Wed Feb 21 14:17:04 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
 +
 +      * Implemented CMODE_CHANGE, CUMODE_CHANGE and TOPIC_SET notify
 +        types in the server's silcd/packet_receive.c.
 +
 +      * Implemented CMODE and CUMODE to work in router environment.
 +
 +      * Fixed minor encoding and decoding buglet from the
 +        lib/silccore/silcmode.c.
 +
 +      * Fixed buffer overflow from lib/silcclient/command.c in USERS
 +        command parsing.
 +
 +Wed Feb 21 12:44:00 EET 2001  Mika Boström <bostik@lut.fi>
 +
 +      * Changed all SilcConfigServer* and silc_config_server* to
 +        SilcServerConfig* and silc_server_config*, respectively.
 +        Patch by Bostik.
 +
 +Wed Feb 21 00:10:00 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
 +
 +      * Associated the ID (client or server ID) to the Authentication
 +        Payload to avoid any possibility of forging.  Updated the
 +        protocol specification and the code accordingly.
 +
 +Tue Feb 20 14:14:14 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
 +
 +      * The RSA key length is now save to the RsaKey context in the
 +        key generation process in lib/silccrypt/rsa.c.  The key length
 +        is now used to figure out the maximum size of the block allowed
 +        to be encrypted/signed.
 +
 +      * Added silc_mp_mp2bin_noalloc into lib/silcmath/mpbin.[ch].  It
 +        is equivalent to the silc_mp_mp2bin but does not allocate any
 +        memory.
 +
 +      * Changed silc_mp_mp2bin API to take length argument.  If it is
 +        non-zero then the buffer is allocated that large.  If zero, then
 +        the size is approximated using silc_mp_sizeinbase, which however
 +        is not relieable.
 +
 +      * Created Global RNG API which is global RNG that application can
 +        initialize.  After initializing, any routine anywhere in the
 +        code (including library) can use RNG without allocating a new
 +        RNG object.  This was done to allow this sort of use of the
 +        RNG in code that has no chance to allocate RNG object.  All
 +        applications currently allocate this and many routines in the
 +        library use this.  Affected file lib/silccrypt/silcrng.[ch].
 +
 +      * Removed the RNG kludge from lib/silcmath/primegen.c and changed
 +        it to use the Global RNG API.
 +
 +      * Defined Authentication Payload into protocol specification that
 +        is used during SILC session to authenticate entities.  It is
 +        used for example by client to authenticate itself to the server
 +        to obtain server operator privileges.
 +
 +        Implemented this payload into the lib/silccore/silcauth.[ch].
 +        Implemented also routines for public key based authentication
 +        as the new protocol specification dictates.
 +
 +        Moved definitions of different authentication methods from
 +        lib/silccore/silcprotocol.h into lib/silccore/silcauth.h.
 +
 +      * Added silc_pkcs_encrypt, silc_pkcs_decrypt, silc_pkcs_sign,
 +        silc_pkcs_verify and silc_pkcs_sign_with_hash and
 +        silc_pkcs_verify_with_hash functions into the file
 +        lib/silccrypt/silcpkcs.[ch].
 +
 +Mon Feb 19 19:59:28 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
 +
 +      * The client entry's userinfo pointer must be always valid.
 +        Otherwise the [<unknown>] bug will surface beacuse the WHOIS
 +        will fail since it requires the userinfo.  Now, the userinfo
 +        is allocated as "" if actual userinfo does not exist.  Actually,
 +        it must exist and it is totally Ok to drop client connections
 +        that does not announce the userinfo.  However, we will make
 +        this workaround for now.
 +
 +      * Added silc_net_get_remote_port into lib/silcutil/silcnet.[ch]
 +        to return the remote port by socket.
 +
 +Mon Feb 19 14:26:49 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
 +
 +      * Changed SILC_SERVER_COMMAND_EXEC_PENDING macro to the name
 +        SILC_SERVER_PENDING_EXEC and added an new macro
 +        SILC_SERVER_PENDING_DESTRUCTOR which is called to free the
 +        data or when error occurs while processing the pending command.
 +
 +        Added new argument `destructor' into silc_server_command_pending
 +        and to the SilcServerCommandPending object.  This destructor is
 +        now called after calling the pending callback or if error occurs
 +        immediately.  If error occurs the actual pending callback won't
 +        be called at all - only the destructor.  The destructor may be
 +        NULL if destructor is not needed.
 +
 +        All this applies for client library code as well.  Similar
 +        changes were made there as well for the pending commands.
 +
 +        In the client, the application must now allocate the
 +        SilcClientCommandContext with the silc_client_command_alloc
 +        function.
 +
 +      * Added reference counter to the SilcServerCommandContext.  Added
 +        function silc_server_command_alloc and silc_server_command_dup
 +        functions.
 +
 +        Same type of functions added to the client library for the same
 +        purpose as well.
 +
 +      * Removed the cmd_ident from IDListData away since it is now
 +        global for all connections.  It is the command identifier used
 +        in command sending and with pending commands.  The affected file
 +        is silcd/idlist.h.
 +
 +      * Added reference counter to the SilcSocketConnection objecet to
 +        indicate the usage count of the object.  The object won't be
 +        freed untill the reference counter hits zero.  Currently only
 +        server uses this, and client ignores it.  The client must be
 +        set to use this too later.  The affected files are
 +        lib/silccore/silcsockconn.[ch].  Added also the function
 +        silc_socket_dup to increase the reference counter.
 +
 +        This was mainly added because it is possible that the socket
 +        is removed underneath of pending command or other async
 +        operation.  Now it won't be free'd and proper DISCONNECTING
 +        flags, etc. can be set to avoid sending data to connection that
 +        is not valid anymore.
 +
 +      * Added SILC_SET_DISCONNECTING to server.c when EOF is read from
 +        the connection.  After that it sets SILC_SET_DISCONNECTED.
 +        It is, however, possible that the socket data is not still freed.
 +        The silc_server_packet_process now checks that data is not
 +        read or written to connection that is DISCONNECTED.  The socket
 +        get's freed when the reference counter hits zero.
 +
 +Mon Feb 19 00:50:57 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
 +
 +      * Changed the client operation API: channel_message operation's
 +        `sender' is now the client entry of the sender, not the nickname
 +        and the `channel' is the channel entry, not the channel name.
 +
 +        In the private_message operation the `sender' is now also the
 +        client entry of the sender not the nickname.
 +
 +        Affected file is lib/silcclient/ops.h and all applications
 +        using the client operations.
 +
 +Sat Feb 17 22:11:50 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
 +
 +      * Moved the calling of ops->connect() from connect_to_server_final
 +        into receive_new_id functin since that is the point when the
 +        client is actually allowed to send traffic to network.  The
 +        affected file is lib/silcclient/client.c.
 +
 +Sat Feb 17 13:15:35 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
 +
 +      * When receiving NEW_CHANNEL_LIST, NEW_CHANNEL_USER_LIST,
 +        NEW_ID_LIST and SET_MODE_LIST packets, broadcast the list packet
 +        (if needs broadcasting) instead of broadcasting the packets one
 +        by one which would make a burst in the network traffic.
 +
 +      * Added `broadcast' argument to the functions in silcd/server.[ch]
 +        silc_server_create_new_channel[_with_id] to indicate whether
 +        to send New Channel packet to primary router.
 +
 +Sat Feb 17 01:06:44 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
 +
 +      * Added new function into the silcd/server.[ch] files:
 +        silc_server_create_new_channel_with_id to create new channel with
 +        already existing Channel ID.
 +
 +      * Added new packet type SILC_PACKET_SET_MODE_LIST into the file
 +        lib/silccore/silcpacket.h.  This packet is used t send list of
 +        Set Mode payloads inside one packet.  Server uses this to set
 +        the modes for the channels and clients on those channels, that it
 +        announced to the router when it connected to it.  The protocol
 +        specification has been updated accordingly.
 +
 +      * The silc_server_new_channel did not handle the packet coming
 +        from normal server as it normally does not send that.  However,
 +        when it announces its channels it does send it.  Implemented
 +        the support for that.
 +
 +      * Added SILC_ID_CHANNEL_COMPARE macro to compare to Channel ID's
 +        into the file lib/silccore/id.h.
 +
 +Fri Feb 16 23:57:29 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
 +
 +      * Fixed memory leaks in the functions silc_idlist_del_client,
 +        silc_idlist_del_channel and silc_idlist_del_server in the file
 +        silcd/idlist.c.  All of those leaked like a sieve.
 +
 +      * Fixed some small memory leaks in the client's function
 +        silc_client_notify_by_server.
 +
 +      * Added functions into silcd/server.c: silc_server_announce_clients,
 +        silc_server_announce_channels and silc_server_announce_server.
 +        These functions are used by normal and router server to announce
 +        to its primary router about clients, channels and servers (when
 +        router) that we own.  This is done after we've connected to the
 +        router.
 +
 +        These functions effectively implements the following packet types:
 +        SILC_PACKET_NEW_CHANNEL_LIST, SILC_PACKET_NEW_CHANNEL_USER_LIST
 +        and SILC_PACKET_NEW_ID_LIST.
 +
 +      * Added new functions into the silcd/packet_receive.[ch]:
 +        silc_server_new_id_list, silc_server_new_channel_list and
 +        silc_server_new_channel_user_list to handle the incoming
 +        NEW_ID_LIST, NEW_CHANNEL_LIST and NEW_CHANNEL_USER_LIST packets.
 +
 +      * Added support of changing Channel ID in the function
 +        silc_server_replace_id.  If the server that announces a channel
 +        to the router already exists in the router (with same name but
 +        with different Channel ID), router is responsible to send
 +        Replace ID packet to the server and force the server to change
 +        the Channel ID to the one router has.
 +
 +      * Added new notify type SILC_NOTIFY_TYPE_CHANNEL_CHANGE to notify
 +        client that the Channel ID has been changed by the router.  The
 +        normal server sends this to the client.  Client must start using
 +        the new Channel ID as the channel's ID.
 +
 +        Implemented handling of this new type into lib/silcclient/client.c
 +        into the function silc_client_notify_by_server.
 +
 +      * Added new function silc_idlist_replace_channel_id into the files
 +        silcd/idlist.[ch] to replace the Channel ID.
 +
 +Fri Feb 16 14:14:00 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
 +
 +      * Call silc_server_command_identify_check always when processing
 +        the IDENTIFY command in silcd/command.c
 +
 +Thu Feb 15 20:07:37 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
 +
 +      * Added new packet type SILC_PACKET_HEARTBEAT that is used to
 +        send keepalive packets.  The packet can be sent by clients,
 +        servers and routers.
 +
 +        Added function silc_socket_set_heartbeat into the file
 +        lib/silccore/silcsockconn.[ch] to set the heartbeat timeout.
 +        If not set, the heartbeat is not performed.  The actual
 +        heartbeat is implemented in the low level socket connection
 +        library.  However, application is responsible of actually
 +        sending the packet.
 +
 +        Added silc_server_send_heartbeat to send the actual heartbeat
 +        packet into silcd/packet_send.[ch].  Server now performs
 +        keepalive with all connections.
 +
 +      * Added silc_task_get_first function into lib/silcutil/silctask.c
 +        to return the timeout task with shortest timeout.  There was a bug
 +        in task unregistration that caused problems.  TODO has been
 +        updated to include that task system must be rewritten.
 +
 +      * The client library will now resolve the client information when
 +        receiving JOIN notify from server for client that we know but
 +        have incomplete information.
 +
 +      * Rewrote parts of silc_server_remove_from_channels and
 +        silc_server_remove_from_one_channel as they did not remove the
 +        channel in some circumstances even though they should've.
 +
 +      * Encryption problem encountered in server:
 +
 +        The LEAVE command used to send the Channel Key packet to the
 +        router immediately after generating it.  However, the code
 +        had earlier sent Remove Channel user packet but not immediately,
 +        ie. it was put to queue.  The order of packets in the router
 +        was that Channel Key packet was first and Remove Channel User
 +        packet was second, even though they were encrypted in the
 +        reverse order.  For this reason, MAC check failed.  Now, this
 +        is fixed by not sending the Channel Key packet immediately but
 +        putting it to queue.  However, this is more fundamental problem:
 +        packets that are in queue should actually not be encrypted
 +        because packets that are sent immediately gets encrypted
 +        actually with wrong IV (and thus MAC check fails).  So, packets
 +        that are in queue should be encrypted when they are sent to
 +        the wire and not when they put to the queue.
 +
 +        However, the problem is that the current system has not been
 +        designed to work that way.  Instead, the packet is encrypted
 +        as soon as possible and left to the queue.  The queue is then
 +        just purged into wire.  There won't be any fixes for this
 +        any time soon.  So, the current semantic for packet sending
 +        is as follows:
 +
 +        o If you send packet to remote host and do not force the send
 +        (the packet will be in queue) then all subsequent packets to the
 +        same remote host must also be put to the queue.  Only after the
 +        queue has been purged is it safe again to force the packet
 +        send immediately.
 +
 +        o If you send all packets immediately then it safe to send
 +        any of subsequent packets through the queue, however, after
 +        the first packet is put to queue then any subsequent packets
 +        must also be put to the queue.
 +
 +        Follow these rules and everything works fine.
 +
 +Thu Feb 15 14:24:32 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
 +
 +      * Added new function silc_server_remove_clients_by_server to
 +        remove all client entries from ID list when the server connection
 +        is lost.  In this case it is also important to invalidate all
 +        client entires as they hold the invalid server entry.  This
 +        fixes fatal bug when server has lost connection and will reconnect
 +        again.
 +
 +Wed Feb 14 16:03:25 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
 +
 +      * Made some sanity checks to silc_server_daemonise like to check
 +        whether the requested user and group actually exists.
 +
 +      * Added sanity check to SKE's silc_ske_responder_finish to check
 +        that the public and private key actually is valid.
 +
 +      * Invalidate the client's nickname when receiving Replace ID
 +        packet and the Client ID is being replaced.  This means that the
 +        server will query the nickname if someone needs it (client)
 +        a bit later.
 +
 +      * Sort the ID Cache in client library when the ID Cache data
 +        has changed (needs sorting).
 +
 +      * Do not allow for SILC client to create several connections to
 +        several servers.  The client does not support windows right now
 +        and generating multiple connections causes weird behaviour.
 +
 +        Irssi-silc client does support windows and can handle several
 +        connections without problems, see: www.irssi.org and SILC plugin.
 +
 +      * Fixed some places where client was added to the IDList.  The
 +        rule of thumb is following (in order to get everything right):
 +        If the client is directly connected local client then the
 +        `connection' argument must be set and `router' argument must be
 +        NULL to silc_idlist_add_client function.  If the client is not
 +        directly connected client then the `router' argument must
 +        bet set and the `connection' argument must be NULL to the
 +        silc_idlist_add_client function.
 +
 +      * The funtion silc_server_packet_send_local_channel actually did
 +        not check whether the client was locally connected or not.  It
 +        does that now.  Fixed a bug related to LEAVE command.
 +
 +      * Fixed Remove Channel User payload parsing bug in server's
 +        silcd/packet_receive.c.  Fixed a bug related to LEAVE command.
 +
 +      * The server's silc_server_save_channel_key now checks also the
 +        global ID list for the channel as it might not be in the local
 +        list.  Fixed a bug related to LEAVE command.
 +
 +      * Is this the end of the [<unknown>] buglet that has been lurking
 +        around for a long time?  A little for loop fix in server's
 +        silc_server_command_whois_parse that is used by both IDENTIFY
 +        and WHOIS command.  At least, this was a clear bug and a cause
 +        of one type of [<unknown>] buglet.
 +
 +      * WHOIS and IDENTIFY commands call the function
 +        silc_server_command_[whois/identify]_check function even if
 +        we are not router server.
 +
 +Tue Feb 13 19:55:59 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
 +
 +      * Added --with-gmp configuration option.  If set the GMP
 +        is always compiled in the SILC source tree.  If not set then
 +        it is checked whether the system has the GMP3 installed.  If
 +        it has then the GMP won't be compiled (the system's headers
 +        and library is used), if it doesn't have it then the GMP is
 +        compiled in the SILC source tree.
 +
 +Mon Feb 12 11:20:32 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
 +
 +      * Changed RSA private exponent generation to what PKCS #1
 +        suggests.  We try to find the smallest possible d by doing
 +        modinv(e, lcm(phi)) instead of modinv(e, phi).  Note: this is
 +        not security fix but optimization.
 +
 +Sun Feb 11 18:19:51 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
 +
 +      * Added new config entry [Identity] to fork the server and run
 +        it as specific user and group.  A patch from Bostik.
 +
 +      * Imported Dotconf configuration library into lib/dotconf.
 +        This will be used to create the SILC configuration files later.
 +        It will appear in the distsribution after this commit.
 +
 +Sat Feb 10 21:13:45 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
 +
 +      * A big code auditing weekend happening.  Auditing code for
 +        obvious mistakes, bugs and errors.  Also, removing any code
 +        that is obsolete.
 +
 +        Removed files for being obsolete:
 +
 +        o lib/silcutil/silcbuffer.c (the buffer interface is entirely in
 +        inline in the file lib/silcutil/silcbuffer.h)
 +
 +        o lib/silcutil/silcbufutil.c (the header has inline versions)
 +
 +        Changed code to fix possible error conditions:
 +
 +        o The buffer formatting routines now check that the destination
 +        buffer really has enough space to add the data.  This applies for
 +        both buffer formatting and unformatting
 +        (lib/silcutil/silcbuffmt.[ch]).  Also, the entire buffer
 +        unformatting was changed to accomodate following rules:
 +        XXX_*STRING_ALLOC will allocate space for the data into the pointer
 +        sent to the function while XXX_*STRING will not allocate or copy
 +        the data into the buffer.  Instead it sets the pointer from the
 +        buffer into the pointer sent as argument (XXX_*STRING used to
 +        require that the pointer must be allocated already).  This change
 +        makes this whole thing a bit more consistent and more optimized
 +        (note that the data returned in the unformatting with XXX_*STRING
 +        must not be freed now).  The routines return now -1 on error.
 +
 +        o Tried to find all code that use buffer_format and buffer_unformat
 +        and added return value checking to prevent formatting and
 +        especially unformatting errors and possible subsequent fatal
 +        errors.
 +
 +        o Changed ske->x and ske->KEY to mallocated pointers in
 +        lib/silcske/silcske.h.  Fixed possible data and memory leak.
 +
 +        o Added return value checking to all *_parse* functions.  Fixed
 +        many memory leaks as well.
 +
 +        o Added length argument to silc_id_str2id in lib/silccore/id.[ch]
 +        so that buffer overflows would not happen.  All code now also
 +        checks the return value as it can fail.
 +
 +Mon Feb  5 20:08:30 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
 +
 +      * Added reconnection support to server if the normal server looses
 +        its connection to the router (for example if router is rebooted).
 +        The server performs normal reconnection strategy implemented
 +        to the server.  Affected file silcd/server.c.
 +
 +Sun Feb  4 13:18:32 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
 +
 +      * Added new packet type SILC_PACKET_SET_MODE that is used to
 +        distribute the information about changed modes (for clients,
 +        channels and clients channel modes) to all routers in the
 +        network.  Updated the protocol specification accordingly.
 +
 +        Added functions into silcd/packet_send.c and
 +        silcd/packet_receive.c: silc_server_send_set_mode,
 +        silc_server_set_mode.
 +
 +        Added new files silcmode.[ch] into lib/silccore that implements
 +        the encoding and decoding of Set Mode Payload.  Added new type
 +        SilcSetModePayload.  Moved the definitions of different modes
 +        from lib/silccore/silcchannel.h into lib/silccore/silcmode.h.
 +
 +Sat Feb  3 15:44:54 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
 +
 +      * Oops, a little mistake in server's connection authentication
 +        protocol.  The protocol is not ended with FAILURE but with
 +        SUCCESS if the authentication is Ok. :)  Affected file is
 +        silcd/protocol.c.
 +
 +      * Implemented NICK_CHANGE notify handling in server in the file
 +        silcd/packet_receive.c  The NICK_CHANGE notify is distributed to
 +        the local clients on the channel.  After the changing nickname
 +        in router environment snhould work and the [<unknown>] nickname
 +        should appear no more.
 +
 +        The silc_server_replace_id function that receives the Replace ID
 +        payload now sends the NICK_CHANGE notify type also in the file
 +        silcd/packet_receive.c
 +
 +      * Changed WHOIS and IDENTIFY command to support the maximum amount
 +        of arguments defined in protocol specs (3328 arguments).  This
 +        fixed a bug that caused problems when there were more than three
 +        users on a channel.
 +
 +Fri Feb  2 11:42:56 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
 +
 +      * Added extra parameter, command identifier, to the
 +        silc_client_send_command so that explicit command identifier
 +        can be defined.
 +
 +        Changed that ID list routines uses specific command identifier
 +        when sending WHOIS/IDENTIFY requests to the server so that they
 +        can be identified when the reply comes back.
 +
 +        Affected files lib/silcclient/command.[ch],
 +        lib/silcclient/client.c and lib/silcclient/idlist.[ch].
 +
 +      * Added `sender' argument to silc_server_packet_send_to_channel
 +        to indicaet the sender who originally sent the packet to us
 +        that we are now re-sending.  Ignored if NULL.  Affected file
 +        silcd/packet_send.[ch].
 +
 +      * Added some server statistics support in silcd/server_internal.h
 +        SilcServerStatistics structure and around the server code.  Also
 +        send some nice statistics information when client is connecting
 +        to the client.
 +
 +Thu Feb  1 23:31:21 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
 +
 +      * Fixed channel ID decoding in server's JOIN command reply in
 +        silcd/command_reply.c
 +
 +      * Fixed braodcasting of replace ID payload to not to send it if
 +        we are standalone server in silcd/packet_receive.c.
 +
 +      * Fixed all channel message sending routines to not to send
 +        packets to clients that has router set, since they are routed
 +        separately in the same function earlier.  Affects file
 +        silcd/packet_send.c and all channel packet sending functions.
 +
 +        * In USERS reply, res_argv[i] are not allocated, the table
 +          is allocated.  Thus changed that free the table, not its
 +          internals.
 +
 +      * In server's whois_check and identify_check if the client is
 +        locally connected do not send any WHOIS commands - they are not
 +        needed.
 +
 +Thu Feb  1 21:32:27 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
 +
 +      * Fixed some minor bugs in client when sending WHOIS command.  The
 +        arguments was in wrong order.
 +
 +      * Removed statis function add_to_channel from server in
 +        silcd/command.c that was previously used with the joining but
 +        is obsolete now.
 +
 +      * Tested USERS command in router environment successfully with two
 +        routers, two servers and two clients.
 +
 +Thu Feb  1 00:54:26 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
 +
 +      * Reorganized the USERS command and command reply in client library
 +        in lib/silcclient/command.c and lib/silcclient/command_reply.c.
 +        When the command is given by user we register a pending command
 +        callback that will reprocess the command after the reply has been
 +        received from the server.  When reprocessing the packet we then
 +        display the information.  Thus, the USERS information is displayed
 +        now in the command callback instead of in the command reply
 +        callback.  The processing of the command is same as previously
 +        when server has sent the command reply in the JOINing process.
 +
 +      * Added to USERS command in silcd/command_reply.c to join the client,
 +        we didn't use to know about, to the channel after we've created
 +        a client entry for it.  Also, for clienet we did know already still
 +        check whether it is on the channel or not and add it if not.
 +
 +      * Removed silc_server_command_join_notify as the function and its
 +        use was obsolete.
 +
 +Tue Jan 30 22:39:15 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
 +
 +      * Changed the client's pending command handling to the same as the
 +        server's pending command handling.  It is also now possible to
 +        execute command reply functions from other command reply
 +        function as the function callbacks for commands and command
 +        replies are one and same.  The pending commands are not static
 +        list anymore, it is mallocated SilcDList in lib/silcclient/client.h
 +        in client connection context.  Thus, pending commands are server
 +        connection specific as it is convenient.
 +
 +        Changed the function silc_client_command_pending and
 +        silc_client_command_pending_del and added new function
 +        silc_client_command_pending_check.  Removed the
 +        SILC_CLIENT_CMD_REPLY_EXEC, and SILC_CLIENT_PENDING_COMMAND_CHECK
 +        macros.
 +
 +      * Added cmd_ident, current command identifier, to the client
 +        connection context in lib/silcclient/client.h to keep track on
 +        command identifiers used in command sending.  Client's command reply
 +        function handling now supports the mandatory command identifiers.
 +
 +      * Added SILC_CLIENT_COMMAND_EXEC_PENDING macros to all command reply
 +        funtions in client to fully support pending command callbacks.
 +
 +      * NOTE: the name_list in USERS (old NAMES) command is NOT sent anymore
 +        as one of the arguments to the application in the command reply
 +        client operation.
 +
 +      * NOTE: The FORWARDED flag is depracated.  It used to be depracated
 +        before first releasing SILC but came back.  Now it is removed again
 +        and should come back nomore.  The FORWARDED flag was used only
 +        by the JOINing procedure by forwarding the command packet to router.
 +        Now, the JOINing procedure has been changed to more generic (due
 +        to various router environment issues) and FORWARDED is not needed
 +        anymore for anything.  The protocol specification is yet to be
 +        updated.
 +
 +        Now, removed silc_server_packet_forward from server and the flag
 +        SILC_PACKET_FORWARDED from lib/silccore/silcpacket.h.
 +
 +Tue Jan 30 00:05:05 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
 +
 +      * Renamed NAMES command to USERS command.  The NAMES was named that
 +        due to historical reasons.  Now it is renamed.  Also, rewrote
 +        parts of the USERS command.  The nickname list is not sent anymore
 +        by the server.  Only Client ID and mode lists are sent in the USERS
 +        command.  Changed this also to the protocol specification.
 +
 +        The client now resolves the names and stuff after it receives
 +        the USERS list from the server when joining to the channel.
 +
 +      * WHOIS and IDENTIFY commands has been changed to support multiple
 +        Client ID's per command.  One can now search for multiple users
 +        in the network by sending only one WHOIS or IDENTIFY command.
 +        Changed the code and the protocol specifications.
 +
 +      * Removed silc_server_command_identify_parse and changed that IDENTIFY
 +        uses silc_server_command_whois_parse to parse the request. */
 +
 +      * If normal server, do not parse the WHOIS and IDENTIFY requests
 +        before sending it to the router.  Saves some time.
 +
 +Sun Jan 28 16:19:49 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
 +
 +      * Fixed JOIN command on client library.  Wrong number of arguments
 +        used to crash the client.
 +
 +      * Added silc_server_channel_has_global function to check whether
 +        channel has global users or not.
 +
 +      * Added silc_server_channel_has_local function to check whether channel
 +        has locally connected clients on the channel.
 +
 +      * The silc_server_remove_from_one_channel now checks whether the
 +        channel has global users or not after given client was removed from
 +        the channel.  It also checks whether the channel has local clients
 +        on the channel anymore.  If it does not have then the channel entry
 +        is removed as it is not needed anymore.
 +
 +      * The silc_server_notify now checks on JOIN notify whether the joining
 +        client is one of locally connected or global.  If it is global then
 +        the channel has now global users on the channel and that is marked
 +        to the channel entry.  Also, it now saves the global client to
 +        global list who is joining and JOINs it to the channel.  This is
 +        for normal server, that is.
 +
 +        Changed silc_server_send_notify_on_channel,
 +        silc_server_packet_relay_to_channel and
 +        silc_server_packet_send_to_channel check if we are normal server
 +        and client has router set (ie. global client) do not send the
 +        message to that client, as it is already routed to our router.
 +
 +      * Implemented LEAVE notify type handling in silc_server_notify
 +        function.
 +
 +      * Tested LEAVE command in router environment successfully.  Tested
 +        with two routers, two servers and two clients.
 +
 +      * Updated TODO.
 +
 +      * idlist_find_xxx_by_id routines now dumps the ID on the debug mode.
 +
 +      * Implemented SIGNOFF notify type handling in silc_server_notify
 +        function.
 +
 +      * silc_server_remove_id now removes the client entry from all channels
 +        it has joined and thusly sends SIGNOFF notify type.
 +
 +      * Rewrote the NAMES list generation in server by removing two excess
 +        loops.  The lists are created now inside one loop.
 +
 +Sat Jan 27 22:34:56 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
 +
 +      * silc_server_remove_channel_user checks now also global list
 +        for channel and client.
 +
 +      * silc_server_new_channel_user checks now both local and global
 +        list for channel and client.  Fixed a bug in client id decoding.
 +        Used to decode wrong buffer.
 +
 +      * silc_server_channel_message checks now both local and global
 +        list for channel entry.
 +
 +      * Tested channel joining (hence JOIN) in router environment
 +        successfully.  Tested with two routers, two servers and two
 +        clients.
 +
 +      * Tested channel message sending in router environment successfully.
 +
 +Thu Jan 11 03:22:57 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
 +
 +      * Added silc_server_save_channel_key into server.[ch] to save the
 +        received channel key in Channel Key payload processing. It is
 +        also used in JOIN command reply handling.
 +
 +        Equivalent function silc_client_save_channel_key added into
 +        client.[ch] into client library.
 +
 +      * Changed JOIN command reply to send information whether the channel
 +        was created or not (is existing already) and the channel key
 +        payload.  Changed protocol specs accordingly.
 +
 +      * Fixed bugs in WHOIS and IDENTIFY command reply sending when
 +        the request was sent by ID and not by nickname.  Crashed on
 +        NULL dereference.
 +
 +Sat Dec 23 21:55:07 EET 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
 +
 +      * Fixed a bug in Client library.  IDENTIFY and WHOIS reply functions
 +        now correctly save the received data.
 +
 +      * silc_server_free_sock_user_data now notifies routers in the
 +        network about entities leaving the network.
 +
 +        At the same time implemented functions silc_server_remove_id
 +        and silc_server_send_remove_id to receive and send REMOVE_ID
 +        packets.  The packet is used to notify routers in the network
 +        about leaving entities.  The ID removed will become invalid in
 +        the network.
 +
 +      * Added function silc_idlist_del_server into server. Removes and
 +        free's server entry from ID list.
 +
 +      * silc_server_private_message function now checks, if we are router,
 +        that the destination ID really is valid ID, naturally.
 +
 +      * In router when NEW_ID packet is received (for new client) the
 +        hash of the Client ID is saved in the ID Cache but the
 +        client->nickname is set to NULL, instead of putting the hash
 +        to it as well.
 +
 +        IDENTIFY command now also checks that client->nickname must be
 +        valid. If it is not if will request the data from the server who
 +        owns the client.  Added new function
 +        silc_server_command_identify_check.
 +
 +      * Added silc_command_set_command into lib/silccore/silcommand.[ch]
 +        to set the command to already allocated Command Payload.
 +
 +      * Tested private message sending in router environment with two
 +        routers, two servers and two clients.  Fixed minor bugs and now
 +        it works fine.
 +
 +      * Fixed segfault from client's NAMES command. Used to crash if
 +        not on any channel.
 +
 +      * Forwarded packets must not be routed even if it is not destined
 +        to the receiver.  Changed server code comply with this.
 +
 +Sun Dec 17 14:40:08 EET 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
 +
 +      * Added `require_reverse_mapping' boolean value to ServerParams
 +        structure. If TRUE (not default) the server will require that
 +        the connecting host has fully qualified domain name.
 +
 +        If the reverse mapping is not required and hostname could not be
 +        found the IP address is used as hostname.
 +
 +Sat Dec 16 17:39:54 EET 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
 +
 +      * Implemented version string checking to both client and server.
 +        The check is incomplete currently due to the abnormal version
 +        strings used in development version of SILC.
 +
 +      * Changed all command functions in server to use the new
 +        CHECK_ARGS macro.
 +
 +Fri Dec 15 15:55:12 EET 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
 +
 +      * Changed char *data to unsigned char *data in ID Cache system to
 +        support binary data as ID Cache data. Changed code to support
 +        binary data in lib/silccore/idcache.c.
 +
 +      * Renamed silc_server_packet_relay_command_reply to
 +        silc_server_command_reply as it is normal packet receiving
 +        function. Rewrote the function to accept command replys for
 +        servers and not only for clients.
 +
 +      * Mark remote router always as registered server if we are connecting
 +        to it.  Otherwise, commands sent by the router to us are ignored.
 +
 +      * All ID List find routines now returns the ID Cache Entry pointer
 +        as well if requested.
 +
 +      * WHOIS command works now in router environment, tested with two
 +        routers, two servers and two clients.
 +
 +      * Cleaned up and rewrote IDENTIFY command. IDENTIFY should work now
 +        in router environment (as it is almost equivalent to WHOIS) but
 +        hasn't been tested thoroughly.  Added new functions:
 +
 +        silc_server_command_identify_parse
 +        silc_server_command_identify_send_reply
 +        silc_server_command_identify_from_client
 +        silc_server_command_identify_from_server
 +
 +      * Disabled route cache adding because adding two different ID's with
 +        same IP replaces the old cache entry thus giving wrong route.
 +        The entry->router->connection is always the fastest route anyway
 +        so route cache may not be needed.  Of course, new routes maybe
 +        established after receiving the ID when the entry->router->connection
 +        might not be anymore the most optimal.
 +
 +Thu Dec 14 15:55:35 EET 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
 +
 +      * Add route cache for received ID for fast routing.
 +
 +      * Added silc_server_packet_route to route received packet on router
 +        that is not destined to us.
 +
 +      * Renamed silc_server_get_route to silc_server_route_get.
 +
 +      * Added id_string and id_string_len fields into SilcServer to
 +        include encoded ServerID for fast comparing without excess
 +        encoding of the ID's.
 +
 +      * Cleaned up WHOIS command on server side. Added following static
 +        functions:
 +
 +        silc_server_command_whois_parse
 +        silc_server_command_whois_check
 +        silc_server_command_whois_send_reply
 +        silc_server_command_whois_from_client
 +        silc_server_command_whois_from_server
 +
 +      * Added macro SILC_SERVER_COMMAND_CHECK_ARGC to check mandatory
 +        arguments in command replies. All command functions should be
 +        updated to use this macro.
 +
 +Sun Dec 10 23:52:00 EET 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
 +
 +      * Minor typo fixes on command reply handling on server.
 +
 +Tue Nov 28 11:05:39 EET 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
 +
 +      * Added silc_server_command_add_to_channel internal routine to add
 +        the client to the channel after router has created the channel and
 +        sent command reply to the server.
 +
 +      * Added generic silc_server_send_command to send any command from
 +        server.
 +
 +      * Use static buffer with ID rendering instead of duplicating data.
 +
 +Mon Nov 27 21:39:40 EET 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
 +
 +      * Fixed a channel user mode bug when joining to a channel server gave
 +        everybody channel founder rights, oops.
 +
 +      * We mark ourselves as the router of the incoming server connection
 +        if we are router ourselves.  This way we can check in some packet
 +        sending functions whether it is locally connected server.  For
 +        incoming router connections we put NULL.
 +
 +      * For router sending packets locally means now always sending the
 +        packet cell wide; to local clients and local servers.  For normal
 +        server sending packet locally means sending it to only local
 +        clients.
 +
 +      * Fixed the JOIN command to really work in router environment.  If the
 +        channel is created it is always created by the router.  Router is
 +        also responsible of making the initial joining to the channel,
 +        sending JOIN notify to the sending server and distributing
 +        NEW_CHANNEL and NEW_CHANNEL_USER packets.  Hence, if the channel
 +        does not exist server doesn't do anything else but forward the
 +        command to the router which performs everything.
 +
 +      * Added silc_server_send_channel_key function to send the Channel Key
 +        payload.
 +
 +      * Added silc_server_create_channel_key to create new channel key.  The
 +        channel key is now re-generated everytime someone joins or leaves
 +        a channel, as protocol dictates.  Note: channel->key_len is the
 +        key length in bits.
 +
 +Wed Nov 22 22:14:19 EET 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
 +
 +      * Splitted server.[ch] finally.  Created now packet_send.[ch] and
 +        packet_receive.[ch] to separate packet sending and receiving
 +        routines.  The server.[ch] now includes everything else including
 +        actual packet processing (writing and reading data) and other
 +        server issues.
 +
 +        Renamed silc_server_private_message_send_internal to
 +        silc_server_send_private_message.  The routine is still though
 +        used only to relay private messages as server does not send
 +        private messages itself.
 +
 +        Renamed silc_server_new_channel to silc_server_create_new_channel
 +        and added new function sicl_server_new_channel that handles the
 +        incoming New Channel packet.  Added also new sending function
 +        silc_server_send_new_channel to send New Channel Payload.
 +
 +      * Added new function silc_server_notify to process incoming notify
 +        packet to the server/router. Server may then relay the notify
 +        to clients if needed.
 +
 +      * Added new function silc_server_new_channel_user to process incoming
 +        New Channel User packet.  Router will redistribute the packet and
 +        send JOIN notify to its local clients and locally connected servers
 +        if needed.  Normal server will send JOIN notify to its local client
 +        on same channel when received this packet.  Added also corresponding
 +        sending function silc_server_send_new_channel_user to sent the
 +        payload.
 +
 +      * Added boolean route argument to send_notif_to_channel and
 +        packet_send_to_channel functions to attempt to route the packet
 +        if it is TRUE and send only locally if it is FALSE.
 +
 +Tue Nov 21 19:49:31 EET 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
 +
 +      * silc_server_replace_id now broadcasts the received replace ID
 +        packet if it is not broadcast packet already. The router must
 +        broadcast to inform other routers about changed ID.
 +
 +      * Added backpointer to server's router into SilcServer context in
 +        silcd/server_internal.h.
 +
 +      * Fixed silc_server_packet_broadcast to send correct broadcast
 +        packets.
 +
 +      * The channel key is now distributed to the local client as soon
 +        as it is received from the router (in router environment) so that
 +        no other packet may be sent for the channel until client has
 +        received the key.
 +
 +      * silc_server_remove_channel_user now broadcasts the received
 +        Remove Channel User packet if it is not broadcast packet already.
 +        The router must broadcast to inform other routers about removed
 +        channel user.
 +
 +      * Added users field into SilcPacketContext that is a reference count
 +        of the context.  One can increase the reference count by calling
 +        silc_packet_context_dup which is now changed to just increase the
 +        reference count instead of duplicating the data.  The reference
 +        count is decresed by calling silc_packet_context_free that will
 +        free the data after the reference count hits zero.
 +
 +        For now on the packet context and everything allocated into it
 +        (including the raw packet from network) must be freed by calling
 +        the new silc_packet_context_free function.  Added also new function
 +        silc_packet_context_alloc that must be used now to allocate the
 +        context.  This also means that if a routine is asynchronous from
 +        silc_[client/server]_packet_parse_type the packet context must
 +        be duplicated by calling silc_packet_context_dup.  Otherwise it
 +        gets free'd after silc_[client/server]_packet_parse_type returns.
 +        Also, one must remember that if packet is duplicated then its
 +        reference count must be decresed by calling the free function as
 +        many times as it was duplicated.
 +
 +      * Changed SilcBuffer field from protocol contexts to SilcPacketContext
 +        from both client and server.
 +
 +Mon Nov 20 23:47:03 EET 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
 +
 +      * Made joining to a channel working in router environment.
 +
 +      * Cleaned up JOIN command on server side and create function
 +        silc_server_command_join_channel internal routine to make the
 +        joining happen.
 +
 +Thu Nov  9 21:12:39 EET 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
 +
 +      * Changed silc_command_pending list to SilcDList.  Also, added
 +        `ident' field to SilcServerCommandPending structure to identify
 +        the reply and to call correct callback.
 +
 +        Added silc_server_command_pending_check function to replace the
 +        corresnponding macro.  The silc_command_pending list is not
 +        extern anymore.
 +
 +      * Added silc_command_set_ident into lib/silccore/silccommand.[ch]
 +        to set identifier to previously allocated Command Payload.  It
 +        is used to set identifier for command when resending Command
 +        Payload.
 +
 +      * Added silc_command_payload_encode_payload to encode Command
 +        Payload buffer from SilcCommandPayload structure.
 +
 +      * Added silc_argument_payload_encode_payload to encode Argument
 +        payload buffer from SilcArgumentPayload structure.
 +
 +Wed Nov  8 21:03:28 EET 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
 +
 +      * Changed WHOIS command to support router connection on server side.
 +        The whois request is always sent to router unless the server is
 +        standalone server.  After server has received the reply from the
 +        router will it send the reply to the client.
 +
 +      * Added silc_server_packet_broadcast into silcd/server.[ch] to
 +        broadcast received broadcast packet.  The function is used only
 +        by router.  The broadcast packet is always sent to the router's
 +        primary route.
 +
 +      * Added silc_id_render function in lib/silcutil/silcutil.[ch] to
 +        render given ID to printable string, for log files for example.
 +
 +Tue Nov  7 22:14:19 EET 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
 +
 +      * Made basic router to router connections working.  At least they
 +        can now connect to each other but nothing really works the way
 +        they are supposed - yet.
 +
 +      * Added new initiator token to RouterConnection configuration
 +        file in silcd/serverconfig.[ch].  It is used to tell whether we
 +        are the initiator to the remote router or whether we'll expect
 +        the other end to connect.
 +
 +      * Moved registering of listener task to silc_server_init, hence
 +        the server starts listenning as soon as it is run, even if it
 +        does not have connections to other routers.  Let's see how well
 +        this will work.
 +
 +      * Changed default connection retry timeouts for more suitable in
 +        silcd/server.h.
 +
 +      * Removed cipher and such arguments from silc_idlist_add_client
 +        and silc_idlist_add_server prototypes from silcd/idlist.[ch].
 +        Added new function silc_idlist_add_data to add the keys and stuff
 +        to any ID entry.
 +
 +      * Added SilcIDListData structure and added it to SilcClientEntry
 +        and SilcServerEntry as their first field in the structure.  This
 +        way we can explicitly cast the ID entries to the SilcIDListData
 +        structure and get common data for the entries.  In past, we had
 +        to first check what type of connection it is and then cast it to
 +        correct ID entry type.  Now, we can directly cast the opaque
 +        pointer to the SilcIDListData (no matter what ID entry it actually
 +        is) and get the data needed.
 +
 +Mon Nov  6 21:56:12 EET 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
 +
 +      * Wow, found a bug in scheduler.  The scheduler uninitialized itself
 +        in some circumstances even if threre were timeout tasks, though not
 +        IO tasks, but tasks anyway.  Now fixed.
 +
 +      * Defined SilcServerConnection structure to hold connection specific
 +        stuff about directly connected servers and routers.  The definition
 +        is currently in silcd/server_internal.h.  I thought about having
 +        a bit more important role fro this struct but for now it is used
 +        only when connecting to other server (or router actually).
 +
 +      * Added connecting retry support in server when connecting to
 +        router(s).  The retry feature implement exponential backoff
 +        algorithm.  Also, added SilcServerParams structure to hold default
 +        parameters for server.  For now, it include these retry settings
 +        and are hard coded.  After server is moded to be as Silc Server
 +        Library this structure will be more important.
 +
 +Sun Nov  5 22:28:44 EET 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
 +
 +      * Changed client librarys channel->clients table to SilcList and
 +        changed code accordingly.
 +
 +Thu Nov  2 16:28:01 EET 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
 +
 +      * Changed client's channel table to SilcList and changed code
 +        accordingly.  Also changed SilcChannelClientEntry to include back-
 +        pointer to the channel so that client entry can use that structure
 +        as list as well and we have fast cross-reference to the channel.
 +        This change dramatically decreased the complexity of channel
 +        handling with client entry and vice versa (removed one extra
 +        loop when searching for channel entry from many functions).
 +
 +      * Changed server->sim from table to SilcDList and changed code
 +        accordingly.
 +
 +      * NAMES command can now be used from user interface.  It will show
 +        the user list on the channel, neatly.
 +
 +      * Added realname pointer to SilcClientEntry in lib/silcclient/idlist.h.
 +        Code now saves realname of the user if it becomes available.
 +
 +      * Renamed configure.in to configure.in.pre and made ./prepare
 +        script to automatically add correct version string to
 +        configure.in which it creates from configure.in.pre.
 +
 +Wed Nov  1 17:21:26 EET 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
 +
 +      * NAMES command reply now shows users mode with the nickname when
 +        joining to channel.
 +
 +      * Moved silc_client_ch[u]mode[_char] functions from
 +        silc/clientutil.[ch] to lib/silcclient/client.[ch].  Though, that
 +        place sucks, they are utility functions and should be in some
 +        other file.
 +
 +      * Fixed some unsigned int's to unsigned short's.  Patch by cras.
 +
 +      * Fixed contrib/getopt*.[ch] to not require config.h.  Patch by
 +        cras.
 +
 +Tue Oct 31 20:10:37 EET 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
 +
 +      * Updated README.
 +
 +      * Added TRQ (efficient deque and list library) into lib/trq.  This is
 +        a very good list library that is currently used in the SILC.  Defined
 +        SilcList API over the library because I didn't like the API very
 +        much.  See lib/trq/silclist.h for the API and examples of how to
 +        use the API.  Fixed various places in the code to use the new
 +        SilcList API. The SilcList is meant for lists that has a structure
 +        already defined as a list.  It is not suitable to add just some
 +        context to the list (in TRQ, the context is the list actually).
 +
 +        So, I defined SilcDList that can be used for the purpose where
 +        predefined list structure does not exit.  This can be used as
 +        such list.  Now some context just can be added to the SilcDList.
 +        Currently this list is not used in the SILC just yet, though there
 +        are a lot places where this can replace dynamically allocated
 +        tables and I will fix these places, later, to use SilcDList.
 +        See lib/trq/silcdlist.h for SilcDList (they are all inline functions,
 +        and use TRQ internally).
 +
 +        Also fixed some annoying warning messages that the original TRQ
 +        code generated.  Also minor changes to TRQ's Makefile.in.
 +
 +      * Added support for querying by Client ID to both WHOIS and
 +        IDENTIFY commands into server, as required by the protocol.
 +
 +      * Removed method function pointers from SilcBuffer structure. They
 +        weren't used to anything and just increased the context size for
 +        no good reason.  This change also made silc_buffer_alloc and
 +        silc_buffer_free functions inline functions.
 +
 +      * Disabled command flooding detection support until it's fixed so
 +        that it accepts commands in but does not execute them more than once
 +        in two seconds.
 +
 +      * Added silc_net_localhost(), to return local hostname, into
 +        lib/silcutil/silcnet.[ch].  Also added client->hostname pointer
 +        that must be initialized before calling silc_client_init.
 +
 +      * Added new function: silc_server_send_notify_on_channels to send
 +        notify messages to all channels client has joined.  It is assured
 +        that the message is sent only once per client.
 +
 +      * Moved silc_log_format (from lib/silcutil/silclog.[ch] into
 +        lib/silcutil/silcutil.[ch] as silc_format function.  The new
 +        function is generic and is used by server as well, not only by
 +        the logging routines.
 +
 +      * Added new SKE status type: SILC_SKE_STATUS_BAD_VERSION to indicate
 +        the provided version string was not acceptable.  Added new function:
 +        silc_ske_check_version into lib/silcske/silcske.h.  The function
 +        must be implemented by the application (client or server) and it
 +        does not reside in the SKE library.  The function checks the version
 +        string remote end sent.
 +
 +      * Added back pointers (to opaque context and to SilcSocketConnection)
 +        into SilcPacketContext structure into lib/silccore/silcpacket.h.
 +
 +      * Added silc_packet_context_dup into lib/silccore/silcpacket.[ch] to
 +        duplicate packet context structure.
 +
 +      * Changed `notify' client operation to send same arguments as client
 +        receives from server except for ID's.  ID's are mapped to correct
 +        ID entry and that is returned.  Also, if channel entry is not sent
 +        by server but the notify is for channel the channel entry is sent
 +        to application (otherwise application doesn't know that it is for
 +        channel (library gets it from packet's Destination ID)).
 +
 +      * Added silc_client_remove_from_channels into client library to
 +        remove a client from all channels it has joined to.  Used when
 +        received SIGNOFF notify from server.  Added also new function
 +        silc_client_replace_from_channels to replace old ID entry with
 +        new ID entry on all channels.  Used when received NICK_CHANGE
 +        notify from server.
 +
 +      * Fixed ID Cache list handling in silc_idlist_get_client in
 +        lib/silcclient/idlist.c.  Also, added silc_idlist_get_client_by_id
 +        to get (or query) client by ID.
 +
 +      * Updated TODO list.
 +
 +      * Added connection authentication status message defined by the
 +        protocol: SILC_CONN_AUTH_OK and SILC_CONN_AUTH_FAILED and added the
 +        support for these into the code in client and server side.
 +
 +      * Added generic function silc_client_send_command to send any command
 +        with variable argument list.  Application should use this function
 +        to send commands if the command functions provided by the library
 +        does not suite for the application's user interface needs.
 +
 +      * Added new `failure' client operation.  Application is notified about
 +        received failure packet if client is executing a protocol.  In this
 +        case the protocol's execution has failed.
 +
 +      * Added SKE's end notify to send the SKE_SUCCESS notify message that
 +        is required by the protocol.
 +
 +      * Added SILC_PROTOCOL_STATE_FAILURE to indicate received failure
 +        packet from remote.  SILC_PROTOCOL_STATE_ERROR indicates local
 +        error at our end.
 +
 +      * Added status flag to SilcSKE object to indicate realtime status
 +        of the SKE protocol.
 +
 +      * Application receives now exactly same command reply arguments as
 +        the library receives from server.  However, if ID is received the
 +        corresponding ID entry is returned to the application (eg. Client
 +        ID is mapped to correct SilcClientEntry entry and that is returned).
 +        Changed command_reply client operation due to this change.
 +
 +      * Changed all ID's in commands and in command replys as ID Payloads.
 +        Change affected both client and server side codes.
 +
 +        All ID's sent in SILC network (with execption of ID's in SILC
 +        Packet header) are sent in ID Payload to support variable length
 +        ID's.
 +
 +      * Server now notifies nick changes and notifies all clients on
 +        the channels about the new nickname (about the new Client ID,
 +        actually).
 +
 +      * Implemented CMODE command to change channel modes. Supports all
 +        channel modes defined by the protocol specs except ban and invite
 +        lists. (Also, private channel key mode is supported but support for
 +        setting private channel key in client is missing, thus, this mode
 +        has no effect on client side (except that server requires that the
 +        client uses private channel key and normal channel traffic does not
 +        work anymore)).
 +
 +        Also, invite mode works per se, but INVITE command does not work
 +        yet correctly, so you can set channel as invite only channel but
 +        inviting clients to the channel does not work (it is yet to be
 +        thought what's the best way to do it).
 +
 +      * Added new command SILC_COMMAND_CUMODE to change user mode on the
 +        channel.  Defined user modes: CHANNEL_FOUNDER and CHANNEL_OPERATOR.
 +        Implemented CUMODE command to change user's mode on the channel.
 +        Supports all modes defined by the protocol specs.
 +
 +      * Added NAMES command reply to return users modes on the channel.
 +
 +      * Removed unnecessary and slow ciphers from lib/silccrypt.
 +
 +      * Set SO_KEEPALIVE option to connection sockets by default.
 +
 +      * Added new command reply status: SILC_STATUS_USER_NOT_ON_CHANNEL.
 +
 +      * Added notify types: MOTD, CMODE_CHANGE and CUMODE_CHANGE.  Also,
 +        redefined the Notify Payload into protocol specs.
 +
 +      * Added silc_id_payload_parse_id to get ID directly from raw
 +        ID payload data.
 +
 +Mon Oct  9 20:57:02 EEST 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
 +
 +      * Changed SILC_COMMAND_IDENTIFY in protocol specification to
 +        accept searching by Client ID as well.
 +
 +      * Added support for LEAVE and SIGNOFF notify types in client library.
 +
 +      * Added silc_id_payload_parse_data into lib/silccore/silcpayload.[ch]
 +        to parse ID Payload from raw data.
 +
 +Sun Oct  8 19:33:08 EEST 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
 +
 +      * Added flags parameter into silc_ske_assemble_security_properties
 +        function in lib/silcske/silcske.[ch].
 +
 +      * Changed notify client operation to fit better for notify messages
 +        sent by server.  The notify payload received from server is now
 +        passed to the application (after parsing it to SilcNotifyPayload).
 +        It is application's responsibility to retrieve the arguments
 +        from the payload and show the message the way it wants.  The message
 +        sent by server is implementation specific.
 +
 +      * Changed public keys to comply with the protocol specification.
 +        Old public keys are not supported anymore and are not compatible.
 +
 +      * Removed nickname from Channel Payload as the latest draft removed
 +        it.  The client must resolve the nickname from the NAMES command
 +        reply received when it joined the channel.
 +
 +        Also, changed all channel_xxxx_payload to channel_payload_xxxx.
 +
 +Sat Oct  7 21:55:01 EEST 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
 +
 +      * Fixed some errors in protocol specification drafts.
 +
 +      * Created lib/silccore/silcnotify.c to implement Notify Payload
 +        encoding and decoding, lib/silccore/silcpayload.[ch] to implement
 +        generic payloads described by protocol specifications.  The file
 +        includes implementations for ID Payload and Argument Payload.
 +
 +      * Changed Command Payload implementation to use the new Argument
 +        Payload.  Changed command_xxxx_payload to command_payload_xxxx
 +        to comply with SILC coding conventions.
 +
 +      * Added suppport for Argument Payload handling in Notify Payload
 +        implementation as protocol requires it.  Added the new support
 +        into server and client lib as well.
 +
 +Thu Oct  5 21:16:28 EEST 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
 +
 +      * Added support for multiple nicknames on same channel.  [n] is
 +        added locally to the nickname if there are more than one same
 +        nicknames on the channel.
 +
 +      * Server now sends all nicknames that matched WHOIS request.
 +        Client also shows the list received from server.
 +
 +      * Added TOPIC command to client side.  User can now set and show
 +        current topic on channel.
 +
 +      * Added MOTD command to client and server.  Also, server sends the
 +        motd when client connects to the server.
 +
 +      * Changed version strings to comply ISO 8601.
 +
 +Wed Oct  4 23:29:06 EEST 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
 +
 +      * Fixed protocol error handling in client library.  It should now
 +        cope even if the SKE fails for some reason.
 +
 +      * Made new protocol specification drafts for submitting to IETF.
 +
 +      * Implemented TOPIC command to server in silcd/command.c.
 +
 +      * Added two new notify types into lib/silccore/silcnotify.h:
 +        SILC_NOTIFY_TYPE_NICK_CHANGE and SILC_NOTIFY_TYPE_TOPIC_SET to
 +        notify nickname change and topic setting/change on a channel.
 +
 +      * API change of command_reply operation in client library.  The
 +        application gets now the status type received from server as well.
 +
 +Sat Sep 30 16:57:42 EEST 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
 +
 +      * Removed the function just added to lib/silcutil/silcschedule.[ch].
 +
 +      * Cras fixed and optimized the packet handling even further and
 +        it should work now.  Minor change to the prototype of function
 +        silc_packet_receive_process in lib/silccore/silcpacket.[ch].
 +
 +Sat Sep 30 08:48:47 EEST 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
 +
 +      * Added new function into lib/silcutil/silcschedule.[ch]:
 +        silc_schedule_with_fd to select() a specified fd.  The function
 +        returns after timeout expires or data arrives or goes.  The
 +        function is used by packet routines to wait that all data is
 +        received from network.
 +
 +      * Fixed data reading from network in lib/silccore/silcpacket.c.
 +        The code now assures that all data is read from the fd and then
 +        continues packet processing.  This was a bug fix since the code
 +        used to drop some data in some circumstances.
 +
 +      * Added new function into lib/silcclient/client.[ch]:
 +        silc_client_start_key_exchange to start key exchange after
 +        connection has been established to server.  The code internally
 +        now uses this funtion but its main purpose was to provide it
 +        for applications that perform their own connecting.  After
 +        application has created a connection it merely calls this
 +        function to start the key exchange between client and server.
 +        The library takes care of everything else after that.
 +
 +        Updated also lib/silcclient/README to explain the usage of
 +        this new function.
 +
 +      * Do not send to application information that connection has
 +        been established.  Application gets notified it by connect
 +        operation anyway.
 +
 +Thu Sep 28 23:40:19 EEST 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
 +
 +      * Applied cras's patch to add silc_schedule_one function.  The
 +        function runs scheduler once and returns.
 +
 +      * Fixed the scheduler after cras messed it up.  The timeout
 +        handling works now as it's supposed to work.
 +
 +      * Added into lib/silccore/ silcnotify.h to include notify
 +        message types support.  Changed silc_server_send_notify*
 +        functions, in server.[ch], to support those new notify types.
 +        Added the support for the notify types into client library,
 +        as well.  Added new notify client operation into ops.h in
 +        lib/silcclient/.
 +
 +      * Changed silc_server_packet_send_to_channel to send normal
 +        packets instead of just channel message packets.  The function
 +        is now used to send the notify packets to channels.  It is not
 +        used to send channel message packets anymore, as server never
 +        sends them anymore.
 +
 +      * Added explicit casting into lib/silcutil/silcbuffmt.c to few
 +        va_arg()s as it seems to require it nowadays.  I guess, if SILC
 +        is compiled with older va_arg() the new code should work anyway.
 +
 +Wed Sep 13 18:10:14 EEST 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
 +
 +      * Splitted core library.  Core library (lib/silccore) includes
 +        now only SILC protocol specific core (and common) components.
 +        Created new utility library (lib/silcutil) that includes more
 +        generic purpose stuff.  The stuff for util library was taken
 +        from the old core library.  This was minor and easy split.
 +
 +      * Created SILC Client Library (lib/silcclient) that includes
 +        implementation of the SILC client without user interface.  This
 +        was major move from silc/ directory.  The code has been changed
 +        so that it is transparent towards the user interface.  The
 +        silc/ directory includes now the same user interface as before
 +        and it uses the new client library.  Read lib/silcclient/README.
 +        Basicly, the client library performs everything else related
 +        to SILC except user interface handling.  Also, configuration
 +        files are considered to be part of user interface and library
 +        does not handle them.
 +
 +        This change also changed a lot of structures, function naming etc.
 +        Most important change was that SilcClientWindow object was
 +        renamed to SilcClientConnection in the client library.  Created
 +        also new file lib/silcclient/ops.h.  Also added new files
 +        silc/local_command.[ch] and silc/client_ops.[ch].
 +
 +        All these changes were made to make it easier for user interface
 +        designers to create what ever user interface for the SILC client
 +        they want.
 +
 +        It is also expected that the server will be moved to lib
 +        directory as well and SILC Server Library will be created;
 +        sometimes in the future.
 +
 +      * Removed Local commands from lib/silccore/silccommand.h as
 +        they are application specific and new client library does not
 +        handle any of those anymore.
 +
 +      * Several functions moved to lib/silcutil/silcutilc.[ch] from
 +        old client implementation in silc/.
 +
 +      * Added support for callback functions in SILC_LOG_* macros.
 +        Application can now set its own callbacks that will be called
 +        instead of using the default functions that will always print
 +        the debug messages to stderr (or stdout).  Also, debugging can
 +        now be disabled by setting silc_debug to FALSE and re-enabled by
 +        setting it to TRUE.  Note, that logging will still work even
 +        if debugging is disabled.
 +
 +        New functions in lib/silcutil/silclog.[ch]: silc_log_set_callbacks,
 +        silc_log_reset_callbacks, silc_log_set_debug_callbacks and
 +        silc_log_reset_debug_callbacks.
 +
 +      * To enable debugging in silc client one must give now -d
 +        option on command line.
 +
 +      * Changed silc_schedule_init to automatically allocate task queues
 +        if they are not allocated before calling it.
 +
 +Thu Sep  7 10:49:33 EEST 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
 +
 +      * Added GMP 3.1 into math library.
 +
 +Sun Aug 20 21:27:26 EEST 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
 +
 +      * Added SILC_PACKET_REMOVE_CHANNEL_USER to remove a client from
 +        a channel in SILC network.  The packet is used by servers and
 +        routers to notify other routers that user has left a channel.
 +        This little feature was missing until now.  Added the feature
 +        to protocol specification as well.
 +
 +        Added functions: silc_server_send_remove_channel_user and
 +        silc_server_remove_channel_user into server.[ch].
 +
 +      * Added SILC_PACKET_REKEY and SILC_PACKET_REKEY_DONE into
 +        lib/silccore/silcpacket.h.  However, they are not implemented
 +        yet.
 +
 +Sat Aug 19 23:04:16 EEST 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
 +
 +      * Fixed joining to a channel and sending channel messages
 +        between server and router.  The channel message sending should
 +        now work inside a cell.
 +
 +Tue Jul 25 20:46:13 EEST 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
 +
 +      * Fixed the private message sending between server and router.
 +        The private message sending should now work inside a cell.
 +
 +      * Added silc_server_replace_id into server.[ch] to replace
 +        existing ID in the SILC network.
 +
 +      * Added silc_idlist_find_server_by, silc_idlist_replace_client_id
 +        and silc_idlist_replace_server_id into idlist.[ch] in server.
 +
 +Mon Jul 24 18:33:31 EEST 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
 +
 +      * Fixed the server to server connections.  Server can again now
 +        connect to router.  Router to router connections probably does
 +        not work just yet.
 +
 +Thu Jul 20 13:15:01 EEST 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
 +
 +      * Added dynamic protocol registering support.  Now protocols can
 +        registered and unregistered on the fly.  Patch by cras.
 +
 +Wed Jul 19 19:08:46 EEST 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
 +
 +      * Added lib/contrib directory to hold routines that some platforms
 +        don't have but are needed by SILC.
 +
 +      * Added getopt.c, getopt1.c and getopt.h from GNU C library
 +        into lin/contrib to provide getopt() and getopt_long() for
 +        those who don't have it.
 +
 +Tue Jul 18 20:41:20 EEST 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
 +
 +      * Added AWAY command to client.  When away message is set and
 +        client receives a private message packet the client automatically
 +        replies to the sender with the away message.
 +
 +      * Fixed a bug in lib/silcmath/mpbin.c: silc_mp_mp2bin.  This
 +        bug seemed to be the cause of recent problems when compiling
 +        with gcc-2.95.
 +
 +      * Added version detection support to SKE protocol specification
 +        and added the new changes to the SKE implementation as well.
 +        There were other minor changes in the SKE protocol as well.
 +
 +        Many changes in lib/silcske/silcske.[ch] and in
 +        lib/silcske/payload.[ch].
 +
 +      * Added ^U functionality, clear input line.  Patch from cras.
 +
 +Mon Jul 17 23:33:26 EEST 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
 +
 +      * Mainly small bugfixes on core library.  Fixed some debugging
 +        logging and buffer overflow in silclog.c.
 +
 +      * Updated config.sub and config.guess on the distribution tree.
 +
 +Sat Jul 15 15:33:48 EEST 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
 +
 +      * Added command lagging support in server. Client may execute
 +        commands now only once in two seconds.
 +
 +Thu Jul 13 22:10:21 EEST 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
 +
 +      * Optimized packet reception. MAC computation and checking is now
 +        also more optimized.  A lot previously duplicated code is now
 +        used as generic by both client and server.
 +
 +      * Fixed key pair generation in clientutil.c
 +
 +Wed Jul 12 18:28:07 EEST 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
 +
 +      * Added into lib/silccore/silcbufutil.[ch] new function;
 +        silc_buffer_realloc.
 +
 +      * Moved generic packet sending/encryption functions to
 +        lib/silccore/silcpacket.[ch] from client and server.  Some
 +        rewriting of the functions.
 +
 +      * Moved all generic packet reception/decryption functions to
 +        lib/silccore/silcpacket.[ch] from client and server.  The
 +        packet processing is now much cleaner in both client and server.
 +        These were major changes in both client and server.
 +
 +      * Created many common functions in server to do packet sending.
 +        Previously code were duplicated a lot, this has been removed
 +        with these changes.
 +
 +Tue Jul 11 20:27:26 EEST 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
 +
 +      * Rewrote major parts of the ID cache system.  Don't know
 +        whether it is better now or not but at least the API is more
 +        cleaner now.
 +
 +      * Major rewrite on ID cache stuff on client because of the ID
 +        cache API changes.  Added idlist.c to client.
 +
 +      * Also major rewrite on ID cache stuff on server as well.
 +        Major rewrite of idlist.[ch]. SilcXXXList's are now named
 +        SilcXXXEntry's.  We won't keep anymore idlist specific pointers
 +        in hand, instead they are all put into the ID cache system now.
 +        All server_idlist_* routines uses ID cache now instead of
 +        traversing its own lists (those lists does not exist anymore).
 +        SilcIDList though still exists.  Also, SilcXXXEntry's are
 +        now pointers.
 +
 +Sun Jul  9 15:19:24 EEST 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
 +
 +      * Finally made the SKE implementation compliant to the protocol
 +        specification.  All mp integers are now binary encoded as
 +        opposed being HEX encoded.
 +
 +      * Added lib/silcmath/mpbin.[ch].  Encoding mp intergers to and
 +        from binary data.
 +
 +      * Added into lib/silccore/silcutil.[ch] PEM encoding/decoding
 +        functions: silc_[encode/decode]_pem.  Also added function
 +        silc_encode_pem_file to PEM encode with newlines ('\n') for
 +        saving into a file.
 +
 +      * SILC public keys are now encoded either PEM or binary.  Same
 +        option is for private keys as well.  By default private keys
 +        are binary encoded and public keys PEM encoded.  Silly HEX
 +        encoding were removed.
 +
 +      * Added into lib/silccrypt/silchash.[ch] silc_hash_fingerprint
 +        function to create fingerprints.
 +
 +      * Fixed a bug in SHA1; does not change the original data anymore.
 +
 +      * Partly implemented INFO command on client and server side.
 +        Fixed CLEAR command.  Changes to SERVER command; show current
 +        server(s) when giving command without arguments.  Added
 +        VERSION command to client.
 +
 +      * Added check to server that unregistered connections cannot
 +        execute commands (unless it is specificly allowed).
 +
 +Thu Jul  6 18:12:24 EEST 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
 +
 +      * Fixed screen refresh.
 +
 +      * Fixed channel joining bug from client.  On some circumstances
 +        client tried to join to a channel it had already joined.
 +
 +      * Added public key verification process into client's protocol.c.
 +        The client now verifies the public key from user and saves
 +        it into ~./silc/serverkeys/ directory.
 +
 +        Added into: clientutil.[ch]: silc_client_verify_server_key.
 +
 +      * Changed SKE protocol's silc_ske_initiator_finish function
 +        to accept callback function that verifies the received public
 +        key.  Removed old silc_ske_verify_public_key function.
 +
 +Wed Jul  5 19:19:02 EEST 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
 +
 +      * Added into silcpkcs[ch]: silc_pkcs_public_key[_data]_set and
 +        silc_pkcs_private_key[_data]_set.
 +
 +      * Made the password and public authentication more cleaner in
 +        server's protocol.c.
 +
 +      * Removed historic and obsolete protocol `channel_auth' from
 +        both client and server.
 +
 +      * Removed wrong way of sending command status messages from
 +        server to client in server's command.c.  The old way violated
 +        protocol specification.
 +
 +        Changes to silccore/silccommand.[ch]: removed
 +        silc_command_encode_status_payload -> not needed anymore,
 +        changed silc_command_encode_payload_va to accept extra
 +        argument on variable argument list.  The argument type must
 +        now be provided to the function.  Also, added new function:
 +        silc_command_encode_reply_payload_va which is same as
 +        normal command_encode_payload_va except command status type
 +        is provided as extra argument.
 +
 +Tue Jul  4 18:26:39 EEST 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
 +
 +      * Added ~./silc directory handling.  The directory includes the
 +        public and private keys for the client.
 +
 +        Added silc_client_check_silc_dir, silc_client_create_identifier
 +        and silc_client_load_keys.
 +
 +      * Implemented SILC protocol compliant public key.  Added public
 +        and private key saving to and loading from files.
 +
 +        Added into silcpkcs.[ch]: silc_pkcs_encode_identifier,
 +        silc_pkcs_public_key_encode[_data], silc_pkcs_public_key_decode,
 +        silc_pkcs_private_key_encode[_data], silc_pkcs_private_key_decode,
 +        silc_pkcs_public_key_alloc, silc_pkcs_public_key_free,
 +        silc_pkcs_private_key_alloc and silc_pkcs_private_key_free.
 +
 +        Implemented: silc_pkcs_save_[public/private]_key[_data] and
 +        silc_pkcs_load_[public/private]_key.
 +
 +Mon Jul  3 18:51:27 EEST 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
 +
 +      * Added silc_server_get_route (route.[ch]) to get connection
 +        data for the fastest route for given ID.
 +
 +      * Implemented INVITE command on client and server.  The command
 +        were re-defined in the SILC Protocol Specification and the
 +        implementation now complies with the specification.
 +
 +      * Implemented PING command on client and server.
 +
 +      * Implemented NAMES command on client and server.  The server side
 +        supports currently only normal server not router server yet.
 +        Some changes to NAMES definition in SILC protocol specification.
 +
 +Sun Jul  2 18:23:01 EEST 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
 +
 +      * Implemented LEAVE command on client and server.
 +
 +      * Previously deprecated SILC_PACKET_FORWARDED flag is now in use
 +        again.  This change was made to the protocol as well.  Server
 +        should not violate the protocol specification anymore.
 +
 +Fri Jun 30 14:03:26 EEST 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
 +
 +      * Added SOCKS4 and SOCKS5 support to SILC client.  SOCKS5
 +        was tested.  SOCKS4 was not but should work anyway.
index 5e569253ac8b3cd0df9c4519f74cb3ecd141f5c2,0000000000000000000000000000000000000000..97a79916a4fe7efc77c9530100152963f1ca192d
mode 100644,000000..100644
--- /dev/null
@@@ -1,18 -1,0 +1,19 @@@
 +SUBDIRS = examples
 +
 +scriptdir = $(datadir)/irssi/scripts
 +
 +script_DATA = \
 +      autoop.pl \
 +      autorejoin.pl \
 +      buf.pl \
 +      dns.pl \
 +      kills.pl \
 +      mail.pl \
 +      mlock.pl \
 +      quitmsg.pl \
 +      scriptassist.pl \
++      silc.pl \
 +      splitlong.pl \
 +      usercount.pl
 +
 +EXTRA_DIST = $(script_DATA)
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..3870cf608eb3ea7df1097c55f51228df8d1fca22
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,57 @@@
++#!/usr/bin/perl -w
++
++#<scriptinfo>
++use vars qw($VERSION %IRSSI);
++
++use Irssi 20020519;
++$VERSION = "0.3";
++%IRSSI = (
++    authors   => "c0ffee",
++    contact   => "c0ffee\@penguin-breeder.org",
++    name      => "sign_messages from silc-plugin",
++    description       => "introduces a setting sign_messages which automatically signs messages",
++    license   => "Public Domain",
++    url               => "http://www.penguin-breeder.org/?page=silc",
++    changed   => "Wed Jan 29 20:55 CET 2003",
++);
++#</scriptinfo>
++
++sub sig_ownpub {
++  my ($server, $msg, $target) = @_;
++
++  if (($server->{chat_type} =~ /^silc$/i) && 
++      (Irssi::settings_get_bool("sign_messages"))) {
++
++    Irssi::signal_stop();
++    $server->command("SMSG -channel $target $msg");
++
++  }
++
++}
++
++sub sig_sendtext {
++  my ($line, $server, $witem) = @_;
++  return unless ref $witem;
++
++  if (($server->{chat_type} =~ /^silc$/i) && 
++      (Irssi::settings_get_bool("sign_messages"))) {
++
++    return if $line eq "";
++
++    if ($witem->{type} eq "CHANNEL") {
++      $target = "-channel $witem->{name}";
++    } elsif ($witem->{type} eq "QUERY") {
++      $target = "$witem->{name}";
++    } else {
++      return;
++    }
++
++    Irssi::signal_stop();
++    $server->command("SMSG $target $line");
++
++  }
++
++}
++
++Irssi::signal_add_first("send text", "sig_sendtext");
++Irssi::settings_add_bool("silc", "sign_messages", 0);