From: Jochen Eisinger Date: Sun, 11 Mar 2007 14:23:14 +0000 (+0000) Subject: Sun Mar 11 15:22:42 CET 2007 Jochen Eisinger X-Git-Tag: silc.toolkit.1.1.beta1~67 X-Git-Url: http://git.silcnet.org/gitweb/?p=silc.git;a=commitdiff_plain;h=8fd8212bcd16f2b53fbedff2a9b9a4e8c15b9695 Sun Mar 11 15:22:42 CET 2007 Jochen Eisinger * Import perl script for sign_messages from silc-plugin. Affected file apps/irssi/scripts/silc.pl --- 8fd8212bcd16f2b53fbedff2a9b9a4e8c15b9695 diff --cc CHANGES index 7f343238,00000000..183039dd mode 100644,000000..100644 --- a/CHANGES +++ b/CHANGES @@@ -1,12031 -1,0 +1,12036 @@@ ++Sun Mar 11 15:22:42 CET 2007 Jochen Eisinger ++ ++ * Import perl script for sign_messages from silc-plugin. Affected ++ file apps/irssi/scripts/silc.pl ++ +Sun Mar 11 15:19:10 CET 2007 Jochen Eisinger + + * Only wait for a nick on connecting, when it differs + (not counting case) from the username. Affected file + is apps/irssi/src/silc/core/silc-servers.c + +Sun Mar 11 13:50:53 CET 2007 Jochen Eisinger + + * Use time settings for lag settings. Affected file is + apps/irssi/src/silc/core/silc-lag.c + +Wed Feb 21 17:01:01 EET 2007 Pekka Riikonen + + * Fixed WHOIS command and requested attributes handling in + client library. Affected files are lib/silcclient/command.c + and lib/silcclient/client_attrs.c. + + * Fixed silc_time_value to actually work. Added new function + silc_timezone. Affected files are lib/silcutil/silctime.[ch]. + +Tue Feb 20 08:31:28 EET 2007 Pekka Riikonen + + * SILC Client 1.1 beta2. + +Mon Feb 19 16:06:27 EET 2007 Pekka Riikonen + + * Fixed client to properly abort TCP stream creation when + giving /QUIT. Affected file + apps/irssi/src/silc/core/silc-servers.c. + + * Fixed several connecting aborting crashes from the client + library, packet engine and socket stream. Affected files + are in lib/silclient/, lib/silccore/silcpacket.c and + lib/silcutil/unix/silcunixsocketstream.c. + + * Fixed private key export double free crash in key generation. + Affected file is lib/silccrypt/silcpk.c. + + * Fixed FSM event waiting when there are multiple signallers + and the waiter goes away after the first signal. Affected + file in lib/silcutil/silcfsm.c. + +Sun Feb 18 22:02:22 EET 2007 Pekka Riikonen + + * Fixed FSM event signalling to check if the waiter has gone + away already. Affected file is lib/silcutil/silcfsm.c. + + * Fixed counter mode encryption/decryption to handle non-padded + SILC packets correctly. The silc_cipher_set_iv now + in counter mode resets for a new block. Affected files are + in lib/silcske/, lib/silccrypt/, lib/silcpacket/. + +Sun Feb 18 12:15:21 EET 2007 Pekka Riikonen + + * SILC Client 1.1 beta1. + + * Memory leak fixes around the libraries. + +Fri Feb 16 16:53:16 EET 2007 Pekka Riikonen + + * Added better check for epoll() in configure. Affected file + is lib/configure.ad. + +Thu Feb 15 16:50:34 EET 2007 Pekka Riikonen + + * Fixed per scheduler data input buffer in packet engine. Use + list of inbufs instead of just one so that multiple streams + can do partial reads to different buffers. Affected file is + lib/silccore/silcpacket.c. + + * Fixed WATCH notify handling in client library. Affected file + is lib/silcclient/client_notify.c. + +Wed Feb 14 17:05:38 EET 2007 Pekka Riikonen + + * Fixed packet wrapper stream API to support encoder/decoder + for packets, and to handle partial reading correctly. Fixed + also inbuf size checking in reading to have enough space before + reading. Affected files are lib/silccore/silcpacket.[ch]. + + * Rewrote file transfer in client library. Affected files are + in lib/silcclient/. + + * Added TCP/UDP listener (internal) API to client library to have + generic way of dealing with listeners. Fixed Key Agreement and + file transfer to use it. Affected files are in lib/silcclient/. + + * Fixed SKE to process SUCCESS packets synchronously and to call + completion synchronously. Affected file is lib/silcske/silske.c. + + * Fixed pthread rwlock detection. Affected file includes/silc.h.in. + + * Implemented SILC_ATTRIBYUTE_PHONE_NUMBER. Affected files are + lib/silccore/silcattrs.[ch]. SILC Protocol version 1.3 change. + +Fri Feb 2 22:24:11 EET 2007 Pekka Riikonen + + * Added support for SILC protocol version 1.3 NEW_CLIENT packet + to client library. Affected file is + lib/silcclient/client_register.c. + + * Serialize NICK and JOIN commands to avoid problems locally + with changing ID while joining to channel. Affected file is + lib/silcclient/command.c. + + * Fixed entry resolving while handling incoming JOIN notify. + Handle properly cases, in re-processing of notify packets, where + the IDs may become invalid while resolving the entry (like nick + change). Entry is invalid if it doesn't have nickname, and such + entries are not delivered to application anymore. These fixes + problems of not seeing JOINs when remote user changes nickname + at the same time. Affected files are in lib/silcclient/. + +Thu Feb 1 18:35:58 EET 2007 Pekka Riikonen + + * Added support for computing message payload MAC in new way + (SILC Protocol version 1.3). Bakcwards support for old way + remains. Affected files are lib/silccore/silcmessage.[ch]. + +Sat Jan 27 22:37:30 EET 2007 Pekka Riikonen + + * Added SilcRwLock API, a read/write lock. Affected files are + lib/silcutil/silcmutex.h and in lib/silcutil/[unix|win32|symbian]/. + +Wed Jan 24 18:55:21 EET 2007 Pekka Riikonen + + * Merged Irssi SVN (irssi 0.8.11). Affected files in apps/irssi/. + +Tue Jan 23 16:05:27 EET 2007 Pekka Riikonen + + * The silc_schedule_set_listen_fd now returns boolean value. + Fixed FD task adding to check correctly for already added + FD tasks. Added stricter error checking for FD scheduling + with epoll(). Affected files are lib/silcutil/silcschedule.[ch] + and lib/silcutil/unix/silcunixschedule.c. + + * The silc_stream_set_notifier now returns boolean value. Changed + all streams to support and check for the error condition. + Affected files are in lib/silcutil/. + + * Fixed SKE library session aborting and deletion. Affected + file are lib/silcske/silcske.c. + +Tue Jan 16 18:22:08 EET 2007 Pekka Riikonen + + * Implemented PKCS #1 with appendix with hash OID in the + signature. Affected files are lib/silccrypt/silcpkcs1.[ch], + lib/silccrypt/silchash.[ch] and + lib/silcasn1/silcasn1[_encode|decode].[ch]. + +Sun Jan 14 23:12:41 EET 2007 Pekka Riikonen + + * Added support for Version (V) SILC public key identifier. + Affected files are lib/silccrypt/silcpk.[ch]. + +Tue Jan 9 19:37:51 EET 2007 Pekka Riikonen + + * Rewrote connection auth request in client library. It is now + done automatically by the library and the resolved method given + as a hint to get_auth_method client operation. Affected files + are lib/silcclient/. + +Wed Jan 3 18:06:33 EET 2007 Pekka Riikonen + + * Added silc_packet_stream_wrap into lib/silccore/silcpacket.[ch]. + It can be used to wrap SilcPacketStream into SilcStream. + + * Fixed %p formatting from silc_snprintf. Affected file is + lib/silcutil/silcsnprintf.c. + + * Ported SFTP library to new utility library. Ported also + the SFTP testers. Affected files in lib/silcsftp/. + +Tue Jan 2 17:18:46 EET 2007 Pekka Riikonen + + * Added lib/silcutil/silcsnprintf.[ch]. Added in addition + of silc_snprintf, silc_vsnprintf, silc_asprintf and + silc_vasprintf. + +Sat Dec 30 23:23:17 EET 2006 Pekka Riikonen + + * Added preliminary Symbian support. Changes around the source + tree. The symbian/ directory now includes Carbide.c++ project + files to compile the sources. + + * Added silc_snprintf. Affected files are + lib/silcutil/silcstrutil.[ch]. + +Thu Dec 21 18:01:51 EET 2006 Pekka Riikonen + + * Changed SILC_FSM_[CONTINUE|YIELD|WAIT|FINISH] enums to + macros. SILC_FSM_CONTINUE macro now immediately calls the + next state instead of first returning back to FSM. Helps + in debugging crashes etc. + + Removed FSM Semaphores. Introduced FSM Event which is + asynchronous event. Affected files are in lib/. + + * Added epoll(7) support to SILC Scheduler. It is used by default + if it is available. Affected files are + lib/silcutil/silcschedule.[ch], + lib/silcutil/unix/silcunixschedule.c. + +Tue Dec 19 20:39:35 EET 2006 Pekka Riikonen + + * Added CTR mode to AES. Simplified cipher implementation API + more. Affected files are in lib/silccrypt/. + +Sun Dec 17 16:46:55 EET 2006 Pekka Riikonen + + * Removed `detach' client operation. The detachment data is + now delivered in SILC_COMMAND_DETACH command reply to + application. Affected file in lib/silcclient/. + + * Rewrote resuming/detaching in client library. + + * Added boolean encryption indicator for silc_cipher_set_key. + Affected files lib/silccrypt/silccipher.[ch]. + +Wed Dec 13 18:05:50 EET 2006 Pekka Riikonen + + * Added silc_likely and silc_unlikely macros for GCC branch + prediction optimizations. Affected file lib/silcutil/silctypes.h. + + * Added assembler AES optimization. Cleaned up the SILC Cipher + implementation API. Affected files are in lib/silccrypt/. + +Tue Dec 12 18:56:14 EET 2006 Pekka Riikonen + + * Changed back the SILC_FSM_THREAD_WAIT operation to not + continue to next state if thread is finished already. That + check is not done anymore. Affected files are + lib/silcutil/silcfsm.[ch]. + +Sun Dec 10 13:54:52 EET 2006 Pekka Riikonen + + * Removed silc_packet_[get|set]_ciphers and + silc_packet_[get|set]_hmacs. Added silc_packet_set_keys that + handle REKEY_DONE packet sending in rekey. Affected files + are lib/silccore/silcpacket.[ch]. + + * Added silc_fsm_is_started. Affected files are + lib/silcutil/silcfsm.[ch]. + + * Added settings sign_channel_message, sign_private_message + and key_exchange_rekey_pfs to SILC Client. Added UDP transport + support for key agreement in /KEY command. Affected files + in apps/irssi/src/silc/core/. + + * During SILC Client initialization forward log messages to + stderr. Affected files in apps/irssi/src/silc/core/. + +Thu Dec 7 19:07:21 EET 2006 Pekka Riikonen + + * Added silc_ske_get_key_material. Affected files are + lib/silcske/silcske.[ch]. + + * Added silc_packet_stream_is_udp. Affected files are + lib/silccore/silcpacket.[ch]. + + * Added SKE packet retransmission support with UDP transport. + Affected file is lib/silcske/silcske.c. + +Sun Dec 3 22:00:12 EET 2006 Pekka Riikonen + + * Added silc_socket_stream_is_udp. Affected file is + lib/silcutil/silcsocketstream.[ch]. + + * Added UDP transport support to packet engine. Affected file + is lib/silccore/silcpacket.c. + + * Added silc_socket_stream_is_udp. Affected file is + lib/silcutil/silcsocketstream.[ch]. + +Sat Nov 18 11:33:03 EET 2006 Pekka Riikonen + + * Added silc_packet_send_va[_ext] to send variable argument + formatted buffers. Affected files lib/silcore/silcpacket.[ch]. + + * Timeout freelist garbage collection added to scheduler. + Affected file lib/silcutil/silcschedule.c. + +Thu Nov 9 18:12:15 EET 2006 Pekka Riikonen + + * Added silc_show_public_key_file to + lib/silcapputil/silcapputil.[ch]. + + * Added SILC_STR_ADVANCE support for buffer unformatting. + Affected file lib/silcutil/silcbuffmt.c. + +Tue Nov 7 18:04:36 EET 2006 Pekka Riikonen + + * Added SILC_STR_ADVANCE. Affected file is + lib/silcutil/silcbuffmt.[ch]. + + * The silc_buffer_strformat preserves buffer locations now. + + * Added lib/silcutil/silcatomic.h for atomic operations. + +Sat Sep 16 11:23:06 EEST 2006 Pekka Riikonen + + * Added lib/silchttp, SILC HTTP server, a very simple HTTP + server. + + * Fixed MIME deocing when data portion is not present. + Affected file lib/silcutil/silcmime.c. + +Wed Jul 19 12:06:38 EEST 2006 Pekka Riikonen + + * Moved lib/silccore/silcidcache.[ch] to lib/silcutil/. + + * Added IV Included support to packet routines, to allow + packet sending and receiving on UDP/IP. Affected files are + lib/silccore/silcpacket.[ch]. + + * Added SILC_FSM_YIELD. Affected files lib/silcutil/silcfsm.[ch]. + +Tue Jul 18 20:10:28 EEST 2006 Pekka Riikonen + + * Added UDP support to network and socket stream library. + +Sat Jun 24 22:33:18 EEST 2006 Pekka Riikonen + + * Added conditional variables. New files are + lib/silcutil/silcondvar.h and platform specific implementations. + +Thu Jan 5 20:02:31 CET 2006 Patrik Weiskircher + + * make sure session->hostname and session->port are valid before the + application callback is done, since things will go wrong if the + application immediately calls silc_client_file_receive. Affected + file lib/silcclient/client_ftp.c. + Patch received from Stefan Siegel , thanks! + +Fri Dec 30 22:54:21 EET 2005 Pekka Riikonen + + * New SILC PKCS API enabling support for other public keys + and certificates, lib/silccrypt/silcpkcs.[ch], silcpk.[ch]. + + * Separated SILC Public Key Payload routines from the PKCS API + to lib/silccore/silcpubkey.[ch]. + +Wed Dec 28 13:55:22 EET 2005 Pekka Riikonen + + * Added SILC Key Repository library, lib/silcskr. + + * Added SILC Server library, lib/silcserver. + +Mon Dec 19 18:04:24 EET 2005 Pekka Riikonen + + * MIME objects in attributes now use SilcMime. Affected files + are lib/silccore/silcattrs.[ch]. + +Sat Dec 17 20:13:31 EET 2005 Pekka Riikonen + + * Synchronize semaphore posting for real threads in FSM. + Affected files are lib/silcutil/silcfsm.c, silcfsm_i.h. + +Mon Nov 28 17:06:54 EET 2005 Pekka Riikonen + + * Added silc_file_set_nonblock. Affected file is + lib/silcutil/silcfileutil.h. + + * Added silc_fd_stream_file to lib/silcutil/silcfdstream.[ch]. + +Sat Nov 26 16:13:40 EET 2005 Pekka Riikonen + + * FSM based implementation of SILC SKE. Simpler interface also. + Affected files are in lib/silcske/. + + * Added SilcBool type. Affected file lib/silcutil/silctypes.h. + +Sat Nov 19 17:34:51 EET 2005 Pekka Riikonen + + * Added SilcMime API to lib/silcutil/silcmime.[ch]. The old + silc_mime_parse is available but deprecated. + + * Check that packet is valid when processing key exchange, + authentication and rekey protocols. Fixes a crashbug. + Affected files are apps/silcd/protocol.c and + lib/silcclient/protocol.c. + + * Added SILC_HASH_MAXLEN to lib/silccrypt/silchash.h, and changed + all hash buffers to use that instead of fixed values. + +Wed Nov 16 15:47:12 EET 2005 Pekka Riikonen + + * Added SHA-256 to crypto library. The SHA-256 takes now + precedence over SHA-1. + +Thu May 26 20:31:06 EEST 2005 Pekka Riikonen + + * Check for valid return value from regcomp. Affected file + lib/silcutil/unix/silcunixutil.c. + +Tue May 10 23:11:17 EEST 2005 Pekka Riikonen + + * Fixed silc_hash_uint to work with integers. Affected + file lib/silcutil/silcutil.c. + +Tue May 10 15:11:53 EEST 2005 Pekka Riikonen + + * Rewritten SILC Log API. Affected files lib/silcutil/silclog.[ch]. + +Mon May 9 12:00:08 EEST 2005 Pekka Riikonen + + * Fixed channel public key list saving on JOIN command reply + on backup router. Affected file apps/silcd/command_reply.c. + +Mon May 2 10:42:49 EEST 2005 Pekka Riikonen + + * Added default limit how many channels client can join, + default is 50. Added 'channel_join_limit' configuration + option to server too. Affected files are apps/silcd/command.c + and serverconfig.[ch]. + +Sun May 1 17:42:55 EEST 2005 Pekka Riikonen + + * --without-silc -> --with-silc, --without-irssi -> --with-irssi. + On Toolkit the server and client are not compiled by default. + Affected file configure.ad. + +Thu Apr 28 15:57:37 EEST 2005 Pekka Riikonen + + * Added lib/contrib/getopt.[ch] for platforms that don't + have it (it is not GPL implementation). + + * Fixed compilation when pkg-config is used. + +Wed Apr 27 11:49:41 EEST 2005 Pekka Riikonen + + * A comma in invite/ban string is invalid, check for it. + Affected file apps/silcd/server_util.c. + + * Added SERVICE command to the server. It parses the command + request but SILC Server does not support services for the + time being. Affected file apps/silcd/command.[ch]. + + * Added SERVICE command and command reply to client library. + It is however incomplete. Updated Toolkit documentation. + Affected files are lib/silcclient/command[_reply].[ch]. + + * Fixed IDENTIFY/WHOWAS command reply to send the username + correctly (uninitialized buffer). Affected file is + apps/silcd/server_query.c. + +Mon Apr 25 14:25:24 EEST 2005 Pekka Riikonen + + * Moved silcer/, silc/, silcd/ and irssi/ to apps/. This + finalizes the major restructuring of the CVS tree. + +Mon Apr 25 00:39:30 EEST 2005 Pekka Riikonen + + * Send empty MOTD reply if MOTD file cannot be read. + Affected file silcd/command.c. + +Sun Apr 24 12:01:37 EEST 2005 Pekka Riikonen + + * Optimized primer number generator to use simpler conversion + routines. Also assure that the prime number will have the + highest bit set after modifying it. Affected file is + lib/silcmath/silcprimegen.c. + + * Added LibTomMath to SILC Math library (SILC_DIST_TMA). + + * Added FastTomMath to SILC Math Library (SILC_DIST_TFM), + for now only for testing purposes, it will not be delivered + in any distribution for now. + + * Removed NSS MPI from the source tree. Due to upcoming + license change for the SILC Toolkit, we cannot deliver the + NSS MPI anymore. I decided to replace it in all distributions + with public domain library. + + * Removed GNU regex from lib/contrib and introduced free + GNU compatible regex, lib/contrib/regexpr.[ch]. Added + GNU regex compatible API to it (only partial). + + * Removed getopt routines from lib/contrib. + +Fri Apr 22 12:21:44 EEST 2005 Pekka Riikonen + + * Use silc_server_send_command_reply to send replies instead + of encoding packet itself. Affected file silcd/command.c. + + * Added command sending and receiving statistics to server. + Affected files in silcd/. + + * GCC 4 warning fixes. -Wno-pointer-sign option is now used + with GCC, for it not to warn about pointer signedness. + +Tue Apr 19 11:57:35 EEST 2005 Pekka Riikonen + + * Added context to the SilcIDCache destructor. Affected + files are lib/silccore/silcidcache.[ch], + lib/silcclient/client.c and silcd/server.c. + +Mon Apr 18 09:53:28 EEST 2005 Pekka Riikonen + + * Added pkg-config check to configure. + + * The PublicKeyDir must not be used with Admin block in server + config. Affected file silcd/serverconfig.c. + +Sat Apr 16 20:23:48 EEST 2005 Pekka Riikonen + + * Added Autodist. + +Thu Apr 14 20:25:08 EEST 2005 Pekka Riikonen + + * Handle empty LIST command reply correcttly in server. Affected + file silcd/command_reply.c. + + * Handle empty LIST command reply correctly in client library. + The application will now receive one LIST command reply with + all arguments set to NULL if there are no channels. Updated + Client Library documentation accordingly. Affected file + lib/silcclient/command_reply.c. + +Tue Apr 12 00:02:09 EEST 2005 Pekka Riikonen + + * Added channel name string stringprep profile to the protocol + and implementation to allow a little free'er channel name + strings. Affected files are lib/silcutil/silcstringprep.[ch]. + + * Added silc_channel_name_[check|verify] to check and verify + channel name strings. Affected files are + lib/silcutil/silcstrutil.[ch]. + + * Added support for the new channel name preparation in client + library and server. Affected files in lib/silcclient and + silcd/. + +Mon Apr 11 13:40:27 EEST 2005 Pekka Riikonen + + * Added the Autodist into the source tree. It replaces the + old ./prepare. It can be used to create distributions as + previously. See README.CVS and README.DIST. See + distributions in distdir/. + +Sun Apr 10 11:30:56 EEST 2005 Pekka Riikonen + + * Make sure query sends at least an error back if nothing + more is sent. Affected file silcd/server_query.c. + +Thu Apr 7 14:50:01 EEST 2005 Pekka Riikonen + + * During query, check if the original command caller goes + away. If it does, stop the query. Affected file + silcd/server_query.c. + + * Check for valid channel creation in JOIN command reply. + Affected file lib/silcclient/command_reply.c. + + * Handle the resolver counter in silc_client_get_users_by_channel + callback correctly. Fixed auto-join bug in Gaim. Affected + file lib/silcclient/idlist.c. + +Wed Apr 6 16:56:53 EEST 2005 Pekka Riikonen + + * Added some better error messages. Affected file + silcd/command_reply.c and packet_receive.c. + + * Handle error in WATCH command propely on backup router. + Affected file silcd/command.c. + + * Fixed freeing of unfreeable variable in WHOIS command reply. + Affected file silcd/command_reply.c. + +Wed Apr 6 09:10:31 CEST 2005 Pekka Riikonen + + * Added pkg-config .pc file creation for silc core library + and silcclient library. A patch by c0ffee. + + * Removed the need for GNU Libidn. Added the simple stringprep + from libidn into lib/contrib/. It is now used also on Windows + build. + +Mon Apr 4 15:15:46 EEST 2005 Pekka Riikonen + + * Simplified the invite and ban string handling in the + server. Check for valid invite and ban arguments also. + Affected file silcd/server_util.c. + +Sun Apr 3 14:58:53 EEST 2005 Pekka Riikonen + + * Added WATCH list announcing in backup router protocol. + Affected files are silcd/command.c, server.c, server_backup.c. + + * Do not change users mode to founder on normal server/backup + if the founder mode is set, and user is first one to join. + Affected file silcd/pcaket_receive.c. + + * Do not send CUMODE_CHANGE notify back to sender. Affected + file silcd/packet_receive.c. + + * Added getrusage() to take noise in SILC RNG. A patch by + Mika Boström. Affected files are configure.in.pre, + includes/silcincludes.h.in, lib/silccrypt/silcrng.c. + +Sat Apr 2 18:09:30 EEST 2005 Pekka Riikonen + + * Splitted the SILC libraries configuration into a configure + fragment into lib/configure.ad. It is now possible, once + this feature is added, to specify whether to compile or not + compile included SILC libraries. Affected files are + configure.in.pre, lib/silcmath/mpi/configure.ad, + lib/configure.ad, Makefile.defines.pre and + Makefile.defines_int.pre. + + * Added --with-silc-includes and --with-silc-libs to configure. + If specified the included libs are not compiled, but the + specified libs are used. Pkg-config is not yet supported. + Affected file configure.in.pre. + + * Fixed WATCH command handling on backup router. Router does not + send the watch command any more to backup if it originates from + backup. Affected file silcd/command.c. + +Fri Apr 1 18:52:47 EEST 2005 Pekka Riikonen + + * Changed announcing to not announce unregistered clients. + Affected file silcd/server.c. + + * Fixed username handling in command reply. Affected file + silcd/command_reply.c. + + * Log files are now 0600. Affected file lib/silcutil/silclog.c. + +Thu Mar 31 22:34:22 CEST 2005 Patrik Weiskircher + + * Added new define SILC_MACOSX, if __APPLE__ and __MACH__ is defined. + Affected file: includes/silcincludes.h.in + + * bool is defined as _Bool on Mac OS X now. + Affected file: lib/silcutil/silctypes.h + +Thu Mar 31 08:52:06 EEST 2005 Pekka Riikonen + + * Added support for UTF-8 nicknames, channel names and + server names in client library. Affected files in + lib/silcclient/. + + * Added __SILC_HAVE_PTHREAD, __SILC_HAVE_SIM, __SILC_HAVE_LIBIDN, + and __SILC_ENABLE_DEBUG to include/silcclient.h for third-party + software to check how Toolkit has been compiled. + +Wed Mar 30 22:16:35 EEST 2005 Pekka Riikonen + + * Added silc_utf8_str[n]casecmp into lib/silcutil/silcutf8.[ch]. + + * Use silc_utf8_str[n]casecmp instead of strcmp routines + in library and in SILC Client when dealing with nicknames + and other identifier strings. Affected file in client lib + and irssi. + + * Convert nickname to UTF-8 in /msg and /smsg. Affected file + irssi/src/silc/core/silc-servers.c. + +Wed Mar 30 10:50:02 EEST 2005 Pekka Riikonen + + * Fixed idcache to work with the new identifier strings. + Affected file lib/silccore/silcidcache.c. + + * Added UTF-8 hash and compare function for SilcHashTable. + Affected file lib/silcutil/silcutil.[ch]. + + * Added casefolding stringprep, SILC_CASEFOLD_PREP. + Affected file lib/silcutil/silcstringprep.[ch]. + + * Changed the identifier string handling to include the original + format in client, server, channel entries and normalized + format in cache. Affected files in silcd/. + +Tue Mar 29 16:51:35 EEST 2005 Pekka Riikonen + + * Added support for the new identifier strings and their + validity checking. Nicknames, channel names and usernames + can now include practically any kind of letters and various + other characters. Affected files in silcd/ and in libraries. + + NOTE: comparing these strings should now be done with memcmp() + to check binary compatibility. All these strings are normalized + and casing is irrelevant. + + * Added silc_identifier_check to lib/silcutil/silcstrutil.[ch] + as easy function for applications to check whether identifier + strings are valid. + +Tue Mar 29 00:45:11 EEST 2005 Pekka Riikonen + + * Fixed SILC_STRING_LDAP_DN encoding and decoding. Affected + file lib/silcutil/silcutf8.c. + + * Added SILC_STRING_UTF8_ESCAPE to lib/silcutil/silcstrutil.h. + +Mon Mar 28 22:46:23 CEST 2005 Jochen Eisinger + + * Make public key in getkey reply mandatory. Affected file + lib/silcclient/command_reply.c + +Sun Mar 27 19:03:31 CEST 2005 Patrik Weiskircher + + * Added Parameter dont_register_crypto_library to + SilcClientParam. If set to TRUE, silcclient library will + not initalize the Crypto Libraries and application + will need to do it. Affected file lib/silcclient/silcclient.h, + lib/silcclient/client.c. + +Sun Mar 27 19:02:48 EEST 2005 Pekka Riikonen + + * Imported new silc_utf8_[encode|decode] routines from + my internal SILC 1.1 source tree. New encodings added: + SILC_STRING_LOCALE (SILC_STRING_LANGUAGE is deprecated), + SILC_STRING_UTF8, SILC_STRING_PRINTABLE, SILC_STRING_VISIBLE, + SILC_STRING_TELETEX, SILC_STRING_NUMERICAL and + SILC_STRING_LDAP_DN. + + * Splitted UTF-8 routines into lib/silcutil/silcutf8.[ch]. + + * Implemented stringprep (RFC 3454) API. Internally we use + GNU Libidn's stringprep, for now, so it is required now to + compile SILC sources. Added lib/silcutil/silcstringprep.[ch]. + + * Added checking for GNU Libidn and --with-libidn to configure. + +Wed Mar 23 11:20:33 CET 2005 Jochen Eisinger + + * If the passphrases entered do not match while generating a new key, + completly start over instead of going into an infinite loop asking + the user to re-enter the passphrase correctly. Affected file + lib/silcutil/silcapputil.c + +Sun Jan 9 14:28:51 CET 2005 Pekka Riikonen + + * Make sure server is removed from backup list when it is + deleted. Affected files silcd/command.c, server.c, + server_util.c. + + * Close socket when connecting to router fails. Affected + file silcd/server.c. + +Tue Jan 4 13:06:26 CET 2005 Jochen Eisinger + + * Adopt configuration toolchain to current auto-tools. + Affected files prepare, irssi/configure.in + * Revert most of the UTF-8 fixes to SILC Client 1.0.1. Will + redo that. Affected files irssi/src/silc/core/client_ops.c, + irssi/src/fe-common/silc/fe-silc-channels.c + * Take over command line options into silcclient data structure. + Affected file irssi/src/silc/core/silc-core.c + +Wed Dec 8 16:15:11 CET 2004 Pekka Riikonen + + * Do not try to initiate backup resuming protocol forever. + Affected file silcd/server_backup.c. + +Wed Nov 24 18:24:05 CET 2004 Pekka Riikonen + + * ID change in resuming has to be done before changing + detached client's modes, since the ID change may fail and + leave ghosts on the network. Affected file is + silcd/packet_receive.c. + +Tue Nov 23 16:54:35 CET 2004 Pekka Riikonen + + * Fixed Win32 scheduler to not stuck anymore. A patch from + Juha Räsänen. Affected file is + lib/silcutil/win32/silcwin32schedule.c. + + * Fixed QoS parsing for connection blocks in server. Affected + file is silcd/serverconfig.c. + + * Fixed server statistics increasing in server. Affected file + is silcd/server.c. + + * The CLOSE command now marks backup router as self disconnected + to avoid resuming problems. Affected file silcd/command.c. + +Wed Sep 22 19:46:32 CEST 2004 Patrik Weiskircher + + * When using silc_net_create_connection[_async], and your system can + create IPv6 sockets, it will try to connect to the IPv6 host. + Now it tries to connect to an IPv4 host if IPv6 fails. Affected + file lib/silcutil/unix/silcunixnet.c + +Fri Jun 18 19:26:58 CEST 2004 Pekka Riikonen + + * Check for valid route when receiving packet from router and + when routing it to local server in the cell. A patch from + Matt Miller. Affected files silcd/router.c and server.c. + +Sat May 1 13:55:54 CEST 2004 Patrik Weiskircher + + * Couldn't detach and reattach twice, because of the previous + commit. Affected file silcd/packet_receive.c + +Fri Apr 30 19:40:28 CEST 2004 Patrik Weiskircher + + * Added check to ignore Port value if Initiator is FALSE. + Remote router coudln't connect if Port was set. Affected file + silcd/serverconfig.c + + * If some client tries to resume more than once at the same time, + server crashed. Router didn't crash, but showed odd behaviour + (didn't allow clients to join anymore, ..). Affected files + silcd/packet_receive.c silcd/idlist.h + +Mon Mar 15 21:10:08 EET 2004 Pekka Riikonen + + * Destroy the file transfer session in silc_client_file_close + with timeout. Affected file lib/silcclient/client_ftp.c. + + * Call SFTP server monitor in READ and WRITE after the actual + operations. Affected file lib/silcsftp/sftp_server.c. + +Wed Mar 10 21:30:02 EET 2004 Pekka Riikonen + + * Create one configure script from configure fragments + (configure.ad). This is a first step towards new distribution + system. Affected files prepare, configure.in.pre, + lib/silcmath/mpi/configure.ad. + +Wed Mar 10 18:35:24 CET 2004 Jochen Eisinger + + * Removed expiring of client key pair. Affected file is + irssi/src/silc/core/clientutil.c + +Tue Mar 9 17:11:58 EET 2004 Pekka Riikonen + + * Check the number of connections from real number of + connections instead of socket number, when deciding if + server is full. Affected files are silcd/server.c, + server_internal.h and silcd.c. + + * Clarified the connections_max meaning in General section + in doc/example_silcd.conf.in. + + * The reconnect_keep_trying default value set to TRUE + if it is not defined in the config file. Affected file + silcd/serverconfig.c. + +Wed Mar 3 15:13:49 CET 2004 Pekka Riikonen + + * Fixed crashbug in connection closing, after a protocol + completion callback, which might have closed it already. + Affected file silcd/server.c. + + * Fixed rekey with PFS in backup router. It did not allow + rekeys with PFS, and when the rekey protocol timedout + it crashed the backup router without the above fix. Affected + file silcd/packet_send.c and server.c. + +Sat Feb 28 16:25:09 EET 2004 Pekka Riikonen + + * The silc_client_add_channel_private_key now returns the + private key context if pointer is given as argument. + Affected files are lib/silcclient/silcclient.h and + client_channel.c. + + * Added support for using channel private keys in SILC + Client Library even if the private key mode is not set + on the channel. Affected file lib/silcclient/client_channel.c. + + * The channel private key used to decrypt message is now + delivered to the application in the 'channel_messageÃ' client + operation. Affected files are lib/silcclient/silcclient.h + and client_channel.c. + + * Fixed wrong arg type for user limit in CMODE command reply. + Affected file silcd/command.c. + + * The user limit is now taken and saved to SilcClientEntry in + JOIN and CMODE command replies and in CMODE_CHANGE notify. + Affected files lib/silcclient/silcclient.h, command_reply.c + and client_notify.c. + + * Added support to the new private message key indicator + packet. Added a new function to the client library: + silc_client_send_private_message_key_request. The sender + indicates to be initiator, and receiver is responder. + Added the indicator to the SilcClientEntry as 'prv_resp' + boolean. Affected files are lib/silcclient/silcclient.h + client.[ch], and client_prvmsg.c. + +Fri Feb 27 11:25:26 CET 2004 Pekka Riikonen + + * Fixed the JOIN command calling when called with both + -auth and -founder. Affected file is lib/silcclien/command.c. + +Wed Feb 25 23:12:11 EET 2004 Pekka Riikonen + + * Check watcher list for resumed clients as well. Affected + file is silcd/packet_receive.c. + +Tue Feb 24 16:49:10 EET 2004 Pekka Riikonen + + * Implemented the user limit to the CMODE_CHANGE notify, + CMODE command reply and JOIN command reply in server. + Affected files are silcd/server.c, command.c, command_reply.c, + packet_send.c and packet_receive.c. + +Mon Feb 23 23:31:15 EET 2004 Pekka Riikonen + + * Defined SILC_STRFMT_END that must be used now with + silc_buffer_strformat, instead of SILC_STR_END. Fixes + crashes on AMD64. Affected files are lib/silcutil/silcbuffmt.h, + lib/silcclient/silcvcard.c, silcd/server_util.c. + + * Fixed the adding of public key to the WATCH list in server. + Fixed the WATCH notify sending to client. Affected files + are silcd/packet_send.[ch], command.c, server_util.c. + + * Implemented the watching by public key in the SILC Client + Library and SILC Client. Affected files are + lib/silcclient/command.c and client_notify.c. + +Mon Feb 23 09:30:30 CET 2004 Pekka Riikonen + + * Added support for public key watching in server. Affected + files are silcd/server.c, server_internal.h, command.c, + server_util.c. + +Sun Feb 22 19:03:59 EET 2004 Pekka Riikonen + + * Added public key to the SIlcClientEntry. Affected files + are lib/silcclient/silcclient.h, command_reply.c, idlist.c + + * Fixed the get_clients_whois reply processing to return + exactly same entries server returned. Makes it possible + to search using attributes. Affected file is + lib/silcclient/idlist.c. + +Sat Feb 21 19:21:57 EET 2004 Pekka Riikonen + + * Save founder key to SilcChannelEntry. Affected files are + lib/silcclient/silcclient.h, command_reply.c, idlist.c. + +Fri Feb 20 20:37:38 EET 2004 Pekka Riikonen + + * Call the monitor callback with _CLOSED status from the + silc_client_file_close. Affected files are + lib/silcclient/client_fpt.c, silcclient.h + + * Added silc_client_get_clients_whois which resolves using + WHOIS, and supports requested attributes as well. + Affected files are lib/silcclient/silcclient.h, idlist.c. + +Fri Feb 19 21:09:22 EET 2004 Pekka Riikonen + + * Added support for asking the destination filename where + the downloaded file is saved in the file transfer. Affected + files are lib/silccilent/silcclient.h, client_ftp.c. + +Wed Feb 18 02:46:17 EET 2004 Pekka Riikonen + + * Fixed error handling in resuming data processing. Affected + files are lib/silcclient/client_resume.c and client.c. + +Tue Feb 17 19:34:30 EET 2004 Pekka Riikonen + + * Fixed silc_client_send_private_message to return TRUE correctly. + Affected file lib/silcclient/client_prvmsg.c. + + * Added topic to the SilcChannelEntry. Affected files are + lib/silcclient/silcclient.h, command_reply.c, client_notify.c. + +Fri Feb 13 14:19:14 CET 2004 Jochen Eisinger + + * Use conn->cmd_ident for all silc_client_command_call()s. Affected + file lib/silcclient/command.c + +Fri Feb 13 13:53:45 CET 2004 Jochen Eisinger + + * Convert all commands to UTF-8 before passing them to the + client library. Still need to convert replies from UTF-8 to + the locale encoding. Affected file + irssi/src/silc/core/silc-cmdqueue.c + +Fri Feb 13 13:13:07 CET 2004 Jochen Eisinger + + * redirect all silc_client_command_calls through a queueing framework. + This fixes /CYCLE and the annoying "nick change after auto-joining + a channel". Furthermore it defines one central point where + command parameters can be UTF-8-ified. Affected files + irssi/src/silc/core/Makefile, client_ops.c, silc-channels.c, + silc-servers.[ch], silc-core.c, silc-cmdqueue.[ch], silc-lag.c + +Fri Feb 13 12:04:41 CET 2004 Jochen Eisinger + + * use asynchronous connect() to establish router connections. + Fixes problem when the primary router goes down. Affected files + silcd/server.c, silcd/server_backup.c + +Thu Feb 12 20:09:59 EET 2004 Pekka Riikonen + + * Added SILC_[32|64]_TO_PTR and SILC_PTR_TO_[32|64] macros. + Fixed various compilation warnings when type casting ints + to pointers or vice versa, of different size. Updates around + the source free. + +Tue Feb 3 23:25:17 EET 2004 Pekka Riikonen + + * Surrogates not allowed in UTF-8 strings, updated decoder. + Affected file lib/silcutil/silcstrutil.c. Added UTF-8 + testers in lib/silcutil/tests/ directory. + +Wed Jan 14 18:42:44 EET 2004 Pekka Riikonen + + * Added SILC_CLIENT_CONN_ERROR_KE, ERROR_AUTH, ERROR_RESUME and + ERROR_TIMEOUT SilcClientConnectionStatus errors. Affected + files are lib/silcclient/silcclient.h, client.c. + +Mon Jan 12 13:01:10 CET 2004 Jochen Eisinger + + * When resuming a session fails, notify the user that the session + file needs to be removed eventually. Affected files + irssi/src/fe-common/silc/module-formats.[ch], + irssi/src/silc/core/client_ops.c. + +Tue Jan 04 12:16:04 CET 2004 Jochen Eisinger + + * Added DIST_SUBDIRS symbols to include all subdirs in distributions. + Affected files lib/silcutil/Makefile.am, lib/silcmath/Makefile.am + + * Typofix in Irssi::Silc module. Affected file + irssi/src/perl/silc/Silc.xs. + +Tue Jan 04 02:43:44 CET 2004 Jochen Eisinger + + * Changed the way NOTICE flagged messages are treated. Added support + for notices in queries and signing notices. Affected files + irssi/default.theme; irssi/docs/help/in/notice.in; + irssi/src/fe-common/silc/module-formats.[ch], fe-silc-messages.c; + irssi/src/silc/core/client_ops.c, silc-channels.c, silc-servers.c + + * Fixed typo in /ACTION help. Affected file + irssi/docs/help/in/action.in + +Mon Jan 03 23:26:38 CET 2004 Jochen Eisinger + + * Fixed typo in perl module. Affected file + irssi/src/perl/silc/Server.xs + + * Changed the way ACTION flagged messages are treated. Added support + for actions in queries and signing actions. Affected files + irssi/default.theme; irssi/docs/help/in/action.in; + irssi/src/fe-common/silc/module-formats.[ch], fe-silc-messages.c, + fe-silc-queries.c; irssi/src/silc/core/client_ops.c, silc-channels.c, + silc-servers.[ch] + +Mon Jan 03 16:04:29 CET 2004 Jochen Eisinger + + * Incorrectly reported error when client had to be resolved from + server in /SMSG. Affected file irssi/src/silc/core/silc-servers.c + +Sat Jan 3 16:37:15 EET 2004 Pekka Riikonen + + * Fixed whois public key hash table deleting and adding in + detached client case. Affected file silcd/packet_receive.c. + +Sat Jan 03 12:15:38 CET 2004 Jochen Eisinger + + * Changed filenames of silc/fe module not to collide with filenames + from core/fe. Also seperated public messages printing from + query messages printing. Affected files are all in + irssi/src/fe-common/silc. + +Sat Jan 3 12:18:07 EET 2004 Pekka Riikonen + + * Fixed the invite process handling during joining to use + correct server name for the client that is matched against + the invite string for the channel. Wrong server name caused + inability to join the channel. Affected file is + silcd/command.c. + +Fri Jan 2 23:34:17 EET 2004 Pekka Riikonen + + * Fixed the CUMODE channel founder authentication on normal + server to not remove the founder rights on existing founder + before checking that router accepts the mode change. Affected + files are silcd/command.c and silcd/packet_receive.c. + + * Remove the server entry correctly when rekey timeouts and + remote router connection on normal server is closed. Fixes + a crash where server uses the freed server entry. Affected + file silcd/server.c. + +Fri Jan 02 10:28:15 CET 2004 Jochen Eisinger + + * Add /SILCNET [ADD|REMOVE|LIST] command to manage different SILC + networks. This is the first step in solving the bug about + /SERVER ADD -silcnet . Affected files + irssi/docs/in/silcnet.in; irssi/src/fe-common/silc/Makefile.am, + fe-silcnet.c, fe-common-silc.c, module-formats.[ch]; + irssi/src/silc/core/silc-chatnets.[ch], silc-core.c, Makefile.am + +Thu Jan 01 20:11:32 CET 2004 Jochen Eisinger + + * /SMSG and /MMSG now correctly create new queries. Affected files + irssi/src/fe-common/silc/fe-messages.c, irssi/scripts/silc-mime.pl + + * Add basic support for SILC protocol specific variables in perl. + Affected files irssi/src/perl/silc/*, irssi/configure.in, + irssi/src/perl/Makefile.am + +Wed Dec 31 17:06:55 CET 2003 Jochen Eisinger + + * Don't use silc_get_input, it's obviously not reliable. Fixes + issue when the current key expires. Affect file + irssi/src/silc/core/clientutils.c + + * Make the session data filename configurable. This makes it + possible to have different session files for different + SILC networks. Affected files irssi/src/silc/core/silc-core.c, + client_ops.[ch], silc-servers.c, + irssi/src/silc/fe-common/silc/module-formats.[ch] + + * Use the same set of libtool files for the MPI lib as for the + rest of the toolkit. Affected files lib/silcmath/mpi/config.guess, + config.sub, configure.in, install-sh, missing, mkinstalldirs + +Sun Dec 28 21:57:39 EET 2003 Pekka Riikonen + + * Fixed server statistics decrementing error to not go to + negative. Affected file silcd/packet_receive.c. + +Sat Dec 20 14:42:36 EET 2003 Pekka Riikonen + + * Use silc_server_query_add_error to add error in public key + search error. Added support in send_reply to send errors + without specific argument. Affected file silcd/server_query.c. + + * Fixed the WHOIS, IDENTIFY and WHOWAS error handling in SILC + Client for NO_SUCH_NICK. It was against the protocol specs. + Affected file irssi/src/silc/core/client_ops.c. + + * Added backwards support for the wrong NO_SUCH_NICK error sending + in server. To be removed in SILC Server 1.0. Both old clients + and clients with fixed error handling now works. Affected file + silcd/server_query.c. + +Sat Dec 20 00:44:47 CET 2003 Patrik Weiskircher + + * fixed a bug in the whois using attributes function where no + error was sent if no nickname and client id but the attributes were + given to whois. Affected file silcd/server_query.c + +Tue Dec 16 21:34:59 CET 2003 Patrik Weiskircher + + * remove public key from public key hashtable on detach. Affected + file silcd/packet_receive.c + + * free public key hashtable before removing clients on server + shutdown. Affected file silcd/server.c + + * remove public key prior deleting client-data on killing a client. + Affected file silcd/server_util.c + +Sat Dec 06 21:35:14 CET 2003 Patrik Weiskircher + + * Getting the MOTD from other servers works now. Affected + files are silcd/command.c and silcd/command_reply.c + +Thu Dec 04 11:33:46 CET 2003 Jochen Eisinger + + * Initialize the variable idletag, since it is tested in + silc_core_deinit for its default value. Affected file + irssi/src/silc/core/silc-core.c + +Sun Nov 30 19:47:02 CET 2003 Patrik Weiskircher + + * Fixed signed channel messages across cells. Affected file + silcd/packet_send.c + +Fri Nov 28 19:13:21 EET 2003 Pekka Riikonen + + * Changed the SILC_LOG_* macros to not be empty if SILC_DEBUG + is not defined. They can now be safely used in if-statements + without braces. Affected file lib/silcutil/silclog.h. + + * Added the checks for backup closing connection due to error + (local or remote) and thus not allow the resuming to occur + in reconnect. Affected files are silcd/packet_send.c + and server.c. + +Tue Nov 25 15:20:59 EET 2003 Pekka Riikonen + + * Help file updates. Affected files in irssi/src/docs/help/in/. + +Wed Nov 23 20:51:21 CET 2003 Patrik Weiskircher + + * Fixed channel messages across cells. Affected file + silcd/packet_send.c + +Wed Nov 12 11:34:56 EET 2003 Pekka Riikonen + + * Fixed file transmission accepting in client library to not + start the negotiation if user hasn't accepted the transfer, + instead create new session for resent transfer. Affected + file lib/silcclient/client_ftp.c. + + * Show the session ID in the file transmision list. Remove + session from list that failed to transfer. Switch the current + session automatically after transmission, and in errors, to new + session if other sessions exists in the transfer list. Affected + files are irssi/src/silc/core/silc-servers.c, + irssi/src/fe-common/silc/modfule-formats.c. + +Mon Nov 10 14:41:40 CET 2003 Jochen Eisinger + + * Fixed MIME header parsing for the hopefully last time. Affected + file lib/silcutil/silcstrutil.c + +Mon Nov 10 13:03:46 EET 2003 Pekka Riikonen + + * Rewrote the PKCS#1 routines. Added lib/silccrypt/silcpkcs1.[ch]. + + * The SILC RNG is now gauranteed to return non-zero random + values. Affected files are lib/silccrypt/silcrng.[ch]. + +Sun Nov 9 20:44:56 EET 2003 Pekka Riikonen + + * Fixed nickname formatting when changing only case of the + nickname. Affected file lib/silcclient/idlist.c. + +Sun Nov 9 19:33:59 CET 2003 Jochen Eisinger + + * Fixed a memory leak and incorrect printing of the "appears as" + message. Affected file irssi/src/silc/core/client_ops.c + +Sun Nov 9 17:45:11 EET 2003 Pekka Riikonen + + * Added CRT (Chinese Remainder Theorem) supported RSA + private keys and private key operations. This significantly + increases private key operation efficiency. No compatibility + issues with new or old private keys. Affected files are + lib/silccrypt/rsa.[ch], rsa_internal.h and pkcs1.c. + +Sat Nov 8 13:08:53 EET 2003 Pekka Riikonen + + * Fixed GCC-3.3.2 related compilation warnings from the + source tree. + +Fri Nov 7 23:01:47 EET 2003 Pekka Riikonen + + * Removed RC6 from distributions. + +Fri Nov 7 19:38:42 EET 2003 Pekka Riikonen + + * Added some better comments to lib/silccrypt/silcpkcs.h, + optimized some routines in lib/silccrypt/silcpkcs.c. + Added test_silcpkcs into lib/silccrypt/tests/. + + * Fixed silc_rng_global_init to actually init the global RNG + if RNG wasn't provided for it. Affected file is + lib/silccrypt/silrng.c. + +Thu Nov 6 21:08:28 EET 2003 Pekka Riikonen + + * Added silc_hash_table_find_by_context_ext. Affected files + lib/silcutil/silchashtable.[ch]. + + * Save the public key on normal server in WHOIS command reply + from attributes, if present, and add it to public key hash + table. Fixes WHOIS resolving by public key on normal server. + + Optimized the attributes resolving on normal server to not + resolve if we resolved them already from router. + + Affected files are silcd/server_query.c, command_reply.c. + +Wed Nov 5 19:36:30 CET 2003 Patrik Weiskircher + + * Added support for whois using attributes. + Affected files silcd/command_reply.c, silcd/packet_receive.c, + silcd/server.c, silcd/server_internal.h, silcd/server_query.c, + silcd/server_util.c + + * Added support for whois using public key attribute to /WHOIS i + client command. Affected files irssi/docs/help/in/whois.in, + irssi/src/silc/core/silc-servers.c, lib/silcclient/command.c + +Wed Nov 5 23:37:36 EET 2003 Pekka Riikonen + + * Fixed UMODE setting in server when the client has anonymous + mode set. The mode setting was not working. Affected file + silcd/command.c. + +Mon Nov 2 11:36:08 CET 2003 Jochen Eisinger + + * Fixed some bugs and typos related to sending split messages. + Print notification when sending messages with /MMSG. Affected + files irssi/scripts/silc-mime.pl, irssi/src/silc/core/client_ops.c + +Fri Oct 31 12:33:59 EET 2003 Pekka Riikonen + + * Optimized the socket referencing in packet routines, client + library and server. Affected files are lib/silccore/silcpacket.c, + lib/silcclient/client.c and silcd/server.c. + + * If silc_socket_set_qos is given with NULL arguments the QoS is + reset from the socket. Affected files are + lib/silcutil/silcsockconn.[ch]. + +Thu Oct 30 21:23:24 CET 2003 Jochen Eisinger + + * Add a /LISTKEYS command which lists the locally cached + client and server keys. Affected files + irssi/src/fe-common/module-formats.[ch], + irssi/src/silc/core/silc-{channels,servers}.c + irssi/docs/help/in/listkeys.in + +Thu Oct 30 20:23:40 EET 2003 Pekka Riikonen + + * Check that packet queue purging was successful. Affected + files lib/silcclient/client.c and silcd/packet_send.c. Related + to MAC failed errors. + + * Do not clear the inbuf even if it is empty if QoS was applied + to it. Otherwise the QoS data is cleared and MAC failed error + will occur. Affected file lib/silccore/silcpacket.c. + + * Use the rekey period time as rekey protocol timeout value. + If the rekey does not succeed during the rekey period there's + something very wrong, and we most likely end up with wrong keys, + do graceful reconnect then. Affected file silcd/server.c. + + * Take reference of the socket in the parser context, as it's + possible to have the parsers in queue after the socket is + disconnected and this may cause crash. Affected files are + lib/silccore/silcpacket.c, lib/silcclient/client.c and + silcd/server.c. + +Thu Oct 30 17:01:01 EET 2003 Pekka Riikonen + + * Fixed KICK command reply sending, it sent to replies. + Affected file silcd/command.c. + +Wed Oct 30 14:06:52 CET 2003 Jochen Eisinger + + * Finish the silc-mime.pl script. It now supports MIME type + guessing using magic files, signing data messages, executing + MIME handlers in background. Affected files + irssi/scripts/silc-mime.pl and irssi/docs/help/in/mmsg.in + + * Changed MIME signal handler to make things easier for the perl + script. Affected files irssi/src/silc/core/client_ops.c, + silc-servers.c, and irssi/docs/signals.txt + + * Cleaned up the silc_mime_parse function and fixed detection + of wrapped header lines. Affected file lib/silcutil/silcstrutil.c + +Sun Oct 26 21:19:02 EET 2003 Pekka Riikonen + + * Resolve the IP for file transfer listener from the connection + socket. Affected file lib/silcclient/client_ftp.c. + + * Accept NULL hostname parameter in the functions + silc_net_check_[local|remote]_by_socket. Do not reverse lookup + if hostname is not wanted. + +Fri Oct 24 21:24:12 CEST 2003 Jochen Eisinger + + * Fixed race condition between silc_client_init and + my_silc_scheduler. Affected file irssi/src/silc/core/silc-core.c + +Fri Oct 24 16:43:40 EEST 2003 Pekka Riikonen + + * Fixed file transfer connection closing when SIGNOFF for + the client is received from server. Affected file is + lib/silcclient/client_ftp.c. + +Tue Oct 21 13:35:57 CEST 2003 Pekka Riikonen + + * Check for disconnected socket in QUIT callback. Affected + file silcd/command.c. + +Thu Oct 21 09:43:17 CEST 2003 Jochen Eisinger + + * Modified the MIME parsing to allow \n and \r\n as delimiters. + Affected files lib/silcutil/silcstrutil.c + + * Cleaned up the escape/unescape functions for correctness and + speed. Affected file irssi/src/silc/core/client_ops.c + + * Removed handling for data messages with Content-Type: text/*, + moved parsing of MIME headers to the signal handler, added + support for signing and verifying data messages. Affected + files are irssi/docs/signals.txt, irssi/src/silc/core/client_ops.c, + irssi/src/silc/core/silc-{servers,channels}.c + + * Added a perl script for handling data messages based on + information read from Mailcap files. New file + irssi/scripts/silc-mime.pl + +Mon Oct 20 16:08:22 EEST 2003 Pekka Riikonen + + * Added new SILC_MESSAGE_FLAG_ACK that can be used to + acknowledge recepetion of a message to the sender. Updated + protocol specs. + +Sat Oct 18 11:55:33 EEST 2003 Pekka Riikonen + + * Unregister channel key saving callback when deleting channel. + Affected file lib/silcclient/idlist.c. + + * Do not remove the client from channels in NOTIFY_TYPE_SIGNOFF + before calling notify client operation. Affected file is + lib/silcclient/client_notify.c. + + * Unregister QoS tasks when deleting the socket connection. + Affected files lib/silcutil/silcsockconn.[ch], + unix/silcunixsockconn.c. + + * Implemented latest presence-attrs draft changes. Affected + files lib/silccore/silcattrs.h and + irssi/src/silc/core/silc-queries.c. + +Tue Oct 14 18:24:53 EEST 2003 Pekka Riikonen + + * Save old channel keys in list to allow more rapid change + of channel keys if server for some reason does that. This + avoids loosing so many channel messages due to not having + key to decrypt. Affected file lib/silcclient/silcclient.h, + idlist.c and client_channel.c. + +Mon Oct 13 21:37:47 EEST 2003 Pekka Riikonen + + * Continued backup router tests and fixes. Affected files + silcd/server_backup, server_util.c, server.c. See TODO. + +Sun Oct 12 19:58:18 EEST 2003 Pekka Riikonen + + * Fixed SERVER_SIGNOFF handling in servers. The client + was removed from wrong list thus not removing the client + at all. Affected file silcd/packet_receive.c. + + * Do not execute rekey protocol for disabled connections as + it would never go through. Affected file silcd/server.c. + + * Added timeout for rekey protocol to catch if the protocol + never executes successfully. Affected files silcd/server.c + and protocol.h. + +Sat Oct 11 15:39:22 EEST 2003 Pekka Riikonen + + * Abandon packet processing for disconnected sockets. Check + this always after calling packet processing callback. + Affected file lib/silccore/silcpacket.c. + + * Fixed double registration disconnection code in server. + Closed wrong connection. Affected file silcd/packet_receive.c. + +Fri Oct 10 16:27:12 EEST 2003 Pekka Riikonen + + * On normal server reconnect to primary during resuming 4 + times, then give up. Affected file silcd/server_backup.c. + + * If during reconnecting to routers we notice we have router + connection but no primary router set, the server is in desync. + Reconnect to primary to restore network. Affected file + silcd/server.c. + + * Assure that only one protocol is exeucting at the same time. + Added checks for all protocols. Affected files are + silcd/server.c and server_backup.c. + +Thu Oct 9 20:24:09 EEST 2003 Pekka Riikonen + + * Check that a string is not already part on invite/ban + string when processing it. Affected file silcd/server_util.c. + +Thu Oct 9 12:06:40 CEST 2003 Pekka Riikonen + + * Fixed the CUMODE_CHANGE for founder mode changes to comply + with 1.2 version of the protocol. Affected file is + silcd/packet_receive.c. + +Wed Oct 8 19:41:15 EEST 2003 Pekka Riikonen + + * ERR_BAD_PASSWORD now returns the Channel ID of the channel + where the passphrase was given. Affected file is + silcd/command.c. + +Wed Oct 8 09:32:12 CEST 2003 Pekka Riikonen + + * INVITE and BAN notifys are now delivered from routers to + servers (but not clients) on the channel. Updated specs and + code. Affected files silcd/packet_[send|receive].[ch], + command.c, server.c and server_util.c. + + * Implemented INVITE and BAN announcing. Affected files are + silcd/server.[ch], server_util.c. + + * Implemented SilcStatus error type argument returning in + command reply error in server. Affected file silcd/command.c. + + * Implemented SilcStatus argument returning in comand reply + in client library. The command_reply client operation now + returns error specific arguments as well. Affected files + are lib/silcclient/command_reply.[ch], client_resume.c, + lib/silccore/silcstatus.[ch]. + +Sun Oct 5 20:22:08 EEST 2003 Pekka Riikonen + + * Backup router protocol version 1.2 implemented. Testing still + required. Affected files in silcd/server_backup.[ch], server.c, + packet_receive.c and server_internal.h. + +Sun Oct 5 12:36:37 EEST 2003 Pekka Riikonen + + * silc_client_send_[channel|private]_message now return TRUE + or FALSE. Affected file lib/silcclien/client_channel.c and + client_prvmsg.c. + +Thu Oct 2 17:03:09 EEST 2003 Pekka Riikonen + + * Check for explicit nickname in INVITE and BAN processing + during join as well (and don't expect only wildcards in + invite/ban strings). Affected file silcd/command.c. + + * Fixed the INVITE and BAN by public key. The public key saved + is the PK payload (as specified) not the raw data. Affected + file silcd/server_util.c. + +Wed Oct 1 20:29:06 EEST 2003 Pekka Riikonen + + * UTF-8 text message support for actions and notices in SILC + Client. Affected file irssi/src/silc/core/client_ops.c. + + * silc_get_username and silc_get_real_name now returns sensible + data on Win32. Patch by Toni Willberg. Affected file is + lib/silcutil/win32/silcwin32util.c. + +Sun Aug 24 23:35:19 CEST 2003 Jochen Eisinger + + * Provide a signal handler to send MIME encoded messages and emit + a signal when a MIME encoded message is received. Also document + the signals for usage with the perl interface. + + A sample perl script will be supplied at a later point. + + Affected files are irssi/docs/signals.txt, + irssi/src/silc/core/client_ops.[ch], + irssi/src/silc/core/silc-{channels,servers}.c + +Sun Aug 24 12:58:30 CEST 2003 Jochen Eisinger + + * Use SILC_COMMAND_PING to estimate the round-trip time to the + server. Use this time to display a lag and disconnect when it + exceeds a specified limit. + + Affected files are irssi/src/silc/core/silc-{lag,core}.c. + +Mon Aug 11 17:14:17 EEST 2003 Pekka Riikonen + + * Remove the channel auth list in normal server if router + encofrces its list during connecting. Send notify to channel + to remove the mode to remove the list. Affected files are + silcd/server_util.c and silcd/packet_receive.c. + +Wed Aug 6 14:52:04 EEST 2003 Pekka Riikonen + + * Added support for channel public keys. Updated protocol specs + and implemented it. Affected files are + silcd/command.c, command_reply.c, lib/silcclient/command.c, + lib/silcclient/command_reply.c. + +Wed Jul 23 12:17:01 EEST 2003 Pekka Riikonen + + * Ignore SIGXFSZ and SIGXCPU signals in server. They can + terminate the process on Linux. Affected file silcd/silcd.c. + +Mon Jun 2 19:13:27 EEST 2003 Pekka Riikonen + + * Check for NULL buffer in silc_buffer_clear. Affected file + is lib/silcutil/silcbuffer.h. + + * Simplified the backup router protocol by removing the _GLOBAL + types. Updated protocol specs and the code. Affected files + are silcd/server_backup.[ch]. + +Thu Apr 24 19:50:25 EEST 2003 Pekka Riikonen + + * Deny '@' and '!' from nicknames since they are reserved + by the SILC_COMMAND_INVITE and SILC_COMMAND_BAN commands. + Updated protocol specs and the code. + + Affected files are silcd/server_util.[ch]. + +Wed Apr 9 18:51:59 EEST 2003 Pekka Riikonen + + * Fixed stack overflow in Irssi SILC client. Affected + file irssi/src/silc/core/client_ops.c. + + * Check that Host is set in ServerConnection and RouterConnection + in silcd.conf. Affected file silcd/serverconfig.c. + + * Fixed crash in server with protocol completion callbacks, + namely rekey and backup resuming protocols. Affected files + are silcd/server_backup.c and silcd/server.c. + + * Fixed rekey protocol to not restart if it is started already. + Affected files are lib/silcclient/client.c and + silcd/server.c.c + +Mon Mar 17 18:35:24 EET 2003 Pekka Riikonen + + * Rewrote SilcList, affected file lib/silcutil/silc*list.h. + + * Fixed EOF handling in SILC Config, affected file + lib/silcutil/silcconfig.c. + + * Fixed buffer overflows in lib/silcutil/silcstrutil.c. + + * Fixed RESOLVING flag handling in JOIN notify and other + notifys to handle the resolvings correctly in client library. + Affected file lib/silcclient/client_notify.c. + + * Do not send full INVITE and BAN lists in INVITE and BAN + notifys, only the changed information. Affected file + silcd/command.c. + + * Fixed INVITE notify sending in INVITE command, send it + only when needed. Affected file silcd/command.c. + + * Handle the founder key change properly in CMODE_CHANGE + notify. Bug #122. Affected file silcd/packet_receive.c. + +Sun Mar 9 16:29:20 EET 2003 Pekka Riikonen + + * Remove the mark for output (mark it only for input) after + purging outgoing queue. Prevents the "Error in select()" + floods. Affected file silcd/packet_send.c. + + * Fixed incorrect connection deletion from client library + after calling "connect" client operation. Could cause + crashes for example during reconnect timeouts. Affected + files are lib/silcclient/client.c and + irssi/src/silc/core/client_ops.c. + + * Check server private key file permissions before starting + the server. Affected file silcd/serverconfig.c. + +Tue Feb 4 22:53:26 EET 2003 Pekka Riikonen + + * NULL terminate allocated string in silc_buffer_strformat. + Affected file lib/silcutil/silcbuffmt.c. + + * Rewrote the invite/ban list string handling in server to + use SilcBuffer instead. Affected files are silcd/command.c + and silcd/server_util.c. + +Mon Feb 3 14:43:52 CET 2003 Pekka Riikonen + + * Fixed double free in CMODE command when setting new HMAC + for channel. Affected file silcd/command.c. + + * Added couple of missing memset's to zero sensitive memory. + Affected files silcd/command.c, lib/silcclient/command.c. + +Sun Jan 26 12:20:30 EET 2003 Pekka Riikonen + + * Fixed a double free in INVITE command error handling in + server. Affected file silcd/command.c. + + * Added macros SILC_SWAB_[16|32] to swab byte order of + 16-bit and 32-bit unsigned integers. Affected file + lib/silcutil/silctypes.h. + + * Use the SILC_SWAB_16 instead of htons() in server when + handling ports since the ports in structures are always + in little-endian order (regardless of platform). Affected + file silcd/serverid.c and silcd/server_backup.c. + +Tue Jan 21 17:18:04 EET 2003 Pekka Riikonen + + * Send DISCONNECT in close admin command in server. Affected + file silcd/command.c. + + * Check whether we are already connecting to a remote router + (in addition of checking whether we are already connected) + before creating new connection. Affected file silcd/server.c. + +Thu Jan 16 18:47:00 EET 2003 Pekka Riikonen + + * Added better compiler and compiler flags checking in + configure. + + * Check that socket is valid after QoS is applied to data. + Affected file lib/silcutil/unix/silcunixsockconn.c. + + * Make sure the socket connecetion is not closed to early + when closing connection in server. Also make sure the + connection is always closed after error in a protocol. + Affected file silcd/server.c. + +Wed Jan 15 11:03:36 CET 2003 Pekka Riikonen + + * Removed --session and --dummy options from Irssi SILC Client. + -d option is available only if --enable-debug was given. + Affected files are irssi/src/silc/core/silc-core, + irssi/src/core/session.c and irssi/src/fe-text/silc.c. + +Tue Jan 14 12:25:09 CET 2003 Pekka Riikonen + + * Added silc_buffer_steal to steal the data from the buffer. + Affected file lib/silcutil/silcbuffer.h. + +Sat Jan 11 18:16:29 CET 2003 Giovanni Giacobbi + + * Fixed server crash with double Primary block in config file. + + Fixed also various memory leaks around the config file + parser. Affected files lib/silcutil/silcconfig.c, + silcd/serverconfig.c. + + * Changed my nickname (Johnny Mnemonic) to my real name, this + means that bugs introduced by him were actually introduced + by me! + +Tue Jan 7 21:58:53 CET 2003 Jochen Eisinger + + * Don't display "foo appears as foo\nYou're now known as foo" + messages. Affected file irssi/src/silc/core/client_ops.c + +Tue Jan 7 20:08:15 EET 2003 Pekka Riikonen + + * Fixed error handling of invalid client entry when calling + commands in server. Fixes a crash. Affected file + silcd/command.c. + +Thu Dec 26 14:19:29 EET 2002 Pekka Riikonen + + * Added some sanity checks in server for correctness of the + server configuration. Affected file silcd/serverconfig.c. + +Fri Dec 20 10:47:59 CET 2002 Pekka Riikonen + + * Prevent endless resolving of user informations in USERS + command by checking the command reply status correctly. + Affected file lib/silcclient/command_reply.c. + +Tue Dec 17 10:05:00 CET 2002 Pekka Riikonen + + * Fixed file writing on WIN32 to use O_BINARY flag. Affected + file is lib/silcutil/silcfileutil.c. A patch by Matthew + Aldous . + + * Added better implementation using CriticalSection of + SilcMutex on WIN32. A patch by Mikko Lähteenmäki + . + + * Added some Winsock WIN32 compatiblity defines into + includes/silcwin32.h. + +Mon Dec 16 19:33:05 EET 2002 Pekka Riikonen + + * Fixed double free in async host lookup code. Affected file + lib/silcutil/silcsockconn.c. + + * On backup router handle now the SERVER_SIGNOFF from router + for local connected servers too, and close the connections. + + Do not process them as normally signing off servers when they + really signoff by sending EOF fe, but always assume that + router sends the SERVER_SIGNOFF. + + Affected files silcd/server.c and silcd/packet_receive.c. + + * Fixed socket unsetting when closing connections. Affected + files silcd/server.c and silcd/packet_send.c. + + * Do not print the nickname in SERVER_SIGNOFF if we do not + have it. Prevents asserts in Irssi core. It is possible we + don't have the nick if it was just being resolved when server + signoff. Affected file irssi/src/silc/core/client_ops.c. + +Thu Dec 12 23:22:50 EET 2002 Pekka Riikonen + + * Fixed autonick crashbug in client library. Affected file + lib/silcclient/client.c. + + * Fixed Unix implementation of SilcMutex to really assert if + the mutex is locked/unlcoked already. Affected file + lib/silcutil/unix/silcunixmutex.c. + + * Fixed locking in silc_schedule_uninit. It didn't lock + when dispatching timeout tasks. Affected file is + lib/silcutil/silcschedule.c. + + * Changed Win32 implementation of SilcThread to use modern + Win32 interface. Affected file is + lib/silcutil/win32/silcwin32thread.c A patch by Mikko L. + +Thu Dec 12 12:06:59 CET 2002 Jochen Eisinger + + * Don't print signed messages when sending failed. Affected files + irssi/src/silc/core/silc-[servers.c/commands.h] + + * Send adquate signal when founding a channel by joing it. Affect + file irssi/src/silc/core/client_ops.c + +Wed Dec 11 21:46:19 CET 2002 Jochen Eisinger + + * Fix theme abstracts parsing. Affected files irssi/default.theme, + irssi/src/fe-common/core/themes.c + +Wed Dec 11 20:20:07 EET 2002 Pekka Riikonen + + * Fixed close command to use the port correctly when closing + server connections. Affected file silcd/idlist.c. + + * Check for NULL outbuf in silc_socket_write. It is possible + that it is NULL is some odd case. Affected files are + lib/silcutil/[unix/win32]/silc[unix/win32]sockconn.c. + + * Do not call final protocol callback for backup router + resuming protocol when closing connection. It is closed + by timeout in case of error. Affected file silcd/server.c. + + * Backup reconnect to router if backup resuming protocol + failed. Affected file silcd/server_backup.c. + +Wed Dec 11 10:01:26 CET 2002 Pekka Riikonen + + * Fixed double free in SKE library error hadling when signature + error occurred. Affected file lib/silcske/silcske.c. + + * Save the fingerprint to new SilcClientEntry after changing + nickname. Affected file lib/silcclient/client_notify.c. + + * Print SIGNOFF in Irssi SILC client only if the nickname is + known. Prevents asserts in Irssi core. It is possible we + don't have the nick if it was just being resolved when it + quit. Affected file irssi/src/silc/core/client_ops.c. + +Tue Dec 10 21:47:56 EET 2002 Pekka Riikonen + + * Fixed double free in invite list adding code when adding + invite strings. Affected file silcd/server_util.c. + +Fri Dec 6 17:40:24 EET 2002 Pekka Riikonen + + * More log printing during backup router protocol. Affected + file silcd/server_backup.c. + + * Removed backwards support for old private key file format. + Affected file lib/silccrypt/silcpkcs.c. + + * Removed backwards support for not-so-strict decryption length + check, it's strict now. Affected lib/silccrypt/silccipher.c. + + * GETKEY to update the client entrys fingerprint too. + Affected file lib/silcclient/command_reply.c. + + * Added --without-libtoolfix for package builders using weird + wrappers around libtool (BSD at least). + +Thu Dec 5 22:29:46 EET 2002 Pekka Riikonen + + * Fixed backup router bugs: When backup resumes router and + receives a CHANNEL_MESSAGE packet the backup must not act + as router since the packet header decryption would be + different. Also, when relaying packets to channel, do + not re-encrypt packets on backup that came from the primary + since the connection isn't really router-router connection. + Affected files silcd/server.c, silcd/packet_send.c. + + * Added checks in encryption/decryption that encryption/decryption + length sent as argument really is multiple by block size. Helps + catching really weird bugs like the above backup router bugs + when packets are being decrypted in wrong way. Affected files + lib/silccore/silcpacket.c, and lib/silccrypt/silccipher.c. + + * Fixed padding generation in private key file encryption. + Affected file lib/silccrypt/silcpkcs.c. + +Thu Dec 5 16:35:23 EET 2002 Pekka Riikonen + + * Added ignore_message_signatures setting which can be used + to ignore signatures in messages. Affected files are + irssi/src/silc/core/client_ops.c, silc-core.c. + + * Fixed the libtoolfix to use command line options instead of + environment variables. They didn't work as expected. Now, + the libtool is fully run-time configurable. + +Wed Dec 4 21:08:52 CET 2002 Jochen Eisinger + + * Verify signature payload for signed messages. Affected files + irssi/src/silc/core/client_ops.h, irssi/src/silc/core/silc-servers.c, + irssi/src/silc/core/silc-core.h + + * Display signature verification result in public and private + messages using theme abstracts. See irssi/default.theme for + examples on their usage. Affected files + irssi/default.theme, irssi/src/fe-common/silc/fe-messages.h, + irssi/src/fe-common/silc/module-formats.[ch], + irssi/src/fe-common/silc/fe-common-silc.c, + irssi/src/fe-common/silc/Makefile.am + irssi/src/fe-common/core/fe-messages.[ch] + + * Fixed bugs in Irssi's theme parsing. Affected files + irssi/src/fe-common/core/themes.c + +Wed Dec 4 18:29:13 EET 2002 Pekka Riikonen + + * Calculate the correct length for signed messages before + encrypting, it must be multiple by block size. Affected + file lib/silccore/silcmessage.c. + + * silc_message_signed_get_public_key returns now both + decoded and encoded public key. Affected files are + lib/silccore/silcmessage.[ch]. + + * Added libtoolfix script that makes the libtool more generic + and configurable in run-time. Now we can specify in run-time + if what kind of libraries we want to create, regardless of + configuration. SIMs are now creates even if --disable-shared + was explicitly given. + +Tue Dec 3 23:26:55 EET 2002 Pekka Riikonen + + * Fixed founder key sending in CMODE command in client. + Affected file lib/silcclient/command.c. + + * Fixed CUMODE founder authentication in server to not check + for client's public key since it's not supposed to do that. + Affected file silcd/command.c. + +Tue Dec 3 12:02:41 CET 2002 Jochen Eisinger + + * Set realname and hostname in NICK_REC records. Affected file + irssi/src/silc/core/silc-nicklist.c + +Mon Dec 2 20:50:20 EET 2002 Pekka Riikonen + + * Remove 1.0 protocol backwards compat code from client + library. + + * Added more reliable check for whether nickname did change + or not, or whether only Client ID changed in NICK_CHANGE + notify. Affected file lib/silcclient/client_notify.c. + Fixes bug in '@' character handling in a nickname. + + * Added support for automatically parsing signature from + the message payload. Added new function + silc_message_get_signature to return the payload to + application. Affected files lib/silccore/silcmessage.[ch]. + + * Changed the private_message and channel_message client + operations to deliver the SilcMessagePayload to the + application too. Application can use it fe. to get the + signature from the message for verification. Affected + file lib/silcclient/silcclient.h, client_channel.c and + client_prvmsg.c. + + * Redefined the signed payload for message payloads. + Updated protocol specs and implemented. + +Mon Dec 2 16:28:29 EET 2002 Pekka Riikonen + + * Fixed wrong invite and ban list handling in server command + reply. Affected files are silcd/command_reply.c, + silcd/server_util.[ch]. + +Sun Dec 1 20:48:17 EET 2002 Pekka Riikonen + + * Fixed CMODE setting in server when founder mode was set. + Affected file silcd/command.c. Bug #95. + + * Added support to setting specific public key in CMODE in + Irssi SILC client. Affected file lib/silcclient/command.c. + + * Added support to use specific public key in CUMODE in + Irssi SILC Client. Affected file lib/silcclient/command.c. + + * Added support for inviting and banning by public key in + Irssi SILC client. Affected file lib/silcclient/command.c. + + * Fixed fingerprint/babbleprint showing in invite and ban + list command replys. Affected file is + irssi/src/silc/core/client_ops.c. + +Sun Dec 1 16:32:03 CET 2002 Jochen Eisinger + + * Format CMODE +c and +h to display both the mode and the argument + +Sun Dec 1 18:17:22 EET 2002 Pekka Riikonen + + * Added test vectors and test programs for SHA-1, MD5, + HMAC-SHA1 and HMAC-MD5. New tests are located in + lib/silccrypt/tests/. Fixed also argument decoding bug in + MD5 implementation. Affected file lib/silccrypt/md5.c. + + * Changed the channel private key and private message key + generation (with static keys) to use SHA1 instead of MD5, + as SHA1 is the mandatory hash function in SILC. Affected + file lib/silcclient/client_[channel/prvmsg].c. + + * Changed the private key file encryption to use SHA1 instead + of MD5. Added support for the old generation and added + automatic change of the key (to be removed later). Affected + files lib/silccrypt/silcpkcs.c. + +Sat Nov 30 19:07:52 EET 2002 Pekka Riikonen + + * Load only files with .pub suffix in PublicKeyDir. Affected + file silcd/serverconfig.c. + +Sat Nov 30 14:29:34 CET 2002 Johnny Mnemonic + + * Extended the SILC_SERVER_LOG_ERROR macro to all available logging + channels. Affected files silcd/silcd.c, silcd/server.h. + + * Added the config directive PublicKeyDir for the client block. + Affected files doc/exampe_silcd.conf.in, silcd/serverconfig.[ch]. + +Sat Nov 30 09:30:55 CET 2002 Pekka Riikonen + + * Merged Toni's irssi/silc.conf patch. + + * ROBODoc cleanup patch to lib/silccrypt/silcpkcs.h by johnny. + + * Max alloc tests in allocation routines. Affected file + lib/silcutil/silcmemory.c. + +Fri Nov 29 23:44:29 EET 2002 Pekka Riikonen + + * Fixed a typo in resuming code that fixed detach/resume code + in server. Bug #93. Affected file silcd/packet_receive.c. + +Thu Nov 28 17:17:11 CET 2002 Jochen Eisinger + + * Do reverse lookups for server when /connecting. Affected files + irssi/silc.conf, irssi/src/core/servers.c, irssi/src/core/network.c, + irssi/src/core/net-nonblock.* + +Thu Nov 28 16:19:18 CET 2002 Pekka Riikonen + + * Added library versioning for shared libraries. Affected + files configure.in.pre and lib/Makefile.am.pre. + +Wed Nov 27 21:51:52 CET 2002 Jochen Eisinger + + * Display INVITE and BAN lists as specified by SILC 1.2 + +Wed Nov 27 16:01:11 CET 2002 Pekka Riikonen + + * Do not send invite list back unless asked (when sending + no arguments) or when list was modified. Affected file + silcd/command.c. + + * Remove client from invite list in KILLED notify and in + KILL command. Affected file silcd/command.c and + silcd/server.[ch]. + + * Fixed bugs in invite list handling in INVITE command. + Affected files silcd/command.c and silcd/server_util.c. + + * Merged with Irssi 0.8.6. + + * Fixed UTF-8 in Irssi SILC Client, setlocale was missing. + Affected file irssi/src/fe-text/silc.c. + +Mon Nov 25 18:21:43 EET 2002 Pekka Riikonen + + * The silc_argument_get_[first/next] now return the argument + type to caller. Added silc_argument_payload_encode_one. + + Affected files are lib/silccore/silcargument.[ch]. + + * Added support for the SILC 1.2 INVITE command and new + invite lists to server. Affected files are silcd/command.c, + silcd/server_util.[ch] and silcd/packet_[receive/send].[ch]. + + * Added support for the SILC 1.2 BAN command and new + ban lists to server. Affected files are silcd/command.c, + silcd/server_util.[ch] and silcd/packet_[receive/send].[ch]. + + * Added support to client sending new INVITE command. Affected + file is lib/silcclient/command.c. + + * Added support to client sending new BAN command. Affected + file is lib/silcclient/command.c. + + * Added support for removing client from invite list when kicked + from channel, as SILC 1.2 dictates. Affected files are + silcd/packet_receive.c and silcd/command.c. + +Sun Nov 24 18:26:42 EET 2002 Pekka Riikonen + + * If iv argument to silc_cipher_[encrypt/decrypt] is NULL, use + automatically the cipher's internal IV. Affected files + lib/silccrypt/silccipher.[ch]. + + * Assure the RESUME_CLIENT packet is not sent to twice to + backup router if the detached client was originated from + the backup. Affected file silcd/server.c. Bug #76. + + * Changed silc_sim_symname to not allocate memory. Affected + file lib/silcsim/silcsimutil.c. + + * Fixed memory leaks with SIMs in server. Affected files + silcd/serverconfig.c, silcd/server.c. + + * Fixed channel key distribution after resuming detached + client. Affected files silcd/packet_receive.c. + + * Fixed channel's global_user boolean checking after detaching. + Check it after changing the owner of the client not before. + Affected file silcd/packet_receive.c. + + * Fixed few double frees from client library. Fixes at least + Bug #81, possibly others too. + + * UTF-8 decode topics also in JOIN command reply and TOPIC_SET + notifys in Irssi SILC Client. Affected file is + irssi/src/silc/core/client_ops.c. Bug #82. + + * Applied Ville Räsänen's manual page and --mandir bugfix + patch. Affected files are configure.in.pre and Makefile.am.pre. + Bug #88. + +Fri Nov 22 18:34:20 EET 2002 Pekka Riikonen + + * Added support to backup router protocol for backup to tell + normal server that it cannot use the backup router as primary + because the primary isn't really down. Updated protocol + specs. + + * Added support for primary router to tell backup router that + resuming is not possible because the backup really isn't primary + in the cell. For example if backup disconnected itself the + resuming is not allowed since the primary really did not + go down. Updated protocol specs. + + * Removed MARS from crypto library. + + * Defined the CTR mode and Randomized CBC mode in SILC. The + CTR mode is RECOMMENDED now in specification. Defined also + Serpent cipher as optional cipher. Updated the protocol specs. + +Thu Nov 21 12:43:28 EET 2002 Pekka Riikonen + + * Added support for inviting/banning by IP/MASK, public key, + and explicit Client ID. Redefined the command and notify + types to allow easier forwards support for other methods + of inviting/banning. Updated protocol specs. + + * Remove the client from channel's invite lists if the client + is kicked or killed. Updated protocol specs. + + * Unified the Channel Message Payload and Private Message + into one Message Payload. Updated protocol specs and + implemented. + +Tue Nov 19 22:30:56 EET 2002 Pekka Riikonen + + * Don't wait for EOF after socket error has occurred, but + close the connection. Affected file is silcd/server.c. + +Mon Nov 18 18:58:26 EET 2002 Pekka Riikonen + + * Added support for setting FOUNDER mode on channel with + specific public key which can be set with CMODE command. + Updated protocol specs and implemented in client and server. + + * Fixed the Irssi SILC client to correctly shutdown the client + library to avoid memory leaks. Affected files are + irssi/src/silc/core/silc-core.c and silc-servers.c. + + * Deprecated the No Reply flag in SKE protocol and introduced + "IV Included" flag which can be used to indicate that the IV + is included in the ciphertext. This makes it possible to use + SILC on unreliable transport, such as UDP which may cause + packet reordering and losses. Updated protocol specs, did + not implement yet. + +Sun Nov 17 15:50:57 EET 2002 Pekka Riikonen + + * Fixed the MPI implementation of silc_mp_sizeinbase to return + < 32 bit values in correct size. Affected file is + lib/silcmath/mp_mpi.c. + +Sat Nov 16 13:14:45 EET 2002 Pekka Riikonen + + * Fixed the KE Start Payload parsing to check that mandatory + fields are present. Affected file lib/silcske/payload.c. + + * Fixed compilation warnigs in Irssi SILC Client. Affected + files are irssi/src/silc/core/silc-query.c. client_ops.c. + +Thu Nov 14 19:33:28 CET 2002 Jochen Eisinger + + * Print "nick now appears as newnick" and update Irssi's nicklist + when you change your nick to "nick". Closes #62 + + * Never format your own nick. Closes #63 + +Thu Nov 14 09:44:54 CET 2002 Jochen Eisinger + + * SILC_UMODE_GONE changes are now propagated correctly to the + Irssi client. Closes #54 + +Tue Nov 12 19:42:18 CET 2002 Jochen Eisinger + + * Fixed example in /HELP KEY + + * Added expando $j which expands to current SILC Client version + +Tue Nov 12 19:46:39 EET 2002 Pekka Riikonen + + * Fixed public key decoding in crypto library. + + * Added better error printing to SKE library. + +Tue Nov 12 08:50:12 CET 2002 Pekka Riikonen + + * Fixed NICK command to not crash if nickname was not sent. + +Mon Nov 11 19:32:00 EET 2002 Pekka Riikonen + + * Added Encrypt-Then-MAC order to SILC packet MAC generation. + Deprecated the old Encrypt-And-MAC order. Updated protocol + specs and implemented. + + * Added Encrypt-Then-MAC order to Channel Message Payload MAC + generation. Updated specs and implemented. + +Sun Nov 10 12:20:56 EET 2002 Pekka Riikonen + + * Added support for rekey before 2^32 sequence number wraps. + Affected files in server and client library. + + * Padding must be at least 8 bytes now. Implemented and updated + protocol specs. + + * Compute maximum padding for authentication packets to make + passphrase approximation attacks impossible. Affected files + in client library and in server. + + * Fixed PING command sending in client library and handling in + server. The server ID must be ID Payload, not raw ID data. + Affected files in server and client library. + + * Defined that all public keys sent in commands and notify + payloads are actually Public Key Payloads not raw public key + data. Updated protocol specs and implemented. + + * Updated protocol version to 1.2. Updated specs and code. + + * Added ERR_UNSUPPORTED_PUBLIC_KEY and ERR_OPERATION_ALLOWED + status types. Updated specs and the code. + + * Added support for normal client to kill its own entries from + the network. Updated protocol specs and the code. + + * Defined the SILC_MESSAGE_FLAG_SIGNED. Updated protocol specs + and added initial implementation. + + * Added MAC field to the Private Message Payload to protect + against chosen ciphertext attacks. Updated the protocol specs + and implemented. + + * Added idle and signon fields to the ATTRIBUTE_SERVICE + attribute to indicate the user's current idle and signon time + of a service. Updated protocol specs and implemented. + +Thu Nov 7 19:21:10 EET 2002 Pekka Riikonen + + * Added "do_not_bind" argument to silc_client_file_send what + can be used to not bind locally but assume the file receiver + provides the point of connect. Usefull when sender is behind + NAT device. Affected file lib/silcclient/silcclient.h and + client_ftp.c. + + * Added -no-listener option to FILE SEND command in Irssi SILC + client. Affected file irssi/src/silc/core/silc-servers.c. + Renamed FILE RECEIVE to FILE ACCEPT. + + * Confirm passphrase for private key encryption in + silc_create_key_pair and silc_change_private_key_passphrase. + Affected files are lib/silcutil/silcapputil.c. + +Thu Nov 7 10:05:28 CET 2002 Pekka Riikonen + + * Move silc_client_packet_send back to internal, added + silc_client_send_packet, a bit simpler function for application. + Affected files lib/silcclient/silcclient.h, client.c and + client_internal.h. + + * Moved the SilcClientEntry, SilcChannelEntry and + SilcServerEntry to silcclient.h to be public and documented + them for application. Affected files are + lib/silcclient/silcclient.h and idlist.h. + +Wed Nov 6 17:18:13 EET 2002 Pekka Riikonen + + * Fixed manual page installation patch by Ville Räsänen. + USERS help page fix patch by Ville Räsänen + + * Changed the silc_client_command_call interface to make + the command call simpler for the application. The library + now handles the command line parsing, command finding and + execution. Application only needs to call the function + with the command line. Affected files are + lib/silcclient/silcclient.h, command.[ch]. + + * Fixed silc_get_input to NULL-terminate the returned input. + Affected file lib/silcutil/silcutil.c. + + * Resolve the client's public key in JOIN command if the + founder auth data is being requested but we don't know the + client's public key. Affected file silcd/command.c. + Bug #53. + +Mon Nov 4 16:02:59 EET 2002 Pekka Riikonen + + * Print notify for server opers when backup router comes + online. Affected file silcd/server.c. + + * Fixed the INVITE command to send the invite list in + command reply. Affected file silcd/command_reply.c. + + * Fixed MOTD command reply sending. Affected file + silcd/command.c. + + * UTF-8 decode the topic in TOPIC command reply and LIST + command reply in Irssi SILC client. Affected file is + irssi/src/silc/core/client_ops.c. + +Sun Nov 3 17:59:15 EET 2002 Pekka Riikonen + + * Fixed the INVITE command to not crash Irssi SILC client + when given without nickname argument. AFfected file + irssi/src/silc/core/client_ops.c. + + * Fixed double free in WHOIS query on normal server when + forwarding query to router. Affected file is + silcd/server_query.c. + + * Fixed WATCH command reply handling on normal server which + was missing altogether. Affected file silcd/command_reply.c. + Bug #44. + +Sun Nov 3 00:42:05 EET 2002 Mika Boström + + * Added man-pages for silc(1), silcd(8) and silcd.conf(5). + Included yodl sources for each of these. Also modified + Makefile.am prototype to install these files to proper + locations. Updated CREDITS. Affected file Makefile.am.pre, + new files doc/*.yo, doc/silc.1, doc/silcd.conf.5, + doc/silcd.8. + +Sat Nov 2 21:26:56 EET 2002 Pekka Riikonen + + * Added support for encrypted private key files. Now + passphrase must be provided when new key pair is created + (can be empty though), and prompted when loading the + private key. Added support for loading the old-style + non-encrypted private keys as well. Affected files + lib/silccrypt/silcpkcs.[ch], Irssi SILC client and + SILC Server. + + * Fixed silc_get_input to accept input on all terminals. + Affected file lib/silcutil/silcutil.c. + + * Moved the Irssi SILC client key loading and other stuff + to be called after the arguments and UI is initialized. + Affected file irssi/src/silc/core/silc-core.c. Bug #31. + + * Added -P option to Irssi SILC client which can be used + to change the passphrase of the private key. Affected + file irssi/src/silc/core/silc-core.c. + + * Added silc_change_private_key_passphrase apputil routine + to lib/silcutil/silcapputil.[ch]. + +Sat Nov 2 12:53:09 EET 2002 Pekka Riikonen + + * Fixed connection closing in client library to not crash. + Moved the connection freeing totally to function + silc_clinet_del_connection. Affected file + lib/silcclinet/client.c. + +Fri Nov 1 18:57:02 EET 2002 Pekka Riikonen + + * Changed includes/silcincludes.h to silcincludes.h.in to + include configuration specific information. The silcdefs.h + is not included in to installation anymore (it's only + compilation time header). + +Fri Nov 1 10:30:26 CET 2002 Pekka Riikonen + + * Moved the SilcClient and SilcClientConnection from client.h + to the public lib/silcclient/silcclient.h. Changed the + structures a bit. + +Thu Oct 31 22:44:07 EET 2002 Pekka Riikonen + + * If version string in silc_clinet_alloc is NULL the library + puts it automatically. Affected file lib/silcclient/client.c. + + * Changed the version strings from variables to #define's + in includes/silcversion.h. + +Wed Oct 30 16:17:30 CET 2002 Pekka Riikonen + + * Added shared library complation support. + +Tue Oct 29 21:48:55 EET 2002 Pekka Riikonen + + * Added lib/silcutil/silcapputil.[ch] for application + utility functions. It includes routines for applications' + convenience. Added silc_create_key_pair, silc_show_public_key + and silc_load_key_pair functions. + +Tue Oct 29 17:36:44 EET 2002 Pekka Riikonen + + * Send RESUME_CLIENT packet from router to backup routers + to in resuming. Affected file silcd/packet_receive.c. + +Mon Oct 28 21:23:39 EET 2002 Pekka Riikonen + + * In IDENTIFY command parsing, send all other IDs except + Client IDs explicitly to router for resolving on normal + server. Also check that ID received in WHOIS command is + always Client ID, others are not allowed. Affected file + silcd/server_query.c. + + * Merged latest changes from irssi.org CVS. + +Sun Oct 27 11:44:32 EET 2002 Pekka Riikonen + + * Merged c0ffee's /set heartbeat patch to Irssi SILC client. + Affected files irssi/src/silc/core/silc-core, silc-server.c. + + * Fixed the heartbeat sending in Irssi SILC client. Moved + the silc_client_packet_send to silcclient.h for application + usage. Affected files lib/silcclient/client_internal.h + lib/silcclient/silcclient.h. + + * Fixed a bug in query resolving in server. Used wrong + variable in a for loop and crashed. Affected file is + silcd/server_query.c. + + * Server constructs requested attributes only to locally + connected clients. Affected file silcd/server_query.c. + Bug #36. + + * Fixed a bug when sending resolving from router to server + with requested attributes. The constructed WHOIS command + was incorrect. Affected file silcd/server_query.c. + Bug #38. + + * Fixed Requested Attributes saving in WHOIS command reply. + The length of the data buffer must be saved too. Affected + file silcd/command_reply.c. + + * Update the client entry's servername after detaching is + over. Affected file silcd/packet_receive.c. Bug #37. + + * Resolve incomplete client entrys in CUMODE_CHANGE and + CMODE_CHANGE notifys. Affected file is + lib/silcclient/client_notify.c. Bug #42. + +Thu Oct 24 12:22:35 EEST 2002 Pekka Riikonen + + * Fixed channel key packet processing bug on backup router + during backup resuming protocol. Affected file is + silcd/packet_receive.c. + + * Fixed memory leaks in server. Affected files are + silcd/server.c and silcd/packet_receive.c. + + * Fixed packet decryption problem when backup router encrypted + channel message with wrong key during backup resuming + protocol. Affected file silcd/packet_send.c. + + * ROBODoc documented lib/silccrypt/silccipher.h. A patch by + Toni Willberg (toniw@iki.fi) + + * Changed the SilcCipher context to be private. Changed the + silc_cipher_get_iv to just return pointer to the IV. Added + silc_cipher_get_name to return the name of the cipher. + Fixed code all around to support these changes. Affected + files are lib/silccrypt/silccipher.[ch], client library and + server. + +Wed Oct 23 19:01:41 EEST 2002 Pekka Riikonen + + * Fixed unaligned access in lib/silccore/silcattrs.c. + + * Fixed libtool linking in lib/silcsim/Makefile.am. + + * Fixed services attribute printing. Affected files is + irssi/src/silc/core/silc-queries.c. + +Wed Oct 23 09:51:04 CEST 2002 Pekka Riikonen + + * Fixed a crashbug in incoming server accepting. Affected + file silcd/server.c. + +Tue Oct 22 13:02:32 EEST 2002 Pekka Riikonen + + * Added automatically generated index to Toolkit Reference + Manual. + + * Added support for Postscript Toolkit Reference Manual. + +Mon Oct 21 21:30:40 CEST 2002 Pekka Riikonen + + * Merged DISCONNECT fix, and autoconn port fix from Irssi + CVS. + +Sun Oct 20 19:54:55 EEST 2002 Pekka Riikonen + + * Added 'send_events' boolean argument to the function + silc_schedule_set_listen_fd which sends the set events to + the application explicitly if set to TRUE. Default action + should be FALSE. Affected file lib/silcutil/silcschedule.[ch], + lib/silcclient/client_internal.h and silcd/server_internal.h. + + * Added silc_compare_timeval to determine which time values + is smaller. Affected file lib/silcutil/silcutil.[ch]. + + * Added sort-of "Quality of Service" (QoS) support to + SilcSocketConnection. Data reception can be controlled with + rate limit per second and/or read data length limit. + Added silc_socket_set_qos. Affected files are + lib/silcutil/silcsockconn.[ch] and unix/silcunixsockconn.c. + + * Added the QoS configuration to SILC Server configuration + file. Affected files are silcd/serverconfig.[ch] and + server.c. + +Sun Oct 20 14:12:24 CEST 2002 Pekka Riikonen + + * Merged with irssi.org CVS. + + * Failed OPER and SILCOPER authentications are now logged. + Affected file silcd/command.c. Bugs #25. + +Sat Oct 19 13:32:15 CEST 2002 Pekka Riikonen + + * ROBODoc documented lib/silcutil/silcbuffer.h and + lib/silcutil/silcdlist.h. Patch by Ville Räsänen + . + +Fri Oct 18 10:51:04 EEST 2002 Pekka Riikonen + + * Added support for auto-passphrase authentication from the + config file during connecting which was not implemented + yet. Affected file irssi/src/silc/core/client_ops.c. + + * Fixed a bug in authentication protocol failure handling which + was processing wrong callback context. Affected files + are lib/silcclient/client.c and protocol.c. + + * Fixed the /ATTR allow off to actually work. Affected file + is irssi/src/silc/core/silc-queries.c. + + * Fixed the /ATTR -del to work. Affected file is + irssi/src/silc/core/silc-queries.c. + +Thu Oct 17 23:45:12 EEST 2002 Pekka Riikonen + + * Fixed string formatting crashbug in lib/silccore/silcattrs.c. + + * Fixed mask attribute adding in Irssi SILC client. Affected + file irssi/src/silc/core/silc-queries.c. + +Thu Oct 17 16:40:39 EEST 2002 Pekka Riikonen + + * Added support for saving the requested attributes in + WHOIS to directory. Affected file is + irssi/src/silc/core/silc-queries.c. + +Wed Oct 16 17:40:56 EEST 2002 Pekka Riikonen + + * Added support for parsing VCard fields that do not have + the TYPE= for types. Affected file lib/silcutil/silcvcard.c. + + * Fixed a double free bug in hash table foreach function + if the entry was deleted in the foreach callback. Affected + file lib/silcutil/silchashtable.c. + +Tue Oct 15 18:05:24 EEST 2002 Pekka Riikonen + + * Added silc_attribute_get_verify_data to return the signature + verification data for either user digital signature or + server digital signature in Requested Attributes. Affected + files are lib/silccore/silcattrs.[ch]. + + * Added silc_vcard_alloc which is used to allocated dynamic + SilcVCard context. The silc_vcard_free now checks whether + the context is dynamically allocated or not. Affected files + are lib/silcutil/silcvcard.[ch]. + +Mon Oct 14 17:55:44 EEST 2002 Pekka Riikonen + + * Periodically remove the NOATTR status from client entry + so that the client may take the attributes in use even after + server has resolved them unsuccessfully earlier. Affected + file silcd/server_query.c and idlist.h. + + * Moved sha1hash and md5hash from client->internal to + SilcClient for application usage. Affected files are + lib/silcclient/client.h and client_internal.h. + + * Fixed attribute encoding and decoding bugs. Affected + files lib/silccore/silcattrs.[ch]. + + * Added ATTR command to Irssi SILC Client which is used to + manage user's Requested Attributes sending and values for + WHOIS command. Affected files around Irssi SILC client. + +Mon Oct 14 14:33:54 EEST 2002 Pekka Riikonen + + * Added silc_buffer_strformat which can be used to format + strings into a buffer which size is automatically increased. + Affected file lib/silcutil/silcbuffmt.[ch]. + + * Added implementation of VCard (RFC 2426) which can be used + as part of Requested Attributes in WHOIS command. Affected + file lib/silcutil/silcvcard.[ch]. + +Fri Oct 11 23:52:17 EEST 2002 Pekka Riikonen + + * Some strncat -> silc_strncat changes our the core and + client library. + + * Added SILC_SKE_STATUS_SIGNATURE_ERROR and OUT_OF_MEMORY + errors. Added better error printing to SKE library. + Affected files lib/silcske/silcske.c, silcske_status.h and + payload.c. + + * Save the PKCS key length even if only private key is set to + SilcPKCS. Affected file lib/silccrypt/silcpkcs.[ch] and rsa.c. + + * Fixed the usage of silc_pkcs_get_key_len since it returns the + length in bits not in bytes. Affected files are + lib/silcske/silcske.c, lib/silccore/silcauth.c and + silcd/server_query.c. + +Wed Oct 9 17:22:57 EEST 2002 Pekka Riikonen + + * Added silc_attribute_payload_encode_data to directly encode + the data into the attributes buffer. Renamed function + silc_attribute_payload_parse_list to silc_attribute_payload_parse. + Affected files are lib/silccore/silcattrs.[ch]. + + * silc_hash_table_find_foreach calls the foreach function now + once even if the nothing was found with context set to NULL. + Affected file lib/silcutil/silchashtable.[ch]. + + * Remove the RESOLVING flag from client entry after received + the Requested Attributes from the client. Fixed memory leak + in client entry freeing. Affected files silcd/server_query.c + and idlist.c. + + * Added Requested Attributes support into SILC Client Library. + It is not able to send requested attributes in WHOIS command, + and also receive and process requested attributes. Added + silc_client_attribute_[add|del] and silc_client_attributes_get + functions. Added also `ignore_requested_attributes' to the + SilcClientParams to not use attributes in client. Affected + files are lib/silcclient/command.c, client_attrs.[ch], + silcclient.h, client_internal and client.[ch]. + + * Changed the silc_client_get_client_by_id to support Requested + Attributes, it takes them as argument now. Affected file + is lib/silcclient/silcclient.h, and idlist.c. + + * Added -details option to WHOIS command in Irssi SILC Client + to support the requested attributes. By default it requests + all attributes. Affected file lib/silcclient/command.c and + irssi/doc/help/in/whois.in. + +Tue Oct 8 17:58:28 EEST 2002 Pekka Riikonen + + * Add also SERVICE attribute for server-constructed attribute + data. Also digitally sign the attributes and add + SERVER_DIGITAL_SIGNATURE attribute. Affected file is + silcd/server_query.c. + +Mon Oct 7 18:25:35 EEST 2002 Pekka Riikonen + + * Changed the silc_attribute_payload_encode to support list + of attributes (function may be called several times to add + a new attribute). Removed the silc_attribute_payload_encode_list + function. The encoding function now also automatically encodes + the data, so the caller does not need to do that. Affected + files lib/silccore/silcattrs.[ch]. + + * Added support for replying on behalf of the user to the + Requested Attributes in WHOIS command in the server. Affected + file silcd/server_query.c. + + * SILC_NOT_IMPLEMENTED macro use SILC_LOG_INFO now instead of + SILC_LOG_DEBUG. Affected file lib/silcutil/silclog.h. + +Sun Oct 6 16:48:32 EEST 2002 Pekka Riikonen + + * Don't swtich to become primary router if we are backup if + decryption error has occurred. Affected file silcd/server.c. + + * Fixed a bug in backup router IP address comparison in + silc_server_backup_get. + + Save now also the port of the server/router and use that + in comparison as well. Affected file silcd/server_backup.c. + + * Normal server now reconnects to backup router automatically + if connection is lost to it. Affected file silcd/server.c. + +Thu Sep 26 13:51:02 CEST 2002 Pekka Riikonen + + * If packet processing fails (like integrity check fails) + the connection is closed now. Affected files are + lib/silccore/silcpacket.c and silcd/server.c. + +Mon Sep 23 10:59:39 CEST 2002 Pekka Riikonen + + * Fixed double free in RSA public key set function + silc_rsa_set_public_key. Affected file lib/silccrypt/rsa.c. + Bug #29. + +Sun Sep 22 14:54:05 EEST 2002 Pekka Riikonen + + * Rewrote WHOIS, WHOWAS and IDENTIFY commands in the server. + Added server_query.[ch] which provides one interface for + querying information using all three commands. + + * Changed all "typedef unsigned char" in core library to + "typedef SilcUInt8". + +Sat Sep 21 21:36:45 EEST 2002 Pekka Riikonen + + * Added silc_strncat into lib/silcutil/silcstrutil.[ch]. + + * Renamed silc_server_get_client_resolve to + silc_server_query_resolve and moved to server_query.[ch]. + +Wed Sep 18 18:28:04 EEST 2002 Pekka Riikonen + + * Resumed client packet handling from server put the resumed + client on wrong list on router and caused the client not + be present on the network anymore. Now fixed to put the + client to correct list. Affected file silcd/packet_receive.c. + +Wed Sep 18 15:13:48 CEST 2002 Johnny Mnemonic + + * Various cleanup in error message output in config parsing code + and in server init code. Fixed error log files containing + too many newlines ('\n') in some situations. Affected files are + silcd/serverconfig.c, silcd/silcd.c, and silcd/server.c. + +Wed Sep 18 10:51:23 CEST 2002 Pekka Riikonen + + * Use the reverse lookupped hostname in client internals + instead of one user provided us as remote server name. + Affected file lib/silcclient/client.c. + +Mon Sep 16 12:02:54 EEST 2002 Pekka Riikonen + + * Added 'app_context' to silc_schedule_init. It is an + application specific context that is delivered to application + in task callback functions. Affected files are + lib/silcutil/silcutil.[ch]. + + * The hb_context in SilcSocketConnection is not freed + automatically anymore (application must free it). Freeing + it automatic is inconsistent. Affected files are + lib/silcutil/silcsockconn.[ch]. + +Sun Sep 15 22:16:19 EEST 2002 Pekka Riikonen + + * Added support for removing explicitly added client connections + in rehash and closing the client connections if they were + unconfigured in the rehash. Affected file silcd/server.c. + + * Added support for aborting automatically pending commands + that never receives the reply (to avoid memory leaks). + Added also silc_server_command_pending_timed to set the + specific timeout for pending command. Affected files are + silcd/command[_reply].[ch]. + + * Added SILC_STATUS_ERR_TIMEDOUT status. Updated protocol + specs and lib/silccore/silcstatus.h. + +Sun Sep 15 12:25:10 EEST 2002 Pekka Riikonen + + * Changed the silc_get_time to accept time value as argument + or if zero is sent return current local time. Affected + file lib/silcutil/silcutil.[ch]. + + * Added STATS command to client library and Irssi SILC client. + Patch provided by Ville Räsänen . + +Wed Sep 11 09:22:00 CEST 2002 Pekka Riikonen + + * Assure that channel key is set before sending it. May + crash server otherwise. Affected file silcd/packet_send.c. + +Tue Sep 10 09:50:08 CEST 2002 Pekka Riikonen + + * Assure that endless loop cannot happen with detached client + resolving on normal server. Added idlist status + SILC_IDLIST_STATUS_RESUME_RES. Affected files are + silcd/idlist.h and silcd/packet_receive.c. + +Mon Sep 9 12:18:18 CEST 2002 Pekka Riikonen + + * Incoming file transfer request cannot use same session as + the sending session. This can happen when sending file to + yourself. Crashed the client on quit. Affected file + lib/silcclient/client_ftp.c. Bug #24. + +Sun Sep 8 18:39:25 EEST 2002 Pekka Riikonen + + * Implemented the draft-riikonen-precense-attrs draft and + the Attribute Payload into the lib/silccore/silcattrs.[ch]. + +Sun Sep 8 13:13:44 EEST 2002 Pekka Riikonen + + * Distribute the SERVER_SIGNOFF notify also to local backup + routers from the primary router. The backup router may not + have the signing of local server directly connected and need + to know about the signoff. Affected file silcd/server_util.c. + + * Use the primary router as the origin of the locally connected + server when it is disconnecting from the backup router since + that's where it really is coming from. Now the clients from + the disconnecting server are removed correctly and "shadow" + clients are not left to the backup router. Affected file + silcd/server.c. + +Sat Sep 7 22:26:50 EEST 2002 Pekka Riikonen + + * If normal server is standalone and found existing but disabled + channel, do not re-create the channel since it creates + duplicate same channels. Affected file silcd/server.c. + + * Added anonymous client connections support to server. New + "anonymous" configuration option to ConnectionParams section + added. If set to true, the username and hostname information + of the client will be scrambled and anonymous user mode is + set automatically to the user. Affected files are + silcd/serverconfig.[ch], silcd/packet_receive.c and server.c. + +Sat Sep 7 16:02:09 EEST 2002 Pekka Riikonen + + * In JOIN notify handling, mark that the cache entry of the + client cannot be expired. Can cause crashes on normal + server (asserts client->channels). Affected file is + silcd/packet_receive.c. + + * From now on distribution versions are used as protocol versions + instead of by default using the Toolkit base version as protocol + version. Affected file prepare. + + * Do not set the locally resolved hostname for local client + entry but take what server sends. This way the real hostname + is showed in WHOIS for yourself. Affected file is + lib/silcclient/idlist.c and lib/silcclient/client.c. + + * Resolve local info with IDENTIFY when connecting to server.y + +Sat Sep 7 14:22:43 CEST 2002 Lubomir Sedlacik + + * Rewritten check for POSIX threads. Use --with-pthreads[=DIR] + for implied search (not needed on platforms which has native + pthreads library). Use --without-pthreads to disable threads. + Affected file is configure.in.pre + + * Fixed --with-iconv on platforms which need to bypass (broken) + native iconv(). Affected file is configure.in.pre + +Sat Sep 7 15:08:13 EEST 2002 Pekka Riikonen + + * Moved -C option parsing in Irssi SILC client at same time + as other options. The UI was initialized earlier and caused + problems on command line. Bug #16. Affected file is + irssi/src/silc/core/silc-core.c. + +Mon Sep 2 23:00:30 CEST 2002 Johnny Mnemonic + + * Added global variable silc_log_timestamp that tells silclog + wether to print or not the timestamp in the logging files. + Affected file lib/silcutil/silclog.[ch]. + + * Added silcd configuration option Timestamp in the Logging + section. Affected file silcd/serverconfig.[ch], + doc/example_silcd.conf.in. + +Fri Aug 30 08:57:33 CEST 2002 Pekka Riikonen + + * Fixed fingerprint checking to check for entirely empty + fingerprint instead of two first bytes when determining + if it is set. Bug #18. Affected file silcd/command.c. + + * Fixed duplicate PKCS name registering to not allow it. + Bugs #17. Affected file lib/silccrypt/silcpkcs.c. + +Sun Aug 25 08:02:04 CEST 2002 Lubomir Sedlacik + + * Conditionalize non-gcc compiler optimizations for various + platforms, enable those commented out. Cleanups. + Affected file lib/silcmath/mpi/configure.in + +Sat Aug 24 15:11:32 EEST 2002 Timo Sirainen + + * silc_rng_exec_command() left zombie processes if command + didn't generate any output. Affected file + lib/silccrypt/silcrng.c + +Fri Aug 23 22:05:44 CEST 2002 Lubomir Sedlacik + + * Rewrote iconv checking, introduce --with-iconv for systems + which rely on libiconv. Check if iconv() provided by libc + is good enough, otherwise demand libiconv. Affected file + configure.in.pre + +Fri Aug 23 07:10:52 CEST 2002 Lubomir Sedlacik + + * Search for ldopen() also in libc. This enables SIM support + on *BSD systems. Based on patch from Alex Zepeda. Affected + file configure.in.pre + +Sun Aug 18 04:44:30 CEST 2002 Lubomir Sedlacik + + * Don't call AM_CONDITIONAL conditonally for SILC_THREADS. + This fixes prepare on *BSD systems. Affected file + configure.in.pre + +Sun Aug 4 15:55:40 CEST 2002 Pekka Riikonen + + * More fixed for not having purge timeout for global clients + that are on channel. Affected files silcd/command_reply.c + and server_util.c. + + * Fixed the rekey protocol to work with backup router connections. + Rekey packets are now allowed on disabled connections as + well. Affected files silcd/packet_send.c and server.c. + + * Do not switch to be as backup router when shutting down and + closing the primary connection. Affected file silcd/server.c. + + * Fixed memory leaks in backup router deleting. Added + silc_server_backup_free to free all data during shutdown of + server. Affected files silcd/server_backup.[ch]. + +Sun Jul 14 21:33:32 EEST 2002 Pekka Riikonen + + * Do not process commands if the sock->user_data is NULL. + Affected file silcd/command.c. + +Tue Jul 9 19:03:11 EEST 2002 Pekka Riikonen + + * Fixed buffer overflow and security problems (loosing bits + in CFB encryption) in SILC RNG. Problems reported by + Markku-Juhani O. Saarinen . + +Sun Jul 7 13:10:01 EEST 2002 Pekka Riikonen + + * Added yet more checks that client is not expired on global + list if it is on channels. Affected file is + silcd/command_reply.c. + +Sat Jul 6 11:45:11 EEST 2002 Pekka Riikonen + + * Merged c0ffee's MIME signal patch which adds support for + sending also MIME messages in Irssi SILC Client, and handling + received MIME messages in a signal (and perhaps doing something + to non-textual MIME messages). + +Sun Jun 30 01:30:22 EEST 2002 Pekka Riikonen + + * Fixed pending command deletion in server and client library + to check the whole list instead of breaking after first found. + The affected files are silcd/command.[ch] and + lib/silcclient/command.[ch]. + +Sat Jun 29 17:40:12 EEST 2002 Pekka Riikonen + + * Return NO_SUCH_CHANNEL error in USERS for channel that is + secret or private, otherwise it's possible to find out + whether a secret channel exists or not. Affected file + silcd/command.c. + + * If CMODE change fails during the mode setting, assure that + the old mode mask is set for the channel back. Affected + file silcd/command.c. + + * Fixed passphrase saving on +a channel on normal server + after successful JOIN command. Affected file silcd/command.c. + +Fri Jun 28 11:53:25 CEST 2002 Pekka Riikonen + + * Remove server/router operator privileges in DETACH command, + since it's possible to resume to server where these + privileges would not be allowed for the client. Affected + file silcd/command.c. + + * Do not set to wait for backup in rehash of the server. + Affected file silcd/server.c. + + * Do not check listener sockets when counting how many + socket connections we have. Affected file is + silcd/server_util.c. + + * Do not announce disconnected clients that are remaining + in history (for WHOWAS). This is because SIGNOFF notify + for these has been sent earlier already. Affected file + silcd/server.c. + +Thu Jun 27 20:07:27 EEST 2002 Pekka Riikonen + + * Buffer overflow with CUMODE command's mode->mode character + conversion. Reported by Ville Räsänen. Affected file + lib/silcutil/silcutil.c. + +Thu Jun 27 16:54:33 EEST 2002 Pekka Riikonen + + * Allow heartbeat packets to go disabled connections anyway. + Affected files silcd/server.c and silcd/packet_send.c. + + * Do not broadcast New Channel packets with List flag set + in the packet to backup routers. The router must check + for the correctness of the packets before sending them. + It is possible that router will have enforce Channel ID + change and this would cause desync in the backup router. + Affected file silcd/packet_receive.c. + + * Remove SILC_PACKET_FLAG_LIST from the temp packets that + are handled in list parsing. They are not list packets + anymore. Affected file silcd/packet_receive.c. + +Thu Jun 27 11:27:07 CEST 2002 Pekka Riikonen + + * Stop waiting for backup router through the timeout, not + directly after backup router has arrived. Affected file + silcd/server.c. + + * Do not re-create channel keys and send them when removing + clients in server shutdown. Affected files are + silcd/server_internal.h and silcd/server_util.c. + + * Notify distribution to backup routers was missing from + the silc_server_send_notify_dest function which caused + desyncing problems with backup router. Affected file is + silcd/packet_send.c. + + * The client's channel removing was working wrong on + backup router. It assumed that it doesn't know global + information but backup router does know. For this reason + it could remove channel when it wasn't supposed to do that. + Affected file silcd/server.c and silcd/server_util.c. + +Wed Jun 26 15:14:12 EEST 2002 Pekka Riikonen + + * Stop for a couple seconds after badkup router has become + primary router. Affected file silcd/server.c. + + * Added silc_server_remove_servers_by_server, which is used + to remove servers originated from some other server. Also + clients of those servers can be removed too. Affected file + silcd/server_util.[ch]. + + * When removing clients after a server has signed of remove + also all servers behind that server (unless they are known + to be available locally), and send SERVER_SIGNOFF for each + of the server separately. Also the signed off clients are + sent now separately per signed off server. The affected files + are silcd/server.c and silcd/server_util.[ch]. + + * All servers added with silc_idlist_add_server must always + have both "router" and "connection" pointers set. Otherwise, + bad server entries may be left around in the cache. + Affected file silcd/command_reply.c. + + * Do not create the channel key in NEW_CHANNEL packet + processing if the channel is empty. Affected file + silcd/packet_receive.c. + + * Completed backup router support for standalone routers. + Supports also servers in the cell that do not use the backup + at all. + +Wed Jun 26 10:38:11 EEST 2002 Pekka Riikonen + + * Fixed a bug in silc_string_regexify which did not add '^' + at the start of each string, and thus the matching was + not explicit. For example ban list iikone@*!*@* would + match also "priikone", which is wrong, it would have to be + *iikone@*!*@* to match also "priikone". Affected + file lib/silcutil/unix/silcunixutil.c. + +Tue Jun 25 18:47:39 EEST 2002 Pekka Riikonen + + * Enable all local server connections before updating client + caches when we've become backup router. Otherwise, signoff + packets may not reach the clients. Affected files are + silcd/server.c and silcd/server_util.[ch]. + + * Fixed a bug in version string parsing which could crash + the program with specially formatted version string. + Bug reported and patch provided by Ville Räsänen. Affected + file lib/silcutil/silcutil.c. + + * Handle the disconnection immediately when DISCONNECT + packet is received in server. Affected file silcd/server.c. + + * Primary router now waits a short time (10 seconds) for + backup router connection before accepting any other + connection (except local). Affected file silcd/server.c, + serverconfig.[ch]. + + * Fixed a crash in client libary in NICK_CHANGE notify when + NICK_CHANGE arrived for client entry we are resolving + currently. Affected file lib/silcclient/client_notify.c. + + * Call the sconn->callback completion even if error had + occurred. Start reconnecting always if connection to + primary router fails during backup router protocol. + Affected files silcd/server.c and server_backup.c. + +Mon Jun 24 17:47:52 EEST 2002 Pekka Riikonen + + * Added functions silc_server_send_opers and + silc_server_send_opers_notify to send packets stricly + to operators. Added macro SILC_SERVER_SEND_OPERS macro + to send variable argument notify to operators. + Affected files silcd/packet_send.[ch] and silcd/server.h. + + * Removed UMODE rights checking with UMODE_CHANGE notify. + Affected file silcd/packet_receive.c. + + * Server/router operator now receives notify when network + switches to backup router and when it resumes the use of + primary router. Affected file silcd/server.c and + silcd/server_backup.c. + + * Fixed the updating of client information after backup + resuming protocol is over; update all except local clients + to the new primary router. The affected file is + silcd/server_util.c. + + * Added support for closing active connections in rehash + that were unconfigured by the user. Supports currently + closing server and router connections. Affected file + silcd/server.c. + + * Rewrote some SILC_LOG_DEBUG's in silcd/server_backup.c. + +Sun Jun 23 17:32:31 EEST 2002 Pekka Riikonen + + * Don't do SILC_STRING_LANGUAGE encoding if the outbuffer + is NULL since seems that on some platforms NULL is allowed + and on some it's not. Fallback encoding is used instead. + Affected file lib/silcutil/silcstrutil.c. + + * Fixed statistics updating for incoming server connection + which could cause problems when re-connecting. Affected + file silcd/server.c. + + * Preliminary backup router support for standalone router + added. Affected files in silcd/. + + * Mark server connections in backup router disabled before + and after backup protocol. Affected file is + silcd/server_backup.c. + + * Added support for reconnecting to remote server connection + even if the protocol fails, and if the configuration wants + us to keep trying to connect anyway. + + Server connection is not allowed to backup router if + backup router does not have connection to primary router yet. + + Affected file is silcd/server.c. + +Sat Jun 22 21:34:59 EEST 2002 Pekka Riikonen + + * Added silc_client_udpate_server function to update changed + server info. Affected file lib/silcclient/idlist.[ch]. + + * Added check for server entries that are being resolved when + notify is received. If being resolved, handle the received + notify only after it's resolved so that all notifys are + handled in same order as received from the server. + + Added similar resolver check to channel entries. Every + notify that cause resolving of any information that affects + channel entry marks the channel entry in waiting state. + After whatever resolving is over the waiters are signalled + and only then the notifys are handled in the same order + as delivered from the server. + + Affected files are lib/silcclient/idlist.[ch], and + client_notify.c. + + * Fixed KILLED notify handling in normal server. Affected + file silcd/packet_receive.c. + + * Added SILC_IDLIST_STATUS_LOCAL which indicates that entry + is locally connected, or was locally connected (but may + be detached and connection is not active). Added also + SILC_IS_LOCAL for checking this status. Affected files + silcd/idlist.h, silcd/packet_receive.c, silcd/server_util.c, + silcd/server.c and silcd/server_internal.h. + +Sat Jun 22 17:06:58 EEST 2002 Pekka Riikonen + + * Don't send or handle TOPIC_SET if topic is already set and + is same as being set. Affected files silcd/command.c and + silcd/packet_receive.c. + + * Fixed CMODE change rights checking to work correctly when + removing modes by operator. Affected file is + silcd/server_util.c. + + * Fixed some handling with New Channel packet in router and + fixed some CMODE_CHANGE notify handling in server and router. + Affected file is silcd/packet_receive.c. + + * Changed "disconnect" client operation to include the + reason of the disconnection and optional disconnection + message. Affected file lib/silcclient/silcclient.h. + + * Made the compilation of lib/contrib/ stuff conditional. + Affected files configure.in.pre, lib/contrib/Makefile.am. + +Sat Jun 22 12:49:21 EEST 2002 Pekka Riikonen + + * All CMODE_CHANGE and CUMODE_CHANGE notifys are now sent back + to the sender of the notify too, to avoid situation where two + notifys are in the network at the same time going to oppsite + directions. Affected file silcd/packet_receice.c. + +Fri Jun 21 10:00:32 EEST 2002 Pekka Riikonen + + * Delete the client from channel even if the cilent->id is + NULL. It was possible that client was deleted without + removing from channels (theoretically at least). Affected + file silcd/server.c and silcd/server_util.c. + + * Free the client data too when resuming is not successful. + Affected file silcd/packet_receive.c. + + * Merged some code from c0ffee's silc-plugin. Affected files + irssi/src/silc/core/silc-channels.c and silc-expandos.c. + + * Added SILC_PRIMARY_ROUTE and SILC_BROADXAST macros to + silcd/server_internal.h. SILC_PRIMARY_ROUTE Returns pointer + to the primary router connection, the other one returns + TRUE if packet must be broadcasted to network. + + * All notifys that are destined to primary router (to network) + are now automatically sent to backup routers even if the + router is standalone (and has backup router). Affected files + in silcd/. + + * Added --without-irssi and --without-silcd configuration + options for disabling the compilation of these applications. + Affected file configure.in.pre and prepare. + +Thu Jun 20 13:48:15 EEST 2002 Pekka Riikonen + + * Implemented SILC_STRING_BMP and SILC_STRING_UNIVERSAL for + UTF-8 encoding and decoding. Added also new encodings + SILC_STRING_BMP_LSB and SILC_STRING_UNIVERSAL_LSB. + + Added also SILC_STRING_LANGUAGE which is language and charset + specific encoder and decoer for those platforms that support + iconv(). It can convert the UTF-8 to and from the locale + specific character set. + + Affected file lib/silcutil/silcstrutil.[ch]. + + * Added macro SILC_NOT_IMPLEMENTED to lib/silcutil/silclog.h. + + * Added function silc_get_command_name to the file + lib/silcutil/silcutil.[ch]. + + * Improved the server debug output a bit. Affected files are + in silcd/. + +Wed Jun 19 17:46:31 EEST 2002 Pekka Riikonen + + * Save the channel passphrase when received succesful JOIN + command reply from router, on normal server. Otherwise + joinig +a channels from normal server is not possible. + Affected file silcd/command.c. + + * Fixed a bug in TOPIC_SET notify handling. The notifier + may be other than client too, like server or channel. + It expected it to always be only client and ignored the + notify. Affected file silcd/packet_recieve.c. + + * Removed some (unnecessary) debug printing from + lib/silccore/silcid.c and lib/silccore/silcargument.c. + + * Do not force CMODE_CHANGE when server is announcing new + channel. + + Router announces stuff only after server reannounces channel + after CHANNEL_CHANGE notify. + + These fixes optimizes the announcing procedure, and perhaps + fixes some problems too. Affected file silcd/packet_receive.c. + + * Fixed SERVER_SIGNOFF sending to local clients. It was + totally broken and sent the notify to all local clients, + instead of only to those that was on same channel as the + signing off clients. Affected file silcd/server_util.c. + + * Added -D option to server. It can be used to give debug + level. The levels are from 0 - 99, and are predefined for + smooth server debugging. (see silcd.c for the predefined + levels). Affected file silcd/server.c. + +Wed Jun 19 16:01:51 EEST 2002 Pekka Riikonen + + * Fixed a bug in Irssi SILC client to close the connection + properly when disconnecting from server. Affected file + irssi/src/silc/core/client_ops.c. + +Tue Jun 18 17:14:52 EEST 2002 Pekka Riikonen + + * When authenticating as founder during JOIN command, check + that the one authenticating becomes the only founder on the + channel. Affected file silcd/command.c. + + * Better checking for founder mode setting when CUMODE_CHANGE + notify is received. Affected file silcd/packet_receive.c. + + * Close all connections when shutting down the server by sending + DISCONNECT packet. Close all listeners too when shutting + down the server. Affected file silcd/server.c. + + * Handle DISCONNECT packet correctly in client library by + calling the "disconnect" client operation. Affected file + lib/silcclient/client.c. + + * Handle local errors correctly during resuming. Affected + file lib/silcclient/client.c. + +Tue Jun 18 10:26:27 EEST 2002 Pekka Riikonen + + * The log file is not dupped internally anymore in + lib/silcutil/silclog.c. Fixed memory leaks too. + + * The scheduler now dispatches all pending timeout tasks + when it is uninitialized with silc_schedule_uninit. + Affected file lib/silcutil/silcschedule.c. + +Mon Jun 17 21:30:55 EEST 2002 Pekka Riikonen + + * Added --enable-stack-trace option to configure. Added + memory allocation stack trace support. Added files + lib/silcutil/stacktrace.[ch]. Affected files are + lib/silcutil/silcmemory.[ch]. + + * Fixed memory leaks from libraries and server. Affected + files around the tree. + + * Reverted back a fix made to CUMODE which broke it. + Affected file silcd/command.c. + +Sun Jun 16 11:49:45 EEST 2002 Pekka Riikonen + + * Added SILC_MESSAGE_FLAG_UTF8 to the protocol specs and the + core library, and implemented it. All textual messages SHOULD + use this flag and the message MUST be UTF-8 encoded. + All text messages sent by Irssi SILC client are now UTF-8 + encoded (regardless whether the terminal supports UTF-8 or not). + Affected files are lib/silccore/silcchannel.h, + irssi/src/silc/core/silc-servers.c, silc-channels.c and + client_ops.c. + +Sat Jun 15 18:23:39 EEST 2002 Pekka Riikonen + + * Added lots of new statistics updating that was missing from + the server and router code. Affected files in silcd/. + + * Sending SIGUSR1 signal to server now dumps the current + server statistics into /tmp directory. Affected file is + silcd/silcd.c. + + * ROBODoc documented the lib/silccrypt/silchash.h. Improved + the SILC Hash Interface also. Added new functions + silc_hash_get_name, silc_hash_init, silc_hash_update and + silc_hash_final. Affected file lib/silccrypt/silchash.c. + +Sat Jun 15 12:09:14 EEST 2002 Pekka Riikonen + + * Added some better info printing for client during connecting. + Affected file silcd/server_util.c. + + * Implemented the SILC_CHANNEL_UMODE_QUIET mode that can be used + to silence a user on a channel. Affected files are + lib/silcclient/client_channel.c, irssi/src/silc/core/client_ops.c, + irssi/src/fe-common/silc/module-formats.[ch], silcd/command.c + and silcd/packet_receive.c. + + * Fixed a fatal bug in handling of malformed command payload. + Affected file silcd/command.c. + + * Fixed a double free when announcing channel users to router. + Affected file silcd/server.c. + + * After successful authentication to channel founder mode, check + that there isn't anyone else with founder mode on the channel. + The one that authenticated will become founder and anyone + else is demoted. Affected file silcd/command.c. + + * Added error printing of any error that has occurred during + any command in client library. Affected file is + irssi/src/silc/core/client_ops.c. + + * Removed some error printing from the client library and left + it for the application to worry (from the error status it + receives in 'command' client operation. Affected file is + lib/silcclient/command.c. + +Fri Jun 14 22:59:02 EEST 2002 Pekka Riikonen + + * Added new status types KEY_AGREEMENT_ALREADY_STARTED and + KEY_AGREEMENT_SELF_DENIED to lib/silcclient/silcclient.h. + Starting key agreement with itself is denied. Affected file + is lib/silcclient/client_keyagr.c. + + * Fixed some error checkings from the SFTP library which caused + misbehaviour. Affected files are lib/silcsftp/sftp_client.c + and lib/silcsftp/sftp_util.c. + + * Added new "debug" and "debug_string" settings to Irssi SILC + client which can be used to print runtime debugging on the + Irssi's screen. Available when compiled with --enable-debug + option. Affected file irssi/src/silc/core/silc-core.c. + +Tue Jun 11 16:36:02 CEST 2002 Johnny Mnemonic + + * Fixed a missing variadic parameter in a function call that + caused server crash when a non-allowed connection arrived. + Reported by Richard Becker. Affected file silcd/server.c. + +Mon Jun 10 16:29:42 EEST 2002 Pekka Riikonen + + * Added WATCH list sending to backup routers from router. + The WATCH command is sent by the router to the backup + router. Affected file silcd/command.c. + + * Mark the backup_router flag for RouterConnection entry + if the backup router stuff is defined in the config file. + Affected file silcd/serverconfig.c. + + * Fixed some backup data sending around the code to work better + if the router is standalone router. Not all places were fixed. + Affected file silcd/packet_receive.c, silcd/packet_send.c, + silcd/server.c. + + * Fixed the router connecting when connecting to multiple + routers. It ignored every other router except the first + one. Affected file silcd/server.c. + +Mon Jun 10 09:28:21 CEST 2002 Pekka Riikonen + + * Made the private key generation after expiration optional. + If not created after expiration the old key will re-expire + at a later time (and thus key pair is not necessary to + change). Affected file irssi/src/silc/core/clientutil.c. + +Sun Jun 9 18:58:25 EEST 2002 Pekka Riikonen + + * The length arguments in bind() and connect() were wrong + and fixed now to used SIZEOF_SOCKADDR in the + lib/silcutil/unix/silcunixutil.c. + +Tue Jun 4 18:36:05 EEST 2002 Pekka Riikonen + + * Fixed detach timeout handling to use Client ID and not + the actual client entry which may be freed in the callback. + Affected file silcd/command.c. + +Thu May 30 15:53:45 CEST 2002 Pekka Riikonen + + * Merged c0ffee's multiple interface support patch. + Affected files in silcd/. + +Wed May 29 18:08:15 EEST 2002 Pekka Riikonen + + * Cleanup keys properly. Affected file is + irssi/src/silc/core/clientutil.c. + +Tue May 28 20:11:41 EEST 2002 Pekka Riikonen + + * Display the user mode on the status bar. Affected file + irssi/src/silc/core/silc-expandos.c. + +Tue May 28 13:56:26 CEST 2002 Pekka Riikonen + + * If private message key is not set, but the flag is set in + the packet, ignore the packet since it cannot be decrypted. + Affected file lib/silcclient/client_prvmsg.c. + +Thu May 23 12:00:14 CEST 2002 Pekka Riikonen + + * When resuming client, remove the old client entry from + the watcher list too. Affected file silcd/packet_receive.c. + + * Do not allow normal server to force founder mode away + from router if the founder mode is already set. Affected + file silcd/packet_receive.c. + + * Remove the client entry with watch notify types with short + timeout, and not directly, so that other notifys can be + retrieved too. Affected file lib/silcclient/client_notify.c. + + * Display notification about data messages that cannot be + displayed. Affected files irssi/src/silc/core/client_ops.c, + irssi/src/fe-common/silc/module-formats.[ch]. + +Sun May 19 18:59:00 EEST 2002 Pekka Riikonen + + * Fixed the CHANNEL_CHANGE notify handling in client libary + to not use freed memory. Affected file is + lib/silcclient/client_notify.c. + + * Fixed CUMODE_CHANGE notify handling in server. Affected + file silcd/packet_receive.c. + + * Fixed USERS command to support empty channels. Affected + file silcd/command.c. + +Sat May 18 11:35:19 EEST 2002 Pekka Riikonen + + * Allow multiple identical pending commands to be registered + in client library. Affected file is lib/silcclient/command.c. + + * Call the completion for resolving client information only + after all resolvers has finished. This fixes a crash in + the client. Added support for checking when the resolvers + are finished. Affected file is lib/silcclient/idlist.c. + + * Wait by default 3 seconds before reconnecting to the server + after being disconnected. Makes the /detach command a bit + more usable. + +Fri May 17 17:23:45 EEST 2002 Pekka Riikonen + + * Check the watcher list before sending signoff notifys + when closing client connection. Affected file is + silcd/server.c. + + * Added better CMODE command rights checking. Affected file + silcd/server_util.c. + +Fri May 17 08:33:41 CEST 2002 Pekka Riikonen + + * Fixed watcher list checking during server signoff. It + crashed the server. Affected file silcd/server_util.c. + + * The JOIN command reply returns now the founder's public + key. Affected file is silcd/command.c. + + * Announce the channel mode, and the mode properties with + CMODE_CHANGE notify. Affected file silcd/server.c. + + * Mark new channels by default disabled, untill at least + one user joins the channel. Affected file is + silcd/packet_receive.c. + +Thu May 16 13:05:13 CEST 2002 Pekka Riikonen + + * The nickname argument to watch notify can be optional. + Fixes a crash in server. Affected file silcd/packet_send.c. + + * Remove the client entry from cache if the WATCH notify type + is KILLED, SERVER_SIGNOFF or SIGNOFF. Affected file is + lib/silcclient/client_notify.c. + + * Check the watcher list before and after changing nickname + when the NICK_CHANGE notify is received. Affected file is + silcd/idlist.c. + + * Fixed a crash in OPER and SILCOPER command sending. Empty + passphrase caused the crash. Affected file is + lib/silcclient/command.c. + +Wed May 15 19:01:42 EEST 2002 Pekka Riikonen + + * Merged with Irssi CVS for Irssi SILC client. + +Tue May 14 19:37:48 EEST 2002 Pekka Riikonen + + * Completed the protocol specifications. + +Tue May 7 20:41:58 EEST 2002 Pekka Riikonen + + * Merged with Irssi CVS for Irssi SILC client. + +Tue May 7 11:07:16 EEST 2002 Pekka Riikonen + + * Added the founder's public key delivery to the + CUMODE_CHANGE notify type as well. Updated the protocol + specs and the code. Affected files are silcd/packet_send.[ch], + silcd/packet_receive.c and silcd/command.c. + +Mon May 6 19:46:12 EEST 2002 Pekka Riikonen + + * Added silc_pkcs_public_key_copy function into the + lib/silccrypt/silcpkcs.[ch]. + + * Remove the `iv' from the SilcChannelEntry since we can + live without it. Affected files are silcd/idlist.h and + silcd/packet_receive.c. + + * Added support for sending the founder's public key in + the CMODE_CHANGE notify packet in the server. Affected + files are silcd/packet_send.[ch], silcd/packet_receive.c, + silcd/command.c and silcd/server.c. + + * Changed the FOUNDER_AUTH authentication to use only + public key authentication as defined by new protocol + specs. Passphrase authentication with that mode cannot + be used anymore. It is now possible to reclaim founder + mode from any server in the network. Affected files are + silcd/command.c, silcd/idlist.h and silcd/command_reply.c. + + * Added permanent channels support by making the channel + permanent when FOUNDER_AUTH mode is set on the channel. + The channel will not be destroyed even if channel is empty + when that mode is set. Protocol TODO #17. Affected + files are silcd/server.[ch], server_util.[ch], + silcd/command.c, silcd/packet_receive.c and + lib/silcclient/command.c. + +Fri May 3 18:36:51 EEST 2002 Pekka Riikonen + + * Added reference counter to the command reply context in + the client library. Affected files are + lib/silcclient/command_reply.[ch]. + +Fri May 3 11:37:10 EEST 2002 Pekka Riikonen + + * Fixed rekey protocol with PFS in the client library. + Affected file is lib/silcclient/protocol.c. + + * Added support for list of errors in client library + command reply handling. Affected file is + lib/silcclient/command_reply.c. + + * Defined that the WHOIS and IDENTIFY commands can send + list of errors. Updated the protocol specs. Protocol + TODO #2. + + * Added support for sending list of errors to WHOIS and + IDENTIFY commands in server. Added support for receiving + list of errors in server. Affected files are + silcd/command.c and silcd/command_reply.c. + + * Fixed client info resolving on LEAVE command in client + library to not crash. Affected file is + lib/silcclient/client_notify.c. + +Thu May 2 08:45:11 CEST 2002 Pekka Riikonen + + * Defined that the NICK command replies with thew changed + nickname too, to make the nickname changing simpler at + the client's end. Updated protocol specs and the code + in client and server. Affected files are + silcd/command.c, lib/silcclient/command_reply.c and + lib/silcclient/command.c. + +Mon Apr 29 20:10:42 EEST 2002 Pekka Riikonen + + * Added `Compressed' packet flag to indicate that the packet + payload is compressed by the sender. Updated the protocol + specs and the core library. The compression still is not + implemented in the sources. Affected file is + lib/silccore/silcpacket.h. + +Mon Apr 29 09:48:12 CEST 2002 Pekka Riikonen + + * Remove pending command callbacks also if the connection + to the server is destroyed. Affected file is + lib/silcclient/client.c. + +Sat Apr 27 19:52:32 EEST 2002 Pekka Riikonen + + * Added new QUIET channel user mode that can be used to + quiet a user in a channel. Updated the protocol specs but + it wasn't implemented yet. Protocol TODO #27. Affected + file is lib/silccore/silcmode.h. + +Mon Apr 22 09:09:44 CEST 2002 Pekka Riikonen + + * Added BLOCK_INVITE user mode to be able to block incoming + invite notifications. Protoocol TODO #26. Affected files + are lib/silccore/silcmode.h, lib/silcclient/command.c and + silcd/command.c. + + * SILC Publickey fields MUST be UTF-8 encoded now. Updated + the protocol specs and the code. Affected file is + lib/silccrypt/silcpkcs.c. + +Sun Apr 21 19:44:38 EEST 2002 Pekka Riikonen + + * Disconnect Payload includes now the status type. Updated + the protocol specs and the code. Protocol TODO #25. + Affected files are silcd/server.c, lib/silcclient/client.c. + + * Added NOT_AUTHENTICATED, BAD_SERVER_ID, INCOMPLETE_INFORMATION, + KEY_EXCHANGE_FAILED and BAD_VERSION error status types. + Moved the silc_client_command_status_messages table to the + lib/silcutil/silcutil.c and added new funtion + silc_get_status_message, which deprecates function + silc_client_status_message. Affected files are + lib/silccore/silcstatus.h, lib/silcclient/command_reply.[ch], + lib/silcutil/silcutil.[ch]. + +Fri Apr 19 17:35:15 EEST 2002 Pekka Riikonen + + * Defined that the nickname hash in Client ID MUST be from + lowercase nickname. This effectively changes nicknames in + SILC to case-insensitive. Updated the protocol specs and + the code. Affected files are lib/silcutil/silcutil.[ch], + silcd/serverid.c, and silcd/idlist.c. + + * Added new channel user modes BLOCK_MESSAGES_USERS and + BLOCK_MESSAGES_ROBOTS. Updated the protocol specs and the + code. Affected files are lib/silccore/silcmode.h, + lib/silcclient/command.c, and silcd/packet_send.c. + + * Added new error status ERR_RESOURCE_LIMIT. Updated protocol + specs and code. Affected file lib/silccore/silcstatus.h. + + * Added support for watch list. It is possible to add nicknames + to be watched, and when they come to network, leave network + or user mode changes the watcher will be notified of this + change. Added SILC_COMMAND_WATCH command, added new + notify type SILC_NOTIFY_TYPE_WATCH to deliver the watch + notifications. Updated the protocol specs and implemented + this to library, client and server. Protocol TODO #21. + Affected files are lib/silccore/silccomand.h, + lib/silccore/silcnotify.h, lib/silcclient/command[_reply].[ch], + silcd/command[_reply].[ch], lib/silcclient/client_notify.c, + silcd/packet_send.[ch], silcd/packet_receive.c, and + irssi/src/silc/core/client_ops.c. + + * Added user mode SILC_UMODE_REJECT_WATCHING to reject + somebody watching you. Updated the protocol specs and the + code. Affected files are lib/silccore/silcmode.h, and + lib/silcclient/command.c. + +Fri Apr 19 09:02:20 CEST 2002 Pekka Riikonen + + * Added service support to SILC protocol. Added new command + SILC_COMMAND_SERVICE. Updated the protocol specs and the + core library. Services are not implemented in server or + client for now. Protocol TODO #20. Affected files are + lib/silccore/silcstatus.h, lib/silccore/silccommand.h. + + * Added SilcStatus argument to `command' client operation + to return the error status when command sending fails + locally. Changed all command in client library to return + correct command status. Affected files are + lib/silcclient/command.c, lib/silcclient/silcclient.h and + irssi/src/silc/core/client_ops.c. + +Thu Apr 18 14:09:51 CEST 2002 Pekka Riikonen + + * Added silc_mime_parse function to parse MIME headers. + Affected files are lib/silcutil/silcstruti.[ch]. + + * Added MIME header parsing in Irssi SILC Client. It displays + all textual MIME objects, others it ignores. Affected file + is irssi/src/silc/core/clien_ops.c. + +Wed Apr 17 22:07:59 CEST 2002 Johnny Mnemonic + + * Fixed a bug in the pid writing function, which couldn't be + written in a root-owned directory. + +Tue Apr 16 09:34:40 EEST 2002 Pekka Riikonen + + * Defined that channel message to unknown Channel ID must + cause SILC_NOTIFY_TYPE_ERROR notify message to the sender. + Updated the protocol specs and the code in server. The + affected file is silcd/packet_receive.c. + +Mon Apr 15 19:57:57 EEST 2002 Pekka Riikonen + + * Added new notify type SILC_NOTIFY_TYPE_ERROR and specified + that it is used to send error notifys if error occurs during + some SILC packet processing, except commands. The error + types are same as for command reply types. Defined that + if private message is sent to unknown Client ID the error + is sent in SILC_NOTIFY_TYPE_ERROR instead of command reply. + Updated the protocol specs and code. Affected files are + lib/silccore/silcnotify.h, added lib/silccore/silcstatus.h, + lib/silcclient/client_notify.c, silcd/packet_receive.c, + and irssi/src/silc/core/client_ops.c. Renamed the + SilcCommandStatus to SilcStatus. + + * Defined the use of extra WHOIS attributes in WHOIS command. + The (defined in a separate document) + can be used to request additional information about user + not returned by standard WHOIS command. Defined that server + can send WHOIS command directly to client. Client provides + the requested attributes to the server. Updated the protocol + specs. Protocol TODO #4. Implementation is not done yet + (Protocol TODO #24). + + * Renamed function silc_client_command_status_message to + silc_client_status_message. Affected files are + lib/silcclient/command_reply.[ch]. + +Sun Apr 14 21:13:42 EEST 2002 Pekka Riikonen + + * Changed the WHOIS, IDENTIFY and WHOWAS count arguments to + 32 bit integers. Updated the protcol specs and the code. + Affected files are silcd/command.c and + lib/silcclient/command.c. + +Sun Apr 14 19:49:02 CEST 2002 Johnny Mnemonic + + * Fixed a bug in library where sending a bogus authentication + payload would lead to a crash. Affected file is + lib/silccore/silcauth.c. + +Sat Apr 13 13:09:24 EEST 2002 Pekka Riikonen + + * Added detach_disabled and detach_timeout server config + options to the server. Affected files silcd/serverconfig.[ch], + silcd/command.c and silcd/packet_receive.c. + +Fri Apr 12 20:09:08 EEST 2002 Pekka Riikonen + + * Added resolve_cmd_ident field to the SilcClientEntry structure + too so that if the entry is for example being resolved so + another command may attach to the same pending command reply + without requiring to resolve the same entry again. Added + support for adding multiple pending commands for one + command idenfier. Affected files lib/silcclient/command.[ch], + lib/silcclient/command_reply.[ch], lib/silcclient/idlist.h. + +Fri Apr 12 10:17:51 EEST 2002 Pekka Riikonen + + * Defined that server receives WHOIS command reply for private + and secret channels too. Updated protocol specs and the + code in server. Affected file silcd/command.c. + + * Defined argument to WHOIS command + reply for returning user modes on the channels. The + channel list now doesn't include the user mode anymore but the + actual channel mode. Updated protocol specs and the code in + client and server. Affected files are silcd/command_reply.c, + silcd/command.c, silcd/server.c, irssi/src/silc/core/client_ops.c, + and lib/silcclient/command_reply.c. + + * Save the channels list in WHOIS command reply in normal server + so that WHOIS always shows joined channels also in normal + server and not just on router. Affected file is + silcd/command_reply.c. + +Thu Apr 11 22:29:33 EEST 2002 Pekka Riikonen + + * Defined that server receives USERS command reply for private + and secret channels too. Updated protocol specs and the + code in server. Affected file silcd/command.c. + +Thu Apr 11 16:32:08 EEST 2002 Pekka Riikonen + + * Changed the UMODE's mode mask argument to be optional. If + not provided then the command merely returns the current mode + mask to the client. Updated protocol specs and the server. + Affected file is silcd/command.c. + + * Added SILC session detachment/resuming support. It is possible + to detach by closing the network connection and then re-connect + and resume to the old client session. Added DETACHED user + mode that server will set for detached client. Added new + packet RESUME_CLIENT which is used to perform the resuming + process. Added DETACH command. Updated the protocol specs, + core library, client and server. Protocol TODO #22. Very + many affected files around the tree. + +Wed Apr 10 16:32:01 EEST 2002 Pekka Riikonen + + * Changed the CMODE's mode mask argument to be optional. If + not provided then the command merely returns the current mode + mask to the client. Updated protocol specs and the server. + Affected file is silcd/command.c. + + * Changed the Killer's Client ID in KILLED notify to be just + any ID payload since router server is allowed to kill as well. + Updated protocol specs, client libary and server. Affected + files are lib/silcclient/client_notify.c, silcd/packet_receive.c, + and irssi/src/silc/core/client_ops.c. + +Tue Apr 9 17:15:42 EEST 2002 Pekka Riikonen + + * Added new user modes ANONYMOUS for special anonymous servers + that may set the mode for client, and BLOCK_PRIVMSG which + client may set to block incoming private messages unless the + Private Message Key flag is set (using private keys to protect + private messages). Updated protocol specs and code in client + and server and core library. Protocol TODO #23. Affected + files are lib/silccore/silcmode.h, silcd/server.[ch], + irssi/src/silc/core/client_ops.c, silcd/packet_receive.c, + irssi/docs/help/in/umode.in, lib/silcclient/command.c. + + * Added new channel user mode BLOCK_MESSAGES which the client + may set to itself to tell server not send channel messages. + Other packets such as channel key packets are still sent. + Protocol TODO #23. Updated the protocol specs, client and + server. Affected files are lib/silccore/silcmode.h, + irssi/docs/help/in/cumode.in, lib/silcclient/command.c, + lib/silcutil/silcutil.c, silcd/command.c, and + silcd/packet_send.c. + +Mon Apr 8 23:57:32 EEST 2002 Pekka Riikonen + + * Redefined the Status Payload to include now two 8 bit fields, + instead of one 16 bit field. This now makes it possible to + send list of errors. Updated the protocol specs and the code + in core library, client library and server. Protocol TODO #1. + Affected files are lib/silccore/silccommand.[ch], + lib/silcclient/command_reply.[ch], silcd/command.c, + silcd/command_reply.c and silcd/packet_receive.[ch]. + +Mon Apr 8 19:57:40 CEST 2002 Johnny Mnemonic + + * Added config parse status SILC_CONFIG_EPRINTLINE, this status + must be handled by the application and should tell the application + that an error message was already printed, and it should print the + config coords (line, filename, ...). Affected files are + silcd/serverconfig.c, lib/silcutil/silcconfig.[ch]. + + * Added local macro SILC_SERVER_CONFIG_ALLOCTMP to make the + server config parsing code more readable. + + Fixed a bug in the fetch_logging() config callback. + + Affected files is silcd/serverconfig.c. + + * Drop root privileges when started in foreground. Don't drop them + if debugging also. Affected file is silcd/silcd.c. + +Mon Apr 8 17:00:41 EEST 2002 Pekka Riikonen + + * Added more IM-like features by introducing new user modes + for setting various presence information. Added new modes: + INDISPOSED, BUSY, PAGE, HYPER and ROBOT. Updated protocol + specs and code. Protocol TODO #19. Affected files are + lib/silccore/silcmode.h, irssi/src/silc/core/client_ops.c, + irssi/docs/help/in/umode.in and lib/silcclient/command.c. + +Sun Apr 7 17:07:59 EEST 2002 Pekka Riikonen + + * Added STATS command to the protocol after all, to return + various statistical information about the network. It can + be used by clients to retrieve statistical information, and + servers may use it to to fetch cell and network wide + statistics from router. Updated the protocol specs and + implemented it to the server. Protocol TODO #16. + Affected files are lib/silccore/silccommand, silcd/command.[ch], + silcd/command_reply.[ch]. + +Sat Apr 6 17:08:58 EEST 2002 Pekka Riikonen + + * The LIST command reply in client libary now adds new channel + entry if the returned channel doesn't exist yet in cache, + and returns the channel entry to the application in the + command_reply client operation. Affected file is + lib/silcclient/command_reply.c. + + * Changed the channel message payload's MAC generation to + include the IV in the MAC as well. This way all relevant + parts of the channel message payload are authenticated also + with the channel message MAC (and not only by packet MAC). + Causes incompatibility with 1.0 protocol. Protocol TODO #7. + Affected file is lib/silccore/silcchannel.c. + + * Fixed the SKE to save the remote version, since the + silc_ske_parse_version mistakenly checked wrong version, + after it replaced the start payload. Affected files are + lib/silcske/silcske.[ch]. + +Fri Apr 5 16:03:03 EEST 2002 Pekka Riikonen + + * Splitted lib/silcutil/silcutil.h into silcstrutil.h for + string utility functions. Added there also new functions + silc_utf8_[encode/decode/valid] for UTF-8 string encoding. + Affected files lib/silcutil/silcstrutil.[ch]. + + * Renamed silc_*_pem functions to silc_pem_* functions. Affected + files are lib/silcutil/silcstrutil.[ch]. + + * Defined that the security property fields in SKE SHOULD be + UTF-8 encoded, defined that version string MUST be US-ASCII + encoded, defined that passphrases sent in connection + authentication protocol MUST be UTF-8 encoded. Implemented + these to the client and server. Defined also that other + passphrases sent in the protocol MUST be UTF-8 encoded. + Affected files are lib/silcske/silcske.c, + lib/silcclient/protocol.c, silcd/protocol.c, + silcd/serverconfig.c, and lib/silccore/silcauth.c. + + * Changed the silc_client_close_connection interface to not + need the SilcSocketConnection which should not be visible + to application. Affected files are lib/silcclient/client.c + and lib/silcclient/silcclient.h. + + * Rewrote the text for Private Message Key Payload in the + protocol specification. Protocol TODO #11. + +Wed Apr 3 16:24:51 EEST 2002 Pekka Riikonen + + * Upgraded the protocol version to 1.1, updated protocol specs + and software. + + * Added the nickname as new argument to NICK_CHANGE notify and + added it to protocol specs and implemented it to client and + server. Protocol TODO #3. Affected files are silcd/idlist.[ch], + silcd/command.c, silcd/packet_receive.c, packet_send.[ch], and + lib/silcclient/client_notify.c. + + * Added the killer's client ID to the KILLED notify and added + it to protocol specs and implemented it to client and server. + Protocol TODO #13. Affected files are silcd/command.c, + silcd/packet_receive.c, packet_send.[ch], + lib/silcclient/client_notify.c, irssi/src/silc/core/client_ops.c. + The killer's client entry is now returned to application in + the `notify' client operation. + + * Fixed the Max Argument fields that had too large value set + in the protocol specs. Protocol TODO #14. + + * Added the LEAVE command reply to return the ID of parted + channel. Updated protocol specs and implemented it to the + client and server. Protocol TODO #15. Affected files are + silcd/command.c, lib/silcclient/command_reply.c. The channel + entry is now returned to application in the `command_reply' + client operation. + + * Rewrote the version SKE version checking in client libary + and in server to use the silc_parse_version_string. Affected + files are lib/silcclient/protocol.c, silcd/protocol.c. + + * Added SILC_STATUS_ERR_NO_CHANNEL_FOPRIV error status to few + commands that was missing it, and updated protocol specs and + the server implementation. Protocol TODO #10. The affected + file is silcd/command.c. + + * Defined new message flags SILC_MESSAGE_FLAG_REPLY to be + generic reply to a generic request (REQUEST flag), and + SILC_MESSAGE_FLAG_DATA to send any kind of data in a generic + way. A draft-riikonen-silc-flags-payloads-00.txt is written + to define the payload for DATA flag. Added the flags to + the implementation. Protocol TODO #9. Affected file is + lib/silccore/silcchannel.h. + + Changed the client library to return the message length + to application as well in the channel_message and private_message + client operations. Affected files are + lib/silcclient/client_prvmsg, lib/silcclient/client_channel.c, + lib/silcclient/silcclient.h, irssi/src/silc/core/client_ops.c, + and lib/silcclient/client_ops_example.c. + + * Added two new channel modes: SILC_CMODE_SILENCE_USERS + and SILC_CMODE_SILENCE_OPERS which can be used to moderate + the channel. Updated protocol specs and impelemented this + to client and server. Protocol TODO #6. Affected files are + silcd/packet_receive.c, server_util.c, lib/silcclient/command.c, + lib/silcclient/client_channel.c, lib/silccore/silcmode.h. + + Added new options m and M to CMODE command in Irssi SILC + client to set these modes. + + * Deprecated all administrative commands from SILC protocol + since they are highly implementation specific commands. + Updated protocol specs. Moved the old commands in + implementations to private range of command types. Affected + files are silcd/command.c, lib/silcclient/command.c and + lib/silcclient/command_reply.c. Protocol TODO #8. + + * Fixed a bug in server where sending unknown command crashes + the server. Affected file silcd/command.c. + +Wed Apr 3 09:57:47 CEST 2002 Pekka Riikonen + + * Added SILC_PROTOCOLVERSION macro to check protocol version + of a socket connection. The affected file is + lib/silcutil/silcsockconn.h. + + * Added better error logging in rekey protocol. Affected file + silcd/protocol.c. + + * Do not check public key types in SKE during rekey. Affected + file lib/silcske/payload.c. + + * Fixed the rekey protocol with PFS, which was totally broken. + Affected file silcd/protocol.c. + +Tue Apr 2 14:55:06 CEST 2002 Pekka Riikonen + + * Some client implementations quit network by doing first LEAVE + and then immediately SIGNOFF (like Bombyx). We now do check + after a short time after LEAVE notify and check whether the + client is still valid after LEAVE, and if not we remove it from + cache. Affected file is lib/silcclient/client_notify.c. + +Tue Apr 2 13:39:04 CEST 2002 Johnny Mnemonic + + * Merged version 1.1.4 of zlib. Even if it not currently in use, + it's good not to have security holes here. + + * Fixed a negative refcount situtuation for the config context. + Affected file is silcd/serverconfig.c. + +Mon Apr 1 20:15:10 CEST 2002 Johnny Mnemonic + + * ROBOdoc documented lib/silcutil/silcutil.h. + +Sat Mar 30 21:06:45 EET 2002 Pekka Riikonen + + * Optimized even more the SilcPacketContext structure. Now + totally saved 16 bytes of memory per context after optimization. + Affected files are lib/silccore/silcpacket.[ch]. + + * Made strict checks for valid SILC IDs. Affected file is + lib/silccore/silcid.c. + +Sat Mar 30 18:15:55 EET 2002 Pekka Riikonen + + * Changed the object argument for silc_cipher_register, + silc_hash_register, silc_hmac_register and silc_pkcs_register + to const. Affected files are lib/silccrypt/silccipher.[ch], + silchash.[ch], silchmac.[ch] and silcpkcs.[ch]. + + * Changed the silc_get_username and silc_get_real_name to + never fail. Affected file lib/silcutil/unix/silcunixutil.c. + + * Fixed the Irssi SILC Client to use the silc_get_username and + silc_get_real_name insted of glib routines since the glib + routines only corrupt stack. Fixes the Irssi SILC to work in + Cygwin. Affected file irssi/src/silc/core/silc-core.c. + + * Fixed the Irssi to not use g_get_home_dir since it crashes + or returns garbage on cygwin and corrupts stack. Added function + get_home_dir to Irssi routines. Affected files are + irssi/src/core/misc.[ch] and irssi/src/core/core.c. + +Fri Mar 29 21:55:41 EET 2002 Pekka Riikonen + + * Made some structure optimizations. SFTP memory FS MemFSEntry + entry structure. Optimized SilcTask structure. Optimized + SilcPacketContext structure. + + Affected files lib/silcsftp/sftp_fs_memory.c, + lib/silcutil/silcschedule.c, lib/silccore/silcpacket.h. + +Fri Mar 29 10:41:07 EET 2002 Pekka Riikonen + + * And yet again reverted back the config thing since Johnny + screwed it up. Affected file silcd/serverconfig.[ch], server.c, + and silcd.c. + + * Fixed memory leaks from config object. Affected files are + silcd/serverconfig.[ch]. + + * Added support for adding new connections to the server in rehash. + After rehash they take effect. + + Added support for changing the maximum allowed connections in + rehash. The number can grow but going smaller is not supported. + + Added function silc_server_num_sockets_by_remote to the + silcd/server_util.[ch]. + + Affected files are silcd/server.c, and silcd/serverconfig.[ch]. + +Fri Mar 29 03:26:12 CET 2002 Johnny Mnemonic + + * Added preliminary checking during config parsing for a valid + public/private key and removed further checks in the code. + Affected files are silcd/serverconfig.[ch], server.c. + + * Moved functions silc_server_drop() and silc_server_daemonise() + from server.c to silcd.c since they are stricly related to + the application activity. + + * Reverted a small part of the automatic ref/unref since + it caused a double unref in some situations. Affected + files are silcd/silcd.[ch], server.c, serverconfig.c. + + * Added some .cvsignore files in the lib directory. + +Thu Mar 28 22:51:15 EET 2002 Pekka Riikonen + + * Fixed silc_net_gethostbyaddr to correctly resolve by + address. Affected file lib/silcutil/silcnet.c. + + * Fixed the notify relaying to client. The HMAC to be used + with relayed packets ws wrong and caused decryption failure + at the client end. Affected file is silcd/packet_receive.c. + +Thu Mar 28 19:02:05 EET 2002 Pekka Riikonen + + * Created new branch silc_protocol_1_0_branch. + + * Reverted the silc_log_quick change in lib/silcutil/silclog.c. + + * Changed the silc_server_config_* routines to be SilcServer + independent. They are now officially application specific code + and not part of generic server implementation. Affected files + are silcd/serverconfig.[ch], silcd/silcd.c, silcd/server.c. + +Thu Mar 28 17:01:43 EET 2002 Pekka Riikonen + + * Added automatic referencing of config context in the + silc_server_config_alloc, and automatic unreferencing in the + silc_server_config_destroy. Affected files are + silcd/serverconfig.[ch], silcd/silcd.c. + + * Fixed the silc_log_quick handling in the logging routines. + It didn't log quickly when it was TRUE. Affected file is + lib/silcutil/silclog.c. Also the flush delay was set even + if it was 0 in config file. Affected file is + silcd/serverconfig.c. + + * Added support for changing key pair of the server in rehash. + Affected file silcd/server.c. + +Thu Mar 28 12:17:21 CET 2002 Pekka Riikonen + + * Fixed the TOPIC_SET notify to not cras. It changed the topic + too early, before getting the channel entry. Affected file + is silcd/packet_receive.c. + +Thu Mar 28 09:58:16 CET 2002 Johnny Mnemonic + + * Added functions silc_server_config_[ref/unref], these are used + to prevent that the config object is destroyed. + + No longer directly affect global variables silc_log_quick and + silc_log_delay, they are first cached inside the config object + and then applied with silc_server_config_setlogfiles(). + + silc_server_config_set_defaults() is now internal to + serverconfig.c, there are no reasons to show this internal stuff + to the server. + + Affected files are silcd/serverconfig.[ch]. + + * Added macro SILC_SERVER_LOG_STDERR(), this should replace most + fprintf's to stderr, since some code may be executed again after + the server went into the background. Affected files are + silcd/server.[ch]. + + * Added rehash support. Added function silc_server_rehash() that + will perform all the basic tasks of the rehashing procedure. + + * Added command line option `-x, --hexdump'. This will enable the + SILC_LOG_HEXDUMP calls that are no longer enabled with `--debug'. + The option `--hexdump' implies `--debug'. + + * Fixed a bad bug in the logging APIs (silcutil library) where + the application would crash after calling silc_log_reset_all(). + +Wed Mar 27 19:43:16 EET 2002 Pekka Riikonen + + * Fixed the KICKED notify handling in client library to + correctly remove the channel and all entries from the + channel when I was kicked. This bug crashed the client. + + Fixed yet another but in KICKED notify handling to remove + the kicked client correctly from the channel. + + Affected file is lib/silcclient/client_notify.c. + + * Fixed a minor bug in looking up correct client entry + in KICKED notify in server. Affected file is + silcd/packet_receive.c. + + * Fixed the lib/silcmath/Makefile.am to include the MPI and GMP + sources correctly to distribution. Fixes --with-gmp option. + + * Removed the manual rehashing from ID Cache, and changed it + to use the SILC Hash Table's auto rehash feature. Affected + file is lib/silccore/silcidcache.c. + +Wed Mar 27 00:07:11 EET 2002 Pekka Riikonen + + * Fixed a bug in the silc_client_nickname_format function that + handles the multiple same nickname formatting. Two clients + with same nickname caused problems after the first one left + and rejoined. It didn't format the nickname correctly. + Affected file is lib/silcclient/idlist.c. + +Tue Mar 26 19:33:03 CET 2002 Pekka Riikonen + + * Don't change the topic if olod topic is same as new one. + Affected file is silcd/packet_receive.c. + +Mon Mar 25 21:11:35 EET 2002 Pekka Riikonen + + * Added cross-reference support to the SILC Documentation + generator. All types across all HTML files are now cross- + referenced. Affected files util/robodoc/generator.c and + scripts/silcdoc/silcdoc. + + * Added file lib/silcutil/silctypes.h to include all the + arithmetic type definitions and some macros. Removed + includes/bitmove.h and moved macros to silctypes.h. + +Mon Mar 25 17:19:46 EET 2002 Pekka Riikonen + + * Merged bugfixes for Irssi SILC client from irssi.org CVS. + +Sun Mar 24 11:21:04 EET 2002 Pekka Riikonen + + * Added `type' argument to silc_id_payload_parse_id function which + now returns the type of the ID to the sent pointer. Affected + file is lib/silccore/silcid.[ch]. + + * Added check for CMODE_CHANGE notify type that mode change is + allowed by the sender. Affected file silcd/packet_receive.c. + + * Added check for CUMODE_CHANGE notify type that mode change is + allowed by the sender. Affected file silcd/packet_receive.c. + Added the ID type as CUMODE_CHANGE notify type as argument + to the `notify' client operation. Affected files are + lib/silcclient/client_notify.c, irssi/src/silc/core/client_ops.c. + + * Added function silc_client_add_server to the client library. + Added support for resolving also channel and server info when + received unknown entity in notify packet. Affected files are + lib/silcclient/idlist.[ch], lib/silcclient/client_notify.c. + + * Added function silc_command_get_status to return the command + status from the command reply's argument payload. Affected files + are lib/silccore/silccommand.[ch]. + + * Added check for KICKED notify type that the kicking is + allowed by the client. Affected file silcd/packet_receive.c. + + * Created function silc_get_input which can be used to get input + (echo on or off) from user on command line. Affected files are + lib/silcutil/silcutil.[ch]. + +Sat Mar 23 09:51:26 EET 2002 Pekka Riikonen + + * Optimized silc_server_packet_relay_to_channel function. + Added new function silc_channel_message_payload_encrypt which + can be called directly if channel message payload needs to + be encrypted and is already encoded (no need to call _encode + function). Packet relaying is now done by router without any + extra memory allocations. Affected files are + lib/silccore/silcchanel.[ch], silcd/packet_receive.c and + silcd/packet_send.c. + + * Fixed the INVITE notify handling. It took wrong arguments + as invite list and invite delete. Affected file is + silcd/packet_receive.c. + + * Added check for TOPIC_SET notify type that the topic change is + allowed by the client. Affected file silcd/packet_receive.c. + + * Added check for INVITE notify type that inviting is allowed by + the client. Affected file silcd/packet_receive.c. + + * Changed the silc_server_client_on_channel to return the + SilcChannelClientEntry as well. Moved the function + silc_server_check_cmode_rights to server_util.[ch]. + Affected files are silcd/server_util.[ch], silcd/command.c. + + * Added function silc_server_check_umode_rights to check whether + changing client's user mode is allowed. Added check for + UMODE_CHANGE notify type that the umode change is allowed + by the client. Affected files are silcd/server_util.[ch], + silcd/packet_receive.c and silcd/command.c. + +Fri Mar 22 12:25:58 CET 2002 Pekka Riikonen + + * Fixed the SILC_PACKET_MAX_ID_LEN to actually be the max + ID length. It ignored that ID can be IPv6 based as well. + Affected file lib/silccore/silcpacket.h. + + * Fixed the silc_id_id2str and silc_id_str2id to take the + IPv6 address offset's into consideration. Affecte file is + lib/silccore/silcid.c. + +Thu Mar 21 20:44:13 EET 2002 Pekka Riikonen + + * Fixed the internal Unix scheduler functions to check for + NULL context they may receive. The affected file is + lib/silcutil/unix/silcunixschedule.c. + +Thu Mar 21 19:12:22 EET 2002 Timo Sirainen + + * Changed hardcoded ~/.silc paths to use get_irssi_dir() so you + can specify different directory with --home command line + parameter. Affected files irssi/src/silc/core/client_ops.c, + clientutil.c + + * SILC-specific commands aren't now executed if the active server + isn't of SILC-type, so there won't be problems with having + IRC and SILC protocol support in same client. Affected files + irssi/src/silc/core/silc-channels.c, silc-servers.c, + silc-commands.h + +Wed Mar 20 11:06:57 CET 2002 Pekka Riikonen + + * Improved the signal support in SILC Schedule. Added new + function silc_schedule_signal_call which is used by application + to mark a signal to be called. It is now safe to perform + any kind of tasks in signal callbacks since it is guaranteed + that the application specified signal callback is called + after the signal is over. Affected files are + lib/silcutil/silcschedule.[ch], lib/silcutil/*/silc*schedule.c. + +Tue Mar 19 20:42:41 EET 2002 Pekka Riikonen + + * Added `name' field to SilcChannelPrivateKey to represent + application given name for the key. Moved also the context from + lib/silcclient/idlist.h into lib/silcclient/silcclient.h. + Added the `name' argument also to the function + silc_client_add_channel_private_key. + + Added function silc_client_current_channel_private_key to set the + current channel private key in use. + + Added "change" command to KEY command which can be used to change + the current channel private key. Bound the command also to + alt+K (Alt+Shift+k). + + Also affected files lib/silcclient/client_channel.c, + irssi/src/docs/help/in/key.in, irssi/src/silc/core/silc-channel.c. + +Tue Mar 19 16:32:43 CET 2002 Pekka Riikonen + + * Added silc_rng_get_byte_fast function in to the + lib/silccrypt/silcrng.[ch]. + + * Changed the interface of silc_packet_assemble and the + silc_packet_send_prepare. If silc_packet_assmble is now + called the application does not call silc_packet_send_prepare + because the library will call it automatically. These + interfaces now also return a reference to the outgoing buffer + which includes the assembled packet, which the application can + use to encrypt the packet. + + Affected files are lib/silccore/silcpacket.[ch], + lib/silcclient/client.c, client_channel.c client_prvmsg.c, + silcd/packet_send.c, server_backup.c and packet_receive.c. + + * Fixed a packet sending bug on very high load, where outgoing + packet queue wasn't handled correctly and packets got corrupted. + Affected files are lib/silcutil/*/silc*sockconn.c, + lib/silcclient/client.c and silcd/server.c. + +Mon Mar 18 21:00:41 EET 2002 Pekka Riikonen + + * Added macro SILC_PACKET_DATALEN which can be used during + packet assembling to check whether the data to be added to + the packet will fit to SILC_PACKET_MAX_LEN. If not the data + len is truncated until it fits it. + + Added checks for maximum length of channel message payload and + private message payload also. + + Added checks for maximum packet length in server and in + client library. + + Affected files are lib/silccore/silcpacket.h, silcd/packet_send.c, + lib/silcclient/client.c, lib/silccore/silcchannel.c and + lib/silccore/silcprivate.c, lib/silcclient/client_channel.c and + lib/silcclient/client_prvmsg.c. + +Mon Mar 18 14:54:42 CET 2002 Pekka Riikonen + + * Added silc_server_packet_queue_purge call to the + silc_server_disconnect_remote to assure that all data in the + queue before disconnecting is sent to the network. Affected + file silcd/server.c. + +Sun Mar 17 19:26:16 EET 2002 Pekka Riikonen + + * Added the deleting of server's own ID cache entry to the + silc_server_free function. Free also everything else that + has been allocated in silc_server_init. The affected file + is silcd/server.c. + +Sun Mar 17 15:44:56 EET 2002 Pekka Riikonen + + * Added functions silc_parse_version_string, silc_version_to_num, + and silc_ske_parse_version to parse SILC protocol style version + strings. Affected files lib/silcutil/silcutil.[ch] and + lib/silcske/silcske.[ch]. + + * Added new configuration params: version_protocol, version_software + and version_software_vendor to specify what version the remote + host must at least be to be able to connect to server. The vendor + string can be regex matched too. Added new function + silc_server_connection_allowed to check maximum number of allowed + connections, and allowed versions for incoming connections. + Affected files are silcd/server.c, server_util.[ch] and + serverconfig.[ch]. + +Sun Mar 17 10:24:50 EET 2002 Pekka Riikonen + + * Added preliminary support for signals in scheduler. The + signals we care about are now blocked always when the scheduler + is locked. This way we can synchronise the use of signal with + scheduler. It is guaranteed that when signal occurs the scheduler + is not locked, and thus new tasks can be safely added to the + scheduler. + + Renamed silc_schedule_wakeup_init and silc_schedule_wakeup_uninit + to silc_schedule_internal_init and silc_schedule_internal_uninit. + Added new platform specific routines + silc_schedule_internal_signals_[un]block and + silc_schedule_internal_signal_[un]register. + + Added new functions to SILC Schedule API: + silc_schedule_signal_[un]register. Each signal that application + is going to use should be registered to the scheduler. + + Affected files are lib/silcutil/silcschedule.[ch], + lib/silcutil/*/silc*schedule.c. + +Sat Mar 16 22:39:23 EET 2002 Pekka Riikonen + + * Check for unauthenticated client and server in the + silc_server_new_client and silc_server_new_server functions. + Affected file silcd/packet_receive.c. + + * Added function silc_string_is_ascii to check whether given + string is 7-bit ASCII string. Affected files are + lib/silcutil/silcutil.[ch]. + + * Added function silc_id_is_valid_server_id into the + silcd/serverid.c and added checking for valid Server ID's in + silc_server_new_server. The Server ID must always be based + on the server's public IP address. + + * Added logging of DISCONNECT packet message in the server. + Affected file silcd/server.c. + +Sat Mar 16 18:04:30 EET 2002 Pekka Riikonen + + * Changed all library interfaces that use Global RNG to also + accept SilcRng as argument. Affected files are + lib/silcclient/command.c, lib/silccore/silcauth.[ch], + lib/silccore/silcchanel.[ch], lib/silcclient/client_channel.c, + silcd/packet_send.c, lib/silccore/silcprivate.[ch], + lib/silcmath/silcprimegen.c, lib/silcmath/silcmath.h, and + lib/silccrypt/rsa.c. + + * Added function silc_pkcs_generate_key to the + lib/silccrypt/silcpkcs.[ch] for applications so that they + don't need to do pkcs->pkcs->init calls anymore. + + * Remove SilcSocketConnection from the SFTP API since it really + wasn't needed there. The application has the information + saved in its contexts anyway and the SFTP layer doesn't need + know about it. Affected files lib/silcsft/silcsftp.h and + lib/silcsftp/sftp_[server/client].c. + + * Rewrote the SILC SIM (modules) interface in lib/silcsim.[ch]. + The SilcSimContext is not SilcSim. + + * Fixed possible buffer overflows in silc_id_render in the + lib/silcutil/silcutil.c. + + * On EPOC the global crypto module lists are not used at all + in the crypto library. Added support for using the constant + algorithm list on EPOC. Affected files are + lib/silccrypt/silccipher.c, silchash.c, silchmac.c and + silcpkcs.c. + + * Fixed the handling of third parameter of KICKED notify, since + it was mistakenly updated to SILC Protocol 1.0 even though it + is to be included in 1.1. Since it is not in 1.0 it is not + mandatory, and this fix now handles it only if it is provided, + and it is not error if it is not provided. Affected file + lib/silcclient/client_notify.c. + +Sat Mar 16 09:07:27 EET 2002 Pekka Riikonen + + * Handled CHANNEL_CHANGE notify (ignore it) in Irssi SILC + client. Affected file irssi/src/silc/core/client_ops.c. + + * Merged with Irssi 0.8.4 from irssi.org CVS. + +Thu Mar 14 12:53:57 CET 2002 Pekka Riikonen + + * Check for valid socket connection in client entries before + sending any messages. Fixes a crash, but doesn't fix some + other underlaying bug that is lurking there. Affected + file silcd/packet_send.c. + +Thu Mar 14 13:38:12 EET 2002 Timo Sirainen + + * $usermode, $cumode and $cumode_space expandos shouldn't do + anything with non-SILC server records. Affected file + irssi/src/silc/core/silc-expandos.c + +Wed Mar 13 21:38:26 EET 2002 Pekka Riikonen + + * Fixed the silc_net_check_[host/local]_by_sock to support + IPv6 bound sockets as well. Now they can return IPv6 addresses + as well. Affected file lib/silcutil/silcnet.c. + + * Fixed silc_net_addr2bin to correctly convert IPv6 addresses. + Affected lib/silcutil/unix/silcunixnet.c. + + * Fixed ID rendering (at least on some platforms, not NetBSD) + for IPv6 addresses. Affected file lib/silcutil/silcutil.c. + +Tue Mar 12 17:58:59 EET 2002 Pekka Riikonen + + * Added silc_hash_public_key and silc_hash_public_key_compare + functions to be used with SilcHashTable. They can be used to + hash public keys and compare public keys in hash table. Affected + file lib/silcutil/silcutil.[ch]. + + * Added support for specifying multiple public keys for Client + connection section in server configuration file. This makes it + possible to accept multiple public keys from same host, or to + make a section that accepts any incoming host, and have the + accepted public keys listed in the section. + + Added functions silc_sever_[find/get]_public_key, added the + support for this actually to all connection sections but only + the Client section is currently allowed to specify multiple + public keys. + + Affected files are silcd/server.c, server_internal.h, + command.c, protocol.c, server_util.[ch], packet_receive.c. + +Mon Mar 11 23:37:38 EET 2002 Pekka Riikonen + + * Merged Irssi 0.8.2 from irssi.org CVS. + +Sun Mar 10 23:34:48 CET 2002 Johnny Mnemonic + + * If silc_debug is TRUE, also output standard logging messages + to stderr with the debug output. + + Made silc_log_reset_all() flushing all channels before returning. + Also fixed some documentation typos. + + Affected files are lib/silcutil/silclog.[ch]. + +Sun Mar 10 20:07:49 EET 2002 Pekka Riikonen + + * Fixed the server to check correctly the amount of connections + from single host, by checking also the type of the connection. + Fixed also the comparison of number of connections and number + of allowed connections. Affected files are silcd/server.c, + server_util.[ch]. + +Fri Mar 8 17:16:41 EET 2002 Pekka Riikonen + + * Fixed the USERS command reply to save the user's mode on the + channel as well. Fixed JOIN command reply to check whether a + client is on channel already and not join it twice. Affected + file lib/silcclient/command_reply.c. + + * Added new file silc-expandos.c into irssi/silc/core/ to return + various stuff for various signal for the statusbar etc. updating. + Now Irssi SILC client prints channel user modes etc. on the + statusbar. + + * The user mode (like server/router operator changes) is now shown + on the Irssi SILC client's statusbar. The affected files are + irssi/src/silc/core/client_ops.c, silc-expandos.c. + +Thu Mar 7 19:21:22 EET 2002 Pekka Riikonen + + * Changed silc_mutex_[un]lock calls in lib/silcutil/silcschedule.c + to SILC_SCHEDULE_[UN]LOCK macros. + + * Added more error printing to logs in server code. Affected + files silcd/server.c and silcd/protocol.c. + + * Fixed -S option parsing in Irssi SILC Client. Affected file + irssi/src/silc/core/silc-core.c. + + * Added silc_buffer_alloc_size function. Affected file is + lib/silcutil/silcbuffer.h. + +Tue Mar 5 14:37:27 EET 2002 Pekka Riikonen + + * Changed all silc_[hash|hmac|cipher|pkcs]_default tables to + constants. Affected files in + lib/silccrypt/silcpkcs.[ch], silchash.[ch], silchmac.[ch] and + silccipher.[ch]. + + * Changed the internal SFTP Memory FS table to const. Affected + file lib/silcsftp/sftp_fs_memory.c. + +Sun Mar 3 18:37:13 EET 2002 Pekka Riikonen + + * Fixed the buffer formatting and unformatting routines to + check the size of 64 bits types with sizeof(). Affected + file is lib/silcutil/silcbuffmt.c. + +Mon Feb 25 17:19:05 EET 2002 Pekka Riikonen + + * Removed 0.6.x backwards support. + +Sun Feb 24 12:53:25 EET 2002 Pekka Riikonen + + * Changed all integer type names: + [u]int[8/16/32/64] -> Silc[UInt/Int][8/16/32/64]. This is + to avoid collisions with other libraries using same type names + as we did. + +Sat Feb 23 20:31:43 EET 2002 Pekka Riikonen + + * Added `prefer_ipv6' argument to the functions + silc_net_gethostbyname[_async]. If it is TRUE it will return + IPv6 address over IPv4. If FALSE IPv4 address is returned + even if IPv6 address was found. Affected files + lib/silcutil/silcnet.[ch]. + + * Added support silc_net_create_connection[_async] to fallback + to IPv4 address if IPv6 address could not be used (like if + it doesn't work on a specific system). Affected file in + lib/silcutil/unix/silcunixnet.c. + +Sat Feb 23 15:20:30 EET 2002 Pekka Riikonen + + * Added silc_schedule_reinit function to do the enlarging + of the max tasks handling capabilities of the scheduler. + Affected files lib/silcutil/silcschedule.[ch]. + +Wed Feb 20 20:41:01 EET 2002 Pekka Riikonen + + * Added automatic extern "C" { ... } for C++ compilers so the + application does not need to define them. Affected file + includes/silcincludes.h. + + * Renamed lib/silcclient/silcapi.h to silcclient.h as the + old name went against naming convention. Applications now + include "silcclient.h" instead of "clientlibincludes.h". + Removed includes/clientlibincludes.h, it is redundant now. + + * Renamed includes/version.h to silcversion.h. + + * Added really preliminary support for OS/2 into the util + library. Only thread & mutex API is implemented, others + are still to be implemented. Created the lib/silcutil/os2/ + directory. Created also file includes/silcos2.h. + +Wed Feb 20 18:48:49 EET 2002 Pekka Riikonen + + * Added preliminary BeOS support into the util library. + Created lib/silcutil/beos/, and implemented all the needed + functions to support SILC on BeOS. Created also file + includes/silcbeos.h. + +Mon Feb 18 15:49:22 EET 2002 Timo Sirainen + + * Added proper initializations to silc's irssi code, so it's + now possible to load it as module. Affected files + irssi/src/silc/core/silc-core.c, + fe-common/silc/fe-common-silc-core.[ch] and fe-text/silc.c + +Sun Feb 17 19:02:56 EET 2002 Pekka Riikonen + + * Merged latest Irssi (0.8.1) from the irssi.org's CVS into + the SILC tree. + + * Fixed the silcdoc document generator to correct generate + docs from all kinds of filenames. Affected files are + util/robodoc/Source/generator.c, scripts/silcdoc/silcdoc + + * ROBOdoc documented lib/silcutil/silcmemory.h. + Added also new function silc_memdup. + + * Removed lib/silcutil/silcbufutil.h and moved those routines + to the lib/silcutil/silcbuffer.h. + +Sun Feb 17 15:52:30 EET 2002 Pekka Riikonen + + * Added `user_count' to the SilcChannelEntry which now tells the + number of users on the channel. The user count is now saved + in normal server of global channels as well. Affected files + silcd/server.c, idlist.h, packet_receive.c and command.c. + + * Splitted lib/silcutil/silcutil.[ch] into silcfileutil.[ch] to + include file utility functions. + + * Fixed the lib/silcsftp/sftp_fs_memory.c to use silcutil routines + instead of calling directly OS routines. + + * Fixed NICK change printing in Irssi SILC Client. Fixed + KICKED notify printing in Irssi SILC Client. Affected file + irssi/src/silc/core/client_ops.c. + + * Fixed a NICK change bug in client library, to not recreate the + client_entry->channels hash table everytime nick is changed. + Affected file lib/silcclient/client.c. + +Sun Feb 17 10:10:14 EET 2002 Pekka Riikonen + + * ROBOdoc documented the lib/silcske/silcske.h, and improved + the SKE interface a bit. + + * Fixed padding problem in PKCS#1. The padding was not actually + random since the random number generator was used incorrectly. + This security bug affects only when encrypting with PKCS#1, and + it is not currently used at all in SILC. SILC only use signing + with PKCS#1. Affected file lib/silccrypt/pkcs1.c. + +Sat Feb 16 13:44:24 EET 2002 Pekka Riikonen + + * Rewrote the notify handling in Irssi SILC client to not call + the events as signals. Fixes problems with Perl support. + Affected files irssi/src/silc/core/client_ops.c, silc-channels.c. + + * Send the auto-nicking NICK command in client library with + little timeout after connecting. The affected file is + lib/silcclient/client.c. + + * Added following new config file settings: + channel_rekey_secs, key_exchange_rekey, key_exchange_pfs, + key_exchange_timeout, conn_auth_timeout, connections_max, + links_max. + + Implemented all the new config settings handling in the server. + + Optimized the use of SKE Mutual flag usage. Use it only + if connection authentication protocol is not based in public + key authentication. + + Renamed all SilcServerConfigSection* to SilcServerConfig* + to have a bit shorter names. + + Affected files silcd/serverconfig.[ch], server.[ch], and + protocol.[ch]. + +Sat Feb 16 02:46:43 CET 2002 Johnny Mnemonic + + * Cleaned up the listening sockets code, preparing for the rehash + support. Affected file is silcd/server.c. + + * Fixed some output messages. Affected files are silcd/silcd.c, + and silcd/server.c. + +Fri Feb 15 19:10:20 EET 2002 Pekka Riikonen + + * Create lib/doc/silcrng_intro.html document as introduction + to SILC RNG. ROBOdoc documented lib/silccrypt/silcrng.h. + +Fri Feb 15 13:23:03 CET 2002 Johnny Mnemonic + + * Fixes to the silcd config template. Affected file is + doc/example_silcd.conf.in. + + * Removed type casts from silc_calloc(), conforming to the + CodingStyle. Affected file is lib/silcutil/silcconfig.c. + + * Removed param_name member from client, server, and router + section structs, now identifying the param directly. + + Added CONFIG_FREE_AUTH macro in config file parsing. + + Affected files are silcd/serverconfig.[ch]. + +Fri Feb 15 12:24:08 EET 2002 Timo Sirainen + + * Fixed command line parameter handling. All SILC initialization + is now done in silc_core_init() which also fixes autoconnecting + to servers. + + Affected files irssi/src/silc/core/silc-core.c, + irssi/src/fe-text/silc.c. + +Thu Feb 14 22:03:58 EET 2002 Pekka Riikonen + + * Added new configuration options and blocks: + keepalive_secs, reconnect_count, reconnect_interval, + reconnect_interval_max, reconnect_keep_trying and + require_reverser_lookup. Added ConnectionParam block, and + implemented the connection parameters when connecting as + initiator and when accepting connections as responder. + + Added CONFIG_IS_DOUBLE macro in config file parsing, to check + whether given configuration value has been given already. + + Affected files silcd/serverconfig.[c], server.[c]. + + * Splitted the doc/example_silcd.conf.in. Separated the crypto + algorithm parts and created new file silcalgs.conf, that + is now included from the example_silcd.conf.in. + + * Optimized the silc_server_connect_to_router_second to take + the connection configuration object from the SilcServerConnection + object instead of finding it during the connecting phase. + Added the configuration object to SilcServerConnection struct. + Affected files silcd/server_internal.h, server.c. + +Thu Feb 14 16:02:26 CET 2002 Pekka Riikonen + + * Add the client on channel after it was resolved at the + channel message receiving, and it was not already on the + channel. Affected file lib/silcclient/client_channel.c. + +Wed Feb 13 23:16:41 EET 2002 Pekka Riikonen + + * Fixed the public key authentication to allocate always the + destination signature buffer instead of using static buffer. + Affected file silcd/protocol.c. + +Wed Feb 13 20:51:13 EET 2002 Pekka Riikonen + + * Unified the serverconfig.[ch]'s helper function interface. + Affected file silcd/serverconfig.[ch]. + + * Removed doc/example_silc.conf.in since it is redundant. + The make install will now install irssi/silc.conf file. + + * Added new Passphrase and Publickey authentication methods to + config file, allowing both public key and passphrase based + authentication to be set at the same time. + + Added `prefer_passphrase_auth' setting in config file which + can be used to set to prefer passwd auth if both passwd and + public key is set. If not set, public key is preferred. + This has effect only when being initiator (responder will try + both anyway). + + Added support for authentication with passphrase and public key + at the same time. The passphrase is tried first always since + it is faster to check. + + Affected file silcd/serverconfig.[ch], server.c, protocol.[ch]. + +Wed Feb 13 12:46:25 CET 2002 Johnny Mnemonic + + * Merged the new SILC Config library, with the server parsing + support. Read the header file silcconfig.h or the toolkit + documentation for the news. Affected files are + doc/example_silcd.conf.in lib/silcutil/silcconfig.[ch] + silcd/command.c silcd/packet_receive.c silcd/packet_send.c + silcd/protocol.c silcd/server.c silcd/server_backup.c + silcd/serverconfig.[ch] silcd/silcd.c. + + * Fixed some silclog documentation. Affected file is + lib/silcutil/silclog.h. + +Sun Feb 10 18:11:30 EET 2002 Pekka Riikonen + + * The silc_cipher_register, silc_hash_register and + silc_hmac_register now checks if the object to be registered + is registered already. Affected files are + lib/silccrypt/silccipher.c, silchash.c and silchmac.c. + +Sun Feb 10 15:48:38 EET 2002 Pekka Riikonen + + * Merged new irssi from irssi.org's CVS, the version 0.7.99. + +Sat Feb 9 14:54:33 EET 2002 Pekka Riikonen + + * Allow zero length channel messages inside the Channel Message + Payload. Affected file lib/silccore/silcchannel.c. + + * Fixed scripts/silcdoc/silcdoc to support all kinds of filenames + as header filenames. + + * Removed lib/silcclient/README and created HTML file + lib/silcclient/silcclient_using.html, which is now included + as part of Toolkit documentation. + +Thu Feb 7 10:12:25 CET 2002 Pekka Riikonen + + * Fixed CUMODE_CHANGE notify handling to change the mode of + correct client. Affected file lib/silcclient/client_notify.c. + + * Make silc_rng_alloc fail if it cannot allocate the sha1 + hash algorithm. Affected file lib/silccrypt/silcrng.c. + +Sun Feb 3 17:20:52 EET 2002 Pekka Riikonen + + * Fixed the file transfer's key agreement payload to include + zero port also if the hostname is NULL because it could not + be bound. + + Call file transfer monitor callback now also if error occurs + during key agreement protocol. + + Changed the silc_client_file_send interface to return the + SilcClientFileError instead of session id. The session ID + is returned into pointer provided as argument. + + Check that the file exists locally before sending the + file transfer request at all. + + Affected file lib/silcclient/client_ftp.c, silcapi.h. + + * Added SILC_CLIENT_FILE_KEY_AGREEMENT_FAILED file transfer + error than can occur while key agreement protocol. Affected + file lib/silcclient/silcapi.h. + + * Fixed the event_mode CMODE handler to not crash when mode + is changed and +k mode is set in the channel. Affected file + irssi/src/silc/core/silc-channels.c. + + * Fixed SILC_LOG_ERROR to give out Error and not Warning, and + SILC_LOG_WARNING to give out Warning and not Error. Affected + file lib/silcutil/silclog.c. + + * Fixed the channel message payload decryption in the function + silc_channel_message_payload_decrypt to not modify the original + buffer before it is verified that the message decrypted + correctly. Otherwise, next time it is called with correct + channel key it won't encrypt since the payload is corrupted. + Affected file lib/silccore/silcchannel.c. + +Sun Feb 3 11:46:12 EET 2002 Pekka Riikonen + + * Do not constantly resize the window. A fix patch by cras. + Affected file irssi/src/fe-text/screen.c. + +Sat Feb 2 16:54:18 EET 2002 Pekka Riikonen + + * Applied IPv6 fix patch from Jun-ichiro itojun Hagino. + Affected file lib/silcutil/silcnet.c. + +Fri Feb 1 22:33:11 EET 2002 Pekka Riikonen + + * Fixed a bug in hash table internal routine for traversing + the table with foreach callback. The current entry may + become invalid in the callback but it was referenced after + the callback returned. + + Do not allow auto rehashing of hash table during the + silc_hash_table_foreach operation, for same reasons as it is + not allowed for SilcHashTableList. Affected files are + lib/silcutil/silchashtable.[ch]. + +Fri Feb 1 14:55:00 CET 2002 Pekka Riikonen + + * Defined DLLAPI into silcincludes.h and silcwin32.h for + Win32 DLL. extern's in header files are now declared with + DLLAPI. + +Thu Jan 31 23:34:33 EET 2002 Pekka Riikonen + + * Fixed private message handling. It used some old code that + caused the client to crash. Affecte file is + lib/silcclient/client_prvmsg.c. + +Thu Jan 31 19:06:22 EET 2002 Pekka Riikonen + + * Added function silc_client_add_channel, + silc_client_replace_channel_id, and removed functions + silc_client_new_channel_id and silc_idlist_get_channel_by_id + from client library. + + * Added cross reference of the joined channels to the + SilcClientEntry, and changed the SilcChannelEntry's + users list to SilcHashTable. The affected files are + lib/silcclient/idlist.[ch]. + + * Fixed a bug in hash table tarversing. While the hash table + is traversed with SilcHashTableList the table must not be + rehashed. It is now guaranteed that auto rehashable tables + are not rehashed while tarversing the list. Also defined that + silc_hash_table_rehash must not be called while tarversing + the table. Added function silc_hash_table_list_reset that must + be called after the tarversing is over. The affected files are + lib/silcutil/silchashtable.[ch]. + + * Changed all hash table traversing to call the new + silc_hash_table_list_reset in server and in client library. + + * Added function silc_client_on_channel to return the + SilcChannelUser entry if the specified client entry is joined + on the specified channel. This is exported to application as + well. Affected files lib/silcclient/client_channel.c, silcapi.h. + +Wed Jan 30 19:14:31 EET 2002 Pekka Riikonen + + * Fixed founder regaining problem with JOIN command on normal + server. The notify for mode change must be sent always and + not only if !cmd->pending. Affected file silcd/command.c. + + * Fixed the WHOWAS command's reply sending to support the + lists correctly. Affected file silcd/command.c. + +Wed Jan 30 11:11:47 CET 2002 Pekka Riikonen + + * When sending JOIN command to router for processing the + sender's old command identifier was not saved back to the + sender's command context, fixed now. The affected file is + silcd/command.c. + + * Create the key in JOIN command of the router did not return + the channel key, added check for this. Affected file is + silcd/command.c. + + * Fixed a channel ID update bug in JOIN command reply. Do + not directly upgrade the ID but call the function + silc_idlist_replace_channel_id if the ID was changed. + Affected file silcd/command_reply.c. + + * Fixed memory leaks from command calling if it would fail. + Affected file silcd/command.c. + +Tue Jan 29 19:49:31 EET 2002 Pekka Riikonen + + * Applied patches from cras: + + Memory leak fixes around libaries, irssi window resize fix, + new silclist.h and silcdlist.h, all extern inline changed to + static inline. + + * Removed dotconf from lib/dotconf, not needed anymore. + + * Removed TRQ from lib/trq, not needed anymore. + + * Do more frequent heartbeats (5 minutes instead of 10 minutes) + with server connections. Later this will be configurable + in config file after new config file is done. Affected file + silcd/server.c. + +Tue Jan 29 10:35:03 CET 2002 Pekka Riikonen + + * Fixed a crash in server related to channel announcements. + Affected file silcd/server.c. + +Mon Jan 28 17:49:42 EET 2002 Pekka Riikonen + + * Fixed memory leaks in silc_server_create_new_channel* + functions. Affected file silcd/server.c. + + * Fixed the CHANNEL_CHANGE notify to re-announce the channel + which ID was changed. This way the router will send the + user list for the channel again, and server won't be in + desync in some rare circumstances. Affected file is + silcd/packet_receive.c. + +Sun Jan 27 21:04:19 EET 2002 Pekka Riikonen + + * Check for NULL socket pointer in the function + silc_server_packet_send_to_channel_real. Affected file + silcd/packet_send.c. + + * Fixed the BAN notify handling to correctly remove ban + list. Affected file silcd/packet_receive.c. + +Sat Jan 26 23:01:03 EET 2002 Pekka Riikonen + + * Fixed some header addition to Toolkit distribution in + lib/silcutil/Makefile.am and lib/trq/Makefile.am. + + * Added lib/silcclient/client_ops_example.h as an template + file for application programmers to quickly start using + the SilcClientOperation functions in their application. + Updated the lib/silcclient/README as well to tell about this + nice file made available. + +Sat Jan 26 10:45:41 EET 2002 Pekka Riikonen + + * Call silc_server_remove_from_channels when removing client + entry when NO_SUCH_CLIENT_ID was received. Affected file + is silcd/command_reply.c. + +Fri Jan 25 19:12:36 EET 2002 Pekka Riikonen + + * Added server & router operator statistics updating. Affected + file silcd/packet_receive.c and silcd/command.c. + + * Fixed the SERVER_SIGNOFF notify handling on normal server + not to save the history information for clients. Same was + fixed earlier in remove_clients_by_server function, but not + here. Affected file silcd/packet_receive.c. + + * Raised the default connection-retry count from 4 to 7 in + server. Affected file silcd/server.h. + + * Cancel any possible reconnect timeouts when we start the + key exchange. Affected file silcd/server.c. + + * Do not reconnect on connection failure when SCONNECT was + given. Affected files silcd/server.[ch]. + +Tue Jan 22 18:19:36 EET 2002 Pekka Riikonen + + * Removed assert()'s from the lib/silcclient/client_keyagr.c. + + * Fixed the NICK command to always give the unformatted + nickname to the one giving the NICK command. If unformatted + nickname is cached already it will be formatted and the + local entry will always get the unformatted nickname. + Affected file lib/silcclient/idlist.c. + + * Fixed some double frees from client library commands. + Affected file is lib/silcclient/command.c. + + * Fixed CUMODE command in server to assure that no one can + change founder's mode than the founder itself, there was a + little bug. Affected file silcd/command.c. + +Mon Jan 21 19:07:53 EET 2002 Pekka Riikonen + + * Removed the SilcClientCommandDestructor from the client + libary, it is not needed anymore. Affected files are + lib/silcclient/silcapi.h, command[_reply].[ch], + client_notify, idlist.c. + + * Fixed GETKEY command to first resolve client, and then + resolve the server only if the client was not found, instead + of resolving both at the same time. Affected file is + lib/silcclient/command.c. + + * Added silc_client_start_key_exchange_cb and lookup the + remote hostname and IP address before starting the key + exchange with server. The affected file is + lib/silcclient/client.c. + + * The server's public key is now saved using the IP address + of the server and not the servername for the filename. + The hostname public key filename is checked as an fall back + method if the IP address based filename is not found. + + Fixed the GETKEY command to save the fetched server key + in correct filename. + + Print the remote server's hostname now when new key is + received during connection process. Affected file is + irssi/src/silc/core/client_ops.c. + + * Return always our own public key to the client if it asks + for it with GETKEY command. Affected file silcd/command.c. + + * Removed the use_auto_addr variable from default config + file since it was in wrong section. Affected file is + irssi/src/config. + + * Fixed TOPIC_CHANGE notification to not route it when it + was sent using silc_server_send_notify_to_channel function. + Affected file silcd/command.c. + + * Fixed silc_server_send_notify_kicked to send the kicker's + Client ID also, it was missing. Affected files are + silcd/command.c, silcd/packet_send.[ch]. + +Thu Jan 17 18:59:11 EET 2002 Pekka Riikonen + + * Do not save client history information in SERVER_SIGNOFF. + Fixes the bug in normal server that it does not detect + the client becoming valid after the server becomes back + online. Affected file silcd/server_util.c. + + * Added `sock_error' field into the SilcSocketConnection + context. When error occurs during socket operation (read + or write) the error is saved. Added also new function + silc_socket_get_error to return human readable socket error + message. Affected files are lib/silcutil/silcsockconn.[ch], + lib/silcutil/unix/silcunixsockconn.c, and + lib/silcutil/win32/silcwin32sockconn.c. + + * The server now prints the socket error message in the + signoff for client. Affected file silcd/server.c. + + * Fixed the `created' channel information sending from router + to server in JOIN command. Checks now whether the channel + really was created or not and set it according that. + + Fixed the JOIN command to use the client entry's current + ID during the joining procedure instead of the one it sent + in the command (it is checked though), since it can change + between the packet processing and command processing, and + would just case unnecessary pain in the client end. Affected + file silcd/command.c. + + * Fixed a channel key payload sending to use correct channel + ID when the server was forced to change the channel's ID by + router. Router sent the key payload with the old Channel ID. + Affected file silcd/packet_receive.c. + +Wed Jan 16 22:26:30 EET 2002 Pekka Riikonen + + * Call silc_server_save_channel_key only if the key payload + was provided in the JOIN command's command reply. Affected + file silcd/command_reply.c. + +Tue Jan 15 18:49:41 EET 2002 Pekka Riikonen + + * Fixed silc_mp_sizeinbase to return the value correctly with + MPI. Affected file lib/silcmath/mp_mpi.c. + + * Fixed the stop_server signal to correctly stop the scheduler + and gracefully stop the server when SIGTERM or SIGINT signals + are received. Affected file silcd/silcd.c. + +Mon Jan 7 23:38:19 CET 2002 Johnny Mnemonic + + * Simple handling of TERM and HUP signals. Also added some log + flushing call around. Affected file is + silcd/silcd.c. + + * Fixed small bugs in silclog.c. Now buffering output will take + effect after 10 seconds since startup: This will ensure that + no important startup messages are lost. Also output redirection + will preserve original format ([Date] [Type] message). + Affected file is lib/silcutil/silclog.c. + + * Added two options to the config file, in the logging section: + quicklogs:: and flushdelay::. Affected files + lib/silcutil/silclog.[ch], silcd/serverconfig.[ch]. + +Sun Jan 6 12:49:40 EET 2002 Pekka Riikonen + + * Do not print the warning about log files not being initialized + more than once to avoid excess logging. Affected file is + lib/silcutil/silclog.c. + + * Fixed the SIM compilation in lib/silcsim/Makefile.am. Fixed + the SIM copying in make install in Makefile.am.pre. + +Sun Jan 6 01:10:21 CET 2001 Johnny Mnemonic + + * Rewritten silclog APIs. Globally interesting changes follows: + silc_log_set_files() changed to silc_log_set_file(). + silc_log_set_callbacks() changed to silc_log_set_callback(). + ROBOdoc documented silclog header file. + SilcLogCb now returns bool to wether inihibit the default + handler or not (to keep the old behaviour return always TRUE). + The new APIs should also fix the problem of the + silcd_error.log file that was written in the current directory. + + New features: + Log files streams will remain opened after silc_log_set_file() + call, means less CPU usage notably on high traffic servers. + File streams are now full buffered, and flushed to the disk + every 5 minutes, lesses HD activity and CPU usage. + Messages can be redirected, allowing admins to configure + one single logfile for all server messages. + the silc_log_quick global variable to activate fast-logging. + Affected files lib/silcutil/silclog.[ch] + + * Changed some code to conform new silclog APIs. Affected + files are doc/example_silcd.conf.in, silcd/server.c + irssi/src/silc/core/silc-core.c, silcd/serverconfig.[ch], + silcd/silcd.c. + + * Fixed a memory leak that could occur in some situations. + Affected file silcd/serverconfig.c. + +Sat Jan 5 13:37:29 EET 2002 Pekka Riikonen + + * Added the silc_client_del_client to remove the client from + all channels as well. Affected file lib/silcclient/idlist.c. + + * Fixed the client library to correctly remove the client + from all channels when the client entry is being destroyed. + Affected file lib/silcclient/client_notify.c, command.c. + + * Added auto-nicking support to the client library. If the + applicatio now sets client->nickname it will be sent to the + server after connecting by the library. This way for example + SILCNICK (or IRCNICK) environment variables will have effect + and always change the nickname automatically to whatever + it is wanted. Affected file lib/silcclient/client.[ch]. + + * Renamed silc_server_command_bad_chars to the + silc_server_name_bad_chars and moved it to the + silcd/server_util.[ch]. Added also new function + silc_server_name_modify_bad to return nickname that + includes bad characters as new nickname without those + bad characters. This check and modify is now used in + silc_server_new_client when the username is initially set + as nickname, so it must be checked to be valid nickname. + Affected file silcd/packet_receive.c. + + * The nickname length is now taken from the packet for real + and not trusted to strlen() since it clearly can return + wrong length for nickname including bad characters. This + also applies to channel names. Affected file silcd/command.c. + + * Removed the lib/silcsilm/modules directory. Modules are now + compiled into the lib/silcsim. Fixed the copying of the + modules to follow symbolic links in Makefile.am.pre. + +Wed Jan 2 18:56:21 EET 2002 Pekka Riikonen + + * Fixed silc_string_regexify list creation. Fixes bugs with + BAN and INVITE commands in server. The affected file is + lib/silcutil/unix/silcunixutil.c. + +Sun Dec 30 13:41:34 EET 2001 Pekka Riikonen + + * Removed the command destructor entirely from the server's + command and command reply routines. It is not needed, and + its usage was buggy and caused crashes. Affected files are + silcd/command[_reply].[ch]. + +Fri Dec 28 12:43:22 EET 2001 Pekka Riikonen + + * Cancel protocol and NULL sock->protocol if timeout + occurred during protocol. Affected file silcd/server.c. + + * Cancel protocol timeouts always before calling the final + callback, to assure that after final callback is called + no other state will be called for the protocol anymore. + Affected file silcd/protocol.c. + + * Print error log if incoming connection configuration could + not be found. Affected file silcd/server.c. + + * Fixed JOIN command to correctly save the founder mode + to the client on normal SILC server, when the channel + was created by the router. Affected file silcd/command.c. + + * Fixed LIST command (hopefully) to send correct reply + packets. Affected file silcd/command.c. + +Thu Dec 20 16:14:52 CET 2001 Pekka Riikonen + + * The silc_packet_receive_process now returns FALSE if the + read data was invalid packet, and TRUE if it was ok. + + The server now checks that if unauthenticated connection + sends data and its processing fails the server will close + the connection since it could be a malicious flooder. + + Affected files lib/silccore/silcpacket.[ch], silcd/server.c. + +Wed Dec 19 21:31:25 EET 2001 Pekka Riikonen + + * Make sure the warning about error opening a log file is + printed only once and not everytime it fails (produces + too much useless log). Affected file lib/silcutil/silclog.c. + +Wed Dec 19 18:21:51 CET 2001 Johnny Mnemonic + + * Made the silc_server_daemonise() function more readable. + Affected file silcd/server.c. + + * Pid file is now optional, the user may comment it out from + the config file. Removed define SILC_SERVER_PID_FILE, we + don't need a default any longer. Affected file + configure.in.pre, lib/Makefile.am.pre. + + * Make some use of the pid file. The server now dies at startup + if it detects a valid pid file on his path. The server would + die anyway in this circumstance, because of the bind() failure. + Affected file silcd/silcd.c. + + * No longer compiling lib/dotconf. + +Mon Dec 17 18:24:27 EET 2001 Pekka Riikonen + + * Fixed JOIN command parsing not to crash. Affected file + lib/silcclient/command.c. + + * Fied the NICK_CHANGE notify to add the new client entry + even it is resolved. This removes an <[unknown]> nick + thingy bug in the client. Affected file is + lib/silcclient/client_notify.c. + + * Do not try to allocate 0 bytes (efence does not like it) + in lib/silccore/silccomand.c when encoding payload. + + * Do not take IRCNICK as nickname in Irssi SILC client since + it is not possible to set nickname before hand connecting + the server (TODO has an entry about adding auto-nicking + support). + + * Changed the silc_server_command_pending to check whether + there already exists an pending entry with the specified + command, command identifier and pending callback. This is + to fix IDENTIFY and WHOIS related crashes that may register + multiple pending commands with same identifier. Affected + file silcd/command.c. + + * Fixed the server to reconnect to the router even if it + was already reconnecting and EOF was received. This to + fix a possibility that the server wouldn't ever try to + auto-reconnect to the router. Affected file silcd/server.c. + +Sat Dec 15 20:31:50 EET 2001 Pekka Riikonen + + * Fixed the server's password authentication to use the + length of the locally saved password, and not the one + sent in the packet. Affected file silcd/protocol.c. + + * Fixed same password authentication problem in the + Authentication Payload handling routines in + lib/silccore/silcauth.c. + + * Yet another password authentication problem fixed with + channel password handling in silcd/command.c. + +Mon Dec 10 19:57:40 EET 2001 Pekka Riikonen + + * If first character of string in silc_parse_userfqdn is '@' + then do not parse it. Affected file is + lib/silcutil/silcutil.c. + +Sun Dec 9 22:18:50 EET 2001 Pekka Riikonen + + * Fixed minor bug in IDENTIFY command reply sending, which + caused various weird problems during JOIN when it was + resolving names for users. Affected file silcd/command.c. + +Sun Dec 9 19:18:41 EET 2001 Pekka Riikonen + + * Fixed the IDENTIFY command reply sending to chech better valid + clients. It was possible to send incomplete list of replies. + Affected file silcd/command.c. + +Sat Dec 8 15:58:31 EET 2001 Pekka Riikonen + + * Added silc_client_command[s]_[un]register functions now to + dynamically register the commands in client library. Removed + the static table of commands. This allows the client library + to call commands without causing the application to know about + what commands library has called. + + Removed the INFO command reply kludge to detect when the command + was called by library. Now library use its own command reply + function for INFO command. + + Added function silc_client_command_call to call a command. + Application can use it to call command, not access the structure + directly. + + Now all commands that are sent by the client library (not + explicitly sent by application) use own command reply functions. + + Affected files around lib/silcclient/ and in + irssi/src/silc/core/. + + * Fixed the WHOIS command reply sending to chech better valid + clients. It was possible to send incomplete list of replies. + + Fixed the WHOIS and IDENTIFY to send the request to router + if normal server did not do it and did not find any results. + + Affected file silcd/command.c. + +Thu Dec 6 17:21:06 EET 2001 Pekka Riikonen + + * Moved the internal data from SilcClient context into its + own file, not accesible to application. Affected files + lib/silcclient/client.h and lib/silcclient/client_internal.h, + and other files in client library. + +Thu Dec 6 10:37:55 EET 2001 Pekka Riikonen + + * Added doc/examples installation target in Makefile.am.pre. + A patch by salo. + +Tue Dec 4 17:43:19 EET 2001 Pekka Riikonen + + * If NO_SUCH_CLIENT_ID notify is received for WHOIS or IDENTIFY + commands the found client entry will be removed from the + cache, after notifying application about the error. Affected + file lib/silcclient/command_reply.c. + + * Changed the /MSG to check for exact nickname user gave, and + not let `nick' match `nick@host' if it is only one found. Now, + user must type the exact nickname (like nick@host2) even if + there are no more than one same nicks found. This is to avoid + a possibility of sending nickname to wrong nickname since + `nick' could match `nick@host'. Affected file is + irssi/src/core/silc-servers.c. + +Mon Dec 3 18:49:45 EET 2001 Pekka Riikonen + + * Do not print "you are now server operator" or similar when + giving /away command. Affected files are + irssi/src/silc/core/client_ops.c, silc-servers.h. + + * Made the silc_server_command_pending_error_check to send + the same command reply payload it received back to the + original sender of the command. This way all arguments + that was received by the server will be received by the + client too. Affected file silcd/command.c. + + * Added the silc_idcache_add to return the created cache entry + to a pointer. Affected file lib/silccore/silcidcache.[ch]. + + * Add global clients to expire if they are not on any channel. + This is because normal server will never know if they signoff + if they are not on any channel. The cache expiry will take + case of these entries. This is done by normal servers only. + The affected files are silcd/command_reply.c, + silcd/idlist.[ch], silcd/server and silcd/packet_receive.c. + + * If server receives invalid ID notification for WHOIS or + IDENTIFY and the ID exists in the lists, it is removed. + Affected file silcd/command_reply.c. + + * If NO_SUCH_CLIENT_ID is received for WHOIS or IDENTIFY command + in client then client entry that it matches is searched and + the nickname is printed on the screen for user. Affected + file irssi/src/silc/core/client_ops.c. + +Mon Dec 3 11:56:59 EET 2001 Pekka Riikonen + + * Use cache entry expire time in the LIST command reply to + purge old entries from the cache after the LIST command + reply has been received. This way we don't have non-existent + entries in the cache for too long. Affected file is + silcd/command_reply.c. + +Sun Dec 2 23:29:07 EET 2001 Pekka Riikonen + + * If we are normal server, and we've not resolved client info + in WHOIS or IDENTIFY from router, and it is global client, + we'll check whether it is on some channel. If it is not + then we cannot be sure about its validity and will resolve it + from router. Fixes a bug in WHOIS and IDENTIFY. Affected + file silcd/command.c. + + * Search channel by name (if possible) rather than by ID + in IDENTIFY command's command reply. Affected file is + silcd/command_reply.c. + +Sun Dec 2 13:48:46 EET 2001 Pekka Riikonen + + * Distribute to the channel passphrase in CMODE_CHANGE notify. + Updated specs and implemented it. Affected file silcd/command.c, + silcd/packet_send.c and silcd/packet_receive.c. + + * Implemented the payload handling in the JOIN + command. If provided all conditions for channel joining + except requirement to provide correct passphrase can be + overrided by the channel founder. Updated the protocol specs. + Affected file silcd/command.c. + + Added support for founder auth in JOIN command in client + library. Fixed the parsing of the JOIN command now to support + all options as they should be. The affected file is + lib/silcclient/command.c. + + * Optimized the WHOIS and IDENTIFY commands to send the request + to router only if it includes nicknames or other names. If + they include only IDs then check the local cache first before + routing. Affected file is silcd/command.c. + + * Added channels topic announcements. Affected file is + silcd/packet_receive.c and silcd/server.c. + + * Fixed the silc_server_send_notify_topic_set to really destine + the packet to channel. Affected file silcd/packet_send.c. + + * Fixed a crash in CHANNEL_CHANGE notify handling in the client + library. Affected file lib/silcclient/client_notify.c. + + * Added UMODE announcements. Affected file silcd/server.c. + +Sat Dec 1 12:52:39 EET 2001 Pekka Riikonen + + * Memory leak fixes in: + + lib/silcutil/silcsockconn.c + lib/silcske/silcske.c + lib/silcske/groups.c + lib/silccrypt/rsa.c + lib/silccrypt/silcpkcs.c + lib/silccore/silccommand.c + lib/silccore/silcidcache.c + silcd/idlist.c + silcd/packet_send.c + silcd/command.c + + * ROBOdoc documented the lib/silcske/groups.h file and a + bit changed the interface for better. + +Thu Nov 29 22:12:50 EET 2001 Pekka Riikonen ' + + * Update the client entry context in the ID cache after + nick change. Affected file lib/silcclient/command.c. + Fixes the CUMODE command when regaining founder privileges, + and a little WHOIS problem. + + * Fixed silc_net_gethostbyname to correctly call the + inet_ntop. Affected file lib/silcutil/silcnet.c. + +Thu Nov 29 19:31:23 EET 2001 Pekka Riikonen ' + + * Added IPv6 support checking to the configure.in.pre, added + also --enable-ipv6 option to override the check. Affected + file configure.in.pre. + + * The silc_thread_create now calls the start function + directly if threads support is not compiled in. Removes + ugly #ifdef's from generic code. Affected files are + lib/silcutil/unix/silcunixthread, win32/silcwin32thread.c. + + * Added silc_net_gethostby[name/addr]_async to asynchronously + resolve. Affected files are lib/silcutil/silcnet.[ch]. + + * Added support for rendering IPv6 based server, client and + channel IDs. Affected file lib/silcutil/silcutil.c. + + * Added support for creating IPv6 based server IDs. Affected + file is silcd/serverid.c. + +Wed Nov 28 23:46:09 EET 2001 Pekka Riikonen ' + + * Added silc_net_gethostby[addr/name] into the + lib/silcutil/silcnet.[ch]. Added IPv6 support to Unix network + routines. Added silc_net_is_ip[4/6]. Affected file is + lib/silcutil/unix/silcunixnet.c. All routines that take + address as argument now supports both IPv4 and IPv6 addresses. + +Mon Nov 26 18:09:48 EET 2001 Pekka Riikonen ' + + * Fixed LIST command reply sending in server. Affected file + silcd/command.c. + + * Server now sends the kicker's client ID in the KICK notify + to the kicked client. Affected file silcd/command.c. + + * The client library now parses the kickers client ID and + UI displays it. Affected files lib/silcclient/client_notify.c + and irssi/src/silc/core/silc-channels.c, module-formats.c. + + * Made all payload parsing function prototypes consistent. + They all take now const unsigned char * and uint32 pair as + the payload data instead of SilcBuffer. Changes all around + the source tree. Other unsigned char* -> const unsigned char* + changes around the tree as well. + + * Optimized SFTP client and server packet sending not to + allocate new buffer for each packet but to recycle the + first allocated buffer. Affected files are + lib/silcsftp/sftp_client.c, sftp_server.c, sftp_util.[ch]. + + * Optimized the SFTP client to use SilcList instead of + SilcDList for requests, because it is faster. Affected file + is lib/silcsftp/sftp_client.c. + + * Moved the ID Payload routines from lib/silccore/silcpayload.[ch] + into lib/silccore/silcid.[ch]. + + Renamed silcpayload.[ch] into silcargument.[ch]. + +Mon Nov 26 15:01:53 CET 2001 Pekka Riikonen + + * If client entry is deleted with active key agreement + session, abort the session. + + The silc_client_abort_key_agreement now calls the completion + callback with new SILC_KEY_AGREEMENT_ABORTED status. + + Affected file lib/silcclient/silcapi.h, client_keyagr.c and + idlist.c. + +Sun Nov 25 18:01:45 EET 2001 Pekka Riikonen + + * Don't use __restrict in older GCC's. Affected file is + lib/silcmath/mpi/mpi-priv.h. A patch by salo. + + * silc_net_localhost now attempts to reverse lookup the + IP/hostname. Affected file lib/silcutil/silcnet.c. + + * Defined argument to the SILC_COMMAND_JOIN + command. It can be used to gain founder privileges at + the same time when joining the channel. + + Defined that the SILC_NOTIFY_TYPE_KICKED send the + kicker's client ID as well. Updated protocol specs. + + Defined that the server must send SILC_COMMAND_IDENTIFY + command reply with error status to client who sent + private message with invalid client ID. + + Updated the protocol specification. + + * Added silc_server_send_command_reply to send any + command reply. Affected file silcd/packet_send.[ch]. + + * Added silc_id_payload_encode_data to encode ID payload + from raw ID data. Affected file lib/silccore/silcpayload.[ch]. + + * The server now send IDENTIFY command reply with error + status if client ID in private message is invalid. Affected + file silcd/packet_receive.c. + + * Save the server key file with server's IP address in + the filename instead of hostname. The affected file is + irssi/src/silc/core/client_ops.c. + +Sat Nov 24 20:08:22 EET 2001 Pekka Riikonen + + * Typo fixes in irssi/src/fe-common/silc/module-formats.c. + A patch by Sunfall. + + * Added libtool support for compiling shared objects in + lib/silcsim. Affected file configure.in.pre and + lib/silcsim/Makefile.am. Original patch by cras. + +Fri Nov 23 23:30:59 EET 2001 Pekka Riikonen + + * Pid file configuration, and server's config file fixes + patch by toma. Updated CREDITS file. + +Sun Nov 18 01:34:41 EET 2001 Pekka Riikonen + + * Fixed silc_client_channel_message to not try to decrypt + the message twice if it resolved the destination client + information. This could cause of dropping one channel + message. Affected file lib/silcclient/client_channel.c. + +Wed Nov 14 23:44:56 EET 2001 Pekka Riikonen + + * Added silc_client_run_one into lib/silcclient/silcapi.h and + lib/silcclient/client.c. This function is used when the SILC + Client is run under some other scheduler, or event loop or + main loop. On GUI applications, for example this may be + desired to used to run the client under the GUI application's + main loop. Typically the GUI application would register an + idle task that calls this function multiple times in a second + to quickly process the SILC specific data. + +Wed Nov 14 19:16:52 CET 2001 Johnny Mnemonic + + * Fixed silc_server_drop() for dropping the supplementary + groups as well, this could cause a security hole on some + systems. + +Wed Nov 14 16:22:25 EET 2001 Pekka Riikonen + + * __pid_t -> pid_t in lib/silccrypt/silcrng.c. A patch by + johnny. + + * Write PID file after dropping privileges. Added -F option + to run server on foreground. A patch by debolaz. + Affected files silcd/server.c, silcd/silcd.c. + + * Fixed MOTD to return the MOTD file server name. Affected + file silcd/command.c. + + * Added INFO command reply handling to the Irssi SILC Client. + Affected file irssi/src/silc/core/client_ops.c. + +Wed Nov 14 00:18:08 EET 2001 Pekka Riikonen + + * Fixed the silc_idcache_list_* routines to really support + the dynamic list. Fixes a crash. Affected file is + lib/silccore/silcidcache.c. + + * Fixed the LIST command reply to really call LIST command's + pending callbacks. Affected file silcd/command_reply.c. + +Tue Nov 13 00:49:17 EET 2001 Pekka Riikonen + + * Update conn->local_entry->nickname after giving NICK + command. Affected file lib/silcclient/command.c. + +Sun Nov 11 23:43:02 PST 2001 Brian Costello + + * Added the [pid] option to the silcd configuration file + + Affected files: serverconfig.[ch] and silcd.c + +Sun Nov 11 23:56:39 EET 2001 Pekka Riikonen + + * Save fingerprint in WHOIS command reply in server. + Affected file silcd/command_reply.c. + + * Fixed NICK commands pending callback registration. + Affected file lib/silcclient/command.c. + +Sun Nov 11 10:49:10 EET 2001 Pekka Riikonen + + * Use ++server->cmd_ident when sending commands in server, + instead of random number. Affected file silcd/command.c. + + * Fixed GETKEY command reply to call actually GETKEY pending + command callbacks. Affected file silcd/command_reply.c. + + * A bit stricter check for nicknames. Check for same nickname + in NICK command also. Affected file silcd/command.c. + + * Do not call INFO command everytime client ID changes, only + during first connecting. Affected file lib/silcclient/client.c. + + * Set the new nickname only after successful command reply for + NICK command is returned by server. Affected file + lib/silcclient/command.c. + + * Remove nicknames from nicklist during server_signoff notify. + Should fix /NAMES bit more. The affected file is + irssi/src/silc/core/silc-channels.c. + + * Added `fingerprint' field to the SilcIDListData in the + silcd/idlist.h to hold the fingerprint of the client's + public key. + + Send the fingerprint of the client's public key in WHOIS + command reply. + + Affected files silcd/command.c, and silcd/idlist.[ch]. + + * Added silc_fingerprint into lib/silcutil/silcutil.[ch] to + create fingerprint from given data. + + * Show the fingerprint of the client's public key in WHOIS. + Affected files irssi/src/module-formats.[ch] and + irssi/src/silc/core/client_ops.c. + + * Format the multiple same nicknames also during JOIN and + NICK_CHANGE notifys. Affected file is + lib/silcclient/client_notify.c. + + * Do not print error on screen for invalid private message + payload since it can come if someone is sending private + messages with wrong key. Affected file + lib/silccore/silcprivate.c. + + * Fixed multiple concurrent /PING crash. Affected file + lib/silcclient/command.c. + + * Changed the wrong ID encoding. All IP addresses must be + in MSB first order in encoded format. They were encoded + wrong and was in LSB format. Affected files are + silcd/serverid.c, lib/silcutil/silcutil.c. + + * Remove silc_net_addr2bin_ne from lib/silcutil/silcnet.[ch]. + + * Call the `connect' client operation through the scheduler + in case of error. Affected file lib/silcclient/client.c. + + * Call the `failure' client operation even if the error + occurred locally during a protocol. Affected file is + lib/silcclient/protocol.c. + + * Added support of sending LIST command to router from normal + server. This way normal server can get list of all channels + in the network too. Fixed the channel list sending in the + server too. Affected files are silcd/command.c, and + silcd/command_reply.[ch]. + + * Added silc_server_update_channels_by_server and + silc_server_remove_channels_by_server. They are used during + disconnection of primary router and in backup router protocol. + Affected file silcd/server_util.[ch], silcd/server.c and + silcd/server_backup.c. + + * Fixed channel adding to global list in IDENTIFY command + reply in server. Affected file silcd/command_reply.c. + +Sat Nov 10 21:39:22 EET 2001 Pekka Riikonen + + * If the incoming packet type is REKEY or REKEY_DONE process + that packet always synchronously. Fixes yet another MAC + failed error on slow (dialup) connections. Affected file + lib/silcclient/client.c and silcd/server.c. + +Thu Nov 8 22:21:09 EET 2001 Pekka Riikonen + + * Call check_version SKE callback for initiator too. Affected + file lib/silcske/silcske.c. + + * Implemented fix for security hole found in the SKE that was + fixed in the specification few days back; the initiator's + public key is now added to the HASH value computation. + Added backwards support for the old way of doing it too, for + old clients and old servers. Affected file is + lib/silcske/silcske.c. + + * Enabled mutual authentication by default in SKE. If initiator + is not providing mutual authentication the responder will + force it. This will provide the proof of posession of the + private key for responder. The affected files are + lib/silcclient/protocol.c and silcd/protocol.c. + + * Do not cache anymore the server's public key during SKE. + We do mutual authentication so the proof of posession of + private key is done, and if the server is authenticated in + conn auth protocol with public key we must have the public + key already. Affected file silcd/protocol.c. + + * Added new global debug variable: silc_debug_hexdump. If + it is set to TRUE SILC_LOG_HEXDUMP will be printed. Affected + file lib/silcutil/silclog.[ch]. + + * Fixed compilation warning due to char * -> const char *. + Affected files lib/silcutil/silcnet.h, and + lib/silccore/silcauth.[ch]. + +Wed Nov 7 20:43:03 EET 2001 Pekka Riikonen + + * Fixed CMODE command when new channel key was created. If + the creation failed the old key was removed. Next time giving + same command would crash the server since the old key was + freed already. Affected file silcd/command.c. + + * Fixed the silc_server_announce_get_channels to not crash + on reconnect. Affected file silcd/server.c. + +Wed Nov 7 17:15:07 EET 2001 Pekka Riikonen + + * Added silc_log_set_debug_string function to set a regex + string to match for debug output. Only the function names, + or filenames matching the given debug string is actually + printed. This way it is possible to filter out those debug + strings that user is not interested in. + + Fixed a bug in silc_string_regexify. + + Affected files lib/silcutil/silclog.[ch], and + lib/silcutil/unix/silcunixutil.c. + + * Changed the -d options in both server and Irssi SILC client + to take the debug string as argument. Affected files + silcd/silcd.c and irssi/src/silc/core/silc-core.c. + +Tue Nov 6 21:31:54 EET 2001 Pekka Riikonen + + * Added silc_hash_babbleprint to create a Bubble Babble + Encoded fingerprint. The encoding is developed by Antti + Huima (draft-huima-babble-01.txt), and it creates human + readable strings out of binary data. Affected file + lib/silccrypt/silchash.[ch]. + + * Print the babble print now in addition of fingerprint as well + in Irssi SILC client. Affected files are + irssi/src/fe-common/silc/module-formats.[ch], + irssi/src/fe-common/silc/core/client_ops.c. + +Sun Nov 4 23:37:28 EET 2001 Pekka Riikonen + + * Fixed a security problem found in SKE. The initiator's + public key too is now added to the HASH hash value creation + which is signed by the responder to create the SIGN value. + This will prevent anyone in the middle to lie to the responder + about the initiator's public key. If this is done now, the + man in the middle will get caught. Updated the protocol + specification. + +Sun Nov 4 11:43:53 EET 2001 Pekka Riikonen + + * Better installation directory handling. Configure module + paths and other paths automatically to example_silc* files + in doc/. A patch by toma. + + * Fixed compiler warning from MPI library, and from SILC RNG. + A patch by johnny. + + * Added SILC_SERVER_PID_FILE to define the pid file for server. + It can be configured with ./configure. A patch by toma. + +Sat Nov 3 23:48:23 EET 2001 Pekka Riikonen + + * Find correct make to use in prepare-clean. A patch by + toma. Affected file prepare-clean. + +Sat Nov 3 22:04:00 PST 2001 Brian Costello + + * Added irssi variables use_auto_addr, auto_bind_ip, + auto_bind_port and auto_public_ip. + + * Changed the interface for silc_client_send_key_agreement + in lib/silcclient/silcapi.h + + Affected files: + + irssi/src/silc/core/silc-core.c + irssi/config + lib/silcclient/silcapi.h + irssi/src/silc/core/silc-channels.c + lib/silcclient/client_keyagr.c + irssi/docs/help/key + +Sat Nov 3 17:48:55 EET 2001 Pekka Riikonen + + * Added silc_pkcs_public_key_compare to compare two + public keys. Affected file lib/silccrypt/silcpkcs.[ch]. + + * Check that the client who set the founder mode on the + channel is the same client that is giving the founder + mode to itself. It is done by comparing the saved public + key (it is saved even in the authentication is passphrase). + Affected file silcd/command.c. + +Fri Nov 2 18:52:08 EST 2001 Pekka Riikonen + + * Do not process packet for disconnected socket connection. + Affected file lib/silccore/silcpacket.c. + + * Process the DISCONNECT packet through scheduler in the + client library. Affected file lib/silcclient/client.c. + + * Fixed the silc_client_packet_parse to not to increase + the packet sequence number if the conn->sock and the + current socket connection is not same. This can happen + for example during key agreement when the conn includes + multiple socket connections (listeners). Affected file + lib/silcclient/client.c. + + * The sender of the file transfer request now provides also + the pointer (listener) for the key exchange protocol. If + the listener cannot be created then it sends empty key + agreement and lets the receiver provide the listener. + + Added `local_ip' and `local_port' arguments to the + silc_client_file_send. If they are provided they are used, + if not then it will attempt to find local IP address, if + not found or bind fails then the remote client will provide + the listener. + + Affected files are lib/silcclient/client_ftp.c and + lib/silcclient/silcapi.h. + + * Extended the FILE SEND command to support defining the + local IP and port for key exchange listener. They are + optional. Affected file irssi/src/silc/core/silc-servers.c. + +Thu Nov 1 22:10:07 EST 2001 Pekka Riikonen + + * Defined to WHOIS command reply the sending of fingerprint + of the client's public key (if the proof of posession of the + corresponding private key is verified by the server). + Updated to the protocol specification. + + * Added support of receiving the client's public key's + fingerprint in command reply in client library. Affected + file is lib/silcclient/command_reply.c, and + lib/silcclient/idlist.[ch]. + +Thu Nov 1 18:06:12 EST 2001 Pekka Riikonen + + * Do not send over 128 chars long nickname to the server + in NICK command. Affected file lib/silcclient/command.c. + + * Do not send over 256 chars long channel names to the server + in JOIN command. Affected file lib/silcclient/command.c. + +Tue Oct 30 22:48:59 EST 2001 Pekka Riikonen + + * Assure that silc_server_close_connection cannot be called + twice for same socket context. Affected file is + silcd/server.c. + +Tue Oct 30 16:58:14 EST 2001 Pekka Riikonen + + * Send error message to application if opening file for + writing during file transfer fails. Affected file is + lib/silcclient/client_ftp.c. + + Remove all file transfer sessions for a client that we're + removing from ID cache. + + Affected file is lib/silcclient/client_ftp.c. + + * Fixed silc_net_addr2bin to return correct address. Affected + file lib/silcutil/[unix/win32]/silc[unix/win32]net.c. + + * Fixed file transfer session removing on signoff notify. + Affected file irssi/src/silc/core/silc-servers.c. + + * Added the SilcClientFileError to be returned in the monitor + callback. Added NO_SUCH_FILE and PERMISSION_DENIED errors. + Affected file lib/silcclient/silcapi.h. + +Mon Oct 29 17:43:04 EST 2001 Pekka Riikonen + + * Fixed a crash in silc_client_ftp_free_sessions and + silc_client_ftp_session_free_client. Affected file + lib/silcclient/client_ftp.c. + + * Added `disabled' field in the SilcChannelEntry in the server + to indicate if the server entry is disabled. Affected file + silcd/idlist.h, silcd/command[_reply].c. + + * SILC server adds now /var/run/silcd.pid everytime it is + started. Affected file silcd/silcd.c. + + * Added silc_server_packet_send_clients to send a packet to + the provided table of client entries. Affected file + silcd/packet_send.[ch]. + + * Fixed a crash in client resolving in client_prvmsg.c in + client library. Affected file lib/silcclient/client_prvmsg.c. + + * Do not actually remove the client directly from ID cache + during SERVER_SIGNOFF, but invalidate it. This way we + preserve the WHOWAS info for the client. Affected file + silcd/server_util.c. + + * Fixed SERVER_SIGNOFF notify handling in the server. The + server is now able to process incoming SERVER_SIGNOFF notify + for a server that it doesn't even know about. It will remove + the clients provided in the notify. Affected file + silcd/packet_receive.c. + + * Check for partial packet in data queue after every packet that + was found from the queue. Return and wait for more data if + there is partial data in queue. Affected file is + lib/silccore/silcpacket.c. + +Sun Oct 28 18:46:27 EST 2001 Pekka Riikonen + + * Added SilcClietFileError enum to indicate error in + file transfer. Added SILC_CLIENT_FILE_MONITOR_KEY_AGREEMENT + and SILC_CLIENT_FILE_MONITOR_ERROR new monitor statuses. + Affected files lib/silcclient/silcapi.h and + lib/silcclient/client_ftp.c. + + * Check that newsize in silc_buffer_realloc is larger than + the old buffer's size. Affected file lib/silcutil/silcbufutil.h. + + * Added better monitor of file transfers. It now monitors + key agreement protocol during the file transfer too. Added + error reporting too. Affected files + irssi/src/silc/core/silc-servers.c, + irssi/src/fe-common/silc/module-formats.[ch]. + + * Wrote a help file for FILE command. + + * Added silc_rng_global_get_byte_fast to get not-so-secure + random data as fast as possible. Random data is read from + /dev/urandom if available and from the SILC RNG if not + available. It is used in padding generation. Affected file + lib/silccrypt/silcrng.[ch]. + + * All packets in client library are now processed synchronously. + Optimized packet processing a lot. Affected file + lib/silcclient/client.c. + + * All server connection packets are processing synchronously + now in server, to optimize packet processing. Affected file + silcd/server.c. + + * Include files are installed now only in Toolkit distribution + if make install is given. Affected files: all Makefile.am's. + +Thu Oct 25 22:44:06 EDT 2001 Pekka Riikonen + + * Assure that silc_client_notify_by_server_resolve does not + resolve the client information multiple times. If it cannot + be found by the first it cannot be found at all. Affected + file lib/silcclient/client_notify.c. + + * Fixed WHOWAS command reply calling. Affected file + lib/silcclient/command_reply.c. + + * Removed all references to silc_idlist_get_client from the + Irssi SILC client since that call is internal call used by + the library. The Irssi SILC client will use now client + retrieval functions found in silcapi.h. + + * Fixed a bug in resolving nickname info before sending + private message. It used freed memory. Affected file + irssi/src/silc/core/silc-servers.c. + +Thu Oct 25 19:04:49 EDT 2001 Pekka Riikonen + + * Assure my_channels statistics cannot go negative in server. + Affected files silcd/server.c, silcd/server_util.c. + +Wed Oct 24 19:53:05 EDT 2001 Pekka Riikonen + + * Upgraded dotconf 1.0.2 to 1.0.6 in lib/dotconf. + +Tue Oct 23 13:51:19 EEST 2001 Pekka Riikonen + + * Win32 Toolkit changes. Affected files + win32/silc.dsw, win32/libsilc/libsilc.def, + win32/libsilcclient/libsilc.def, + lib/silcutil/silcutil.c, and + lib/sftp/sftp_fs_memory.c. + +Mon Oct 22 16:35:05 EDT 2001 Pekka Riikonen + + * Added silc_net_localip to return local host's IP address. + Affected file lib/silcutil/silcnet.[ch]. + + * If key exchange or rekey protocol is active for a connection + parse all packets syncronously since there might be packets + in packet queue that we are not able to process without first + processing packets before them. Affected file silcd/server, + lib/silcclient/client.c. + + * SilcPacketParserCallback now returns TRUE or FALSE to indicate + whether library should continue processing the packet. + Affected file lib/silccore/silcpacket.h. + + * Added SilcSFTPMonitor callback, SilcSFTPMonitors and + SilcSFTPMonitorData to SFTP server to monitor various + SFTP client requests. Affected file lib/silcsftp/silcsftp.h, + lib/silcsftp/sftp_server.c. + + * Added silc_file_size to return file size. Affected file + lib/silcutil/silcutil.[ch]. + + * Implemented the file transfer support for the client library. + Added preliminary support for simple client to client one-file + transmission. Affected file lib/silcclient/client_ftp.c, + lib/silccilent/client.[ch]. + + * Added new local command FILE to the Irssi SILC Client. + It is used to perform the file transfer. It has subcommands + SEND, RECEIVE, SHOW and CLOSE. Affected files + irssi/src/silc/core/client_ops.c, + irssi/src/silc/core/silc-server.[ch]. + +Mon Oct 22 12:50:08 EDT 2001 Pekka Riikonen + + * Relay the SILC_PACKET_FTP in the server. Affected files + silcd/server.c and silcd/packet_receive.c. + +Sun Oct 21 20:21:02 EDT 2001 Pekka Riikonen + + * Renamed silc_file_read and silc_file_write to functions + silc_file_readfile and silc_file_writefile. Added function + silc_file_open and silc_file_close. Affected files + lib/silcutil/silcutil.[ch]. + +Thu Oct 18 20:58:13 EDT 2001 Pekka Riikonen + + * Resolve the client info when received private message or + channel message for a client which nickname we don't know. + Affected files lib/silcclient/client_prvmsg.c and + lib/silcclient/client_channel.c. + + * Do not crash in /KEY if client is not connected. Affected + file irssi/src/silc/core/silc-channels.c. + + * Added SilcClientStatus field to the SilcClientEntry in the + lib/silcclient/idlist.h. + + Added SILC_CLIENT_STATUS_RESOLVING to mark that the entry + is incomplete and is being resolved, it won't be resolved + twice. + + Make sure also that USERS command reply does not resolve + twice information. Affected file is + lib/silcclient/command_reply.c. + + Make sure that silc_client_get_clients_by_list does not + resolve twice same information. + + * Check for valid client->id in the silc_server_free_client_data. + Affected file silcd/server.c. + + * Fixed /GETKEY nick@server not to crash if the server entry + is not found. Affected file lib/silcclient/command.c. + + * Fixed the silc_server_check_cmode_rights to check the + requested modes correctly. Affected file silcd/command.c. + +Thu Oct 18 12:10:22 CEST 2001 Pekka Riikonen + + * Better checks for non-printable chars in nick added. + Affected file silcd/command.c. + +Thu Oct 18 09:18:58 EDT 2001 Pekka Riikonen + + * Call the silc_server_udpate_servers_by_server in the + primary router that comes back online in the backup resuming + protocol. Otherwise it routes packets wrong. Affected file + silcd/server_util.[ch], silcd/server_backup.c. + +Wed Oct 17 16:51:18 EDT 2001 Pekka Riikonen + + * Added SILC_STR_UI8_[N]STRING[_ALLOC] formats to the + lib/silcutil/silcbuffmt.[ch]. + + * Redefined the SILC packet header to include the padding + length. Affected file lib/silccore/silcpacket.[ch]. + + * Added SILC_PACKET_PADLEN_MAX macro to return the padding + length for maximum padding up to 128 bytes). Affected + file lib/silccore/silcpacket.h. + + * Removed all backwards support for old 0.5.x MAC thingies. + The SILC packet header change makes it impossible to be + backwards compatible. + + * Send the ENDING packet with timeout in the backup resuming + protocol. This is to assure that all routers has connected + to the primary router. Affected file silcd/server_backup.c. + + * Changed the RNG to take the first IV from random data. It + used to take it from zero actually. Changed the RNG also + to use /dev/urandom during session. /dev/random is used + in initialization. Affected file lib/silccrypt/silcrng.[ch]. + +Tue Oct 16 20:45:49 EDT 2001 Pekka Riikonen + + * Changed the SILC packet header to have the first two bytes + (the packet length) encrypted. Affected files aroung the + code tree, lib/silccore/silcpacket.[ch]. Removed the + SilcPacketCheckDecrypt callback. It is not needed anymore + since the silc_packet_receive_process will determine now + whether the packet is normal or special. + + * Implemented the unidirectional MAC keys. Affected files + lib/silcske/silcske.c, silcd/protocol.c and + lib/silcclient/protocol.c. + + * Implemented the packet sequence number to the MAC computation. + Affected files lib/silccore/silcpacket.c, silcd/protocol.c, + silcd/packet_send.c, silcd/server.c, lib/silcclient/client.c, + lib/silcclient/protocol.c. + +Mon Oct 15 17:42:55 EDT 2001 Pekka Riikonen + + * Allow backup router to announce servers. All servers + announced by backup router are added to the global list + automatically. Update hte server's socket to our primary + router also when backup router announces a server. + Affected file silcd/packet_receive.c. + + * Do not update the client->router in the function + silc_server_udpate_clients_by_server if the client is on + global list. We might fail to find any specific server + for locally connected clients and local cell clients. They + should still use the `from' and not `to' as client->router. + This fixes backup router resuming protocol. Affected file + silcd/server_util.c. + + * Decrease channel statistics count only if the channel + deletion worked. Affected files are silcd/server.c and + silcd/server_util.c. + + * Added silc_server_update_servers_by_server to update origin + of all server entries. Used during backup router protocol. + Affected files silcd/server_util.[ch], silcd/server.c. and + silcd/backup_router.c. + + * ROBODoc documented the lib/silccrypt/silchmac.h. Added new + function silc_hmac_init, silc_hmac_update, silc_hmac_final, + silc_hmac_get_hash and silc_hmac_get_name. Affected file + lib/silccrypt/silchmac.c. + +Sun Oct 14 18:28:22 EDT 2001 Pekka Riikonen + + * Assure that router cannot reroute the same channel message + to the sender. Affected file silcd/packet_receive.c. + +Sat Oct 13 12:46:18 EDT 2001 Pekka Riikonen + + * Made better checks that the channel message is not sent + to the router it came from. Affected file is + silcd/packet_send.c. Fixed memory leak too. + + * Announce informations for incoming router connection, but + only after checking if it is replaced by backup router. + Affected file silcd/packet_receive.c. + +Fri Oct 12 18:37:24 EDT 2001 Pekka Riikonen + + * Fixed the backup resuming protocol to work in multiple + router environment. Affected file silcd/server_backup.c. + + * Route packet only to one router in the function + silc_server_packet_send_to_channel. Affected file is + silcd/packet_send.c. + + * Fixed silc_server_send_notify_dest to set the broadcast + flag. Fixed the silc_server_send_notify_topic to actually + send the TOPIC_CHANGE notify and not SERVER_SIGNOFF notify. + Affected file silcd/packet_send.c. + + * Changed the SFTP Filesystem interface. Changed the + SilcSFTPFilesystemStruct to SilcSFTPFilesystemOps to include + the filesystem operation function. The SilcSFTPFilesystem + is now a context that is allocated by all filesystem allocation + functions and it already includes the operations structure + and filesystem specific context. It is given as argument + now to the silc_sftp_server_start. This made the interface + a bit cleaner. Affected file lib/silcsftp/silcsftp[_fs].h, + lib/silcsftp/sftp_fs_memory.c and sftp_server.c. + +Thu Oct 11 22:19:26 EDT 2001 Pekka Riikonen + + * Changed the backup router adding and getting interfaces + in the server. The router that will be replaced by the + specified backup router is now sent as argument. Affected + files silcd/serverconfig.[ch], silcd/backup_router.[ch], and + silcd/server.c. + + * Added silc_net_addr2bin_ne to return the binary form of + the IP address in network byte order. Affected files + lib/silcutil/[unix/win32].silc[unix/win32]net.[ch]. + +Thu Oct 11 12:14:19 EDT 2001 Pekka Riikonen + + * Check for existing server ID in silc_server_new_server + and in silc_server_connect_to_router_final and remove the + old entry if it exists. Affected file silcd/packet_receive.c, + silcd/server.c. + + * Send the channel message always to only one router, either + in upstream or downstream. Affected file is + silcd/packet_send.c. + +Tue Oct 9 17:45:43 EDT 2001 Pekka Riikonen + + * Wrote the definition of the backup resuming protocol to the + protocol specification. + + * Removed one redundant channel key generation from normal + server during joining procedure. Removed one redundant + channel key sending from server to router during joining + procedure. Affected file silcd/command.c. + + * Made minor bugfixes to the backup router resuming protocol. + Affected file silcd/server_backup.c, server.c. + +Mon Oct 8 16:47:42 EDT 2001 Pekka Riikonen + + * Added --disable-asm configuration option. Affected files + configure.in.pre, lib/silcmath/mpi/configure.in. A patch + by salo. + + * Implemented the backup resuming protocol that is used to + resume the primary router position in the cell after the + primary router comes back online. Affected files + silcd/server_backup.[ch], silcd/server, silcd/packet_receive.c, + and silcd/server_util.[ch]. + +Sun Oct 7 12:29:25 EDT 2001 Pekka Riikonen + + * Sleep two (2) seconds after sending QUIT command to server. + Affected file lib/silcclient/command.c. + + * Assure that if outgoing data buffer is pending do not force + send any data. Affected file silcd/packet_send.c. + + * Assure that if outgoing data buffer is pending do not force + send any data. Affected file lib/silcclient/client.c. + + * Implemented the backup router support when the primary router + goes down. The servers and routers can now use the backup + router as new primary router without loosing connectivity. + +Sat Oct 6 21:18:54 EDT 2001 Pekka Riikonen + + * Added new SILC_IDLIST_STATUS_DISABLED flag for entries + in the server to indicate disabled entry. All data read + from the connection will be ignored and no data is sent + for entry that is disabled. Affected files are + silcd/idlist.h, silcd/server.c. + +Fri Oct 5 00:03:29 EDT 2001 Pekka Riikonen + + * Created SFTP client and server test programs in the + lib/silcsftp/tests directory. + +Wed Oct 3 23:31:42 EDT 2001 Pekka Riikonen + + * Implemented memory filesystem (virtual filesystem) for + SFTP server. Affected file lib/silcsftp/silcsftp_fs.h, + sftp_fs_memory.c. + +Sun Sep 30 22:10:57 EEST 2001 Pekka Riikonen + + * Implemented the SFTP (SSH File Transfer Protocol) to the + lib/silcsftp. It includes SFTP client and SFTP server + implementations. + +Sun Sep 30 10:35:44 EEST 2001 Pekka Riikonen + + * Moved lib/silccore/silcprotocol.[ch] to the + lib/silcutil library. + + * Added silc_buffer_format_vp and silc_buffer_unformat_vp to + take variable argument list pointer as argument. Affected + file lib/silcutil/silcbuffmt.[ch]. + + * Added silc_buffer_set function that is used to set data + to a SilcBuffer that is not allocated at all (SilcBufferStruct). + Affected file lib/silcutil/silcbuffer.h. + + * Changed various routines in the core library to use the new + silc_buffer_set instead of allocating new buffer only for + temporary purposes. + + * Added 64-bit value formatting and unformatting support to the + silc_buffer_[un]format routines. Affected file is + lib/silcutil/silcbuffmt.[ch]. + + Added also 64-bit macros: SILC_GET64_MSB and SILC_PUT64_MSB, + to includes/bitmove.h. + +Fri Sep 28 21:30:10 EEST 2001 Pekka Riikonen + + * Fixed channel user mode saving in client library. Affected + file lib/silcclient/command[_reply].c. + +Thu Sep 27 22:52:30 EEST 2001 Pekka Riikonen + + * Defined the file transfer to the SILC Protocol. Added + new packet type SILC_PACKET_FTP and defined File Transfer + Payload. The mandatory file transfer protocol is SFTP + (SSH File Transfer Protocol). Affected file in addition + of the internet draft is lib/silccore/silcpacket.h. + + * Deprecated the SILC_PACKET_CELL_ROUTERS and defined new + packet SILC_PACKET_RESUME_ROUTER instead. The new packet + is used as part of backup router protocol when the primary + router of the cell is back online and wishes to resume + the position as primary router. + + * Redefined the MAC generation keys in the protocol. The + same key is not used anymore in both direction. Both + direction will now use different keys for sending and + receiving. This fixes a potential security flaw. This + change causes incompatibilities in the protocol. + + * Redefined also the MAC computation from the packet. + An packet sequence number is now added to the MAC + computation. This prevents possible replay attacks against + the protocol. This change too causes incompatibilities + in the protocol. + + Added `sequence' field to the SilcPacketContext to hold + the current sequence number for the packet. + +Wed Sep 26 20:15:22 EEST 2001 Pekka Riikonen + + * Added `created' field to the SilcIDListData in the file + silcd/idlist.h to indicate the time when the entry was + created. + + * Added `created' field to the SilcChannelEntry too. Affected + file silcd/idlist.h. + + * Added `creation_time' aguments to all the announcement functions + in the server. If it is provided then only the entries that + was created after the provided time frame are actually + announced. Affected file silcd/server.[ch]. + + * The protocol says that the Channel ID's IP address must be + based on the router's IP address. Added check for this in + the silc_server_new_channel when processing incoming New Channel + Payload. Affected file silcd/packet_receive.c. + + * Print out the correct version with --version in SILC client. + Affected file irssi/src/silc/core/silc-core.c. + +Mon Sep 24 17:19:00 EEST 2001 Pekka Riikonen + + * Fixed WHOWAS command to check for completnes of the client + entry always, not just when the command is coming from client. + Affected file silcd/command.c. + + * Added new function silc_server_packet_queue_purge to purge the + outgoing data queue to the network. After the function returns + it is guaranteed that the outgoing packet queue is empty. + Affected file silcd/packet_send.[ch]. + + * Purge the outgoing packet queue in the rekey protocol's final + callback to assure that all rekey packets go to the network + before quitting the protocol. Affected file silcd/server.c. + + * Added silc_client_packet_queue_parse as similar function as + in server to the client library. The affected file is + lib/silcclient/client.c. + +Sun Sep 23 15:15:53 EEST 2001 Pekka Riikonen + + * Splitted silcd/server.c and created silcd/server_util.[ch] + for utility functions. + + * Added new socket flag SILC_SF_DISABLED to indicate that the + connection is open but nothing can be sent to or received from + the connection. Affected file lib/silcutil/silsockconn.[ch]. + The checking for disabled socket is checked in the low level + silc_socket_write and silc_socket_read functions. + +Thu Sep 20 23:11:28 EEST 2001 Pekka Riikonen + + * Allow only nicknames and channel names that fits into the + 7-bit unsigned char ASCII set. Affected file silcd/command.c. + +Thu Sep 20 18:04:12 EEST 2001 Pekka Riikonen + + * When processing JOIN command reply in server check that if + the channel exists in our global list we'll move it the local + list. Affected file silcd/command_reply.c. + + * Fixed the check whether client is joined on the channel already + in JOIN command. Affected file lib/silcclient/command.c. + + * Fixed the JOIN command reply to check whether the channel + already exists. Affected file lib/silcclient/command_reply.c. + +Wed Sep 19 22:58:32 EEST 2001 Pekka Riikonen + + * Added silc_ske_status_string to map the SKE error numbers + to readable strings. The affected files are + lib/silcske/silcske[_status].[ch]. + +Tue Sep 18 22:50:41 EEST 2001 Pekka Riikonen + + * Do not show the private channels on the WHOIS channel list + as it is not allowed by the protocol. The affected file is + silcd/server.c. + +Sun Sep 16 12:32:58 EEST 2001 Pekka Riikonen + + * Assure that the packet length digged from the actual packet + is something sensible in the silc_packet_decrypt_rest_special + in lib/silccrypt/silcpacket.c. + + * Free and NULL the allocated pointer in silc_hmac_alloc if + the HMAC allocation fails. The affected file is + lib/silccrypt/silchmac.c. + + * Print the selected security properties to the log files in + the server. Affected file silcd/protocol.c. + + * Add SKE's reference counter even if calling the completion + callback manually. Otherwise it goes negative, although it + does not cause any problems. The affected file is + lib/silcske/silcske.c. + + * Remove the client entry with short timeout after giving the + KILL command. Affected file lib/silcclient/command.c. + + * Fixed to send error reply in WHOIS and IDENTIFY commands in + case all found clients are already disconnected (WHOWAS would + found them) in the server. Affected file silcd/command.c. + + * Update the last_receive (time of last data received) to be + updated only when received private or channel message so that + the idle time showed in WHOIS makes more sense. + + * Added boolean field `valid' in to the SilcClientEntry in the + client library to indicate whether the entry is valid or not. + This fixes the nickname change bug on channel when changing + the nickname to be same than the old (like nick to Nick) the + nickname formatter doesn't set the new nick anymore to Nick@host. + Affected file lib/silcclient/idlist.[ch]. + + * Now actually fixed the nickname changing on disconnection. + Added new function silc_change_nick to the Irssi SILC Client. + Affected file irssi/src/silc/core/client_ops.c, + irssi/src/silc/core/silc-nicklist.[ch]. + +Sat Sep 15 13:29:17 EEST 2001 Pekka Riikonen + + * Check that the public key exists in the GETKEY command before + trying to encode it. Affected file silcd/command.c. + + * Print some notifications on received public keys with GETKEY + command in the Irssi SILC Client. Affected files are + irssi/src/fe-common/silc/module-formats.[ch], + irssi/src/silc/core/client_ops.c. + + * Use IDENTIFY command to resolve the server information in the + GETKEY command instead of INFO command. Affected file + lib/silcclient/command.c. + + * All command reply functions in the client library now calls + the pending command reply callbacks even if an error has + occurred. The server has done this a long time and now it was + time to move the client library to this as well. Now all + errors can be delivered back to the pending command reply + callbacks if necessary. Affected files are + lib/silcclient/command[_reply].[ch]. + + * Change the nickname on disconnection back to the username + because in reconnect the server will enforce it to it anyway. + Affected file irssi/src/silc/core/silc-servers.c. + + * Fixed a config file parsing bug in the Irssi SILC client. + Affected file irssi/src/silc/core/clientconfig.c. + +Thu Sep 13 23:11:18 EEST 2001 Pekka Riikonen + + * When printing the channel mode on JOIN, verify that the + channel key and channel's HMAC are valid. Affected file + irssi/src/silc/core/client_ops.c. + +Thu Sep 13 20:24:52 EEST 2001 Pekka Riikonen + + * Added defines SILC_DEFAULT_CIPHER, SILC_DEFAULT_HMAC, + SILC_DEFAULT_HASH and SILC_DEFAULT_PKCS in the file + lib/silccrypt/[silccipher.h|silchmac.h|silchash.h|silcpkcs.h]. + + * Removed channel key rekey task deleting from the function + silc_server_save_channel_key. Affected file silcd/server.c. + Added explicit timeout task context instead that is used to + delete the task if we are registering a new task before the + new task has elapsed. + + * When channel key rekey occurs the client library now saves + the old channel key for a short period of time (10 seconds) and + is able to use it in case some is still sending channel + messages encrypted with the old key after the rekey. Affected + file lib/silcclient/[idlist.h|client_channel.c]. + +Sun Sep 9 15:49:16 EEST 2001 Pekka Riikonen + + * Added check to the silc_server_new_id_real to not accept + new ID if it is the sender's own ID. Affected file is + silcd/packet_receive.c. + + * Assure that we do not announce ourself or the one we've + sending our announcements when we're router and are announcing + servers to our primary router. Affected file silcd/server.c. + + * Fixed silc_server_command_identify_check_client to assemble + correct WHOIS packet. It send corrupted WHOIS packet and + caused problem with router to router connections. Affected + file silcd/command.c. + + Fixed also silc_server_command_whois_check the same way + as for the IDENTIFY command. + + * Added new SilcIDListStatus to the server in the SilcIDListData + structure. The status now includes the current status of + the entry (like registered, resolved etc.). Affected file + silcd/idlist.[ch]. Defined a bunch of different status types + as well. This replaced the old boolean registered field as well. + + Added resolve_cmd_ident field to the SilcClientEntry structure + too so that if the entry is for example being resolved so + another command may attach to the same pending command reply + without requiring to resolve the same entry again. This concept + should optimize the WHOIS and the IDENTIFY resolving under + heavy load by taking away unnecessary resolving for entries + that are being resolved already. + + Added support for adding multiple pending commands for one + command idenfier. Affected file silcd/command[_reply].[ch]. + + * Fixed WHOIS and IDENTIFY save to remove the cache entry + before deleting the data. Otherwise the hash table will have + freed data in comparison functions. Affected file is + silcd/command_reply.c. + + * Fixed silc_idlist_replace_client_id to add the new entry to + the cache with NULL nickname. Otherwise there will be invalid + memory as the nickname after the nickname is freed. Affected + file silcd/packet_receive.c. + + * Fixed the silc_idlist_get_clients_by_hash. The entries was + saved into wrong slots because the previous number of entries + was not taken into account. Affected file silcd/idlist.c. + Fixed same thing in silc_idlist_get_clients_by_nickname too. + + * If we are router and we receive JOIN notify to a channel that + does not have any users then notified client is marked as the + channel founder, as it is it. The affected file is + silcd/packet_receive.c + + * Added to the extended hash table API's table_del_*ext functions + the destructor as argument too, so that the caller can decide + which destructor to use or whether to use destructor at all. + Affected file lib/silcutil/silchashtable.[ch]. + + * Fixed ID Cache purging. It actually deleted the entries from + the hash table after the data was freed. The hash table ended + up comparing freed memory. The affected file is + lib/silccore/silcidcache.c. + +Sat Sep 8 10:22:10 EEST 2001 Pekka Riikonen + + * Fixed Irssi SILC client's KILL command's HELP syntax. + + * The USERS command now resolves the detailed user information + if the userinfo field is missing. Affected file is + lib/silcclient/command_reply.c. + + * Do not print error in silc_file_read if the read file does + not exist. Just silently return NULL. Affected file is + lib/silcutil/silcutil.c. + + * Fixed the silc_log_output to not wine about NULL filename + and to not create some bogus " " filename. Affected file is + lib/silcutil/silclog.c. + +Fri Sep 7 22:16:38 EEST 2001 Pekka Riikonen + + * Fixed various printing bugs on the user interface in the + Irssi SILC Client. Minor changes that were forgotten from + the release. + +Fri Sep 7 17:28:37 EEST 2001 Pekka Riikonen + + * Fixed the configure.in.pre and the compilation and distribution + environment to support the new autoconf 2.52. That version is + now required to compile the CVS trunk. + +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. + + * Added "updated" field the SilcChannelEntry which indicates + the time since the channel entry was last accessed. This + can be used to determine whether it is necessary to + announce the channel after backup resuming protocol. + Affected files silcd/idlist.[ch]. + +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. + Added check that if the NOREPLY is set then we will not send + the away message. This avoids infinite loop of away messages + if both clients are away. The affected file is + lib/silcclient/client_prvmsg.c. + + * Fixed client crash if /NICK was given without arguments. + Affected file lib/silcclient/command.c. + + * Server does not send the invite list in INVITE command back + to the client if the list was not altered. Added this notion + to the protocol spec as well. Affected file silcd/command.c. + + Fixed possible crash in INVITE command by checking the + value of silc_server_get_client_route command. + + * Fixed the INVITE notify type handling. The arguments are now + taken in correct order and client does not crash. The affected + file is irssi/src/silc/core/silc-channels.c. + + Removed the "Inviting xxx to channel" message from the + client library away and let the application handle it. + Affected file lib/silcclient/command.c. Added that message + to Irssi SILC client's message formats. + + * Fixed CMODE command crash in client. It now checks the + amount of arguments correctly and does not crash. The affected + file is lib/silcclient/command.c. + + * Do not create new channel automatically in silc_channels_join + but check whether the channel by that name already exists. + Affected file irssi/silc/core/silc-channels.c. + + * Do not send the SERVER_SIGNOFF to router if the disconnected + entity was the router. Affected file silcd/server.c. + + * Added the handling of the SERVER_SIGNOFF notify to the Irssi + SILC client as it was missing from there. + + Added the handling of the KICK notify to the Irssi SILC client + as it was missing. Added "you have been kicked" message to + Irssi SILC client's message modules formats. + + Added the handing of the KILL notify to the Irssi SILC client + as it was missing. Added the kill message module formats + as well. + + The affected file is irssi/src/silc/core/silc-channels.c. + + * 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 + global list. Otherwise the GETKEY would not work correctly + in normal SILC server. Affected file silcd/command.c. + +Sat Jun 16 18:00:00 EEST 2001 Pekka Riikonen + + * Fixed GETKEY crash, it crashed if the command did not succseed. + +Tue Jun 12 21:36:18 EEST 2001 Pekka Riikonen + + * Redefined the SILC MP API in lib/silcmath/silcmp.h. The API + is now real and not just an macro interface to GMP. + + Removed the entire GMP from the source tree and imported new + NSS MPI library instead. Reason for removing GMP is that it is + extremely large and compiles extremely slow. The NSS MPI + is only a few files and compiles in less than 10 seconds. + The speed is also about the same as GMP. The MPI is imported + to lib/silcmath/mpi. + + If the system has GMP installed we will still use the GMP. + If it is not then the NSS MPI will be compiled. + +Mon Jun 11 18:07:24 EEST 2001 Pekka Riikonen + + * Merged a long nickname (127 characters long) crash bugfix from + Irssi CVS tree. Affected file irssi/src/core/misc.c. + + * Merged a freed memory reference bugfix from Irssi CVS tree. + Affected file irssi/src/core/commands.c. + +Sun Jun 10 16:08:35 EEST 2001 Pekka Riikonen + + * Added the server's public key sving and verification to the + server when performing the SKE. This was missing and the + remote server's (or router's) public key was accepted without + checking whether we have it previously or trust it at all. + Affected file silcd/protocol.c. + +Sat Jun 9 20:17:30 EEST 2001 Pekka Riikonen + + * Check in the silc_server_timeout_remote if protocol is active + and make sure that the protocol's final callback is called so + that all memory if freed. Affected file silcd/server.c. + +Sat Jun 9 12:51:27 EEST 2001 Pekka Riikonen + + * silc_server_whois_send_reply crashed the server if the nickname + was 127 characters long. Affected file silcd/command.c. + +Thu Jun 7 16:29:56 EEST 2001 Pekka Riikonen + + * Added sanity check to the silc_server_new_client. If the hostname + is provided inside username then check that the provided hostname + really is the same as the resolved one. If the hostname was not + resolved then check it from the public key. Affected file is + silcd/packet_receive.c. + + * Fixed a fatal bug in Irssi SILC client. Do not send QUIT command + if the server disconnected us and the connection is not valid + anymore. Affected file irssi/src/silc/core/silc-channels.c. + + * Moved the silc_client_[chmode|chumode|chumode_char] away from + the library to the lib/silcutil/silcutil.[ch]. + +Thu Jun 7 08:57:16 CEST 2001 Pekka Riikonen + + * Close log file after open. Affected file + lib/silcutil/silclog.c. + + * Check whether sock == NULL in silc_client_send_packet and return + if it is. Affected file lib/silcclient/silcclient.c. + + * Check rec->entry == NULL in the Irssi SILC Client before + sending the channel message. Affecte file is + irssi/src/silc/core/silc-servers.c. + +Tue Jun 5 08:08:21 CEST 2001 Pekka Riikonen + + * Merged a splitted window bugfix from Irssi CVS tree. The + affected file is irssi/src/fe-text/textbuffer-view.c. + + * Fixed the ME, ACTION and NOTICE printing in Irssi Client. + It did not print nickname. + + * Improved the distributions system a bit. + +Mon Jun 4 17:57:16 CEST 2001 Pekka Riikonen + + * Merged /WINDOW bugfix from irssi CVS tree. Affected file is + irssi/src/fe-text/gui-window.c. + + * Fixed a fatal bug in Irssi SILC client. Crashed if sent message + to in-active server. The affected file is + irssi/src/silc/core/client_ops.c. + + * Resolve the client in USERS command reply if the entry does + not have username resolved. The affected file is + lib/silcclient/command_reply.c. Also, changed the IDENTIFY + command to WHOIS command to really resolve stuff. The USERS + is not used any more in any critical section so WHOIS can + be used even though it might be slower than IDENTIFY. + + * Changed the lib/silcutil/silchashtable.h header to ROBODoc + format. + +Sun Jun 3 14:21:32 EEST 2001 Pekka Riikonen + + * Changed the protocol API a bit more consistent in the + lib/silccore/silcprotocol.[ch]. + + * Changed the following headers to ROBODoc format: + + lib/silccore/silcpayload.h + lib/silccore/silcprotocol.h + lib/silccore/silcsockconn.h + + All core library headers are now formatted. + +Sat Jun 2 10:45:09 EEST 2001 Pekka Riikonen + + * Fixed a bug in Irssi SILC client; do not show that you are + server/router operator if you really are not. Affected file is + irssi/src/silc/core/client_ops.c. + + * Renamed silc_command_free_payload to silc_command_payload_free. + Affected file lib/silccore/silccommand.h + + * Added silcmath.h to include the prototoypes of various routines + in the lib/silcmath. Removed the old modinv.h, mpbin.h and + silcprimegen.h. + + * Changed the following headers to ROBODoc format: + + lib/silccore/silcchannel.h + lib/silccore/silccommand.h + lib/silccore/silcid.h + lib/silccore/silcidcache.h + lib/silccore/silcmode.h + lib/silccore/silcnotify.h + lib/silccore/silcpacket.h + lib/silcmath/silcmath.h + +Fri Jun 1 22:19:37 EEST 2001 Pekka Riikonen + + * Added checking to the server code not to start the server if + ciphers and stuff are not configured properly. Affected files + silcd/serverconfig.[h] and silcd/server.c. + + * Changed the layout of the header files of the public interfaces + in the SILC libraries. The new layout supports ROBODoc + documentation tool (and some others) so that it is easy to create + a library reference manual. All the other headers and source + code must still follow the CodingStyle document. Also source + code must not include these ROBODoc stuffs, only the headers. + Furthermore, all public interface headers must now be named + by using `silc' prefix, example: silcapi.h, silccipher.h. + Some files were renamed due to this. All the other headers + must not be used as public interfaces. I will update the + CodingStyle document later. Changed following headers, so far: + + lib/silcclient/silcapi.h + lib/silccore/silcauth.h + lib/silccore/silcprivate.h + lib/silccrypt/silcdh.h + +Fri Jun 1 10:28:09 EEST 2001 Pekka Riikonen + + * Updated TODO. + + * Removed silc_client_packet_send_flush from the client library + as it is not needed. Affected file lib/silcclient/client.[ch]. + + * Added printing of message of unresolved authentication method + to the Irssi SILC client. Added it to the module formats. + Removed the same message from the client library. + +Thu May 31 13:57:33 CEST 2001 Pekka Riikonen + + * Added new distribution feature, DISTLABEL. Every distribution + can define own preprocessor label that can be used in the + source code. For example: #ifdef SILC_DIST_CLIENT. Affected + file distributions, acconfig.h.pre and prepare. + +Tue May 29 22:16:40 EEST 2001 Pekka Riikonen + + * Added Makefile.defines_int to include the actual definitions + for Makefile.defines.in. Tested the new distribution system, + created distributions and tested installation. + + * Added AWAY message printing to the Irssi SILC client. Added + the messages to the irssi/src/fe-common/silc/module-formats.[ch]. + + * Added SCONNECT command to call the SILC's CONNECT command. + Cannot use CONNECT directly since Irssi uses that internally. + Affected file irssi/src/silc/core/silc-servers.c. + + Added ACTION local command. It is same as ME command but takes + the channel as mandatory argument. + + Rewrote some of the Irssi's help files to suite for SILC + protocol. + +Mon May 28 19:05:22 EEST 2001 Pekka Riikonen + + * Added Makefile.defines[.in] that should for now on be included + in all Makefile.am file in the source tree. That file includes + all common compilation definitions for SILC source tree. + +Mon May 28 10:30:51 EEST 2001 Pekka Riikonen + + * Minor changes to the ./prepare script to change the package + name according the distribution name to the configure.in. + +Sun May 27 22:24:57 EEST 2001 Pekka Riikonen + + * Created new distribution system. Added file `distributions' + that defines all the distributions that can be created out of + the SILC source tree. The ./prepare script now reads that + file to determine how to prepare the distributions. The + first argument to the ./prepare is the name of the distribution + and second is the version of the distribution. If given + without arguments it creates the default (toolkit) distribution + with the default version (defined in ./prepare). + + All Makefile.am files that are subject to the distributions + are now named as Makefile.am.pre. These are ./Makefile.am + and lib/Makefile.am. Others may be changed later. + +Sun May 27 15:57:17 EEST 2001 Pekka Riikonen + + * Added invite list, ban list, some key management and connection + error message printing to module formats in the Irssi SILC client. + + * Added new silc_client_set_away_message to set the away message + that is back to the person who sent private message. The + affected file lib/silcclient/silcapi.h and the + lib/silcclient/client_prvmsg.c. + +Sun May 27 12:39:48 EEST 2001 Pekka Riikonen + + * Fixed the private message sending in the Irssi SILC client, + added local command KEY to the Irssi SILC client. + + Added key management and key agreement message formats to the + irssi/src/fe-common/silc/module-formats.[ch]. + + Added USERS (alias WHO) printing, server/router operator + indication and LIST command printing to the module formats. + +Sat May 26 17:43:42 EEST 2001 Pekka Riikonen + + * Fixed channel joining notify handling, cumode notify handling + from Irssi SILC client. + + * Added SILC specific module-formats to the Irssi SILC client so + that SILC specific message hilighting, colors etc is possible. + Affected file irssi/src/fe-common/silc/module-formats.[ch]. + + Added channel mode, channel user mode, actions, notices, + whois and whowas printing to the the module-formats.c. + + * Fixed a bug in channel deletion in the server. The channel + is not left to the cache even if the channel founder auth mode + is set when there are no users anymore on the channel. Affected + file silcd/server.c. + + * The silc_net_localhost now resolves the entire hostname including + the domain name. Affected file lib/silcutil/silcnet.c. + +Sat May 26 12:13:37 EEST 2001 Pekka Riikonen + + * Changed the ask_passphrase client operation to be ascynchronous. + It has now a completion callback and a context that the + application must call after it has got the passphrase from + the user. Affected files lib/silcclient/silcapi.h, + lib/silcclient/protocol.c, lib/silcclient/command.c and + silc/client_ops.c. + + Added SilcAskPassphrase callback that the application calls + to deliver the passphrase to the library. + + * Changed the SKE protocol's SilcSKEVerifyCb to be asynchronous. + The public key verification and especially a certificate + verification is asynchronous procedure. + + Added new SILC_SKE_STATUS_PENDING status to indicate the + request is pending and a callback will be called to finalize + the request. + + Added also SILC_SKE_STATUS_PUBLIC_KEY_NOT_PROVIDED status to + indicate that remote end did not send its public key (or + certificate), even though we require it. Added check for this + condition in the SKE. This was a security bug, now fixed. + + Defined new SilcSKEVerifyCbCompletion callback that is called + when the verification process is completed. + + The affected files lib/silcske/silcske_status.h and + lib/silcske/silcske.[ch]. + + * Changed the verify_public_key client operation to be async + as well. Defined SilcVerifyPublicKey callback that is used to + indicate the success of the public key verification process. + + Changed the server and client to use the new async client + operations. + + * Changed the Irssi SILC client's internal scheduler to be called + twice as many times as it used to be. As a result the client + should be a bit faster now. Affected file is + irssi/src/silc/core/silc-core.c. + + * Added support to Irssi SILC client of asynchronous public key + verification and passphrase inquiry. Affected file is + irssi/src/silc/core/silc-core.c. + +Fri May 25 14:38:38 EEST 2001 Pekka Riikonen + + * Do not say "You have left channel %s" in client library. + Moved it to the application. Affected files are + lib/silcclient/command.c and silc/client_ops.c. + + * Fixed silc_client_get_clients. Command context was not + duplicated and was freed memory in the callback. Affected + file lib/silcclient/idlist.c. + + * Do not say "you are now talking..." on JOIN command in the + client library. The appliation must handle it. + + * Do not say ".. changed topic to" in command reply in the + client libary. The application must handle it. + + * Fixed TOPIC command sending in the client library. + + * Fixed a memory leak in silc_client_command_free in the file + lib/silcclient/command.c. + +Thu May 24 19:08:55 EEST 2001 Pekka Riikonen + + * Imported a modified version of Irssi client to the source tree. + The Irssi will be used to create a new client called + Irssi SILC. Imported to irssi/. + + Added silc_core_init_finish function to the Irssi. Affected + file irssi/configure.in. + + A lot changes in the Makefile.ams around the irssi tree. + +Tue May 22 22:23:49 EEST 2001 Pekka Riikonen + + * Do not rehash if the new size is same as the old size of the + hash table, in the silc_hash_table_rehash*. The affected file + lib/silcutil/silchashtable.c. + + * Replaced hash_table_del_by_context calls from the server + (when channel->user_list and client->channels) to the + hash_table_del as it is sufficient and faster. + +Tue May 22 17:27:16 EEST 2001 Pekka Riikonen + + * Added silc_hash_table_list, silc_hash_table_get and the + SilcHashTableList structure to provide an alternative way to + traverse the hash table. The affected files are + lib/silcutil/silchashtable.[ch]. + + * Changed the server's idlist routines to use the hash table + routines to optimize the code. + +Mon May 21 21:46:20 EEST 2001 Pekka Riikonen + + * Replaced the client entry's `channel' list and channel entry's + `user_list' list to hash tables for optimized lookup. Changed + the code to use the hash table interface around the code. + Affected file lib/silcd/idlist.[ch]. + + * Added `auto_rehash' boolean argument to the function + silc_hash_table_alloc to indicate whether the hash table should + auto-rehash when it thinks is appropriate time. It will + increase the hash table size if the there is twice as much + entries in the table than the size of the table, and will + decrease the size if there are twice as less entries than + the size of the table. + +Mon May 21 09:51:11 EEST 2001 Pekka Riikonen + + * Fixed silc_xxx_get_supported to not crash at some circumstances. + +Sun May 20 13:45:58 EEST 2001 Pekka Riikonen + + * silc_idcache_purge_by_context deletes the entry now by context + as it is supposed to do. Affected file lib/silccore/idcache.c. + + * Send the ERR_NO_SUCH_NICK in the WHOIS command reply if the + client is not anymore valid (WHOWAS givens the info) and not + the ERR_NO_SUCH_CLIENT_ID if the nickname still exists. + +Sat May 19 16:30:03 EEST 2001 Pekka Riikonen + + * Removed the `data' and `data_len' arguments from the ID Cache + interfaces and added `name' argument. ID Cache does not handle + anymore the binary data only a names associated with given ID. + + * When hashing a Client ID with silc_hash_id the entire ID is + not hashed anymore, instead only the hash of the Client ID is + hashed. This way we can access the Client ID from the cache + with Client ID but with the hash of the ID (which is a hash of + the nickname) as well without any difference in performance. + + Added also silc_idcache_find_by_id_one_ext to do one on one + searching when we have the actual ID. Added also function + silc_hash_client_id_compare. The affected files are + lib/silccore/idcache.[ch] and lib/silcutil/silcutil.[ch]. + + * When hashing the name associated with a ID it is always done + in lowercase. This way we can access the cache without worrying + about case-sensitivity, even though, for example nicknames are + case sensitive. + + * Fixed a bug in server with channel message sending. It put + wrong ID type as destination ID. The affected file + silcd/packet_send.c. + + * silc_idcache_del_by_context now deletes from all hash tables + by context. Affected file lib/silccore/idcache.c. + +Fri May 18 17:42:00 EEST 2001 Pekka Riikonen + + * Changed the client library to use the new ID Cache interface. + Changes around the source tree. + + * Added silc_hash_table_rehash_ext to rehash with specific + hash function. Affected file lib/silcutil/silchashtable.[ch]. + + * Added silc_hash_string_compare to compare two strings in the + hash table. Affected file lib/silcutil/silcutil.[ch]. + +Fri May 18 11:18:45 EEST 2001 Pekka Riikonen + + * Added new function silc_idcache_del_by_context into the + lib/silccore/idcache.[ch]. + + * Changed the server's ID list routines to use the new ID Cache + interface. Changes around the source tree. + +Fri May 18 08:35:31 EEST 2001 Pekka Riikonen + + * Added silc_hash_table_del[_by_context]_ext functions in to the + lib/silcutil/silchashtable.[ch]. + + Removed silc_hash_table_find_all* routines and added new + silc_hash_table_find_foreach to replace them. + + Added silc_hash_table_replace_ext function as extended + replacing function. Separated the simple hash table interface + from the extended hash table interface in the file + lib/silcutil/silchashtable.h. + + * Fixed minor bugs and changed it to use some of the new + hash table functions in lib/silccore/idcache.c + +Thu May 17 18:15:12 EEST 2001 Pekka Riikonen + + * Added new function silc_hash_table_find_all to return all keys + in the hash table by the specified key. As the hash table is + collision resistant it also makes it possible to have several + duplicate keys in the hash table. This function may be used to + find all of the keys from the hash. + + Added user_context arguments to the SilcHashFunction, + SilcHashCompare and SilcHashDestructor to deliver user specified + context. + + Added new fuctions silc_hash_table_find[_all]_ext to do + extended lookup with specified hash and compare functions and + specified user contexts. + + Added new function silc_hash_table_add_ext to add the key + with specified hash function and user context. + + Added new function silc_hash_table_foreach to traverse all + entrys in the hash table. Added SilcHashForeach callback + function. + + Added new function silc_hash_table_del_by_context to delete + the entry only if the context associated with the key matches. + + Affected files are lib/silcutil/silchashtable.[ch]. + + * Removed silc_hash_[server/client/channel]_id and added just + silc_hash_id to the lib/silcutil/silcutil.[ch]. Added also + silc_hash_id_compare to compare two ID's using as the hash table + comparison function. Added also silc_hash_data to hash + binary data and silc_hash_data_compare to compare it. + + * Removed silc_idlist_find_client_by_hash as it is not needed + anymore. Affected file silcd/idlist.[ch]. + + * Rewrote the entire ID Cache system (in lib/silccore/idcache.[ch]) + to use internally the SilcHashTable. The new ID Cache is a lot + faster than the old one. Some of the ID Cache interface was also + rewritten and obsolete and stupid functions were removed. + +Wed May 16 23:03:30 EEST 2001 Pekka Riikonen + + * Added entry_count field to the SilcHashTable to keep the number + of the entries in the table. Implemented the function + silc_hash_table_rehash. Added new function + silc_hash_table_count. Affected file lib/silcutil/silchashtable.c. + + Fixed a minor bug in silc_hash_table_free. + + * Added silc_hash_string, silc_hash_uint, silc_hash_ptr, + silc_hash_client_id, silc_hash_server_id and silc_hash_channel_id + into the lib/silcutil/silcutil.[ch]. + +Wed May 16 20:02:47 EEST 2001 Pekka Riikonen + + * Implemented a collision resistant hash table into the + lib/silcutil/silchashtable[ch]. See the header and the source + for the SilcHashTable API. + +Tue May 15 22:05:46 EEST 2001 Pekka Riikonen + + * Merged dotconf version 1.0.2 into lib/dotconf. + +Sun May 13 19:32:09 EEST 2001 Pekka Riikonen + + * Do not compile anything in lib/silcsim/* if the SIM support + is not enabled. The tree should now compile without problems + under cygwin. + +Thu May 10 22:49:51 EEST 2001 Pekka Riikonen + + * Compiled the SILC under cygwin. Compiled and tested briefly + without problems. More tests needed. The SIMs didn't compile + though. + + * Added various #ifdef HAVE_* stuff to lib/silccrypt/silrng.c. + + * Fixed possible crash in silc_get_username in the + lib/silcutil/silcutil.c. + +Tue May 8 09:04:03 EEST 2001 Pekka Riikonen + + * Fixed a va_arg in silc/client_ops.c. + + * Oops, RC5 routines were named AES and caused some problems + when not using SIM's. Affected file lib/silccrypt/rc5.c. + +Sun May 6 13:59:48 EEST 2001 Pekka Riikonen + + * Added new SilcIDIP structure into the lib/silccore/id.h and + replaced the old `ip' fields from all SILC ID's to that type. + This is a step towards IPv6 support. + + The silc_id_get_len takes now the ID as an extra argument. + The silc_id_id2str, silc_id_str2id and silc_id_dup now supports + both IPv4 and IPv6 based ID's. + + The affected files are lib/silccore/id.[ch] and other files + around the tree using these routines. + + * Removed the ID length arguments in server from various + silc_server_send_notify_* routines -> they are not needed + anymore. + +Sat May 5 13:56:33 EEST 2001 Pekka Riikonen + + * Fixed memory leak in silc_encode_pem_file in the file + lib/silcutil/silcutil.c. + +Thu May 3 21:23:50 EEST 2001 Pekka Riikonen + + * Check minor version as well in the SKE. Affected files are + silcd/protocol.c and lib/silcclient/protocol.c. + + * Added --identifier option to the server so that an identifier + can be when creating the public key for the server. Affected + file is silcd/silcd.c. + + * Fixed minor decoding bug in silc_pkcs_decode_identifier in + lib/silccrypt/silcpkcs.c. + +Wed May 2 20:50:49 EEST 2001 Pekka Riikonen + + * Register default ciphers and stuff when using -C option with + the server. Affected file sildc/silcd.c. + + * Put back the servers public key filename format, it is better + than the new one. For now, the client keys are saved with the + new filename format. The affected file silc/client_ops.c. + + * Implemented the Cipher API for the rest of the ciphers that + did not implement it or implemented it the wrong way. + +Wed May 2 13:31:26 EEST 2001 Pekka Riikonen + + * Register default ciphers and stuff when using the -S option + in the client. Affected file silc/silc.c. Same also when + creating new key pair with -C option. + +Tue May 1 14:18:13 EEST 2001 Pekka Riikonen + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * Fixed the version checking in the server. Affected file is + silcd/protocol.c. + +Thu Apr 19 19:52:46 EEST 2001 Pekka Riikonen + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * Fixed the make install. + +Tue Apr 10 16:20:34 EEST 2001 Pekka Riikonen + + * 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 + + * 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 + + * 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 + + * Made preliminary `make install' work. + +Thu Apr 5 17:42:30 EEST 2001 Pekka Riikonen + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 to 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 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 + + * 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 + + * Implemented the RESTART command in the client. + + * Added SILC_MESSAGE_FLAG_NOTICE message flag for informational + notice type messages. Added notice printing to the user + interface. + + * The channel keys are not re-generated if the channel's mode + is PRIVKEY, ie private key on the channel exists. Affected + files silcd/server.c and silcd/command.c. + + * Fixed a little bug in channel message delivery when channel + private keys are set in the server. Affected file is + silcd/packet_send.c. + + * Changed the setting on channel->on_channel = TRUE from the + silc_client_save_channel_key to the JOIN command reply. The + key payload is not received if the private channel key is set. + Affected file lib/silcclient/command_reply.c and the + lib/silcclient/client_channel.c. + + * When the CMODE_CHANGE notify is sent and the channel private + key mode is removed the channel key must be re-generated in + 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 + + * Added new local command ME to the client. It is used to send + message to a channel with SILC_MESSAGE_FLAG_ACTION to indicate + some action. Affected file silc/local_command.[ch]. + + * Changed channel_message and private_message client operations + to deliver the message flags to the application. Added also + the `flags' arguments to the silc_client_send_channel_message + and silc_client_send_private_message functions. Affected file + silcapi.h. + +Wed Mar 28 20:50:47 EEST 2001 Pekka Riikonen + + * Redefined the Private Message Payload to support private message + keys and to support the new private message flags. Updated + the protocol specs. Flags makes it possible to have for example + CTCP style messages. + + * Added new type SilcPrivateMessagePayload and defined an API + for it in the lib/silcclient/silcprivate.[ch]. + + * Tested private message private keys successfully. Tested the + private message key set, unset and list commands with the new + KEY command. + + * Redefined the Channel Message Payload to include the channel + message flags (equal with private message flags) to support + for example CTCP style messages. + + * Defined some of the message (for channel and private message) + flags. Updated the protocol specs and added the flags to the + lib/silccore/silcchannel.h. The type is SilcMessageFlags. + +Wed Mar 28 15:52:36 EEST 2001 Pekka Riikonen + + * Added SilcKeyAgreementStatus type to the key agreement routines + to indicate the current status and error if one occured. + The status types are defined in the lib/silcclient/silcapi.h. + + * Added new local command KEY that is used to set and unset private + keys for channels, set and unset private keys for private messages + with remote clients and to send key agreement requests and + negotiate the key agreement protocol with remote client. The + key agreement is supported only to negotiate private message keys, + it currently cannot be used to negotiate private keys for channels, + as it is not convenient for that purpose. + + * Fixed a minor pending callback setting bug in the function + silc_client_get_client_by_id_resolve, now the function works. + Affected file lib/silcclient/idlist.c. + + * Added function silc_net_get_local_port to get local bound + port by socket. Added to lib/silcutil/silcnet.[ch]. + + * Added `sockets' and `sockets_count' fields to the SilcClient + object. They hold the sockets of the listenning sockets in + the client. Listenning sockets may be for example the key + agreement server. Affected file lib/silcclient/client.[ch]. + Added functions the silc_client_add_socket and the + silc_client_del_socket. They are exported to the application + as well. + + * Added ~./silc/clientkeys to support other client's public keys. + + * Renamed verify_server_key client operation to verify_public_key + and added one argument to indicate the type of the connection + (server, client etc.). + +Tue Mar 27 22:22:38 EEST 2001 Pekka Riikonen + + * Added silc_server_connection_auth_request to handle the + incoming CONNECTION_AUTH_REQUEST packet. Affected file is + silcd/packet_receive.[ch]. + + * Added silc_server_send_connection_auth_request into the + silcd/packet_send.c to send the connection auth request packet. + + * Cleaned up the silcd/protocol.c a bit and fixed some memory + leaks. + + * Fixed the public key authentication in responder side in the + server. The `auth_data' pointer includes the SilcPublicKey + not the path to the public key. Affected file silcd/protocol.c. + + * Implemented the public key authentication in the initiator side + in the server. Affected file silcd/protocol.c. + + * Removed the [RedirectClient] config section from the server + configuration. Is not needed and I don't want to implement it. + +Tue Mar 27 12:49:56 EEST 2001 Pekka Riikonen + + * Cleaned up the CMODE command in the server. It now works + correctly and supports all the modes defined in the protocol. + Affected file is silcd/command.c. + + * Added `hmac_name' field to the SilcChannelEntry in the server + to hold the default HMAC of the channel. It can be set when + creating the channel (with JOIN command). Affected files + silcd/idlist.[ch]. + + * Added and argument to the CMODE_CHANGE notify + type to indicate the change of the current cipher and hmac + on the channel. Client can safely ignore the argument + (if it chooses to do so) since the CHANNEL_KEY packet will + force the channel key change anyway. The argument is + important since the client is responsible of setting the new + HMAC and the hmac key into use. + + * Fixed the CMODE command in the client library as well. + + * Tested CMODE command in router environment successfully. + +Mon Mar 26 14:39:48 EEST 2001 Pekka Riikonen + + * Show the version of the remote client (or server) when connecting + to the server. It is logged to the log file. Affected file + is silcd/protocol.c. + + * Fixed the KILLED notify handling in the client library. The + client must be removed from all channels when receiving the + KILLED notify. + + Also, do not remove the client entry when giving the KILL + command but when the KILLED notify is received. + + * Removed silc_idlist_find_client_by_nickname from the server. + Not needed anymore. Affected files silcd/idlist.[ch]. + + * Implemented the CHANNEL_CHANGE notify type handling to the + server. Affected file silcd/server.c. + + * Updated TODO. + +Mon Mar 26 12:11:14 EEST 2001 Pekka Riikonen + + * Added silc_server_send_notify_invite to send the INVITE + notify between routers. + + * Implemented the INVITE command correctly to the server. + + * Implemented the INVITE notify type handling in the server. + + * Implemented the INVITE command to the client library and on the + user interface. + +Sun Mar 25 20:27:09 EEST 2001 Pekka Riikonen + + * Added function silc_server_get_client_resolve to find the + client entry by ID from all ID lists and then resolve it + (using WHOIS) if it cannot be found. Affected file is + silcd/server.[ch]. + +Sun Mar 25 13:52:51 EEST 2001 Pekka Riikonen + + * Implemented the BAN command to the client library. + + * The JOIN command in the server now checks the invite list + and the ban list. + + * Changed the silc_command_reply_payload_encode_va and the + silc_command_payload_encode_va to support that if argument is + NULL it ignores and checks the next argument. Affected file + lib/silccore/silccommand.c. + + * Added silc_server_send_notify_ban to send the BAN notify + type between routers. + + * Chaned the silc_notify_payload_encode to support that if + argument is NULL it ignores and checks the next argument. + Affected file lib/silccore/silcnotify.c. + + * Tested ban lists in router environment successfully. + +Sat Mar 24 14:47:25 EET 2001 Pekka Riikonen + + * Implemented BAN command to the server, in silcd/command.[ch]. + + * Removed the BAN and INVITE_LIST modes from the CMODE command + in the server code. + + * Added function silc_string_match to regex match two strings. + Affected files lib/silcutil/silcutil.[ch]. + +Fri Mar 23 22:02:40 EET 2001 Pekka Riikonen + + * Redefined parts of the SilcChannelEntry in the server to support + the new ban and invite lists. + +Fri Mar 23 16:25:11 EET 2001 Pekka Riikonen + + * Redefined the INVITE command. The same command can be used to + invite individuals to the channel but also to manage the invite + list of the channel (to add to and remove from the invite list). + Updated the protocol specs. + + * Added new command SILC_COMMAND_BAN that can be used to manage + the ban list of the channel. Updated the protocol specs. + + * Removed the channel modes: the SILC_CMODE_BAN and the + SILC_CMODE_INVITE_LIST as they were a bit kludge to be included + in the CMODE command. The equivalent features are now available + using INVITE and BAN commands. Updated the protocol specs. + + * Added new SILC_NOTIFY_TYPE_BAN notify type to notify routers + in the network about change in the current ban list. The notify + type is not used by the client. + + * Redefined parts of the SILC_NOTIFY_TYPE_INVITE command to + support the invite lists. + +Thu Mar 22 22:52:23 EET 2001 Pekka Riikonen + + * Added new function silc_string_regexify that converts string + including wildcard characters into regex string that can + be used by the GNU regex library. Added into the file + lib/silcutil/silcutil.[ch]. + + Added silc_string_regex_combine to combine to regex strings + into one so that they can be used as one regex string by + the GNU regex library. Added into the file + lib/silcutil/silcutil.[ch]. + + Added silc_string_regex_match to match two strings. It returns + TRUE if the strings match. Added into lib/silcutil/silcutil.[ch]. + +Thu Mar 22 15:29:42 EET 2001 Pekka Riikonen + + * Imported GNU regex to the soruce tree into lib/contrib. + Fixed some compiler warning from the regex.c. + +Wed Mar 21 15:27:58 EET 2001 Pekka Riikonen + + * Fixed MOTD command in the server to work in router environment. + + * Fixed the MOTD command in the client library to support + the server argument in the command. + + * Added `nickname_len' argument to the silc_idlist_add_client + in the server, as the `nickname' argument may be binary data + (it may be hash). + + * Added silc_idlist_get_channels to return all channels from + the ID list. + + * Implemented LIST command to the server. Affected file is + silcd/command.c. + + * Implemented the LIST command to the client library and on the + user interface. + + * Added [] argument to the LIST command reply. + With private channels the user count is not shown. + + * Updated TODO and README. + +Tue Mar 20 21:05:57 EET 2001 Pekka Riikonen + + * The client entry's data.registered must be TRUE even with + global client entry on global client list. The data.registered + is used to check whether the client is anymore in the network, + for example with WHOWAS command so it must be valid. + + * Fixed the WHOWAS command in the server. It now actually works + in router environment. Added function into silcd/command_reply.c + silc_server_command_reply_whowas_save. + + * Added silc_idlist_purge function to the silcd/idlist.c + to periodically purge the ID Cache. + + * Fixed INFO command in the server. It works now in router + environment. Added argument to the INFO command + reply. Updated the protocol specs. + + * Fixed minor bug in silc_idcache_purge to not purge if the + expire value is zero. + + * Fixed various bugs in WHOIS and IDENTIFY command handling as + they were buggy because of the WHOWAS information. + + * Fixed local command MSG to handle the async resolving of + the remote client properly. It used to fail the first MSG. + Affected file silc/local_command.c. + + * Added `data_len' field to SilcIDCache context. + +Tue Mar 20 16:29:00 EET 2001 Pekka Riikonen + + * Update TODO. Todo in commands in the server. + +Tue Mar 20 15:45:14 EET 2001 Pekka Riikonen + + * 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 + + * Added one new argument 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 + + * 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 + + * 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 + + * 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 + + * 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 from the 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 + + * 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 + + * 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 + + * 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 + + * 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 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 + + * 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 + + * 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 + + * Added dist-bzip hook to the Makefile.am to make bzip2 + compressed distributions. + +Mon Mar 12 18:43:38 EET 2001 Pekka Riikonen + + * Server now enforces the maximum length for the nickname and + the channel as protocol specification dictates. 128 bytes for + nickname and 256 bytes for channel name. + + * Moved the WHOIS printing to the application. The client libary + does not print out the WHOIS information anymore, the application + must do it. Renamed silc_client_command_reply_whois_print to + the silc_client_command_reply_whois_save. + + The client's idle time is also sent to the application now, and + the idle is shown on screen. + + * Added silc_client_command_reply_identify_save to save the + received IDENTIFY entries. + + * Do not check for channel private keys in message sending and + reception if the channel does not have the PRIVKEY mode set. + Affected file lib/silclient/client_channel.c. + +Sun Mar 11 20:25:06 EET 2001 Pekka Riikonen + + * Fixed a minor bug if WHOIS and IDENTIFY command parsing that + just surfaced after chaning the JOIN procedure. + +Sun Mar 11 14:59:05 EET 2001 Pekka Riikonen + + * Added silc_client_get_clients_by_list to get client entries + from Client ID list, that is returned for example by JOIN + and USERS command replies. The application should use this + function for example when JOIN command reply is received to + resolve the clients already on the channel (library does not + do that anymore as USERS command reply is not used in the JOIN + procedure anymore). Affected files lib/silcclient/silcapi.h and + lib/silcclient/idlist.c. + + * JOIN command reply and USERS command reply returns now SilcBuffer + pointers instead of unsigned char pointers when returning + the client list and mode list. + + * Added argument to the JOIN command reply, mainly + for the server to identify for which client the command was + originally sent. Updated protocol specs accordingly. + + * Added SilcDlist private_key pointer to the SilcChannelEntry + in the client to support the channel private keys. Affected + file is lib/silcclient/idlist.h. + + * Added SilcChannelPrivateKey argument to the function + silc_client_send_channel_message so that application can choose + to use specific private ke if it wants to. If it is not provided, + the normal channel key is used, unless private keys are set. + In this case the first (key that was added first) is used + as the encryption key. + + * Implemented the support for channel private key handling. + Implemented the following functions: + + silc_client_add_channel_private_key, + silc_client_del_channel_private_keys, + silc_client_del_channel_private_key, + silc_client_list_channel_private_keys and + silc_client_free_channel_private_keys + + Affected file lib/silcclient/client_channel.c. + + * Added the support for the private keys in the channel message + sending and encryption and in the message reception and + decryption. Affected funtions are + silc_client_send_channel_message and silc_client_channel_message. + +Sat Mar 10 21:36:22 EET 2001 Pekka Riikonen + + * Added SKE's key verify callback to the client library's + KE protocol context. Affected files lib/silcclient/protocol.[ch]. + + * Removed the statement that server (or router) must send USERS + command reply when joining to the channel so that the client + knows who are on the channel. Instead, the client list and + client's mode list is now sent in the JOIN command reply to the + client who joined channel. This is better solution. + + * Added function silc_server_get_users_on_channel and function + silc_server_save_users_on_channel to the silcd/server.[ch]. + + * Removed function silc_server_command_send_users from the + silcd/command.c. + + * Do not show topic on the client library anymore. The topic is + sent in the command reply notify to the application and the + application must show the topic now. + +Sat Mar 10 00:07:37 EET 2001 Pekka Riikonen + + * Added client searching by nickname hash into the IDENTIFY and + WHOIS commands in the server as they were clearly missing from + them. Affected file is silcd/command.c. + + * Fixed a bug in private message receiving in the client library. + The remote ID was freed and it wasn't supposed, now it is + duplicated. + +Fri Mar 9 12:40:42 EET 2001 Pekka Riikonen + + * Minor fix to the channel payload; allocate the data area, as it + needs to be of specific length. + + * If the key agreement port is zero then the operating + system will define the bound port. Affected files are + lib/silcclient/silcapi.h and lib/silcclient/client_keyagr.c. + + * Added new function silc_channel_payload_decrypt into the file + lib/silccore/silcchannel.[ch]. + + * Moved the channel message etc, check from silc_packet_decrypt + to applications. The library calls now a generic + SilcPacketCheckDecrypt callback which is to return TRUE or FALSE + when the packet is either normal or special. This was done to + allow more wide range of checking that was not allowed when + the code was in library. Now applications can do virtually any + checks to the packet and return to the library the decision how + the packet should be processed. Affected files are + lib/silccore/silcpacket.[ch]. + + Added silc_server_packet_decrypt_check to the server and + silc_client_packet_decrypt_check to the client library. + + * Added silc_server_packet_send_srcdest into silcd/packet_send.[ch] + to send with specified source and destination information. + + * Channel message delivery between routers was broken after the + channel key distribution was fixed earlier. The channel key + was used be to distributed to other routers as well which is not + allowed by the protocol. Now this is fixed and channel keys + really are cell specific and the channel message delivery between + routers comply with the protocol specification. + + * Fixed various commands in server to check also the global list + for the channel entry and not just the local list. The affected + file silcd/command.c. + +Thu Mar 8 21:39:03 EET 2001 Pekka Riikonen + + * Added assert()s to buffer formatting and unformatting routines + to assert (if --enable-debug) when error occurs. Affected + file: lib/silcutil/silcbuffmt.c. + + * Changed to auto-reconnect to check whether the remote host is + router and register the re-connect timeout if it is. It used + to check that whether we are normal server, but router must do + auto-reconnect with another router as well. Affected file + silcd/server.c. + + * Removed the [] option from CMODE command as the cipher + name decides the key length, nowadays. See the defined ciphers + from the protocol specification. + + * Added [] option to the CMODE command to define the HMAC + for the channel. Added SILC_CMODE_HMAC channel mode. + + * Added [] option for the JOIN command so that user can + select which HMAC is used to compute the MACs of the channel + messages. + + * Added Hmac field to the Channel Message Payload. The integrity + of plaintext channel messages are now protected by computing + MAC of the message and attaching the MAC to the payload. The + MAC is encrypted. Now, it is clear that this causes some + overhead to the size of the packet but rationale for this is that + now the receiver can verify whether the channel message decrypted + correctly and also when private keys are set for the channel the + receiver can decrypt the packet with several keys and check from + the MAC which key decrypted the message correctly. + + * Added silc_cipher_encrypt and silc_cipher_decrypt into the + lib/silccrypt/silccipher.[ch]. + + * Added silc_hash_len to return the digest length into the + lib/silcrypt/silchash.[ch]. + + * Rewrote parts of Silc Channel Payload interface in the + lib/silccore/silcchannel.[ch]. The encode function now also + encrypts the packet and parse function decrypts it. + +Wed Mar 7 20:58:50 EET 2001 Pekka Riikonen + + * Fixed a minor formatting bug in the SKE's key material processing. + It actually might have processed the keys wrong way resulting + into wrong keys. + + * Redefined the mandatory HMAC algorithms and added new algorithms. + Added hmac-sha1-96 and hmac-md5-96 which are normal hmac-sha1 + and hmac-md5 truncated to 96 bits. The mandatory is now + hmac-sha1-96. Rest are optional (including the one that used + to be mandatory). Rationale for this is that the truncated HMAC + length is sufficient from security point of view and can actually + make the attack against the HMAC harder. Also, the truncated + HMAC causes less overhead to the packets. See the RFC2104 for + more information. + + * Added new [hmac] configuration section. The SKE used to use + the hash names (md5 and sha1) in the SKE proposal as HMCAS which + is of course wrong. The official names that must be proposed in + the SKE are the ones defined in the protocol specification + (hmac-sha1-96 for example). The user can configure any hmac + using any hash function configured in the [hash] section. At + least, the mandatory must be configured. + + Rewrote the HMAC interface in lib/silccrypt/silchmac.[ch]. + + * Added HMAC list to the SKE proposal list. It has now both + hash algorithm list and HMAC list. This makes the protocol + incompatible with previous versions. The SKE now seems to work + the way it is supposed to work, for the first time actually. + + * Defined plain Hash algorithms to the protocol specification. + Added sha1 and md5. + +Tue Mar 6 15:36:11 EET 2001 Pekka Riikonen + + * Implemented support for key agreement packets into the server. + Added functions silc_server_key_agreement and + silc_server_send_key_agreement. Other than these functions, + server has nothing to do with this packet. + + * Added support for private message key packets into the server. + Added functions silc_server_private_message_key and + silc_server_send_private_message_key. + + * Updated TODO. + + * Changed the silc_[client|server]_protocol_ke_set_keys to be + called in the protocol's final callback instead in the END + protocol state. This makes a little more sense and in the same + time in client we can use the same protocol routines for normal + key exchange and to key agreement packet handling as well. + + * Added to both client's and server's KE protocol context the + SilcSKEKeyMaterial pointer to save the key material. We will + bring the key material to the protocol's final callback by doing + this. The final callback must free the key material. + + * Added SKE's packet_send callback into client's KE protocol + context so that the caller can choose what packet sending function + is used. This way we can use different packet sending when + doing normal SKE when doing key agreement packet handling (in + the key agreement packet handling we do not want to encrypt + the packets). + + * Implemented the responder side of the key agreement routines + in the client. The client can now bind to specified port and + accept incoming key negotiation. The key material is passed + to the application after the protocol is over. + + * Implemented the processing of incoming Key Agreement packet + in the client. Added function silc_client_key_agreement to + process the packet. + + * Implemented the intiator side of the key agreement routines + in the client. The client can now initiate key agreement with + another remote client. The key material is passed to the + application after the protocol is over. + + * Created client_keyagr.c to include all the key agreement + routines. + + * Added macro SILC_TASK_CALLBACK_GLOBAL which is equal to the + SILC_TASK_CALLBACK except that it is not static. + + * Created client_notify.c and moved the Notify packet handling + from the client.[ch] into that file. + + * Created client_prvmsg.c and moved all private message and + private message key routines from the client.[ch] into that file. + + * Create client_channel.c and moved all channel message and + channel private key routines from the client.[ch] into that file. + + * Changed silc_client_get_client_by_id_resolve to resolve with + WHOIS command instead of IDENTIFY command, in the file + lib/silclient/idlist.c. + +Mon Mar 5 18:39:49 EET 2001 Pekka Riikonen + + * Implemented the SKE's responder side to the Client library. + + * When FAILURE is received to the protocol do not trust it + blindly. Register a timeout to wait whether the remote closes + the connection as it should do it, only after that process the + actual failure. This was changed to both client and server. + + * Added client_internal.h to include some of the structures + there instead of client.h in lib/silcclient/. + + * Added function silc_task_unregister_by_callback to unregister + timeouts by the callback function. + +Sat Mar 3 19:15:43 EET 2001 Pekka Riikonen + + * Some "Incomplete WHOIS info" errors has been appearing on the + log files. Took away the entry->userinfo check from WHOIS + reply sending. The entry->userinfo is now " " if client did not + provide one. I thought this was fixed earlier but something + is wrong still. Let's see if the error still appears. + +Wed Feb 28 20:56:29 EET 2001 Pekka Riikonen + + * Fixed a minor bug in the login when the channel key is + re-generated in the server. It used to generate the key in + wrong order and thus caused problems in the channel traffic. + + * Fixed a minor bug in channel key distsribution after + KICK command. The key was not sent to the router even though + it should've been. + +Tue Feb 27 20:24:25 EET 2001 Pekka Riikonen + + * Added silc_ske_process_key_material_data as generic routine + to process any key material as the SILC protocol dictates. The + function is used by the actual SKE library but can be used by + applications as well. This relates to the private message keys + and the channel private keys since they must be processed the + same way the normal SILC session keys. The protocol dictates + this. Affected files: lib/silcske/silcske.[ch]. + + Added also silc_ske_free_key_material to free the + SilcSKEKeyMaterial structure. + + * Defined silc_cipher_set_key function to set the key for + cipher without using the object's method function. The affected + files: lib/silccrypt/silccipher.[ch]. + + * Implemented silc silc_client_add_private_message_key, + silc_client_add_private_message_key_ske, + silc_client_del_private_message_key, + silc_client_list_private_message_keys and + silc_client_free_private_message_keys functions in the + client library. + + Added functions silc_client_send_private_message_key to send + the Private Message Key payload and silc_client_private_message_key + to handle incoming Private Message Key payload. + + * Added Cipher field to the Private Message Key payload to set + the cipher to be used. If ignored, the default cipher defined + in the SILC protocol (aes-256-cbc) is used. + +Tue Feb 27 13:30:52 EET 2001 Pekka Riikonen + + * Removed lib/silcclient/ops.h file. + + Redefined parts of the SILC Client Library API. Created new + file silcapi.h that deprecates the ops.h file and defines the + published Client Library API. Defined also private message key + API and channel private key API into the file. + + This is the file that the application must include from the + SILC Client Library. Other files need not be included by + the application anymore. + + * Added new key_agreement client operation callback and also + defined the Key Agreement library API for the application. + +Tue Feb 27 11:28:31 EET 2001 Pekka Riikonen + + * Added new packet type: SILC_PACKET_KEY_AGREEMENT. This packet + is used by clients to request key negotiation between another + client in the SILC network. If the negotiation is started it + is performed using the SKE protocol. The result of the + negotiation, the secret key material, can be used for example + as private message key. + + Implemented the Key Agreement payload into the files + lib/silccore/silauth.[ch]. + +Mon Feb 26 12:13:58 EET 2001 Pekka Riikonen + + * Redefined ciphers for the SILC protocol. Added some new ciphers + and defined the key lengths for the algorithms. Changed the + code accordingly. The default key length is now 256 bits. + + * Fixed SKE key distribution function silc_ske_process_key_material + when the key length is more than 128 bits. The default key + length in SILC is now 256 bits. + + * Added new command status type: SILC_STATUS_ERR_UNKOWN_ALGORITHM + to indicate unsupported algorithm. + + * Renamed rijndael.c to aes.c and all functions as well. + + * Fixed a long standing channel key setting bug in client library. + Weird that it has never surfaced before. + + * Fixed bug in channel deletion. If the entire channel is removed + then it must also delete the references of the channel entry + from the client's channel list as the client's channel entry and + the channel's client entry share same memory. + +Sun Feb 25 20:47:29 EET 2001 Pekka Riikonen + + * Implemented CONNECT and SHUTDOWN commands in the client. + + * Implemented CLOSE command to the client. + + * Added the function silc_idlist_find_server_by_name into the + files silcd/idlist.[ch]. + + Added the function silc_idlist_find_server_by_conn into the + files silcd/idlist.[ch]. + +Sat Feb 24 23:45:49 EET 2001 Pekka Riikonen + + * DIE command was renamed to SHUTDOWN. Updated the both code + and protocol specs. + + * Defined SILC_UMODE_NONE, SILC_UMODE_SERVER_OPERATOR and + SILC_UMODE_ROUTER_OPERATOR modes into lib/silccore/silcmode.h. + + * Implemented CONNECT, CLOSE and SHUTDOWN commands to the server + side. + + * Added function silc_server_create_connection function to create + connection to remote router. My server implementation actually + does not allow router to connect to normal server (it expects + that normal server always initiates the connection to the router) + so the CONNECT command is only good for connecting to another + router. + +Sat Feb 24 16:03:45 EET 2001 Pekka Riikonen + + * Added SILC_NOTIFY_TYPE_KICKED to indicate that the client + or some other client was kicked from the channel. + + Implemented the handling of the notify type to both client + and server. + + Implemented silc_server_send_notify_kicked to send the KICKED + notify. It is used to send it to the server's primary router. + + * Implemented the KICK command into server and client. + + * Added `query' argument to the silc_idlist_get_client function + to indicate whether to query the client from server or not if + it was not found. + + * Added new command status type SILC_STATUS_ERR_NO_CHANNEL_FOPRIV + to indicate that the client is not channel founder. + + * Updated TODO. + +Sat Feb 24 00:00:55 EET 2001 Pekka Riikonen + + * Removed the rng context from SilcPacketContext structure and + changed that the packet routine uses the Global RNG API. + +Fri Feb 23 11:22:57 EET 2001 Pekka Riikonen + + * Added support for quit message that client can "leave" on the + channel when it quits the SILC. It is ditributed inside the + SILC_NOTIFY_TYPE_SIGNOFF notify type. + + Added silc_server_free_client_data that will take the + signoff message as argument. + + * Changed SKE routines to use the silc_pkcs_sign/verify routines. + +Thu Feb 22 23:05:36 EET 2001 Pekka Riikonen + + * Updated parts of the protocol specification to keep it up + to date. + +Thu Feb 22 15:08:20 EET 2001 Pekka Riikonen + + * Added List flag (SILC_PACKET_FLAG_LIST) to indicate list of + payloads in one packet. + + * Deprecated following packet types: NEW_ID_LIST, NEW_CHANNEL_LIST, + NEW_CHANNEL_USER_LIST, SET_MODE and SET_MODE_LIST. List packets + use now the new List flag. + + * Also deprecated the following packet types: REPLACE_ID, + NEW_CHANNEL_USER and REMOVE_CHANNEL_USER packet types. + + * Added list support for Notify packet in server. + + * Added silc_server_send_notify_channel_change to send the + CHANNEL_CHANGE notify type to replace channel ID's. Deprecates + the silc_server_send_replace_id. + + * Added silc_server_send_notify_nick_change to send the + NICK_CHANGE notify type. Deprecates the function + silc_server_send_replace_id. + + * Added silc_server_send_notify_join to send the JOIN notify type. + Deprecates the function silc_server_send_new_channel_user. + + * Added silc_server_send_notify_leave to send LEAVE notify type. + Deprecates the function silc_server_send_remove_channel_user. + + * Added silc_server_send_notify_cmode and + silc_server_send_notify_cumode to send CMODE and CUMODE notify + types. Deprecates the silc_server_send_set_mode function. + + * Added SERVER_SIGNOFF notify type to indicate that server has + quit. This means that all clients on the channel from that + server will drop. This can be also used when netsplit happens. + + Deprecated REMOVE_ID packet type since it is not needed anymore + even from server. + + Added silc_server_send_notify_server_signoff to send the + SERVER_SIGNOFF notify type. Deprecates the function + silc_server_send_remove_id. + + Added also silc_server_send_notify_signoff to send the + SIGNOFF notify type. + + * Employed the PKCS #1. It is the mandatory way to do RSA in the + SILC protocol from this day on. Changed the protocol + specification as well. + + * Added silc_server_send_notify_topic_set to send TOPIC_SET + notify type. It is used between routers to notify about + topic changes on a channel. + + * Added silc_id_dup into lib/silccore/id.[ch] to duplicate + ID data. + + * Partly updated the protocol specification to comply with the + changes now made. It is still though a bit outdated. + + * The JOIN notify type now takes one extra argument . + The packet used to be destined to the channel but now the + JOIN type may be sent as list thus it is impossible to + destine it to any specific channel. By adding this argument + it is again possible. + +Wed Feb 21 22:39:30 EET 2001 Pekka Riikonen + + * Added CREDITS file. The CHANGES and CREDITS file will appear + in the distribution as well. + +Wed Feb 21 14:17:04 EET 2001 Pekka Riikonen + + * Implemented CMODE_CHANGE, CUMODE_CHANGE and TOPIC_SET notify + types in the server's silcd/packet_receive.c. + + * Implemented CMODE and CUMODE to work in router environment. + + * Fixed minor encoding and decoding buglet from the + lib/silccore/silcmode.c. + + * Fixed buffer overflow from lib/silcclient/command.c in USERS + command parsing. + +Wed Feb 21 12:44:00 EET 2001 Mika Boström + + * Changed all SilcConfigServer* and silc_config_server* to + SilcServerConfig* and silc_server_config*, respectively. + Patch by Bostik. + +Wed Feb 21 00:10:00 EET 2001 Pekka Riikonen + + * Associated the ID (client or server ID) to the Authentication + Payload to avoid any possibility of forging. Updated the + protocol specification and the code accordingly. + +Tue Feb 20 14:14:14 EET 2001 Pekka Riikonen + + * The RSA key length is now save to the RsaKey context in the + key generation process in lib/silccrypt/rsa.c. The key length + is now used to figure out the maximum size of the block allowed + to be encrypted/signed. + + * Added silc_mp_mp2bin_noalloc into lib/silcmath/mpbin.[ch]. It + is equivalent to the silc_mp_mp2bin but does not allocate any + memory. + + * Changed silc_mp_mp2bin API to take length argument. If it is + non-zero then the buffer is allocated that large. If zero, then + the size is approximated using silc_mp_sizeinbase, which however + is not relieable. + + * Created Global RNG API which is global RNG that application can + initialize. After initializing, any routine anywhere in the + code (including library) can use RNG without allocating a new + RNG object. This was done to allow this sort of use of the + RNG in code that has no chance to allocate RNG object. All + applications currently allocate this and many routines in the + library use this. Affected file lib/silccrypt/silcrng.[ch]. + + * Removed the RNG kludge from lib/silcmath/primegen.c and changed + it to use the Global RNG API. + + * Defined Authentication Payload into protocol specification that + is used during SILC session to authenticate entities. It is + used for example by client to authenticate itself to the server + to obtain server operator privileges. + + Implemented this payload into the lib/silccore/silcauth.[ch]. + Implemented also routines for public key based authentication + as the new protocol specification dictates. + + Moved definitions of different authentication methods from + lib/silccore/silcprotocol.h into lib/silccore/silcauth.h. + + * Added silc_pkcs_encrypt, silc_pkcs_decrypt, silc_pkcs_sign, + silc_pkcs_verify and silc_pkcs_sign_with_hash and + silc_pkcs_verify_with_hash functions into the file + lib/silccrypt/silcpkcs.[ch]. + +Mon Feb 19 19:59:28 EET 2001 Pekka Riikonen + + * The client entry's userinfo pointer must be always valid. + Otherwise the [] bug will surface beacuse the WHOIS + will fail since it requires the userinfo. Now, the userinfo + is allocated as "" if actual userinfo does not exist. Actually, + it must exist and it is totally Ok to drop client connections + that does not announce the userinfo. However, we will make + this workaround for now. + + * Added silc_net_get_remote_port into lib/silcutil/silcnet.[ch] + to return the remote port by socket. + +Mon Feb 19 14:26:49 EET 2001 Pekka Riikonen + + * Changed SILC_SERVER_COMMAND_EXEC_PENDING macro to the name + SILC_SERVER_PENDING_EXEC and added an new macro + SILC_SERVER_PENDING_DESTRUCTOR which is called to free the + data or when error occurs while processing the pending command. + + Added new argument `destructor' into silc_server_command_pending + and to the SilcServerCommandPending object. This destructor is + now called after calling the pending callback or if error occurs + immediately. If error occurs the actual pending callback won't + be called at all - only the destructor. The destructor may be + NULL if destructor is not needed. + + All this applies for client library code as well. Similar + changes were made there as well for the pending commands. + + In the client, the application must now allocate the + SilcClientCommandContext with the silc_client_command_alloc + function. + + * Added reference counter to the SilcServerCommandContext. Added + function silc_server_command_alloc and silc_server_command_dup + functions. + + Same type of functions added to the client library for the same + purpose as well. + + * Removed the cmd_ident from IDListData away since it is now + global for all connections. It is the command identifier used + in command sending and with pending commands. The affected file + is silcd/idlist.h. + + * Added reference counter to the SilcSocketConnection objecet to + indicate the usage count of the object. The object won't be + freed untill the reference counter hits zero. Currently only + server uses this, and client ignores it. The client must be + set to use this too later. The affected files are + lib/silccore/silcsockconn.[ch]. Added also the function + silc_socket_dup to increase the reference counter. + + This was mainly added because it is possible that the socket + is removed underneath of pending command or other async + operation. Now it won't be free'd and proper DISCONNECTING + flags, etc. can be set to avoid sending data to connection that + is not valid anymore. + + * Added SILC_SET_DISCONNECTING to server.c when EOF is read from + the connection. After that it sets SILC_SET_DISCONNECTED. + It is, however, possible that the socket data is not still freed. + The silc_server_packet_process now checks that data is not + read or written to connection that is DISCONNECTED. The socket + get's freed when the reference counter hits zero. + +Mon Feb 19 00:50:57 EET 2001 Pekka Riikonen + + * Changed the client operation API: channel_message operation's + `sender' is now the client entry of the sender, not the nickname + and the `channel' is the channel entry, not the channel name. + + In the private_message operation the `sender' is now also the + client entry of the sender not the nickname. + + Affected file is lib/silcclient/ops.h and all applications + using the client operations. + +Sat Feb 17 22:11:50 EET 2001 Pekka Riikonen + + * Moved the calling of ops->connect() from connect_to_server_final + into receive_new_id functin since that is the point when the + client is actually allowed to send traffic to network. The + affected file is lib/silcclient/client.c. + +Sat Feb 17 13:15:35 EET 2001 Pekka Riikonen + + * When receiving NEW_CHANNEL_LIST, NEW_CHANNEL_USER_LIST, + NEW_ID_LIST and SET_MODE_LIST packets, broadcast the list packet + (if needs broadcasting) instead of broadcasting the packets one + by one which would make a burst in the network traffic. + + * Added `broadcast' argument to the functions in silcd/server.[ch] + silc_server_create_new_channel[_with_id] to indicate whether + to send New Channel packet to primary router. + +Sat Feb 17 01:06:44 EET 2001 Pekka Riikonen + + * Added new function into the silcd/server.[ch] files: + silc_server_create_new_channel_with_id to create new channel with + already existing Channel ID. + + * Added new packet type SILC_PACKET_SET_MODE_LIST into the file + lib/silccore/silcpacket.h. This packet is used t send list of + Set Mode payloads inside one packet. Server uses this to set + the modes for the channels and clients on those channels, that it + announced to the router when it connected to it. The protocol + specification has been updated accordingly. + + * The silc_server_new_channel did not handle the packet coming + from normal server as it normally does not send that. However, + when it announces its channels it does send it. Implemented + the support for that. + + * Added SILC_ID_CHANNEL_COMPARE macro to compare to Channel ID's + into the file lib/silccore/id.h. + +Fri Feb 16 23:57:29 EET 2001 Pekka Riikonen + + * Fixed memory leaks in the functions silc_idlist_del_client, + silc_idlist_del_channel and silc_idlist_del_server in the file + silcd/idlist.c. All of those leaked like a sieve. + + * Fixed some small memory leaks in the client's function + silc_client_notify_by_server. + + * Added functions into silcd/server.c: silc_server_announce_clients, + silc_server_announce_channels and silc_server_announce_server. + These functions are used by normal and router server to announce + to its primary router about clients, channels and servers (when + router) that we own. This is done after we've connected to the + router. + + These functions effectively implements the following packet types: + SILC_PACKET_NEW_CHANNEL_LIST, SILC_PACKET_NEW_CHANNEL_USER_LIST + and SILC_PACKET_NEW_ID_LIST. + + * Added new functions into the silcd/packet_receive.[ch]: + silc_server_new_id_list, silc_server_new_channel_list and + silc_server_new_channel_user_list to handle the incoming + NEW_ID_LIST, NEW_CHANNEL_LIST and NEW_CHANNEL_USER_LIST packets. + + * Added support of changing Channel ID in the function + silc_server_replace_id. If the server that announces a channel + to the router already exists in the router (with same name but + with different Channel ID), router is responsible to send + Replace ID packet to the server and force the server to change + the Channel ID to the one router has. + + * Added new notify type SILC_NOTIFY_TYPE_CHANNEL_CHANGE to notify + client that the Channel ID has been changed by the router. The + normal server sends this to the client. Client must start using + the new Channel ID as the channel's ID. + + Implemented handling of this new type into lib/silcclient/client.c + into the function silc_client_notify_by_server. + + * Added new function silc_idlist_replace_channel_id into the files + silcd/idlist.[ch] to replace the Channel ID. + +Fri Feb 16 14:14:00 EET 2001 Pekka Riikonen + + * Call silc_server_command_identify_check always when processing + the IDENTIFY command in silcd/command.c + +Thu Feb 15 20:07:37 EET 2001 Pekka Riikonen + + * Added new packet type SILC_PACKET_HEARTBEAT that is used to + send keepalive packets. The packet can be sent by clients, + servers and routers. + + Added function silc_socket_set_heartbeat into the file + lib/silccore/silcsockconn.[ch] to set the heartbeat timeout. + If not set, the heartbeat is not performed. The actual + heartbeat is implemented in the low level socket connection + library. However, application is responsible of actually + sending the packet. + + Added silc_server_send_heartbeat to send the actual heartbeat + packet into silcd/packet_send.[ch]. Server now performs + keepalive with all connections. + + * Added silc_task_get_first function into lib/silcutil/silctask.c + to return the timeout task with shortest timeout. There was a bug + in task unregistration that caused problems. TODO has been + updated to include that task system must be rewritten. + + * The client library will now resolve the client information when + receiving JOIN notify from server for client that we know but + have incomplete information. + + * Rewrote parts of silc_server_remove_from_channels and + silc_server_remove_from_one_channel as they did not remove the + channel in some circumstances even though they should've. + + * Encryption problem encountered in server: + + The LEAVE command used to send the Channel Key packet to the + router immediately after generating it. However, the code + had earlier sent Remove Channel user packet but not immediately, + ie. it was put to queue. The order of packets in the router + was that Channel Key packet was first and Remove Channel User + packet was second, even though they were encrypted in the + reverse order. For this reason, MAC check failed. Now, this + is fixed by not sending the Channel Key packet immediately but + putting it to queue. However, this is more fundamental problem: + packets that are in queue should actually not be encrypted + because packets that are sent immediately gets encrypted + actually with wrong IV (and thus MAC check fails). So, packets + that are in queue should be encrypted when they are sent to + the wire and not when they put to the queue. + + However, the problem is that the current system has not been + designed to work that way. Instead, the packet is encrypted + as soon as possible and left to the queue. The queue is then + just purged into wire. There won't be any fixes for this + any time soon. So, the current semantic for packet sending + is as follows: + + o If you send packet to remote host and do not force the send + (the packet will be in queue) then all subsequent packets to the + same remote host must also be put to the queue. Only after the + queue has been purged is it safe again to force the packet + send immediately. + + o If you send all packets immediately then it safe to send + any of subsequent packets through the queue, however, after + the first packet is put to queue then any subsequent packets + must also be put to the queue. + + Follow these rules and everything works fine. + +Thu Feb 15 14:24:32 EET 2001 Pekka Riikonen + + * Added new function silc_server_remove_clients_by_server to + remove all client entries from ID list when the server connection + is lost. In this case it is also important to invalidate all + client entires as they hold the invalid server entry. This + fixes fatal bug when server has lost connection and will reconnect + again. + +Wed Feb 14 16:03:25 EET 2001 Pekka Riikonen + + * Made some sanity checks to silc_server_daemonise like to check + whether the requested user and group actually exists. + + * Added sanity check to SKE's silc_ske_responder_finish to check + that the public and private key actually is valid. + + * Invalidate the client's nickname when receiving Replace ID + packet and the Client ID is being replaced. This means that the + server will query the nickname if someone needs it (client) + a bit later. + + * Sort the ID Cache in client library when the ID Cache data + has changed (needs sorting). + + * Do not allow for SILC client to create several connections to + several servers. The client does not support windows right now + and generating multiple connections causes weird behaviour. + + Irssi-silc client does support windows and can handle several + connections without problems, see: www.irssi.org and SILC plugin. + + * Fixed some places where client was added to the IDList. The + rule of thumb is following (in order to get everything right): + If the client is directly connected local client then the + `connection' argument must be set and `router' argument must be + NULL to silc_idlist_add_client function. If the client is not + directly connected client then the `router' argument must + bet set and the `connection' argument must be NULL to the + silc_idlist_add_client function. + + * The funtion silc_server_packet_send_local_channel actually did + not check whether the client was locally connected or not. It + does that now. Fixed a bug related to LEAVE command. + + * Fixed Remove Channel User payload parsing bug in server's + silcd/packet_receive.c. Fixed a bug related to LEAVE command. + + * The server's silc_server_save_channel_key now checks also the + global ID list for the channel as it might not be in the local + list. Fixed a bug related to LEAVE command. + + * Is this the end of the [] buglet that has been lurking + around for a long time? A little for loop fix in server's + silc_server_command_whois_parse that is used by both IDENTIFY + and WHOIS command. At least, this was a clear bug and a cause + of one type of [] buglet. + + * WHOIS and IDENTIFY commands call the function + silc_server_command_[whois/identify]_check function even if + we are not router server. + +Tue Feb 13 19:55:59 EET 2001 Pekka Riikonen + + * Added --with-gmp configuration option. If set the GMP + is always compiled in the SILC source tree. If not set then + it is checked whether the system has the GMP3 installed. If + it has then the GMP won't be compiled (the system's headers + and library is used), if it doesn't have it then the GMP is + compiled in the SILC source tree. + +Mon Feb 12 11:20:32 EET 2001 Pekka Riikonen + + * Changed RSA private exponent generation to what PKCS #1 + suggests. We try to find the smallest possible d by doing + modinv(e, lcm(phi)) instead of modinv(e, phi). Note: this is + not security fix but optimization. + +Sun Feb 11 18:19:51 EET 2001 Pekka Riikonen + + * Added new config entry [Identity] to fork the server and run + it as specific user and group. A patch from Bostik. + + * Imported Dotconf configuration library into lib/dotconf. + This will be used to create the SILC configuration files later. + It will appear in the distsribution after this commit. + +Sat Feb 10 21:13:45 EET 2001 Pekka Riikonen + + * 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 + + * 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 + + * 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 + + * 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 [] 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 + + * 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 + + * 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 + + * Fixed some minor bugs in client when sending WHOIS command. The + arguments was in wrong order. + + * Removed statis function add_to_channel from server in + silcd/command.c that was previously used with the joining but + is obsolete now. + + * Tested USERS command in router environment successfully with two + routers, two servers and two clients. + +Thu Feb 1 00:54:26 EET 2001 Pekka Riikonen + + * Reorganized the USERS command and command reply in client library + in lib/silcclient/command.c and lib/silcclient/command_reply.c. + When the command is given by user we register a pending command + callback that will reprocess the command after the reply has been + received from the server. When reprocessing the packet we then + display the information. Thus, the USERS information is displayed + now in the command callback instead of in the command reply + callback. The processing of the command is same as previously + when server has sent the command reply in the JOINing process. + + * Added to USERS command in silcd/command_reply.c to join the client, + we didn't use to know about, to the channel after we've created + a client entry for it. Also, for clienet we did know already still + check whether it is on the channel or not and add it if not. + + * Removed silc_server_command_join_notify as the function and its + use was obsolete. + +Tue Jan 30 22:39:15 EET 2001 Pekka Riikonen + + * Changed the client's pending command handling to the same as the + server's pending command handling. It is also now possible to + execute command reply functions from other command reply + function as the function callbacks for commands and command + replies are one and same. The pending commands are not static + list anymore, it is mallocated SilcDList in lib/silcclient/client.h + in client connection context. Thus, pending commands are server + connection specific as it is convenient. + + Changed the function silc_client_command_pending and + silc_client_command_pending_del and added new function + silc_client_command_pending_check. Removed the + SILC_CLIENT_CMD_REPLY_EXEC, and SILC_CLIENT_PENDING_COMMAND_CHECK + macros. + + * Added cmd_ident, current command identifier, to the client + connection context in lib/silcclient/client.h to keep track on + command identifiers used in command sending. Client's command reply + function handling now supports the mandatory command identifiers. + + * Added SILC_CLIENT_COMMAND_EXEC_PENDING macros to all command reply + funtions in client to fully support pending command callbacks. + + * NOTE: the name_list in USERS (old NAMES) command is NOT sent anymore + as one of the arguments to the application in the command reply + client operation. + + * NOTE: The FORWARDED flag is depracated. It used to be depracated + before first releasing SILC but came back. Now it is removed again + and should come back nomore. The FORWARDED flag was used only + by the JOINing procedure by forwarding the command packet to router. + Now, the JOINing procedure has been changed to more generic (due + to various router environment issues) and FORWARDED is not needed + anymore for anything. The protocol specification is yet to be + updated. + + Now, removed silc_server_packet_forward from server and the flag + SILC_PACKET_FORWARDED from lib/silccore/silcpacket.h. + +Tue Jan 30 00:05:05 EET 2001 Pekka Riikonen + + * Renamed NAMES command to USERS command. The NAMES was named that + due to historical reasons. Now it is renamed. Also, rewrote + parts of the USERS command. The nickname list is not sent anymore + by the server. Only Client ID and mode lists are sent in the USERS + command. Changed this also to the protocol specification. + + The client now resolves the names and stuff after it receives + the USERS list from the server when joining to the channel. + + * WHOIS and IDENTIFY commands has been changed to support multiple + Client ID's per command. One can now search for multiple users + in the network by sending only one WHOIS or IDENTIFY command. + Changed the code and the protocol specifications. + + * Removed silc_server_command_identify_parse and changed that IDENTIFY + uses silc_server_command_whois_parse to parse the request. */ + + * If normal server, do not parse the WHOIS and IDENTIFY requests + before sending it to the router. Saves some time. + +Sun Jan 28 16:19:49 EET 2001 Pekka Riikonen + + * Fixed JOIN command on client library. Wrong number of arguments + used to crash the client. + + * Added silc_server_channel_has_global function to check whether + channel has global users or not. + + * Added silc_server_channel_has_local function to check whether channel + has locally connected clients on the channel. + + * The silc_server_remove_from_one_channel now checks whether the + channel has global users or not after given client was removed from + the channel. It also checks whether the channel has local clients + on the channel anymore. If it does not have then the channel entry + is removed as it is not needed anymore. + + * The silc_server_notify now checks on JOIN notify whether the joining + client is one of locally connected or global. If it is global then + the channel has now global users on the channel and that is marked + to the channel entry. Also, it now saves the global client to + global list who is joining and JOINs it to the channel. This is + for normal server, that is. + + Changed silc_server_send_notify_on_channel, + silc_server_packet_relay_to_channel and + silc_server_packet_send_to_channel check if we are normal server + and client has router set (ie. global client) do not send the + message to that client, as it is already routed to our router. + + * Implemented LEAVE notify type handling in silc_server_notify + function. + + * Tested LEAVE command in router environment successfully. Tested + with two routers, two servers and two clients. + + * Updated TODO. + + * idlist_find_xxx_by_id routines now dumps the ID on the debug mode. + + * Implemented SIGNOFF notify type handling in silc_server_notify + function. + + * silc_server_remove_id now removes the client entry from all channels + it has joined and thusly sends SIGNOFF notify type. + + * Rewrote the NAMES list generation in server by removing two excess + loops. The lists are created now inside one loop. + +Sat Jan 27 22:34:56 EET 2001 Pekka Riikonen + + * silc_server_remove_channel_user checks now also global list + for channel and client. + + * silc_server_new_channel_user checks now both local and global + list for channel and client. Fixed a bug in client id decoding. + Used to decode wrong buffer. + + * silc_server_channel_message checks now both local and global + list for channel entry. + + * Tested channel joining (hence JOIN) in router environment + successfully. Tested with two routers, two servers and two + clients. + + * Tested channel message sending in router environment successfully. + +Thu Jan 11 03:22:57 EET 2001 Pekka Riikonen + + * Added silc_server_save_channel_key into server.[ch] to save the + received channel key in Channel Key payload processing. It is + also used in JOIN command reply handling. + + Equivalent function silc_client_save_channel_key added into + client.[ch] into client library. + + * Changed JOIN command reply to send information whether the channel + was created or not (is existing already) and the channel key + payload. Changed protocol specs accordingly. + + * Fixed bugs in WHOIS and IDENTIFY command reply sending when + the request was sent by ID and not by nickname. Crashed on + NULL dereference. + +Sat Dec 23 21:55:07 EET 2000 Pekka Riikonen + + * Fixed a bug in Client library. IDENTIFY and WHOIS reply functions + now correctly save the received data. + + * silc_server_free_sock_user_data now notifies routers in the + network about entities leaving the network. + + At the same time implemented functions silc_server_remove_id + and silc_server_send_remove_id to receive and send REMOVE_ID + packets. The packet is used to notify routers in the network + about leaving entities. The ID removed will become invalid in + the network. + + * Added function silc_idlist_del_server into server. Removes and + free's server entry from ID list. + + * silc_server_private_message function now checks, if we are router, + that the destination ID really is valid ID, naturally. + + * In router when NEW_ID packet is received (for new client) the + hash of the Client ID is saved in the ID Cache but the + client->nickname is set to NULL, instead of putting the hash + to it as well. + + IDENTIFY command now also checks that client->nickname must be + valid. If it is not if will request the data from the server who + owns the client. Added new function + silc_server_command_identify_check. + + * Added silc_command_set_command into lib/silccore/silcommand.[ch] + to set the command to already allocated Command Payload. + + * Tested private message sending in router environment with two + routers, two servers and two clients. Fixed minor bugs and now + it works fine. + + * Fixed segfault from client's NAMES command. Used to crash if + not on any channel. + + * Forwarded packets must not be routed even if it is not destined + to the receiver. Changed server code comply with this. + +Sun Dec 17 14:40:08 EET 2000 Pekka Riikonen + + * Added `require_reverse_mapping' boolean value to ServerParams + structure. If TRUE (not default) the server will require that + the connecting host has fully qualified domain name. + + If the reverse mapping is not required and hostname could not be + found the IP address is used as hostname. + +Sat Dec 16 17:39:54 EET 2000 Pekka Riikonen + + * Implemented version string checking to both client and server. + The check is incomplete currently due to the abnormal version + strings used in development version of SILC. + + * Changed all command functions in server to use the new + CHECK_ARGS macro. + +Fri Dec 15 15:55:12 EET 2000 Pekka Riikonen + + * Changed char *data to unsigned char *data in ID Cache system to + support binary data as ID Cache data. Changed code to support + binary data in lib/silccore/idcache.c. + + * Renamed silc_server_packet_relay_command_reply to + silc_server_command_reply as it is normal packet receiving + function. Rewrote the function to accept command replys for + servers and not only for clients. + + * Mark remote router always as registered server if we are connecting + to it. Otherwise, commands sent by the router to us are ignored. + + * All ID List find routines now returns the ID Cache Entry pointer + as well if requested. + + * WHOIS command works now in router environment, tested with two + routers, two servers and two clients. + + * Cleaned up and rewrote IDENTIFY command. IDENTIFY should work now + in router environment (as it is almost equivalent to WHOIS) but + hasn't been tested thoroughly. Added new functions: + + silc_server_command_identify_parse + silc_server_command_identify_send_reply + silc_server_command_identify_from_client + silc_server_command_identify_from_server + + * Disabled route cache adding because adding two different ID's with + same IP replaces the old cache entry thus giving wrong route. + The entry->router->connection is always the fastest route anyway + so route cache may not be needed. Of course, new routes maybe + established after receiving the ID when the entry->router->connection + might not be anymore the most optimal. + +Thu Dec 14 15:55:35 EET 2000 Pekka Riikonen + + * Add route cache for received ID for fast routing. + + * Added silc_server_packet_route to route received packet on router + that is not destined to us. + + * Renamed silc_server_get_route to silc_server_route_get. + + * Added id_string and id_string_len fields into SilcServer to + include encoded ServerID for fast comparing without excess + encoding of the ID's. + + * Cleaned up WHOIS command on server side. Added following static + functions: + + silc_server_command_whois_parse + silc_server_command_whois_check + silc_server_command_whois_send_reply + silc_server_command_whois_from_client + silc_server_command_whois_from_server + + * Added macro SILC_SERVER_COMMAND_CHECK_ARGC to check mandatory + arguments in command replies. All command functions should be + updated to use this macro. + +Sun Dec 10 23:52:00 EET 2000 Pekka Riikonen + + * Minor typo fixes on command reply handling on server. + +Tue Nov 28 11:05:39 EET 2000 Pekka Riikonen + + * Added silc_server_command_add_to_channel internal routine to add + the client to the channel after router has created the channel and + sent command reply to the server. + + * Added generic silc_server_send_command to send any command from + server. + + * Use static buffer with ID rendering instead of duplicating data. + +Mon Nov 27 21:39:40 EET 2000 Pekka Riikonen + + * Fixed a channel user mode bug when joining to a channel server gave + everybody channel founder rights, oops. + + * We mark ourselves as the router of the incoming server connection + if we are router ourselves. This way we can check in some packet + sending functions whether it is locally connected server. For + incoming router connections we put NULL. + + * For router sending packets locally means now always sending the + packet cell wide; to local clients and local servers. For normal + server sending packet locally means sending it to only local + clients. + + * Fixed the JOIN command to really work in router environment. If the + channel is created it is always created by the router. Router is + also responsible of making the initial joining to the channel, + sending JOIN notify to the sending server and distributing + NEW_CHANNEL and NEW_CHANNEL_USER packets. Hence, if the channel + does not exist server doesn't do anything else but forward the + command to the router which performs everything. + + * Added silc_server_send_channel_key function to send the Channel Key + payload. + + * Added silc_server_create_channel_key to create new channel key. The + channel key is now re-generated everytime someone joins or leaves + a channel, as protocol dictates. Note: channel->key_len is the + key length in bits. + +Wed Nov 22 22:14:19 EET 2000 Pekka Riikonen + + * Splitted server.[ch] finally. Created now packet_send.[ch] and + packet_receive.[ch] to separate packet sending and receiving + routines. The server.[ch] now includes everything else including + actual packet processing (writing and reading data) and other + server issues. + + Renamed silc_server_private_message_send_internal to + silc_server_send_private_message. The routine is still though + used only to relay private messages as server does not send + private messages itself. + + Renamed silc_server_new_channel to silc_server_create_new_channel + and added new function sicl_server_new_channel that handles the + incoming New Channel packet. Added also new sending function + silc_server_send_new_channel to send New Channel Payload. + + * Added new function silc_server_notify to process incoming notify + packet to the server/router. Server may then relay the notify + to clients if needed. + + * Added new function silc_server_new_channel_user to process incoming + New Channel User packet. Router will redistribute the packet and + send JOIN notify to its local clients and locally connected servers + if needed. Normal server will send JOIN notify to its local client + on same channel when received this packet. Added also corresponding + sending function silc_server_send_new_channel_user to sent the + payload. + + * Added boolean route argument to send_notif_to_channel and + packet_send_to_channel functions to attempt to route the packet + if it is TRUE and send only locally if it is FALSE. + +Tue Nov 21 19:49:31 EET 2000 Pekka Riikonen + + * silc_server_replace_id now broadcasts the received replace ID + packet if it is not broadcast packet already. The router must + broadcast to inform other routers about changed ID. + + * Added backpointer to server's router into SilcServer context in + silcd/server_internal.h. + + * Fixed silc_server_packet_broadcast to send correct broadcast + packets. + + * The channel key is now distributed to the local client as soon + as it is received from the router (in router environment) so that + no other packet may be sent for the channel until client has + received the key. + + * silc_server_remove_channel_user now broadcasts the received + Remove Channel User packet if it is not broadcast packet already. + The router must broadcast to inform other routers about removed + channel user. + + * Added users field into SilcPacketContext that is a reference count + of the context. One can increase the reference count by calling + silc_packet_context_dup which is now changed to just increase the + reference count instead of duplicating the data. The reference + count is decresed by calling silc_packet_context_free that will + free the data after the reference count hits zero. + + For now on the packet context and everything allocated into it + (including the raw packet from network) must be freed by calling + the new silc_packet_context_free function. Added also new function + silc_packet_context_alloc that must be used now to allocate the + context. This also means that if a routine is asynchronous from + silc_[client/server]_packet_parse_type the packet context must + be duplicated by calling silc_packet_context_dup. Otherwise it + gets free'd after silc_[client/server]_packet_parse_type returns. + Also, one must remember that if packet is duplicated then its + reference count must be decresed by calling the free function as + many times as it was duplicated. + + * Changed SilcBuffer field from protocol contexts to SilcPacketContext + from both client and server. + +Mon Nov 20 23:47:03 EET 2000 Pekka Riikonen + + * Made joining to a channel working in router environment. + + * Cleaned up JOIN command on server side and create function + silc_server_command_join_channel internal routine to make the + joining happen. + +Thu Nov 9 21:12:39 EET 2000 Pekka Riikonen + + * Changed silc_command_pending list to SilcDList. Also, added + `ident' field to SilcServerCommandPending structure to identify + the reply and to call correct callback. + + Added silc_server_command_pending_check function to replace the + corresnponding macro. The silc_command_pending list is not + extern anymore. + + * Added silc_command_set_ident into lib/silccore/silccommand.[ch] + to set identifier to previously allocated Command Payload. It + is used to set identifier for command when resending Command + Payload. + + * Added silc_command_payload_encode_payload to encode Command + Payload buffer from SilcCommandPayload structure. + + * Added silc_argument_payload_encode_payload to encode Argument + payload buffer from SilcArgumentPayload structure. + +Wed Nov 8 21:03:28 EET 2000 Pekka Riikonen + + * Changed WHOIS command to support router connection on server side. + The whois request is always sent to router unless the server is + standalone server. After server has received the reply from the + router will it send the reply to the client. + + * Added silc_server_packet_broadcast into silcd/server.[ch] to + broadcast received broadcast packet. The function is used only + by router. The broadcast packet is always sent to the router's + primary route. + + * Added silc_id_render function in lib/silcutil/silcutil.[ch] to + render given ID to printable string, for log files for example. + +Tue Nov 7 22:14:19 EET 2000 Pekka Riikonen + + * Made basic router to router connections working. At least they + can now connect to each other but nothing really works the way + they are supposed - yet. + + * Added new initiator token to RouterConnection configuration + file in silcd/serverconfig.[ch]. It is used to tell whether we + are the initiator to the remote router or whether we'll expect + the other end to connect. + + * Moved registering of listener task to silc_server_init, hence + the server starts listenning as soon as it is run, even if it + does not have connections to other routers. Let's see how well + this will work. + + * Changed default connection retry timeouts for more suitable in + silcd/server.h. + + * Removed cipher and such arguments from silc_idlist_add_client + and silc_idlist_add_server prototypes from silcd/idlist.[ch]. + Added new function silc_idlist_add_data to add the keys and stuff + to any ID entry. + + * Added SilcIDListData structure and added it to SilcClientEntry + and SilcServerEntry as their first field in the structure. This + way we can explicitly cast the ID entries to the SilcIDListData + structure and get common data for the entries. In past, we had + to first check what type of connection it is and then cast it to + correct ID entry type. Now, we can directly cast the opaque + pointer to the SilcIDListData (no matter what ID entry it actually + is) and get the data needed. + +Mon Nov 6 21:56:12 EET 2000 Pekka Riikonen + + * Wow, found a bug in scheduler. The scheduler uninitialized itself + in some circumstances even if threre were timeout tasks, though not + IO tasks, but tasks anyway. Now fixed. + + * Defined SilcServerConnection structure to hold connection specific + stuff about directly connected servers and routers. The definition + is currently in silcd/server_internal.h. I thought about having + a bit more important role fro this struct but for now it is used + only when connecting to other server (or router actually). + + * Added connecting retry support in server when connecting to + router(s). The retry feature implement exponential backoff + algorithm. Also, added SilcServerParams structure to hold default + parameters for server. For now, it include these retry settings + and are hard coded. After server is moded to be as Silc Server + Library this structure will be more important. + +Sun Nov 5 22:28:44 EET 2000 Pekka Riikonen + + * Changed client librarys channel->clients table to SilcList and + changed code accordingly. + +Thu Nov 2 16:28:01 EET 2000 Pekka Riikonen + + * Changed client's channel table to SilcList and changed code + accordingly. Also changed SilcChannelClientEntry to include back- + pointer to the channel so that client entry can use that structure + as list as well and we have fast cross-reference to the channel. + This change dramatically decreased the complexity of channel + handling with client entry and vice versa (removed one extra + loop when searching for channel entry from many functions). + + * Changed server->sim from table to SilcDList and changed code + accordingly. + + * NAMES command can now be used from user interface. It will show + the user list on the channel, neatly. + + * Added realname pointer to SilcClientEntry in lib/silcclient/idlist.h. + Code now saves realname of the user if it becomes available. + + * Renamed configure.in to configure.in.pre and made ./prepare + script to automatically add correct version string to + configure.in which it creates from configure.in.pre. + +Wed Nov 1 17:21:26 EET 2000 Pekka Riikonen + + * NAMES command reply now shows users mode with the nickname when + joining to channel. + + * Moved silc_client_ch[u]mode[_char] functions from + silc/clientutil.[ch] to lib/silcclient/client.[ch]. Though, that + place sucks, they are utility functions and should be in some + other file. + + * Fixed some unsigned int's to unsigned short's. Patch by cras. + + * Fixed contrib/getopt*.[ch] to not require config.h. Patch by + cras. + +Tue Oct 31 20:10:37 EET 2000 Pekka Riikonen + + * Updated README. + + * Added TRQ (efficient deque and list library) into lib/trq. This is + a very good list library that is currently used in the SILC. Defined + SilcList API over the library because I didn't like the API very + much. See lib/trq/silclist.h for the API and examples of how to + use the API. Fixed various places in the code to use the new + SilcList API. The SilcList is meant for lists that has a structure + already defined as a list. It is not suitable to add just some + context to the list (in TRQ, the context is the list actually). + + So, I defined SilcDList that can be used for the purpose where + predefined list structure does not exit. This can be used as + such list. Now some context just can be added to the SilcDList. + Currently this list is not used in the SILC just yet, though there + are a lot places where this can replace dynamically allocated + tables and I will fix these places, later, to use SilcDList. + See lib/trq/silcdlist.h for SilcDList (they are all inline functions, + and use TRQ internally). + + Also fixed some annoying warning messages that the original TRQ + code generated. Also minor changes to TRQ's Makefile.in. + + * Added support for querying by Client ID to both WHOIS and + IDENTIFY commands into server, as required by the protocol. + + * Removed method function pointers from SilcBuffer structure. They + weren't used to anything and just increased the context size for + no good reason. This change also made silc_buffer_alloc and + silc_buffer_free functions inline functions. + + * Disabled command flooding detection support until it's fixed so + that it accepts commands in but does not execute them more than once + in two seconds. + + * Added silc_net_localhost(), to return local hostname, into + lib/silcutil/silcnet.[ch]. Also added client->hostname pointer + that must be initialized before calling silc_client_init. + + * Added new function: silc_server_send_notify_on_channels to send + notify messages to all channels client has joined. It is assured + that the message is sent only once per client. + + * Moved silc_log_format (from lib/silcutil/silclog.[ch] into + lib/silcutil/silcutil.[ch] as silc_format function. The new + function is generic and is used by server as well, not only by + the logging routines. + + * Added new SKE status type: SILC_SKE_STATUS_BAD_VERSION to indicate + the provided version string was not acceptable. Added new function: + silc_ske_check_version into lib/silcske/silcske.h. The function + must be implemented by the application (client or server) and it + does not reside in the SKE library. The function checks the version + string remote end sent. + + * Added back pointers (to opaque context and to SilcSocketConnection) + into SilcPacketContext structure into lib/silccore/silcpacket.h. + + * Added silc_packet_context_dup into lib/silccore/silcpacket.[ch] to + duplicate packet context structure. + + * Changed `notify' client operation to send same arguments as client + receives from server except for ID's. ID's are mapped to correct + ID entry and that is returned. Also, if channel entry is not sent + by server but the notify is for channel the channel entry is sent + to application (otherwise application doesn't know that it is for + channel (library gets it from packet's Destination ID)). + + * Added silc_client_remove_from_channels into client library to + remove a client from all channels it has joined to. Used when + received SIGNOFF notify from server. Added also new function + silc_client_replace_from_channels to replace old ID entry with + new ID entry on all channels. Used when received NICK_CHANGE + notify from server. + + * Fixed ID Cache list handling in silc_idlist_get_client in + lib/silcclient/idlist.c. Also, added silc_idlist_get_client_by_id + to get (or query) client by ID. + + * Updated TODO list. + + * Added connection authentication status message defined by the + protocol: SILC_CONN_AUTH_OK and SILC_CONN_AUTH_FAILED and added the + support for these into the code in client and server side. + + * Added generic function silc_client_send_command to send any command + with variable argument list. Application should use this function + to send commands if the command functions provided by the library + does not suite for the application's user interface needs. + + * Added new `failure' client operation. Application is notified about + received failure packet if client is executing a protocol. In this + case the protocol's execution has failed. + + * Added SKE's end notify to send the SKE_SUCCESS notify message that + is required by the protocol. + + * Added SILC_PROTOCOL_STATE_FAILURE to indicate received failure + packet from remote. SILC_PROTOCOL_STATE_ERROR indicates local + error at our end. + + * Added status flag to SilcSKE object to indicate realtime status + of the SKE protocol. + + * Application receives now exactly same command reply arguments as + the library receives from server. However, if ID is received the + corresponding ID entry is returned to the application (eg. Client + ID is mapped to correct SilcClientEntry entry and that is returned). + Changed command_reply client operation due to this change. + + * Changed all ID's in commands and in command replys as ID Payloads. + Change affected both client and server side codes. + + All ID's sent in SILC network (with execption of ID's in SILC + Packet header) are sent in ID Payload to support variable length + ID's. + + * Server now notifies nick changes and notifies all clients on + the channels about the new nickname (about the new Client ID, + actually). + + * Implemented CMODE command to change channel modes. Supports all + channel modes defined by the protocol specs except ban and invite + lists. (Also, private channel key mode is supported but support for + setting private channel key in client is missing, thus, this mode + has no effect on client side (except that server requires that the + client uses private channel key and normal channel traffic does not + work anymore)). + + Also, invite mode works per se, but INVITE command does not work + yet correctly, so you can set channel as invite only channel but + inviting clients to the channel does not work (it is yet to be + thought what's the best way to do it). + + * Added new command SILC_COMMAND_CUMODE to change user mode on the + channel. Defined user modes: CHANNEL_FOUNDER and CHANNEL_OPERATOR. + Implemented CUMODE command to change user's mode on the channel. + Supports all modes defined by the protocol specs. + + * Added NAMES command reply to return users modes on the channel. + + * Removed unnecessary and slow ciphers from lib/silccrypt. + + * Set SO_KEEPALIVE option to connection sockets by default. + + * Added new command reply status: SILC_STATUS_USER_NOT_ON_CHANNEL. + + * Added notify types: MOTD, CMODE_CHANGE and CUMODE_CHANGE. Also, + redefined the Notify Payload into protocol specs. + + * Added silc_id_payload_parse_id to get ID directly from raw + ID payload data. + +Mon Oct 9 20:57:02 EEST 2000 Pekka Riikonen + + * Changed SILC_COMMAND_IDENTIFY in protocol specification to + accept searching by Client ID as well. + + * Added support for LEAVE and SIGNOFF notify types in client library. + + * Added silc_id_payload_parse_data into lib/silccore/silcpayload.[ch] + to parse ID Payload from raw data. + +Sun Oct 8 19:33:08 EEST 2000 Pekka Riikonen + + * Added flags parameter into silc_ske_assemble_security_properties + function in lib/silcske/silcske.[ch]. + + * Changed notify client operation to fit better for notify messages + sent by server. The notify payload received from server is now + passed to the application (after parsing it to SilcNotifyPayload). + It is application's responsibility to retrieve the arguments + from the payload and show the message the way it wants. The message + sent by server is implementation specific. + + * Changed public keys to comply with the protocol specification. + Old public keys are not supported anymore and are not compatible. + + * Removed nickname from Channel Payload as the latest draft removed + it. The client must resolve the nickname from the NAMES command + reply received when it joined the channel. + + Also, changed all channel_xxxx_payload to channel_payload_xxxx. + +Sat Oct 7 21:55:01 EEST 2000 Pekka Riikonen + + * Fixed some errors in protocol specification drafts. + + * Created lib/silccore/silcnotify.c to implement Notify Payload + encoding and decoding, lib/silccore/silcpayload.[ch] to implement + generic payloads described by protocol specifications. The file + includes implementations for ID Payload and Argument Payload. + + * Changed Command Payload implementation to use the new Argument + Payload. Changed command_xxxx_payload to command_payload_xxxx + to comply with SILC coding conventions. + + * Added suppport for Argument Payload handling in Notify Payload + implementation as protocol requires it. Added the new support + into server and client lib as well. + +Thu Oct 5 21:16:28 EEST 2000 Pekka Riikonen + + * Added support for multiple nicknames on same channel. [n] is + added locally to the nickname if there are more than one same + nicknames on the channel. + + * Server now sends all nicknames that matched WHOIS request. + Client also shows the list received from server. + + * Added TOPIC command to client side. User can now set and show + current topic on channel. + + * Added MOTD command to client and server. Also, server sends the + motd when client connects to the server. + + * Changed version strings to comply ISO 8601. + +Wed Oct 4 23:29:06 EEST 2000 Pekka Riikonen + + * Fixed protocol error handling in client library. It should now + cope even if the SKE fails for some reason. + + * Made new protocol specification drafts for submitting to IETF. + + * Implemented TOPIC command to server in silcd/command.c. + + * Added two new notify types into lib/silccore/silcnotify.h: + SILC_NOTIFY_TYPE_NICK_CHANGE and SILC_NOTIFY_TYPE_TOPIC_SET to + notify nickname change and topic setting/change on a channel. + + * API change of command_reply operation in client library. The + application gets now the status type received from server as well. + +Sat Sep 30 16:57:42 EEST 2000 Pekka Riikonen + + * Removed the function just added to lib/silcutil/silcschedule.[ch]. + + * Cras fixed and optimized the packet handling even further and + it should work now. Minor change to the prototype of function + silc_packet_receive_process in lib/silccore/silcpacket.[ch]. + +Sat Sep 30 08:48:47 EEST 2000 Pekka Riikonen + + * Added new function into lib/silcutil/silcschedule.[ch]: + silc_schedule_with_fd to select() a specified fd. The function + returns after timeout expires or data arrives or goes. The + function is used by packet routines to wait that all data is + received from network. + + * Fixed data reading from network in lib/silccore/silcpacket.c. + The code now assures that all data is read from the fd and then + continues packet processing. This was a bug fix since the code + used to drop some data in some circumstances. + + * Added new function into lib/silcclient/client.[ch]: + silc_client_start_key_exchange to start key exchange after + connection has been established to server. The code internally + now uses this funtion but its main purpose was to provide it + for applications that perform their own connecting. After + application has created a connection it merely calls this + function to start the key exchange between client and server. + The library takes care of everything else after that. + + Updated also lib/silcclient/README to explain the usage of + this new function. + + * Do not send to application information that connection has + been established. Application gets notified it by connect + operation anyway. + +Thu Sep 28 23:40:19 EEST 2000 Pekka Riikonen + + * Applied cras's patch to add silc_schedule_one function. The + function runs scheduler once and returns. + + * Fixed the scheduler after cras messed it up. The timeout + handling works now as it's supposed to work. + + * Added into lib/silccore/ silcnotify.h to include notify + message types support. Changed silc_server_send_notify* + functions, in server.[ch], to support those new notify types. + Added the support for the notify types into client library, + as well. Added new notify client operation into ops.h in + lib/silcclient/. + + * Changed silc_server_packet_send_to_channel to send normal + packets instead of just channel message packets. The function + is now used to send the notify packets to channels. It is not + used to send channel message packets anymore, as server never + sends them anymore. + + * Added explicit casting into lib/silcutil/silcbuffmt.c to few + va_arg()s as it seems to require it nowadays. I guess, if SILC + is compiled with older va_arg() the new code should work anyway. + +Wed Sep 13 18:10:14 EEST 2000 Pekka Riikonen + + * Splitted core library. Core library (lib/silccore) includes + now only SILC protocol specific core (and common) components. + Created new utility library (lib/silcutil) that includes more + generic purpose stuff. The stuff for util library was taken + from the old core library. This was minor and easy split. + + * Created SILC Client Library (lib/silcclient) that includes + implementation of the SILC client without user interface. This + was major move from silc/ directory. The code has been changed + so that it is transparent towards the user interface. The + silc/ directory includes now the same user interface as before + and it uses the new client library. Read lib/silcclient/README. + Basicly, the client library performs everything else related + to SILC except user interface handling. Also, configuration + files are considered to be part of user interface and library + does not handle them. + + This change also changed a lot of structures, function naming etc. + Most important change was that SilcClientWindow object was + renamed to SilcClientConnection in the client library. Created + also new file lib/silcclient/ops.h. Also added new files + silc/local_command.[ch] and silc/client_ops.[ch]. + + All these changes were made to make it easier for user interface + designers to create what ever user interface for the SILC client + they want. + + It is also expected that the server will be moved to lib + directory as well and SILC Server Library will be created; + sometimes in the future. + + * Removed Local commands from lib/silccore/silccommand.h as + they are application specific and new client library does not + handle any of those anymore. + + * Several functions moved to lib/silcutil/silcutilc.[ch] from + old client implementation in silc/. + + * Added support for callback functions in SILC_LOG_* macros. + Application can now set its own callbacks that will be called + instead of using the default functions that will always print + the debug messages to stderr (or stdout). Also, debugging can + now be disabled by setting silc_debug to FALSE and re-enabled by + setting it to TRUE. Note, that logging will still work even + if debugging is disabled. + + New functions in lib/silcutil/silclog.[ch]: silc_log_set_callbacks, + silc_log_reset_callbacks, silc_log_set_debug_callbacks and + silc_log_reset_debug_callbacks. + + * To enable debugging in silc client one must give now -d + option on command line. + + * Changed silc_schedule_init to automatically allocate task queues + if they are not allocated before calling it. + +Thu Sep 7 10:49:33 EEST 2000 Pekka Riikonen + + * Added GMP 3.1 into math library. + +Sun Aug 20 21:27:26 EEST 2000 Pekka Riikonen + + * Added SILC_PACKET_REMOVE_CHANNEL_USER to remove a client from + a channel in SILC network. The packet is used by servers and + routers to notify other routers that user has left a channel. + This little feature was missing until now. Added the feature + to protocol specification as well. + + Added functions: silc_server_send_remove_channel_user and + silc_server_remove_channel_user into server.[ch]. + + * Added SILC_PACKET_REKEY and SILC_PACKET_REKEY_DONE into + lib/silccore/silcpacket.h. However, they are not implemented + yet. + +Sat Aug 19 23:04:16 EEST 2000 Pekka Riikonen + + * Fixed joining to a channel and sending channel messages + between server and router. The channel message sending should + now work inside a cell. + +Tue Jul 25 20:46:13 EEST 2000 Pekka Riikonen + + * Fixed the private message sending between server and router. + The private message sending should now work inside a cell. + + * Added silc_server_replace_id into server.[ch] to replace + existing ID in the SILC network. + + * Added silc_idlist_find_server_by, silc_idlist_replace_client_id + and silc_idlist_replace_server_id into idlist.[ch] in server. + +Mon Jul 24 18:33:31 EEST 2000 Pekka Riikonen + + * Fixed the server to server connections. Server can again now + connect to router. Router to router connections probably does + not work just yet. + +Thu Jul 20 13:15:01 EEST 2000 Pekka Riikonen + + * Added dynamic protocol registering support. Now protocols can + registered and unregistered on the fly. Patch by cras. + +Wed Jul 19 19:08:46 EEST 2000 Pekka Riikonen + + * Added lib/contrib directory to hold routines that some platforms + don't have but are needed by SILC. + + * Added getopt.c, getopt1.c and getopt.h from GNU C library + into lin/contrib to provide getopt() and getopt_long() for + those who don't have it. + +Tue Jul 18 20:41:20 EEST 2000 Pekka Riikonen + + * Added AWAY command to client. When away message is set and + client receives a private message packet the client automatically + replies to the sender with the away message. + + * Fixed a bug in lib/silcmath/mpbin.c: silc_mp_mp2bin. This + bug seemed to be the cause of recent problems when compiling + with gcc-2.95. + + * Added version detection support to SKE protocol specification + and added the new changes to the SKE implementation as well. + There were other minor changes in the SKE protocol as well. + + Many changes in lib/silcske/silcske.[ch] and in + lib/silcske/payload.[ch]. + + * Added ^U functionality, clear input line. Patch from cras. + +Mon Jul 17 23:33:26 EEST 2000 Pekka Riikonen + + * Mainly small bugfixes on core library. Fixed some debugging + logging and buffer overflow in silclog.c. + + * Updated config.sub and config.guess on the distribution tree. + +Sat Jul 15 15:33:48 EEST 2000 Pekka Riikonen + + * Added command lagging support in server. Client may execute + commands now only once in two seconds. + +Thu Jul 13 22:10:21 EEST 2000 Pekka Riikonen + + * Optimized packet reception. MAC computation and checking is now + also more optimized. A lot previously duplicated code is now + used as generic by both client and server. + + * Fixed key pair generation in clientutil.c + +Wed Jul 12 18:28:07 EEST 2000 Pekka Riikonen + + * Added into lib/silccore/silcbufutil.[ch] new function; + silc_buffer_realloc. + + * Moved generic packet sending/encryption functions to + lib/silccore/silcpacket.[ch] from client and server. Some + rewriting of the functions. + + * Moved all generic packet reception/decryption functions to + lib/silccore/silcpacket.[ch] from client and server. The + packet processing is now much cleaner in both client and server. + These were major changes in both client and server. + + * Created many common functions in server to do packet sending. + Previously code were duplicated a lot, this has been removed + with these changes. + +Tue Jul 11 20:27:26 EEST 2000 Pekka Riikonen + + * Rewrote major parts of the ID cache system. Don't know + whether it is better now or not but at least the API is more + cleaner now. + + * Major rewrite on ID cache stuff on client because of the ID + cache API changes. Added idlist.c to client. + + * Also major rewrite on ID cache stuff on server as well. + Major rewrite of idlist.[ch]. SilcXXXList's are now named + SilcXXXEntry's. We won't keep anymore idlist specific pointers + in hand, instead they are all put into the ID cache system now. + All server_idlist_* routines uses ID cache now instead of + traversing its own lists (those lists does not exist anymore). + SilcIDList though still exists. Also, SilcXXXEntry's are + now pointers. + +Sun Jul 9 15:19:24 EEST 2000 Pekka Riikonen + + * Finally made the SKE implementation compliant to the protocol + specification. All mp integers are now binary encoded as + opposed being HEX encoded. + + * Added lib/silcmath/mpbin.[ch]. Encoding mp intergers to and + from binary data. + + * Added into lib/silccore/silcutil.[ch] PEM encoding/decoding + functions: silc_[encode/decode]_pem. Also added function + silc_encode_pem_file to PEM encode with newlines ('\n') for + saving into a file. + + * SILC public keys are now encoded either PEM or binary. Same + option is for private keys as well. By default private keys + are binary encoded and public keys PEM encoded. Silly HEX + encoding were removed. + + * Added into lib/silccrypt/silchash.[ch] silc_hash_fingerprint + function to create fingerprints. + + * Fixed a bug in SHA1; does not change the original data anymore. + + * Partly implemented INFO command on client and server side. + Fixed CLEAR command. Changes to SERVER command; show current + server(s) when giving command without arguments. Added + VERSION command to client. + + * Added check to server that unregistered connections cannot + execute commands (unless it is specificly allowed). + +Thu Jul 6 18:12:24 EEST 2000 Pekka Riikonen + + * Fixed screen refresh. + + * Fixed channel joining bug from client. On some circumstances + client tried to join to a channel it had already joined. + + * Added public key verification process into client's protocol.c. + The client now verifies the public key from user and saves + it into ~./silc/serverkeys/ directory. + + Added into: clientutil.[ch]: silc_client_verify_server_key. + + * Changed SKE protocol's silc_ske_initiator_finish function + to accept callback function that verifies the received public + key. Removed old silc_ske_verify_public_key function. + +Wed Jul 5 19:19:02 EEST 2000 Pekka Riikonen + + * Added into silcpkcs[ch]: silc_pkcs_public_key[_data]_set and + silc_pkcs_private_key[_data]_set. + + * Made the password and public authentication more cleaner in + server's protocol.c. + + * Removed historic and obsolete protocol `channel_auth' from + both client and server. + + * Removed wrong way of sending command status messages from + server to client in server's command.c. The old way violated + protocol specification. + + Changes to silccore/silccommand.[ch]: removed + silc_command_encode_status_payload -> not needed anymore, + changed silc_command_encode_payload_va to accept extra + argument on variable argument list. The argument type must + now be provided to the function. Also, added new function: + silc_command_encode_reply_payload_va which is same as + normal command_encode_payload_va except command status type + is provided as extra argument. + +Tue Jul 4 18:26:39 EEST 2000 Pekka Riikonen + + * Added ~./silc directory handling. The directory includes the + public and private keys for the client. + + Added silc_client_check_silc_dir, silc_client_create_identifier + and silc_client_load_keys. + + * Implemented SILC protocol compliant public key. Added public + and private key saving to and loading from files. + + Added into silcpkcs.[ch]: silc_pkcs_encode_identifier, + silc_pkcs_public_key_encode[_data], silc_pkcs_public_key_decode, + silc_pkcs_private_key_encode[_data], silc_pkcs_private_key_decode, + silc_pkcs_public_key_alloc, silc_pkcs_public_key_free, + silc_pkcs_private_key_alloc and silc_pkcs_private_key_free. + + Implemented: silc_pkcs_save_[public/private]_key[_data] and + silc_pkcs_load_[public/private]_key. + +Mon Jul 3 18:51:27 EEST 2000 Pekka Riikonen + + * Added silc_server_get_route (route.[ch]) to get connection + data for the fastest route for given ID. + + * Implemented INVITE command on client and server. The command + were re-defined in the SILC Protocol Specification and the + implementation now complies with the specification. + + * Implemented PING command on client and server. + + * Implemented NAMES command on client and server. The server side + supports currently only normal server not router server yet. + Some changes to NAMES definition in SILC protocol specification. + +Sun Jul 2 18:23:01 EEST 2000 Pekka Riikonen + + * Implemented LEAVE command on client and server. + + * Previously deprecated SILC_PACKET_FORWARDED flag is now in use + again. This change was made to the protocol as well. Server + should not violate the protocol specification anymore. + +Fri Jun 30 14:03:26 EEST 2000 Pekka Riikonen + + * Added SOCKS4 and SOCKS5 support to SILC client. SOCKS5 + was tested. SOCKS4 was not but should work anyway. diff --cc apps/irssi/scripts/Makefile.am index 5e569253,00000000..97a79916 mode 100644,000000..100644 --- a/apps/irssi/scripts/Makefile.am +++ b/apps/irssi/scripts/Makefile.am @@@ -1,18 -1,0 +1,19 @@@ +SUBDIRS = examples + +scriptdir = $(datadir)/irssi/scripts + +script_DATA = \ + autoop.pl \ + autorejoin.pl \ + buf.pl \ + dns.pl \ + kills.pl \ + mail.pl \ + mlock.pl \ + quitmsg.pl \ + scriptassist.pl \ ++ silc.pl \ + splitlong.pl \ + usercount.pl + +EXTRA_DIST = $(script_DATA) diff --cc apps/irssi/scripts/silc.pl index 00000000,00000000..3870cf60 new file mode 100644 --- /dev/null +++ b/apps/irssi/scripts/silc.pl @@@ -1,0 -1,0 +1,57 @@@ ++#!/usr/bin/perl -w ++ ++# ++use vars qw($VERSION %IRSSI); ++ ++use Irssi 20020519; ++$VERSION = "0.3"; ++%IRSSI = ( ++ authors => "c0ffee", ++ contact => "c0ffee\@penguin-breeder.org", ++ name => "sign_messages from silc-plugin", ++ description => "introduces a setting sign_messages which automatically signs messages", ++ license => "Public Domain", ++ url => "http://www.penguin-breeder.org/?page=silc", ++ changed => "Wed Jan 29 20:55 CET 2003", ++); ++# ++ ++sub sig_ownpub { ++ my ($server, $msg, $target) = @_; ++ ++ if (($server->{chat_type} =~ /^silc$/i) && ++ (Irssi::settings_get_bool("sign_messages"))) { ++ ++ Irssi::signal_stop(); ++ $server->command("SMSG -channel $target $msg"); ++ ++ } ++ ++} ++ ++sub sig_sendtext { ++ my ($line, $server, $witem) = @_; ++ return unless ref $witem; ++ ++ if (($server->{chat_type} =~ /^silc$/i) && ++ (Irssi::settings_get_bool("sign_messages"))) { ++ ++ return if $line eq ""; ++ ++ if ($witem->{type} eq "CHANNEL") { ++ $target = "-channel $witem->{name}"; ++ } elsif ($witem->{type} eq "QUERY") { ++ $target = "$witem->{name}"; ++ } else { ++ return; ++ } ++ ++ Irssi::signal_stop(); ++ $server->command("SMSG $target $line"); ++ ++ } ++ ++} ++ ++Irssi::signal_add_first("send text", "sig_sendtext"); ++Irssi::settings_add_bool("silc", "sign_messages", 0);