--- /dev/null
++Sun Nov 19 18:58:26 CET 2006 Jochen Eisinger <coffee@silcnet.org>
++
++ * Import perl script for sign_messages from silc-plugin. Affected
++ file apps/irssi/scripts/silc.pl
++
+Tue Oct 3 21:22:00 CEST 2006 Jochen Eisinger <coffee@silcnet.org>
+
+ * When joining channels with a password given in the config file,
+ use it. Also use it when cycling (it would be better to get
+ the password from the server, but this isn't possible in SILC).
+ Affected files apps/irssi/src/silc/core/silc-servers.c,
+ apps/irssi/src/silc/core/silc-channels.c
+
+Sun Oct 1 20:39:34 CEST 2006 Jochen Eisinger <coffee@silcnet.org>
+
+ * Always return a valid username. Affected file
+ lib/silcutil/unix/silcunixutil.c
+ * Only wait for a nick on connecting, when it differs
+ (not counting case) from the username. Affected file
+ apps/irssi/src/silc/core/client_ops.c
+
+Sun Jul 2 19:12:36 CEST 2006 Jochen Eisinger <coffee@silcnet.org>
+
+ * Make gmake the default for autodist, so I can properly work
+ on otaku. Affected files README.DIST, distdir/autodist.conf
+
+Fri Jan 6 13:08:15 CET 2006 Jochen Eisinger <coffee@silcnet.org>
+
+ * Fixed more autodist issues. Affected file doc/Makefile.ad,
+ apps/irssi/src/perl/Makefile.am, distdir/post-process-dist.
+
+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!
+
+Wed Dec 14 19:21:42 CET 2005 Jochen Eisinger <coffee@silcnet.org>
+
+ * Fixed autodist configuration for silc-client. Affected file
+ configure.ad
+ * Honor user set hostname. Also give the user a chance to
+ read the error message. Affected file
+ apps/irssi/src/silc/core/silc-core.c
+
+Tue Nov 29 07:52:11 CET 2005 Patrik Weiskircher <pat@icore.at>
+
+ * Fixed compile error on non-i386. Affected file
+ lib/silccrypt/sha256.c.
+
+Mon Nov 21 19:18:15 EET 2005 Pekka Riikonen <priikone@silcnet.org>
+
+ * Added SILC_ATTRIBUTE_USER_ICON to lib/silccore/silcattrs.[ch].
+
+Sun Nov 20 19:13:35 EET 2005 Pekka Riikonen <priikone@silcnet.org>
+
+ * Removed callback system from SilcMimeAssembler. Return
+ the multipart type in silc_mime_get_multiparts. Affected
+ files are lib/silcutil/silcmime.[ch].
+
+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.
+
+Wed Nov 16 00:36:53 CET 2005 Jochen Eisinger <c0ffee@penguin-breeder.org>
+
+ * fixed wrong return code in term_init. Affected file
+ apps/irssi/src/fe-text/terminfo-core.c
+
+Mon Sep 12 18:13:38 CEST 2005 Jochen Eisinger <c0ffee@penguin-breeder.org>
+
+ * and it doesn't return FILE* but a file descriptor. Affected
+ file apps/silcd/silcd.c
+
+Mon Sep 5 18:40:22 CEST 2005 Jochen Eisinger <c0ffee@penguin-breeder.org>
+
+ * mkstemp returns -1 on error, thanks to brad@comstyle.com for
+ pointing this out. Affected file apps/silcd/silcd.c
+
+Fri Sep 2 23:44:37 CEST 2005 Jochen Eisinger <c0ffee@penguin-breeder.org>
+
+ * Fixed the insecure temporary file creation issue now that it's
+ even on bugtraq... Affected file apps/silcd/silcd.c
+
+Wed Aug 24 18:27:48 CEST 2005 Patrik Weiskircher <pat@icore.at>
+
+ * Before creating a channel key we need to remove the private key
+ mode, otherwise no key is created. Affected file
+ apps/silcd/command.c
+
+Fri Aug 19 15:20:05 CEST 2005 Patrik Weiskircher <pat@icore.at>
+
+ * Before checking ip/hostname of SilcSocketConnection, check
+ if its not doing a host lookup currently. Fixes atleast one
+ crash when many people connect at the same time.
+ Affected file apps/silcd/server_util.c.
+
+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 19:55:13 EEST 2005 Pekka Riikonen <priikone@silcnet.org>
+
+ * Check for FD_SETSIZE in silc_select to not go over.
+ Affected file lib/silcutil/unix/silcunixschedule.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.