+Sat Feb 10 21:13:45 EET 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
+
+ * A big code auditing weekend happening. Auditing code for
+ obvious mistakes, bugs and errors. Also, removing any code
+ that is obsolete.
+
+ Removed files for being obsolete:
+
+ o lib/silcutil/silcbuffer.c (the buffer interface is entirely in
+ inline in the file lib/silcutil/silcbuffer.h)
+
+ o lib/silcutil/silcbufutil.c (the header has inline versions)
+
+ Changed code to fix possible error conditions:
+
+ o The buffer formatting routines now check that the destination
+ buffer really has enough space to add the data. This applies for
+ both buffer formatting and unformatting
+ (lib/silcutil/silcbuffmt.[ch]). Also, the entire buffer
+ unformatting was changed to accomodate following rules:
+ XXX_*STRING_ALLOC will allocate space for the data into the pointer
+ sent to the function while XXX_*STRING will not allocate or copy
+ the data into the buffer. Instead it sets the pointer from the
+ buffer into the pointer sent as argument (XXX_*STRING used to
+ require that the pointer must be allocated already). This change
+ makes this whole thing a bit more consistent and more optimized
+ (note that the data returned in the unformatting with XXX_*STRING
+ must not be freed now). The routines return now -1 on error.
+
+ o Tried to find all code that use buffer_format and buffer_unformat
+ and added return value checking to prevent formatting and
+ especially unformatting errors and possible subsequent fatal
+ errors.
+
+ o Changed ske->x and ske->KEY to mallocated pointers in
+ lib/silcske/silcske.h. Fixed possible data and memory leak.
+
+ o Added return value checking to all *_parse* functions. Fixed
+ many memory leaks as well.
+
+ o Added length argument to silc_id_str2id in lib/silccore/id.[ch]
+ so that buffer overflows would not happen. All code now also
+ checks the return value as it can fail.
+
+Mon Feb 5 20:08:30 EET 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
+
+ * Added reconnection support to server if the normal server looses
+ its connection to the router (for example if router is rebooted).
+ The server performs normal reconnection strategy implemented
+ to the server. Affected file silcd/server.c.
+
+Sun Feb 4 13:18:32 EET 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
+
+ * Added new packet type SILC_PACKET_SET_MODE that is used to
+ distribute the information about changed modes (for clients,
+ channels and clients channel modes) to all routers in the
+ network. Updated the protocol specification accordingly.
+
+ Added functions into silcd/packet_send.c and
+ silcd/packet_receive.c: silc_server_send_set_mode,
+ silc_server_set_mode.
+
+ Added new files silcmode.[ch] into lib/silccore that implements
+ the encoding and decoding of Set Mode Payload. Added new type
+ SilcSetModePayload. Moved the definitions of different modes
+ from lib/silccore/silcchannel.h into lib/silccore/silcmode.h.
+
+Sat Feb 3 15:44:54 EET 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
+
+ * Oops, a little mistake in server's connection authentication
+ protocol. The protocol is not ended with FAILURE but with
+ SUCCESS if the authentication is Ok. :) Affected file is
+ silcd/protocol.c.
+
+ * Implemented NICK_CHANGE notify handling in server in the file
+ silcd/packet_receive.c The NICK_CHANGE notify is distributed to
+ the local clients on the channel. After the changing nickname
+ in router environment snhould work and the [<unknown>] nickname
+ should appear no more.
+
+ The silc_server_replace_id function that receives the Replace ID
+ payload now sends the NICK_CHANGE notify type also in the file
+ silcd/packet_receive.c
+
+ * Changed WHOIS and IDENTIFY command to support the maximum amount
+ of arguments defined in protocol specs (3328 arguments). This
+ fixed a bug that caused problems when there were more than three
+ users on a channel.
+
+Fri Feb 2 11:42:56 EET 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
+
+ * Added extra parameter, command identifier, to the
+ silc_client_send_command so that explicit command identifier
+ can be defined.
+
+ Changed that ID list routines uses specific command identifier
+ when sending WHOIS/IDENTIFY requests to the server so that they
+ can be identified when the reply comes back.
+
+ Affected files lib/silcclient/command.[ch],
+ lib/silcclient/client.c and lib/silcclient/idlist.[ch].
+
+ * Added `sender' argument to silc_server_packet_send_to_channel
+ to indicaet the sender who originally sent the packet to us
+ that we are now re-sending. Ignored if NULL. Affected file
+ silcd/packet_send.[ch].
+
+ * Added some server statistics support in silcd/server_internal.h
+ SilcServerStatistics structure and around the server code. Also
+ send some nice statistics information when client is connecting
+ to the client.
+
+Thu Feb 1 23:31:21 EET 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
+
+ * Fixed channel ID decoding in server's JOIN command reply in
+ silcd/command_reply.c
+
+ * Fixed braodcasting of replace ID payload to not to send it if
+ we are standalone server in silcd/packet_receive.c.
+
+ * Fixed all channel message sending routines to not to send
+ packets to clients that has router set, since they are routed
+ separately in the same function earlier. Affects file
+ silcd/packet_send.c and all channel packet sending functions.
+
+ * In USERS reply, res_argv[i] are not allocated, the table
+ is allocated. Thus changed that free the table, not its
+ internals.
+
+ * In server's whois_check and identify_check if the client is
+ locally connected do not send any WHOIS commands - they are not
+ needed.
+
Thu Feb 1 21:32:27 EET 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
* Fixed some minor bugs in client when sending WHOIS command. The