updates.
[silc.git] / CHANGES
diff --git a/CHANGES b/CHANGES
index 3a53dc287d1e4050f5ae486e60e33e6d01457396..bd94e497d9d66c2493ba3ce56f23e0364bfcab57 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -1,3 +1,948 @@
+Wed May 15 19:01:42 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
+
+       * Merged with Irssi CVS for Irssi SILC client.
+
+Tue May 14 19:37:48 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
+
+       * Completed the protocol specifications.
+
+Tue May  7 20:41:58 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
+
+       * Merged with Irssi CVS for Irssi SILC client.
+
+Tue May  7 11:07:16 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
+
+       * Added the founder's public key delivery to the
+         CUMODE_CHANGE notify type as well.  Updated the protocol
+         specs and the code.  Affected files are silcd/packet_send.[ch],
+         silcd/packet_receive.c and silcd/command.c.
+
+Mon May  6 19:46:12 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
+
+       * Added silc_pkcs_public_key_copy function into the
+         lib/silccrypt/silcpkcs.[ch].
+
+       * Remove the `iv' from the SilcChannelEntry since we can
+         live without it.  Affected files are silcd/idlist.h and
+         silcd/packet_receive.c.
+
+       * Added support for sending the founder's public key in
+         the CMODE_CHANGE notify packet in the server.  Affected
+         files are silcd/packet_send.[ch], silcd/packet_receive.c,
+         silcd/command.c and silcd/server.c.
+
+       * Changed the FOUNDER_AUTH authentication to use only
+         public key authentication as defined by new protocol
+         specs.  Passphrase authentication with that mode cannot
+         be used anymore.  It is now possible to reclaim founder
+         mode from any server in the network.  Affected files are
+         silcd/command.c, silcd/idlist.h and silcd/command_reply.c.
+
+       * Added permanent channels support by making the channel
+         permanent when FOUNDER_AUTH mode is set on the channel.
+         The channel will not be destroyed even if channel is empty
+         when that mode is set.  Protocol TODO #17.  Affected
+         files are silcd/server.[ch], server_util.[ch],
+         silcd/command.c, silcd/packet_receive.c and
+         lib/silcclient/command.c. 
+
+Fri May  3 18:36:51 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
+
+       * Added reference counter to the command reply context in
+         the client library.  Affected files are
+         lib/silcclient/command_reply.[ch].
+
+Fri May  3 11:37:10 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
+
+       * Fixed rekey protocol with PFS in the client library.
+         Affected file is lib/silcclient/protocol.c.
+
+       * Added support for list of errors in client library
+         command reply handling.  Affected file is
+         lib/silcclient/command_reply.c.
+
+       * Defined that the WHOIS and IDENTIFY commands can send
+         list of errors.  Updated the protocol specs.  Protocol
+         TODO #2.
+
+       * Added support for sending list of errors to WHOIS and
+         IDENTIFY commands in server.  Added support for receiving
+         list of errors in server.  Affected files are
+         silcd/command.c and silcd/command_reply.c.
+
+       * Fixed client info resolving on LEAVE command in client
+         library to not crash.  Affected file is 
+         lib/silcclient/client_notify.c.
+
+Thu May  2 08:45:11 CEST 2002 Pekka Riikonen <priikone@silcnet.org>
+
+       * Defined that the NICK command replies with thew changed
+         nickname too, to make the nickname changing simpler at
+         the client's end.  Updated protocol specs and the code
+         in client and server.  Affected files are
+         silcd/command.c, lib/silcclient/command_reply.c and
+         lib/silcclient/command.c.
+
+Mon Apr 29 20:10:42 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
+
+       * Added `Compressed' packet flag to indicate that the packet
+         payload is compressed by the sender.  Updated the protocol
+         specs and the core library.  The compression still is not
+         implemented in the sources.  Affected file is
+         lib/silccore/silcpacket.h.
+
+Mon Apr 29 09:48:12 CEST 2002  Pekka Riikonen <priikone@silcnet.org>
+
+       * Remove pending command callbacks also if the connection
+         to the server is destroyed.  Affected file is
+         lib/silcclient/client.c.
+
+Sat Apr 27 19:52:32 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
+
+       * Added new QUIET channel user mode that can be used to
+         quiet a user in a channel.  Updated the protocol specs but
+         it wasn't implemented yet.  Protocol TODO #27.  Affected
+         file is lib/silccore/silcmode.h.
+
+Mon Apr 22 09:09:44 CEST 2002  Pekka Riikonen <priikone@silcnet.org>
+
+       * Added BLOCK_INVITE user mode to be able to block incoming
+         invite notifications.  Protoocol TODO #26.  Affected files
+         are lib/silccore/silcmode.h, lib/silcclient/command.c and
+         silcd/command.c.
+
+       * SILC Publickey fields MUST be UTF-8 encoded now.  Updated
+         the protocol specs and the code.  Affected file is
+         lib/silccrypt/silcpkcs.c.
+
+Sun Apr 21 19:44:38 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
+
+       * Disconnect Payload includes now the status type.  Updated
+         the protocol specs and the code.  Protocol TODO #25.
+         Affected files are silcd/server.c, lib/silcclient/client.c.
+
+       * Added NOT_AUTHENTICATED, BAD_SERVER_ID, INCOMPLETE_INFORMATION,
+         KEY_EXCHANGE_FAILED and BAD_VERSION error status types.
+         Moved the silc_client_command_status_messages table to the
+         lib/silcutil/silcutil.c and added new funtion
+         silc_get_status_message, which deprecates function
+         silc_client_status_message.  Affected files are 
+         lib/silccore/silcstatus.h, lib/silcclient/command_reply.[ch],
+         lib/silcutil/silcutil.[ch].
+
+Fri Apr 19 17:35:15 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
+
+       * Defined that the nickname hash in Client ID MUST be from
+         lowercase nickname.  This effectively changes nicknames in
+         SILC to case-insensitive.  Updated the protocol specs and
+          the code.  Affected files are lib/silcutil/silcutil.[ch],
+          silcd/serverid.c, and silcd/idlist.c.
+
+       * Added new channel user modes BLOCK_MESSAGES_USERS and
+         BLOCK_MESSAGES_ROBOTS.  Updated the protocol specs and the
+         code.  Affected files are lib/silccore/silcmode.h,
+         lib/silcclient/command.c, and silcd/packet_send.c.
+
+       * Added new error status ERR_RESOURCE_LIMIT.  Updated protocol
+         specs and code.  Affected file lib/silccore/silcstatus.h.
+
+       * Added support for watch list.  It is possible to add nicknames
+         to be watched, and when they come to network, leave network
+         or user mode changes the watcher will be notified of this
+         change.  Added SILC_COMMAND_WATCH command, added new
+         notify type SILC_NOTIFY_TYPE_WATCH to deliver the watch
+         notifications.  Updated the protocol specs and implemented
+         this to library, client and server.  Protocol TODO #21.
+         Affected files are lib/silccore/silccomand.h,
+         lib/silccore/silcnotify.h, lib/silcclient/command[_reply].[ch],
+         silcd/command[_reply].[ch], lib/silcclient/client_notify.c,
+         silcd/packet_send.[ch], silcd/packet_receive.c, and
+         irssi/src/silc/core/client_ops.c.
+
+       * Added user mode SILC_UMODE_REJECT_WATCHING to reject
+         somebody watching you.  Updated the protocol specs and the
+         code.  Affected files are lib/silccore/silcmode.h, and
+         lib/silcclient/command.c.
+
+Fri Apr 19 09:02:20 CEST 2002  Pekka Riikonen <priikone@silcnet.org>
+
+       * Added service support to SILC protocol.  Added new command
+          SILC_COMMAND_SERVICE.  Updated the protocol specs and the
+          core library.  Services are not implemented in server or
+          client for now.  Protocol TODO #20.  Affected files are
+          lib/silccore/silcstatus.h, lib/silccore/silccommand.h.
+
+       * Added SilcStatus argument to `command' client operation
+         to return the error status when command sending fails
+         locally.  Changed all command in client library to return
+         correct command status.  Affected files are
+         lib/silcclient/command.c, lib/silcclient/silcclient.h and
+         irssi/src/silc/core/client_ops.c.
+
+Thu Apr 18 14:09:51 CEST 2002  Pekka Riikonen <priikone@silcnet.org>
+
+       * Added silc_mime_parse function to parse MIME headers.
+         Affected files are lib/silcutil/silcstruti.[ch].
+
+       * Added MIME header parsing in Irssi SILC Client.  It displays
+         all textual MIME objects, others it ignores.  Affected file
+         is irssi/src/silc/core/clien_ops.c.
+
+Wed Apr 17 22:07:59 CEST 2002  Johnny Mnemonic <johnny@themnemonic.org>
+
+       * Fixed a bug in the pid writing function, which couldn't be
+         written in a root-owned directory.
+
+Tue Apr 16 09:34:40 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
+
+       * Defined that channel message to unknown Channel ID must
+         cause SILC_NOTIFY_TYPE_ERROR notify message to the sender.
+         Updated the protocol specs and the code in server.  The
+         affected file is silcd/packet_receive.c.
+
+Mon Apr 15 19:57:57 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
+
+       * Added new notify type SILC_NOTIFY_TYPE_ERROR and specified
+         that it is used to send error notifys if error occurs during
+         some SILC packet processing, except commands.  The error
+         types are same as for command reply types.  Defined that
+         if private message is sent to unknown Client ID the error
+         is sent in SILC_NOTIFY_TYPE_ERROR instead of command reply.
+         Updated the protocol specs and code.  Affected files are
+         lib/silccore/silcnotify.h, added lib/silccore/silcstatus.h,
+         lib/silcclient/client_notify.c, silcd/packet_receive.c,
+         and irssi/src/silc/core/client_ops.c.  Renamed the
+          SilcCommandStatus to SilcStatus.
+
+       * Defined the use of extra WHOIS attributes in WHOIS command.
+         The <Requested Attributes> (defined in a separate document)
+         can be used to request additional information about user 
+         not returned by standard WHOIS command.  Defined that server
+         can send WHOIS command directly to client.  Client provides
+         the requested attributes to the server.  Updated the protocol
+         specs.  Protocol TODO #4.  Implementation is not done yet
+          (Protocol TODO #24).
+
+       * Renamed function silc_client_command_status_message to        
+         silc_client_status_message.  Affected files are
+         lib/silcclient/command_reply.[ch].
+
+Sun Apr 14 21:13:42 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
+
+       * Changed the WHOIS, IDENTIFY and WHOWAS count arguments to
+         32 bit integers.  Updated the protcol specs and the code.
+         Affected files are silcd/command.c and
+         lib/silcclient/command.c.
+
+Sun Apr 14 19:49:02 CEST 2002  Johnny Mnemonic <johnny@themnemonic.org>
+
+       * Fixed a bug in library where sending a bogus authentication
+         payload would lead to a crash.  Affected file is
+         lib/silccore/silcauth.c.
+
+Sat Apr 13 13:09:24 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
+
+       * Added detach_disabled and detach_timeout server config
+         options to the server.  Affected files silcd/serverconfig.[ch],
+         silcd/command.c and silcd/packet_receive.c.
+
+Fri Apr 12 20:09:08 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
+
+       * Added resolve_cmd_ident field to the SilcClientEntry structure
+         too so that if the entry is for example being resolved so 
+         another command may attach to the same pending command reply
+         without requiring to resolve the same entry again.  Added
+          support for adding multiple pending commands for one
+         command idenfier.  Affected files lib/silcclient/command.[ch],
+         lib/silcclient/command_reply.[ch], lib/silcclient/idlist.h.
+
+Fri Apr 12 10:17:51 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
+
+       * Defined that server receives WHOIS command reply for private
+         and secret channels too.  Updated protocol specs and the
+         code in server.  Affected file silcd/command.c.
+
+       * Defined <channel user mode list> argument to WHOIS command
+         reply for returning user modes on the channels.  The
+         channel list now doesn't include the user mode anymore but the
+         actual channel mode.  Updated protocol specs and the code in
+         client and server.  Affected files are silcd/command_reply.c,
+         silcd/command.c, silcd/server.c, irssi/src/silc/core/client_ops.c,
+         and lib/silcclient/command_reply.c.
+
+       * Save the channels list in WHOIS command reply in normal server
+         so that WHOIS always shows joined channels also in normal
+         server and not just on router.  Affected file is
+         silcd/command_reply.c.
+
+Thu Apr 11 22:29:33 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
+
+       * Defined that server receives USERS command reply for private
+         and secret channels too.  Updated protocol specs and the
+         code in server.  Affected file silcd/command.c.
+
+Thu Apr 11 16:32:08 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
+
+       * Changed the UMODE's mode mask argument to be optional.  If
+         not provided then the command merely returns the current mode
+         mask to the client.  Updated protocol specs and the server.
+         Affected file is silcd/command.c.
+
+       * Added SILC session detachment/resuming support.  It is possible
+         to detach by closing the network connection and then re-connect
+         and resume to the old client session.  Added DETACHED user
+         mode that server will set for detached client.  Added new
+         packet RESUME_CLIENT which is used to perform the resuming
+         process.  Added DETACH command.  Updated the protocol specs,
+         core library, client and server.  Protocol TODO #22.  Very
+         many affected files around the tree.
+
+Wed Apr 10 16:32:01 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
+
+       * Changed the CMODE's mode mask argument to be optional.  If
+         not provided then the command merely returns the current mode
+         mask to the client.  Updated protocol specs and the server.
+         Affected file is silcd/command.c.
+
+       * Changed the Killer's Client ID in KILLED notify to be just
+         any ID payload since router server is allowed to kill as well.
+         Updated protocol specs, client libary and server.  Affected
+         files are lib/silcclient/client_notify.c, silcd/packet_receive.c,
+         and irssi/src/silc/core/client_ops.c.
+
+Tue Apr  9 17:15:42 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
+
+       * Added new user modes ANONYMOUS for special anonymous servers
+         that may set the mode for client, and BLOCK_PRIVMSG which
+         client may set to block incoming private messages unless the
+         Private Message Key flag is set (using private keys to protect
+         private messages).  Updated protocol specs and code in client
+         and server and core library.  Protocol TODO #23.  Affected
+         files are lib/silccore/silcmode.h, silcd/server.[ch], 
+         irssi/src/silc/core/client_ops.c, silcd/packet_receive.c,
+         irssi/docs/help/in/umode.in, lib/silcclient/command.c.
+
+       * Added new channel user mode BLOCK_MESSAGES which the client
+         may set to itself to tell server not send channel messages.
+         Other packets such as channel key packets are still sent.
+         Protocol TODO #23.  Updated the protocol specs, client and
+         server.  Affected files are lib/silccore/silcmode.h,
+         irssi/docs/help/in/cumode.in, lib/silcclient/command.c,
+         lib/silcutil/silcutil.c, silcd/command.c, and
+         silcd/packet_send.c.
+
+Mon Apr  8 23:57:32 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
+
+       * Redefined the Status Payload to include now two 8 bit fields,
+         instead of one 16 bit field.  This now makes it possible to
+         send list of errors.  Updated the protocol specs and the code
+         in core library, client library and server.  Protocol TODO #1.
+         Affected files are lib/silccore/silccommand.[ch],
+         lib/silcclient/command_reply.[ch], silcd/command.c,
+         silcd/command_reply.c and silcd/packet_receive.[ch].
+
+Mon Apr  8 19:57:40 CEST 2002  Johnny Mnemonic <johnny@themnemonic.org>
+
+       * Added config parse status SILC_CONFIG_EPRINTLINE, this status
+         must be handled by the application and should tell the application
+         that an error message was already printed, and it should print the
+         config coords (line, filename, ...).  Affected files are
+         silcd/serverconfig.c, lib/silcutil/silcconfig.[ch].
+
+       * Added local macro SILC_SERVER_CONFIG_ALLOCTMP to make the
+         server config parsing code more readable.
+
+         Fixed a bug in the fetch_logging() config callback.
+
+         Affected files is silcd/serverconfig.c.
+
+       * Drop root privileges when started in foreground.  Don't drop them
+         if debugging also.  Affected file is silcd/silcd.c.
+
+Mon Apr  8 17:00:41 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
+
+       * Added more IM-like features by introducing new user modes
+         for setting various presence information.  Added new modes:
+         INDISPOSED, BUSY, PAGE, HYPER and ROBOT.  Updated protocol
+          specs and code.  Protocol TODO #19. Affected files are 
+          lib/silccore/silcmode.h, irssi/src/silc/core/client_ops.c,
+         irssi/docs/help/in/umode.in and lib/silcclient/command.c.
+
+Sun Apr  7 17:07:59 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
+
+       * Added STATS command to the protocol after all, to return
+         various statistical information about the network.  It can
+         be used by clients to retrieve statistical information, and
+         servers may use it to to fetch cell and network wide 
+         statistics from router.  Updated the protocol specs and
+         implemented it to the server.  Protocol TODO #16.
+         Affected files are lib/silccore/silccommand, silcd/command.[ch],
+         silcd/command_reply.[ch].
+
+Sat Apr  6 17:08:58 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
+
+       * The LIST command reply in client libary now adds new channel
+         entry if the returned channel doesn't exist yet in cache, 
+         and returns the channel entry to the application in the
+         command_reply client operation.  Affected file is
+         lib/silcclient/command_reply.c.
+
+       * Changed the channel message payload's MAC generation to
+         include the IV in the MAC as well.  This way all relevant
+         parts of the channel message payload are authenticated also
+         with the channel message MAC (and not only by packet MAC).
+         Causes incompatibility with 1.0 protocol.  Protocol TODO #7.
+         Affected file is lib/silccore/silcchannel.c.
+
+       * Fixed the SKE to save the remote version, since the
+         silc_ske_parse_version mistakenly checked wrong version,
+         after it replaced the start payload.  Affected files are
+         lib/silcske/silcske.[ch].
+
+Fri Apr  5 16:03:03 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
+
+       * Splitted lib/silcutil/silcutil.h into silcstrutil.h for
+         string utility functions.  Added there also new functions
+         silc_utf8_[encode/decode/valid] for UTF-8 string encoding.
+         Affected files lib/silcutil/silcstrutil.[ch].
+
+       * Renamed silc_*_pem functions to silc_pem_* functions.  Affected
+         files are lib/silcutil/silcstrutil.[ch].
+
+       * Defined that the security property fields in SKE SHOULD be
+         UTF-8 encoded, defined that version string MUST be US-ASCII
+         encoded, defined that passphrases sent in connection 
+         authentication protocol MUST be UTF-8 encoded.  Implemented
+         these to the client and server.  Defined also that other
+         passphrases sent in the protocol MUST be UTF-8 encoded.
+         Affected files are lib/silcske/silcske.c, 
+         lib/silcclient/protocol.c, silcd/protocol.c, 
+         silcd/serverconfig.c, and lib/silccore/silcauth.c.
+
+       * Changed the silc_client_close_connection interface to not
+         need the SilcSocketConnection which should not be visible
+         to application.  Affected files are lib/silcclient/client.c
+         and lib/silcclient/silcclient.h.
+
+       * Rewrote the text for Private Message Key Payload in the
+         protocol specification.  Protocol TODO #11.
+
+Wed Apr  3 16:24:51 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
+
+       * Upgraded the protocol version to 1.1, updated protocol specs
+         and software.
+
+       * Added the nickname as new argument to NICK_CHANGE notify and
+         added it to protocol specs and implemented it to client and
+         server.  Protocol TODO #3.  Affected files are silcd/idlist.[ch],
+         silcd/command.c, silcd/packet_receive.c, packet_send.[ch], and
+         lib/silcclient/client_notify.c.
+
+       * Added the killer's client ID to the KILLED notify and added
+         it to protocol specs and implemented it to client and server.
+         Protocol TODO #13.  Affected files are silcd/command.c,
+         silcd/packet_receive.c, packet_send.[ch], 
+         lib/silcclient/client_notify.c, irssi/src/silc/core/client_ops.c.
+         The killer's client entry is now returned to application in
+         the `notify' client operation.
+
+       * Fixed the Max Argument fields that had too large value set
+         in the protocol specs.  Protocol TODO #14.
+
+       * Added the LEAVE command reply to return the ID of parted
+         channel.  Updated protocol specs and implemented it to the
+         client and server.  Protocol TODO #15.  Affected files are
+         silcd/command.c, lib/silcclient/command_reply.c.  The channel
+         entry is now returned to application in the `command_reply'
+         client operation.
+
+       * Rewrote the version SKE version checking in client libary
+         and in server to use the silc_parse_version_string.  Affected
+         files are lib/silcclient/protocol.c, silcd/protocol.c.
+
+       * Added SILC_STATUS_ERR_NO_CHANNEL_FOPRIV error status to few
+         commands that was missing it, and updated protocol specs and
+         the server implementation.  Protocol TODO #10.  The affected
+         file is silcd/command.c.
+
+       * Defined new message flags SILC_MESSAGE_FLAG_REPLY to be
+         generic reply to a generic request (REQUEST flag), and
+         SILC_MESSAGE_FLAG_DATA to send any kind of data in a generic
+         way.  A draft-riikonen-silc-flags-payloads-00.txt is written
+         to define the payload for DATA flag.  Added the flags to
+         the implementation.  Protocol TODO #9.  Affected file is
+         lib/silccore/silcchannel.h.
+
+         Changed the client library to return the message length
+         to application as well in the channel_message and private_message
+         client operations.  Affected files are 
+         lib/silcclient/client_prvmsg, lib/silcclient/client_channel.c,
+         lib/silcclient/silcclient.h, irssi/src/silc/core/client_ops.c,
+         and lib/silcclient/client_ops_example.c.
+
+       * Added two new channel modes: SILC_CMODE_SILENCE_USERS
+         and SILC_CMODE_SILENCE_OPERS which can be used to moderate
+         the channel.  Updated protocol specs and impelemented this
+         to client and server.  Protocol TODO #6.  Affected files are
+         silcd/packet_receive.c, server_util.c, lib/silcclient/command.c,
+         lib/silcclient/client_channel.c, lib/silccore/silcmode.h.
+
+         Added new options m and M to CMODE command in Irssi SILC
+         client to set these modes.
+
+       * Deprecated all administrative commands from SILC protocol
+         since they are highly implementation specific commands.
+         Updated protocol specs.  Moved the old commands in 
+         implementations to private range of command types.  Affected
+         files are silcd/command.c, lib/silcclient/command.c and
+         lib/silcclient/command_reply.c.  Protocol TODO #8.
+
+       * Fixed a bug in server where sending unknown command crashes
+         the server.  Affected file silcd/command.c.
+
+Wed Apr  3 09:57:47 CEST 2002  Pekka Riikonen <priikone@silcnet.org>
+
+       * Added SILC_PROTOCOLVERSION macro to check protocol version
+         of a socket connection.  The affected file is 
+         lib/silcutil/silcsockconn.h.
+
+       * Added better error logging in rekey protocol.  Affected file
+         silcd/protocol.c.
+
+       * Do not check public key types in SKE during rekey.  Affected
+         file lib/silcske/payload.c.
+
+       * Fixed the rekey protocol with PFS, which was totally broken.
+         Affected file silcd/protocol.c.
+
+Tue Apr  2 14:55:06 CEST 2002  Pekka Riikonen <priikone@silcnet.org>
+
+       * Some client implementations quit network by doing first LEAVE
+         and then immediately SIGNOFF (like Bombyx).  We now do check 
+         after a short time after LEAVE notify and check whether the 
+         client is still valid after LEAVE, and if not we remove it from 
+         cache.  Affected file is lib/silcclient/client_notify.c.
+
+Tue Apr  2 13:39:04 CEST 2002  Johnny Mnemonic <johnny@themnemonic.org>
+
+       * Merged version 1.1.4 of zlib. Even if it not currently in use,
+         it's good not to have security holes here.
+
+       * Fixed a negative refcount situtuation for the config context.
+         Affected file is silcd/serverconfig.c.
+
+Mon Apr  1 20:15:10 CEST 2002  Johnny Mnemonic <johnny@themnemonic.org>
+
+       * ROBOdoc documented lib/silcutil/silcutil.h.
+
+Sat Mar 30 21:06:45 EET 2002  Pekka Riikonen <priikone@silcnet.org>
+
+       * Optimized even more the SilcPacketContext structure.  Now
+         totally saved 16 bytes of memory per context after optimization.
+         Affected files are lib/silccore/silcpacket.[ch].
+
+       * Made strict checks for valid SILC IDs.  Affected file is
+         lib/silccore/silcid.c.
+
+Sat Mar 30 18:15:55 EET 2002  Pekka Riikonen <priikone@silcnet.org>
+
+       * Changed the object argument for silc_cipher_register,
+         silc_hash_register, silc_hmac_register and silc_pkcs_register
+         to const.  Affected files are lib/silccrypt/silccipher.[ch],
+         silchash.[ch], silchmac.[ch] and silcpkcs.[ch].
+
+       * Changed the silc_get_username and silc_get_real_name to
+         never fail.  Affected file lib/silcutil/unix/silcunixutil.c.
+
+       * Fixed the Irssi SILC Client to use the silc_get_username and
+         silc_get_real_name insted of glib routines since the glib
+         routines only corrupt stack.  Fixes the Irssi SILC to work in
+         Cygwin.  Affected file irssi/src/silc/core/silc-core.c.
+
+       * Fixed the Irssi to not use g_get_home_dir since it crashes
+         or returns garbage on cygwin and corrupts stack.  Added function
+         get_home_dir to Irssi routines.  Affected files are
+         irssi/src/core/misc.[ch] and irssi/src/core/core.c.
+
+Fri Mar 29 21:55:41 EET 2002  Pekka Riikonen <priikone@silcnet.org>
+
+       * Made some structure optimizations.  SFTP memory FS MemFSEntry
+         entry structure.  Optimized SilcTask structure.  Optimized
+         SilcPacketContext structure.
+
+         Affected files lib/silcsftp/sftp_fs_memory.c,
+         lib/silcutil/silcschedule.c, lib/silccore/silcpacket.h.
+
+Fri Mar 29 10:41:07 EET 2002  Pekka Riikonen <priikone@silcnet.org>
+
+       * And yet again reverted back the config thing since Johnny
+         screwed it up.  Affected file silcd/serverconfig.[ch], server.c,
+         and silcd.c.
+
+       * Fixed memory leaks from config object.  Affected files are
+         silcd/serverconfig.[ch].
+
+       * Added support for adding new connections to the server in rehash.
+         After rehash they take effect.
+
+         Added support for changing the maximum allowed connections in
+         rehash.  The number can grow but going smaller is not supported.
+
+         Added function silc_server_num_sockets_by_remote to the
+         silcd/server_util.[ch].
+
+         Affected files are silcd/server.c, and silcd/serverconfig.[ch].
+
+Fri Mar 29 03:26:12 CET 2002 Johnny Mnemonic <johnny@themnemonic.org>
+
+       * Added preliminary checking during config parsing for a valid
+         public/private key and removed further checks in the code.
+         Affected files are silcd/serverconfig.[ch], server.c.
+
+       * Moved functions silc_server_drop() and silc_server_daemonise()
+         from server.c to silcd.c since they are stricly related to
+         the application activity.
+
+       * Reverted a small part of the automatic ref/unref since
+         it caused a double unref in some situations.  Affected
+         files are silcd/silcd.[ch], server.c, serverconfig.c.
+
+       * Added some .cvsignore files in the lib directory.
+
+Thu Mar 28 22:51:15 EET 2002  Pekka Riikonen <priikone@silcnet.org>
+
+       * Fixed silc_net_gethostbyaddr to correctly resolve by
+         address.  Affected file lib/silcutil/silcnet.c.
+
+       * Fixed the notify relaying to client.  The HMAC to be used
+         with relayed packets ws wrong and caused decryption failure
+         at the client end.  Affected file is silcd/packet_receive.c.
+
+Thu Mar 28 19:02:05 EET 2002  Pekka Riikonen <priikone@silcnet.org>
+
+       * Created new branch silc_protocol_1_0_branch.
+
+       * Reverted the silc_log_quick change in lib/silcutil/silclog.c.
+
+       * Changed the silc_server_config_* routines to be SilcServer
+         independent.  They are now officially application specific code
+         and not part of generic server implementation.  Affected files
+         are silcd/serverconfig.[ch], silcd/silcd.c, silcd/server.c.
+
+Thu Mar 28 17:01:43 EET 2002  Pekka Riikonen <priikone@silcnet.org>
+
+       * Added automatic referencing of config context in the
+         silc_server_config_alloc, and automatic unreferencing in the
+         silc_server_config_destroy.  Affected files are
+         silcd/serverconfig.[ch], silcd/silcd.c.
+
+       * Fixed the silc_log_quick handling in the logging routines.
+         It didn't log quickly when it was TRUE.  Affected file is
+         lib/silcutil/silclog.c.  Also the flush delay was set even
+         if it was 0 in config file.  Affected file is 
+         silcd/serverconfig.c.
+
+       * Added support for changing key pair of the server in rehash.
+         Affected file silcd/server.c.
+
+Thu Mar 28 12:17:21 CET 2002  Pekka Riikonen <priikone@silcnet.org>
+
+       * Fixed the TOPIC_SET notify to not cras.  It changed the topic
+         too early, before getting the channel entry.  Affected file
+         is silcd/packet_receive.c.
+
+Thu Mar 28 09:58:16 CET 2002  Johnny Mnemonic <johnny@themnemonic.org>
+
+       * Added functions silc_server_config_[ref/unref], these are used
+         to prevent that the config object is destroyed.
+
+         No longer directly affect global variables silc_log_quick and
+         silc_log_delay, they are first cached inside the config object
+         and then applied with silc_server_config_setlogfiles().
+
+         silc_server_config_set_defaults() is now internal to
+         serverconfig.c, there are no reasons to show this internal stuff
+         to the server.
+
+         Affected files are silcd/serverconfig.[ch].
+
+       * Added macro SILC_SERVER_LOG_STDERR(), this should replace most
+         fprintf's to stderr, since some code may be executed again after
+         the server went into the background.  Affected files are
+         silcd/server.[ch].
+
+       * Added rehash support. Added function silc_server_rehash() that
+         will perform all the basic tasks of the rehashing procedure.
+
+       * Added command line option `-x, --hexdump'. This will enable the
+         SILC_LOG_HEXDUMP calls that are no longer enabled with `--debug'.
+         The option `--hexdump' implies `--debug'.
+
+       * Fixed a bad bug in the logging APIs (silcutil library) where
+         the application would crash after calling silc_log_reset_all().
+
+Wed Mar 27 19:43:16 EET 2002  Pekka Riikonen <priikone@silcnet.org>
+
+       * Fixed the KICKED notify handling in client library to
+         correctly remove the channel and all entries from the
+         channel when I was kicked.  This bug crashed the client.
+
+         Fixed yet another but in KICKED notify handling to remove
+         the kicked client correctly from the channel.
+
+         Affected file is lib/silcclient/client_notify.c.
+
+       * Fixed a minor bug in looking up correct client entry
+         in KICKED notify in server.  Affected file is
+         silcd/packet_receive.c.
+
+       * Fixed the lib/silcmath/Makefile.am to include the MPI and GMP
+         sources correctly to distribution.  Fixes --with-gmp option.
+
+       * Removed the manual rehashing from ID Cache, and changed it
+         to use the SILC Hash Table's auto rehash feature.  Affected
+         file is lib/silccore/silcidcache.c.
+
+Wed Mar 27 00:07:11 EET 2002  Pekka Riikonen <priikone@silcnet.org>
+
+       * Fixed a bug in the silc_client_nickname_format function that
+         handles the multiple same nickname formatting.  Two clients
+         with same nickname caused problems after the first one left
+         and rejoined.  It didn't format the nickname correctly.
+         Affected file is lib/silcclient/idlist.c.
+
+Tue Mar 26 19:33:03 CET 2002  Pekka Riikonen <priikone@silcnet.org>
+
+       * Don't change the topic if olod topic is same as new one.
+         Affected file is silcd/packet_receive.c.
+
+Mon Mar 25 21:11:35 EET 2002  Pekka Riikonen <priikone@silcnet.org>
+
+       * Added cross-reference support to the SILC Documentation
+         generator.  All types across all HTML files are now cross-
+         referenced.  Affected files util/robodoc/generator.c and
+         scripts/silcdoc/silcdoc.
+
+       * Added file lib/silcutil/silctypes.h to include all the
+         arithmetic type definitions and some macros.  Removed
+         includes/bitmove.h and moved macros to silctypes.h.
+
+Mon Mar 25 17:19:46 EET 2002  Pekka Riikonen <priikone@silcnet.org>
+
+       * Merged bugfixes for Irssi SILC client from irssi.org CVS.
+
+Sun Mar 24 11:21:04 EET 2002  Pekka Riikonen <priikone@silcnet.org>
+
+       * Added `type' argument to silc_id_payload_parse_id function which
+         now returns the type of the ID to the sent pointer.  Affected
+         file is lib/silccore/silcid.[ch].
+
+       * Added check for CMODE_CHANGE notify type that mode change is
+         allowed by the sender.  Affected file silcd/packet_receive.c.
+
+       * Added check for CUMODE_CHANGE notify type that mode change is
+         allowed by the sender.  Affected file silcd/packet_receive.c.
+         Added the ID type as CUMODE_CHANGE notify type as argument
+         to the `notify' client operation.  Affected files are
+         lib/silcclient/client_notify.c, irssi/src/silc/core/client_ops.c.
+
+       * Added function silc_client_add_server to the client library.
+         Added support for resolving also channel and server info when
+         received unknown entity in notify packet.  Affected files are
+         lib/silcclient/idlist.[ch], lib/silcclient/client_notify.c.
+
+       * Added function silc_command_get_status to return the command
+         status from the command reply's argument payload.  Affected files
+         are lib/silccore/silccommand.[ch].
+
+       * Added check for KICKED notify type that the kicking is
+         allowed by the client.  Affected file silcd/packet_receive.c.
+
+       * Created function silc_get_input which can be used to get input
+         (echo on or off) from user on command line.  Affected files are
+         lib/silcutil/silcutil.[ch].
+
+Sat Mar 23 09:51:26 EET 2002  Pekka Riikonen <priikone@silcnet.org>
+
+       * Optimized silc_server_packet_relay_to_channel function.
+         Added new function silc_channel_message_payload_encrypt which
+         can be called directly if channel message payload needs to
+         be encrypted and is already encoded (no need to call _encode
+         function).  Packet relaying is now done by router without any
+         extra memory allocations.  Affected files are
+         lib/silccore/silcchanel.[ch], silcd/packet_receive.c and
+         silcd/packet_send.c.
+
+       * Fixed the INVITE notify handling.  It took wrong arguments
+         as invite list and invite delete.  Affected file is
+         silcd/packet_receive.c.
+
+       * Added check for TOPIC_SET notify type that the topic change is
+         allowed by the client.  Affected file silcd/packet_receive.c.
+
+       * Added check for INVITE notify type that inviting is allowed by
+         the client.  Affected file silcd/packet_receive.c.
+
+       * Changed the silc_server_client_on_channel to return the
+         SilcChannelClientEntry as well.  Moved the function
+         silc_server_check_cmode_rights to server_util.[ch].
+         Affected files are silcd/server_util.[ch], silcd/command.c.
+
+       * Added function silc_server_check_umode_rights to check whether
+         changing client's user mode is allowed.  Added check for
+         UMODE_CHANGE notify type that the umode change is allowed
+         by the client.  Affected files are silcd/server_util.[ch],
+         silcd/packet_receive.c and silcd/command.c.
+
+Fri Mar 22 12:25:58 CET 2002  Pekka Riikonen <priikone@silcnet.org>
+
+       * Fixed the SILC_PACKET_MAX_ID_LEN to actually be the max
+         ID length.  It ignored that ID can be IPv6 based as well.
+         Affected file lib/silccore/silcpacket.h.
+
+       * Fixed the silc_id_id2str and silc_id_str2id to take the
+         IPv6 address offset's into consideration.  Affecte file is
+         lib/silccore/silcid.c.
+
+Thu Mar 21 20:44:13 EET 2002  Pekka Riikonen <priikone@silcnet.org>
+
+       * Fixed the internal Unix scheduler functions to check for
+         NULL context they may receive.  The affected file is
+         lib/silcutil/unix/silcunixschedule.c.
+
+Thu Mar 21 19:12:22 EET 2002  Timo Sirainen <tss@iki.fi>
+
+       * Changed hardcoded ~/.silc paths to use get_irssi_dir() so you
+          can specify different directory with --home command line
+         parameter. Affected files irssi/src/silc/core/client_ops.c,
+          clientutil.c
+
+        * SILC-specific commands aren't now executed if the active server
+          isn't of SILC-type, so there won't be problems with having
+          IRC and SILC protocol support in same client. Affected files
+          irssi/src/silc/core/silc-channels.c, silc-servers.c,
+         silc-commands.h
+
+Wed Mar 20 11:06:57 CET 2002  Pekka Riikonen <priikone@silcnet.org>
+
+       * Improved the signal support in SILC Schedule.  Added new
+         function silc_schedule_signal_call which is used by application
+         to mark a signal to be called.  It is now safe to perform
+         any kind of tasks in signal callbacks since it is guaranteed
+         that the application specified signal callback is called
+         after the signal is over.  Affected files are
+         lib/silcutil/silcschedule.[ch], lib/silcutil/*/silc*schedule.c.
+
+Tue Mar 19 20:42:41 EET 2002  Pekka Riikonen <priikone@silcnet.org>
+
+       * Added `name' field to SilcChannelPrivateKey to represent
+         application given name for the key.  Moved also the context from
+         lib/silcclient/idlist.h into lib/silcclient/silcclient.h.
+         Added the `name' argument also to the function
+         silc_client_add_channel_private_key.
+
+         Added function silc_client_current_channel_private_key to set the
+         current channel private key in use.
+
+         Added "change" command to KEY command which can be used to change
+         the current channel private key.  Bound the command also to
+         alt+K (Alt+Shift+k).
+
+         Also affected files lib/silcclient/client_channel.c,
+         irssi/src/docs/help/in/key.in, irssi/src/silc/core/silc-channel.c.
+
+Tue Mar 19 16:32:43 CET 2002  Pekka Riikonen <priikone@silcnet.org>
+
+       * Added silc_rng_get_byte_fast function in to the
+         lib/silccrypt/silcrng.[ch].
+
+       * Changed the interface of silc_packet_assemble and the
+         silc_packet_send_prepare.  If silc_packet_assmble is now
+         called the application does not call silc_packet_send_prepare
+         because the library will call it automatically.  These
+         interfaces now also return a reference to the outgoing buffer
+         which includes the assembled packet, which the application can 
+         use to encrypt the packet.
+
+         Affected files are lib/silccore/silcpacket.[ch],
+         lib/silcclient/client.c, client_channel.c client_prvmsg.c,
+         silcd/packet_send.c, server_backup.c and packet_receive.c.
+
+       * Fixed a packet sending bug on very high load, where outgoing
+         packet queue wasn't handled correctly and packets got corrupted.
+         Affected files are lib/silcutil/*/silc*sockconn.c,
+         lib/silcclient/client.c and silcd/server.c.
+
+Mon Mar 18 21:00:41 EET 2002  Pekka Riikonen <priikone@silcnet.org>
+
+       * Added macro SILC_PACKET_DATALEN which can be used during
+         packet assembling to check whether the data to be added to    
+         the packet will fit to SILC_PACKET_MAX_LEN.  If not the data
+         len is truncated until it fits it.
+
+         Added checks for maximum length of channel message payload and
+         private message payload also.
+
+         Added checks for maximum packet length in server and in
+         client library.
+
+         Affected files are lib/silccore/silcpacket.h, silcd/packet_send.c,
+         lib/silcclient/client.c, lib/silccore/silcchannel.c and
+         lib/silccore/silcprivate.c, lib/silcclient/client_channel.c and
+         lib/silcclient/client_prvmsg.c.
+
+Mon Mar 18 14:54:42 CET 2002  Pekka Riikonen <priikone@silcnet.org>
+
+       * Added silc_server_packet_queue_purge call to the
+         silc_server_disconnect_remote to assure that all data in the
+         queue before disconnecting is sent to the network.  Affected
+         file silcd/server.c.
+
+Sun Mar 17 19:26:16 EET 2002  Pekka Riikonen <priikone@silcnet.org>
+
+       * Added the deleting of server's own ID cache entry to the
+         silc_server_free function.  Free also everything else that
+         has been allocated in silc_server_init.  The affected file 
+         is silcd/server.c.
+
+Sun Mar 17 15:44:56 EET 2002  Pekka Riikonen <priikone@silcnet.org>
+
+       * Added functions silc_parse_version_string, silc_version_to_num,
+         and silc_ske_parse_version to parse SILC protocol style version
+         strings.  Affected files lib/silcutil/silcutil.[ch] and
+         lib/silcske/silcske.[ch].
+
+       * Added new configuration params: version_protocol, version_software
+         and version_software_vendor to specify what version the remote
+         host must at least be to be able to connect to server.  The vendor
+         string can be regex matched too.  Added new function 
+         silc_server_connection_allowed to check maximum number of allowed
+         connections, and allowed versions for incoming connections.
+         Affected files are silcd/server.c, server_util.[ch] and
+         serverconfig.[ch].
+
+Sun Mar 17 10:24:50 EET 2002  Pekka Riikonen <priikone@silcnet.org>
+
+       * Added preliminary support for signals in scheduler.  The
+         signals we care about are now blocked always when the scheduler
+         is locked.  This way we can synchronise the use of signal with
+         scheduler.  It is guaranteed that when signal occurs the scheduler
+         is not locked, and thus new tasks can be safely added to the
+         scheduler.
+
+         Renamed silc_schedule_wakeup_init and silc_schedule_wakeup_uninit
+         to silc_schedule_internal_init and silc_schedule_internal_uninit.
+         Added new platform specific routines
+         silc_schedule_internal_signals_[un]block and 
+         silc_schedule_internal_signal_[un]register.
+
+         Added new functions to SILC Schedule API:
+         silc_schedule_signal_[un]register.  Each signal that application
+         is going to use should be registered to the scheduler.
+
+         Affected files are lib/silcutil/silcschedule.[ch],
+         lib/silcutil/*/silc*schedule.c.
+
 Sat Mar 16 22:39:23 EET 2002  Pekka Riikonen <priikone@silcnet.org>
 
        * Check for unauthenticated client and server in the