updates.
[silc.git] / CHANGES
diff --git a/CHANGES b/CHANGES
index 23deb39138fc09ad0ee10df7193dbd69af7bc791..01d6bbf5af442e7a4b4545cbdd860b08c39a57a3 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -1,3 +1,911 @@
+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
@@ -5,6 +913,9 @@ Thu Nov 29 22:12:50 EET 2001  Pekka Riikonen <priikone@silcnet.org>'
          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
@@ -12,7 +923,7 @@ Thu Nov 29 19:31:23 EET 2001  Pekka Riikonen <priikone@silcnet.org>'
          file configure.in.pre.
 
        * The silc_thread_create now calls the start function
-         directly if threads support is not compiled in.  Removes
+         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.