+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.
+
+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
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