updates.
[silc.git] / CHANGES
diff --git a/CHANGES b/CHANGES
index 2bc6da63b28c4fc9ec373816336ea1f926aa9757..920e0637bf2f07f20c77378c412c33d85821287f 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -1,3 +1,273 @@
+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
@@ -7,6 +277,12 @@ Mon Jul  9 18:28:34 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
        * 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