X-Git-Url: http://git.silcnet.org/gitweb/?a=blobdiff_plain;f=CHANGES;h=bfec5a99a399d80324c42267e1b1c898eb663e70;hb=bb1973faaa81ead23b3d5e05b45cddd8a47d51f7;hp=f9fcec412f9be07291fbc4c0208ec433af670a3b;hpb=c928ed66c3b2bb7a96b7c9055db9e1c1d1755057;p=silc.git diff --git a/CHANGES b/CHANGES index f9fcec41..bfec5a99 100644 --- a/CHANGES +++ b/CHANGES @@ -1,3 +1,461 @@ +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