updates.
[silc.git] / CHANGES
diff --git a/CHANGES b/CHANGES
index d376b6a1564bc46372f3b3f72df880439a6b35cf..e30226af2906bc3268119e4203113b8625767f2a 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -1,4 +1,605 @@
-Thu Mar 29 15:26:25 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
+Tue May  1 14:18:13 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
+
+       * Fixed the silc_verify_public_key client operation function to
+         save the public keys differently.  The fingerprint is now 
+         used as filename and not the hostname.  This way also the
+         client keys are saved uniquely and not with hostnames.  The
+         affected file is silc/client_ops.c.
+
+       * Trimmed the silc_hash_fingerprint function to remove extra
+         whitespaces from the end of the fingerprint.  The affected
+         file is lib/silccrypt/silchash.c.
+
+       * Updated TODO.
+
+       * Added silc_cipher_register_default function to register all
+         default ciphers.  It can be used when configuration files
+         does not exist and the application does not want any specific
+         ciphers in any specific order.
+
+         The SilcDList is now used as silc_cipher_list dynamically
+         allocated cipher list.  Removed the static list all together
+         and now all ciphers must be allocated to the dynamic list.
+         The silc_cipher_alloc routine was changed to check only the
+         dynamic list.
+
+         All silc_cipher_* routines that used to return int returns
+         now bool.
+
+         The affected files lib/silccrypt/silccrypt.[ch].
+
+       * The same thing was done to silc_hash_* as for silc_cipher_*
+         routines.  Affected files lib/silccrypt/silchash.[ch].
+
+       * The same thing was done to silc_pkcs_* as for silc_cipher_*
+         routines.  Affected files lib/silccrypt/silcpkcs.[ch].
+         Added also silc_pkcs_[un]register[_default] functions.
+         Removed the data_context from the PKCS API.
+
+       * Added silc_hmac_register_default function to register default
+         hmacs.  Affected files lib/silccrypt/silchmac.[ch].  Added also
+         SILC_ALL_HMACS macro that can be used with silc_hmac_unregister
+         to unregister all hmacs at once.
+
+       * Register the default ciphers, hash functions, PKCSs and HMACs
+         if client's configuration file does not exist.  The affected
+         file silc/silc.c.
+
+       * The client did not load the hash functions from the SIM
+         modules at all.  Added support for this.  Affected file is
+         silc/clientconfig.c.
+
+       * When decoding public key with silc_pkcs_public_key_decode, check
+         the supported algorithm only if PKCS are registered.  Affected
+         file lib/silccrypt/silcpkcs.c.  The same was done with the
+         silc_pkcs_private_key_decode.
+
+       * Fixed the SILC List routines to keep the list always in order.
+         It used to change the list's order when traversing the list but
+         not it preserves the order.  Affected file lib/trq/silclist.h.
+
+Mon Apr 30 17:29:03 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
+
+       * Added the client library to use the SilcSocketConnection's
+         reference counter (by silc_socket_dup) to prevent the bug that
+         the socket object may be freed underneath async operation.
+
+       * The name resolv library checking fixes in the configure.in.pre.
+         The patch by salo.
+
+       * Created new version of the protocol drafts for future
+         development. The -03 drafts are the ones that will be changed
+         in the trunk now and the -02 will remain as they are.
+
+       * Send list of CUMODE notifys to the router when announcing
+         the channel users to the router.  Affected file silcd/server.c.
+         If the router receiving channel founder CUMODE for a channel
+         that already has channel founder it will send CUMODE notify
+         to the sender to remove the channel founder rights from the
+         announced client.  Affected file silcd/packet_receive.c.
+
+       * The CUMODE notify may now use Server ID as well as the entity
+         who changes the mode.  Updated protocool specs.
+
+       * Updated INSTALL and README files.
+
+Sun Apr 29 23:17:50 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
+
+       * New web pages in the http://silc.pspt.fi.  The pages was
+         designed by salo.
+
+       * Updated CREDITS.
+
+Sun Apr 29 13:33:41 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
+
+       * Implemented the [DenyConnectin] config section in the server.
+         Added silc_server_config_denied_conn to check whether incoming
+         connection is denied.  Affected file silcd/serverconfig.[ch].
+
+       * Do not check the ports when checking the incoming configuration
+         data if the port is 0, meaning any.  Affected file is
+         silcd/serverconfig.c.
+
+Fri Apr 20 18:58:43 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
+
+       * Fixed buffer overflow in silc_string_compare in the file
+         lib/silcutil/silcutil.c.
+
+       * Fixed double free in silc_server_command_leave in the file
+         silcd/command.c.
+
+Fri Apr 20 14:00:11 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
+
+       * Fixed the version checking in the server.  Affected file is
+         silcd/protocol.c.
+
+Thu Apr 19 19:52:46 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
+
+       * Fixed the configuration data fetching when accepting new
+         connections in the server.  Affected file silcd/server.c.
+
+Thu Apr 19 11:40:20 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
+
+       * Added `sender_entry' argument to the function
+         silc_server_packet_relay_to_channel so that we can check
+         whether some destination actually belongs to the same route
+         the sender belongs (ie, we must not resend the packet to the
+         sender).  Affected file silcd/packet_send.[ch].
+
+       * Added `servername' field to the SilcClientEntry in the server
+         to hold the name of the server where client is from.  Affected
+         file is silcd/idlist.h.
+
+Wed Apr 18 22:19:03 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
+
+       * Moved the channel message encrypting in the router betwen
+         router connections from silc_server_channel_message to the
+         silc_server_packet_relay_to_channel since we want to check
+         whether we have anybody channel before encrypting anything.
+         Affected files silcd/packet_[receive/send].c.
+
+Tue Apr 17 21:18:19 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
+
+       * Fixed the [AdminConnection] server config section to support
+         multiple entries.  Affected file silcd/serverconfig.c.
+
+       * Added support into the server to check the validity of the
+         incoming connection before executing any KE or authentication
+         protocols.
+
+       * The connection configuration is now saved to the KE and 
+         connection auth protocol contexts and not fetched anymore in 
+         the protocol.  Affected files silcd/server.c, silcd/protocol.[ch].
+
+       * The local hosts listenning address and port is also resolved
+         now when starting the server.  We want to have the socket object
+         to include the real address and port for the listener.  Added
+         new function silc_net_check_local_by_sock into the files
+         lib/silcutil/silcnet.[ch].
+
+       * Fixed a broadcast bug in server -> do not broadcast if we
+         are standalone.
+
+       * Fixed a routing bug.  Do not route broadcast packets ever.
+         Broadcast packets must be processed always and not routed since
+         they may be destined to some other host than yourself and thus
+         would get routed without no good reason.  Affected file is
+         silcd/server.c.
+
+       * Added function silc_server_config_is_primary_route to check
+         whether primary router connection has been configured (a router
+         configuration that we are initiating).  If there is not, we 
+         will assume that there is only two routers in the SILC network
+         and we will use the incoming router connection as our primary
+         route.  Affected files silcd/serverconfig.[ch], silcd/server.c.
+
+       * Changed the order of the broadcasting.  Broadcast _after_ the
+         packet has been processed not before.  Affected file is
+         silcd/server.c.
+
+       * Fixed a [ClientConnection] parsing bug.  The port was never
+         parsed correctly thus resulting to port 0.  Affected file
+         silcd/serverconfig.c.
+
+       * Fixed silc_server_send_notify_args -> it ignored the `broadcast'
+         argument and did not set the broadcast packet flag.  Affected
+         file silcd/packet_send.c.  Fixed same bug in the function
+         silc_server_send_notify as well.
+
+       * If we receive NEW_ID packet for our own ID in the server, ignore
+         the packet.
+
+Mon Apr 16 12:10:33 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
+
+       * Updated TODO.
+
+       * Removed the nickname from the Private Message Payload.
+         Updated the code and the protocol specs.
+
+       * Updated protocol specs for submitting to the IETF.
+
+       * Tweaked the Random Number Generator a bit.  Affected file
+         lib/silccrypt/silcrng.c.  Exported a new function
+         silc_rng_[global]_add_noise which can be used to add more
+         noise to the RNG.
+
+Sat Apr 14 16:21:32 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
+
+       * Do not parse packets with different timeout when protocol
+         is active -> may cause problem with rekey.  Affected file
+         silcd/server.c.
+
+       * When server receives signoff notify it must not create
+         new channel key if the client is on any channels since the
+         sender of the signoff notify will create it.
+
+Fri Apr 13 17:12:46 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
+
+       * Added printing of error messages during SKE protocol from the
+         failure packet sent by server during SKE.  Affected file
+         silc/client_ops.c.
+
+       * Removed the client's failure_callback handling with timeout
+         and handle it immediately when received.
+
+       * The SKE library returned wrong type in SUCCESS and FAILURE 
+         packets.  They must be 32 bit MSB not 16 bit MSB.
+
+Fri Apr 13 00:09:08 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
+
+       * Ok, rewrote the logic of the re-key and now it seems to work.
+         I tested it on high traffic with frequent re-keys without
+         problems.  Added hmac_receive (and renamed hmac to hmac_send)
+         in SilcClientConnection in lib/silcclient/client.h and
+         in SilcIDListData in silcd/idlist.h.  Also, removed the
+         SilcPacketParserContext's cipher and hmac fields as they are
+         not needed anymore and actually caused some problems when
+         the ciphers and hmac's changed underneath the packet parser.
+
+Thu Apr 12 14:42:51 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
+
+       * If re-key protocol is active then process the incoming packets
+         synchronously since we must assure that icoming packets encrypted
+         with the old key is processed before the new keys is set to
+         use.  This is true other packets than for REKEY packets.
+         Affected file silcd/server.c.  The same was done to client library
+         as well, affected file lib/silcclient/client.c.
+
+Thu Apr 12 12:01:52 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
+
+       * Fixed bug in client and server to accept the force send if
+         the packet is send from silc_[server/client]_packet_process
+         function.  Otherwise the packets are never delivered, oops.
+
+Wed Apr 11 22:10:15 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
+
+       * Disable force sending of packets when REKEY protocol is active.
+         We must assure that no packet is sent directly when rekey is
+         performed.  All packets must be sent through packet queue.
+         Added macro SILC_SERVER_IS_REKEY to silcd/server.h and
+         SILC_CLIENT_IS_REKEY to lib/silcclient/client.h.  Affected
+         function is silc_[server/client]_packet_send_real to check
+         the situation.
+
+       * Replaced the SIM paths from example config files to 
+         /usr/local/modules.  Also, make install creates now
+         /usr/local/silc/logs directory to hold all the SILC server
+         logs.
+
+Wed Apr 11 16:59:59 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
+
+       * Made the configure.in.pre work on Solaris.  Patch by salo.
+
+       * Made all ciphers compatible with non-x86 machines.  Defined
+         CBC mode macros into lib/silccrypt/ciphers_def.h.
+
+Tue Apr 10 20:32:44 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
+
+       * Fixed the make install.
+
+Tue Apr 10 16:20:34 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
+
+       * When MAC computation fails the silc_packet_decrypt returned 0
+         even though it was supposed to return -1.  Fixed this.  The
+         affected file is lib/silccore/silcpacket.c.
+
+       * Do not replace the config files in /etc/silc (in make install)
+         if they already exist.  Affected file ./Makefile.am.
+
+       * Do not send re-key packets immediately but through packet queue.
+         Affected file silcd/protocol.c and lib/silcclient/protocol.c.
+
+       * Changed silc_net_check_host_by_sock to return FALSE if the
+         IP/DNS could not be resolved.  Though, it returns the IP address
+         now even if it could not resolve it (but returns also FALSE).
+         Affected file lib/silcutil/silcnet.[ch].
+
+Mon Apr  9 21:54:44 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
+
+       * Added silc_pkcs_decode_identifier to decode the public key's
+         identifier.  Affected file lib/silccrypt/silpkcs.[ch].
+         Added also silc_pkcs_free_identifier.  Added also new context
+         SilcPublicKeyIdentifier.
+
+       * Added -S option to the silc client.  It is used to dump the
+         contents of the specified public key file.
+
+       * Changed the PKCS api to return the public key length when
+         setting the public key.
+
+       * Fixed a fatal bug in the public and private key file loading.
+         Affected file lib/silccrypt/silcpkcs.c.
+
+       * Execute the packet parsing for client with zero (0) timeout
+         if the protocol is active.  Affected file silcd/server.c.
+
+Sun Apr  8 19:30:56 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
+
+       * Made the key generation options to the silcd program.  Added
+         -C option, equivalent to client's option.
+
+       * Added new [ServerKeys] config section to the server.  It
+         configures the server's public and private key.
+
+       * Defined generic Public Key Payload into the protocol
+         specification to send specific type of public keys and
+         certificates.
+
+       * Defined new command SILC_COMMAND_GETKEY to fetch a client's
+         public key or certificate.
+
+       * Implemented the GETKEY command to the server and to the
+         client library and on user interface.
+
+Sun Apr  8 01:37:21 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
+
+       * Made preliminary `make install' work.
+
+Thu Apr  5 17:42:30 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
+
+       * Added SilcServerRekey context into silcd/idlist.h.
+
+       * Added the PFS support as defined in the specification to the
+         SKE protocol.  Affected files lib/silcske/*.c.
+
+       * Added `ske_group' field to the SilcServerRekey context to hold
+         the number of the SKE group that is used with PFS in re-key.
+         Affected file silcd/idlist.h.
+
+       * Added PFS re-key support to the server.  Affected file is
+         silcd/protocol.c.
+
+       * Added silc_protocol_cancel to cancel execution of the next
+         state of the protocol.  Affected file is
+         lib/silccore/silcprotocol.[ch].
+
+       * Added the re-key support with and without PFS to the client
+         library.  Re-key is performed once in an hour, by default.
+
+         Added new protocol type SILC_PROTOCOL_CLIENT_REKEY.
+         Added silc_client_rekey_callback and silc_client_rekey_final.
+         Affected files are lib/silcclient/protocol.[ch] and
+         lib/silcclient/client.[ch].
+
+       * Removed the `hmac_key' and `hmac_key_len' fields from the
+         SilcClientConnection structure; not needed.  Affected file is
+         lib/silcclient/client.h.
+
+       * Updated TODO.
+
+Wed Apr  4 16:32:31 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
+
+       * Do not ask whether user wants to use the negotiated private key
+         for private messages, just use it.  Affected file is 
+         silc/local_command.c.
+
+       * Added `send_enc_key' and `enc_key_len' fields to the 
+         SilcIDListData structure since they are needed in the re-key
+         phase.  Affected file is silcd/idlist.[ch].
+
+       * Implemented the simple re-key protocol into the server.
+         Affected files silcd/server.c and silcd/protocol.[ch].  The
+         re-key will be performed once in an hour, by default.
+
+         Added new protocol type SILC_PROTOCOL_SERVER_REKEY.
+         Added silc_server_rekey, silc_server_rekey_callback and
+         silc_server_rekey_final.
+
+       * Removed Tunneled flag from the protocol.  Updated the code
+         and the specifications.
+
+       * Adde `pfs' field to the SilcIDListData to indicate whether
+         the PFS is to be performed in the re-key.  Affected file is
+         silcd/idlist.h.
+
+Tue Apr  3 21:52:42 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
+
+       * Defined uint8, int8, uint16, int16, uint32, int32, uint64 and
+         int64 of at least the xintXX size.  If void * is less that 4
+         bytes uint32 * will be used.  Defined bool as boolean.
+
+       * Changed _ALL_ unsigned long and unsigned int to uint32, 
+         unsgined short to uint16 in the source tree.
+
+       * Fixed a fatal bug in silc_server_remove_clients_by_server.  Do
+         not handle clients that has entry->data.registered == FALSE.
+         They are not in the network anymore.  Affected file is
+         silcd/server.c.
+
+Tue Apr  3 16:39:19 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
+
+       * Implemented the sending of the SERVER_SIGNOFF notify in the
+         server.  Affected file is silcd/server.c.
+
+       * Added silc_server_send_notify_args into silcd/packet_send.[ch].
+         Added also silc_notify_payload_encode_args into the
+         lib/silccore/silcnotify.[ch].
+
+       * Implemented ther SERVER_SIGNOFF notify handling in the server.
+         Affected file silcd/packet_receive.c.
+
+       * Implemented the SERVER_SIGNOFF notify handling in the client
+         library.  Affected file lib/silcclient/client_notify.c.  Also,
+         implemnted the printing of the SERVER_SIGNOFF info to the
+         application.  Affected file silc/client_ops.c.
+
+       * The silc_idlist_del_server now returns TRUE or FALSE to indicate
+         if the deleting was successful.  Affected file silcd/idlist.[ch].
+
+       * Added support for public key authentication in the connection
+         authentication protocol in the client library.  Affected file
+         lib/silcclient/protocol.c.
+
+       * Changed the server's silc_idlist_get_clients_by_* interface
+         to support already allocated array so that new entries may be
+         added to pre-allocated array.  Affected file silcd/idlist.[ch].
+         This fixes some bugs with WHOIS, WHOWAS and IDENTIFY commands
+         and command replies.
+
+       * All command reply functions in the server now calls the 
+         pending command callback even if error occured.  This way the
+         error will be delivered to the client as well.  Affected files
+         silcd/command.c and silcd/command_reply.c.
+
+       * Fixed INFO command to return local server's info if no server
+         was provided.  Affected file lib/silcclient/command.c.
+
+       * Removed RESTART command for good.  Updated the code and the
+         protocol specs.
+
+       * Rewrote parts of the task system.  It is a bit simpler now.
+         Removed unsued task priorities. The affected files are
+         lib/silcutil/silctask.[ch].
+
+Mon Apr  2 20:02:33 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
+
+       * Moved the USERS printing from the library to the application.
+         Affected files lib/silcclient/command.c and silc/client_ops.c.
+
+Mon Apr  2 13:13:23 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
+
+       * Updated TODO.
+
+       * Added channel key re-key support.  The re-key is perfomed
+         only by the router and is done once in an hour.  Added `rekey'
+         field to the SilcChannelEntry in the server.  Affected files
+         silcd/server.c and silcd/idlist.h.
+
+       * Added silc_task_unregister_by_context into the file
+         lib/silcutil/silctask.[ch].
+
+Sun Apr  1 19:49:34 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
+
+       * Added SILC_UMODE_GONE mode to indicate when the client is not
+         present in the SILC network.  Added also support to the local
+         command AWAY that will set this mode.  Added support of showing
+         "xxx is gone" in WHOIS command.  The USERS command shows the
+         gone status as well.
+
+       * Fixed setting server and router operator privileges in the
+         server's UMODE command.  Affected file silcd/command.c.
+
+       * Merged the SKE KE1 and KE2 payloads into one payload.  The
+         new KE payload is equivalent to the old KE2 payload.
+
+         Cleaned up the SKE Start Payload parsing.  It now uses the
+         simple buffer unformatting to do the parsing.  A lot faster
+         now.
+
+         Added new Mutual Authentication flag (SILC_SKE_SP_FLAG_MUTUAL)
+         to the SKE that is used to indicate whether both of the SKE
+         parties should perform authentication.  By default only the
+         responder performs authentication.  By setting this flag also
+         the initiator must do authentication.  By default it is unset
+         since in normal SKE case, client to server connection, only
+         the responder should do authentication.  When doing SKE between
+         two clients both should perform authentication.  Updated the
+         code and the protocol specs.
+
+       * A little fix to IDENTIFY command in the server.  Search the
+         client first by hash not nickname.  Affected file is 
+         silcd/command.c.
+
+       * Fixed the silc_client_close_connection to support closing
+         the client to client connections wihtout deleting too much
+         data.  Affected file lib/silcclient/client.c.
+
+       * Fixed a fatal bug in server and client; if KE1 or KE2 packets
+         are received if protocol used to be active but is not anymore
+         the application would crash due to NULL pointer dereference.
+         Affected files silcd/server.c and lib/silcclient/client.c.
+
+       * Added `hash' field to the SilcClientConnection to include
+         the hash function negotiated in the SKE protocol.
+
+       * Added new channel mode SILC_CMODE_FOUNDER_AUTH that is used
+         to set the channel founder authentication data.  A client can
+         claim the founder rights later by providing the authentication
+         data to the CUMODE command using SILC_CUMODE_FOUNDER mode.
+         This way the channel founder can regain the channel founder
+         privileges even it is left the channel.  This works only on
+         local server and the client must be connected to the same
+         server to be able to regain the founder rights.  Updated the
+         protocol specs accordingly.
+
+         Added support to the CMODE command in the client to set the
+         founder auth data.  Read the README to see how to set it.
+
+         Added support to the CUMODE command to claim the founder
+         rights.  Read the README to see how to do it.
+
+         Added support for the founder authentication to the Channel
+         Entry in the server.  Affected file silcd/idlist.h.
+
+         Added support for the SILC_CMODE_FOUNDER_AUTH mode in the
+         server's CMODE command.  Affected file silcd/command.c.
+
+       * Added the following new functions into lib/silccore/silcauth.[ch]:
+         silc_auth_get_method and silc_auth_get_data.    
+
+       * The server now saves the remote hosts public key to the
+         SilcIDListData pointer.  Affected file silcd/protocol.c.
+
+       * The normal server now does not remove the channel entry from
+         the cache if the founder authentication data is set.  It used
+         to remove it if the founder was the last one on the channel on 
+         the server and left the channel.  The auth data is saved and
+         if the channel is re-joined later the old entry is used with
+         the old auth data.  Affected files silcd/command_reply.c and
+         silcd/server.c.
+
+       * Removed the `pkcs' field from the SilcIDListData structure
+         in the server; it is not used.  Affected file silcd/idlist.h.
+
+Sat Mar 31 15:38:36 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
+
+       * Fixed packet processing on slow links.  Partial packets were
+         never re-processed because the incoming data buffer was cleared
+         by the application.  Application must not directly clear the
+         sock->inbuf, the packet processing routines handle it.  Fixed
+         this in client library and in server.
+
+Fri Mar 30 16:35:27 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
+
+       * Fixed the WHOIS and IDENTIFY send reply function to really
+         check whether to send list or just one entry.  Affected file
+         silcd/command.c.
+
+       * Cleaned up the LEAVE command's channel key distribution.  The
+         affected file silcd/command.c.
+
+       * Changed CMODE_CHANGE's <Client ID> to <ID Payload> as server
+         can enforce the channel mode as well.  In that case the ID
+         includes the ID of the server.  The code now enforces the
+         mode change if the router have different mode than the server.
+
+       * The notify client operation with CMODE_CHANGE notify can now
+         return NULL client_entry pointer if the CMODE was not changed
+         by client.  Application must check for this.
+
+       * Added <Server ID> argument to INFO command to support server
+         info fetching by Server ID.
+
+       * Added silc_server_announce_get_channel_users to get assembled
+         packets of channel users of the specified channel.  Affected
+         file silcd/server.[ch].
+
+       * Fixed bug in CHANNEL_CHANGE notify in the server.  The new ID
+         was freed underneath the ID Cache.
+
+       * Re-announce clients when the server received CHANNEL_CHANGE
+         notify from the router.  Affected file silcd/packet_send.c.
+
+Thu Mar 29 19:10:28 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
+
+       * Fixed a fatal bug when client does /join 1 2 3 4 5 6 the server
+         crashed since it did not handle the fact that there is no cipher
+         called "3" and didn't check the error condition.  Now fixed.
+
+       * Added SILC_MESSAGE_FLAG_REQUEST message flag as generic request
+         flag.  It can be used to send message requests.
+
+Thu Mar 29 12:26:25 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
 
        * Implemented the RESTART command in the client.
 
@@ -25,6 +626,9 @@ Thu Mar 29 15:26:25 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
          other cells as well.  Added this support for the router in the
          silcd/packet_receive.c.
 
+       * Added new local command NOTICE to send notice message on
+         channel.  Affected file silc/local_command.[ch].
+
 Wed Mar 28 23:55:54 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
 
        * Added new local command ME to the client.  It is used to send