X-Git-Url: http://git.silcnet.org/gitweb/?a=blobdiff_plain;f=CHANGES;h=42413044f220cee2ac47aaa6f384305aa1c2db0f;hb=017dec75a98209fbef49eb496c2269b0c49e736d;hp=454a90877ce4ca9e007e85bef6367344403846a1;hpb=c8a51aa18617541e59d02486157008db1faf28ed;p=silc.git diff --git a/CHANGES b/CHANGES index 454a9087..42413044 100644 --- a/CHANGES +++ b/CHANGES @@ -1,3 +1,962 @@ +Thu Sep 6 12:47:37 EEST 2001 Pekka Riikonen + + * Renamed function silc_parse_nickname to silc_parse_userfqdn + to generally parse user@fqdn format strings. Affected file + lib/silcutil/silcutil.c. + + * Added nickname_format and nickname_force_format fields to the + SilcClientParams structure. The first one defines the format + for the nicknames that the library will enforce if the receives + multiple same nicknames. The second one is boolean value and + can be used to force the library to always enforce the format + to the nicknames regardles whether there are multiple nicknames + or not. This configurable formatting was employed to flexibly + support accessing multiple nicknames from the user interface. + The userinterface can now set the nicknames to what ever format + they prefer. Affected file lib/silcclient/silcapi.h. + + Added function silc_client_nickname_format to the file + lib/silcclient/idlist.c. It performs the nickname formatting. + + Added new field `hostname´ to the SilcClientEntry context. + It holds the hostname of the client. Affected file is + lib/silcclient/idlist.h. + + * Irssi SILC Client sets the nicknames in nick@hostn format. + Fe. priikone@otaku, priikone@otaku2 etc. Affected file + irssi/src/silc/core/silc-core.c. + + The WHOIS printing now also shows both the real nickname and + the formatted nickname so that user knows how to access the + user if there are multiple same nicknames cached. Affected + file irssi/src/silc/core/client_ops.c. Changed the WHOIS + printing formatting too to take the hostname now as a separate + argument. The Affected file is + irssi/src/fe-common/silc/modules-formats.[ch]. + + * Changed the silc_client_get_clients_local to accept the formatted + nickname as argument. It accepts the real nickname too but the + formatted nickname can be used to find the true entry from + multiple entries. Affected file lib/silcclient/silcapi.h and + lib/silcclient/idlist.c. + + * Added nickname_format_parse field to the SilcClientParams. + It is a callback function provided by the application to parse + the nickname out of the formatted nickname string. The library + calls it to get the nickname from the formatted string. Since + the application generally knows better the format of the nickname + string it parses it instead of the library, even though library + encodes the formatted string. If the callback function is not + provided then the library will use the string as is. The + affected file is lib/silcclient/silcapi.h. + + * All the nickname strings passed to the client library in + commands are now expected to be formatted nickname strings. + If the command does not support the formatted nickname string + it will assume that the sent string is the actual nickname. + Affected file lib/silcclient/command.c. + +Tue Sep 4 22:31:28 EEST 2001 Pekka Riikonen + + * Added public key authentication support to OPER and SILCOPER + commands in the client library. Affected file is + lib/silcclient/command.c. + +Tue Sep 4 12:39:17 EEST 2001 Pekka Riikonen + + * Changed the get_auth_methdod client operation to be asynchronous. + It can be async if the application resolves the authentication + method from the server during the negotiation. Added new + SilcGetAuthMeth completion callback that the application will + call after resolving the authentication method. + + Added function silc_client_request_authentication_method that + the application can use to resolve the authentication method + from the server. Added also SilcConnectionAuthRequest callback + that the library will call after the server has replied. The + application can call this function if it does not know the + current authentication method. + + Affected files are lib/silcclient/client.c and + lib/silcclient/silcapi.h. + + * The Irssi SILC client now automatically resolves the authentication + method incase any configuration information is not present (and + currently there never is). The affected file is + irssi/src/silc/core/client_ops.c. + + * Fixed public key authentication from the client library. + Affected file lib/silcclient/protocol.c. Changed also the + protocol specification about the public key authentication in + the connection authentication protocol. The actual data to be + signed is now computed with a hash function before signing. + + * Fixed the public key authentication from the server as well. + Affected file silcd/protocol.c. + + * Removed the mlock()'s from the memory allocation routines. + Affected file lib/silcutil/silcmemory.c. The ./configure does + not check anymore for the mlock(). Affected file is + configure.in.pre. + + * Fixed USERS command in server to allow the execution of the + command for private and secret channels if the client sending + the command is on the channel. Affected file silcd/command.c. + + * Fixed silc_client_get_clients_local to return the clients + count correctly. It could return wrong value. Affected file + lib/silcclient/idlist.c. + +Mon Sep 3 20:09:59 EEST 2001 Pekka Riikonen + + * Fixed the lib/silcmath/mpi/mpi.h to always use 32-bit data + types. The assembler optimizations seemed not to like 64-bit + data types. The assmebler optimizations thus are now enabled + also for BSD systems as opposed to only enable them for Linux. + + * Do not check for threads at all on BSD systems. Affected + file configure.in.pre. + + * Removed -n and -h options from the Irssi SILC Client since + they are not used in silc. + + * Fixed the prime generation to assure that the first digit + of the generated random number is not zero since our conversion + routines does not like number strings that starts with zero + digit. If zero digit is seen the random number is regenerated. + This caused some corrupted RSA keys when the zero first digit + was met. Affected file lib/silcmath/silcprimegen.c. + +Sun Sep 2 17:17:24 EEST 2001 Pekka Riikonen + + * Fixed WIN32 configuration in the ./configure script. + Fixed to include xti.h on environments that has it. + Patches by Carsten Ilchmann and andrew. + +Sat Sep 1 00:29:33 EEST 2001 Pekka Riikonen + + * Changed the silc_id_create_client_id to be collision + resistant. It is now assured that there cannot be created + two same client ID's. I suspect that some weird bugs in + the server were actually caused by duplicate Client IDs. + Affected file silcd/serverid.[ch]. A router receiving + new ID now also assures and informs the sending server + if the ID caused collision. + + * Changed the silc_id_create_channel_id to also assure that + there are no collisions. + +Wed Aug 29 17:55:01 EEST 2001 Pekka Riikonen + + * Statement about ignoring the Mutual Authentication flag when + performing rekey with PFS was a bit misleading. It is ignored + if it was set in the initial negotiation, it cannot be even + set in the rekey. Fixed in the ke-auth draft. Started the + new versions of the protocol drafts in the doc/. + +Sun Aug 26 14:59:15 EEST 2001 Pekka Riikonen + + * Fixed a bug in silc_client_command_identify_save when saving + new channel information. The channel name was no duplicated + and caused crash on exit. Affected file is + lib/silcclient/command_reply.c. + +Fri Aug 17 23:07:45 EEST 2001 Pekka Riikonen + + * Fixed the getkey command handling in the server. Send just + empty OK reply to the sender if the key could not be fetched + (but everything else was ok, like the key just was not available). + Changed the public key parameter to optional in the protocol + specs so that empty OK reply can be sent. Affected file + silcd/command.c. + + Added a message to Irssi SILC client to tell to user if the + server did not return a public key. + +Tue Aug 14 07:29:27 CEST 2001 Pekka Riikonen + + * Fixed a channel key regeneration bug. It registered new + timeout tasks exponentially until all system resources were + used. Affected file silcd/server.c. + +Sun Aug 12 20:48:14 EEST 2001 Pekka Riikonen + + * Added the SILC Document generator to the scripts/silcdoc. + It can be used to generate the Toolkit Reference Manual out + of the source tree. Internally it will also use the RoboDoc + generator now imported in util/robodoc. + +Sun Aug 12 12:28:17 EEST 2001 Pekka Riikonen + + * Added couple of return's in rekey protocol if error orccurred + during the protocol. The execution must be terminated. + Affected file silcd/protocol.c. Also, terminate the protocol + always with timeout. + +Sat Aug 11 12:36:02 EEST 2001 Pekka Riikonen + + * The client's Client ID was created initally from the wrong + nickname (it could have been in format nick@host) in the + silc_server_new_client. Affected file silcd/packet_receive.c + +Sat Aug 11 00:29:57 EEST 2001 Pekka Riikonen + + * Added some SILC_LOG_ERROR's to various error conditions + if client could not be added to ID cache. Affected files + silcd/packet_receive.c and silcd/server.c. + + * When client's sock->user_data is freed, NULL also the + client->router and client->connection pointers. Added check + for these pointers being NULL to various places around the + code. Affected file silcd/server.c. + + * Added client->data.registered == TRUE checks to various + places around the code to assure that unregistered client's + are not handled when it is not allowed. Affected file + silcd/server.c. + + * Added `bool registered' fields to all + silc_idlist_[server|client]_get_* routines to indicate whether + the fetched client needs to be registered or not. Affected + file silcd/idlist.[ch]. + + * Add your own entry as registered to the ID cache in the + server. Affected file server.c. + + * Fixed a bug in silc_server_new_server. The SilcServer was + set as the new server's context instead of SilcServerEntry. + This naturally caused some weird bugs. + +Thu Aug 9 18:28:37 EEST 2001 Pekka Riikonen + + * Do not delete the channel rekey task when adding it + for in silc_server_create_channel_key. + + * Changed the silc_server_create_channel_key to return + TRUE or FALSE to indicate the success of the channel key + creation. + +Thu Jul 26 11:32:31 EEST 2001 Pekka Riikonen + + * Fixed MSVC++ project files and added missing files to + Makefiles under win32/. + +Wed Jul 25 18:43:54 EEST 2001 Pekka Riikonen + + * Do not add TCP_NODELAY flag if the operating system + does not have it defined. Affected files are + lib/silcutil/[unix/win32]/silc[unix/win32]net.c. + + * Fixed buffer overflow from Irssi SILC Client. Affected + file irssi/src/fe-common/core/themes.c. + + * Fixed double free in client library in the file + lib/silcclient/client.c when disconnecting from server. + + * Applied double free patch from cras to Irssi SILC client. + Affected files irssi/src/core/[modules/expandos].c + + * Fixed the disconnection handling to Irssi SILC Client. + The application must call silc_client_close_connection + in ops->connect client operation in case of failure of + the connection. Affected file is + irssi/src/silc/core/client_ops.c. + + * Do not set sock->protocol to NULL in the function + silc_client_close_connection after executing the protocol's + final callback since the sock might not be valid anymore. + Affected file lib/silcclient/client.c. + +Wed Jul 25 16:04:35 EEST 2001 Pekka Riikonen + + * Do not enable SILC_THREADS if the linking with libpthread + did not happen. Affected file configure.in.pre. + + * Added notion to protocol specification that server must + verify the sent authentication payload with CMODE when + setting the channel founder key. Implemented it to the + server. Affected file silcd/command.c. + +Mon Jul 23 18:31:43 EEST 2001 Pekka Riikonen + + * Added _EXTRA_DIST SILC distribution variable to the + distributions file. It is used to conditionally add extra + files or directories to the specific distribution. Affected + files ./prepare, Makefile.am.pre and distributions. + + Removed the `_' from the start of the distribution names. + It is redundant. + + * Added README.WIN32 for instructions to compile the Toolkit + under WIN32. + +Mon Jul 23 10:12:37 EEST 2001 Pekka Riikonen + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * The server now performs the incoming host IP/DNS lookup + using the silc_socket_host_lookup and thus does not block + the server anymore. Affected file silcd/server.c. + + * 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 + + * Added new function silc_schedule_wakeup that is used in + multi-threaded environment to wakeup the main thread's + schduler. It needs to be used when a thread adds a new task + or removes a task from task queues. After waking up, the + scheduler will detect the task queue changes. If threads + support is not compiled in this function has no effect. + Implemented the wakeup mechanism to both Unix and WIN32 + systems. Affected files are lib/silcutil/silcschedule.[ch], + lib/silcutil/unix/silcunixschedule.c and the + lib/silcutil/win32/silcwin32schedule.c. + + * Added new function silc_task_queue_wakeup to wakeup the + scheduler by the specified task queue. Affected file + lib/silcutil/silctask.[ch]. + + * The silc_socket_host_lookup_start now wakes up the scheduler + after adding the timeout task. Affected file is + lib/silcutil/silcsockconn.c. + + * The silc_socket_host_lookup is synchronous now if the threads + support is not compiled in. However, the callback is still + called asyncronously through the scheduler, anyway. Affected + file lib/silcutil/silcsockconn.c. + +Mon Jul 9 00:24:45 EEST 2001 Pekka Riikonen + + * Added new function silc_socket_host_lookup to perform + asynchronous IP and FQDN lookups for the socket connection. + Affected files lib/silcutil/silcsockconn.[ch]. + +Sun Jul 8 18:44:53 EEST 2001 Pekka Riikonen + + * Added SILC_MUTEX_DEFINE to define the mutex on environments + that may or may not compile the mutex support in. + + Changed the silc_mutex_alloc interface. It allocates the + mutex now to the sent pointer and returns TRUE or FALSE. + + Affected file lib/silcutil/silcmutex.h. + + * Wrote the SILC Task Queue interface to support multi-threads. + Affected file lib/silcutil/silctask.[ch]. + + * Wrote the SILC Scheduler to support multi-threads. Affected + file lib/silcutil/silcschedule.c. + +Sun Jul 8 11:16:01 EEST 2001 Pekka Riikonen + + * Implemented the SILC Mutex API and SILC Thread API for WIN32 + in lib/silcutil/win32/. + +Sun Jul 8 00:18:15 EEST 2001 Pekka Riikonen + + * Defined SILC Mutex API and SILC Thread API and implemented + them for Unix. Affected files are + lib/silcutil/silcmutex.h, lib/silcutil/silcthread.h, + lib/silcutil/unix/silcunixmutex.c and + lib/silcutil/unix/silcunixthread.c. + +Sat Jul 7 14:40:31 EEST 2001 Pekka Riikonen + + * Fixed the silc_server_remove_clients_by_server's channel + key re-generation. The hash table handling was incorrect + and would not work with many channels. Affected file is + silcd/server.c. + + * Fixed some memory leaks around the server code. + + * Rewrote the silc_server_get_users_on_channel to support IPv6 + based Client ID's. Affected file silcd/server.c. + + * Defined the SILC_MESSAGE_FLAG_SIGNED to the protocol + specification. However, a separate document must be written + to define the detailed signing procedure and the payload + associated with the flag. Defined the flag to the + lib/silccore/silcchannel.h as well. + +Fri Jul 6 18:26:31 EEST 2001 Pekka Riikonen + + * Changed the dynamic tables to static size tables in the + lib/silccrypt/silchmac.c. + + * Removed GCC dependencies from the code. A patch by cras. + +Fri Jul 6 09:39:35 EEST 2001 Pekka Riikonen + + * Do not show the error "Error receiving packet bla bla" + in server if it really was not an error (-2 means that reading + is pending). Affected file silcd/server.c. + +Thu Jul 5 21:22:32 EEST 2001 Pekka Riikonen + + * Fixed a possible crash in silc_server_remove_clients_by_server + in silcd/server.c. Fixed there also some memory leaks. + + * Fixed the silc_idlist_replace_client_id. It could replace + wrong key in the hash table. Affected file silcd/idlist.c. + + * Do not check whether there are global users on the channel + if the channel->global_users is FALSE. Affected functions + silc_server_remove_from_one_channel and + silc_server_remove_from_channels in silcd/server.c. Also, + do not check if the removed client is local as we can be + sure that global client was not removed from the channel + and checking for global users is not needed. + + * The silc_server_remove_clients_by_server now re-generates + the channel keys correctly for those channels that had + clients removed from them. Affected file silcd/server.c. + +Tue Jul 3 11:39:20 EEST 2001 Pekka Riikonen + + * Found the reason of random crashes in the server. We weren't + ignoring the SIGPIPE signal (which can be sent in write()) + and it crashed the server. Affected file silcd/silcd.c. + +Fri Jun 29 20:05:25 EEST 2001 Pekka Riikonen + + * Assure that sock->user_data is not NULL in the function + silc_server_packet_send in silcd/packet_send.c. + + * Disconnect the remote connection if it could not be added + to any ID lists in the server. The affected file is + silcd/server.c. + + * Check in silc_server_packet_send[_real/dest] that the + socket is not disconnecting and ignore the data if it is. + Affected file silcd/packet_send.c. + + * Define inline to __inline on native WIN32 compilation. + Affected file includes/silcwin32.h. + + * Added some explicit type casts for inline code since MSVC + require them. Affected files lib/silcutil/silcbuffer.h, + lib/trq/silcdlist.h and lib/trq/silclist.h. + + * Print warning in log files from now on if the packet + decryption fails. Affected file silcd/server.c. + +Thu Jun 28 21:30:39 EEST 2001 Pekka Riikonen + + * Changed the `say' client operation's interface to accept + new `type' argument to indicate the type of the message sent + by the library. The application may filter the library's + messages according the type. The affected file is the + lib/silcclient/silcapi.h. + + * Added two new functions to lib/silcclient/silcapi.h: + silc_client_del_client and silc_client_del_client_by_id. + Affected file lib/silcclient/idlist.c. + + * Moved the clientincludes.h from includes/ to silc/ and + serverincludes.h from includes/ to silcd/. + + * The modes for the CMODE and CUMODE are now passed as + uint32 for application with COMMAND_REPLY. The affected + file is lib/silcclient/command_reply.c. + +Wed Jun 27 22:24:47 EEST 2001 Pekka Riikonen + + * /WHOIS without arguments shows client's own information. + Affected file lib/silcclient/command.c. + + * Changed PING to not accept any arguments. The specs + says that client can ping only the connected server so + requiring an argument is not needed. Affected file is + lib/silcclient/command.c. + +Wed Jun 27 00:10:33 EEST 2001 Pekka Riikonen + + * Fixed a fatal bug in private message sending and reception + encryption and decryption when using private message keys. + The implementation was incorrect and did not follow the + specification. It causd that some of the message were + lost since it did not use the sending and receiving keys + as the protocol suggests. This has been fixed and will cause + incompatibilities with older clients when sending private + message encrypted with private message keys. Affected files + lib/silcclient/client_prvmsg.c, lib/silcclient/client_keyagr.c + and various other in Irssi SILC Client. + + Added `responder' boolean argument to the functions + silc_client_add_private_message_key[_ske] to indicate when + the key is added as responder or initiator of the key + negotiation. + +Tue Jun 26 19:23:07 EEST 2001 Pekka Riikonen + + * Removed the silc_ske_check_version function and created + a SilcSKECheckVersion callback. Added also a function + silc_ske_set_callbacks that is now used to set all SKE + callbacks. The callback functions are not given to + the SKE functions anymore, but this function is used to + set the callbacks. + + * Fixed the WIN32 DLL generation in lib/Makefile.am.pre. + + * Added `silc_version' argument to the silc_client_alloc + to define the version of the application for the library. + The library will use the version string to compare it + against the remote host's (usually a server) version + string. Affected file lib/silcclient/silcapi.h + + * Added the KE protocol context to Key Agreement context + in client library so that we can abort the SKE if it + is in process when we get timeout. Affected file is + lib/silcclient/client_keyagr.c. + + * Do not resolve the client ID forever if it returns in the + first time that such client does not exist. This was done + for example with private message. Affected file is + lib/silcclient/client_prvmsg.c. + +Mon Jun 25 21:42:51 EEST 2001 Pekka Riikonen + + * Do not add regex.h for WIN32. The affected file + includes/silcincludes.h. + + * Added WIN32 DLL generation to lib/Makefile.am.pre. It might + not work yet 100%. It generates the DLL's automatically + when compiling with --with-win32 under cygwin. + +Sun Jun 24 19:49:23 EEST 2001 Pekka Riikonen + + * lib/contrib/regex.c is not compiled on WIN32. + + * Added silc_net_get_socket_opt function to the + lib/silcutil/silcnet.h. + + * Added includes/silcwin32.h for WIN32 specific includes + and definitions. + + * Do not use ptime structure or any of the posix process + functions on WIN32 in lib/silccrypt/silrng.c. + + * Added silc_gettimeofday to provide generic function + for struct timeval on all platforms. Added the function + to lib/silcutil/silcutil.h. + +Sun Jun 24 12:19:52 EEST 2001 Pekka Riikonen + + * Moved the lib/silccore/silcsockconn.[ch] to the utility + library as they clearly belong there. As a plus side we + can make the actual socket connection routines platform + specific. + + Added also new generic function silc_socket_read and + silc_socket_write (that used to be silc_packet_[read/write]. + The implementation of these are platform specific. + + * Added WIN32 specific routines of silc_socket_[read/write] + to lib/silcutil/win32/silcwin32sockconn.c. + +Sat Jun 23 16:01:00 EEST 2001 Pekka Riikonen + + * Added preliminary support for native WIN32 compilation under + cygwin (using the -mno-cygwin option for GCC) to the + ./configure.in.pre. The --with-win32 now prepares the + compilation for native WIN32. + + * Rewrote the SILC Scheduler interface in the file + lib/silcutil/silcschedule.h. The scheduler is now context + based and does not have anymore any global static scheduler. + Moved the Unix scheduler to the lib/silcutil/unix/ directory + and created lib/silcutil/win32 directory for WIN32 based + scheduler. + + * Added Unix specific network routines to the + lib/silcutil/unix/silcunixnet.c and the old + lib/silcutil/silcnet.c includes now only generic routines. + + Added WIN32 specific network routines to the + lib/silcutil/win32/silcwin32net.c. + + * Added Unix specific utility functions from the + lib/silcutil/silcutil.c to lib/silcutil/unix/silcunixutil.c. + + * Added WIN32 SILC Scheduler to the file + lib/silcutil/win32/silcwin32schedule.c. The code is of course + untested. + +Fri Jun 22 10:44:14 EEST 2001 Pekka Riikonen + + * Do not handle JOIN notify in the server if the target client + is not registered (idata->registered == FALSE). The affected + file is silcd/packet_receive.c. + + * Update the nickrec->founder in event_cumode in the Irssi SILC + client. Affected file irssi/src/silc/core/silc-channels.c. + + * Fixed the CUMODE_CHANGE notify handling in the server when + server and router are announcing their clients on channels. + Now the mode changes are saved and notified correctly. The + affected file is /silcd/packet_receive.c. + + * Fixed silc_idlit_replace_[server/client/channel]_id functions. + They really did not replace the cache entry in the ID Cache. + Now they do that. Affected file silcd/idlist.c. + + * Fixed the KICK notify handling in the Irssi SILC client to + update the channel records so that the kicked client does not + appear to be on the channel. The affected file is + irssi/src/silc/core/silc-channels.c. + + * Always update the conn->current_channel when executing command + on a channel. Affected file irssi/src/silc/core/silc-servers.c. + + * Fixed the KILL notify handling in Irssi SILC client to remove + the killed client on all channels. + +Thu Jun 21 17:10:08 CEST 2001 Pekka Riikonen + + * Fixed the silc_parse_command_line to remove extra spaces + from the start and end of the arguments. Affected file is + lib/silcutil/silcutil.c. + + * Cancel and free any active protocol in the function + silc_server_close_connection. Affected file silcd/server.c. + + * Cancel and free any active protocol in the function + silc_client_close_connction. Affected file is + lib/silcclient/client.c. + + * Do not execute the KILL command for clients that are in + history (ie. they are not in the network). Affected file is + silcd/command.c. + + * Fixed KILL notify handling, client does not crash anymore. + Affected file irssi/src/silc/core/silc-channels.c. + + * Reduced the default packet buffer size from 2048 to 1024 in + lib/silccore/silcpacket.c. + + * Added SILC_SKE_STATUS_FREED SKE status type and a reference + counter to the SKE context that is incresed when the SKE library + performs async operation outside the library. If the outside + process frees the SKE context and FREED status will be set + and the library will detect after the sync operation that the + libary is freed. The affected files are + lib/silcske/silcske[_status].[ch]. + + * Resolve the client entry information in the function + silc_client_channel_message to assure that NULL pointer is not + passed as client entry to the application. */ + + * Fixed the task timeout calculation to assure that there is + never negative timeouts. The affected file is + lib/silcutil/silcschedule.c. + + * Fixed the channel user mode notification sending in server. + It was sent point-to-point to the router (or to server by router) + but it needs to be destined to a channel. The routines now + supports sending the channel user mode notifys to the channels + when announcing clients and channels. Affected files are + silcd/server.c and silcd/packet_receive.c. + + * Fixed the CHANNEL_CHANGE notify handling in the client libary. + It did not actually replace the old channel entry in the cache. + Affected file lib/silcclient/client_notify.c. + +Tue Jun 19 22:10:36 EEST 2001 Pekka Riikonen + + * Fixed a possible crash in silc_packet_send_prepare. It now + assures always that there is enough space in the buffer and + at the tail area of the buffer (for MAC). + + Fixed the inbound buffer reallocation in silc_packet_read. + It was old code and did not handle the reallocation correctly. + Affected + + The affected file is lib/silccore/silcpacket.c. + + * Fixed buffer overflow in silc_parse_nickname in the file + lib/silcutil/silcutil.c. + +Tue Jun 19 13:40:09 CEST 2001 Pekka Riikonen + + * make install generates new server keys only if there is not + keys already. + Mon Jun 18 18:49:07 EEST 2001 Pekka Riikonen * Set SILC_MESSAGE_FLAG_NOREPLY when sending the away message. @@ -52,6 +1011,10 @@ Mon Jun 18 18:49:07 EEST 2001 Pekka Riikonen * The router did not save the channel mode the server announced. Affected file silcd/packet_receive.c. + * Fixed a possible crash in INFO command in server. If the + server did not provide the server info it crashed. Affected + file silcd/command.c. + Sun Jun 17 15:26:05 EEST 2001 Pekka Riikonen * Fixed the GETKEY command in the server to check also the