+Tue Mar 20 15:45:14 EET 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
+
+ * Added new notify type SILC_NOTIFY_TYPE_UMODE_CHANGE that is
+ used by routers as broadcast packet to inform other routers
+ about the changed user mode.
+
+ Implemented the notify handling in the server. Affected file is
+ silcd/packet_receive.c. Added the function
+ silc_server_send_notify_umode to the silcd/packet_send.[ch].
+
+ * Added new generic Channel Payload and deprecated the New Channel
+ Payload. The New Channel Payload is now the generic Channel
+ Payload.
+
+ * Added new argument `mode' to the silc_server_send_new_channel
+ as it is required in the Channel Payload now.
+
+ * Renamed the SilcChannelPayload to SilcChannelMessagePayload
+ and created a new and real SilChannelPayload to represent the
+ new generic Channel Payload. Implemented the encode/decode
+ for Channel Payload. Affected file lib/silccore/silcchannel.[ch].
+
+ * Added silc_server_get_client_channel_list to return the list
+ of channels the client has joined for WHOIS command reply.
+ Affected file silcd/server.[ch].
+
+ * Implemented the channel list sending in the WHOIS command reply
+ in server and in the client.
+
+ Implemented the channel list displaying on the user interface
+ as well. Affected file silc/client_ops.c.
+
+ * Added silc_channel_payload_parse_list to parse list of Channel
+ Payloads. It returns SilcDList list of SilcChannelPayloads.
+ Client for example can use this function to parse the list of
+ channels it receives in the WHOIS command reply. The caller
+ must free the list by calling silc_channel_payload_list_free.
+ Affected files lib/silccore/silcchannel.[ch].
+
+Mon Mar 19 21:39:15 EET 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
+
+ * Added one new argument <user mode> to the WHOIS command reply
+ to return the mode of the user in SILC. Updated the protocol
+ specs.
+
+ Implemented it to the server and client.
+
+Mon Mar 19 18:43:06 EET 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
+
+ * Fixed the mode printing on the user interface on joining.
+ Affected file silc/client_ops.c.
+
+ * Implemented the UMODE command and user modes in general to the
+ client library and to the user interface.
+
+ * Implemented the UMODE command to the server.
+
+ * The server now sends UNKNOWN_COMMAND error status if client sends
+ unknown command. Affected file silcd/command.c.
+
+ * All server commands now handle the command identifier the right
+ way when sending the command reply to the client. The client can
+ use to identify the command replies with the identifier.
+
+Mon Mar 19 16:13:07 EET 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
+
+ * Added silc_server_get_client_route to resolve the route to
+ the client indicated by the client ID. Affected file is
+ silcd/server.[ch].
+
+ * Added silc_server_relay_packet as general function to relay
+ packet to arbitrary destination. This deprecates functions
+ like _send_private_message_key, _relay_notify etc. Affected
+ file is silcd/packet_send.[ch].
+
+ Removed silc_server_send_key_agreement,
+ silc_server_send_private_message_key and
+ silc_server_packet_relay_notify functions from the file
+ silcd/packet_send.[ch].
+
+ * Updated TODO.
+
+ * Implemented the SILC_NOTIFY_TYPE_KILLED notify handling in the
+ server. Affected file silcd/packet_receive.[ch].
+
+ * Implemented the KILL command to the client. Implemented the
+ SILC_NOTIFY_TYPE_KILLED notify handling in the client library.
+ Affected files lib/silcclient/command[_reply].c and
+ lib/silcclient/client_notify.c. Implemented the KILL notify
+ printing in the user inteface.
+
+ * Fixed a lot silc_parse_nick memory leaks from the client
+ library in the file lib/silcclient/command.c.
+
+ * Changed the silc_server_send_notify_on_channels's `sender'
+ argument from SilcSocketConnection to SilcClientEntry to
+ check the sender as entry and not as connection object and not
+ to send to the client provided as argument. The affected file
+ is silcd/packet_send.[ch].
+
+ * The notify packets that are destined directly to the client used
+ to not to be processed by the server. Now changed that and the
+ server processes all notify packets. After relaying the packet
+ to the client the notify packet is processed in the server.
+
+ * The silc_server_free_client_data now checks whether there is
+ pending outgoing traffic for the client and purges the data to
+ the network before removing the client entry.
+
+Sun Mar 18 21:02:47 EET 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
+
+ * Added SILC_NOTIFY_TYPE_KILLED notify type. It is sent when
+ an client is killed from the SILC Network. Updated the protocol
+ specs accordingly.
+
+ Added new function silc_server_send_notify_killed to the
+ silcd/packet_send.[ch].
+
+ * Added function silc_server_packet_relay_notify to relay notify
+ packets that are destined directly to a client. In this case
+ the server does not process the notify packets but merely relays
+ it to the client. Affected file silcd/packet_send.[ch].
+
+ Added also silc_server_packet_process_relay_notify to check
+ whereto relay the notify. Affected file is
+ silcd/packet_receive.[ch].
+
+ * Implemented the KILL command to the server.
+
+ * Updated TODO.
+
+ * Added the backup schema desgined last fall to the protocol
+ specs for everyone to see. The specification is in the
+ *-spec-xx.txt draft and the packet type definitions for the
+ backup routers is in *-pp-xx.txt draft. Thusly, added also
+ new packet type SILC_PACKET_CELL_ROUTERS.
+
+ * A big security problem in the implementation discovered. The
+ signoff of an client did not cause new channel key generation
+ which it of course should've done. The channel keys must be
+ always re-generated when client leaves (or signoffs) the channel.
+ The silc_server_remove_from_channels funtion now handles
+ the channel key re-generation.
+
+ * Added `sender' argument to the silc_server_send_notify_on_channels
+ to not to send the client provided as argument. Affected file
+ silcd/packet_send.[ch].
+
+Fri Mar 16 15:52:49 EET 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
+
+ * Implemented OPER and SILCOPER commands into the server and
+ the client library.
+
+ * Added silc_auth_verify and silc_auth_verify_data to verify
+ the authentication directly from the authentication payload.
+ It supports verifying both passphrase and public key based
+ authentication. Affected file lib/silccore/silcauth.[ch].
+
+ * Added `hash' field to the SilcIDListData structure. It is the
+ hash negotiated in the SKE protocol. Affected file is
+ silcd/idlist.[ch].
+
+ * Slight redesigning of the SilcAuthPayload handling routines.
+ Do not send SilcPKCS but SilcPublicKey as argument.
+
+ * Implemented the public key authentication support to the
+ serverconfig. The public key is loaded fromthe provided path
+ and saved as authentication data to void * pointer. Thus,
+ changed the unsigned char *auth_data to void *auth_data;
+
+ * Fixed SHUTDOWN command to send the reply before the server
+ is shutdown. :) Affected file silcd/command.c.
+
+ * Fixed fatal bug in CONNECT command. The hostname was invalid
+ memory and server crashed. Affected file silcd/command.c.
+
+ * Fixed fatal bug in CLOSE command. The server_entry became
+ invalid but was referenced later in the command. Affected file
+ silcd/command.c.
+
+Thu Mar 15 12:46:58 EET 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
+
+ * Fixed fatal bug in failure packet handling. Server ignored
+ the failure and thus crashed when it came.
+
+ * Updated TODO.
+
+Wed Mar 14 20:37:35 EET 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
+
+ * Added new SILC_CF_LAG_STRICT command flag that strictly forces
+ that the command may be executed only once in (about) 2 seconds.
+ The old SILC_CF_LAG flag is same but allows command bursts up
+ to five before limiting.
+
+ Added the support for CF_LAG and CF_LAG_STRICT flags to the
+ server code. Various commands now includes the CF_LAG_STRICT
+ flag to disallow any kind of miss-use of the command.
+
+ * Fixed the silc_buffer_unformat to not to allocate any data
+ if the length of the data is zero. It used to allocate the
+ length + 1. Affected file lib/silcutil/silcbuffmt.c.
+
+Wed Mar 14 16:10:30 EET 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
+
+ * Changed the format of AdminConnection configuration section
+ in the server. Added username of the admin to the format.
+ Affected files silcd/serverconfig.[ch].
+
+ Added silc_server_config_find_admin into silcd/serverconfig.[ch]
+ to return admin configuration data by host, username and/or
+ nickname.
+
+Wed Mar 14 13:18:16 EET 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
+
+ * Implemented WHOWAS command to the server. Added the functions:
+
+ silc_server_command_whowas_parse,
+ silc_server_command_whowas_send_reply,
+ silc_server_command_whowas_from_client and
+ silc_server_command_whowas_from_server
+
+ * Added <Client ID> argument to the WHOWAS command reply. Updated
+ the protocol specs accordingly.
+
+ * Implemented WHOWAS command and command_reply to the client
+ library.
+
+ Implemented the WHOWAS printing on the user interface.
+
+Tue Mar 13 22:17:34 EET 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
+
+ * Added new argument to the WHOWAS command reply, the real name.
+ It is an optional argument. Updated the protocol specs.
+
+ * Added SilcIDCacheDestructor callback that is registered when
+ the SilcIDCache is allocated. The callback is called when
+ an cache entry in the ID Cache expires, or is purged from the
+ cache. Added into lib/silccore/idcache.[ch].
+
+ Added silc_idlist_client_destructor to the silcd/idlist.[ch]
+ to destruct the client entries when the cache entry expires.
+ Other ID Cache's in server and in the client library ignores
+ the destructor.
+
+ * If the ID Cache entry's `expire' field is zero then the entry
+ never expires. Added boolean `expire' argument to the
+ silc_idcache_add function in the lib/silccore/idcache.[ch].
+ If it is TRUE the default expiry value is used.
+
+ * Added silc_server_free_client_data_timeout that is registered
+ when client disconnects. By default for 5 minutes we preserve
+ the client entry for history - for WHOWAS command.
+
+Tue Mar 13 13:26:18 EET 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
+
+ * Added support to the server to enforce that commands are not
+ executed more than once in 2 seconds. If server receives
+ commands from client more frequently, timeout is registered
+ to process the commands. Affected file silcd/command.c.
+ Added new function silc_server_command_process_timeout.
+
+ * Changed NICK_NOTIFY handling in client library to check that
+ if the client's nickname was changed, so there is no need to
+ resolve anything from the server.
+
+ * Removed error printing from the WHOIS and IDENTIFY commands.
+ If error occurs then it is ignored silently in the client library.
+ The application, however, may map the received error to
+ human readable error string. The application currently maps
+ the NO_SUCH_NICKNAME error to string.
+
+ * Made the command status message public to the application. Moved
+ them from lib/silcclient/command_reply.c to
+ lib/silcclient/command_reply.h. The application can map the
+ received command status to the string with the
+ silc_client_command_status_message function.
+
+ * Added check to the server to check that client's ID is same
+ as the Source ID in the packet the client sent. They must
+ match.
+
+Tue Mar 13 12:49:21 EET 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
+
+ * Added dist-bzip hook to the Makefile.am to make bzip2
+ compressed distributions.
+
Mon Mar 12 18:43:38 EET 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
* Server now enforces the maximum length for the nickname and