1 Thu Dec 5 22:29:46 EET 2002 Pekka Riikonen <priikone@silcnet.org>
3 * Fixed backup router bugs: When backup resumes router and
4 receives a CHANNEL_MESSAGE packet the backup must not act
5 as router since the packet header decryption would be
6 different. Also, when relaying packets to channel, do
7 not re-encrypt packets on backup that came from the primary
8 since the connection isn't really router-router connection.
9 Affected files silcd/server.c, silcd/packet_send.c.
11 * Added checks in encryption/decryption that encryption/decryption
12 length sent as argument really is multiple by block size. Helps
13 catching really weird bugs like the above backup router bugs
14 when packets are being decrypted in wrong way. Affected files
15 lib/silccore/silcpacket.c, and lib/silccrypt/silccipher.c.
17 * Fixed padding generation in private key file encryption.
18 Affected file lib/silccrypt/silcpkcs.c.
20 Thu Dec 5 16:35:23 EET 2002 Pekka Riikonen <priikone@silcnet.org>
22 * Added ignore_message_signatures setting which can be used
23 to ignore signatures in messages. Affected files are
24 irssi/src/silc/core/client_ops.c, silc-core.c.
26 * Fixed the libtoolfix to use command line options instead of
27 environment variables. They didn't work as expected. Now,
28 the libtool is fully run-time configurable.
30 Wed Dec 4 21:08:52 CET 2002 Jochen Eisinger <c0ffee@penguin-breeder.org>
32 * Verify signature payload for signed messages. Affected files
33 irssi/src/silc/core/client_ops.h, irssi/src/silc/core/silc-servers.c,
34 irssi/src/silc/core/silc-core.h
36 * Display signature verification result in public and private
37 messages using theme abstracts. See irssi/default.theme for
38 examples on their usage. Affected files
39 irssi/default.theme, irssi/src/fe-common/silc/fe-messages.h,
40 irssi/src/fe-common/silc/module-formats.[ch],
41 irssi/src/fe-common/silc/fe-common-silc.c,
42 irssi/src/fe-common/silc/Makefile.am
43 irssi/src/fe-common/core/fe-messages.[ch]
45 * Fixed bugs in Irssi's theme parsing. Affected files
46 irssi/src/fe-common/core/themes.c
48 Wed Dec 4 18:29:13 EET 2002 Pekka Riikonen <priikone@silcnet.org>
50 * Calculate the correct length for signed messages before
51 encrypting, it must be multiple by block size. Affected
52 file lib/silccore/silcmessage.c.
54 * silc_message_signed_get_public_key returns now both
55 decoded and encoded public key. Affected files are
56 lib/silccore/silcmessage.[ch].
58 * Added libtoolfix script that makes the libtool more generic
59 and configurable in run-time. Now we can specify in run-time
60 if what kind of libraries we want to create, regardless of
61 configuration. SIMs are now creates even if --disable-shared
64 Tue Dec 3 23:26:55 EET 2002 Pekka Riikonen <priikone@silcnet.org>
66 * Fixed founder key sending in CMODE command in client.
67 Affected file lib/silcclient/command.c.
69 * Fixed CUMODE founder authentication in server to not check
70 for client's public key since it's not supposed to do that.
71 Affected file silcd/command.c.
73 Tue Dec 3 12:02:41 CET 2002 Jochen Eisinger <c0ffee@penguin-breeder.org>
75 * Set realname and hostname in NICK_REC records. Affected file
76 irssi/src/silc/core/silc-nicklist.c
78 Mon Dec 2 20:50:20 EET 2002 Pekka Riikonen <priikone@silcnet.org>
80 * Remove 1.0 protocol backwards compat code from client
83 * Added more reliable check for whether nickname did change
84 or not, or whether only Client ID changed in NICK_CHANGE
85 notify. Affected file lib/silcclient/client_notify.c.
86 Fixes bug in '@' character handling in a nickname.
88 * Added support for automatically parsing signature from
89 the message payload. Added new function
90 silc_message_get_signature to return the payload to
91 application. Affected files lib/silccore/silcmessage.[ch].
93 * Changed the private_message and channel_message client
94 operations to deliver the SilcMessagePayload to the
95 application too. Application can use it fe. to get the
96 signature from the message for verification. Affected
97 file lib/silcclient/silcclient.h, client_channel.c and
100 * Redefined the signed payload for message payloads.
101 Updated protocol specs and implemented.
103 Mon Dec 2 16:28:29 EET 2002 Pekka Riikonen <priikone@silcnet.org>
105 * Fixed wrong invite and ban list handling in server command
106 reply. Affected files are silcd/command_reply.c,
107 silcd/server_util.[ch].
109 Sun Dec 1 20:48:17 EET 2002 Pekka Riikonen <priikone@silcnet.org>
111 * Fixed CMODE setting in server when founder mode was set.
112 Affected file silcd/command.c. Bug #95.
114 * Added support to setting specific public key in CMODE in
115 Irssi SILC client. Affected file lib/silcclient/command.c.
117 * Added support to use specific public key in CUMODE in
118 Irssi SILC Client. Affected file lib/silcclient/command.c.
120 * Added support for inviting and banning by public key in
121 Irssi SILC client. Affected file lib/silcclient/command.c.
123 * Fixed fingerprint/babbleprint showing in invite and ban
124 list command replys. Affected file is
125 irssi/src/silc/core/client_ops.c.
127 Sun Dec 1 16:32:03 CET 2002 Jochen Eisinger <c0ffee@penguin-breeder.org>
129 * Format CMODE +c and +h to display both the mode and the argument
131 Sun Dec 1 18:17:22 EET 2002 Pekka Riikonen <priikone@silcnet.org>
133 * Added test vectors and test programs for SHA-1, MD5,
134 HMAC-SHA1 and HMAC-MD5. New tests are located in
135 lib/silccrypt/tests/. Fixed also argument decoding bug in
136 MD5 implementation. Affected file lib/silccrypt/md5.c.
138 * Changed the channel private key and private message key
139 generation (with static keys) to use SHA1 instead of MD5,
140 as SHA1 is the mandatory hash function in SILC. Affected
141 file lib/silcclient/client_[channel/prvmsg].c.
143 * Changed the private key file encryption to use SHA1 instead
144 of MD5. Added support for the old generation and added
145 automatic change of the key (to be removed later). Affected
146 files lib/silccrypt/silcpkcs.c.
148 Sat Nov 30 19:07:52 EET 2002 Pekka Riikonen <priikone@silcnet.org>
150 * Load only files with .pub suffix in PublicKeyDir. Affected
151 file silcd/serverconfig.c.
153 Sat Nov 30 14:29:34 CET 2002 Johnny Mnemonic <johnny@themnemonic.org>
155 * Extended the SILC_SERVER_LOG_ERROR macro to all available logging
156 channels. Affected files silcd/silcd.c, silcd/server.h.
158 * Added the config directive PublicKeyDir for the client block.
159 Affected files doc/exampe_silcd.conf.in, silcd/serverconfig.[ch].
161 Sat Nov 30 09:30:55 CET 2002 Pekka Riikonen <priikone@silcnet.org>
163 * Merged Toni's irssi/silc.conf patch.
165 * ROBODoc cleanup patch to lib/silccrypt/silcpkcs.h by johnny.
167 * Max alloc tests in allocation routines. Affected file
168 lib/silcutil/silcmemory.c.
170 Fri Nov 29 23:44:29 EET 2002 Pekka Riikonen <priikone@silcnet.org>
172 * Fixed a typo in resuming code that fixed detach/resume code
173 in server. Bug #93. Affected file silcd/packet_receive.c.
175 Thu Nov 28 17:17:11 CET 2002 Jochen Eisinger <c0ffee@penguin-breeder.org>
177 * Do reverse lookups for server when /connecting. Affected files
178 irssi/silc.conf, irssi/src/core/servers.c, irssi/src/core/network.c,
179 irssi/src/core/net-nonblock.*
181 Thu Nov 28 16:19:18 CET 2002 Pekka Riikonen <priikone@silcnet.org>
183 * Added library versioning for shared libraries. Affected
184 files configure.in.pre and lib/Makefile.am.pre.
186 Wed Nov 27 21:51:52 CET 2002 Jochen Eisinger <c0ffee@penguin-breeder.org>
188 * Display INVITE and BAN lists as specified by SILC 1.2
190 Wed Nov 27 16:01:11 CET 2002 Pekka Riikonen <priikone@silcnet.org>
192 * Do not send invite list back unless asked (when sending
193 no arguments) or when list was modified. Affected file
196 * Remove client from invite list in KILLED notify and in
197 KILL command. Affected file silcd/command.c and
200 * Fixed bugs in invite list handling in INVITE command.
201 Affected files silcd/command.c and silcd/server_util.c.
203 * Merged with Irssi 0.8.6.
205 * Fixed UTF-8 in Irssi SILC Client, setlocale was missing.
206 Affected file irssi/src/fe-text/silc.c.
208 Mon Nov 25 18:21:43 EET 2002 Pekka Riikonen <priikone@silcnet.org>
210 * The silc_argument_get_[first/next] now return the argument
211 type to caller. Added silc_argument_payload_encode_one.
213 Affected files are lib/silccore/silcargument.[ch].
215 * Added support for the SILC 1.2 INVITE command and new
216 invite lists to server. Affected files are silcd/command.c,
217 silcd/server_util.[ch] and silcd/packet_[receive/send].[ch].
219 * Added support for the SILC 1.2 BAN command and new
220 ban lists to server. Affected files are silcd/command.c,
221 silcd/server_util.[ch] and silcd/packet_[receive/send].[ch].
223 * Added support to client sending new INVITE command. Affected
224 file is lib/silcclient/command.c.
226 * Added support to client sending new BAN command. Affected
227 file is lib/silcclient/command.c.
229 * Added support for removing client from invite list when kicked
230 from channel, as SILC 1.2 dictates. Affected files are
231 silcd/packet_receive.c and silcd/command.c.
233 Sun Nov 24 18:26:42 EET 2002 Pekka Riikonen <priikone@silcnet.org>
235 * If iv argument to silc_cipher_[encrypt/decrypt] is NULL, use
236 automatically the cipher's internal IV. Affected files
237 lib/silccrypt/silccipher.[ch].
239 * Assure the RESUME_CLIENT packet is not sent to twice to
240 backup router if the detached client was originated from
241 the backup. Affected file silcd/server.c. Bug #76.
243 * Changed silc_sim_symname to not allocate memory. Affected
244 file lib/silcsim/silcsimutil.c.
246 * Fixed memory leaks with SIMs in server. Affected files
247 silcd/serverconfig.c, silcd/server.c.
249 * Fixed channel key distribution after resuming detached
250 client. Affected files silcd/packet_receive.c.
252 * Fixed channel's global_user boolean checking after detaching.
253 Check it after changing the owner of the client not before.
254 Affected file silcd/packet_receive.c.
256 * Fixed few double frees from client library. Fixes at least
257 Bug #81, possibly others too.
259 * UTF-8 decode topics also in JOIN command reply and TOPIC_SET
260 notifys in Irssi SILC Client. Affected file is
261 irssi/src/silc/core/client_ops.c. Bug #82.
263 * Applied Ville Räsänen's manual page and --mandir bugfix
264 patch. Affected files are configure.in.pre and Makefile.am.pre.
267 Fri Nov 22 18:34:20 EET 2002 Pekka Riikonen <priikone@silcnet.org>
269 * Added support to backup router protocol for backup to tell
270 normal server that it cannot use the backup router as primary
271 because the primary isn't really down. Updated protocol
274 * Added support for primary router to tell backup router that
275 resuming is not possible because the backup really isn't primary
276 in the cell. For example if backup disconnected itself the
277 resuming is not allowed since the primary really did not
278 go down. Updated protocol specs.
280 * Removed MARS from crypto library.
282 * Defined the CTR mode and Randomized CBC mode in SILC. The
283 CTR mode is RECOMMENDED now in specification. Defined also
284 Serpent cipher as optional cipher. Updated the protocol specs.
286 Thu Nov 21 12:43:28 EET 2002 Pekka Riikonen <priikone@silcnet.org>
288 * Added support for inviting/banning by IP/MASK, public key,
289 and explicit Client ID. Redefined the command and notify
290 types to allow easier forwards support for other methods
291 of inviting/banning. Updated protocol specs.
293 * Remove the client from channel's invite lists if the client
294 is kicked or killed. Updated protocol specs.
296 * Unified the Channel Message Payload and Private Message
297 into one Message Payload. Updated protocol specs and
300 Tue Nov 19 22:30:56 EET 2002 Pekka Riikonen <priikone@silcnet.org>
302 * Don't wait for EOF after socket error has occurred, but
303 close the connection. Affected file is silcd/server.c.
305 Mon Nov 18 18:58:26 EET 2002 Pekka Riikonen <priikone@silcnet.org>
307 * Added support for setting FOUNDER mode on channel with
308 specific public key which can be set with CMODE command.
309 Updated protocol specs and implemented in client and server.
311 * Fixed the Irssi SILC client to correctly shutdown the client
312 library to avoid memory leaks. Affected files are
313 irssi/src/silc/core/silc-core.c and silc-servers.c.
315 * Deprecated the No Reply flag in SKE protocol and introduced
316 "IV Included" flag which can be used to indicate that the IV
317 is included in the ciphertext. This makes it possible to use
318 SILC on unreliable transport, such as UDP which may cause
319 packet reordering and losses. Updated protocol specs, did
322 Sun Nov 17 15:50:57 EET 2002 Pekka Riikonen <priikone@silcnet.org>
324 * Fixed the MPI implementation of silc_mp_sizeinbase to return
325 < 32 bit values in correct size. Affected file is
326 lib/silcmath/mp_mpi.c.
328 Sat Nov 16 13:14:45 EET 2002 Pekka Riikonen <priikone@silcnet.org>
330 * Fixed the KE Start Payload parsing to check that mandatory
331 fields are present. Affected file lib/silcske/payload.c.
333 * Fixed compilation warnigs in Irssi SILC Client. Affected
334 files are irssi/src/silc/core/silc-query.c. client_ops.c.
336 Thu Nov 14 19:33:28 CET 2002 Jochen Eisinger <c0ffee@penguin-breeder.org>
338 * Print "nick now appears as newnick" and update Irssi's nicklist
339 when you change your nick to "nick". Closes #62
341 * Never format your own nick. Closes #63
343 Thu Nov 14 09:44:54 CET 2002 Jochen Eisinger <c0ffee@penguin-breeder.org>
345 * SILC_UMODE_GONE changes are now propagated correctly to the
346 Irssi client. Closes #54
348 Tue Nov 12 19:42:18 CET 2002 Jochen Eisinger <c0ffee@penguin-breeder.org>
350 * Fixed example in /HELP KEY
352 * Added expando $j which expands to current SILC Client version
354 Tue Nov 12 19:46:39 EET 2002 Pekka Riikonen <priikone@silcnet.org>
356 * Fixed public key decoding in crypto library.
358 * Added better error printing to SKE library.
360 Tue Nov 12 08:50:12 CET 2002 Pekka Riikonen <priikone@silcnet.org>
362 * Fixed NICK command to not crash if nickname was not sent.
364 Mon Nov 11 19:32:00 EET 2002 Pekka Riikonen <priikone@silcnet.org>
366 * Added Encrypt-Then-MAC order to SILC packet MAC generation.
367 Deprecated the old Encrypt-And-MAC order. Updated protocol
368 specs and implemented.
370 * Added Encrypt-Then-MAC order to Channel Message Payload MAC
371 generation. Updated specs and implemented.
373 Sun Nov 10 12:20:56 EET 2002 Pekka Riikonen <priikone@silcnet.org>
375 * Added support for rekey before 2^32 sequence number wraps.
376 Affected files in server and client library.
378 * Padding must be at least 8 bytes now. Implemented and updated
381 * Compute maximum padding for authentication packets to make
382 passphrase approximation attacks impossible. Affected files
383 in client library and in server.
385 * Fixed PING command sending in client library and handling in
386 server. The server ID must be ID Payload, not raw ID data.
387 Affected files in server and client library.
389 * Defined that all public keys sent in commands and notify
390 payloads are actually Public Key Payloads not raw public key
391 data. Updated protocol specs and implemented.
393 * Updated protocol version to 1.2. Updated specs and code.
395 * Added ERR_UNSUPPORTED_PUBLIC_KEY and ERR_OPERATION_ALLOWED
396 status types. Updated specs and the code.
398 * Added support for normal client to kill its own entries from
399 the network. Updated protocol specs and the code.
401 * Defined the SILC_MESSAGE_FLAG_SIGNED. Updated protocol specs
402 and added initial implementation.
404 * Added MAC field to the Private Message Payload to protect
405 against chosen ciphertext attacks. Updated the protocol specs
408 * Added idle and signon fields to the ATTRIBUTE_SERVICE
409 attribute to indicate the user's current idle and signon time
410 of a service. Updated protocol specs and implemented.
412 Thu Nov 7 19:21:10 EET 2002 Pekka Riikonen <priikone@silcnet.org>
414 * Added "do_not_bind" argument to silc_client_file_send what
415 can be used to not bind locally but assume the file receiver
416 provides the point of connect. Usefull when sender is behind
417 NAT device. Affected file lib/silcclient/silcclient.h and
420 * Added -no-listener option to FILE SEND command in Irssi SILC
421 client. Affected file irssi/src/silc/core/silc-servers.c.
422 Renamed FILE RECEIVE to FILE ACCEPT.
424 * Confirm passphrase for private key encryption in
425 silc_create_key_pair and silc_change_private_key_passphrase.
426 Affected files are lib/silcutil/silcapputil.c.
428 Thu Nov 7 10:05:28 CET 2002 Pekka Riikonen <priikone@silcnet.org>
430 * Move silc_client_packet_send back to internal, added
431 silc_client_send_packet, a bit simpler function for application.
432 Affected files lib/silcclient/silcclient.h, client.c and
435 * Moved the SilcClientEntry, SilcChannelEntry and
436 SilcServerEntry to silcclient.h to be public and documented
437 them for application. Affected files are
438 lib/silcclient/silcclient.h and idlist.h.
440 Wed Nov 6 17:18:13 EET 2002 Pekka Riikonen <priikone@silcnet.org>
442 * Fixed manual page installation patch by Ville Räsänen.
443 USERS help page fix patch by Ville Räsänen
445 * Changed the silc_client_command_call interface to make
446 the command call simpler for the application. The library
447 now handles the command line parsing, command finding and
448 execution. Application only needs to call the function
449 with the command line. Affected files are
450 lib/silcclient/silcclient.h, command.[ch].
452 * Fixed silc_get_input to NULL-terminate the returned input.
453 Affected file lib/silcutil/silcutil.c.
455 * Resolve the client's public key in JOIN command if the
456 founder auth data is being requested but we don't know the
457 client's public key. Affected file silcd/command.c.
460 Mon Nov 4 16:02:59 EET 2002 Pekka Riikonen <priikone@silcnet.org>
462 * Print notify for server opers when backup router comes
463 online. Affected file silcd/server.c.
465 * Fixed the INVITE command to send the invite list in
466 command reply. Affected file silcd/command_reply.c.
468 * Fixed MOTD command reply sending. Affected file
471 * UTF-8 decode the topic in TOPIC command reply and LIST
472 command reply in Irssi SILC client. Affected file is
473 irssi/src/silc/core/client_ops.c.
475 Sun Nov 3 17:59:15 EET 2002 Pekka Riikonen <priikone@silcnet.org>
477 * Fixed the INVITE command to not crash Irssi SILC client
478 when given without nickname argument. AFfected file
479 irssi/src/silc/core/client_ops.c.
481 * Fixed double free in WHOIS query on normal server when
482 forwarding query to router. Affected file is
483 silcd/server_query.c.
485 * Fixed WATCH command reply handling on normal server which
486 was missing altogether. Affected file silcd/command_reply.c.
489 Sun Nov 3 00:42:05 EET 2002 Mika Boström <bostik@lut.fi>
491 * Added man-pages for silc(1), silcd(8) and silcd.conf(5).
492 Included yodl sources for each of these. Also modified
493 Makefile.am prototype to install these files to proper
494 locations. Updated CREDITS. Affected file Makefile.am.pre,
495 new files doc/*.yo, doc/silc.1, doc/silcd.conf.5,
498 Sat Nov 2 21:26:56 EET 2002 Pekka Riikonen <priikone@silcnet.org>
500 * Added support for encrypted private key files. Now
501 passphrase must be provided when new key pair is created
502 (can be empty though), and prompted when loading the
503 private key. Added support for loading the old-style
504 non-encrypted private keys as well. Affected files
505 lib/silccrypt/silcpkcs.[ch], Irssi SILC client and
508 * Fixed silc_get_input to accept input on all terminals.
509 Affected file lib/silcutil/silcutil.c.
511 * Moved the Irssi SILC client key loading and other stuff
512 to be called after the arguments and UI is initialized.
513 Affected file irssi/src/silc/core/silc-core.c. Bug #31.
515 * Added -P option to Irssi SILC client which can be used
516 to change the passphrase of the private key. Affected
517 file irssi/src/silc/core/silc-core.c.
519 * Added silc_change_private_key_passphrase apputil routine
520 to lib/silcutil/silcapputil.[ch].
522 Sat Nov 2 12:53:09 EET 2002 Pekka Riikonen <priikone@silcnet.org>
524 * Fixed connection closing in client library to not crash.
525 Moved the connection freeing totally to function
526 silc_clinet_del_connection. Affected file
527 lib/silcclinet/client.c.
529 Fri Nov 1 18:57:02 EET 2002 Pekka Riikonen <priikone@silcnet.org>
531 * Changed includes/silcincludes.h to silcincludes.h.in to
532 include configuration specific information. The silcdefs.h
533 is not included in to installation anymore (it's only
534 compilation time header).
536 Fri Nov 1 10:30:26 CET 2002 Pekka Riikonen <priikone@silcnet.org>
538 * Moved the SilcClient and SilcClientConnection from client.h
539 to the public lib/silcclient/silcclient.h. Changed the
542 Thu Oct 31 22:44:07 EET 2002 Pekka Riikonen <priikone@silcnet.org>
544 * If version string in silc_clinet_alloc is NULL the library
545 puts it automatically. Affected file lib/silcclient/client.c.
547 * Changed the version strings from variables to #define's
548 in includes/silcversion.h.
550 Wed Oct 30 16:17:30 CET 2002 Pekka Riikonen <priikone@silcnet.org>
552 * Added shared library complation support.
554 Tue Oct 29 21:48:55 EET 2002 Pekka Riikonen <priikone@silcnet.org>
556 * Added lib/silcutil/silcapputil.[ch] for application
557 utility functions. It includes routines for applications'
558 convenience. Added silc_create_key_pair, silc_show_public_key
559 and silc_load_key_pair functions.
561 Tue Oct 29 17:36:44 EET 2002 Pekka Riikonen <priikone@silcnet.org>
563 * Send RESUME_CLIENT packet from router to backup routers
564 to in resuming. Affected file silcd/packet_receive.c.
566 Mon Oct 28 21:23:39 EET 2002 Pekka Riikonen <priikone@silcnet.org>
568 * In IDENTIFY command parsing, send all other IDs except
569 Client IDs explicitly to router for resolving on normal
570 server. Also check that ID received in WHOIS command is
571 always Client ID, others are not allowed. Affected file
572 silcd/server_query.c.
574 * Merged latest changes from irssi.org CVS.
576 Sun Oct 27 11:44:32 EET 2002 Pekka Riikonen <priikone@silcnet.org>
578 * Merged c0ffee's /set heartbeat patch to Irssi SILC client.
579 Affected files irssi/src/silc/core/silc-core, silc-server.c.
581 * Fixed the heartbeat sending in Irssi SILC client. Moved
582 the silc_client_packet_send to silcclient.h for application
583 usage. Affected files lib/silcclient/client_internal.h
584 lib/silcclient/silcclient.h.
586 * Fixed a bug in query resolving in server. Used wrong
587 variable in a for loop and crashed. Affected file is
588 silcd/server_query.c.
590 * Server constructs requested attributes only to locally
591 connected clients. Affected file silcd/server_query.c.
594 * Fixed a bug when sending resolving from router to server
595 with requested attributes. The constructed WHOIS command
596 was incorrect. Affected file silcd/server_query.c.
599 * Fixed Requested Attributes saving in WHOIS command reply.
600 The length of the data buffer must be saved too. Affected
601 file silcd/command_reply.c.
603 * Update the client entry's servername after detaching is
604 over. Affected file silcd/packet_receive.c. Bug #37.
606 * Resolve incomplete client entrys in CUMODE_CHANGE and
607 CMODE_CHANGE notifys. Affected file is
608 lib/silcclient/client_notify.c. Bug #42.
610 Thu Oct 24 12:22:35 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
612 * Fixed channel key packet processing bug on backup router
613 during backup resuming protocol. Affected file is
614 silcd/packet_receive.c.
616 * Fixed memory leaks in server. Affected files are
617 silcd/server.c and silcd/packet_receive.c.
619 * Fixed packet decryption problem when backup router encrypted
620 channel message with wrong key during backup resuming
621 protocol. Affected file silcd/packet_send.c.
623 * ROBODoc documented lib/silccrypt/silccipher.h. A patch by
624 Toni Willberg (toniw@iki.fi)
626 * Changed the SilcCipher context to be private. Changed the
627 silc_cipher_get_iv to just return pointer to the IV. Added
628 silc_cipher_get_name to return the name of the cipher.
629 Fixed code all around to support these changes. Affected
630 files are lib/silccrypt/silccipher.[ch], client library and
633 Wed Oct 23 19:01:41 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
635 * Fixed unaligned access in lib/silccore/silcattrs.c.
637 * Fixed libtool linking in lib/silcsim/Makefile.am.
639 * Fixed services attribute printing. Affected files is
640 irssi/src/silc/core/silc-queries.c.
642 Wed Oct 23 09:51:04 CEST 2002 Pekka Riikonen <priikone@silcnet.org>
644 * Fixed a crashbug in incoming server accepting. Affected
647 Tue Oct 22 13:02:32 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
649 * Added automatically generated index to Toolkit Reference
652 * Added support for Postscript Toolkit Reference Manual.
654 Mon Oct 21 21:30:40 CEST 2002 Pekka Riikonen <priikone@silcnet.org>
656 * Merged DISCONNECT fix, and autoconn port fix from Irssi
659 Sun Oct 20 19:54:55 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
661 * Added 'send_events' boolean argument to the function
662 silc_schedule_set_listen_fd which sends the set events to
663 the application explicitly if set to TRUE. Default action
664 should be FALSE. Affected file lib/silcutil/silcschedule.[ch],
665 lib/silcclient/client_internal.h and silcd/server_internal.h.
667 * Added silc_compare_timeval to determine which time values
668 is smaller. Affected file lib/silcutil/silcutil.[ch].
670 * Added sort-of "Quality of Service" (QoS) support to
671 SilcSocketConnection. Data reception can be controlled with
672 rate limit per second and/or read data length limit.
673 Added silc_socket_set_qos. Affected files are
674 lib/silcutil/silcsockconn.[ch] and unix/silcunixsockconn.c.
676 * Added the QoS configuration to SILC Server configuration
677 file. Affected files are silcd/serverconfig.[ch] and
680 Sun Oct 20 14:12:24 CEST 2002 Pekka Riikonen <priikone@silcnet.org>
682 * Merged with irssi.org CVS.
684 * Failed OPER and SILCOPER authentications are now logged.
685 Affected file silcd/command.c. Bugs #25.
687 Sat Oct 19 13:32:15 CEST 2002 Pekka Riikonen <priikone@silcnet.org>
689 * ROBODoc documented lib/silcutil/silcbuffer.h and
690 lib/silcutil/silcdlist.h. Patch by Ville Räsänen
691 <ville.rasanen@iki.fi>.
693 Fri Oct 18 10:51:04 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
695 * Added support for auto-passphrase authentication from the
696 config file during connecting which was not implemented
697 yet. Affected file irssi/src/silc/core/client_ops.c.
699 * Fixed a bug in authentication protocol failure handling which
700 was processing wrong callback context. Affected files
701 are lib/silcclient/client.c and protocol.c.
703 * Fixed the /ATTR allow off to actually work. Affected file
704 is irssi/src/silc/core/silc-queries.c.
706 * Fixed the /ATTR -del to work. Affected file is
707 irssi/src/silc/core/silc-queries.c.
709 Thu Oct 17 23:45:12 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
711 * Fixed string formatting crashbug in lib/silccore/silcattrs.c.
713 * Fixed mask attribute adding in Irssi SILC client. Affected
714 file irssi/src/silc/core/silc-queries.c.
716 Thu Oct 17 16:40:39 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
718 * Added support for saving the requested attributes in
719 WHOIS to directory. Affected file is
720 irssi/src/silc/core/silc-queries.c.
722 Wed Oct 16 17:40:56 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
724 * Added support for parsing VCard fields that do not have
725 the TYPE= for types. Affected file lib/silcutil/silcvcard.c.
727 * Fixed a double free bug in hash table foreach function
728 if the entry was deleted in the foreach callback. Affected
729 file lib/silcutil/silchashtable.c.
731 Tue Oct 15 18:05:24 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
733 * Added silc_attribute_get_verify_data to return the signature
734 verification data for either user digital signature or
735 server digital signature in Requested Attributes. Affected
736 files are lib/silccore/silcattrs.[ch].
738 * Added silc_vcard_alloc which is used to allocated dynamic
739 SilcVCard context. The silc_vcard_free now checks whether
740 the context is dynamically allocated or not. Affected files
741 are lib/silcutil/silcvcard.[ch].
743 Mon Oct 14 17:55:44 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
745 * Periodically remove the NOATTR status from client entry
746 so that the client may take the attributes in use even after
747 server has resolved them unsuccessfully earlier. Affected
748 file silcd/server_query.c and idlist.h.
750 * Moved sha1hash and md5hash from client->internal to
751 SilcClient for application usage. Affected files are
752 lib/silcclient/client.h and client_internal.h.
754 * Fixed attribute encoding and decoding bugs. Affected
755 files lib/silccore/silcattrs.[ch].
757 * Added ATTR command to Irssi SILC Client which is used to
758 manage user's Requested Attributes sending and values for
759 WHOIS command. Affected files around Irssi SILC client.
761 Mon Oct 14 14:33:54 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
763 * Added silc_buffer_strformat which can be used to format
764 strings into a buffer which size is automatically increased.
765 Affected file lib/silcutil/silcbuffmt.[ch].
767 * Added implementation of VCard (RFC 2426) which can be used
768 as part of Requested Attributes in WHOIS command. Affected
769 file lib/silcutil/silcvcard.[ch].
771 Fri Oct 11 23:52:17 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
773 * Some strncat -> silc_strncat changes our the core and
776 * Added SILC_SKE_STATUS_SIGNATURE_ERROR and OUT_OF_MEMORY
777 errors. Added better error printing to SKE library.
778 Affected files lib/silcske/silcske.c, silcske_status.h and
781 * Save the PKCS key length even if only private key is set to
782 SilcPKCS. Affected file lib/silccrypt/silcpkcs.[ch] and rsa.c.
784 * Fixed the usage of silc_pkcs_get_key_len since it returns the
785 length in bits not in bytes. Affected files are
786 lib/silcske/silcske.c, lib/silccore/silcauth.c and
787 silcd/server_query.c.
789 Wed Oct 9 17:22:57 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
791 * Added silc_attribute_payload_encode_data to directly encode
792 the data into the attributes buffer. Renamed function
793 silc_attribute_payload_parse_list to silc_attribute_payload_parse.
794 Affected files are lib/silccore/silcattrs.[ch].
796 * silc_hash_table_find_foreach calls the foreach function now
797 once even if the nothing was found with context set to NULL.
798 Affected file lib/silcutil/silchashtable.[ch].
800 * Remove the RESOLVING flag from client entry after received
801 the Requested Attributes from the client. Fixed memory leak
802 in client entry freeing. Affected files silcd/server_query.c
805 * Added Requested Attributes support into SILC Client Library.
806 It is not able to send requested attributes in WHOIS command,
807 and also receive and process requested attributes. Added
808 silc_client_attribute_[add|del] and silc_client_attributes_get
809 functions. Added also `ignore_requested_attributes' to the
810 SilcClientParams to not use attributes in client. Affected
811 files are lib/silcclient/command.c, client_attrs.[ch],
812 silcclient.h, client_internal and client.[ch].
814 * Changed the silc_client_get_client_by_id to support Requested
815 Attributes, it takes them as argument now. Affected file
816 is lib/silcclient/silcclient.h, and idlist.c.
818 * Added -details option to WHOIS command in Irssi SILC Client
819 to support the requested attributes. By default it requests
820 all attributes. Affected file lib/silcclient/command.c and
821 irssi/doc/help/in/whois.in.
823 Tue Oct 8 17:58:28 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
825 * Add also SERVICE attribute for server-constructed attribute
826 data. Also digitally sign the attributes and add
827 SERVER_DIGITAL_SIGNATURE attribute. Affected file is
828 silcd/server_query.c.
830 Mon Oct 7 18:25:35 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
832 * Changed the silc_attribute_payload_encode to support list
833 of attributes (function may be called several times to add
834 a new attribute). Removed the silc_attribute_payload_encode_list
835 function. The encoding function now also automatically encodes
836 the data, so the caller does not need to do that. Affected
837 files lib/silccore/silcattrs.[ch].
839 * Added support for replying on behalf of the user to the
840 Requested Attributes in WHOIS command in the server. Affected
841 file silcd/server_query.c.
843 * SILC_NOT_IMPLEMENTED macro use SILC_LOG_INFO now instead of
844 SILC_LOG_DEBUG. Affected file lib/silcutil/silclog.h.
846 Sun Oct 6 16:48:32 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
848 * Don't swtich to become primary router if we are backup if
849 decryption error has occurred. Affected file silcd/server.c.
851 * Fixed a bug in backup router IP address comparison in
852 silc_server_backup_get.
854 Save now also the port of the server/router and use that
855 in comparison as well. Affected file silcd/server_backup.c.
857 * Normal server now reconnects to backup router automatically
858 if connection is lost to it. Affected file silcd/server.c.
860 Thu Sep 26 13:51:02 CEST 2002 Pekka Riikonen <priikone@silcnet.org>
862 * If packet processing fails (like integrity check fails)
863 the connection is closed now. Affected files are
864 lib/silccore/silcpacket.c and silcd/server.c.
866 Mon Sep 23 10:59:39 CEST 2002 Pekka Riikonen <priikone@silcnet.org>
868 * Fixed double free in RSA public key set function
869 silc_rsa_set_public_key. Affected file lib/silccrypt/rsa.c.
872 Sun Sep 22 14:54:05 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
874 * Rewrote WHOIS, WHOWAS and IDENTIFY commands in the server.
875 Added server_query.[ch] which provides one interface for
876 querying information using all three commands.
878 * Changed all "typedef unsigned char" in core library to
881 Sat Sep 21 21:36:45 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
883 * Added silc_strncat into lib/silcutil/silcstrutil.[ch].
885 * Renamed silc_server_get_client_resolve to
886 silc_server_query_resolve and moved to server_query.[ch].
888 Wed Sep 18 18:28:04 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
890 * Resumed client packet handling from server put the resumed
891 client on wrong list on router and caused the client not
892 be present on the network anymore. Now fixed to put the
893 client to correct list. Affected file silcd/packet_receive.c.
895 Wed Sep 18 15:13:48 CEST 2002 Johnny Mnemonic <johnny@themnemonic.org>
897 * Various cleanup in error message output in config parsing code
898 and in server init code. Fixed error log files containing
899 too many newlines ('\n') in some situations. Affected files are
900 silcd/serverconfig.c, silcd/silcd.c, and silcd/server.c.
902 Wed Sep 18 10:51:23 CEST 2002 Pekka Riikonen <priikone@silcnet.org>
904 * Use the reverse lookupped hostname in client internals
905 instead of one user provided us as remote server name.
906 Affected file lib/silcclient/client.c.
908 Mon Sep 16 12:02:54 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
910 * Added 'app_context' to silc_schedule_init. It is an
911 application specific context that is delivered to application
912 in task callback functions. Affected files are
913 lib/silcutil/silcutil.[ch].
915 * The hb_context in SilcSocketConnection is not freed
916 automatically anymore (application must free it). Freeing
917 it automatic is inconsistent. Affected files are
918 lib/silcutil/silcsockconn.[ch].
920 Sun Sep 15 22:16:19 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
922 * Added support for removing explicitly added client connections
923 in rehash and closing the client connections if they were
924 unconfigured in the rehash. Affected file silcd/server.c.
926 * Added support for aborting automatically pending commands
927 that never receives the reply (to avoid memory leaks).
928 Added also silc_server_command_pending_timed to set the
929 specific timeout for pending command. Affected files are
930 silcd/command[_reply].[ch].
932 * Added SILC_STATUS_ERR_TIMEDOUT status. Updated protocol
933 specs and lib/silccore/silcstatus.h.
935 Sun Sep 15 12:25:10 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
937 * Changed the silc_get_time to accept time value as argument
938 or if zero is sent return current local time. Affected
939 file lib/silcutil/silcutil.[ch].
941 * Added STATS command to client library and Irssi SILC client.
942 Patch provided by Ville Räsänen <ville.rasanen@iki.fi>.
944 Wed Sep 11 09:22:00 CEST 2002 Pekka Riikonen <priikone@silcnet.org>
946 * Assure that channel key is set before sending it. May
947 crash server otherwise. Affected file silcd/packet_send.c.
949 Tue Sep 10 09:50:08 CEST 2002 Pekka Riikonen <priikone@silcnet.org>
951 * Assure that endless loop cannot happen with detached client
952 resolving on normal server. Added idlist status
953 SILC_IDLIST_STATUS_RESUME_RES. Affected files are
954 silcd/idlist.h and silcd/packet_receive.c.
956 Mon Sep 9 12:18:18 CEST 2002 Pekka Riikonen <priikone@silcnet.org>
958 * Incoming file transfer request cannot use same session as
959 the sending session. This can happen when sending file to
960 yourself. Crashed the client on quit. Affected file
961 lib/silcclient/client_ftp.c. Bug #24.
963 Sun Sep 8 18:39:25 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
965 * Implemented the draft-riikonen-precense-attrs draft and
966 the Attribute Payload into the lib/silccore/silcattrs.[ch].
968 Sun Sep 8 13:13:44 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
970 * Distribute the SERVER_SIGNOFF notify also to local backup
971 routers from the primary router. The backup router may not
972 have the signing of local server directly connected and need
973 to know about the signoff. Affected file silcd/server_util.c.
975 * Use the primary router as the origin of the locally connected
976 server when it is disconnecting from the backup router since
977 that's where it really is coming from. Now the clients from
978 the disconnecting server are removed correctly and "shadow"
979 clients are not left to the backup router. Affected file
982 Sat Sep 7 22:26:50 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
984 * If normal server is standalone and found existing but disabled
985 channel, do not re-create the channel since it creates
986 duplicate same channels. Affected file silcd/server.c.
988 * Added anonymous client connections support to server. New
989 "anonymous" configuration option to ConnectionParams section
990 added. If set to true, the username and hostname information
991 of the client will be scrambled and anonymous user mode is
992 set automatically to the user. Affected files are
993 silcd/serverconfig.[ch], silcd/packet_receive.c and server.c.
995 Sat Sep 7 16:02:09 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
997 * In JOIN notify handling, mark that the cache entry of the
998 client cannot be expired. Can cause crashes on normal
999 server (asserts client->channels). Affected file is
1000 silcd/packet_receive.c.
1002 * From now on distribution versions are used as protocol versions
1003 instead of by default using the Toolkit base version as protocol
1004 version. Affected file prepare.
1006 * Do not set the locally resolved hostname for local client
1007 entry but take what server sends. This way the real hostname
1008 is showed in WHOIS for yourself. Affected file is
1009 lib/silcclient/idlist.c and lib/silcclient/client.c.
1011 * Resolve local info with IDENTIFY when connecting to server.y
1013 Sat Sep 7 14:22:43 CEST 2002 Lubomir Sedlacik <salo@silcnet.org>
1015 * Rewritten check for POSIX threads. Use --with-pthreads[=DIR]
1016 for implied search (not needed on platforms which has native
1017 pthreads library). Use --without-pthreads to disable threads.
1018 Affected file is configure.in.pre
1020 * Fixed --with-iconv on platforms which need to bypass (broken)
1021 native iconv(). Affected file is configure.in.pre
1023 Sat Sep 7 15:08:13 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
1025 * Moved -C option parsing in Irssi SILC client at same time
1026 as other options. The UI was initialized earlier and caused
1027 problems on command line. Bug #16. Affected file is
1028 irssi/src/silc/core/silc-core.c.
1030 Mon Sep 2 23:00:30 CEST 2002 Johnny Mnemonic <johnny@themnemonic.org>
1032 * Added global variable silc_log_timestamp that tells silclog
1033 wether to print or not the timestamp in the logging files.
1034 Affected file lib/silcutil/silclog.[ch].
1036 * Added silcd configuration option Timestamp in the Logging
1037 section. Affected file silcd/serverconfig.[ch],
1038 doc/example_silcd.conf.in.
1040 Fri Aug 30 08:57:33 CEST 2002 Pekka Riikonen <priikone@silcnet.org>
1042 * Fixed fingerprint checking to check for entirely empty
1043 fingerprint instead of two first bytes when determining
1044 if it is set. Bug #18. Affected file silcd/command.c.
1046 * Fixed duplicate PKCS name registering to not allow it.
1047 Bugs #17. Affected file lib/silccrypt/silcpkcs.c.
1049 Sun Aug 25 08:02:04 CEST 2002 Lubomir Sedlacik <salo@silcnet.org>
1051 * Conditionalize non-gcc compiler optimizations for various
1052 platforms, enable those commented out. Cleanups.
1053 Affected file lib/silcmath/mpi/configure.in
1055 Sat Aug 24 15:11:32 EEST 2002 Timo Sirainen <tss@iki.fi>
1057 * silc_rng_exec_command() left zombie processes if command
1058 didn't generate any output. Affected file
1059 lib/silccrypt/silcrng.c
1061 Fri Aug 23 22:05:44 CEST 2002 Lubomir Sedlacik <salo@silcnet.org>
1063 * Rewrote iconv checking, introduce --with-iconv for systems
1064 which rely on libiconv. Check if iconv() provided by libc
1065 is good enough, otherwise demand libiconv. Affected file
1068 Fri Aug 23 07:10:52 CEST 2002 Lubomir Sedlacik <salo@silcnet.org>
1070 * Search for ldopen() also in libc. This enables SIM support
1071 on *BSD systems. Based on patch from Alex Zepeda. Affected
1072 file configure.in.pre
1074 Sun Aug 18 04:44:30 CEST 2002 Lubomir Sedlacik <salo@silcnet.org>
1076 * Don't call AM_CONDITIONAL conditonally for SILC_THREADS.
1077 This fixes prepare on *BSD systems. Affected file
1080 Sun Aug 4 15:55:40 CEST 2002 Pekka Riikonen <priikone@silcnet.org>
1082 * More fixed for not having purge timeout for global clients
1083 that are on channel. Affected files silcd/command_reply.c
1086 * Fixed the rekey protocol to work with backup router connections.
1087 Rekey packets are now allowed on disabled connections as
1088 well. Affected files silcd/packet_send.c and server.c.
1090 * Do not switch to be as backup router when shutting down and
1091 closing the primary connection. Affected file silcd/server.c.
1093 * Fixed memory leaks in backup router deleting. Added
1094 silc_server_backup_free to free all data during shutdown of
1095 server. Affected files silcd/server_backup.[ch].
1097 Sun Jul 14 21:33:32 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
1099 * Do not process commands if the sock->user_data is NULL.
1100 Affected file silcd/command.c.
1102 Tue Jul 9 19:03:11 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
1104 * Fixed buffer overflow and security problems (loosing bits
1105 in CFB encryption) in SILC RNG. Problems reported by
1106 Markku-Juhani O. Saarinen <mjos@saturn.tcs.hut.fi>.
1108 Sun Jul 7 13:10:01 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
1110 * Added yet more checks that client is not expired on global
1111 list if it is on channels. Affected file is
1112 silcd/command_reply.c.
1114 Sat Jul 6 11:45:11 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
1116 * Merged c0ffee's MIME signal patch which adds support for
1117 sending also MIME messages in Irssi SILC Client, and handling
1118 received MIME messages in a signal (and perhaps doing something
1119 to non-textual MIME messages).
1121 Sun Jun 30 01:30:22 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
1123 * Fixed pending command deletion in server and client library
1124 to check the whole list instead of breaking after first found.
1125 The affected files are silcd/command.[ch] and
1126 lib/silcclient/command.[ch].
1128 Sat Jun 29 17:40:12 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
1130 * Return NO_SUCH_CHANNEL error in USERS for channel that is
1131 secret or private, otherwise it's possible to find out
1132 whether a secret channel exists or not. Affected file
1135 * If CMODE change fails during the mode setting, assure that
1136 the old mode mask is set for the channel back. Affected
1137 file silcd/command.c.
1139 * Fixed passphrase saving on +a channel on normal server
1140 after successful JOIN command. Affected file silcd/command.c.
1142 Fri Jun 28 11:53:25 CEST 2002 Pekka Riikonen <priikone@silcnet.org>
1144 * Remove server/router operator privileges in DETACH command,
1145 since it's possible to resume to server where these
1146 privileges would not be allowed for the client. Affected
1147 file silcd/command.c.
1149 * Do not set to wait for backup in rehash of the server.
1150 Affected file silcd/server.c.
1152 * Do not check listener sockets when counting how many
1153 socket connections we have. Affected file is
1154 silcd/server_util.c.
1156 * Do not announce disconnected clients that are remaining
1157 in history (for WHOWAS). This is because SIGNOFF notify
1158 for these has been sent earlier already. Affected file
1161 Thu Jun 27 20:07:27 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
1163 * Buffer overflow with CUMODE command's mode->mode character
1164 conversion. Reported by Ville Räsänen. Affected file
1165 lib/silcutil/silcutil.c.
1167 Thu Jun 27 16:54:33 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
1169 * Allow heartbeat packets to go disabled connections anyway.
1170 Affected files silcd/server.c and silcd/packet_send.c.
1172 * Do not broadcast New Channel packets with List flag set
1173 in the packet to backup routers. The router must check
1174 for the correctness of the packets before sending them.
1175 It is possible that router will have enforce Channel ID
1176 change and this would cause desync in the backup router.
1177 Affected file silcd/packet_receive.c.
1179 * Remove SILC_PACKET_FLAG_LIST from the temp packets that
1180 are handled in list parsing. They are not list packets
1181 anymore. Affected file silcd/packet_receive.c.
1183 Thu Jun 27 11:27:07 CEST 2002 Pekka Riikonen <priikone@silcnet.org>
1185 * Stop waiting for backup router through the timeout, not
1186 directly after backup router has arrived. Affected file
1189 * Do not re-create channel keys and send them when removing
1190 clients in server shutdown. Affected files are
1191 silcd/server_internal.h and silcd/server_util.c.
1193 * Notify distribution to backup routers was missing from
1194 the silc_server_send_notify_dest function which caused
1195 desyncing problems with backup router. Affected file is
1196 silcd/packet_send.c.
1198 * The client's channel removing was working wrong on
1199 backup router. It assumed that it doesn't know global
1200 information but backup router does know. For this reason
1201 it could remove channel when it wasn't supposed to do that.
1202 Affected file silcd/server.c and silcd/server_util.c.
1204 Wed Jun 26 15:14:12 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
1206 * Stop for a couple seconds after badkup router has become
1207 primary router. Affected file silcd/server.c.
1209 * Added silc_server_remove_servers_by_server, which is used
1210 to remove servers originated from some other server. Also
1211 clients of those servers can be removed too. Affected file
1212 silcd/server_util.[ch].
1214 * When removing clients after a server has signed of remove
1215 also all servers behind that server (unless they are known
1216 to be available locally), and send SERVER_SIGNOFF for each
1217 of the server separately. Also the signed off clients are
1218 sent now separately per signed off server. The affected files
1219 are silcd/server.c and silcd/server_util.[ch].
1221 * All servers added with silc_idlist_add_server must always
1222 have both "router" and "connection" pointers set. Otherwise,
1223 bad server entries may be left around in the cache.
1224 Affected file silcd/command_reply.c.
1226 * Do not create the channel key in NEW_CHANNEL packet
1227 processing if the channel is empty. Affected file
1228 silcd/packet_receive.c.
1230 * Completed backup router support for standalone routers.
1231 Supports also servers in the cell that do not use the backup
1234 Wed Jun 26 10:38:11 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
1236 * Fixed a bug in silc_string_regexify which did not add '^'
1237 at the start of each string, and thus the matching was
1238 not explicit. For example ban list iikone@*!*@* would
1239 match also "priikone", which is wrong, it would have to be
1240 *iikone@*!*@* to match also "priikone". Affected
1241 file lib/silcutil/unix/silcunixutil.c.
1243 Tue Jun 25 18:47:39 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
1245 * Enable all local server connections before updating client
1246 caches when we've become backup router. Otherwise, signoff
1247 packets may not reach the clients. Affected files are
1248 silcd/server.c and silcd/server_util.[ch].
1250 * Fixed a bug in version string parsing which could crash
1251 the program with specially formatted version string.
1252 Bug reported and patch provided by Ville Räsänen. Affected
1253 file lib/silcutil/silcutil.c.
1255 * Handle the disconnection immediately when DISCONNECT
1256 packet is received in server. Affected file silcd/server.c.
1258 * Primary router now waits a short time (10 seconds) for
1259 backup router connection before accepting any other
1260 connection (except local). Affected file silcd/server.c,
1263 * Fixed a crash in client libary in NICK_CHANGE notify when
1264 NICK_CHANGE arrived for client entry we are resolving
1265 currently. Affected file lib/silcclient/client_notify.c.
1267 * Call the sconn->callback completion even if error had
1268 occurred. Start reconnecting always if connection to
1269 primary router fails during backup router protocol.
1270 Affected files silcd/server.c and server_backup.c.
1272 Mon Jun 24 17:47:52 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
1274 * Added functions silc_server_send_opers and
1275 silc_server_send_opers_notify to send packets stricly
1276 to operators. Added macro SILC_SERVER_SEND_OPERS macro
1277 to send variable argument notify to operators.
1278 Affected files silcd/packet_send.[ch] and silcd/server.h.
1280 * Removed UMODE rights checking with UMODE_CHANGE notify.
1281 Affected file silcd/packet_receive.c.
1283 * Server/router operator now receives notify when network
1284 switches to backup router and when it resumes the use of
1285 primary router. Affected file silcd/server.c and
1286 silcd/server_backup.c.
1288 * Fixed the updating of client information after backup
1289 resuming protocol is over; update all except local clients
1290 to the new primary router. The affected file is
1291 silcd/server_util.c.
1293 * Added support for closing active connections in rehash
1294 that were unconfigured by the user. Supports currently
1295 closing server and router connections. Affected file
1298 * Rewrote some SILC_LOG_DEBUG's in silcd/server_backup.c.
1300 Sun Jun 23 17:32:31 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
1302 * Don't do SILC_STRING_LANGUAGE encoding if the outbuffer
1303 is NULL since seems that on some platforms NULL is allowed
1304 and on some it's not. Fallback encoding is used instead.
1305 Affected file lib/silcutil/silcstrutil.c.
1307 * Fixed statistics updating for incoming server connection
1308 which could cause problems when re-connecting. Affected
1309 file silcd/server.c.
1311 * Preliminary backup router support for standalone router
1312 added. Affected files in silcd/.
1314 * Mark server connections in backup router disabled before
1315 and after backup protocol. Affected file is
1316 silcd/server_backup.c.
1318 * Added support for reconnecting to remote server connection
1319 even if the protocol fails, and if the configuration wants
1320 us to keep trying to connect anyway.
1322 Server connection is not allowed to backup router if
1323 backup router does not have connection to primary router yet.
1325 Affected file is silcd/server.c.
1327 Sat Jun 22 21:34:59 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
1329 * Added silc_client_udpate_server function to update changed
1330 server info. Affected file lib/silcclient/idlist.[ch].
1332 * Added check for server entries that are being resolved when
1333 notify is received. If being resolved, handle the received
1334 notify only after it's resolved so that all notifys are
1335 handled in same order as received from the server.
1337 Added similar resolver check to channel entries. Every
1338 notify that cause resolving of any information that affects
1339 channel entry marks the channel entry in waiting state.
1340 After whatever resolving is over the waiters are signalled
1341 and only then the notifys are handled in the same order
1342 as delivered from the server.
1344 Affected files are lib/silcclient/idlist.[ch], and
1347 * Fixed KILLED notify handling in normal server. Affected
1348 file silcd/packet_receive.c.
1350 * Added SILC_IDLIST_STATUS_LOCAL which indicates that entry
1351 is locally connected, or was locally connected (but may
1352 be detached and connection is not active). Added also
1353 SILC_IS_LOCAL for checking this status. Affected files
1354 silcd/idlist.h, silcd/packet_receive.c, silcd/server_util.c,
1355 silcd/server.c and silcd/server_internal.h.
1357 Sat Jun 22 17:06:58 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
1359 * Don't send or handle TOPIC_SET if topic is already set and
1360 is same as being set. Affected files silcd/command.c and
1361 silcd/packet_receive.c.
1363 * Fixed CMODE change rights checking to work correctly when
1364 removing modes by operator. Affected file is
1365 silcd/server_util.c.
1367 * Fixed some handling with New Channel packet in router and
1368 fixed some CMODE_CHANGE notify handling in server and router.
1369 Affected file is silcd/packet_receive.c.
1371 * Changed "disconnect" client operation to include the
1372 reason of the disconnection and optional disconnection
1373 message. Affected file lib/silcclient/silcclient.h.
1375 * Made the compilation of lib/contrib/ stuff conditional.
1376 Affected files configure.in.pre, lib/contrib/Makefile.am.
1378 Sat Jun 22 12:49:21 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
1380 * All CMODE_CHANGE and CUMODE_CHANGE notifys are now sent back
1381 to the sender of the notify too, to avoid situation where two
1382 notifys are in the network at the same time going to oppsite
1383 directions. Affected file silcd/packet_receice.c.
1385 Fri Jun 21 10:00:32 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
1387 * Delete the client from channel even if the cilent->id is
1388 NULL. It was possible that client was deleted without
1389 removing from channels (theoretically at least). Affected
1390 file silcd/server.c and silcd/server_util.c.
1392 * Free the client data too when resuming is not successful.
1393 Affected file silcd/packet_receive.c.
1395 * Merged some code from c0ffee's silc-plugin. Affected files
1396 irssi/src/silc/core/silc-channels.c and silc-expandos.c.
1398 * Added SILC_PRIMARY_ROUTE and SILC_BROADXAST macros to
1399 silcd/server_internal.h. SILC_PRIMARY_ROUTE Returns pointer
1400 to the primary router connection, the other one returns
1401 TRUE if packet must be broadcasted to network.
1403 * All notifys that are destined to primary router (to network)
1404 are now automatically sent to backup routers even if the
1405 router is standalone (and has backup router). Affected files
1408 * Added --without-irssi and --without-silcd configuration
1409 options for disabling the compilation of these applications.
1410 Affected file configure.in.pre and prepare.
1412 Thu Jun 20 13:48:15 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
1414 * Implemented SILC_STRING_BMP and SILC_STRING_UNIVERSAL for
1415 UTF-8 encoding and decoding. Added also new encodings
1416 SILC_STRING_BMP_LSB and SILC_STRING_UNIVERSAL_LSB.
1418 Added also SILC_STRING_LANGUAGE which is language and charset
1419 specific encoder and decoer for those platforms that support
1420 iconv(). It can convert the UTF-8 to and from the locale
1421 specific character set.
1423 Affected file lib/silcutil/silcstrutil.[ch].
1425 * Added macro SILC_NOT_IMPLEMENTED to lib/silcutil/silclog.h.
1427 * Added function silc_get_command_name to the file
1428 lib/silcutil/silcutil.[ch].
1430 * Improved the server debug output a bit. Affected files are
1433 Wed Jun 19 17:46:31 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
1435 * Save the channel passphrase when received succesful JOIN
1436 command reply from router, on normal server. Otherwise
1437 joinig +a channels from normal server is not possible.
1438 Affected file silcd/command.c.
1440 * Fixed a bug in TOPIC_SET notify handling. The notifier
1441 may be other than client too, like server or channel.
1442 It expected it to always be only client and ignored the
1443 notify. Affected file silcd/packet_recieve.c.
1445 * Removed some (unnecessary) debug printing from
1446 lib/silccore/silcid.c and lib/silccore/silcargument.c.
1448 * Do not force CMODE_CHANGE when server is announcing new
1451 Router announces stuff only after server reannounces channel
1452 after CHANNEL_CHANGE notify.
1454 These fixes optimizes the announcing procedure, and perhaps
1455 fixes some problems too. Affected file silcd/packet_receive.c.
1457 * Fixed SERVER_SIGNOFF sending to local clients. It was
1458 totally broken and sent the notify to all local clients,
1459 instead of only to those that was on same channel as the
1460 signing off clients. Affected file silcd/server_util.c.
1462 * Added -D option to server. It can be used to give debug
1463 level. The levels are from 0 - 99, and are predefined for
1464 smooth server debugging. (see silcd.c for the predefined
1465 levels). Affected file silcd/server.c.
1467 Wed Jun 19 16:01:51 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
1469 * Fixed a bug in Irssi SILC client to close the connection
1470 properly when disconnecting from server. Affected file
1471 irssi/src/silc/core/client_ops.c.
1473 Tue Jun 18 17:14:52 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
1475 * When authenticating as founder during JOIN command, check
1476 that the one authenticating becomes the only founder on the
1477 channel. Affected file silcd/command.c.
1479 * Better checking for founder mode setting when CUMODE_CHANGE
1480 notify is received. Affected file silcd/packet_receive.c.
1482 * Close all connections when shutting down the server by sending
1483 DISCONNECT packet. Close all listeners too when shutting
1484 down the server. Affected file silcd/server.c.
1486 * Handle DISCONNECT packet correctly in client library by
1487 calling the "disconnect" client operation. Affected file
1488 lib/silcclient/client.c.
1490 * Handle local errors correctly during resuming. Affected
1491 file lib/silcclient/client.c.
1493 Tue Jun 18 10:26:27 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
1495 * The log file is not dupped internally anymore in
1496 lib/silcutil/silclog.c. Fixed memory leaks too.
1498 * The scheduler now dispatches all pending timeout tasks
1499 when it is uninitialized with silc_schedule_uninit.
1500 Affected file lib/silcutil/silcschedule.c.
1502 Mon Jun 17 21:30:55 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
1504 * Added --enable-stack-trace option to configure. Added
1505 memory allocation stack trace support. Added files
1506 lib/silcutil/stacktrace.[ch]. Affected files are
1507 lib/silcutil/silcmemory.[ch].
1509 * Fixed memory leaks from libraries and server. Affected
1510 files around the tree.
1512 * Reverted back a fix made to CUMODE which broke it.
1513 Affected file silcd/command.c.
1515 Sun Jun 16 11:49:45 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
1517 * Added SILC_MESSAGE_FLAG_UTF8 to the protocol specs and the
1518 core library, and implemented it. All textual messages SHOULD
1519 use this flag and the message MUST be UTF-8 encoded.
1520 All text messages sent by Irssi SILC client are now UTF-8
1521 encoded (regardless whether the terminal supports UTF-8 or not).
1522 Affected files are lib/silccore/silcchannel.h,
1523 irssi/src/silc/core/silc-servers.c, silc-channels.c and
1526 Sat Jun 15 18:23:39 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
1528 * Added lots of new statistics updating that was missing from
1529 the server and router code. Affected files in silcd/.
1531 * Sending SIGUSR1 signal to server now dumps the current
1532 server statistics into /tmp directory. Affected file is
1535 * ROBODoc documented the lib/silccrypt/silchash.h. Improved
1536 the SILC Hash Interface also. Added new functions
1537 silc_hash_get_name, silc_hash_init, silc_hash_update and
1538 silc_hash_final. Affected file lib/silccrypt/silchash.c.
1540 Sat Jun 15 12:09:14 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
1542 * Added some better info printing for client during connecting.
1543 Affected file silcd/server_util.c.
1545 * Implemented the SILC_CHANNEL_UMODE_QUIET mode that can be used
1546 to silence a user on a channel. Affected files are
1547 lib/silcclient/client_channel.c, irssi/src/silc/core/client_ops.c,
1548 irssi/src/fe-common/silc/module-formats.[ch], silcd/command.c
1549 and silcd/packet_receive.c.
1551 * Fixed a fatal bug in handling of malformed command payload.
1552 Affected file silcd/command.c.
1554 * Fixed a double free when announcing channel users to router.
1555 Affected file silcd/server.c.
1557 * After successful authentication to channel founder mode, check
1558 that there isn't anyone else with founder mode on the channel.
1559 The one that authenticated will become founder and anyone
1560 else is demoted. Affected file silcd/command.c.
1562 * Added error printing of any error that has occurred during
1563 any command in client library. Affected file is
1564 irssi/src/silc/core/client_ops.c.
1566 * Removed some error printing from the client library and left
1567 it for the application to worry (from the error status it
1568 receives in 'command' client operation. Affected file is
1569 lib/silcclient/command.c.
1571 Fri Jun 14 22:59:02 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
1573 * Added new status types KEY_AGREEMENT_ALREADY_STARTED and
1574 KEY_AGREEMENT_SELF_DENIED to lib/silcclient/silcclient.h.
1575 Starting key agreement with itself is denied. Affected file
1576 is lib/silcclient/client_keyagr.c.
1578 * Fixed some error checkings from the SFTP library which caused
1579 misbehaviour. Affected files are lib/silcsftp/sftp_client.c
1580 and lib/silcsftp/sftp_util.c.
1582 * Added new "debug" and "debug_string" settings to Irssi SILC
1583 client which can be used to print runtime debugging on the
1584 Irssi's screen. Available when compiled with --enable-debug
1585 option. Affected file irssi/src/silc/core/silc-core.c.
1587 Tue Jun 11 16:36:02 CEST 2002 Johnny Mnemonic <johnny@themnemonic.org>
1589 * Fixed a missing variadic parameter in a function call that
1590 caused server crash when a non-allowed connection arrived.
1591 Reported by Richard Becker. Affected file silcd/server.c.
1593 Mon Jun 10 16:29:42 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
1595 * Added WATCH list sending to backup routers from router.
1596 The WATCH command is sent by the router to the backup
1597 router. Affected file silcd/command.c.
1599 * Mark the backup_router flag for RouterConnection entry
1600 if the backup router stuff is defined in the config file.
1601 Affected file silcd/serverconfig.c.
1603 * Fixed some backup data sending around the code to work better
1604 if the router is standalone router. Not all places were fixed.
1605 Affected file silcd/packet_receive.c, silcd/packet_send.c,
1608 * Fixed the router connecting when connecting to multiple
1609 routers. It ignored every other router except the first
1610 one. Affected file silcd/server.c.
1612 Mon Jun 10 09:28:21 CEST 2002 Pekka Riikonen <priikone@silcnet.org>
1614 * Made the private key generation after expiration optional.
1615 If not created after expiration the old key will re-expire
1616 at a later time (and thus key pair is not necessary to
1617 change). Affected file irssi/src/silc/core/clientutil.c.
1619 Sun Jun 9 18:58:25 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
1621 * The length arguments in bind() and connect() were wrong
1622 and fixed now to used SIZEOF_SOCKADDR in the
1623 lib/silcutil/unix/silcunixutil.c.
1625 Tue Jun 4 18:36:05 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
1627 * Fixed detach timeout handling to use Client ID and not
1628 the actual client entry which may be freed in the callback.
1629 Affected file silcd/command.c.
1631 Thu May 30 15:53:45 CEST 2002 Pekka Riikonen <priikone@silcnet.org>
1633 * Merged c0ffee's multiple interface support patch.
1634 Affected files in silcd/.
1636 Wed May 29 18:08:15 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
1638 * Cleanup keys properly. Affected file is
1639 irssi/src/silc/core/clientutil.c.
1641 Tue May 28 20:11:41 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
1643 * Display the user mode on the status bar. Affected file
1644 irssi/src/silc/core/silc-expandos.c.
1646 Tue May 28 13:56:26 CEST 2002 Pekka Riikonen <priikone@silcnet.org>
1648 * If private message key is not set, but the flag is set in
1649 the packet, ignore the packet since it cannot be decrypted.
1650 Affected file lib/silcclient/client_prvmsg.c.
1652 Thu May 23 12:00:14 CEST 2002 Pekka Riikonen <priikone@silcnet.org>
1654 * When resuming client, remove the old client entry from
1655 the watcher list too. Affected file silcd/packet_receive.c.
1657 * Do not allow normal server to force founder mode away
1658 from router if the founder mode is already set. Affected
1659 file silcd/packet_receive.c.
1661 * Remove the client entry with watch notify types with short
1662 timeout, and not directly, so that other notifys can be
1663 retrieved too. Affected file lib/silcclient/client_notify.c.
1665 * Display notification about data messages that cannot be
1666 displayed. Affected files irssi/src/silc/core/client_ops.c,
1667 irssi/src/fe-common/silc/module-formats.[ch].
1669 Sun May 19 18:59:00 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
1671 * Fixed the CHANNEL_CHANGE notify handling in client libary
1672 to not use freed memory. Affected file is
1673 lib/silcclient/client_notify.c.
1675 * Fixed CUMODE_CHANGE notify handling in server. Affected
1676 file silcd/packet_receive.c.
1678 * Fixed USERS command to support empty channels. Affected
1679 file silcd/command.c.
1681 Sat May 18 11:35:19 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
1683 * Allow multiple identical pending commands to be registered
1684 in client library. Affected file is lib/silcclient/command.c.
1686 * Call the completion for resolving client information only
1687 after all resolvers has finished. This fixes a crash in
1688 the client. Added support for checking when the resolvers
1689 are finished. Affected file is lib/silcclient/idlist.c.
1691 * Wait by default 3 seconds before reconnecting to the server
1692 after being disconnected. Makes the /detach command a bit
1695 Fri May 17 17:23:45 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
1697 * Check the watcher list before sending signoff notifys
1698 when closing client connection. Affected file is
1701 * Added better CMODE command rights checking. Affected file
1702 silcd/server_util.c.
1704 Fri May 17 08:33:41 CEST 2002 Pekka Riikonen <priikone@silcnet.org>
1706 * Fixed watcher list checking during server signoff. It
1707 crashed the server. Affected file silcd/server_util.c.
1709 * The JOIN command reply returns now the founder's public
1710 key. Affected file is silcd/command.c.
1712 * Announce the channel mode, and the mode properties with
1713 CMODE_CHANGE notify. Affected file silcd/server.c.
1715 * Mark new channels by default disabled, untill at least
1716 one user joins the channel. Affected file is
1717 silcd/packet_receive.c.
1719 Thu May 16 13:05:13 CEST 2002 Pekka Riikonen <priikone@silcnet.org>
1721 * The nickname argument to watch notify can be optional.
1722 Fixes a crash in server. Affected file silcd/packet_send.c.
1724 * Remove the client entry from cache if the WATCH notify type
1725 is KILLED, SERVER_SIGNOFF or SIGNOFF. Affected file is
1726 lib/silcclient/client_notify.c.
1728 * Check the watcher list before and after changing nickname
1729 when the NICK_CHANGE notify is received. Affected file is
1732 * Fixed a crash in OPER and SILCOPER command sending. Empty
1733 passphrase caused the crash. Affected file is
1734 lib/silcclient/command.c.
1736 Wed May 15 19:01:42 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
1738 * Merged with Irssi CVS for Irssi SILC client.
1740 Tue May 14 19:37:48 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
1742 * Completed the protocol specifications.
1744 Tue May 7 20:41:58 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
1746 * Merged with Irssi CVS for Irssi SILC client.
1748 Tue May 7 11:07:16 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
1750 * Added the founder's public key delivery to the
1751 CUMODE_CHANGE notify type as well. Updated the protocol
1752 specs and the code. Affected files are silcd/packet_send.[ch],
1753 silcd/packet_receive.c and silcd/command.c.
1755 Mon May 6 19:46:12 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
1757 * Added silc_pkcs_public_key_copy function into the
1758 lib/silccrypt/silcpkcs.[ch].
1760 * Remove the `iv' from the SilcChannelEntry since we can
1761 live without it. Affected files are silcd/idlist.h and
1762 silcd/packet_receive.c.
1764 * Added support for sending the founder's public key in
1765 the CMODE_CHANGE notify packet in the server. Affected
1766 files are silcd/packet_send.[ch], silcd/packet_receive.c,
1767 silcd/command.c and silcd/server.c.
1769 * Changed the FOUNDER_AUTH authentication to use only
1770 public key authentication as defined by new protocol
1771 specs. Passphrase authentication with that mode cannot
1772 be used anymore. It is now possible to reclaim founder
1773 mode from any server in the network. Affected files are
1774 silcd/command.c, silcd/idlist.h and silcd/command_reply.c.
1776 * Added permanent channels support by making the channel
1777 permanent when FOUNDER_AUTH mode is set on the channel.
1778 The channel will not be destroyed even if channel is empty
1779 when that mode is set. Protocol TODO #17. Affected
1780 files are silcd/server.[ch], server_util.[ch],
1781 silcd/command.c, silcd/packet_receive.c and
1782 lib/silcclient/command.c.
1784 Fri May 3 18:36:51 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
1786 * Added reference counter to the command reply context in
1787 the client library. Affected files are
1788 lib/silcclient/command_reply.[ch].
1790 Fri May 3 11:37:10 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
1792 * Fixed rekey protocol with PFS in the client library.
1793 Affected file is lib/silcclient/protocol.c.
1795 * Added support for list of errors in client library
1796 command reply handling. Affected file is
1797 lib/silcclient/command_reply.c.
1799 * Defined that the WHOIS and IDENTIFY commands can send
1800 list of errors. Updated the protocol specs. Protocol
1803 * Added support for sending list of errors to WHOIS and
1804 IDENTIFY commands in server. Added support for receiving
1805 list of errors in server. Affected files are
1806 silcd/command.c and silcd/command_reply.c.
1808 * Fixed client info resolving on LEAVE command in client
1809 library to not crash. Affected file is
1810 lib/silcclient/client_notify.c.
1812 Thu May 2 08:45:11 CEST 2002 Pekka Riikonen <priikone@silcnet.org>
1814 * Defined that the NICK command replies with thew changed
1815 nickname too, to make the nickname changing simpler at
1816 the client's end. Updated protocol specs and the code
1817 in client and server. Affected files are
1818 silcd/command.c, lib/silcclient/command_reply.c and
1819 lib/silcclient/command.c.
1821 Mon Apr 29 20:10:42 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
1823 * Added `Compressed' packet flag to indicate that the packet
1824 payload is compressed by the sender. Updated the protocol
1825 specs and the core library. The compression still is not
1826 implemented in the sources. Affected file is
1827 lib/silccore/silcpacket.h.
1829 Mon Apr 29 09:48:12 CEST 2002 Pekka Riikonen <priikone@silcnet.org>
1831 * Remove pending command callbacks also if the connection
1832 to the server is destroyed. Affected file is
1833 lib/silcclient/client.c.
1835 Sat Apr 27 19:52:32 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
1837 * Added new QUIET channel user mode that can be used to
1838 quiet a user in a channel. Updated the protocol specs but
1839 it wasn't implemented yet. Protocol TODO #27. Affected
1840 file is lib/silccore/silcmode.h.
1842 Mon Apr 22 09:09:44 CEST 2002 Pekka Riikonen <priikone@silcnet.org>
1844 * Added BLOCK_INVITE user mode to be able to block incoming
1845 invite notifications. Protoocol TODO #26. Affected files
1846 are lib/silccore/silcmode.h, lib/silcclient/command.c and
1849 * SILC Publickey fields MUST be UTF-8 encoded now. Updated
1850 the protocol specs and the code. Affected file is
1851 lib/silccrypt/silcpkcs.c.
1853 Sun Apr 21 19:44:38 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
1855 * Disconnect Payload includes now the status type. Updated
1856 the protocol specs and the code. Protocol TODO #25.
1857 Affected files are silcd/server.c, lib/silcclient/client.c.
1859 * Added NOT_AUTHENTICATED, BAD_SERVER_ID, INCOMPLETE_INFORMATION,
1860 KEY_EXCHANGE_FAILED and BAD_VERSION error status types.
1861 Moved the silc_client_command_status_messages table to the
1862 lib/silcutil/silcutil.c and added new funtion
1863 silc_get_status_message, which deprecates function
1864 silc_client_status_message. Affected files are
1865 lib/silccore/silcstatus.h, lib/silcclient/command_reply.[ch],
1866 lib/silcutil/silcutil.[ch].
1868 Fri Apr 19 17:35:15 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
1870 * Defined that the nickname hash in Client ID MUST be from
1871 lowercase nickname. This effectively changes nicknames in
1872 SILC to case-insensitive. Updated the protocol specs and
1873 the code. Affected files are lib/silcutil/silcutil.[ch],
1874 silcd/serverid.c, and silcd/idlist.c.
1876 * Added new channel user modes BLOCK_MESSAGES_USERS and
1877 BLOCK_MESSAGES_ROBOTS. Updated the protocol specs and the
1878 code. Affected files are lib/silccore/silcmode.h,
1879 lib/silcclient/command.c, and silcd/packet_send.c.
1881 * Added new error status ERR_RESOURCE_LIMIT. Updated protocol
1882 specs and code. Affected file lib/silccore/silcstatus.h.
1884 * Added support for watch list. It is possible to add nicknames
1885 to be watched, and when they come to network, leave network
1886 or user mode changes the watcher will be notified of this
1887 change. Added SILC_COMMAND_WATCH command, added new
1888 notify type SILC_NOTIFY_TYPE_WATCH to deliver the watch
1889 notifications. Updated the protocol specs and implemented
1890 this to library, client and server. Protocol TODO #21.
1891 Affected files are lib/silccore/silccomand.h,
1892 lib/silccore/silcnotify.h, lib/silcclient/command[_reply].[ch],
1893 silcd/command[_reply].[ch], lib/silcclient/client_notify.c,
1894 silcd/packet_send.[ch], silcd/packet_receive.c, and
1895 irssi/src/silc/core/client_ops.c.
1897 * Added user mode SILC_UMODE_REJECT_WATCHING to reject
1898 somebody watching you. Updated the protocol specs and the
1899 code. Affected files are lib/silccore/silcmode.h, and
1900 lib/silcclient/command.c.
1902 Fri Apr 19 09:02:20 CEST 2002 Pekka Riikonen <priikone@silcnet.org>
1904 * Added service support to SILC protocol. Added new command
1905 SILC_COMMAND_SERVICE. Updated the protocol specs and the
1906 core library. Services are not implemented in server or
1907 client for now. Protocol TODO #20. Affected files are
1908 lib/silccore/silcstatus.h, lib/silccore/silccommand.h.
1910 * Added SilcStatus argument to `command' client operation
1911 to return the error status when command sending fails
1912 locally. Changed all command in client library to return
1913 correct command status. Affected files are
1914 lib/silcclient/command.c, lib/silcclient/silcclient.h and
1915 irssi/src/silc/core/client_ops.c.
1917 Thu Apr 18 14:09:51 CEST 2002 Pekka Riikonen <priikone@silcnet.org>
1919 * Added silc_mime_parse function to parse MIME headers.
1920 Affected files are lib/silcutil/silcstruti.[ch].
1922 * Added MIME header parsing in Irssi SILC Client. It displays
1923 all textual MIME objects, others it ignores. Affected file
1924 is irssi/src/silc/core/clien_ops.c.
1926 Wed Apr 17 22:07:59 CEST 2002 Johnny Mnemonic <johnny@themnemonic.org>
1928 * Fixed a bug in the pid writing function, which couldn't be
1929 written in a root-owned directory.
1931 Tue Apr 16 09:34:40 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
1933 * Defined that channel message to unknown Channel ID must
1934 cause SILC_NOTIFY_TYPE_ERROR notify message to the sender.
1935 Updated the protocol specs and the code in server. The
1936 affected file is silcd/packet_receive.c.
1938 Mon Apr 15 19:57:57 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
1940 * Added new notify type SILC_NOTIFY_TYPE_ERROR and specified
1941 that it is used to send error notifys if error occurs during
1942 some SILC packet processing, except commands. The error
1943 types are same as for command reply types. Defined that
1944 if private message is sent to unknown Client ID the error
1945 is sent in SILC_NOTIFY_TYPE_ERROR instead of command reply.
1946 Updated the protocol specs and code. Affected files are
1947 lib/silccore/silcnotify.h, added lib/silccore/silcstatus.h,
1948 lib/silcclient/client_notify.c, silcd/packet_receive.c,
1949 and irssi/src/silc/core/client_ops.c. Renamed the
1950 SilcCommandStatus to SilcStatus.
1952 * Defined the use of extra WHOIS attributes in WHOIS command.
1953 The <Requested Attributes> (defined in a separate document)
1954 can be used to request additional information about user
1955 not returned by standard WHOIS command. Defined that server
1956 can send WHOIS command directly to client. Client provides
1957 the requested attributes to the server. Updated the protocol
1958 specs. Protocol TODO #4. Implementation is not done yet
1959 (Protocol TODO #24).
1961 * Renamed function silc_client_command_status_message to
1962 silc_client_status_message. Affected files are
1963 lib/silcclient/command_reply.[ch].
1965 Sun Apr 14 21:13:42 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
1967 * Changed the WHOIS, IDENTIFY and WHOWAS count arguments to
1968 32 bit integers. Updated the protcol specs and the code.
1969 Affected files are silcd/command.c and
1970 lib/silcclient/command.c.
1972 Sun Apr 14 19:49:02 CEST 2002 Johnny Mnemonic <johnny@themnemonic.org>
1974 * Fixed a bug in library where sending a bogus authentication
1975 payload would lead to a crash. Affected file is
1976 lib/silccore/silcauth.c.
1978 Sat Apr 13 13:09:24 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
1980 * Added detach_disabled and detach_timeout server config
1981 options to the server. Affected files silcd/serverconfig.[ch],
1982 silcd/command.c and silcd/packet_receive.c.
1984 Fri Apr 12 20:09:08 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
1986 * Added resolve_cmd_ident field to the SilcClientEntry structure
1987 too so that if the entry is for example being resolved so
1988 another command may attach to the same pending command reply
1989 without requiring to resolve the same entry again. Added
1990 support for adding multiple pending commands for one
1991 command idenfier. Affected files lib/silcclient/command.[ch],
1992 lib/silcclient/command_reply.[ch], lib/silcclient/idlist.h.
1994 Fri Apr 12 10:17:51 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
1996 * Defined that server receives WHOIS command reply for private
1997 and secret channels too. Updated protocol specs and the
1998 code in server. Affected file silcd/command.c.
2000 * Defined <channel user mode list> argument to WHOIS command
2001 reply for returning user modes on the channels. The
2002 channel list now doesn't include the user mode anymore but the
2003 actual channel mode. Updated protocol specs and the code in
2004 client and server. Affected files are silcd/command_reply.c,
2005 silcd/command.c, silcd/server.c, irssi/src/silc/core/client_ops.c,
2006 and lib/silcclient/command_reply.c.
2008 * Save the channels list in WHOIS command reply in normal server
2009 so that WHOIS always shows joined channels also in normal
2010 server and not just on router. Affected file is
2011 silcd/command_reply.c.
2013 Thu Apr 11 22:29:33 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
2015 * Defined that server receives USERS command reply for private
2016 and secret channels too. Updated protocol specs and the
2017 code in server. Affected file silcd/command.c.
2019 Thu Apr 11 16:32:08 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
2021 * Changed the UMODE's mode mask argument to be optional. If
2022 not provided then the command merely returns the current mode
2023 mask to the client. Updated protocol specs and the server.
2024 Affected file is silcd/command.c.
2026 * Added SILC session detachment/resuming support. It is possible
2027 to detach by closing the network connection and then re-connect
2028 and resume to the old client session. Added DETACHED user
2029 mode that server will set for detached client. Added new
2030 packet RESUME_CLIENT which is used to perform the resuming
2031 process. Added DETACH command. Updated the protocol specs,
2032 core library, client and server. Protocol TODO #22. Very
2033 many affected files around the tree.
2035 Wed Apr 10 16:32:01 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
2037 * Changed the CMODE's mode mask argument to be optional. If
2038 not provided then the command merely returns the current mode
2039 mask to the client. Updated protocol specs and the server.
2040 Affected file is silcd/command.c.
2042 * Changed the Killer's Client ID in KILLED notify to be just
2043 any ID payload since router server is allowed to kill as well.
2044 Updated protocol specs, client libary and server. Affected
2045 files are lib/silcclient/client_notify.c, silcd/packet_receive.c,
2046 and irssi/src/silc/core/client_ops.c.
2048 Tue Apr 9 17:15:42 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
2050 * Added new user modes ANONYMOUS for special anonymous servers
2051 that may set the mode for client, and BLOCK_PRIVMSG which
2052 client may set to block incoming private messages unless the
2053 Private Message Key flag is set (using private keys to protect
2054 private messages). Updated protocol specs and code in client
2055 and server and core library. Protocol TODO #23. Affected
2056 files are lib/silccore/silcmode.h, silcd/server.[ch],
2057 irssi/src/silc/core/client_ops.c, silcd/packet_receive.c,
2058 irssi/docs/help/in/umode.in, lib/silcclient/command.c.
2060 * Added new channel user mode BLOCK_MESSAGES which the client
2061 may set to itself to tell server not send channel messages.
2062 Other packets such as channel key packets are still sent.
2063 Protocol TODO #23. Updated the protocol specs, client and
2064 server. Affected files are lib/silccore/silcmode.h,
2065 irssi/docs/help/in/cumode.in, lib/silcclient/command.c,
2066 lib/silcutil/silcutil.c, silcd/command.c, and
2067 silcd/packet_send.c.
2069 Mon Apr 8 23:57:32 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
2071 * Redefined the Status Payload to include now two 8 bit fields,
2072 instead of one 16 bit field. This now makes it possible to
2073 send list of errors. Updated the protocol specs and the code
2074 in core library, client library and server. Protocol TODO #1.
2075 Affected files are lib/silccore/silccommand.[ch],
2076 lib/silcclient/command_reply.[ch], silcd/command.c,
2077 silcd/command_reply.c and silcd/packet_receive.[ch].
2079 Mon Apr 8 19:57:40 CEST 2002 Johnny Mnemonic <johnny@themnemonic.org>
2081 * Added config parse status SILC_CONFIG_EPRINTLINE, this status
2082 must be handled by the application and should tell the application
2083 that an error message was already printed, and it should print the
2084 config coords (line, filename, ...). Affected files are
2085 silcd/serverconfig.c, lib/silcutil/silcconfig.[ch].
2087 * Added local macro SILC_SERVER_CONFIG_ALLOCTMP to make the
2088 server config parsing code more readable.
2090 Fixed a bug in the fetch_logging() config callback.
2092 Affected files is silcd/serverconfig.c.
2094 * Drop root privileges when started in foreground. Don't drop them
2095 if debugging also. Affected file is silcd/silcd.c.
2097 Mon Apr 8 17:00:41 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
2099 * Added more IM-like features by introducing new user modes
2100 for setting various presence information. Added new modes:
2101 INDISPOSED, BUSY, PAGE, HYPER and ROBOT. Updated protocol
2102 specs and code. Protocol TODO #19. Affected files are
2103 lib/silccore/silcmode.h, irssi/src/silc/core/client_ops.c,
2104 irssi/docs/help/in/umode.in and lib/silcclient/command.c.
2106 Sun Apr 7 17:07:59 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
2108 * Added STATS command to the protocol after all, to return
2109 various statistical information about the network. It can
2110 be used by clients to retrieve statistical information, and
2111 servers may use it to to fetch cell and network wide
2112 statistics from router. Updated the protocol specs and
2113 implemented it to the server. Protocol TODO #16.
2114 Affected files are lib/silccore/silccommand, silcd/command.[ch],
2115 silcd/command_reply.[ch].
2117 Sat Apr 6 17:08:58 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
2119 * The LIST command reply in client libary now adds new channel
2120 entry if the returned channel doesn't exist yet in cache,
2121 and returns the channel entry to the application in the
2122 command_reply client operation. Affected file is
2123 lib/silcclient/command_reply.c.
2125 * Changed the channel message payload's MAC generation to
2126 include the IV in the MAC as well. This way all relevant
2127 parts of the channel message payload are authenticated also
2128 with the channel message MAC (and not only by packet MAC).
2129 Causes incompatibility with 1.0 protocol. Protocol TODO #7.
2130 Affected file is lib/silccore/silcchannel.c.
2132 * Fixed the SKE to save the remote version, since the
2133 silc_ske_parse_version mistakenly checked wrong version,
2134 after it replaced the start payload. Affected files are
2135 lib/silcske/silcske.[ch].
2137 Fri Apr 5 16:03:03 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
2139 * Splitted lib/silcutil/silcutil.h into silcstrutil.h for
2140 string utility functions. Added there also new functions
2141 silc_utf8_[encode/decode/valid] for UTF-8 string encoding.
2142 Affected files lib/silcutil/silcstrutil.[ch].
2144 * Renamed silc_*_pem functions to silc_pem_* functions. Affected
2145 files are lib/silcutil/silcstrutil.[ch].
2147 * Defined that the security property fields in SKE SHOULD be
2148 UTF-8 encoded, defined that version string MUST be US-ASCII
2149 encoded, defined that passphrases sent in connection
2150 authentication protocol MUST be UTF-8 encoded. Implemented
2151 these to the client and server. Defined also that other
2152 passphrases sent in the protocol MUST be UTF-8 encoded.
2153 Affected files are lib/silcske/silcske.c,
2154 lib/silcclient/protocol.c, silcd/protocol.c,
2155 silcd/serverconfig.c, and lib/silccore/silcauth.c.
2157 * Changed the silc_client_close_connection interface to not
2158 need the SilcSocketConnection which should not be visible
2159 to application. Affected files are lib/silcclient/client.c
2160 and lib/silcclient/silcclient.h.
2162 * Rewrote the text for Private Message Key Payload in the
2163 protocol specification. Protocol TODO #11.
2165 Wed Apr 3 16:24:51 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
2167 * Upgraded the protocol version to 1.1, updated protocol specs
2170 * Added the nickname as new argument to NICK_CHANGE notify and
2171 added it to protocol specs and implemented it to client and
2172 server. Protocol TODO #3. Affected files are silcd/idlist.[ch],
2173 silcd/command.c, silcd/packet_receive.c, packet_send.[ch], and
2174 lib/silcclient/client_notify.c.
2176 * Added the killer's client ID to the KILLED notify and added
2177 it to protocol specs and implemented it to client and server.
2178 Protocol TODO #13. Affected files are silcd/command.c,
2179 silcd/packet_receive.c, packet_send.[ch],
2180 lib/silcclient/client_notify.c, irssi/src/silc/core/client_ops.c.
2181 The killer's client entry is now returned to application in
2182 the `notify' client operation.
2184 * Fixed the Max Argument fields that had too large value set
2185 in the protocol specs. Protocol TODO #14.
2187 * Added the LEAVE command reply to return the ID of parted
2188 channel. Updated protocol specs and implemented it to the
2189 client and server. Protocol TODO #15. Affected files are
2190 silcd/command.c, lib/silcclient/command_reply.c. The channel
2191 entry is now returned to application in the `command_reply'
2194 * Rewrote the version SKE version checking in client libary
2195 and in server to use the silc_parse_version_string. Affected
2196 files are lib/silcclient/protocol.c, silcd/protocol.c.
2198 * Added SILC_STATUS_ERR_NO_CHANNEL_FOPRIV error status to few
2199 commands that was missing it, and updated protocol specs and
2200 the server implementation. Protocol TODO #10. The affected
2201 file is silcd/command.c.
2203 * Defined new message flags SILC_MESSAGE_FLAG_REPLY to be
2204 generic reply to a generic request (REQUEST flag), and
2205 SILC_MESSAGE_FLAG_DATA to send any kind of data in a generic
2206 way. A draft-riikonen-silc-flags-payloads-00.txt is written
2207 to define the payload for DATA flag. Added the flags to
2208 the implementation. Protocol TODO #9. Affected file is
2209 lib/silccore/silcchannel.h.
2211 Changed the client library to return the message length
2212 to application as well in the channel_message and private_message
2213 client operations. Affected files are
2214 lib/silcclient/client_prvmsg, lib/silcclient/client_channel.c,
2215 lib/silcclient/silcclient.h, irssi/src/silc/core/client_ops.c,
2216 and lib/silcclient/client_ops_example.c.
2218 * Added two new channel modes: SILC_CMODE_SILENCE_USERS
2219 and SILC_CMODE_SILENCE_OPERS which can be used to moderate
2220 the channel. Updated protocol specs and impelemented this
2221 to client and server. Protocol TODO #6. Affected files are
2222 silcd/packet_receive.c, server_util.c, lib/silcclient/command.c,
2223 lib/silcclient/client_channel.c, lib/silccore/silcmode.h.
2225 Added new options m and M to CMODE command in Irssi SILC
2226 client to set these modes.
2228 * Deprecated all administrative commands from SILC protocol
2229 since they are highly implementation specific commands.
2230 Updated protocol specs. Moved the old commands in
2231 implementations to private range of command types. Affected
2232 files are silcd/command.c, lib/silcclient/command.c and
2233 lib/silcclient/command_reply.c. Protocol TODO #8.
2235 * Fixed a bug in server where sending unknown command crashes
2236 the server. Affected file silcd/command.c.
2238 Wed Apr 3 09:57:47 CEST 2002 Pekka Riikonen <priikone@silcnet.org>
2240 * Added SILC_PROTOCOLVERSION macro to check protocol version
2241 of a socket connection. The affected file is
2242 lib/silcutil/silcsockconn.h.
2244 * Added better error logging in rekey protocol. Affected file
2247 * Do not check public key types in SKE during rekey. Affected
2248 file lib/silcske/payload.c.
2250 * Fixed the rekey protocol with PFS, which was totally broken.
2251 Affected file silcd/protocol.c.
2253 Tue Apr 2 14:55:06 CEST 2002 Pekka Riikonen <priikone@silcnet.org>
2255 * Some client implementations quit network by doing first LEAVE
2256 and then immediately SIGNOFF (like Bombyx). We now do check
2257 after a short time after LEAVE notify and check whether the
2258 client is still valid after LEAVE, and if not we remove it from
2259 cache. Affected file is lib/silcclient/client_notify.c.
2261 Tue Apr 2 13:39:04 CEST 2002 Johnny Mnemonic <johnny@themnemonic.org>
2263 * Merged version 1.1.4 of zlib. Even if it not currently in use,
2264 it's good not to have security holes here.
2266 * Fixed a negative refcount situtuation for the config context.
2267 Affected file is silcd/serverconfig.c.
2269 Mon Apr 1 20:15:10 CEST 2002 Johnny Mnemonic <johnny@themnemonic.org>
2271 * ROBOdoc documented lib/silcutil/silcutil.h.
2273 Sat Mar 30 21:06:45 EET 2002 Pekka Riikonen <priikone@silcnet.org>
2275 * Optimized even more the SilcPacketContext structure. Now
2276 totally saved 16 bytes of memory per context after optimization.
2277 Affected files are lib/silccore/silcpacket.[ch].
2279 * Made strict checks for valid SILC IDs. Affected file is
2280 lib/silccore/silcid.c.
2282 Sat Mar 30 18:15:55 EET 2002 Pekka Riikonen <priikone@silcnet.org>
2284 * Changed the object argument for silc_cipher_register,
2285 silc_hash_register, silc_hmac_register and silc_pkcs_register
2286 to const. Affected files are lib/silccrypt/silccipher.[ch],
2287 silchash.[ch], silchmac.[ch] and silcpkcs.[ch].
2289 * Changed the silc_get_username and silc_get_real_name to
2290 never fail. Affected file lib/silcutil/unix/silcunixutil.c.
2292 * Fixed the Irssi SILC Client to use the silc_get_username and
2293 silc_get_real_name insted of glib routines since the glib
2294 routines only corrupt stack. Fixes the Irssi SILC to work in
2295 Cygwin. Affected file irssi/src/silc/core/silc-core.c.
2297 * Fixed the Irssi to not use g_get_home_dir since it crashes
2298 or returns garbage on cygwin and corrupts stack. Added function
2299 get_home_dir to Irssi routines. Affected files are
2300 irssi/src/core/misc.[ch] and irssi/src/core/core.c.
2302 Fri Mar 29 21:55:41 EET 2002 Pekka Riikonen <priikone@silcnet.org>
2304 * Made some structure optimizations. SFTP memory FS MemFSEntry
2305 entry structure. Optimized SilcTask structure. Optimized
2306 SilcPacketContext structure.
2308 Affected files lib/silcsftp/sftp_fs_memory.c,
2309 lib/silcutil/silcschedule.c, lib/silccore/silcpacket.h.
2311 Fri Mar 29 10:41:07 EET 2002 Pekka Riikonen <priikone@silcnet.org>
2313 * And yet again reverted back the config thing since Johnny
2314 screwed it up. Affected file silcd/serverconfig.[ch], server.c,
2317 * Fixed memory leaks from config object. Affected files are
2318 silcd/serverconfig.[ch].
2320 * Added support for adding new connections to the server in rehash.
2321 After rehash they take effect.
2323 Added support for changing the maximum allowed connections in
2324 rehash. The number can grow but going smaller is not supported.
2326 Added function silc_server_num_sockets_by_remote to the
2327 silcd/server_util.[ch].
2329 Affected files are silcd/server.c, and silcd/serverconfig.[ch].
2331 Fri Mar 29 03:26:12 CET 2002 Johnny Mnemonic <johnny@themnemonic.org>
2333 * Added preliminary checking during config parsing for a valid
2334 public/private key and removed further checks in the code.
2335 Affected files are silcd/serverconfig.[ch], server.c.
2337 * Moved functions silc_server_drop() and silc_server_daemonise()
2338 from server.c to silcd.c since they are stricly related to
2339 the application activity.
2341 * Reverted a small part of the automatic ref/unref since
2342 it caused a double unref in some situations. Affected
2343 files are silcd/silcd.[ch], server.c, serverconfig.c.
2345 * Added some .cvsignore files in the lib directory.
2347 Thu Mar 28 22:51:15 EET 2002 Pekka Riikonen <priikone@silcnet.org>
2349 * Fixed silc_net_gethostbyaddr to correctly resolve by
2350 address. Affected file lib/silcutil/silcnet.c.
2352 * Fixed the notify relaying to client. The HMAC to be used
2353 with relayed packets ws wrong and caused decryption failure
2354 at the client end. Affected file is silcd/packet_receive.c.
2356 Thu Mar 28 19:02:05 EET 2002 Pekka Riikonen <priikone@silcnet.org>
2358 * Created new branch silc_protocol_1_0_branch.
2360 * Reverted the silc_log_quick change in lib/silcutil/silclog.c.
2362 * Changed the silc_server_config_* routines to be SilcServer
2363 independent. They are now officially application specific code
2364 and not part of generic server implementation. Affected files
2365 are silcd/serverconfig.[ch], silcd/silcd.c, silcd/server.c.
2367 Thu Mar 28 17:01:43 EET 2002 Pekka Riikonen <priikone@silcnet.org>
2369 * Added automatic referencing of config context in the
2370 silc_server_config_alloc, and automatic unreferencing in the
2371 silc_server_config_destroy. Affected files are
2372 silcd/serverconfig.[ch], silcd/silcd.c.
2374 * Fixed the silc_log_quick handling in the logging routines.
2375 It didn't log quickly when it was TRUE. Affected file is
2376 lib/silcutil/silclog.c. Also the flush delay was set even
2377 if it was 0 in config file. Affected file is
2378 silcd/serverconfig.c.
2380 * Added support for changing key pair of the server in rehash.
2381 Affected file silcd/server.c.
2383 Thu Mar 28 12:17:21 CET 2002 Pekka Riikonen <priikone@silcnet.org>
2385 * Fixed the TOPIC_SET notify to not cras. It changed the topic
2386 too early, before getting the channel entry. Affected file
2387 is silcd/packet_receive.c.
2389 Thu Mar 28 09:58:16 CET 2002 Johnny Mnemonic <johnny@themnemonic.org>
2391 * Added functions silc_server_config_[ref/unref], these are used
2392 to prevent that the config object is destroyed.
2394 No longer directly affect global variables silc_log_quick and
2395 silc_log_delay, they are first cached inside the config object
2396 and then applied with silc_server_config_setlogfiles().
2398 silc_server_config_set_defaults() is now internal to
2399 serverconfig.c, there are no reasons to show this internal stuff
2402 Affected files are silcd/serverconfig.[ch].
2404 * Added macro SILC_SERVER_LOG_STDERR(), this should replace most
2405 fprintf's to stderr, since some code may be executed again after
2406 the server went into the background. Affected files are
2409 * Added rehash support. Added function silc_server_rehash() that
2410 will perform all the basic tasks of the rehashing procedure.
2412 * Added command line option `-x, --hexdump'. This will enable the
2413 SILC_LOG_HEXDUMP calls that are no longer enabled with `--debug'.
2414 The option `--hexdump' implies `--debug'.
2416 * Fixed a bad bug in the logging APIs (silcutil library) where
2417 the application would crash after calling silc_log_reset_all().
2419 Wed Mar 27 19:43:16 EET 2002 Pekka Riikonen <priikone@silcnet.org>
2421 * Fixed the KICKED notify handling in client library to
2422 correctly remove the channel and all entries from the
2423 channel when I was kicked. This bug crashed the client.
2425 Fixed yet another but in KICKED notify handling to remove
2426 the kicked client correctly from the channel.
2428 Affected file is lib/silcclient/client_notify.c.
2430 * Fixed a minor bug in looking up correct client entry
2431 in KICKED notify in server. Affected file is
2432 silcd/packet_receive.c.
2434 * Fixed the lib/silcmath/Makefile.am to include the MPI and GMP
2435 sources correctly to distribution. Fixes --with-gmp option.
2437 * Removed the manual rehashing from ID Cache, and changed it
2438 to use the SILC Hash Table's auto rehash feature. Affected
2439 file is lib/silccore/silcidcache.c.
2441 Wed Mar 27 00:07:11 EET 2002 Pekka Riikonen <priikone@silcnet.org>
2443 * Fixed a bug in the silc_client_nickname_format function that
2444 handles the multiple same nickname formatting. Two clients
2445 with same nickname caused problems after the first one left
2446 and rejoined. It didn't format the nickname correctly.
2447 Affected file is lib/silcclient/idlist.c.
2449 Tue Mar 26 19:33:03 CET 2002 Pekka Riikonen <priikone@silcnet.org>
2451 * Don't change the topic if olod topic is same as new one.
2452 Affected file is silcd/packet_receive.c.
2454 Mon Mar 25 21:11:35 EET 2002 Pekka Riikonen <priikone@silcnet.org>
2456 * Added cross-reference support to the SILC Documentation
2457 generator. All types across all HTML files are now cross-
2458 referenced. Affected files util/robodoc/generator.c and
2459 scripts/silcdoc/silcdoc.
2461 * Added file lib/silcutil/silctypes.h to include all the
2462 arithmetic type definitions and some macros. Removed
2463 includes/bitmove.h and moved macros to silctypes.h.
2465 Mon Mar 25 17:19:46 EET 2002 Pekka Riikonen <priikone@silcnet.org>
2467 * Merged bugfixes for Irssi SILC client from irssi.org CVS.
2469 Sun Mar 24 11:21:04 EET 2002 Pekka Riikonen <priikone@silcnet.org>
2471 * Added `type' argument to silc_id_payload_parse_id function which
2472 now returns the type of the ID to the sent pointer. Affected
2473 file is lib/silccore/silcid.[ch].
2475 * Added check for CMODE_CHANGE notify type that mode change is
2476 allowed by the sender. Affected file silcd/packet_receive.c.
2478 * Added check for CUMODE_CHANGE notify type that mode change is
2479 allowed by the sender. Affected file silcd/packet_receive.c.
2480 Added the ID type as CUMODE_CHANGE notify type as argument
2481 to the `notify' client operation. Affected files are
2482 lib/silcclient/client_notify.c, irssi/src/silc/core/client_ops.c.
2484 * Added function silc_client_add_server to the client library.
2485 Added support for resolving also channel and server info when
2486 received unknown entity in notify packet. Affected files are
2487 lib/silcclient/idlist.[ch], lib/silcclient/client_notify.c.
2489 * Added function silc_command_get_status to return the command
2490 status from the command reply's argument payload. Affected files
2491 are lib/silccore/silccommand.[ch].
2493 * Added check for KICKED notify type that the kicking is
2494 allowed by the client. Affected file silcd/packet_receive.c.
2496 * Created function silc_get_input which can be used to get input
2497 (echo on or off) from user on command line. Affected files are
2498 lib/silcutil/silcutil.[ch].
2500 Sat Mar 23 09:51:26 EET 2002 Pekka Riikonen <priikone@silcnet.org>
2502 * Optimized silc_server_packet_relay_to_channel function.
2503 Added new function silc_channel_message_payload_encrypt which
2504 can be called directly if channel message payload needs to
2505 be encrypted and is already encoded (no need to call _encode
2506 function). Packet relaying is now done by router without any
2507 extra memory allocations. Affected files are
2508 lib/silccore/silcchanel.[ch], silcd/packet_receive.c and
2509 silcd/packet_send.c.
2511 * Fixed the INVITE notify handling. It took wrong arguments
2512 as invite list and invite delete. Affected file is
2513 silcd/packet_receive.c.
2515 * Added check for TOPIC_SET notify type that the topic change is
2516 allowed by the client. Affected file silcd/packet_receive.c.
2518 * Added check for INVITE notify type that inviting is allowed by
2519 the client. Affected file silcd/packet_receive.c.
2521 * Changed the silc_server_client_on_channel to return the
2522 SilcChannelClientEntry as well. Moved the function
2523 silc_server_check_cmode_rights to server_util.[ch].
2524 Affected files are silcd/server_util.[ch], silcd/command.c.
2526 * Added function silc_server_check_umode_rights to check whether
2527 changing client's user mode is allowed. Added check for
2528 UMODE_CHANGE notify type that the umode change is allowed
2529 by the client. Affected files are silcd/server_util.[ch],
2530 silcd/packet_receive.c and silcd/command.c.
2532 Fri Mar 22 12:25:58 CET 2002 Pekka Riikonen <priikone@silcnet.org>
2534 * Fixed the SILC_PACKET_MAX_ID_LEN to actually be the max
2535 ID length. It ignored that ID can be IPv6 based as well.
2536 Affected file lib/silccore/silcpacket.h.
2538 * Fixed the silc_id_id2str and silc_id_str2id to take the
2539 IPv6 address offset's into consideration. Affecte file is
2540 lib/silccore/silcid.c.
2542 Thu Mar 21 20:44:13 EET 2002 Pekka Riikonen <priikone@silcnet.org>
2544 * Fixed the internal Unix scheduler functions to check for
2545 NULL context they may receive. The affected file is
2546 lib/silcutil/unix/silcunixschedule.c.
2548 Thu Mar 21 19:12:22 EET 2002 Timo Sirainen <tss@iki.fi>
2550 * Changed hardcoded ~/.silc paths to use get_irssi_dir() so you
2551 can specify different directory with --home command line
2552 parameter. Affected files irssi/src/silc/core/client_ops.c,
2555 * SILC-specific commands aren't now executed if the active server
2556 isn't of SILC-type, so there won't be problems with having
2557 IRC and SILC protocol support in same client. Affected files
2558 irssi/src/silc/core/silc-channels.c, silc-servers.c,
2561 Wed Mar 20 11:06:57 CET 2002 Pekka Riikonen <priikone@silcnet.org>
2563 * Improved the signal support in SILC Schedule. Added new
2564 function silc_schedule_signal_call which is used by application
2565 to mark a signal to be called. It is now safe to perform
2566 any kind of tasks in signal callbacks since it is guaranteed
2567 that the application specified signal callback is called
2568 after the signal is over. Affected files are
2569 lib/silcutil/silcschedule.[ch], lib/silcutil/*/silc*schedule.c.
2571 Tue Mar 19 20:42:41 EET 2002 Pekka Riikonen <priikone@silcnet.org>
2573 * Added `name' field to SilcChannelPrivateKey to represent
2574 application given name for the key. Moved also the context from
2575 lib/silcclient/idlist.h into lib/silcclient/silcclient.h.
2576 Added the `name' argument also to the function
2577 silc_client_add_channel_private_key.
2579 Added function silc_client_current_channel_private_key to set the
2580 current channel private key in use.
2582 Added "change" command to KEY command which can be used to change
2583 the current channel private key. Bound the command also to
2584 alt+K (Alt+Shift+k).
2586 Also affected files lib/silcclient/client_channel.c,
2587 irssi/src/docs/help/in/key.in, irssi/src/silc/core/silc-channel.c.
2589 Tue Mar 19 16:32:43 CET 2002 Pekka Riikonen <priikone@silcnet.org>
2591 * Added silc_rng_get_byte_fast function in to the
2592 lib/silccrypt/silcrng.[ch].
2594 * Changed the interface of silc_packet_assemble and the
2595 silc_packet_send_prepare. If silc_packet_assmble is now
2596 called the application does not call silc_packet_send_prepare
2597 because the library will call it automatically. These
2598 interfaces now also return a reference to the outgoing buffer
2599 which includes the assembled packet, which the application can
2600 use to encrypt the packet.
2602 Affected files are lib/silccore/silcpacket.[ch],
2603 lib/silcclient/client.c, client_channel.c client_prvmsg.c,
2604 silcd/packet_send.c, server_backup.c and packet_receive.c.
2606 * Fixed a packet sending bug on very high load, where outgoing
2607 packet queue wasn't handled correctly and packets got corrupted.
2608 Affected files are lib/silcutil/*/silc*sockconn.c,
2609 lib/silcclient/client.c and silcd/server.c.
2611 Mon Mar 18 21:00:41 EET 2002 Pekka Riikonen <priikone@silcnet.org>
2613 * Added macro SILC_PACKET_DATALEN which can be used during
2614 packet assembling to check whether the data to be added to
2615 the packet will fit to SILC_PACKET_MAX_LEN. If not the data
2616 len is truncated until it fits it.
2618 Added checks for maximum length of channel message payload and
2619 private message payload also.
2621 Added checks for maximum packet length in server and in
2624 Affected files are lib/silccore/silcpacket.h, silcd/packet_send.c,
2625 lib/silcclient/client.c, lib/silccore/silcchannel.c and
2626 lib/silccore/silcprivate.c, lib/silcclient/client_channel.c and
2627 lib/silcclient/client_prvmsg.c.
2629 Mon Mar 18 14:54:42 CET 2002 Pekka Riikonen <priikone@silcnet.org>
2631 * Added silc_server_packet_queue_purge call to the
2632 silc_server_disconnect_remote to assure that all data in the
2633 queue before disconnecting is sent to the network. Affected
2634 file silcd/server.c.
2636 Sun Mar 17 19:26:16 EET 2002 Pekka Riikonen <priikone@silcnet.org>
2638 * Added the deleting of server's own ID cache entry to the
2639 silc_server_free function. Free also everything else that
2640 has been allocated in silc_server_init. The affected file
2643 Sun Mar 17 15:44:56 EET 2002 Pekka Riikonen <priikone@silcnet.org>
2645 * Added functions silc_parse_version_string, silc_version_to_num,
2646 and silc_ske_parse_version to parse SILC protocol style version
2647 strings. Affected files lib/silcutil/silcutil.[ch] and
2648 lib/silcske/silcske.[ch].
2650 * Added new configuration params: version_protocol, version_software
2651 and version_software_vendor to specify what version the remote
2652 host must at least be to be able to connect to server. The vendor
2653 string can be regex matched too. Added new function
2654 silc_server_connection_allowed to check maximum number of allowed
2655 connections, and allowed versions for incoming connections.
2656 Affected files are silcd/server.c, server_util.[ch] and
2659 Sun Mar 17 10:24:50 EET 2002 Pekka Riikonen <priikone@silcnet.org>
2661 * Added preliminary support for signals in scheduler. The
2662 signals we care about are now blocked always when the scheduler
2663 is locked. This way we can synchronise the use of signal with
2664 scheduler. It is guaranteed that when signal occurs the scheduler
2665 is not locked, and thus new tasks can be safely added to the
2668 Renamed silc_schedule_wakeup_init and silc_schedule_wakeup_uninit
2669 to silc_schedule_internal_init and silc_schedule_internal_uninit.
2670 Added new platform specific routines
2671 silc_schedule_internal_signals_[un]block and
2672 silc_schedule_internal_signal_[un]register.
2674 Added new functions to SILC Schedule API:
2675 silc_schedule_signal_[un]register. Each signal that application
2676 is going to use should be registered to the scheduler.
2678 Affected files are lib/silcutil/silcschedule.[ch],
2679 lib/silcutil/*/silc*schedule.c.
2681 Sat Mar 16 22:39:23 EET 2002 Pekka Riikonen <priikone@silcnet.org>
2683 * Check for unauthenticated client and server in the
2684 silc_server_new_client and silc_server_new_server functions.
2685 Affected file silcd/packet_receive.c.
2687 * Added function silc_string_is_ascii to check whether given
2688 string is 7-bit ASCII string. Affected files are
2689 lib/silcutil/silcutil.[ch].
2691 * Added function silc_id_is_valid_server_id into the
2692 silcd/serverid.c and added checking for valid Server ID's in
2693 silc_server_new_server. The Server ID must always be based
2694 on the server's public IP address.
2696 * Added logging of DISCONNECT packet message in the server.
2697 Affected file silcd/server.c.
2699 Sat Mar 16 18:04:30 EET 2002 Pekka Riikonen <priikone@silcnet.org>
2701 * Changed all library interfaces that use Global RNG to also
2702 accept SilcRng as argument. Affected files are
2703 lib/silcclient/command.c, lib/silccore/silcauth.[ch],
2704 lib/silccore/silcchanel.[ch], lib/silcclient/client_channel.c,
2705 silcd/packet_send.c, lib/silccore/silcprivate.[ch],
2706 lib/silcmath/silcprimegen.c, lib/silcmath/silcmath.h, and
2707 lib/silccrypt/rsa.c.
2709 * Added function silc_pkcs_generate_key to the
2710 lib/silccrypt/silcpkcs.[ch] for applications so that they
2711 don't need to do pkcs->pkcs->init calls anymore.
2713 * Remove SilcSocketConnection from the SFTP API since it really
2714 wasn't needed there. The application has the information
2715 saved in its contexts anyway and the SFTP layer doesn't need
2716 know about it. Affected files lib/silcsft/silcsftp.h and
2717 lib/silcsftp/sftp_[server/client].c.
2719 * Rewrote the SILC SIM (modules) interface in lib/silcsim.[ch].
2720 The SilcSimContext is not SilcSim.
2722 * Fixed possible buffer overflows in silc_id_render in the
2723 lib/silcutil/silcutil.c.
2725 * On EPOC the global crypto module lists are not used at all
2726 in the crypto library. Added support for using the constant
2727 algorithm list on EPOC. Affected files are
2728 lib/silccrypt/silccipher.c, silchash.c, silchmac.c and
2731 * Fixed the handling of third parameter of KICKED notify, since
2732 it was mistakenly updated to SILC Protocol 1.0 even though it
2733 is to be included in 1.1. Since it is not in 1.0 it is not
2734 mandatory, and this fix now handles it only if it is provided,
2735 and it is not error if it is not provided. Affected file
2736 lib/silcclient/client_notify.c.
2738 Sat Mar 16 09:07:27 EET 2002 Pekka Riikonen <priikone@silcnet.org>
2740 * Handled CHANNEL_CHANGE notify (ignore it) in Irssi SILC
2741 client. Affected file irssi/src/silc/core/client_ops.c.
2743 * Merged with Irssi 0.8.4 from irssi.org CVS.
2745 Thu Mar 14 12:53:57 CET 2002 Pekka Riikonen <priikone@silcnet.org>
2747 * Check for valid socket connection in client entries before
2748 sending any messages. Fixes a crash, but doesn't fix some
2749 other underlaying bug that is lurking there. Affected
2750 file silcd/packet_send.c.
2752 Thu Mar 14 13:38:12 EET 2002 Timo Sirainen <tss@iki.fi>
2754 * $usermode, $cumode and $cumode_space expandos shouldn't do
2755 anything with non-SILC server records. Affected file
2756 irssi/src/silc/core/silc-expandos.c
2758 Wed Mar 13 21:38:26 EET 2002 Pekka Riikonen <priikone@silcnet.org>
2760 * Fixed the silc_net_check_[host/local]_by_sock to support
2761 IPv6 bound sockets as well. Now they can return IPv6 addresses
2762 as well. Affected file lib/silcutil/silcnet.c.
2764 * Fixed silc_net_addr2bin to correctly convert IPv6 addresses.
2765 Affected lib/silcutil/unix/silcunixnet.c.
2767 * Fixed ID rendering (at least on some platforms, not NetBSD)
2768 for IPv6 addresses. Affected file lib/silcutil/silcutil.c.
2770 Tue Mar 12 17:58:59 EET 2002 Pekka Riikonen <priikone@silcnet.org>
2772 * Added silc_hash_public_key and silc_hash_public_key_compare
2773 functions to be used with SilcHashTable. They can be used to
2774 hash public keys and compare public keys in hash table. Affected
2775 file lib/silcutil/silcutil.[ch].
2777 * Added support for specifying multiple public keys for Client
2778 connection section in server configuration file. This makes it
2779 possible to accept multiple public keys from same host, or to
2780 make a section that accepts any incoming host, and have the
2781 accepted public keys listed in the section.
2783 Added functions silc_sever_[find/get]_public_key, added the
2784 support for this actually to all connection sections but only
2785 the Client section is currently allowed to specify multiple
2788 Affected files are silcd/server.c, server_internal.h,
2789 command.c, protocol.c, server_util.[ch], packet_receive.c.
2791 Mon Mar 11 23:37:38 EET 2002 Pekka Riikonen <priikone@silcnet.org>
2793 * Merged Irssi 0.8.2 from irssi.org CVS.
2795 Sun Mar 10 23:34:48 CET 2002 Johnny Mnemonic <johnny@themnemonic.org>
2797 * If silc_debug is TRUE, also output standard logging messages
2798 to stderr with the debug output.
2800 Made silc_log_reset_all() flushing all channels before returning.
2801 Also fixed some documentation typos.
2803 Affected files are lib/silcutil/silclog.[ch].
2805 Sun Mar 10 20:07:49 EET 2002 Pekka Riikonen <priikone@silcnet.org>
2807 * Fixed the server to check correctly the amount of connections
2808 from single host, by checking also the type of the connection.
2809 Fixed also the comparison of number of connections and number
2810 of allowed connections. Affected files are silcd/server.c,
2813 Fri Mar 8 17:16:41 EET 2002 Pekka Riikonen <priikone@silcnet.org>
2815 * Fixed the USERS command reply to save the user's mode on the
2816 channel as well. Fixed JOIN command reply to check whether a
2817 client is on channel already and not join it twice. Affected
2818 file lib/silcclient/command_reply.c.
2820 * Added new file silc-expandos.c into irssi/silc/core/ to return
2821 various stuff for various signal for the statusbar etc. updating.
2822 Now Irssi SILC client prints channel user modes etc. on the
2825 * The user mode (like server/router operator changes) is now shown
2826 on the Irssi SILC client's statusbar. The affected files are
2827 irssi/src/silc/core/client_ops.c, silc-expandos.c.
2829 Thu Mar 7 19:21:22 EET 2002 Pekka Riikonen <priikone@silcnet.org>
2831 * Changed silc_mutex_[un]lock calls in lib/silcutil/silcschedule.c
2832 to SILC_SCHEDULE_[UN]LOCK macros.
2834 * Added more error printing to logs in server code. Affected
2835 files silcd/server.c and silcd/protocol.c.
2837 * Fixed -S option parsing in Irssi SILC Client. Affected file
2838 irssi/src/silc/core/silc-core.c.
2840 * Added silc_buffer_alloc_size function. Affected file is
2841 lib/silcutil/silcbuffer.h.
2843 Tue Mar 5 14:37:27 EET 2002 Pekka Riikonen <priikone@silcnet.org>
2845 * Changed all silc_[hash|hmac|cipher|pkcs]_default tables to
2846 constants. Affected files in
2847 lib/silccrypt/silcpkcs.[ch], silchash.[ch], silchmac.[ch] and
2850 * Changed the internal SFTP Memory FS table to const. Affected
2851 file lib/silcsftp/sftp_fs_memory.c.
2853 Sun Mar 3 18:37:13 EET 2002 Pekka Riikonen <priikone@silcnet.org>
2855 * Fixed the buffer formatting and unformatting routines to
2856 check the size of 64 bits types with sizeof(). Affected
2857 file is lib/silcutil/silcbuffmt.c.
2859 Mon Feb 25 17:19:05 EET 2002 Pekka Riikonen <priikone@silcnet.org>
2861 * Removed 0.6.x backwards support.
2863 Sun Feb 24 12:53:25 EET 2002 Pekka Riikonen <priikone@silcnet.org>
2865 * Changed all integer type names:
2866 [u]int[8/16/32/64] -> Silc[UInt/Int][8/16/32/64]. This is
2867 to avoid collisions with other libraries using same type names
2870 Sat Feb 23 20:31:43 EET 2002 Pekka Riikonen <priikone@silcnet.org>
2872 * Added `prefer_ipv6' argument to the functions
2873 silc_net_gethostbyname[_async]. If it is TRUE it will return
2874 IPv6 address over IPv4. If FALSE IPv4 address is returned
2875 even if IPv6 address was found. Affected files
2876 lib/silcutil/silcnet.[ch].
2878 * Added support silc_net_create_connection[_async] to fallback
2879 to IPv4 address if IPv6 address could not be used (like if
2880 it doesn't work on a specific system). Affected file in
2881 lib/silcutil/unix/silcunixnet.c.
2883 Sat Feb 23 15:20:30 EET 2002 Pekka Riikonen <priikone@silcnet.org>
2885 * Added silc_schedule_reinit function to do the enlarging
2886 of the max tasks handling capabilities of the scheduler.
2887 Affected files lib/silcutil/silcschedule.[ch].
2889 Wed Feb 20 20:41:01 EET 2002 Pekka Riikonen <priikone@silcnet.org>
2891 * Added automatic extern "C" { ... } for C++ compilers so the
2892 application does not need to define them. Affected file
2893 includes/silcincludes.h.
2895 * Renamed lib/silcclient/silcapi.h to silcclient.h as the
2896 old name went against naming convention. Applications now
2897 include "silcclient.h" instead of "clientlibincludes.h".
2898 Removed includes/clientlibincludes.h, it is redundant now.
2900 * Renamed includes/version.h to silcversion.h.
2902 * Added really preliminary support for OS/2 into the util
2903 library. Only thread & mutex API is implemented, others
2904 are still to be implemented. Created the lib/silcutil/os2/
2905 directory. Created also file includes/silcos2.h.
2907 Wed Feb 20 18:48:49 EET 2002 Pekka Riikonen <priikone@silcnet.org>
2909 * Added preliminary BeOS support into the util library.
2910 Created lib/silcutil/beos/, and implemented all the needed
2911 functions to support SILC on BeOS. Created also file
2912 includes/silcbeos.h.
2914 Mon Feb 18 15:49:22 EET 2002 Timo Sirainen <tss@iki.fi>
2916 * Added proper initializations to silc's irssi code, so it's
2917 now possible to load it as module. Affected files
2918 irssi/src/silc/core/silc-core.c,
2919 fe-common/silc/fe-common-silc-core.[ch] and fe-text/silc.c
2921 Sun Feb 17 19:02:56 EET 2002 Pekka Riikonen <priikone@silcnet.org>
2923 * Merged latest Irssi (0.8.1) from the irssi.org's CVS into
2926 * Fixed the silcdoc document generator to correct generate
2927 docs from all kinds of filenames. Affected files are
2928 util/robodoc/Source/generator.c, scripts/silcdoc/silcdoc
2930 * ROBOdoc documented lib/silcutil/silcmemory.h.
2931 Added also new function silc_memdup.
2933 * Removed lib/silcutil/silcbufutil.h and moved those routines
2934 to the lib/silcutil/silcbuffer.h.
2936 Sun Feb 17 15:52:30 EET 2002 Pekka Riikonen <priikone@silcnet.org>
2938 * Added `user_count' to the SilcChannelEntry which now tells the
2939 number of users on the channel. The user count is now saved
2940 in normal server of global channels as well. Affected files
2941 silcd/server.c, idlist.h, packet_receive.c and command.c.
2943 * Splitted lib/silcutil/silcutil.[ch] into silcfileutil.[ch] to
2944 include file utility functions.
2946 * Fixed the lib/silcsftp/sftp_fs_memory.c to use silcutil routines
2947 instead of calling directly OS routines.
2949 * Fixed NICK change printing in Irssi SILC Client. Fixed
2950 KICKED notify printing in Irssi SILC Client. Affected file
2951 irssi/src/silc/core/client_ops.c.
2953 * Fixed a NICK change bug in client library, to not recreate the
2954 client_entry->channels hash table everytime nick is changed.
2955 Affected file lib/silcclient/client.c.
2957 Sun Feb 17 10:10:14 EET 2002 Pekka Riikonen <priikone@silcnet.org>
2959 * ROBOdoc documented the lib/silcske/silcske.h, and improved
2960 the SKE interface a bit.
2962 * Fixed padding problem in PKCS#1. The padding was not actually
2963 random since the random number generator was used incorrectly.
2964 This security bug affects only when encrypting with PKCS#1, and
2965 it is not currently used at all in SILC. SILC only use signing
2966 with PKCS#1. Affected file lib/silccrypt/pkcs1.c.
2968 Sat Feb 16 13:44:24 EET 2002 Pekka Riikonen <priikone@silcnet.org>
2970 * Rewrote the notify handling in Irssi SILC client to not call
2971 the events as signals. Fixes problems with Perl support.
2972 Affected files irssi/src/silc/core/client_ops.c, silc-channels.c.
2974 * Send the auto-nicking NICK command in client library with
2975 little timeout after connecting. The affected file is
2976 lib/silcclient/client.c.
2978 * Added following new config file settings:
2979 channel_rekey_secs, key_exchange_rekey, key_exchange_pfs,
2980 key_exchange_timeout, conn_auth_timeout, connections_max,
2983 Implemented all the new config settings handling in the server.
2985 Optimized the use of SKE Mutual flag usage. Use it only
2986 if connection authentication protocol is not based in public
2989 Renamed all SilcServerConfigSection* to SilcServerConfig*
2990 to have a bit shorter names.
2992 Affected files silcd/serverconfig.[ch], server.[ch], and
2995 Sat Feb 16 02:46:43 CET 2002 Johnny Mnemonic <johnny@themnemonic.org>
2997 * Cleaned up the listening sockets code, preparing for the rehash
2998 support. Affected file is silcd/server.c.
3000 * Fixed some output messages. Affected files are silcd/silcd.c,
3003 Fri Feb 15 19:10:20 EET 2002 Pekka Riikonen <priikone@silcnet.org>
3005 * Create lib/doc/silcrng_intro.html document as introduction
3006 to SILC RNG. ROBOdoc documented lib/silccrypt/silcrng.h.
3008 Fri Feb 15 13:23:03 CET 2002 Johnny Mnemonic <johnny@themnemonic.org>
3010 * Fixes to the silcd config template. Affected file is
3011 doc/example_silcd.conf.in.
3013 * Removed type casts from silc_calloc(), conforming to the
3014 CodingStyle. Affected file is lib/silcutil/silcconfig.c.
3016 * Removed param_name member from client, server, and router
3017 section structs, now identifying the param directly.
3019 Added CONFIG_FREE_AUTH macro in config file parsing.
3021 Affected files are silcd/serverconfig.[ch].
3023 Fri Feb 15 12:24:08 EET 2002 Timo Sirainen <tss@iki.fi>
3025 * Fixed command line parameter handling. All SILC initialization
3026 is now done in silc_core_init() which also fixes autoconnecting
3029 Affected files irssi/src/silc/core/silc-core.c,
3030 irssi/src/fe-text/silc.c.
3032 Thu Feb 14 22:03:58 EET 2002 Pekka Riikonen <priikone@silcnet.org>
3034 * Added new configuration options and blocks:
3035 keepalive_secs, reconnect_count, reconnect_interval,
3036 reconnect_interval_max, reconnect_keep_trying and
3037 require_reverser_lookup. Added ConnectionParam block, and
3038 implemented the connection parameters when connecting as
3039 initiator and when accepting connections as responder.
3041 Added CONFIG_IS_DOUBLE macro in config file parsing, to check
3042 whether given configuration value has been given already.
3044 Affected files silcd/serverconfig.[c], server.[c].
3046 * Splitted the doc/example_silcd.conf.in. Separated the crypto
3047 algorithm parts and created new file silcalgs.conf, that
3048 is now included from the example_silcd.conf.in.
3050 * Optimized the silc_server_connect_to_router_second to take
3051 the connection configuration object from the SilcServerConnection
3052 object instead of finding it during the connecting phase.
3053 Added the configuration object to SilcServerConnection struct.
3054 Affected files silcd/server_internal.h, server.c.
3056 Thu Feb 14 16:02:26 CET 2002 Pekka Riikonen <priikone@silcnet.org>
3058 * Add the client on channel after it was resolved at the
3059 channel message receiving, and it was not already on the
3060 channel. Affected file lib/silcclient/client_channel.c.
3062 Wed Feb 13 23:16:41 EET 2002 Pekka Riikonen <priikone@silcnet.org>
3064 * Fixed the public key authentication to allocate always the
3065 destination signature buffer instead of using static buffer.
3066 Affected file silcd/protocol.c.
3068 Wed Feb 13 20:51:13 EET 2002 Pekka Riikonen <priikone@silcnet.org>
3070 * Unified the serverconfig.[ch]'s helper function interface.
3071 Affected file silcd/serverconfig.[ch].
3073 * Removed doc/example_silc.conf.in since it is redundant.
3074 The make install will now install irssi/silc.conf file.
3076 * Added new Passphrase and Publickey authentication methods to
3077 config file, allowing both public key and passphrase based
3078 authentication to be set at the same time.
3080 Added `prefer_passphrase_auth' setting in config file which
3081 can be used to set to prefer passwd auth if both passwd and
3082 public key is set. If not set, public key is preferred.
3083 This has effect only when being initiator (responder will try
3086 Added support for authentication with passphrase and public key
3087 at the same time. The passphrase is tried first always since
3088 it is faster to check.
3090 Affected file silcd/serverconfig.[ch], server.c, protocol.[ch].
3092 Wed Feb 13 12:46:25 CET 2002 Johnny Mnemonic <johnny@themnemonic.org>
3094 * Merged the new SILC Config library, with the server parsing
3095 support. Read the header file silcconfig.h or the toolkit
3096 documentation for the news. Affected files are
3097 doc/example_silcd.conf.in lib/silcutil/silcconfig.[ch]
3098 silcd/command.c silcd/packet_receive.c silcd/packet_send.c
3099 silcd/protocol.c silcd/server.c silcd/server_backup.c
3100 silcd/serverconfig.[ch] silcd/silcd.c.
3102 * Fixed some silclog documentation. Affected file is
3103 lib/silcutil/silclog.h.
3105 Sun Feb 10 18:11:30 EET 2002 Pekka Riikonen <priikone@silcnet.org>
3107 * The silc_cipher_register, silc_hash_register and
3108 silc_hmac_register now checks if the object to be registered
3109 is registered already. Affected files are
3110 lib/silccrypt/silccipher.c, silchash.c and silchmac.c.
3112 Sun Feb 10 15:48:38 EET 2002 Pekka Riikonen <priikone@silcnet.org>
3114 * Merged new irssi from irssi.org's CVS, the version 0.7.99.
3116 Sat Feb 9 14:54:33 EET 2002 Pekka Riikonen <priikone@silcnet.org>
3118 * Allow zero length channel messages inside the Channel Message
3119 Payload. Affected file lib/silccore/silcchannel.c.
3121 * Fixed scripts/silcdoc/silcdoc to support all kinds of filenames
3122 as header filenames.
3124 * Removed lib/silcclient/README and created HTML file
3125 lib/silcclient/silcclient_using.html, which is now included
3126 as part of Toolkit documentation.
3128 Thu Feb 7 10:12:25 CET 2002 Pekka Riikonen <priikone@silcnet.org>
3130 * Fixed CUMODE_CHANGE notify handling to change the mode of
3131 correct client. Affected file lib/silcclient/client_notify.c.
3133 * Make silc_rng_alloc fail if it cannot allocate the sha1
3134 hash algorithm. Affected file lib/silccrypt/silcrng.c.
3136 Sun Feb 3 17:20:52 EET 2002 Pekka Riikonen <priikone@silcnet.org>
3138 * Fixed the file transfer's key agreement payload to include
3139 zero port also if the hostname is NULL because it could not
3142 Call file transfer monitor callback now also if error occurs
3143 during key agreement protocol.
3145 Changed the silc_client_file_send interface to return the
3146 SilcClientFileError instead of session id. The session ID
3147 is returned into pointer provided as argument.
3149 Check that the file exists locally before sending the
3150 file transfer request at all.
3152 Affected file lib/silcclient/client_ftp.c, silcapi.h.
3154 * Added SILC_CLIENT_FILE_KEY_AGREEMENT_FAILED file transfer
3155 error than can occur while key agreement protocol. Affected
3156 file lib/silcclient/silcapi.h.
3158 * Fixed the event_mode CMODE handler to not crash when mode
3159 is changed and +k mode is set in the channel. Affected file
3160 irssi/src/silc/core/silc-channels.c.
3162 * Fixed SILC_LOG_ERROR to give out Error and not Warning, and
3163 SILC_LOG_WARNING to give out Warning and not Error. Affected
3164 file lib/silcutil/silclog.c.
3166 * Fixed the channel message payload decryption in the function
3167 silc_channel_message_payload_decrypt to not modify the original
3168 buffer before it is verified that the message decrypted
3169 correctly. Otherwise, next time it is called with correct
3170 channel key it won't encrypt since the payload is corrupted.
3171 Affected file lib/silccore/silcchannel.c.
3173 Sun Feb 3 11:46:12 EET 2002 Pekka Riikonen <priikone@silcnet.org>
3175 * Do not constantly resize the window. A fix patch by cras.
3176 Affected file irssi/src/fe-text/screen.c.
3178 Sat Feb 2 16:54:18 EET 2002 Pekka Riikonen <priikone@silcnet.org>
3180 * Applied IPv6 fix patch from Jun-ichiro itojun Hagino.
3181 Affected file lib/silcutil/silcnet.c.
3183 Fri Feb 1 22:33:11 EET 2002 Pekka Riikonen <priikone@silcnet.org>
3185 * Fixed a bug in hash table internal routine for traversing
3186 the table with foreach callback. The current entry may
3187 become invalid in the callback but it was referenced after
3188 the callback returned.
3190 Do not allow auto rehashing of hash table during the
3191 silc_hash_table_foreach operation, for same reasons as it is
3192 not allowed for SilcHashTableList. Affected files are
3193 lib/silcutil/silchashtable.[ch].
3195 Fri Feb 1 14:55:00 CET 2002 Pekka Riikonen <priikone@silcnet.org>
3197 * Defined DLLAPI into silcincludes.h and silcwin32.h for
3198 Win32 DLL. extern's in header files are now declared with
3201 Thu Jan 31 23:34:33 EET 2002 Pekka Riikonen <priikone@silcnet.org>
3203 * Fixed private message handling. It used some old code that
3204 caused the client to crash. Affecte file is
3205 lib/silcclient/client_prvmsg.c.
3207 Thu Jan 31 19:06:22 EET 2002 Pekka Riikonen <priikone@silcnet.org>
3209 * Added function silc_client_add_channel,
3210 silc_client_replace_channel_id, and removed functions
3211 silc_client_new_channel_id and silc_idlist_get_channel_by_id
3212 from client library.
3214 * Added cross reference of the joined channels to the
3215 SilcClientEntry, and changed the SilcChannelEntry's
3216 users list to SilcHashTable. The affected files are
3217 lib/silcclient/idlist.[ch].
3219 * Fixed a bug in hash table tarversing. While the hash table
3220 is traversed with SilcHashTableList the table must not be
3221 rehashed. It is now guaranteed that auto rehashable tables
3222 are not rehashed while tarversing the list. Also defined that
3223 silc_hash_table_rehash must not be called while tarversing
3224 the table. Added function silc_hash_table_list_reset that must
3225 be called after the tarversing is over. The affected files are
3226 lib/silcutil/silchashtable.[ch].
3228 * Changed all hash table traversing to call the new
3229 silc_hash_table_list_reset in server and in client library.
3231 * Added function silc_client_on_channel to return the
3232 SilcChannelUser entry if the specified client entry is joined
3233 on the specified channel. This is exported to application as
3234 well. Affected files lib/silcclient/client_channel.c, silcapi.h.
3236 Wed Jan 30 19:14:31 EET 2002 Pekka Riikonen <priikone@silcnet.org>
3238 * Fixed founder regaining problem with JOIN command on normal
3239 server. The notify for mode change must be sent always and
3240 not only if !cmd->pending. Affected file silcd/command.c.
3242 * Fixed the WHOWAS command's reply sending to support the
3243 lists correctly. Affected file silcd/command.c.
3245 Wed Jan 30 11:11:47 CET 2002 Pekka Riikonen <priikone@silcnet.org>
3247 * When sending JOIN command to router for processing the
3248 sender's old command identifier was not saved back to the
3249 sender's command context, fixed now. The affected file is
3252 * Create the key in JOIN command of the router did not return
3253 the channel key, added check for this. Affected file is
3256 * Fixed a channel ID update bug in JOIN command reply. Do
3257 not directly upgrade the ID but call the function
3258 silc_idlist_replace_channel_id if the ID was changed.
3259 Affected file silcd/command_reply.c.
3261 * Fixed memory leaks from command calling if it would fail.
3262 Affected file silcd/command.c.
3264 Tue Jan 29 19:49:31 EET 2002 Pekka Riikonen <priikone@silcnet.org>
3266 * Applied patches from cras:
3268 Memory leak fixes around libaries, irssi window resize fix,
3269 new silclist.h and silcdlist.h, all extern inline changed to
3272 * Removed dotconf from lib/dotconf, not needed anymore.
3274 * Removed TRQ from lib/trq, not needed anymore.
3276 * Do more frequent heartbeats (5 minutes instead of 10 minutes)
3277 with server connections. Later this will be configurable
3278 in config file after new config file is done. Affected file
3281 Tue Jan 29 10:35:03 CET 2002 Pekka Riikonen <priikone@silcnet.org>
3283 * Fixed a crash in server related to channel announcements.
3284 Affected file silcd/server.c.
3286 Mon Jan 28 17:49:42 EET 2002 Pekka Riikonen <priikone@silcnet.org>
3288 * Fixed memory leaks in silc_server_create_new_channel*
3289 functions. Affected file silcd/server.c.
3291 * Fixed the CHANNEL_CHANGE notify to re-announce the channel
3292 which ID was changed. This way the router will send the
3293 user list for the channel again, and server won't be in
3294 desync in some rare circumstances. Affected file is
3295 silcd/packet_receive.c.
3297 Sun Jan 27 21:04:19 EET 2002 Pekka Riikonen <priikone@silcnet.org>
3299 * Check for NULL socket pointer in the function
3300 silc_server_packet_send_to_channel_real. Affected file
3301 silcd/packet_send.c.
3303 * Fixed the BAN notify handling to correctly remove ban
3304 list. Affected file silcd/packet_receive.c.
3306 Sat Jan 26 23:01:03 EET 2002 Pekka Riikonen <priikone@silcnet.org>
3308 * Fixed some header addition to Toolkit distribution in
3309 lib/silcutil/Makefile.am and lib/trq/Makefile.am.
3311 * Added lib/silcclient/client_ops_example.h as an template
3312 file for application programmers to quickly start using
3313 the SilcClientOperation functions in their application.
3314 Updated the lib/silcclient/README as well to tell about this
3315 nice file made available.
3317 Sat Jan 26 10:45:41 EET 2002 Pekka Riikonen <priikone@silcnet.org>
3319 * Call silc_server_remove_from_channels when removing client
3320 entry when NO_SUCH_CLIENT_ID was received. Affected file
3321 is silcd/command_reply.c.
3323 Fri Jan 25 19:12:36 EET 2002 Pekka Riikonen <priikone@silcnet.org>
3325 * Added server & router operator statistics updating. Affected
3326 file silcd/packet_receive.c and silcd/command.c.
3328 * Fixed the SERVER_SIGNOFF notify handling on normal server
3329 not to save the history information for clients. Same was
3330 fixed earlier in remove_clients_by_server function, but not
3331 here. Affected file silcd/packet_receive.c.
3333 * Raised the default connection-retry count from 4 to 7 in
3334 server. Affected file silcd/server.h.
3336 * Cancel any possible reconnect timeouts when we start the
3337 key exchange. Affected file silcd/server.c.
3339 * Do not reconnect on connection failure when SCONNECT was
3340 given. Affected files silcd/server.[ch].
3342 Tue Jan 22 18:19:36 EET 2002 Pekka Riikonen <priikone@silcnet.org>
3344 * Removed assert()'s from the lib/silcclient/client_keyagr.c.
3346 * Fixed the NICK command to always give the unformatted
3347 nickname to the one giving the NICK command. If unformatted
3348 nickname is cached already it will be formatted and the
3349 local entry will always get the unformatted nickname.
3350 Affected file lib/silcclient/idlist.c.
3352 * Fixed some double frees from client library commands.
3353 Affected file is lib/silcclient/command.c.
3355 * Fixed CUMODE command in server to assure that no one can
3356 change founder's mode than the founder itself, there was a
3357 little bug. Affected file silcd/command.c.
3359 Mon Jan 21 19:07:53 EET 2002 Pekka Riikonen <priikone@silcnet.org>
3361 * Removed the SilcClientCommandDestructor from the client
3362 libary, it is not needed anymore. Affected files are
3363 lib/silcclient/silcapi.h, command[_reply].[ch],
3364 client_notify, idlist.c.
3366 * Fixed GETKEY command to first resolve client, and then
3367 resolve the server only if the client was not found, instead
3368 of resolving both at the same time. Affected file is
3369 lib/silcclient/command.c.
3371 * Added silc_client_start_key_exchange_cb and lookup the
3372 remote hostname and IP address before starting the key
3373 exchange with server. The affected file is
3374 lib/silcclient/client.c.
3376 * The server's public key is now saved using the IP address
3377 of the server and not the servername for the filename.
3378 The hostname public key filename is checked as an fall back
3379 method if the IP address based filename is not found.
3381 Fixed the GETKEY command to save the fetched server key
3382 in correct filename.
3384 Print the remote server's hostname now when new key is
3385 received during connection process. Affected file is
3386 irssi/src/silc/core/client_ops.c.
3388 * Return always our own public key to the client if it asks
3389 for it with GETKEY command. Affected file silcd/command.c.
3391 * Removed the use_auto_addr variable from default config
3392 file since it was in wrong section. Affected file is
3395 * Fixed TOPIC_CHANGE notification to not route it when it
3396 was sent using silc_server_send_notify_to_channel function.
3397 Affected file silcd/command.c.
3399 * Fixed silc_server_send_notify_kicked to send the kicker's
3400 Client ID also, it was missing. Affected files are
3401 silcd/command.c, silcd/packet_send.[ch].
3403 Thu Jan 17 18:59:11 EET 2002 Pekka Riikonen <priikone@silcnet.org>
3405 * Do not save client history information in SERVER_SIGNOFF.
3406 Fixes the bug in normal server that it does not detect
3407 the client becoming valid after the server becomes back
3408 online. Affected file silcd/server_util.c.
3410 * Added `sock_error' field into the SilcSocketConnection
3411 context. When error occurs during socket operation (read
3412 or write) the error is saved. Added also new function
3413 silc_socket_get_error to return human readable socket error
3414 message. Affected files are lib/silcutil/silcsockconn.[ch],
3415 lib/silcutil/unix/silcunixsockconn.c, and
3416 lib/silcutil/win32/silcwin32sockconn.c.
3418 * The server now prints the socket error message in the
3419 signoff for client. Affected file silcd/server.c.
3421 * Fixed the `created' channel information sending from router
3422 to server in JOIN command. Checks now whether the channel
3423 really was created or not and set it according that.
3425 Fixed the JOIN command to use the client entry's current
3426 ID during the joining procedure instead of the one it sent
3427 in the command (it is checked though), since it can change
3428 between the packet processing and command processing, and
3429 would just case unnecessary pain in the client end. Affected
3430 file silcd/command.c.
3432 * Fixed a channel key payload sending to use correct channel
3433 ID when the server was forced to change the channel's ID by
3434 router. Router sent the key payload with the old Channel ID.
3435 Affected file silcd/packet_receive.c.
3437 Wed Jan 16 22:26:30 EET 2002 Pekka Riikonen <priikone@silcnet.org>
3439 * Call silc_server_save_channel_key only if the key payload
3440 was provided in the JOIN command's command reply. Affected
3441 file silcd/command_reply.c.
3443 Tue Jan 15 18:49:41 EET 2002 Pekka Riikonen <priikone@silcnet.org>
3445 * Fixed silc_mp_sizeinbase to return the value correctly with
3446 MPI. Affected file lib/silcmath/mp_mpi.c.
3448 * Fixed the stop_server signal to correctly stop the scheduler
3449 and gracefully stop the server when SIGTERM or SIGINT signals
3450 are received. Affected file silcd/silcd.c.
3452 Mon Jan 7 23:38:19 CET 2002 Johnny Mnemonic <johnny@themnemonic.org>
3454 * Simple handling of TERM and HUP signals. Also added some log
3455 flushing call around. Affected file is
3458 * Fixed small bugs in silclog.c. Now buffering output will take
3459 effect after 10 seconds since startup: This will ensure that
3460 no important startup messages are lost. Also output redirection
3461 will preserve original format ([Date] [Type] message).
3462 Affected file is lib/silcutil/silclog.c.
3464 * Added two options to the config file, in the logging section:
3465 quicklogs:<yes/no>: and flushdelay:<seconds>:. Affected files
3466 lib/silcutil/silclog.[ch], silcd/serverconfig.[ch].
3468 Sun Jan 6 12:49:40 EET 2002 Pekka Riikonen <priikone@silcnet.org>
3470 * Do not print the warning about log files not being initialized
3471 more than once to avoid excess logging. Affected file is
3472 lib/silcutil/silclog.c.
3474 * Fixed the SIM compilation in lib/silcsim/Makefile.am. Fixed
3475 the SIM copying in make install in Makefile.am.pre.
3477 Sun Jan 6 01:10:21 CET 2001 Johnny Mnemonic <johnny@themnemonic.org>
3479 * Rewritten silclog APIs. Globally interesting changes follows:
3480 silc_log_set_files() changed to silc_log_set_file().
3481 silc_log_set_callbacks() changed to silc_log_set_callback().
3482 ROBOdoc documented silclog header file.
3483 SilcLogCb now returns bool to wether inihibit the default
3484 handler or not (to keep the old behaviour return always TRUE).
3485 The new APIs should also fix the problem of the
3486 silcd_error.log file that was written in the current directory.
3489 Log files streams will remain opened after silc_log_set_file()
3490 call, means less CPU usage notably on high traffic servers.
3491 File streams are now full buffered, and flushed to the disk
3492 every 5 minutes, lesses HD activity and CPU usage.
3493 Messages can be redirected, allowing admins to configure
3494 one single logfile for all server messages.
3495 the silc_log_quick global variable to activate fast-logging.
3496 Affected files lib/silcutil/silclog.[ch]
3498 * Changed some code to conform new silclog APIs. Affected
3499 files are doc/example_silcd.conf.in, silcd/server.c
3500 irssi/src/silc/core/silc-core.c, silcd/serverconfig.[ch],
3503 * Fixed a memory leak that could occur in some situations.
3504 Affected file silcd/serverconfig.c.
3506 Sat Jan 5 13:37:29 EET 2002 Pekka Riikonen <priikone@silcnet.org>
3508 * Added the silc_client_del_client to remove the client from
3509 all channels as well. Affected file lib/silcclient/idlist.c.
3511 * Fixed the client library to correctly remove the client
3512 from all channels when the client entry is being destroyed.
3513 Affected file lib/silcclient/client_notify.c, command.c.
3515 * Added auto-nicking support to the client library. If the
3516 applicatio now sets client->nickname it will be sent to the
3517 server after connecting by the library. This way for example
3518 SILCNICK (or IRCNICK) environment variables will have effect
3519 and always change the nickname automatically to whatever
3520 it is wanted. Affected file lib/silcclient/client.[ch].
3522 * Renamed silc_server_command_bad_chars to the
3523 silc_server_name_bad_chars and moved it to the
3524 silcd/server_util.[ch]. Added also new function
3525 silc_server_name_modify_bad to return nickname that
3526 includes bad characters as new nickname without those
3527 bad characters. This check and modify is now used in
3528 silc_server_new_client when the username is initially set
3529 as nickname, so it must be checked to be valid nickname.
3530 Affected file silcd/packet_receive.c.
3532 * The nickname length is now taken from the packet for real
3533 and not trusted to strlen() since it clearly can return
3534 wrong length for nickname including bad characters. This
3535 also applies to channel names. Affected file silcd/command.c.
3537 * Removed the lib/silcsilm/modules directory. Modules are now
3538 compiled into the lib/silcsim. Fixed the copying of the
3539 modules to follow symbolic links in Makefile.am.pre.
3541 Wed Jan 2 18:56:21 EET 2002 Pekka Riikonen <priikone@silcnet.org>
3543 * Fixed silc_string_regexify list creation. Fixes bugs with
3544 BAN and INVITE commands in server. The affected file is
3545 lib/silcutil/unix/silcunixutil.c.
3547 Sun Dec 30 13:41:34 EET 2001 Pekka Riikonen <priikone@silcnet.org>
3549 * Removed the command destructor entirely from the server's
3550 command and command reply routines. It is not needed, and
3551 its usage was buggy and caused crashes. Affected files are
3552 silcd/command[_reply].[ch].
3554 Fri Dec 28 12:43:22 EET 2001 Pekka Riikonen <priikone@silcnet.org>
3556 * Cancel protocol and NULL sock->protocol if timeout
3557 occurred during protocol. Affected file silcd/server.c.
3559 * Cancel protocol timeouts always before calling the final
3560 callback, to assure that after final callback is called
3561 no other state will be called for the protocol anymore.
3562 Affected file silcd/protocol.c.
3564 * Print error log if incoming connection configuration could
3565 not be found. Affected file silcd/server.c.
3567 * Fixed JOIN command to correctly save the founder mode
3568 to the client on normal SILC server, when the channel
3569 was created by the router. Affected file silcd/command.c.
3571 * Fixed LIST command (hopefully) to send correct reply
3572 packets. Affected file silcd/command.c.
3574 Thu Dec 20 16:14:52 CET 2001 Pekka Riikonen <priikone@silcnet.org>
3576 * The silc_packet_receive_process now returns FALSE if the
3577 read data was invalid packet, and TRUE if it was ok.
3579 The server now checks that if unauthenticated connection
3580 sends data and its processing fails the server will close
3581 the connection since it could be a malicious flooder.
3583 Affected files lib/silccore/silcpacket.[ch], silcd/server.c.
3585 Wed Dec 19 21:31:25 EET 2001 Pekka Riikonen <priikone@silcnet.org>
3587 * Make sure the warning about error opening a log file is
3588 printed only once and not everytime it fails (produces
3589 too much useless log). Affected file lib/silcutil/silclog.c.
3591 Wed Dec 19 18:21:51 CET 2001 Johnny Mnemonic <johnny@themnemonic.org>
3593 * Made the silc_server_daemonise() function more readable.
3594 Affected file silcd/server.c.
3596 * Pid file is now optional, the user may comment it out from
3597 the config file. Removed define SILC_SERVER_PID_FILE, we
3598 don't need a default any longer. Affected file
3599 configure.in.pre, lib/Makefile.am.pre.
3601 * Make some use of the pid file. The server now dies at startup
3602 if it detects a valid pid file on his path. The server would
3603 die anyway in this circumstance, because of the bind() failure.
3604 Affected file silcd/silcd.c.
3606 * No longer compiling lib/dotconf.
3608 Mon Dec 17 18:24:27 EET 2001 Pekka Riikonen <priikone@silcnet.org>
3610 * Fixed JOIN command parsing not to crash. Affected file
3611 lib/silcclient/command.c.
3613 * Fied the NICK_CHANGE notify to add the new client entry
3614 even it is resolved. This removes an <[unknown]> nick
3615 thingy bug in the client. Affected file is
3616 lib/silcclient/client_notify.c.
3618 * Do not try to allocate 0 bytes (efence does not like it)
3619 in lib/silccore/silccomand.c when encoding payload.
3621 * Do not take IRCNICK as nickname in Irssi SILC client since
3622 it is not possible to set nickname before hand connecting
3623 the server (TODO has an entry about adding auto-nicking
3626 * Changed the silc_server_command_pending to check whether
3627 there already exists an pending entry with the specified
3628 command, command identifier and pending callback. This is
3629 to fix IDENTIFY and WHOIS related crashes that may register
3630 multiple pending commands with same identifier. Affected
3631 file silcd/command.c.
3633 * Fixed the server to reconnect to the router even if it
3634 was already reconnecting and EOF was received. This to
3635 fix a possibility that the server wouldn't ever try to
3636 auto-reconnect to the router. Affected file silcd/server.c.
3638 Sat Dec 15 20:31:50 EET 2001 Pekka Riikonen <priikone@silcnet.org>
3640 * Fixed the server's password authentication to use the
3641 length of the locally saved password, and not the one
3642 sent in the packet. Affected file silcd/protocol.c.
3644 * Fixed same password authentication problem in the
3645 Authentication Payload handling routines in
3646 lib/silccore/silcauth.c.
3648 * Yet another password authentication problem fixed with
3649 channel password handling in silcd/command.c.
3651 Mon Dec 10 19:57:40 EET 2001 Pekka Riikonen <priikone@silcnet.org>
3653 * If first character of string in silc_parse_userfqdn is '@'
3654 then do not parse it. Affected file is
3655 lib/silcutil/silcutil.c.
3657 Sun Dec 9 22:18:50 EET 2001 Pekka Riikonen <priikone@silcnet.org>
3659 * Fixed minor bug in IDENTIFY command reply sending, which
3660 caused various weird problems during JOIN when it was
3661 resolving names for users. Affected file silcd/command.c.
3663 Sun Dec 9 19:18:41 EET 2001 Pekka Riikonen <priikone@silcnet.org>
3665 * Fixed the IDENTIFY command reply sending to chech better valid
3666 clients. It was possible to send incomplete list of replies.
3667 Affected file silcd/command.c.
3669 Sat Dec 8 15:58:31 EET 2001 Pekka Riikonen <priikone@silcnet.org>
3671 * Added silc_client_command[s]_[un]register functions now to
3672 dynamically register the commands in client library. Removed
3673 the static table of commands. This allows the client library
3674 to call commands without causing the application to know about
3675 what commands library has called.
3677 Removed the INFO command reply kludge to detect when the command
3678 was called by library. Now library use its own command reply
3679 function for INFO command.
3681 Added function silc_client_command_call to call a command.
3682 Application can use it to call command, not access the structure
3685 Now all commands that are sent by the client library (not
3686 explicitly sent by application) use own command reply functions.
3688 Affected files around lib/silcclient/ and in
3689 irssi/src/silc/core/.
3691 * Fixed the WHOIS command reply sending to chech better valid
3692 clients. It was possible to send incomplete list of replies.
3694 Fixed the WHOIS and IDENTIFY to send the request to router
3695 if normal server did not do it and did not find any results.
3697 Affected file silcd/command.c.
3699 Thu Dec 6 17:21:06 EET 2001 Pekka Riikonen <priikone@silcnet.org>
3701 * Moved the internal data from SilcClient context into its
3702 own file, not accesible to application. Affected files
3703 lib/silcclient/client.h and lib/silcclient/client_internal.h,
3704 and other files in client library.
3706 Thu Dec 6 10:37:55 EET 2001 Pekka Riikonen <priikone@silcnet.org>
3708 * Added doc/examples installation target in Makefile.am.pre.
3711 Tue Dec 4 17:43:19 EET 2001 Pekka Riikonen <priikone@silcnet.org>
3713 * If NO_SUCH_CLIENT_ID notify is received for WHOIS or IDENTIFY
3714 commands the found client entry will be removed from the
3715 cache, after notifying application about the error. Affected
3716 file lib/silcclient/command_reply.c.
3718 * Changed the /MSG to check for exact nickname user gave, and
3719 not let `nick' match `nick@host' if it is only one found. Now,
3720 user must type the exact nickname (like nick@host2) even if
3721 there are no more than one same nicks found. This is to avoid
3722 a possibility of sending nickname to wrong nickname since
3723 `nick' could match `nick@host'. Affected file is
3724 irssi/src/core/silc-servers.c.
3726 Mon Dec 3 18:49:45 EET 2001 Pekka Riikonen <priikone@silcnet.org>
3728 * Do not print "you are now server operator" or similar when
3729 giving /away command. Affected files are
3730 irssi/src/silc/core/client_ops.c, silc-servers.h.
3732 * Made the silc_server_command_pending_error_check to send
3733 the same command reply payload it received back to the
3734 original sender of the command. This way all arguments
3735 that was received by the server will be received by the
3736 client too. Affected file silcd/command.c.
3738 * Added the silc_idcache_add to return the created cache entry
3739 to a pointer. Affected file lib/silccore/silcidcache.[ch].
3741 * Add global clients to expire if they are not on any channel.
3742 This is because normal server will never know if they signoff
3743 if they are not on any channel. The cache expiry will take
3744 case of these entries. This is done by normal servers only.
3745 The affected files are silcd/command_reply.c,
3746 silcd/idlist.[ch], silcd/server and silcd/packet_receive.c.
3748 * If server receives invalid ID notification for WHOIS or
3749 IDENTIFY and the ID exists in the lists, it is removed.
3750 Affected file silcd/command_reply.c.
3752 * If NO_SUCH_CLIENT_ID is received for WHOIS or IDENTIFY command
3753 in client then client entry that it matches is searched and
3754 the nickname is printed on the screen for user. Affected
3755 file irssi/src/silc/core/client_ops.c.
3757 Mon Dec 3 11:56:59 EET 2001 Pekka Riikonen <priikone@silcnet.org>
3759 * Use cache entry expire time in the LIST command reply to
3760 purge old entries from the cache after the LIST command
3761 reply has been received. This way we don't have non-existent
3762 entries in the cache for too long. Affected file is
3763 silcd/command_reply.c.
3765 Sun Dec 2 23:29:07 EET 2001 Pekka Riikonen <priikone@silcnet.org>
3767 * If we are normal server, and we've not resolved client info
3768 in WHOIS or IDENTIFY from router, and it is global client,
3769 we'll check whether it is on some channel. If it is not
3770 then we cannot be sure about its validity and will resolve it
3771 from router. Fixes a bug in WHOIS and IDENTIFY. Affected
3772 file silcd/command.c.
3774 * Search channel by name (if possible) rather than by ID
3775 in IDENTIFY command's command reply. Affected file is
3776 silcd/command_reply.c.
3778 Sun Dec 2 13:48:46 EET 2001 Pekka Riikonen <priikone@silcnet.org>
3780 * Distribute to the channel passphrase in CMODE_CHANGE notify.
3781 Updated specs and implemented it. Affected file silcd/command.c,
3782 silcd/packet_send.c and silcd/packet_receive.c.
3784 * Implemented the <founder auth> payload handling in the JOIN
3785 command. If provided all conditions for channel joining
3786 except requirement to provide correct passphrase can be
3787 overrided by the channel founder. Updated the protocol specs.
3788 Affected file silcd/command.c.
3790 Added support for founder auth in JOIN command in client
3791 library. Fixed the parsing of the JOIN command now to support
3792 all options as they should be. The affected file is
3793 lib/silcclient/command.c.
3795 * Optimized the WHOIS and IDENTIFY commands to send the request
3796 to router only if it includes nicknames or other names. If
3797 they include only IDs then check the local cache first before
3798 routing. Affected file is silcd/command.c.
3800 * Added channels topic announcements. Affected file is
3801 silcd/packet_receive.c and silcd/server.c.
3803 * Fixed the silc_server_send_notify_topic_set to really destine
3804 the packet to channel. Affected file silcd/packet_send.c.
3806 * Fixed a crash in CHANNEL_CHANGE notify handling in the client
3807 library. Affected file lib/silcclient/client_notify.c.
3809 * Added UMODE announcements. Affected file silcd/server.c.
3811 Sat Dec 1 12:52:39 EET 2001 Pekka Riikonen <priikone@silcnet.org>
3813 * Memory leak fixes in:
3815 lib/silcutil/silcsockconn.c
3816 lib/silcske/silcske.c
3817 lib/silcske/groups.c
3819 lib/silccrypt/silcpkcs.c
3820 lib/silccore/silccommand.c
3821 lib/silccore/silcidcache.c
3826 * ROBOdoc documented the lib/silcske/groups.h file and a
3827 bit changed the interface for better.
3829 Thu Nov 29 22:12:50 EET 2001 Pekka Riikonen <priikone@silcnet.org>'
3831 * Update the client entry context in the ID cache after
3832 nick change. Affected file lib/silcclient/command.c.
3833 Fixes the CUMODE command when regaining founder privileges,
3834 and a little WHOIS problem.
3836 * Fixed silc_net_gethostbyname to correctly call the
3837 inet_ntop. Affected file lib/silcutil/silcnet.c.
3839 Thu Nov 29 19:31:23 EET 2001 Pekka Riikonen <priikone@silcnet.org>'
3841 * Added IPv6 support checking to the configure.in.pre, added
3842 also --enable-ipv6 option to override the check. Affected
3843 file configure.in.pre.
3845 * The silc_thread_create now calls the start function
3846 directly if threads support is not compiled in. Removes
3847 ugly #ifdef's from generic code. Affected files are
3848 lib/silcutil/unix/silcunixthread, win32/silcwin32thread.c.
3850 * Added silc_net_gethostby[name/addr]_async to asynchronously
3851 resolve. Affected files are lib/silcutil/silcnet.[ch].
3853 * Added support for rendering IPv6 based server, client and
3854 channel IDs. Affected file lib/silcutil/silcutil.c.
3856 * Added support for creating IPv6 based server IDs. Affected
3857 file is silcd/serverid.c.
3859 Wed Nov 28 23:46:09 EET 2001 Pekka Riikonen <priikone@silcnet.org>'
3861 * Added silc_net_gethostby[addr/name] into the
3862 lib/silcutil/silcnet.[ch]. Added IPv6 support to Unix network
3863 routines. Added silc_net_is_ip[4/6]. Affected file is
3864 lib/silcutil/unix/silcunixnet.c. All routines that take
3865 address as argument now supports both IPv4 and IPv6 addresses.
3867 Mon Nov 26 18:09:48 EET 2001 Pekka Riikonen <priikone@silcnet.org>'
3869 * Fixed LIST command reply sending in server. Affected file
3872 * Server now sends the kicker's client ID in the KICK notify
3873 to the kicked client. Affected file silcd/command.c.
3875 * The client library now parses the kickers client ID and
3876 UI displays it. Affected files lib/silcclient/client_notify.c
3877 and irssi/src/silc/core/silc-channels.c, module-formats.c.
3879 * Made all payload parsing function prototypes consistent.
3880 They all take now const unsigned char * and uint32 pair as
3881 the payload data instead of SilcBuffer. Changes all around
3882 the source tree. Other unsigned char* -> const unsigned char*
3883 changes around the tree as well.
3885 * Optimized SFTP client and server packet sending not to
3886 allocate new buffer for each packet but to recycle the
3887 first allocated buffer. Affected files are
3888 lib/silcsftp/sftp_client.c, sftp_server.c, sftp_util.[ch].
3890 * Optimized the SFTP client to use SilcList instead of
3891 SilcDList for requests, because it is faster. Affected file
3892 is lib/silcsftp/sftp_client.c.
3894 * Moved the ID Payload routines from lib/silccore/silcpayload.[ch]
3895 into lib/silccore/silcid.[ch].
3897 Renamed silcpayload.[ch] into silcargument.[ch].
3899 Mon Nov 26 15:01:53 CET 2001 Pekka Riikonen <priikone@silcnet.org>
3901 * If client entry is deleted with active key agreement
3902 session, abort the session.
3904 The silc_client_abort_key_agreement now calls the completion
3905 callback with new SILC_KEY_AGREEMENT_ABORTED status.
3907 Affected file lib/silcclient/silcapi.h, client_keyagr.c and
3910 Sun Nov 25 18:01:45 EET 2001 Pekka Riikonen <priikone@silcnet.org>
3912 * Don't use __restrict in older GCC's. Affected file is
3913 lib/silcmath/mpi/mpi-priv.h. A patch by salo.
3915 * silc_net_localhost now attempts to reverse lookup the
3916 IP/hostname. Affected file lib/silcutil/silcnet.c.
3918 * Defined <founder auth> argument to the SILC_COMMAND_JOIN
3919 command. It can be used to gain founder privileges at
3920 the same time when joining the channel.
3922 Defined that the SILC_NOTIFY_TYPE_KICKED send the
3923 kicker's client ID as well. Updated protocol specs.
3925 Defined that the server must send SILC_COMMAND_IDENTIFY
3926 command reply with error status to client who sent
3927 private message with invalid client ID.
3929 Updated the protocol specification.
3931 * Added silc_server_send_command_reply to send any
3932 command reply. Affected file silcd/packet_send.[ch].
3934 * Added silc_id_payload_encode_data to encode ID payload
3935 from raw ID data. Affected file lib/silccore/silcpayload.[ch].
3937 * The server now send IDENTIFY command reply with error
3938 status if client ID in private message is invalid. Affected
3939 file silcd/packet_receive.c.
3941 * Save the server key file with server's IP address in
3942 the filename instead of hostname. The affected file is
3943 irssi/src/silc/core/client_ops.c.
3945 Sat Nov 24 20:08:22 EET 2001 Pekka Riikonen <priikone@silcnet.org>
3947 * Typo fixes in irssi/src/fe-common/silc/module-formats.c.
3950 * Added libtool support for compiling shared objects in
3951 lib/silcsim. Affected file configure.in.pre and
3952 lib/silcsim/Makefile.am. Original patch by cras.
3954 Fri Nov 23 23:30:59 EET 2001 Pekka Riikonen <priikone@silcnet.org>
3956 * Pid file configuration, and server's config file fixes
3957 patch by toma. Updated CREDITS file.
3959 Sun Nov 18 01:34:41 EET 2001 Pekka Riikonen <priikone@silcnet.org>
3961 * Fixed silc_client_channel_message to not try to decrypt
3962 the message twice if it resolved the destination client
3963 information. This could cause of dropping one channel
3964 message. Affected file lib/silcclient/client_channel.c.
3966 Wed Nov 14 23:44:56 EET 2001 Pekka Riikonen <priikone@silcnet.org>
3968 * Added silc_client_run_one into lib/silcclient/silcapi.h and
3969 lib/silcclient/client.c. This function is used when the SILC
3970 Client is run under some other scheduler, or event loop or
3971 main loop. On GUI applications, for example this may be
3972 desired to used to run the client under the GUI application's
3973 main loop. Typically the GUI application would register an
3974 idle task that calls this function multiple times in a second
3975 to quickly process the SILC specific data.
3977 Wed Nov 14 19:16:52 CET 2001 Johnny Mnemonic <johnny@themnemonic.org>
3979 * Fixed silc_server_drop() for dropping the supplementary
3980 groups as well, this could cause a security hole on some
3983 Wed Nov 14 16:22:25 EET 2001 Pekka Riikonen <priikone@silcnet.org>
3985 * __pid_t -> pid_t in lib/silccrypt/silcrng.c. A patch by
3988 * Write PID file after dropping privileges. Added -F option
3989 to run server on foreground. A patch by debolaz.
3990 Affected files silcd/server.c, silcd/silcd.c.
3992 * Fixed MOTD to return the MOTD file server name. Affected
3993 file silcd/command.c.
3995 * Added INFO command reply handling to the Irssi SILC Client.
3996 Affected file irssi/src/silc/core/client_ops.c.
3998 Wed Nov 14 00:18:08 EET 2001 Pekka Riikonen <priikone@silcnet.org>
4000 * Fixed the silc_idcache_list_* routines to really support
4001 the dynamic list. Fixes a crash. Affected file is
4002 lib/silccore/silcidcache.c.
4004 * Fixed the LIST command reply to really call LIST command's
4005 pending callbacks. Affected file silcd/command_reply.c.
4007 Tue Nov 13 00:49:17 EET 2001 Pekka Riikonen <priikone@silcnet.org>
4009 * Update conn->local_entry->nickname after giving NICK
4010 command. Affected file lib/silcclient/command.c.
4012 Sun Nov 11 23:43:02 PST 2001 Brian Costello <bc@wpfr.org>
4014 * Added the [pid] option to the silcd configuration file
4016 Affected files: serverconfig.[ch] and silcd.c
4018 Sun Nov 11 23:56:39 EET 2001 Pekka Riikonen <priikone@silcnet.org>
4020 * Save fingerprint in WHOIS command reply in server.
4021 Affected file silcd/command_reply.c.
4023 * Fixed NICK commands pending callback registration.
4024 Affected file lib/silcclient/command.c.
4026 Sun Nov 11 10:49:10 EET 2001 Pekka Riikonen <priikone@silcnet.org>
4028 * Use ++server->cmd_ident when sending commands in server,
4029 instead of random number. Affected file silcd/command.c.
4031 * Fixed GETKEY command reply to call actually GETKEY pending
4032 command callbacks. Affected file silcd/command_reply.c.
4034 * A bit stricter check for nicknames. Check for same nickname
4035 in NICK command also. Affected file silcd/command.c.
4037 * Do not call INFO command everytime client ID changes, only
4038 during first connecting. Affected file lib/silcclient/client.c.
4040 * Set the new nickname only after successful command reply for
4041 NICK command is returned by server. Affected file
4042 lib/silcclient/command.c.
4044 * Remove nicknames from nicklist during server_signoff notify.
4045 Should fix /NAMES bit more. The affected file is
4046 irssi/src/silc/core/silc-channels.c.
4048 * Added `fingerprint' field to the SilcIDListData in the
4049 silcd/idlist.h to hold the fingerprint of the client's
4052 Send the fingerprint of the client's public key in WHOIS
4055 Affected files silcd/command.c, and silcd/idlist.[ch].
4057 * Added silc_fingerprint into lib/silcutil/silcutil.[ch] to
4058 create fingerprint from given data.
4060 * Show the fingerprint of the client's public key in WHOIS.
4061 Affected files irssi/src/module-formats.[ch] and
4062 irssi/src/silc/core/client_ops.c.
4064 * Format the multiple same nicknames also during JOIN and
4065 NICK_CHANGE notifys. Affected file is
4066 lib/silcclient/client_notify.c.
4068 * Do not print error on screen for invalid private message
4069 payload since it can come if someone is sending private
4070 messages with wrong key. Affected file
4071 lib/silccore/silcprivate.c.
4073 * Fixed multiple concurrent /PING crash. Affected file
4074 lib/silcclient/command.c.
4076 * Changed the wrong ID encoding. All IP addresses must be
4077 in MSB first order in encoded format. They were encoded
4078 wrong and was in LSB format. Affected files are
4079 silcd/serverid.c, lib/silcutil/silcutil.c.
4081 * Remove silc_net_addr2bin_ne from lib/silcutil/silcnet.[ch].
4083 * Call the `connect' client operation through the scheduler
4084 in case of error. Affected file lib/silcclient/client.c.
4086 * Call the `failure' client operation even if the error
4087 occurred locally during a protocol. Affected file is
4088 lib/silcclient/protocol.c.
4090 * Added support of sending LIST command to router from normal
4091 server. This way normal server can get list of all channels
4092 in the network too. Fixed the channel list sending in the
4093 server too. Affected files are silcd/command.c, and
4094 silcd/command_reply.[ch].
4096 * Added silc_server_update_channels_by_server and
4097 silc_server_remove_channels_by_server. They are used during
4098 disconnection of primary router and in backup router protocol.
4099 Affected file silcd/server_util.[ch], silcd/server.c and
4100 silcd/server_backup.c.
4102 * Fixed channel adding to global list in IDENTIFY command
4103 reply in server. Affected file silcd/command_reply.c.
4105 Sat Nov 10 21:39:22 EET 2001 Pekka Riikonen <priikone@silcnet.org>
4107 * If the incoming packet type is REKEY or REKEY_DONE process
4108 that packet always synchronously. Fixes yet another MAC
4109 failed error on slow (dialup) connections. Affected file
4110 lib/silcclient/client.c and silcd/server.c.
4112 Thu Nov 8 22:21:09 EET 2001 Pekka Riikonen <priikone@silcnet.org>
4114 * Call check_version SKE callback for initiator too. Affected
4115 file lib/silcske/silcske.c.
4117 * Implemented fix for security hole found in the SKE that was
4118 fixed in the specification few days back; the initiator's
4119 public key is now added to the HASH value computation.
4120 Added backwards support for the old way of doing it too, for
4121 old clients and old servers. Affected file is
4122 lib/silcske/silcske.c.
4124 * Enabled mutual authentication by default in SKE. If initiator
4125 is not providing mutual authentication the responder will
4126 force it. This will provide the proof of posession of the
4127 private key for responder. The affected files are
4128 lib/silcclient/protocol.c and silcd/protocol.c.
4130 * Do not cache anymore the server's public key during SKE.
4131 We do mutual authentication so the proof of posession of
4132 private key is done, and if the server is authenticated in
4133 conn auth protocol with public key we must have the public
4134 key already. Affected file silcd/protocol.c.
4136 * Added new global debug variable: silc_debug_hexdump. If
4137 it is set to TRUE SILC_LOG_HEXDUMP will be printed. Affected
4138 file lib/silcutil/silclog.[ch].
4140 * Fixed compilation warning due to char * -> const char *.
4141 Affected files lib/silcutil/silcnet.h, and
4142 lib/silccore/silcauth.[ch].
4144 Wed Nov 7 20:43:03 EET 2001 Pekka Riikonen <priikone@silcnet.org>
4146 * Fixed CMODE command when new channel key was created. If
4147 the creation failed the old key was removed. Next time giving
4148 same command would crash the server since the old key was
4149 freed already. Affected file silcd/command.c.
4151 * Fixed the silc_server_announce_get_channels to not crash
4152 on reconnect. Affected file silcd/server.c.
4154 Wed Nov 7 17:15:07 EET 2001 Pekka Riikonen <priikone@silcnet.org>
4156 * Added silc_log_set_debug_string function to set a regex
4157 string to match for debug output. Only the function names,
4158 or filenames matching the given debug string is actually
4159 printed. This way it is possible to filter out those debug
4160 strings that user is not interested in.
4162 Fixed a bug in silc_string_regexify.
4164 Affected files lib/silcutil/silclog.[ch], and
4165 lib/silcutil/unix/silcunixutil.c.
4167 * Changed the -d options in both server and Irssi SILC client
4168 to take the debug string as argument. Affected files
4169 silcd/silcd.c and irssi/src/silc/core/silc-core.c.
4171 Tue Nov 6 21:31:54 EET 2001 Pekka Riikonen <priikone@silcnet.org>
4173 * Added silc_hash_babbleprint to create a Bubble Babble
4174 Encoded fingerprint. The encoding is developed by Antti
4175 Huima (draft-huima-babble-01.txt), and it creates human
4176 readable strings out of binary data. Affected file
4177 lib/silccrypt/silchash.[ch].
4179 * Print the babble print now in addition of fingerprint as well
4180 in Irssi SILC client. Affected files are
4181 irssi/src/fe-common/silc/module-formats.[ch],
4182 irssi/src/fe-common/silc/core/client_ops.c.
4184 Sun Nov 4 23:37:28 EET 2001 Pekka Riikonen <priikone@silcnet.org>
4186 * Fixed a security problem found in SKE. The initiator's
4187 public key too is now added to the HASH hash value creation
4188 which is signed by the responder to create the SIGN value.
4189 This will prevent anyone in the middle to lie to the responder
4190 about the initiator's public key. If this is done now, the
4191 man in the middle will get caught. Updated the protocol
4194 Sun Nov 4 11:43:53 EET 2001 Pekka Riikonen <priikone@silcnet.org>
4196 * Better installation directory handling. Configure module
4197 paths and other paths automatically to example_silc* files
4198 in doc/. A patch by toma.
4200 * Fixed compiler warning from MPI library, and from SILC RNG.
4203 * Added SILC_SERVER_PID_FILE to define the pid file for server.
4204 It can be configured with ./configure. A patch by toma.
4206 Sat Nov 3 23:48:23 EET 2001 Pekka Riikonen <priikone@silcnet.org>
4208 * Find correct make to use in prepare-clean. A patch by
4209 toma. Affected file prepare-clean.
4211 Sat Nov 3 22:04:00 PST 2001 Brian Costello <bc@mksecure.com>
4213 * Added irssi variables use_auto_addr, auto_bind_ip,
4214 auto_bind_port and auto_public_ip.
4216 * Changed the interface for silc_client_send_key_agreement
4217 in lib/silcclient/silcapi.h
4221 irssi/src/silc/core/silc-core.c
4223 lib/silcclient/silcapi.h
4224 irssi/src/silc/core/silc-channels.c
4225 lib/silcclient/client_keyagr.c
4228 Sat Nov 3 17:48:55 EET 2001 Pekka Riikonen <priikone@silcnet.org>
4230 * Added silc_pkcs_public_key_compare to compare two
4231 public keys. Affected file lib/silccrypt/silcpkcs.[ch].
4233 * Check that the client who set the founder mode on the
4234 channel is the same client that is giving the founder
4235 mode to itself. It is done by comparing the saved public
4236 key (it is saved even in the authentication is passphrase).
4237 Affected file silcd/command.c.
4239 Fri Nov 2 18:52:08 EST 2001 Pekka Riikonen <priikone@silcnet.org>
4241 * Do not process packet for disconnected socket connection.
4242 Affected file lib/silccore/silcpacket.c.
4244 * Process the DISCONNECT packet through scheduler in the
4245 client library. Affected file lib/silcclient/client.c.
4247 * Fixed the silc_client_packet_parse to not to increase
4248 the packet sequence number if the conn->sock and the
4249 current socket connection is not same. This can happen
4250 for example during key agreement when the conn includes
4251 multiple socket connections (listeners). Affected file
4252 lib/silcclient/client.c.
4254 * The sender of the file transfer request now provides also
4255 the pointer (listener) for the key exchange protocol. If
4256 the listener cannot be created then it sends empty key
4257 agreement and lets the receiver provide the listener.
4259 Added `local_ip' and `local_port' arguments to the
4260 silc_client_file_send. If they are provided they are used,
4261 if not then it will attempt to find local IP address, if
4262 not found or bind fails then the remote client will provide
4265 Affected files are lib/silcclient/client_ftp.c and
4266 lib/silcclient/silcapi.h.
4268 * Extended the FILE SEND command to support defining the
4269 local IP and port for key exchange listener. They are
4270 optional. Affected file irssi/src/silc/core/silc-servers.c.
4272 Thu Nov 1 22:10:07 EST 2001 Pekka Riikonen <priikone@silcnet.org>
4274 * Defined to WHOIS command reply the sending of fingerprint
4275 of the client's public key (if the proof of posession of the
4276 corresponding private key is verified by the server).
4277 Updated to the protocol specification.
4279 * Added support of receiving the client's public key's
4280 fingerprint in command reply in client library. Affected
4281 file is lib/silcclient/command_reply.c, and
4282 lib/silcclient/idlist.[ch].
4284 Thu Nov 1 18:06:12 EST 2001 Pekka Riikonen <priikone@silcnet.org>
4286 * Do not send over 128 chars long nickname to the server
4287 in NICK command. Affected file lib/silcclient/command.c.
4289 * Do not send over 256 chars long channel names to the server
4290 in JOIN command. Affected file lib/silcclient/command.c.
4292 Tue Oct 30 22:48:59 EST 2001 Pekka Riikonen <priikone@silcnet.org>
4294 * Assure that silc_server_close_connection cannot be called
4295 twice for same socket context. Affected file is
4298 Tue Oct 30 16:58:14 EST 2001 Pekka Riikonen <priikone@silcnet.org>
4300 * Send error message to application if opening file for
4301 writing during file transfer fails. Affected file is
4302 lib/silcclient/client_ftp.c.
4304 Remove all file transfer sessions for a client that we're
4305 removing from ID cache.
4307 Affected file is lib/silcclient/client_ftp.c.
4309 * Fixed silc_net_addr2bin to return correct address. Affected
4310 file lib/silcutil/[unix/win32]/silc[unix/win32]net.c.
4312 * Fixed file transfer session removing on signoff notify.
4313 Affected file irssi/src/silc/core/silc-servers.c.
4315 * Added the SilcClientFileError to be returned in the monitor
4316 callback. Added NO_SUCH_FILE and PERMISSION_DENIED errors.
4317 Affected file lib/silcclient/silcapi.h.
4319 Mon Oct 29 17:43:04 EST 2001 Pekka Riikonen <priikone@silcnet.org>
4321 * Fixed a crash in silc_client_ftp_free_sessions and
4322 silc_client_ftp_session_free_client. Affected file
4323 lib/silcclient/client_ftp.c.
4325 * Added `disabled' field in the SilcChannelEntry in the server
4326 to indicate if the server entry is disabled. Affected file
4327 silcd/idlist.h, silcd/command[_reply].c.
4329 * SILC server adds now /var/run/silcd.pid everytime it is
4330 started. Affected file silcd/silcd.c.
4332 * Added silc_server_packet_send_clients to send a packet to
4333 the provided table of client entries. Affected file
4334 silcd/packet_send.[ch].
4336 * Fixed a crash in client resolving in client_prvmsg.c in
4337 client library. Affected file lib/silcclient/client_prvmsg.c.
4339 * Do not actually remove the client directly from ID cache
4340 during SERVER_SIGNOFF, but invalidate it. This way we
4341 preserve the WHOWAS info for the client. Affected file
4342 silcd/server_util.c.
4344 * Fixed SERVER_SIGNOFF notify handling in the server. The
4345 server is now able to process incoming SERVER_SIGNOFF notify
4346 for a server that it doesn't even know about. It will remove
4347 the clients provided in the notify. Affected file
4348 silcd/packet_receive.c.
4350 * Check for partial packet in data queue after every packet that
4351 was found from the queue. Return and wait for more data if
4352 there is partial data in queue. Affected file is
4353 lib/silccore/silcpacket.c.
4355 Sun Oct 28 18:46:27 EST 2001 Pekka Riikonen <priikone@silcnet.org>
4357 * Added SilcClietFileError enum to indicate error in
4358 file transfer. Added SILC_CLIENT_FILE_MONITOR_KEY_AGREEMENT
4359 and SILC_CLIENT_FILE_MONITOR_ERROR new monitor statuses.
4360 Affected files lib/silcclient/silcapi.h and
4361 lib/silcclient/client_ftp.c.
4363 * Check that newsize in silc_buffer_realloc is larger than
4364 the old buffer's size. Affected file lib/silcutil/silcbufutil.h.
4366 * Added better monitor of file transfers. It now monitors
4367 key agreement protocol during the file transfer too. Added
4368 error reporting too. Affected files
4369 irssi/src/silc/core/silc-servers.c,
4370 irssi/src/fe-common/silc/module-formats.[ch].
4372 * Wrote a help file for FILE command.
4374 * Added silc_rng_global_get_byte_fast to get not-so-secure
4375 random data as fast as possible. Random data is read from
4376 /dev/urandom if available and from the SILC RNG if not
4377 available. It is used in padding generation. Affected file
4378 lib/silccrypt/silcrng.[ch].
4380 * All packets in client library are now processed synchronously.
4381 Optimized packet processing a lot. Affected file
4382 lib/silcclient/client.c.
4384 * All server connection packets are processing synchronously
4385 now in server, to optimize packet processing. Affected file
4388 * Include files are installed now only in Toolkit distribution
4389 if make install is given. Affected files: all Makefile.am's.
4391 Thu Oct 25 22:44:06 EDT 2001 Pekka Riikonen <priikone@silcnet.org>
4393 * Assure that silc_client_notify_by_server_resolve does not
4394 resolve the client information multiple times. If it cannot
4395 be found by the first it cannot be found at all. Affected
4396 file lib/silcclient/client_notify.c.
4398 * Fixed WHOWAS command reply calling. Affected file
4399 lib/silcclient/command_reply.c.
4401 * Removed all references to silc_idlist_get_client from the
4402 Irssi SILC client since that call is internal call used by
4403 the library. The Irssi SILC client will use now client
4404 retrieval functions found in silcapi.h.
4406 * Fixed a bug in resolving nickname info before sending
4407 private message. It used freed memory. Affected file
4408 irssi/src/silc/core/silc-servers.c.
4410 Thu Oct 25 19:04:49 EDT 2001 Pekka Riikonen <priikone@silcnet.org>
4412 * Assure my_channels statistics cannot go negative in server.
4413 Affected files silcd/server.c, silcd/server_util.c.
4415 Wed Oct 24 19:53:05 EDT 2001 Pekka Riikonen <priikone@silcnet.org>
4417 * Upgraded dotconf 1.0.2 to 1.0.6 in lib/dotconf.
4419 Tue Oct 23 13:51:19 EEST 2001 Pekka Riikonen <priikone@silcnet.org>
4421 * Win32 Toolkit changes. Affected files
4422 win32/silc.dsw, win32/libsilc/libsilc.def,
4423 win32/libsilcclient/libsilc.def,
4424 lib/silcutil/silcutil.c, and
4425 lib/sftp/sftp_fs_memory.c.
4427 Mon Oct 22 16:35:05 EDT 2001 Pekka Riikonen <priikone@silcnet.org>
4429 * Added silc_net_localip to return local host's IP address.
4430 Affected file lib/silcutil/silcnet.[ch].
4432 * If key exchange or rekey protocol is active for a connection
4433 parse all packets syncronously since there might be packets
4434 in packet queue that we are not able to process without first
4435 processing packets before them. Affected file silcd/server,
4436 lib/silcclient/client.c.
4438 * SilcPacketParserCallback now returns TRUE or FALSE to indicate
4439 whether library should continue processing the packet.
4440 Affected file lib/silccore/silcpacket.h.
4442 * Added SilcSFTPMonitor callback, SilcSFTPMonitors and
4443 SilcSFTPMonitorData to SFTP server to monitor various
4444 SFTP client requests. Affected file lib/silcsftp/silcsftp.h,
4445 lib/silcsftp/sftp_server.c.
4447 * Added silc_file_size to return file size. Affected file
4448 lib/silcutil/silcutil.[ch].
4450 * Implemented the file transfer support for the client library.
4451 Added preliminary support for simple client to client one-file
4452 transmission. Affected file lib/silcclient/client_ftp.c,
4453 lib/silccilent/client.[ch].
4455 * Added new local command FILE to the Irssi SILC Client.
4456 It is used to perform the file transfer. It has subcommands
4457 SEND, RECEIVE, SHOW and CLOSE. Affected files
4458 irssi/src/silc/core/client_ops.c,
4459 irssi/src/silc/core/silc-server.[ch].
4461 Mon Oct 22 12:50:08 EDT 2001 Pekka Riikonen <priikone@silcnet.org>
4463 * Relay the SILC_PACKET_FTP in the server. Affected files
4464 silcd/server.c and silcd/packet_receive.c.
4466 Sun Oct 21 20:21:02 EDT 2001 Pekka Riikonen <priikone@silcnet.org>
4468 * Renamed silc_file_read and silc_file_write to functions
4469 silc_file_readfile and silc_file_writefile. Added function
4470 silc_file_open and silc_file_close. Affected files
4471 lib/silcutil/silcutil.[ch].
4473 Thu Oct 18 20:58:13 EDT 2001 Pekka Riikonen <priikone@silcnet.org>
4475 * Resolve the client info when received private message or
4476 channel message for a client which nickname we don't know.
4477 Affected files lib/silcclient/client_prvmsg.c and
4478 lib/silcclient/client_channel.c.
4480 * Do not crash in /KEY if client is not connected. Affected
4481 file irssi/src/silc/core/silc-channels.c.
4483 * Added SilcClientStatus field to the SilcClientEntry in the
4484 lib/silcclient/idlist.h.
4486 Added SILC_CLIENT_STATUS_RESOLVING to mark that the entry
4487 is incomplete and is being resolved, it won't be resolved
4490 Make sure also that USERS command reply does not resolve
4491 twice information. Affected file is
4492 lib/silcclient/command_reply.c.
4494 Make sure that silc_client_get_clients_by_list does not
4495 resolve twice same information.
4497 * Check for valid client->id in the silc_server_free_client_data.
4498 Affected file silcd/server.c.
4500 * Fixed /GETKEY nick@server not to crash if the server entry
4501 is not found. Affected file lib/silcclient/command.c.
4503 * Fixed the silc_server_check_cmode_rights to check the
4504 requested modes correctly. Affected file silcd/command.c.
4506 Thu Oct 18 12:10:22 CEST 2001 Pekka Riikonen <priikone@silcnet.org>
4508 * Better checks for non-printable chars in nick added.
4509 Affected file silcd/command.c.
4511 Thu Oct 18 09:18:58 EDT 2001 Pekka Riikonen <priikone@silcnet.org>
4513 * Call the silc_server_udpate_servers_by_server in the
4514 primary router that comes back online in the backup resuming
4515 protocol. Otherwise it routes packets wrong. Affected file
4516 silcd/server_util.[ch], silcd/server_backup.c.
4518 Wed Oct 17 16:51:18 EDT 2001 Pekka Riikonen <priikone@silcnet.org>
4520 * Added SILC_STR_UI8_[N]STRING[_ALLOC] formats to the
4521 lib/silcutil/silcbuffmt.[ch].
4523 * Redefined the SILC packet header to include the padding
4524 length. Affected file lib/silccore/silcpacket.[ch].
4526 * Added SILC_PACKET_PADLEN_MAX macro to return the padding
4527 length for maximum padding up to 128 bytes). Affected
4528 file lib/silccore/silcpacket.h.
4530 * Removed all backwards support for old 0.5.x MAC thingies.
4531 The SILC packet header change makes it impossible to be
4532 backwards compatible.
4534 * Send the ENDING packet with timeout in the backup resuming
4535 protocol. This is to assure that all routers has connected
4536 to the primary router. Affected file silcd/server_backup.c.
4538 * Changed the RNG to take the first IV from random data. It
4539 used to take it from zero actually. Changed the RNG also
4540 to use /dev/urandom during session. /dev/random is used
4541 in initialization. Affected file lib/silccrypt/silcrng.[ch].
4543 Tue Oct 16 20:45:49 EDT 2001 Pekka Riikonen <priikone@silcnet.org>
4545 * Changed the SILC packet header to have the first two bytes
4546 (the packet length) encrypted. Affected files aroung the
4547 code tree, lib/silccore/silcpacket.[ch]. Removed the
4548 SilcPacketCheckDecrypt callback. It is not needed anymore
4549 since the silc_packet_receive_process will determine now
4550 whether the packet is normal or special.
4552 * Implemented the unidirectional MAC keys. Affected files
4553 lib/silcske/silcske.c, silcd/protocol.c and
4554 lib/silcclient/protocol.c.
4556 * Implemented the packet sequence number to the MAC computation.
4557 Affected files lib/silccore/silcpacket.c, silcd/protocol.c,
4558 silcd/packet_send.c, silcd/server.c, lib/silcclient/client.c,
4559 lib/silcclient/protocol.c.
4561 Mon Oct 15 17:42:55 EDT 2001 Pekka Riikonen <priikone@silcnet.org>
4563 * Allow backup router to announce servers. All servers
4564 announced by backup router are added to the global list
4565 automatically. Update hte server's socket to our primary
4566 router also when backup router announces a server.
4567 Affected file silcd/packet_receive.c.
4569 * Do not update the client->router in the function
4570 silc_server_udpate_clients_by_server if the client is on
4571 global list. We might fail to find any specific server
4572 for locally connected clients and local cell clients. They
4573 should still use the `from' and not `to' as client->router.
4574 This fixes backup router resuming protocol. Affected file
4575 silcd/server_util.c.
4577 * Decrease channel statistics count only if the channel
4578 deletion worked. Affected files are silcd/server.c and
4579 silcd/server_util.c.
4581 * Added silc_server_update_servers_by_server to update origin
4582 of all server entries. Used during backup router protocol.
4583 Affected files silcd/server_util.[ch], silcd/server.c. and
4584 silcd/backup_router.c.
4586 * ROBODoc documented the lib/silccrypt/silchmac.h. Added new
4587 function silc_hmac_init, silc_hmac_update, silc_hmac_final,
4588 silc_hmac_get_hash and silc_hmac_get_name. Affected file
4589 lib/silccrypt/silchmac.c.
4591 Sun Oct 14 18:28:22 EDT 2001 Pekka Riikonen <priikone@silcnet.org>
4593 * Assure that router cannot reroute the same channel message
4594 to the sender. Affected file silcd/packet_receive.c.
4596 Sat Oct 13 12:46:18 EDT 2001 Pekka Riikonen <priikone@silcnet.org>
4598 * Made better checks that the channel message is not sent
4599 to the router it came from. Affected file is
4600 silcd/packet_send.c. Fixed memory leak too.
4602 * Announce informations for incoming router connection, but
4603 only after checking if it is replaced by backup router.
4604 Affected file silcd/packet_receive.c.
4606 Fri Oct 12 18:37:24 EDT 2001 Pekka Riikonen <priikone@silcnet.org>
4608 * Fixed the backup resuming protocol to work in multiple
4609 router environment. Affected file silcd/server_backup.c.
4611 * Route packet only to one router in the function
4612 silc_server_packet_send_to_channel. Affected file is
4613 silcd/packet_send.c.
4615 * Fixed silc_server_send_notify_dest to set the broadcast
4616 flag. Fixed the silc_server_send_notify_topic to actually
4617 send the TOPIC_CHANGE notify and not SERVER_SIGNOFF notify.
4618 Affected file silcd/packet_send.c.
4620 * Changed the SFTP Filesystem interface. Changed the
4621 SilcSFTPFilesystemStruct to SilcSFTPFilesystemOps to include
4622 the filesystem operation function. The SilcSFTPFilesystem
4623 is now a context that is allocated by all filesystem allocation
4624 functions and it already includes the operations structure
4625 and filesystem specific context. It is given as argument
4626 now to the silc_sftp_server_start. This made the interface
4627 a bit cleaner. Affected file lib/silcsftp/silcsftp[_fs].h,
4628 lib/silcsftp/sftp_fs_memory.c and sftp_server.c.
4630 Thu Oct 11 22:19:26 EDT 2001 Pekka Riikonen <priikone@silcnet.org>
4632 * Changed the backup router adding and getting interfaces
4633 in the server. The router that will be replaced by the
4634 specified backup router is now sent as argument. Affected
4635 files silcd/serverconfig.[ch], silcd/backup_router.[ch], and
4638 * Added silc_net_addr2bin_ne to return the binary form of
4639 the IP address in network byte order. Affected files
4640 lib/silcutil/[unix/win32].silc[unix/win32]net.[ch].
4642 Thu Oct 11 12:14:19 EDT 2001 Pekka Riikonen <priikone@silcnet.org>
4644 * Check for existing server ID in silc_server_new_server
4645 and in silc_server_connect_to_router_final and remove the
4646 old entry if it exists. Affected file silcd/packet_receive.c,
4649 * Send the channel message always to only one router, either
4650 in upstream or downstream. Affected file is
4651 silcd/packet_send.c.
4653 Tue Oct 9 17:45:43 EDT 2001 Pekka Riikonen <priikone@silcnet.org>
4655 * Wrote the definition of the backup resuming protocol to the
4656 protocol specification.
4658 * Removed one redundant channel key generation from normal
4659 server during joining procedure. Removed one redundant
4660 channel key sending from server to router during joining
4661 procedure. Affected file silcd/command.c.
4663 * Made minor bugfixes to the backup router resuming protocol.
4664 Affected file silcd/server_backup.c, server.c.
4666 Mon Oct 8 16:47:42 EDT 2001 Pekka Riikonen <priikone@silcnet.org>
4668 * Added --disable-asm configuration option. Affected files
4669 configure.in.pre, lib/silcmath/mpi/configure.in. A patch
4672 * Implemented the backup resuming protocol that is used to
4673 resume the primary router position in the cell after the
4674 primary router comes back online. Affected files
4675 silcd/server_backup.[ch], silcd/server, silcd/packet_receive.c,
4676 and silcd/server_util.[ch].
4678 Sun Oct 7 12:29:25 EDT 2001 Pekka Riikonen <priikone@silcnet.org>
4680 * Sleep two (2) seconds after sending QUIT command to server.
4681 Affected file lib/silcclient/command.c.
4683 * Assure that if outgoing data buffer is pending do not force
4684 send any data. Affected file silcd/packet_send.c.
4686 * Assure that if outgoing data buffer is pending do not force
4687 send any data. Affected file lib/silcclient/client.c.
4689 * Implemented the backup router support when the primary router
4690 goes down. The servers and routers can now use the backup
4691 router as new primary router without loosing connectivity.
4693 Sat Oct 6 21:18:54 EDT 2001 Pekka Riikonen <priikone@silcnet.org>
4695 * Added new SILC_IDLIST_STATUS_DISABLED flag for entries
4696 in the server to indicate disabled entry. All data read
4697 from the connection will be ignored and no data is sent
4698 for entry that is disabled. Affected files are
4699 silcd/idlist.h, silcd/server.c.
4701 Fri Oct 5 00:03:29 EDT 2001 Pekka Riikonen <priikone@silcnet.org>
4703 * Created SFTP client and server test programs in the
4704 lib/silcsftp/tests directory.
4706 Wed Oct 3 23:31:42 EDT 2001 Pekka Riikonen <priikone@silcnet.org>
4708 * Implemented memory filesystem (virtual filesystem) for
4709 SFTP server. Affected file lib/silcsftp/silcsftp_fs.h,
4712 Sun Sep 30 22:10:57 EEST 2001 Pekka Riikonen <priikone@silcnet.org>
4714 * Implemented the SFTP (SSH File Transfer Protocol) to the
4715 lib/silcsftp. It includes SFTP client and SFTP server
4718 Sun Sep 30 10:35:44 EEST 2001 Pekka Riikonen <priikone@silcnet.org>
4720 * Moved lib/silccore/silcprotocol.[ch] to the
4721 lib/silcutil library.
4723 * Added silc_buffer_format_vp and silc_buffer_unformat_vp to
4724 take variable argument list pointer as argument. Affected
4725 file lib/silcutil/silcbuffmt.[ch].
4727 * Added silc_buffer_set function that is used to set data
4728 to a SilcBuffer that is not allocated at all (SilcBufferStruct).
4729 Affected file lib/silcutil/silcbuffer.h.
4731 * Changed various routines in the core library to use the new
4732 silc_buffer_set instead of allocating new buffer only for
4735 * Added 64-bit value formatting and unformatting support to the
4736 silc_buffer_[un]format routines. Affected file is
4737 lib/silcutil/silcbuffmt.[ch].
4739 Added also 64-bit macros: SILC_GET64_MSB and SILC_PUT64_MSB,
4740 to includes/bitmove.h.
4742 Fri Sep 28 21:30:10 EEST 2001 Pekka Riikonen <priikone@silcnet.org>
4744 * Fixed channel user mode saving in client library. Affected
4745 file lib/silcclient/command[_reply].c.
4747 Thu Sep 27 22:52:30 EEST 2001 Pekka Riikonen <priikone@silcnet.org>
4749 * Defined the file transfer to the SILC Protocol. Added
4750 new packet type SILC_PACKET_FTP and defined File Transfer
4751 Payload. The mandatory file transfer protocol is SFTP
4752 (SSH File Transfer Protocol). Affected file in addition
4753 of the internet draft is lib/silccore/silcpacket.h.
4755 * Deprecated the SILC_PACKET_CELL_ROUTERS and defined new
4756 packet SILC_PACKET_RESUME_ROUTER instead. The new packet
4757 is used as part of backup router protocol when the primary
4758 router of the cell is back online and wishes to resume
4759 the position as primary router.
4761 * Redefined the MAC generation keys in the protocol. The
4762 same key is not used anymore in both direction. Both
4763 direction will now use different keys for sending and
4764 receiving. This fixes a potential security flaw. This
4765 change causes incompatibilities in the protocol.
4767 * Redefined also the MAC computation from the packet.
4768 An packet sequence number is now added to the MAC
4769 computation. This prevents possible replay attacks against
4770 the protocol. This change too causes incompatibilities
4773 Added `sequence' field to the SilcPacketContext to hold
4774 the current sequence number for the packet.
4776 Wed Sep 26 20:15:22 EEST 2001 Pekka Riikonen <priikone@silcnet.org>
4778 * Added `created' field to the SilcIDListData in the file
4779 silcd/idlist.h to indicate the time when the entry was
4782 * Added `created' field to the SilcChannelEntry too. Affected
4783 file silcd/idlist.h.
4785 * Added `creation_time' aguments to all the announcement functions
4786 in the server. If it is provided then only the entries that
4787 was created after the provided time frame are actually
4788 announced. Affected file silcd/server.[ch].
4790 * The protocol says that the Channel ID's IP address must be
4791 based on the router's IP address. Added check for this in
4792 the silc_server_new_channel when processing incoming New Channel
4793 Payload. Affected file silcd/packet_receive.c.
4795 * Print out the correct version with --version in SILC client.
4796 Affected file irssi/src/silc/core/silc-core.c.
4798 Mon Sep 24 17:19:00 EEST 2001 Pekka Riikonen <priikone@silcnet.org>
4800 * Fixed WHOWAS command to check for completnes of the client
4801 entry always, not just when the command is coming from client.
4802 Affected file silcd/command.c.
4804 * Added new function silc_server_packet_queue_purge to purge the
4805 outgoing data queue to the network. After the function returns
4806 it is guaranteed that the outgoing packet queue is empty.
4807 Affected file silcd/packet_send.[ch].
4809 * Purge the outgoing packet queue in the rekey protocol's final
4810 callback to assure that all rekey packets go to the network
4811 before quitting the protocol. Affected file silcd/server.c.
4813 * Added silc_client_packet_queue_parse as similar function as
4814 in server to the client library. The affected file is
4815 lib/silcclient/client.c.
4817 Sun Sep 23 15:15:53 EEST 2001 Pekka Riikonen <priikone@silcnet.org>
4819 * Splitted silcd/server.c and created silcd/server_util.[ch]
4820 for utility functions.
4822 * Added new socket flag SILC_SF_DISABLED to indicate that the
4823 connection is open but nothing can be sent to or received from
4824 the connection. Affected file lib/silcutil/silsockconn.[ch].
4825 The checking for disabled socket is checked in the low level
4826 silc_socket_write and silc_socket_read functions.
4828 Thu Sep 20 23:11:28 EEST 2001 Pekka Riikonen <priikone@silcnet.org>
4830 * Allow only nicknames and channel names that fits into the
4831 7-bit unsigned char ASCII set. Affected file silcd/command.c.
4833 Thu Sep 20 18:04:12 EEST 2001 Pekka Riikonen <priikone@silcnet.org>
4835 * When processing JOIN command reply in server check that if
4836 the channel exists in our global list we'll move it the local
4837 list. Affected file silcd/command_reply.c.
4839 * Fixed the check whether client is joined on the channel already
4840 in JOIN command. Affected file lib/silcclient/command.c.
4842 * Fixed the JOIN command reply to check whether the channel
4843 already exists. Affected file lib/silcclient/command_reply.c.
4845 Wed Sep 19 22:58:32 EEST 2001 Pekka Riikonen <priikone@silcnet.org>
4847 * Added silc_ske_status_string to map the SKE error numbers
4848 to readable strings. The affected files are
4849 lib/silcske/silcske[_status].[ch].
4851 Tue Sep 18 22:50:41 EEST 2001 Pekka Riikonen <priikone@silcnet.org>
4853 * Do not show the private channels on the WHOIS channel list
4854 as it is not allowed by the protocol. The affected file is
4857 Sun Sep 16 12:32:58 EEST 2001 Pekka Riikonen <priikone@silcnet.org>
4859 * Assure that the packet length digged from the actual packet
4860 is something sensible in the silc_packet_decrypt_rest_special
4861 in lib/silccrypt/silcpacket.c.
4863 * Free and NULL the allocated pointer in silc_hmac_alloc if
4864 the HMAC allocation fails. The affected file is
4865 lib/silccrypt/silchmac.c.
4867 * Print the selected security properties to the log files in
4868 the server. Affected file silcd/protocol.c.
4870 * Add SKE's reference counter even if calling the completion
4871 callback manually. Otherwise it goes negative, although it
4872 does not cause any problems. The affected file is
4873 lib/silcske/silcske.c.
4875 * Remove the client entry with short timeout after giving the
4876 KILL command. Affected file lib/silcclient/command.c.
4878 * Fixed to send error reply in WHOIS and IDENTIFY commands in
4879 case all found clients are already disconnected (WHOWAS would
4880 found them) in the server. Affected file silcd/command.c.
4882 * Update the last_receive (time of last data received) to be
4883 updated only when received private or channel message so that
4884 the idle time showed in WHOIS makes more sense.
4886 * Added boolean field `valid' in to the SilcClientEntry in the
4887 client library to indicate whether the entry is valid or not.
4888 This fixes the nickname change bug on channel when changing
4889 the nickname to be same than the old (like nick to Nick) the
4890 nickname formatter doesn't set the new nick anymore to Nick@host.
4891 Affected file lib/silcclient/idlist.[ch].
4893 * Now actually fixed the nickname changing on disconnection.
4894 Added new function silc_change_nick to the Irssi SILC Client.
4895 Affected file irssi/src/silc/core/client_ops.c,
4896 irssi/src/silc/core/silc-nicklist.[ch].
4898 Sat Sep 15 13:29:17 EEST 2001 Pekka Riikonen <priikone@silcnet.org>
4900 * Check that the public key exists in the GETKEY command before
4901 trying to encode it. Affected file silcd/command.c.
4903 * Print some notifications on received public keys with GETKEY
4904 command in the Irssi SILC Client. Affected files are
4905 irssi/src/fe-common/silc/module-formats.[ch],
4906 irssi/src/silc/core/client_ops.c.
4908 * Use IDENTIFY command to resolve the server information in the
4909 GETKEY command instead of INFO command. Affected file
4910 lib/silcclient/command.c.
4912 * All command reply functions in the client library now calls
4913 the pending command reply callbacks even if an error has
4914 occurred. The server has done this a long time and now it was
4915 time to move the client library to this as well. Now all
4916 errors can be delivered back to the pending command reply
4917 callbacks if necessary. Affected files are
4918 lib/silcclient/command[_reply].[ch].
4920 * Change the nickname on disconnection back to the username
4921 because in reconnect the server will enforce it to it anyway.
4922 Affected file irssi/src/silc/core/silc-servers.c.
4924 * Fixed a config file parsing bug in the Irssi SILC client.
4925 Affected file irssi/src/silc/core/clientconfig.c.
4927 Thu Sep 13 23:11:18 EEST 2001 Pekka Riikonen <priikone@silcnet.org>
4929 * When printing the channel mode on JOIN, verify that the
4930 channel key and channel's HMAC are valid. Affected file
4931 irssi/src/silc/core/client_ops.c.
4933 Thu Sep 13 20:24:52 EEST 2001 Pekka Riikonen <priikone@silcnet.org>
4935 * Added defines SILC_DEFAULT_CIPHER, SILC_DEFAULT_HMAC,
4936 SILC_DEFAULT_HASH and SILC_DEFAULT_PKCS in the file
4937 lib/silccrypt/[silccipher.h|silchmac.h|silchash.h|silcpkcs.h].
4939 * Removed channel key rekey task deleting from the function
4940 silc_server_save_channel_key. Affected file silcd/server.c.
4941 Added explicit timeout task context instead that is used to
4942 delete the task if we are registering a new task before the
4943 new task has elapsed.
4945 * When channel key rekey occurs the client library now saves
4946 the old channel key for a short period of time (10 seconds) and
4947 is able to use it in case some is still sending channel
4948 messages encrypted with the old key after the rekey. Affected
4949 file lib/silcclient/[idlist.h|client_channel.c].
4951 Sun Sep 9 15:49:16 EEST 2001 Pekka Riikonen <priikone@silcnet.org>
4953 * Added check to the silc_server_new_id_real to not accept
4954 new ID if it is the sender's own ID. Affected file is
4955 silcd/packet_receive.c.
4957 * Assure that we do not announce ourself or the one we've
4958 sending our announcements when we're router and are announcing
4959 servers to our primary router. Affected file silcd/server.c.
4961 * Fixed silc_server_command_identify_check_client to assemble
4962 correct WHOIS packet. It send corrupted WHOIS packet and
4963 caused problem with router to router connections. Affected
4964 file silcd/command.c.
4966 Fixed also silc_server_command_whois_check the same way
4967 as for the IDENTIFY command.
4969 * Added new SilcIDListStatus to the server in the SilcIDListData
4970 structure. The status now includes the current status of
4971 the entry (like registered, resolved etc.). Affected file
4972 silcd/idlist.[ch]. Defined a bunch of different status types
4973 as well. This replaced the old boolean registered field as well.
4975 Added resolve_cmd_ident field to the SilcClientEntry structure
4976 too so that if the entry is for example being resolved so
4977 another command may attach to the same pending command reply
4978 without requiring to resolve the same entry again. This concept
4979 should optimize the WHOIS and the IDENTIFY resolving under
4980 heavy load by taking away unnecessary resolving for entries
4981 that are being resolved already.
4983 Added support for adding multiple pending commands for one
4984 command idenfier. Affected file silcd/command[_reply].[ch].
4986 * Fixed WHOIS and IDENTIFY save to remove the cache entry
4987 before deleting the data. Otherwise the hash table will have
4988 freed data in comparison functions. Affected file is
4989 silcd/command_reply.c.
4991 * Fixed silc_idlist_replace_client_id to add the new entry to
4992 the cache with NULL nickname. Otherwise there will be invalid
4993 memory as the nickname after the nickname is freed. Affected
4994 file silcd/packet_receive.c.
4996 * Fixed the silc_idlist_get_clients_by_hash. The entries was
4997 saved into wrong slots because the previous number of entries
4998 was not taken into account. Affected file silcd/idlist.c.
4999 Fixed same thing in silc_idlist_get_clients_by_nickname too.
5001 * If we are router and we receive JOIN notify to a channel that
5002 does not have any users then notified client is marked as the
5003 channel founder, as it is it. The affected file is
5004 silcd/packet_receive.c
5006 * Added to the extended hash table API's table_del_*ext functions
5007 the destructor as argument too, so that the caller can decide
5008 which destructor to use or whether to use destructor at all.
5009 Affected file lib/silcutil/silchashtable.[ch].
5011 * Fixed ID Cache purging. It actually deleted the entries from
5012 the hash table after the data was freed. The hash table ended
5013 up comparing freed memory. The affected file is
5014 lib/silccore/silcidcache.c.
5016 Sat Sep 8 10:22:10 EEST 2001 Pekka Riikonen <priikone@silcnet.org>
5018 * Fixed Irssi SILC client's KILL command's HELP syntax.
5020 * The USERS command now resolves the detailed user information
5021 if the userinfo field is missing. Affected file is
5022 lib/silcclient/command_reply.c.
5024 * Do not print error in silc_file_read if the read file does
5025 not exist. Just silently return NULL. Affected file is
5026 lib/silcutil/silcutil.c.
5028 * Fixed the silc_log_output to not wine about NULL filename
5029 and to not create some bogus " " filename. Affected file is
5030 lib/silcutil/silclog.c.
5032 Fri Sep 7 22:16:38 EEST 2001 Pekka Riikonen <priikone@silcnet.org>
5034 * Fixed various printing bugs on the user interface in the
5035 Irssi SILC Client. Minor changes that were forgotten from
5038 Fri Sep 7 17:28:37 EEST 2001 Pekka Riikonen <priikone@silcnet.org>
5040 * Fixed the configure.in.pre and the compilation and distribution
5041 environment to support the new autoconf 2.52. That version is
5042 now required to compile the CVS trunk.
5044 Thu Sep 6 12:47:37 EEST 2001 Pekka Riikonen <priikone@silcnet.org>
5046 * Renamed function silc_parse_nickname to silc_parse_userfqdn
5047 to generally parse user@fqdn format strings. Affected file
5048 lib/silcutil/silcutil.c.
5050 * Added nickname_format and nickname_force_format fields to the
5051 SilcClientParams structure. The first one defines the format
5052 for the nicknames that the library will enforce if the receives
5053 multiple same nicknames. The second one is boolean value and
5054 can be used to force the library to always enforce the format
5055 to the nicknames regardles whether there are multiple nicknames
5056 or not. This configurable formatting was employed to flexibly
5057 support accessing multiple nicknames from the user interface.
5058 The userinterface can now set the nicknames to what ever format
5059 they prefer. Affected file lib/silcclient/silcapi.h.
5061 Added function silc_client_nickname_format to the file
5062 lib/silcclient/idlist.c. It performs the nickname formatting.
5064 Added new field `hostname´ to the SilcClientEntry context.
5065 It holds the hostname of the client. Affected file is
5066 lib/silcclient/idlist.h.
5068 * Irssi SILC Client sets the nicknames in nick@hostn format.
5069 Fe. priikone@otaku, priikone@otaku2 etc. Affected file
5070 irssi/src/silc/core/silc-core.c.
5072 The WHOIS printing now also shows both the real nickname and
5073 the formatted nickname so that user knows how to access the
5074 user if there are multiple same nicknames cached. Affected
5075 file irssi/src/silc/core/client_ops.c. Changed the WHOIS
5076 printing formatting too to take the hostname now as a separate
5077 argument. The Affected file is
5078 irssi/src/fe-common/silc/modules-formats.[ch].
5080 * Changed the silc_client_get_clients_local to accept the formatted
5081 nickname as argument. It accepts the real nickname too but the
5082 formatted nickname can be used to find the true entry from
5083 multiple entries. Affected file lib/silcclient/silcapi.h and
5084 lib/silcclient/idlist.c.
5086 * Added nickname_format_parse field to the SilcClientParams.
5087 It is a callback function provided by the application to parse
5088 the nickname out of the formatted nickname string. The library
5089 calls it to get the nickname from the formatted string. Since
5090 the application generally knows better the format of the nickname
5091 string it parses it instead of the library, even though library
5092 encodes the formatted string. If the callback function is not
5093 provided then the library will use the string as is. The
5094 affected file is lib/silcclient/silcapi.h.
5096 * All the nickname strings passed to the client library in
5097 commands are now expected to be formatted nickname strings.
5098 If the command does not support the formatted nickname string
5099 it will assume that the sent string is the actual nickname.
5100 Affected file lib/silcclient/command.c.
5102 Tue Sep 4 22:31:28 EEST 2001 Pekka Riikonen <priikone@silcnet.org>
5104 * Added public key authentication support to OPER and SILCOPER
5105 commands in the client library. Affected file is
5106 lib/silcclient/command.c.
5108 Tue Sep 4 12:39:17 EEST 2001 Pekka Riikonen <priikone@silcnet.org>
5110 * Changed the get_auth_methdod client operation to be asynchronous.
5111 It can be async if the application resolves the authentication
5112 method from the server during the negotiation. Added new
5113 SilcGetAuthMeth completion callback that the application will
5114 call after resolving the authentication method.
5116 Added function silc_client_request_authentication_method that
5117 the application can use to resolve the authentication method
5118 from the server. Added also SilcConnectionAuthRequest callback
5119 that the library will call after the server has replied. The
5120 application can call this function if it does not know the
5121 current authentication method.
5123 Affected files are lib/silcclient/client.c and
5124 lib/silcclient/silcapi.h.
5126 * The Irssi SILC client now automatically resolves the authentication
5127 method incase any configuration information is not present (and
5128 currently there never is). The affected file is
5129 irssi/src/silc/core/client_ops.c.
5131 * Fixed public key authentication from the client library.
5132 Affected file lib/silcclient/protocol.c. Changed also the
5133 protocol specification about the public key authentication in
5134 the connection authentication protocol. The actual data to be
5135 signed is now computed with a hash function before signing.
5137 * Fixed the public key authentication from the server as well.
5138 Affected file silcd/protocol.c.
5140 * Removed the mlock()'s from the memory allocation routines.
5141 Affected file lib/silcutil/silcmemory.c. The ./configure does
5142 not check anymore for the mlock(). Affected file is
5145 * Fixed USERS command in server to allow the execution of the
5146 command for private and secret channels if the client sending
5147 the command is on the channel. Affected file silcd/command.c.
5149 * Fixed silc_client_get_clients_local to return the clients
5150 count correctly. It could return wrong value. Affected file
5151 lib/silcclient/idlist.c.
5153 Mon Sep 3 20:09:59 EEST 2001 Pekka Riikonen <priikone@silcnet.org>
5155 * Fixed the lib/silcmath/mpi/mpi.h to always use 32-bit data
5156 types. The assembler optimizations seemed not to like 64-bit
5157 data types. The assmebler optimizations thus are now enabled
5158 also for BSD systems as opposed to only enable them for Linux.
5160 * Do not check for threads at all on BSD systems. Affected
5161 file configure.in.pre.
5163 * Removed -n and -h options from the Irssi SILC Client since
5164 they are not used in silc.
5166 * Fixed the prime generation to assure that the first digit
5167 of the generated random number is not zero since our conversion
5168 routines does not like number strings that starts with zero
5169 digit. If zero digit is seen the random number is regenerated.
5170 This caused some corrupted RSA keys when the zero first digit
5171 was met. Affected file lib/silcmath/silcprimegen.c.
5173 Sun Sep 2 17:17:24 EEST 2001 Pekka Riikonen <priikone@silcnet.org>
5175 * Fixed WIN32 configuration in the ./configure script.
5176 Fixed to include xti.h on environments that has it.
5177 Patches by Carsten Ilchmann and andrew.
5179 Sat Sep 1 00:29:33 EEST 2001 Pekka Riikonen <priikone@silcnet.org>
5181 * Changed the silc_id_create_client_id to be collision
5182 resistant. It is now assured that there cannot be created
5183 two same client ID's. I suspect that some weird bugs in
5184 the server were actually caused by duplicate Client IDs.
5185 Affected file silcd/serverid.[ch]. A router receiving
5186 new ID now also assures and informs the sending server
5187 if the ID caused collision.
5189 * Changed the silc_id_create_channel_id to also assure that
5190 there are no collisions.
5192 Wed Aug 29 17:55:01 EEST 2001 Pekka Riikonen <priikone@silcnet.org>
5194 * Statement about ignoring the Mutual Authentication flag when
5195 performing rekey with PFS was a bit misleading. It is ignored
5196 if it was set in the initial negotiation, it cannot be even
5197 set in the rekey. Fixed in the ke-auth draft. Started the
5198 new versions of the protocol drafts in the doc/.
5200 Sun Aug 26 14:59:15 EEST 2001 Pekka Riikonen <priikone@silcnet.org>
5202 * Fixed a bug in silc_client_command_identify_save when saving
5203 new channel information. The channel name was no duplicated
5204 and caused crash on exit. Affected file is
5205 lib/silcclient/command_reply.c.
5207 Fri Aug 17 23:07:45 EEST 2001 Pekka Riikonen <priikone@silcnet.org>
5209 * Fixed the getkey command handling in the server. Send just
5210 empty OK reply to the sender if the key could not be fetched
5211 (but everything else was ok, like the key just was not available).
5212 Changed the public key parameter to optional in the protocol
5213 specs so that empty OK reply can be sent. Affected file
5216 Added a message to Irssi SILC client to tell to user if the
5217 server did not return a public key.
5219 Tue Aug 14 07:29:27 CEST 2001 Pekka Riikonen <priikone@silcnet.org>
5221 * Fixed a channel key regeneration bug. It registered new
5222 timeout tasks exponentially until all system resources were
5223 used. Affected file silcd/server.c.
5225 Sun Aug 12 20:48:14 EEST 2001 Pekka Riikonen <priikone@silcnet.org>
5227 * Added the SILC Document generator to the scripts/silcdoc.
5228 It can be used to generate the Toolkit Reference Manual out
5229 of the source tree. Internally it will also use the RoboDoc
5230 generator now imported in util/robodoc.
5232 Sun Aug 12 12:28:17 EEST 2001 Pekka Riikonen <priikone@silcnet.org>
5234 * Added couple of return's in rekey protocol if error orccurred
5235 during the protocol. The execution must be terminated.
5236 Affected file silcd/protocol.c. Also, terminate the protocol
5237 always with timeout.
5239 Sat Aug 11 12:36:02 EEST 2001 Pekka Riikonen <priikone@silcnet.org>
5241 * The client's Client ID was created initally from the wrong
5242 nickname (it could have been in format nick@host) in the
5243 silc_server_new_client. Affected file silcd/packet_receive.c
5245 Sat Aug 11 00:29:57 EEST 2001 Pekka Riikonen <priikone@silcnet.org>
5247 * Added some SILC_LOG_ERROR's to various error conditions
5248 if client could not be added to ID cache. Affected files
5249 silcd/packet_receive.c and silcd/server.c.
5251 * When client's sock->user_data is freed, NULL also the
5252 client->router and client->connection pointers. Added check
5253 for these pointers being NULL to various places around the
5254 code. Affected file silcd/server.c.
5256 * Added client->data.registered == TRUE checks to various
5257 places around the code to assure that unregistered client's
5258 are not handled when it is not allowed. Affected file
5261 * Added `bool registered' fields to all
5262 silc_idlist_[server|client]_get_* routines to indicate whether
5263 the fetched client needs to be registered or not. Affected
5264 file silcd/idlist.[ch].
5266 * Add your own entry as registered to the ID cache in the
5267 server. Affected file server.c.
5269 * Fixed a bug in silc_server_new_server. The SilcServer was
5270 set as the new server's context instead of SilcServerEntry.
5271 This naturally caused some weird bugs.
5273 * Added "updated" field the SilcChannelEntry which indicates
5274 the time since the channel entry was last accessed. This
5275 can be used to determine whether it is necessary to
5276 announce the channel after backup resuming protocol.
5277 Affected files silcd/idlist.[ch].
5279 Thu Aug 9 18:28:37 EEST 2001 Pekka Riikonen <priikone@silcnet.org>
5281 * Do not delete the channel rekey task when adding it
5282 for in silc_server_create_channel_key.
5284 * Changed the silc_server_create_channel_key to return
5285 TRUE or FALSE to indicate the success of the channel key
5288 Thu Jul 26 11:32:31 EEST 2001 Pekka Riikonen <priikone@silcnet.org>
5290 * Fixed MSVC++ project files and added missing files to
5291 Makefiles under win32/.
5293 Wed Jul 25 18:43:54 EEST 2001 Pekka Riikonen <priikone@silcnet.org>
5295 * Do not add TCP_NODELAY flag if the operating system
5296 does not have it defined. Affected files are
5297 lib/silcutil/[unix/win32]/silc[unix/win32]net.c.
5299 * Fixed buffer overflow from Irssi SILC Client. Affected
5300 file irssi/src/fe-common/core/themes.c.
5302 * Fixed double free in client library in the file
5303 lib/silcclient/client.c when disconnecting from server.
5305 * Applied double free patch from cras to Irssi SILC client.
5306 Affected files irssi/src/core/[modules/expandos].c
5308 * Fixed the disconnection handling to Irssi SILC Client.
5309 The application must call silc_client_close_connection
5310 in ops->connect client operation in case of failure of
5311 the connection. Affected file is
5312 irssi/src/silc/core/client_ops.c.
5314 * Do not set sock->protocol to NULL in the function
5315 silc_client_close_connection after executing the protocol's
5316 final callback since the sock might not be valid anymore.
5317 Affected file lib/silcclient/client.c.
5319 Wed Jul 25 16:04:35 EEST 2001 Pekka Riikonen <priikone@silcnet.org>
5321 * Do not enable SILC_THREADS if the linking with libpthread
5322 did not happen. Affected file configure.in.pre.
5324 * Added notion to protocol specification that server must
5325 verify the sent authentication payload with CMODE when
5326 setting the channel founder key. Implemented it to the
5327 server. Affected file silcd/command.c.
5329 Mon Jul 23 18:31:43 EEST 2001 Pekka Riikonen <priikone@silcnet.org>
5331 * Added _EXTRA_DIST SILC distribution variable to the
5332 distributions file. It is used to conditionally add extra
5333 files or directories to the specific distribution. Affected
5334 files ./prepare, Makefile.am.pre and distributions.
5336 Removed the `_' from the start of the distribution names.
5339 * Added README.WIN32 for instructions to compile the Toolkit
5342 Mon Jul 23 10:12:37 EEST 2001 Pekka Riikonen <priikone@silcnet.org>
5344 * Fixed a double free in disconnection in the server. Affected
5345 file is silcd/server.c.
5347 * Fixed the lib/silcske/groups.c to work now also with GMP
5348 MP library. The string conversion did not work when using
5349 specific base and the base is indicated in the string as well.
5351 * Created win32/ directory which now includes MSVC++ specific
5352 stuff so that toolkit (DLLs) may be compiled with MSVC++.
5353 It will appear only in the toolkit distribution
5355 Sun Jul 22 19:40:30 EEST 2001 Pekka Riikonen <priikone@silcnet.org>
5357 * Changed the key material distribution function in case when
5358 the hash output is too short. The data is now concatenated
5359 a bit differently than it used to. Made the change to the
5360 SKE protocol specification.
5362 * Added better GMP detection to configure.in.pre. A patch
5365 Fri Jul 20 13:16:00 EEST 2001 Pekka Riikonen <priikone@silcnet.org>
5367 * Fixed a minor bug in SKE that might cause some problem on
5368 some platforms. Affected file lib/silcske/silcske.c.
5370 * Added the cookie checking for initiator in the SKE. It checks
5371 that the responder returns the sent cookie unmodified. The
5372 affected file is lib/silcske/silcske.c. Added new SKE
5373 error type INVALID_COOKIE that can be sent during the
5374 negotiation. Fixed some memory leaks as well.
5376 * Added the "invalid cookie" error message to Irssi SILC client's
5379 Thu Jul 19 21:44:31 EEST 2001 Pekka Riikonen <priikone@silcnet.org>
5381 * Added `task_max' field to the SilcClientParams to indicate
5382 the maximum tasks the scheduler can handle. If set to zero,
5383 default values are used. Affected file lib/silcclient/silcapi.h.
5385 * Fixed memory leaks in silc_client_close_connection. Affected
5386 file lib/silcclient/client.c.
5388 * Added silc_client_del_client_entry to client library to free
5389 all memory of given client entry. Affected file is
5390 lib/silcclient/idlist.[ch].
5392 * Added new functions silc_client_del_channel and
5393 silc_client_del_server to delete channel and server entries.
5394 Affected file lib/silcclient/[silcapi.h/idlist.c].
5396 * Removed silc_client_del_client_by_id from silcapi.h.
5398 * Fixed the INFO command to return the server's own info
5399 correctly when querying by Server ID. Affected file is
5402 Thu Jul 19 14:47:30 EEST 2001 Pekka Riikonen <priikone@silcnet.org>
5404 * Removed the non-blocking settings in WIN32 code in the
5405 silc_sock_[read/write] and added SleepEx instead. Affected
5406 file lib/silcutil/win32/silcwin32sockconn.c. The availability
5407 of input data is now checked with FIONREAD and ioctlsocket.
5409 Wed Jul 18 18:34:01 EEST 2001 Pekka Riikonen <priikone@silcnet.org>
5411 * Call silc_schedule_task_del_by_context in the
5412 silc_protocol_cancel instead of silc_schedule_task_del_by_callback.
5413 Affected file lib/silccore/silcprotocol.c.
5415 * Call silc_protocol_cancel for active protocols in the
5416 silc_server_close_connection if the funtion
5417 silc_server_free_sock_user_data has not been called.
5418 Affected file silcd/server.c.
5420 * Generic tasks cannot be deleted using the del_by_fd
5421 task deleting function since generic tasks does not match
5422 any specific fd. Affected file lib/silcutil/silcschedule.[ch].
5424 * Added a notion to SILCOPER help file that the SILCOPER works
5425 only on router server, not on normal server.
5427 Wed Jul 18 09:40:04 EEST 2001 Pekka Riikonen <priikone@silcnet.org>
5429 * Added for WIN32 support for the new scheduler as well.
5430 Affected file lib/silcutil/win32/silcwin32schedule.c.
5432 * Fixed the SHA1 implementation to work on various platforms.
5434 Tue Jul 17 23:04:10 EEST 2001 Pekka Riikonen <priikone@silcnet.org>
5436 * Rewrote the SILC Scheduler entirely. Removed the old SILC Task
5437 API. It is part of the scheduler now. Everything else is
5438 as previously but some functions has changed their names.
5439 Checkout the lib/silcutil/silcschedule.h for the interface.
5440 Updated all applications to use the new interface. Affected
5441 files are lib/silcutil/silcschedule.[ch].
5443 Tue Jul 17 16:53:30 EEST 2001 Pekka Riikonen <priikone@silcnet.org>
5445 * Found a bug in the SKE implementation. The HASH value,
5446 specified by the protocol, was not computed correctly. The
5447 public key of the responder was not added to the computation
5448 even though it is mandatory. Affected file lib/silcske/silcske.c.
5449 This unfortunately causes incompatibilities with older
5450 clients and servers.
5452 * Added WIN32 specific network init and uninit functions:
5453 silc_net_win32_init and silc_net_win32_uninit to init and uninit
5454 the Winsock2. Affected file lib/silcutil/silcnet.h and
5455 lib/silcutil/win32/silcwin32net.c.
5457 * Set the socket always to nonblocking mode on WIN32 after
5458 reading data or writing data. Affected file is
5459 lib/silcutil/win32/silcwin32sockconn.c.
5461 Mon Jul 16 22:55:26 EEST 2001 Pekka Riikonen <priikone@silcnet.org>
5463 * Fixed various compilation problems under WIN32. Affected
5464 files lib/silcutil/win32/silcwin32thread.c and
5465 lib/silcutil/win32/silcwin32schedule.c.
5467 * Removed all _internal.h #includes from public header
5468 files. Internal headers must never be included from
5471 Removed also the lib/silcske/payload_internal.h file.
5473 * All include files that may be needed (public and some others
5474 included by the public headers) by application developers are
5475 now copied to the ./includes directory. It does not copy any
5476 internal headers. Affected file Makefile.defines.pre and all
5477 Makefile.am's under lib/ and subdirs.
5479 Thu Jul 12 17:49:31 EEST 2001 Pekka Riikonen <priikone@silcnet.org>
5481 * Do not change the ~/.silc directory's permissions automatically.
5482 Affected file irssi/src/silc/core/clientutil.c.
5484 Thu Jul 12 10:18:40 EEST 2001 Pekka Riikonen <priikone@silcnet.org>
5486 * Do not cancel the protocol in silc_server_close_connection
5487 it might cause recursion. Now cancelled in the function
5488 silc_server_free_sock_user_data. Affected file silcd/server.c.
5490 * Fixed the silc_server_remove_clients_by_server to regenerate
5491 the channel keys correctly finally. Added also new function
5492 silc_server_remove_clients_channels to actually do it.
5493 Affected file silcd/server.c.
5495 * Fixed the silc_server_new_channel to not crash by giving
5496 wrong router to the new channel. Affected file is
5497 silcd/packet_receive.c.
5499 Wed Jul 11 18:31:57 EEST 2001 Pekka Riikonen <priikone@silcnet.org>
5501 * Added SilcClientParams structure to the lib/silcclient/silcapi.h
5502 which is given as argument to the silc_client_alloc now.
5503 It can be used to configure the client and set various parameters
5504 that affect the function of the client.
5506 * The USERS command in server did not check whether the channel
5507 is private or secret. Affected file silcd/command.c.
5509 * Added new argument to the USERS command in protocol specification.
5510 The USERS command now can take the channel name as argument
5511 as well. Added support for this in client and server and
5512 updated the protocol specs.
5514 * Completed the GETKEY command in client. It can be now used
5515 to fetch also servers public key not only some clients.
5516 Affected files lib/silcclient/command[_reply].c.
5518 * Added silc_client_get_server to return server entry by the
5519 server name. Affected files lib/silcclient/silcapi.h and
5522 * Redefined the IDENTIFY command in protocol specification to be
5523 more generic. It now can be used to query information about
5524 any entity in the SILC Network, including clients, servers and
5525 channels. The query may be based either the entity's name
5526 or the ID. Added support for this in both client and server.
5528 Affected files silcd/command.c and lib/silcclient/command.c
5529 and command_reply.c.
5531 * Optimized the WHOIS and WHOWAS commands in the server. Removed
5532 the _from_client and _from_server functions. Affected file
5535 * Added silc_client_get_channel_by_id_resolve to the file
5536 lib/silcclient/silcapi.h to resolve channel information by
5537 its ID. Added also silc_client_get_channel_by_id that
5538 does not resolve it from the server.
5540 Tue Jul 10 18:05:38 EEST 2001 Pekka Riikonen <priikone@silcnet.org>
5542 * Added SilcServerEntry context into the client library
5543 to represent one server. The INFO command now allocates
5544 these to save the resolved server info. For now on the
5545 client library will also keep information about servers,
5546 connected and resolved with INFO.
5548 The INFO command now allocates the SilcServerEntry context
5549 and saves the server info there. The COMMAND_REPLY in
5550 the INFO now returns the parameters to application in
5551 same order as defined in the protocol specification.
5553 The entries are cached in the client->server_cache.
5555 * The INFO command is now issued after received the Client ID
5556 from the server. Affected file lib/silcclient/client.c.
5558 * The CMODE_CHANGE notify may now return also an SilcServerEntry
5559 to the application as the mode changer might be server.
5560 It is guaranteed that NULL is not returned anymore to the
5561 application. Affected file lib/silcclient/client_notify.c.
5563 The ID Type is now also passed to the application so that
5564 it can check whether the returned entry is SilcClientEntry
5567 Added new function silc_client_get_server_by_id to return
5568 the server entry by ID. Affected files are the
5569 lib/silcclient/silcapi.h and lib/silcclient/idlist.c.
5571 * Do not create the channel in the Irssi SILC Client when issuing
5572 the JOIN command but when received the sucessful JOIN command
5573 reply. Otherwise the channel might get created even though we
5574 could not join it. The Affected file is
5575 irssi/src/silc/core/[silc-channels.c/client_ops.c].
5577 * Fixed a channel joining bug in router. The router must also
5578 check the channel modes, invite and ban lists etc. when serving
5579 the JOIN command sent by normal server. Affected file is
5580 silcd/command.c. The router now resolves the client's
5581 information from the server who sent the JOIN command if it
5582 does not know it, and processes the JOIN command only after
5585 * Changed the SilcCommandCb to take new argument; void *context2.
5586 Affected file lib/silccore/silccommand.h
5588 The second argument in the command callbacks in the server now
5589 includes the SilcServerCommandReplyContext if the command was
5590 called as pending command callback from the command reply.
5591 Otherwise it is NULL. When called as pending the status of the
5592 command reply will be checked and if it was erronous the
5593 error will be sent to the original sender of the command.
5594 This way the client always receives the error messages even
5595 though the server was actually the one who received the error
5596 when it resent the command to router, for example. Affected
5597 files silcd/command[_reply].[ch].
5599 * Fixed sending WHOWAS command's error message to client if
5600 the requested client could not be found. It was missing.
5603 * Changed the CMODE and CUMODE commands reply arguments in the
5604 protocol specification. The Channel ID is now sent in both
5605 of the commands to identify the channel. Implemented this
5606 new feature to the client and server. Affected files
5607 lib/silcclient/command_reply.c and silcd/command.c.
5609 * Made better checks for invite and ban lists in the JOIN
5610 command in server. Affected file silcd/command.c.
5612 Mon Jul 9 18:28:34 EEST 2001 Pekka Riikonen <priikone@silcnet.org>
5614 * The server now performs the incoming host IP/DNS lookup
5615 using the silc_socket_host_lookup and thus does not block
5616 the server anymore. Affected file silcd/server.c.
5618 * Completed the multi-thread support for SILC Scheduler in
5619 the lib/silcutil/silcschedule.c.
5621 * Fixed the configure.in.pre to detect the pthread correctly
5624 * Fixed a deadlock in silc_task_queue_wakeup in the file
5625 lib/silcutil/silctask.c.
5627 Mon Jul 9 13:40:03 EEST 2001 Pekka Riikonen <priikone@silcnet.org>
5629 * Added new function silc_schedule_wakeup that is used in
5630 multi-threaded environment to wakeup the main thread's
5631 schduler. It needs to be used when a thread adds a new task
5632 or removes a task from task queues. After waking up, the
5633 scheduler will detect the task queue changes. If threads
5634 support is not compiled in this function has no effect.
5635 Implemented the wakeup mechanism to both Unix and WIN32
5636 systems. Affected files are lib/silcutil/silcschedule.[ch],
5637 lib/silcutil/unix/silcunixschedule.c and the
5638 lib/silcutil/win32/silcwin32schedule.c.
5640 * Added new function silc_task_queue_wakeup to wakeup the
5641 scheduler by the specified task queue. Affected file
5642 lib/silcutil/silctask.[ch].
5644 * The silc_socket_host_lookup_start now wakes up the scheduler
5645 after adding the timeout task. Affected file is
5646 lib/silcutil/silcsockconn.c.
5648 * The silc_socket_host_lookup is synchronous now if the threads
5649 support is not compiled in. However, the callback is still
5650 called asyncronously through the scheduler, anyway. Affected
5651 file lib/silcutil/silcsockconn.c.
5653 Mon Jul 9 00:24:45 EEST 2001 Pekka Riikonen <priikone@silcnet.org>
5655 * Added new function silc_socket_host_lookup to perform
5656 asynchronous IP and FQDN lookups for the socket connection.
5657 Affected files lib/silcutil/silcsockconn.[ch].
5659 Sun Jul 8 18:44:53 EEST 2001 Pekka Riikonen <priikone@silcnet.org>
5661 * Added SILC_MUTEX_DEFINE to define the mutex on environments
5662 that may or may not compile the mutex support in.
5664 Changed the silc_mutex_alloc interface. It allocates the
5665 mutex now to the sent pointer and returns TRUE or FALSE.
5667 Affected file lib/silcutil/silcmutex.h.
5669 * Wrote the SILC Task Queue interface to support multi-threads.
5670 Affected file lib/silcutil/silctask.[ch].
5672 * Wrote the SILC Scheduler to support multi-threads. Affected
5673 file lib/silcutil/silcschedule.c.
5675 Sun Jul 8 11:16:01 EEST 2001 Pekka Riikonen <priikone@silcnet.org>
5677 * Implemented the SILC Mutex API and SILC Thread API for WIN32
5678 in lib/silcutil/win32/.
5680 Sun Jul 8 00:18:15 EEST 2001 Pekka Riikonen <priikone@silcnet.org>
5682 * Defined SILC Mutex API and SILC Thread API and implemented
5683 them for Unix. Affected files are
5684 lib/silcutil/silcmutex.h, lib/silcutil/silcthread.h,
5685 lib/silcutil/unix/silcunixmutex.c and
5686 lib/silcutil/unix/silcunixthread.c.
5688 Sat Jul 7 14:40:31 EEST 2001 Pekka Riikonen <priikone@silcnet.org>
5690 * Fixed the silc_server_remove_clients_by_server's channel
5691 key re-generation. The hash table handling was incorrect
5692 and would not work with many channels. Affected file is
5695 * Fixed some memory leaks around the server code.
5697 * Rewrote the silc_server_get_users_on_channel to support IPv6
5698 based Client ID's. Affected file silcd/server.c.
5700 * Defined the SILC_MESSAGE_FLAG_SIGNED to the protocol
5701 specification. However, a separate document must be written
5702 to define the detailed signing procedure and the payload
5703 associated with the flag. Defined the flag to the
5704 lib/silccore/silcchannel.h as well.
5706 Fri Jul 6 18:26:31 EEST 2001 Pekka Riikonen <priikone@silcnet.org>
5708 * Changed the dynamic tables to static size tables in the
5709 lib/silccrypt/silchmac.c.
5711 * Removed GCC dependencies from the code. A patch by cras.
5713 Fri Jul 6 09:39:35 EEST 2001 Pekka Riikonen <priikone@silcnet.org>
5715 * Do not show the error "Error receiving packet bla bla"
5716 in server if it really was not an error (-2 means that reading
5717 is pending). Affected file silcd/server.c.
5719 Thu Jul 5 21:22:32 EEST 2001 Pekka Riikonen <priikone@silcnet.org>
5721 * Fixed a possible crash in silc_server_remove_clients_by_server
5722 in silcd/server.c. Fixed there also some memory leaks.
5724 * Fixed the silc_idlist_replace_client_id. It could replace
5725 wrong key in the hash table. Affected file silcd/idlist.c.
5727 * Do not check whether there are global users on the channel
5728 if the channel->global_users is FALSE. Affected functions
5729 silc_server_remove_from_one_channel and
5730 silc_server_remove_from_channels in silcd/server.c. Also,
5731 do not check if the removed client is local as we can be
5732 sure that global client was not removed from the channel
5733 and checking for global users is not needed.
5735 * The silc_server_remove_clients_by_server now re-generates
5736 the channel keys correctly for those channels that had
5737 clients removed from them. Affected file silcd/server.c.
5739 Tue Jul 3 11:39:20 EEST 2001 Pekka Riikonen <priikone@silcnet.org>
5741 * Found the reason of random crashes in the server. We weren't
5742 ignoring the SIGPIPE signal (which can be sent in write())
5743 and it crashed the server. Affected file silcd/silcd.c.
5745 Fri Jun 29 20:05:25 EEST 2001 Pekka Riikonen <priikone@silcnet.org>
5747 * Assure that sock->user_data is not NULL in the function
5748 silc_server_packet_send in silcd/packet_send.c.
5750 * Disconnect the remote connection if it could not be added
5751 to any ID lists in the server. The affected file is
5754 * Check in silc_server_packet_send[_real/dest] that the
5755 socket is not disconnecting and ignore the data if it is.
5756 Affected file silcd/packet_send.c.
5758 * Define inline to __inline on native WIN32 compilation.
5759 Affected file includes/silcwin32.h.
5761 * Added some explicit type casts for inline code since MSVC
5762 require them. Affected files lib/silcutil/silcbuffer.h,
5763 lib/trq/silcdlist.h and lib/trq/silclist.h.
5765 * Print warning in log files from now on if the packet
5766 decryption fails. Affected file silcd/server.c.
5768 Thu Jun 28 21:30:39 EEST 2001 Pekka Riikonen <priikone@silcnet.org>
5770 * Changed the `say' client operation's interface to accept
5771 new `type' argument to indicate the type of the message sent
5772 by the library. The application may filter the library's
5773 messages according the type. The affected file is the
5774 lib/silcclient/silcapi.h.
5776 * Added two new functions to lib/silcclient/silcapi.h:
5777 silc_client_del_client and silc_client_del_client_by_id.
5778 Affected file lib/silcclient/idlist.c.
5780 * Moved the clientincludes.h from includes/ to silc/ and
5781 serverincludes.h from includes/ to silcd/.
5783 * The modes for the CMODE and CUMODE are now passed as
5784 uint32 for application with COMMAND_REPLY. The affected
5785 file is lib/silcclient/command_reply.c.
5787 Wed Jun 27 22:24:47 EEST 2001 Pekka Riikonen <priikone@silcnet.org>
5789 * /WHOIS without arguments shows client's own information.
5790 Affected file lib/silcclient/command.c.
5792 * Changed PING to not accept any arguments. The specs
5793 says that client can ping only the connected server so
5794 requiring an argument is not needed. Affected file is
5795 lib/silcclient/command.c.
5797 Wed Jun 27 00:10:33 EEST 2001 Pekka Riikonen <priikone@silcnet.org>
5799 * Fixed a fatal bug in private message sending and reception
5800 encryption and decryption when using private message keys.
5801 The implementation was incorrect and did not follow the
5802 specification. It causd that some of the message were
5803 lost since it did not use the sending and receiving keys
5804 as the protocol suggests. This has been fixed and will cause
5805 incompatibilities with older clients when sending private
5806 message encrypted with private message keys. Affected files
5807 lib/silcclient/client_prvmsg.c, lib/silcclient/client_keyagr.c
5808 and various other in Irssi SILC Client.
5810 Added `responder' boolean argument to the functions
5811 silc_client_add_private_message_key[_ske] to indicate when
5812 the key is added as responder or initiator of the key
5815 Tue Jun 26 19:23:07 EEST 2001 Pekka Riikonen <priikone@silcnet.org>
5817 * Removed the silc_ske_check_version function and created
5818 a SilcSKECheckVersion callback. Added also a function
5819 silc_ske_set_callbacks that is now used to set all SKE
5820 callbacks. The callback functions are not given to
5821 the SKE functions anymore, but this function is used to
5824 * Fixed the WIN32 DLL generation in lib/Makefile.am.pre.
5826 * Added `silc_version' argument to the silc_client_alloc
5827 to define the version of the application for the library.
5828 The library will use the version string to compare it
5829 against the remote host's (usually a server) version
5830 string. Affected file lib/silcclient/silcapi.h
5832 * Added the KE protocol context to Key Agreement context
5833 in client library so that we can abort the SKE if it
5834 is in process when we get timeout. Affected file is
5835 lib/silcclient/client_keyagr.c.
5837 * Do not resolve the client ID forever if it returns in the
5838 first time that such client does not exist. This was done
5839 for example with private message. Affected file is
5840 lib/silcclient/client_prvmsg.c.
5842 Mon Jun 25 21:42:51 EEST 2001 Pekka Riikonen <priikone@silcnet.org>
5844 * Do not add regex.h for WIN32. The affected file
5845 includes/silcincludes.h.
5847 * Added WIN32 DLL generation to lib/Makefile.am.pre. It might
5848 not work yet 100%. It generates the DLL's automatically
5849 when compiling with --with-win32 under cygwin.
5851 Sun Jun 24 19:49:23 EEST 2001 Pekka Riikonen <priikone@silcnet.org>
5853 * lib/contrib/regex.c is not compiled on WIN32.
5855 * Added silc_net_get_socket_opt function to the
5856 lib/silcutil/silcnet.h.
5858 * Added includes/silcwin32.h for WIN32 specific includes
5861 * Do not use ptime structure or any of the posix process
5862 functions on WIN32 in lib/silccrypt/silrng.c.
5864 * Added silc_gettimeofday to provide generic function
5865 for struct timeval on all platforms. Added the function
5866 to lib/silcutil/silcutil.h.
5868 Sun Jun 24 12:19:52 EEST 2001 Pekka Riikonen <priikone@silcnet.org>
5870 * Moved the lib/silccore/silcsockconn.[ch] to the utility
5871 library as they clearly belong there. As a plus side we
5872 can make the actual socket connection routines platform
5875 Added also new generic function silc_socket_read and
5876 silc_socket_write (that used to be silc_packet_[read/write].
5877 The implementation of these are platform specific.
5879 * Added WIN32 specific routines of silc_socket_[read/write]
5880 to lib/silcutil/win32/silcwin32sockconn.c.
5882 Sat Jun 23 16:01:00 EEST 2001 Pekka Riikonen <priikone@silcnet.org>
5884 * Added preliminary support for native WIN32 compilation under
5885 cygwin (using the -mno-cygwin option for GCC) to the
5886 ./configure.in.pre. The --with-win32 now prepares the
5887 compilation for native WIN32.
5889 * Rewrote the SILC Scheduler interface in the file
5890 lib/silcutil/silcschedule.h. The scheduler is now context
5891 based and does not have anymore any global static scheduler.
5892 Moved the Unix scheduler to the lib/silcutil/unix/ directory
5893 and created lib/silcutil/win32 directory for WIN32 based
5896 * Added Unix specific network routines to the
5897 lib/silcutil/unix/silcunixnet.c and the old
5898 lib/silcutil/silcnet.c includes now only generic routines.
5900 Added WIN32 specific network routines to the
5901 lib/silcutil/win32/silcwin32net.c.
5903 * Added Unix specific utility functions from the
5904 lib/silcutil/silcutil.c to lib/silcutil/unix/silcunixutil.c.
5906 * Added WIN32 SILC Scheduler to the file
5907 lib/silcutil/win32/silcwin32schedule.c. The code is of course
5910 Fri Jun 22 10:44:14 EEST 2001 Pekka Riikonen <priikone@silcnet.org>
5912 * Do not handle JOIN notify in the server if the target client
5913 is not registered (idata->registered == FALSE). The affected
5914 file is silcd/packet_receive.c.
5916 * Update the nickrec->founder in event_cumode in the Irssi SILC
5917 client. Affected file irssi/src/silc/core/silc-channels.c.
5919 * Fixed the CUMODE_CHANGE notify handling in the server when
5920 server and router are announcing their clients on channels.
5921 Now the mode changes are saved and notified correctly. The
5922 affected file is /silcd/packet_receive.c.
5924 * Fixed silc_idlit_replace_[server/client/channel]_id functions.
5925 They really did not replace the cache entry in the ID Cache.
5926 Now they do that. Affected file silcd/idlist.c.
5928 * Fixed the KICK notify handling in the Irssi SILC client to
5929 update the channel records so that the kicked client does not
5930 appear to be on the channel. The affected file is
5931 irssi/src/silc/core/silc-channels.c.
5933 * Always update the conn->current_channel when executing command
5934 on a channel. Affected file irssi/src/silc/core/silc-servers.c.
5936 * Fixed the KILL notify handling in Irssi SILC client to remove
5937 the killed client on all channels.
5939 Thu Jun 21 17:10:08 CEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
5941 * Fixed the silc_parse_command_line to remove extra spaces
5942 from the start and end of the arguments. Affected file is
5943 lib/silcutil/silcutil.c.
5945 * Cancel and free any active protocol in the function
5946 silc_server_close_connection. Affected file silcd/server.c.
5948 * Cancel and free any active protocol in the function
5949 silc_client_close_connction. Affected file is
5950 lib/silcclient/client.c.
5952 * Do not execute the KILL command for clients that are in
5953 history (ie. they are not in the network). Affected file is
5956 * Fixed KILL notify handling, client does not crash anymore.
5957 Affected file irssi/src/silc/core/silc-channels.c.
5959 * Reduced the default packet buffer size from 2048 to 1024 in
5960 lib/silccore/silcpacket.c.
5962 * Added SILC_SKE_STATUS_FREED SKE status type and a reference
5963 counter to the SKE context that is incresed when the SKE library
5964 performs async operation outside the library. If the outside
5965 process frees the SKE context and FREED status will be set
5966 and the library will detect after the sync operation that the
5967 libary is freed. The affected files are
5968 lib/silcske/silcske[_status].[ch].
5970 * Resolve the client entry information in the function
5971 silc_client_channel_message to assure that NULL pointer is not
5972 passed as client entry to the application. */
5974 * Fixed the task timeout calculation to assure that there is
5975 never negative timeouts. The affected file is
5976 lib/silcutil/silcschedule.c.
5978 * Fixed the channel user mode notification sending in server.
5979 It was sent point-to-point to the router (or to server by router)
5980 but it needs to be destined to a channel. The routines now
5981 supports sending the channel user mode notifys to the channels
5982 when announcing clients and channels. Affected files are
5983 silcd/server.c and silcd/packet_receive.c.
5985 * Fixed the CHANNEL_CHANGE notify handling in the client libary.
5986 It did not actually replace the old channel entry in the cache.
5987 Affected file lib/silcclient/client_notify.c.
5989 Tue Jun 19 22:10:36 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
5991 * Fixed a possible crash in silc_packet_send_prepare. It now
5992 assures always that there is enough space in the buffer and
5993 at the tail area of the buffer (for MAC).
5995 Fixed the inbound buffer reallocation in silc_packet_read.
5996 It was old code and did not handle the reallocation correctly.
5999 The affected file is lib/silccore/silcpacket.c.
6001 * Fixed buffer overflow in silc_parse_nickname in the file
6002 lib/silcutil/silcutil.c.
6004 Tue Jun 19 13:40:09 CEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
6006 * make install generates new server keys only if there is not
6009 Mon Jun 18 18:49:07 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
6011 * Set SILC_MESSAGE_FLAG_NOREPLY when sending the away message.
6012 Added check that if the NOREPLY is set then we will not send
6013 the away message. This avoids infinite loop of away messages
6014 if both clients are away. The affected file is
6015 lib/silcclient/client_prvmsg.c.
6017 * Fixed client crash if /NICK was given without arguments.
6018 Affected file lib/silcclient/command.c.
6020 * Server does not send the invite list in INVITE command back
6021 to the client if the list was not altered. Added this notion
6022 to the protocol spec as well. Affected file silcd/command.c.
6024 Fixed possible crash in INVITE command by checking the
6025 value of silc_server_get_client_route command.
6027 * Fixed the INVITE notify type handling. The arguments are now
6028 taken in correct order and client does not crash. The affected
6029 file is irssi/src/silc/core/silc-channels.c.
6031 Removed the "Inviting xxx to channel" message from the
6032 client library away and let the application handle it.
6033 Affected file lib/silcclient/command.c. Added that message
6034 to Irssi SILC client's message formats.
6036 * Fixed CMODE command crash in client. It now checks the
6037 amount of arguments correctly and does not crash. The affected
6038 file is lib/silcclient/command.c.
6040 * Do not create new channel automatically in silc_channels_join
6041 but check whether the channel by that name already exists.
6042 Affected file irssi/silc/core/silc-channels.c.
6044 * Do not send the SERVER_SIGNOFF to router if the disconnected
6045 entity was the router. Affected file silcd/server.c.
6047 * Added the handling of the SERVER_SIGNOFF notify to the Irssi
6048 SILC client as it was missing from there.
6050 Added the handling of the KICK notify to the Irssi SILC client
6051 as it was missing. Added "you have been kicked" message to
6052 Irssi SILC client's message modules formats.
6054 Added the handing of the KILL notify to the Irssi SILC client
6055 as it was missing. Added the kill message module formats
6058 The affected file is irssi/src/silc/core/silc-channels.c.
6060 * The router did not save the channel mode the server announced.
6061 Affected file silcd/packet_receive.c.
6063 * Fixed a possible crash in INFO command in server. If the
6064 server did not provide the server info it crashed. Affected
6065 file silcd/command.c.
6067 Sun Jun 17 15:26:05 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
6069 * Fixed the GETKEY command in the server to check also the
6070 global list. Otherwise the GETKEY would not work correctly
6071 in normal SILC server. Affected file silcd/command.c.
6073 Sat Jun 16 18:00:00 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
6075 * Fixed GETKEY crash, it crashed if the command did not succseed.
6077 Tue Jun 12 21:36:18 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
6079 * Redefined the SILC MP API in lib/silcmath/silcmp.h. The API
6080 is now real and not just an macro interface to GMP.
6082 Removed the entire GMP from the source tree and imported new
6083 NSS MPI library instead. Reason for removing GMP is that it is
6084 extremely large and compiles extremely slow. The NSS MPI
6085 is only a few files and compiles in less than 10 seconds.
6086 The speed is also about the same as GMP. The MPI is imported
6087 to lib/silcmath/mpi.
6089 If the system has GMP installed we will still use the GMP.
6090 If it is not then the NSS MPI will be compiled.
6092 Mon Jun 11 18:07:24 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
6094 * Merged a long nickname (127 characters long) crash bugfix from
6095 Irssi CVS tree. Affected file irssi/src/core/misc.c.
6097 * Merged a freed memory reference bugfix from Irssi CVS tree.
6098 Affected file irssi/src/core/commands.c.
6100 Sun Jun 10 16:08:35 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
6102 * Added the server's public key sving and verification to the
6103 server when performing the SKE. This was missing and the
6104 remote server's (or router's) public key was accepted without
6105 checking whether we have it previously or trust it at all.
6106 Affected file silcd/protocol.c.
6108 Sat Jun 9 20:17:30 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
6110 * Check in the silc_server_timeout_remote if protocol is active
6111 and make sure that the protocol's final callback is called so
6112 that all memory if freed. Affected file silcd/server.c.
6114 Sat Jun 9 12:51:27 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
6116 * silc_server_whois_send_reply crashed the server if the nickname
6117 was 127 characters long. Affected file silcd/command.c.
6119 Thu Jun 7 16:29:56 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
6121 * Added sanity check to the silc_server_new_client. If the hostname
6122 is provided inside username then check that the provided hostname
6123 really is the same as the resolved one. If the hostname was not
6124 resolved then check it from the public key. Affected file is
6125 silcd/packet_receive.c.
6127 * Fixed a fatal bug in Irssi SILC client. Do not send QUIT command
6128 if the server disconnected us and the connection is not valid
6129 anymore. Affected file irssi/src/silc/core/silc-channels.c.
6131 * Moved the silc_client_[chmode|chumode|chumode_char] away from
6132 the library to the lib/silcutil/silcutil.[ch].
6134 Thu Jun 7 08:57:16 CEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
6136 * Close log file after open. Affected file
6137 lib/silcutil/silclog.c.
6139 * Check whether sock == NULL in silc_client_send_packet and return
6140 if it is. Affected file lib/silcclient/silcclient.c.
6142 * Check rec->entry == NULL in the Irssi SILC Client before
6143 sending the channel message. Affecte file is
6144 irssi/src/silc/core/silc-servers.c.
6146 Tue Jun 5 08:08:21 CEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
6148 * Merged a splitted window bugfix from Irssi CVS tree. The
6149 affected file is irssi/src/fe-text/textbuffer-view.c.
6151 * Fixed the ME, ACTION and NOTICE printing in Irssi Client.
6152 It did not print nickname.
6154 * Improved the distributions system a bit.
6156 Mon Jun 4 17:57:16 CEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
6158 * Merged /WINDOW bugfix from irssi CVS tree. Affected file is
6159 irssi/src/fe-text/gui-window.c.
6161 * Fixed a fatal bug in Irssi SILC client. Crashed if sent message
6162 to in-active server. The affected file is
6163 irssi/src/silc/core/client_ops.c.
6165 * Resolve the client in USERS command reply if the entry does
6166 not have username resolved. The affected file is
6167 lib/silcclient/command_reply.c. Also, changed the IDENTIFY
6168 command to WHOIS command to really resolve stuff. The USERS
6169 is not used any more in any critical section so WHOIS can
6170 be used even though it might be slower than IDENTIFY.
6172 * Changed the lib/silcutil/silchashtable.h header to ROBODoc
6175 Sun Jun 3 14:21:32 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
6177 * Changed the protocol API a bit more consistent in the
6178 lib/silccore/silcprotocol.[ch].
6180 * Changed the following headers to ROBODoc format:
6182 lib/silccore/silcpayload.h
6183 lib/silccore/silcprotocol.h
6184 lib/silccore/silcsockconn.h
6186 All core library headers are now formatted.
6188 Sat Jun 2 10:45:09 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
6190 * Fixed a bug in Irssi SILC client; do not show that you are
6191 server/router operator if you really are not. Affected file is
6192 irssi/src/silc/core/client_ops.c.
6194 * Renamed silc_command_free_payload to silc_command_payload_free.
6195 Affected file lib/silccore/silccommand.h
6197 * Added silcmath.h to include the prototoypes of various routines
6198 in the lib/silcmath. Removed the old modinv.h, mpbin.h and
6201 * Changed the following headers to ROBODoc format:
6203 lib/silccore/silcchannel.h
6204 lib/silccore/silccommand.h
6205 lib/silccore/silcid.h
6206 lib/silccore/silcidcache.h
6207 lib/silccore/silcmode.h
6208 lib/silccore/silcnotify.h
6209 lib/silccore/silcpacket.h
6210 lib/silcmath/silcmath.h
6212 Fri Jun 1 22:19:37 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
6214 * Added checking to the server code not to start the server if
6215 ciphers and stuff are not configured properly. Affected files
6216 silcd/serverconfig.[h] and silcd/server.c.
6218 * Changed the layout of the header files of the public interfaces
6219 in the SILC libraries. The new layout supports ROBODoc
6220 documentation tool (and some others) so that it is easy to create
6221 a library reference manual. All the other headers and source
6222 code must still follow the CodingStyle document. Also source
6223 code must not include these ROBODoc stuffs, only the headers.
6224 Furthermore, all public interface headers must now be named
6225 by using `silc' prefix, example: silcapi.h, silccipher.h.
6226 Some files were renamed due to this. All the other headers
6227 must not be used as public interfaces. I will update the
6228 CodingStyle document later. Changed following headers, so far:
6230 lib/silcclient/silcapi.h
6231 lib/silccore/silcauth.h
6232 lib/silccore/silcprivate.h
6233 lib/silccrypt/silcdh.h
6235 Fri Jun 1 10:28:09 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
6239 * Removed silc_client_packet_send_flush from the client library
6240 as it is not needed. Affected file lib/silcclient/client.[ch].
6242 * Added printing of message of unresolved authentication method
6243 to the Irssi SILC client. Added it to the module formats.
6244 Removed the same message from the client library.
6246 Thu May 31 13:57:33 CEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
6248 * Added new distribution feature, DISTLABEL. Every distribution
6249 can define own preprocessor label that can be used in the
6250 source code. For example: #ifdef SILC_DIST_CLIENT. Affected
6251 file distributions, acconfig.h.pre and prepare.
6253 Tue May 29 22:16:40 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
6255 * Added Makefile.defines_int to include the actual definitions
6256 for Makefile.defines.in. Tested the new distribution system,
6257 created distributions and tested installation.
6259 * Added AWAY message printing to the Irssi SILC client. Added
6260 the messages to the irssi/src/fe-common/silc/module-formats.[ch].
6262 * Added SCONNECT command to call the SILC's CONNECT command.
6263 Cannot use CONNECT directly since Irssi uses that internally.
6264 Affected file irssi/src/silc/core/silc-servers.c.
6266 Added ACTION local command. It is same as ME command but takes
6267 the channel as mandatory argument.
6269 Rewrote some of the Irssi's help files to suite for SILC
6272 Mon May 28 19:05:22 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
6274 * Added Makefile.defines[.in] that should for now on be included
6275 in all Makefile.am file in the source tree. That file includes
6276 all common compilation definitions for SILC source tree.
6278 Mon May 28 10:30:51 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
6280 * Minor changes to the ./prepare script to change the package
6281 name according the distribution name to the configure.in.
6283 Sun May 27 22:24:57 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
6285 * Created new distribution system. Added file `distributions'
6286 that defines all the distributions that can be created out of
6287 the SILC source tree. The ./prepare script now reads that
6288 file to determine how to prepare the distributions. The
6289 first argument to the ./prepare is the name of the distribution
6290 and second is the version of the distribution. If given
6291 without arguments it creates the default (toolkit) distribution
6292 with the default version (defined in ./prepare).
6294 All Makefile.am files that are subject to the distributions
6295 are now named as Makefile.am.pre. These are ./Makefile.am
6296 and lib/Makefile.am. Others may be changed later.
6298 Sun May 27 15:57:17 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
6300 * Added invite list, ban list, some key management and connection
6301 error message printing to module formats in the Irssi SILC client.
6303 * Added new silc_client_set_away_message to set the away message
6304 that is back to the person who sent private message. The
6305 affected file lib/silcclient/silcapi.h and the
6306 lib/silcclient/client_prvmsg.c.
6308 Sun May 27 12:39:48 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
6310 * Fixed the private message sending in the Irssi SILC client,
6311 added local command KEY to the Irssi SILC client.
6313 Added key management and key agreement message formats to the
6314 irssi/src/fe-common/silc/module-formats.[ch].
6316 Added USERS (alias WHO) printing, server/router operator
6317 indication and LIST command printing to the module formats.
6319 Sat May 26 17:43:42 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
6321 * Fixed channel joining notify handling, cumode notify handling
6322 from Irssi SILC client.
6324 * Added SILC specific module-formats to the Irssi SILC client so
6325 that SILC specific message hilighting, colors etc is possible.
6326 Affected file irssi/src/fe-common/silc/module-formats.[ch].
6328 Added channel mode, channel user mode, actions, notices,
6329 whois and whowas printing to the the module-formats.c.
6331 * Fixed a bug in channel deletion in the server. The channel
6332 is not left to the cache even if the channel founder auth mode
6333 is set when there are no users anymore on the channel. Affected
6334 file silcd/server.c.
6336 * The silc_net_localhost now resolves the entire hostname including
6337 the domain name. Affected file lib/silcutil/silcnet.c.
6339 Sat May 26 12:13:37 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
6341 * Changed the ask_passphrase client operation to be ascynchronous.
6342 It has now a completion callback and a context that the
6343 application must call after it has got the passphrase from
6344 the user. Affected files lib/silcclient/silcapi.h,
6345 lib/silcclient/protocol.c, lib/silcclient/command.c and
6348 Added SilcAskPassphrase callback that the application calls
6349 to deliver the passphrase to the library.
6351 * Changed the SKE protocol's SilcSKEVerifyCb to be asynchronous.
6352 The public key verification and especially a certificate
6353 verification is asynchronous procedure.
6355 Added new SILC_SKE_STATUS_PENDING status to indicate the
6356 request is pending and a callback will be called to finalize
6359 Added also SILC_SKE_STATUS_PUBLIC_KEY_NOT_PROVIDED status to
6360 indicate that remote end did not send its public key (or
6361 certificate), even though we require it. Added check for this
6362 condition in the SKE. This was a security bug, now fixed.
6364 Defined new SilcSKEVerifyCbCompletion callback that is called
6365 when the verification process is completed.
6367 The affected files lib/silcske/silcske_status.h and
6368 lib/silcske/silcske.[ch].
6370 * Changed the verify_public_key client operation to be async
6371 as well. Defined SilcVerifyPublicKey callback that is used to
6372 indicate the success of the public key verification process.
6374 Changed the server and client to use the new async client
6377 * Changed the Irssi SILC client's internal scheduler to be called
6378 twice as many times as it used to be. As a result the client
6379 should be a bit faster now. Affected file is
6380 irssi/src/silc/core/silc-core.c.
6382 * Added support to Irssi SILC client of asynchronous public key
6383 verification and passphrase inquiry. Affected file is
6384 irssi/src/silc/core/silc-core.c.
6386 Fri May 25 14:38:38 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
6388 * Do not say "You have left channel %s" in client library.
6389 Moved it to the application. Affected files are
6390 lib/silcclient/command.c and silc/client_ops.c.
6392 * Fixed silc_client_get_clients. Command context was not
6393 duplicated and was freed memory in the callback. Affected
6394 file lib/silcclient/idlist.c.
6396 * Do not say "you are now talking..." on JOIN command in the
6397 client library. The appliation must handle it.
6399 * Do not say ".. changed topic to" in command reply in the
6400 client libary. The application must handle it.
6402 * Fixed TOPIC command sending in the client library.
6404 * Fixed a memory leak in silc_client_command_free in the file
6405 lib/silcclient/command.c.
6407 Thu May 24 19:08:55 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
6409 * Imported a modified version of Irssi client to the source tree.
6410 The Irssi will be used to create a new client called
6411 Irssi SILC. Imported to irssi/.
6413 Added silc_core_init_finish function to the Irssi. Affected
6414 file irssi/configure.in.
6416 A lot changes in the Makefile.ams around the irssi tree.
6418 Tue May 22 22:23:49 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
6420 * Do not rehash if the new size is same as the old size of the
6421 hash table, in the silc_hash_table_rehash*. The affected file
6422 lib/silcutil/silchashtable.c.
6424 * Replaced hash_table_del_by_context calls from the server
6425 (when channel->user_list and client->channels) to the
6426 hash_table_del as it is sufficient and faster.
6428 Tue May 22 17:27:16 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
6430 * Added silc_hash_table_list, silc_hash_table_get and the
6431 SilcHashTableList structure to provide an alternative way to
6432 traverse the hash table. The affected files are
6433 lib/silcutil/silchashtable.[ch].
6435 * Changed the server's idlist routines to use the hash table
6436 routines to optimize the code.
6438 Mon May 21 21:46:20 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
6440 * Replaced the client entry's `channel' list and channel entry's
6441 `user_list' list to hash tables for optimized lookup. Changed
6442 the code to use the hash table interface around the code.
6443 Affected file lib/silcd/idlist.[ch].
6445 * Added `auto_rehash' boolean argument to the function
6446 silc_hash_table_alloc to indicate whether the hash table should
6447 auto-rehash when it thinks is appropriate time. It will
6448 increase the hash table size if the there is twice as much
6449 entries in the table than the size of the table, and will
6450 decrease the size if there are twice as less entries than
6451 the size of the table.
6453 Mon May 21 09:51:11 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
6455 * Fixed silc_xxx_get_supported to not crash at some circumstances.
6457 Sun May 20 13:45:58 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
6459 * silc_idcache_purge_by_context deletes the entry now by context
6460 as it is supposed to do. Affected file lib/silccore/idcache.c.
6462 * Send the ERR_NO_SUCH_NICK in the WHOIS command reply if the
6463 client is not anymore valid (WHOWAS givens the info) and not
6464 the ERR_NO_SUCH_CLIENT_ID if the nickname still exists.
6466 Sat May 19 16:30:03 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
6468 * Removed the `data' and `data_len' arguments from the ID Cache
6469 interfaces and added `name' argument. ID Cache does not handle
6470 anymore the binary data only a names associated with given ID.
6472 * When hashing a Client ID with silc_hash_id the entire ID is
6473 not hashed anymore, instead only the hash of the Client ID is
6474 hashed. This way we can access the Client ID from the cache
6475 with Client ID but with the hash of the ID (which is a hash of
6476 the nickname) as well without any difference in performance.
6478 Added also silc_idcache_find_by_id_one_ext to do one on one
6479 searching when we have the actual ID. Added also function
6480 silc_hash_client_id_compare. The affected files are
6481 lib/silccore/idcache.[ch] and lib/silcutil/silcutil.[ch].
6483 * When hashing the name associated with a ID it is always done
6484 in lowercase. This way we can access the cache without worrying
6485 about case-sensitivity, even though, for example nicknames are
6488 * Fixed a bug in server with channel message sending. It put
6489 wrong ID type as destination ID. The affected file
6490 silcd/packet_send.c.
6492 * silc_idcache_del_by_context now deletes from all hash tables
6493 by context. Affected file lib/silccore/idcache.c.
6495 Fri May 18 17:42:00 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
6497 * Changed the client library to use the new ID Cache interface.
6498 Changes around the source tree.
6500 * Added silc_hash_table_rehash_ext to rehash with specific
6501 hash function. Affected file lib/silcutil/silchashtable.[ch].
6503 * Added silc_hash_string_compare to compare two strings in the
6504 hash table. Affected file lib/silcutil/silcutil.[ch].
6506 Fri May 18 11:18:45 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
6508 * Added new function silc_idcache_del_by_context into the
6509 lib/silccore/idcache.[ch].
6511 * Changed the server's ID list routines to use the new ID Cache
6512 interface. Changes around the source tree.
6514 Fri May 18 08:35:31 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
6516 * Added silc_hash_table_del[_by_context]_ext functions in to the
6517 lib/silcutil/silchashtable.[ch].
6519 Removed silc_hash_table_find_all* routines and added new
6520 silc_hash_table_find_foreach to replace them.
6522 Added silc_hash_table_replace_ext function as extended
6523 replacing function. Separated the simple hash table interface
6524 from the extended hash table interface in the file
6525 lib/silcutil/silchashtable.h.
6527 * Fixed minor bugs and changed it to use some of the new
6528 hash table functions in lib/silccore/idcache.c
6530 Thu May 17 18:15:12 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
6532 * Added new function silc_hash_table_find_all to return all keys
6533 in the hash table by the specified key. As the hash table is
6534 collision resistant it also makes it possible to have several
6535 duplicate keys in the hash table. This function may be used to
6536 find all of the keys from the hash.
6538 Added user_context arguments to the SilcHashFunction,
6539 SilcHashCompare and SilcHashDestructor to deliver user specified
6542 Added new fuctions silc_hash_table_find[_all]_ext to do
6543 extended lookup with specified hash and compare functions and
6544 specified user contexts.
6546 Added new function silc_hash_table_add_ext to add the key
6547 with specified hash function and user context.
6549 Added new function silc_hash_table_foreach to traverse all
6550 entrys in the hash table. Added SilcHashForeach callback
6553 Added new function silc_hash_table_del_by_context to delete
6554 the entry only if the context associated with the key matches.
6556 Affected files are lib/silcutil/silchashtable.[ch].
6558 * Removed silc_hash_[server/client/channel]_id and added just
6559 silc_hash_id to the lib/silcutil/silcutil.[ch]. Added also
6560 silc_hash_id_compare to compare two ID's using as the hash table
6561 comparison function. Added also silc_hash_data to hash
6562 binary data and silc_hash_data_compare to compare it.
6564 * Removed silc_idlist_find_client_by_hash as it is not needed
6565 anymore. Affected file silcd/idlist.[ch].
6567 * Rewrote the entire ID Cache system (in lib/silccore/idcache.[ch])
6568 to use internally the SilcHashTable. The new ID Cache is a lot
6569 faster than the old one. Some of the ID Cache interface was also
6570 rewritten and obsolete and stupid functions were removed.
6572 Wed May 16 23:03:30 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
6574 * Added entry_count field to the SilcHashTable to keep the number
6575 of the entries in the table. Implemented the function
6576 silc_hash_table_rehash. Added new function
6577 silc_hash_table_count. Affected file lib/silcutil/silchashtable.c.
6579 Fixed a minor bug in silc_hash_table_free.
6581 * Added silc_hash_string, silc_hash_uint, silc_hash_ptr,
6582 silc_hash_client_id, silc_hash_server_id and silc_hash_channel_id
6583 into the lib/silcutil/silcutil.[ch].
6585 Wed May 16 20:02:47 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
6587 * Implemented a collision resistant hash table into the
6588 lib/silcutil/silchashtable[ch]. See the header and the source
6589 for the SilcHashTable API.
6591 Tue May 15 22:05:46 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
6593 * Merged dotconf version 1.0.2 into lib/dotconf.
6595 Sun May 13 19:32:09 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
6597 * Do not compile anything in lib/silcsim/* if the SIM support
6598 is not enabled. The tree should now compile without problems
6601 Thu May 10 22:49:51 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
6603 * Compiled the SILC under cygwin. Compiled and tested briefly
6604 without problems. More tests needed. The SIMs didn't compile
6607 * Added various #ifdef HAVE_* stuff to lib/silccrypt/silrng.c.
6609 * Fixed possible crash in silc_get_username in the
6610 lib/silcutil/silcutil.c.
6612 Tue May 8 09:04:03 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
6614 * Fixed a va_arg in silc/client_ops.c.
6616 * Oops, RC5 routines were named AES and caused some problems
6617 when not using SIM's. Affected file lib/silccrypt/rc5.c.
6619 Sun May 6 13:59:48 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
6621 * Added new SilcIDIP structure into the lib/silccore/id.h and
6622 replaced the old `ip' fields from all SILC ID's to that type.
6623 This is a step towards IPv6 support.
6625 The silc_id_get_len takes now the ID as an extra argument.
6626 The silc_id_id2str, silc_id_str2id and silc_id_dup now supports
6627 both IPv4 and IPv6 based ID's.
6629 The affected files are lib/silccore/id.[ch] and other files
6630 around the tree using these routines.
6632 * Removed the ID length arguments in server from various
6633 silc_server_send_notify_* routines -> they are not needed
6636 Sat May 5 13:56:33 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
6638 * Fixed memory leak in silc_encode_pem_file in the file
6639 lib/silcutil/silcutil.c.
6641 Thu May 3 21:23:50 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
6643 * Check minor version as well in the SKE. Affected files are
6644 silcd/protocol.c and lib/silcclient/protocol.c.
6646 * Added --identifier option to the server so that an identifier
6647 can be when creating the public key for the server. Affected
6648 file is silcd/silcd.c.
6650 * Fixed minor decoding bug in silc_pkcs_decode_identifier in
6651 lib/silccrypt/silcpkcs.c.
6653 Wed May 2 20:50:49 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
6655 * Register default ciphers and stuff when using -C option with
6656 the server. Affected file sildc/silcd.c.
6658 * Put back the servers public key filename format, it is better
6659 than the new one. For now, the client keys are saved with the
6660 new filename format. The affected file silc/client_ops.c.
6662 * Implemented the Cipher API for the rest of the ciphers that
6663 did not implement it or implemented it the wrong way.
6665 Wed May 2 13:31:26 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
6667 * Register default ciphers and stuff when using the -S option
6668 in the client. Affected file silc/silc.c. Same also when
6669 creating new key pair with -C option.
6671 Tue May 1 14:18:13 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
6673 * Fixed the silc_verify_public_key client operation function to
6674 save the public keys differently. The fingerprint is now
6675 used as filename and not the hostname. This way also the
6676 client keys are saved uniquely and not with hostnames. The
6677 affected file is silc/client_ops.c.
6679 * Trimmed the silc_hash_fingerprint function to remove extra
6680 whitespaces from the end of the fingerprint. The affected
6681 file is lib/silccrypt/silchash.c.
6685 * Added silc_cipher_register_default function to register all
6686 default ciphers. It can be used when configuration files
6687 does not exist and the application does not want any specific
6688 ciphers in any specific order.
6690 The SilcDList is now used as silc_cipher_list dynamically
6691 allocated cipher list. Removed the static list all together
6692 and now all ciphers must be allocated to the dynamic list.
6693 The silc_cipher_alloc routine was changed to check only the
6696 All silc_cipher_* routines that used to return int returns
6699 The affected files lib/silccrypt/silccrypt.[ch].
6701 * The same thing was done to silc_hash_* as for silc_cipher_*
6702 routines. Affected files lib/silccrypt/silchash.[ch].
6704 * The same thing was done to silc_pkcs_* as for silc_cipher_*
6705 routines. Affected files lib/silccrypt/silcpkcs.[ch].
6706 Added also silc_pkcs_[un]register[_default] functions.
6707 Removed the data_context from the PKCS API.
6709 * Added silc_hmac_register_default function to register default
6710 hmacs. Affected files lib/silccrypt/silchmac.[ch]. Added also
6711 SILC_ALL_HMACS macro that can be used with silc_hmac_unregister
6712 to unregister all hmacs at once.
6714 * Register the default ciphers, hash functions, PKCSs and HMACs
6715 if client's configuration file does not exist. The affected
6718 * The client did not load the hash functions from the SIM
6719 modules at all. Added support for this. Affected file is
6720 silc/clientconfig.c.
6722 * When decoding public key with silc_pkcs_public_key_decode, check
6723 the supported algorithm only if PKCS are registered. Affected
6724 file lib/silccrypt/silcpkcs.c. The same was done with the
6725 silc_pkcs_private_key_decode.
6727 * Fixed the SILC List routines to keep the list always in order.
6728 It used to change the list's order when traversing the list but
6729 not it preserves the order. Affected file lib/trq/silclist.h.
6731 Mon Apr 30 17:29:03 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
6733 * Added the client library to use the SilcSocketConnection's
6734 reference counter (by silc_socket_dup) to prevent the bug that
6735 the socket object may be freed underneath async operation.
6737 * The name resolv library checking fixes in the configure.in.pre.
6740 * Created new version of the protocol drafts for future
6741 development. The -03 drafts are the ones that will be changed
6742 in the trunk now and the -02 will remain as they are.
6744 * Send list of CUMODE notifys to the router when announcing
6745 the channel users to the router. Affected file silcd/server.c.
6746 If the router receiving channel founder CUMODE for a channel
6747 that already has channel founder it will send CUMODE notify
6748 to the sender to remove the channel founder rights from the
6749 announced client. Affected file silcd/packet_receive.c.
6751 * The CUMODE notify may now use Server ID as well as the entity
6752 who changes the mode. Updated protocool specs.
6754 * Updated INSTALL and README files.
6756 Sun Apr 29 23:17:50 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
6758 * New web pages in the http://silc.pspt.fi. The pages was
6763 Sun Apr 29 13:33:41 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
6765 * Implemented the [DenyConnectin] config section in the server.
6766 Added silc_server_config_denied_conn to check whether incoming
6767 connection is denied. Affected file silcd/serverconfig.[ch].
6769 * Do not check the ports when checking the incoming configuration
6770 data if the port is 0, meaning any. Affected file is
6771 silcd/serverconfig.c.
6773 Fri Apr 20 18:58:43 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
6775 * Fixed buffer overflow in silc_string_compare in the file
6776 lib/silcutil/silcutil.c.
6778 * Fixed double free in silc_server_command_leave in the file
6781 Fri Apr 20 14:00:11 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
6783 * Fixed the version checking in the server. Affected file is
6786 Thu Apr 19 19:52:46 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
6788 * Fixed the configuration data fetching when accepting new
6789 connections in the server. Affected file silcd/server.c.
6791 Thu Apr 19 11:40:20 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
6793 * Added `sender_entry' argument to the function
6794 silc_server_packet_relay_to_channel so that we can check
6795 whether some destination actually belongs to the same route
6796 the sender belongs (ie, we must not resend the packet to the
6797 sender). Affected file silcd/packet_send.[ch].
6799 * Added `servername' field to the SilcClientEntry in the server
6800 to hold the name of the server where client is from. Affected
6801 file is silcd/idlist.h.
6803 Wed Apr 18 22:19:03 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
6805 * Moved the channel message encrypting in the router betwen
6806 router connections from silc_server_channel_message to the
6807 silc_server_packet_relay_to_channel since we want to check
6808 whether we have anybody channel before encrypting anything.
6809 Affected files silcd/packet_[receive/send].c.
6811 Tue Apr 17 21:18:19 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
6813 * Fixed the [AdminConnection] server config section to support
6814 multiple entries. Affected file silcd/serverconfig.c.
6816 * Added support into the server to check the validity of the
6817 incoming connection before executing any KE or authentication
6820 * The connection configuration is now saved to the KE and
6821 connection auth protocol contexts and not fetched anymore in
6822 the protocol. Affected files silcd/server.c, silcd/protocol.[ch].
6824 * The local hosts listenning address and port is also resolved
6825 now when starting the server. We want to have the socket object
6826 to include the real address and port for the listener. Added
6827 new function silc_net_check_local_by_sock into the files
6828 lib/silcutil/silcnet.[ch].
6830 * Fixed a broadcast bug in server -> do not broadcast if we
6833 * Fixed a routing bug. Do not route broadcast packets ever.
6834 Broadcast packets must be processed always and not routed since
6835 they may be destined to some other host than yourself and thus
6836 would get routed without no good reason. Affected file is
6839 * Added function silc_server_config_is_primary_route to check
6840 whether primary router connection has been configured (a router
6841 configuration that we are initiating). If there is not, we
6842 will assume that there is only two routers in the SILC network
6843 and we will use the incoming router connection as our primary
6844 route. Affected files silcd/serverconfig.[ch], silcd/server.c.
6846 * Changed the order of the broadcasting. Broadcast _after_ the
6847 packet has been processed not before. Affected file is
6850 * Fixed a [ClientConnection] parsing bug. The port was never
6851 parsed correctly thus resulting to port 0. Affected file
6852 silcd/serverconfig.c.
6854 * Fixed silc_server_send_notify_args -> it ignored the `broadcast'
6855 argument and did not set the broadcast packet flag. Affected
6856 file silcd/packet_send.c. Fixed same bug in the function
6857 silc_server_send_notify as well.
6859 * If we receive NEW_ID packet for our own ID in the server, ignore
6862 Mon Apr 16 12:10:33 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
6866 * Removed the nickname from the Private Message Payload.
6867 Updated the code and the protocol specs.
6869 * Updated protocol specs for submitting to the IETF.
6871 * Tweaked the Random Number Generator a bit. Affected file
6872 lib/silccrypt/silcrng.c. Exported a new function
6873 silc_rng_[global]_add_noise which can be used to add more
6876 Sat Apr 14 16:21:32 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
6878 * Do not parse packets with different timeout when protocol
6879 is active -> may cause problem with rekey. Affected file
6882 * When server receives signoff notify it must not create
6883 new channel key if the client is on any channels since the
6884 sender of the signoff notify will create it.
6886 Fri Apr 13 17:12:46 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
6888 * Added printing of error messages during SKE protocol from the
6889 failure packet sent by server during SKE. Affected file
6892 * Removed the client's failure_callback handling with timeout
6893 and handle it immediately when received.
6895 * The SKE library returned wrong type in SUCCESS and FAILURE
6896 packets. They must be 32 bit MSB not 16 bit MSB.
6898 Fri Apr 13 00:09:08 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
6900 * Ok, rewrote the logic of the re-key and now it seems to work.
6901 I tested it on high traffic with frequent re-keys without
6902 problems. Added hmac_receive (and renamed hmac to hmac_send)
6903 in SilcClientConnection in lib/silcclient/client.h and
6904 in SilcIDListData in silcd/idlist.h. Also, removed the
6905 SilcPacketParserContext's cipher and hmac fields as they are
6906 not needed anymore and actually caused some problems when
6907 the ciphers and hmac's changed underneath the packet parser.
6909 Thu Apr 12 14:42:51 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
6911 * If re-key protocol is active then process the incoming packets
6912 synchronously since we must assure that icoming packets encrypted
6913 with the old key is processed before the new keys is set to
6914 use. This is true other packets than for REKEY packets.
6915 Affected file silcd/server.c. The same was done to client library
6916 as well, affected file lib/silcclient/client.c.
6918 Thu Apr 12 12:01:52 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
6920 * Fixed bug in client and server to accept the force send if
6921 the packet is send from silc_[server/client]_packet_process
6922 function. Otherwise the packets are never delivered, oops.
6924 Wed Apr 11 22:10:15 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
6926 * Disable force sending of packets when REKEY protocol is active.
6927 We must assure that no packet is sent directly when rekey is
6928 performed. All packets must be sent through packet queue.
6929 Added macro SILC_SERVER_IS_REKEY to silcd/server.h and
6930 SILC_CLIENT_IS_REKEY to lib/silcclient/client.h. Affected
6931 function is silc_[server/client]_packet_send_real to check
6934 * Replaced the SIM paths from example config files to
6935 /usr/local/modules. Also, make install creates now
6936 /usr/local/silc/logs directory to hold all the SILC server
6939 Wed Apr 11 16:59:59 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
6941 * Made the configure.in.pre work on Solaris. Patch by salo.
6943 * Made all ciphers compatible with non-x86 machines. Defined
6944 CBC mode macros into lib/silccrypt/ciphers_def.h.
6946 Tue Apr 10 20:32:44 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
6948 * Fixed the make install.
6950 Tue Apr 10 16:20:34 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
6952 * When MAC computation fails the silc_packet_decrypt returned 0
6953 even though it was supposed to return -1. Fixed this. The
6954 affected file is lib/silccore/silcpacket.c.
6956 * Do not replace the config files in /etc/silc (in make install)
6957 if they already exist. Affected file ./Makefile.am.
6959 * Do not send re-key packets immediately but through packet queue.
6960 Affected file silcd/protocol.c and lib/silcclient/protocol.c.
6962 * Changed silc_net_check_host_by_sock to return FALSE if the
6963 IP/DNS could not be resolved. Though, it returns the IP address
6964 now even if it could not resolve it (but returns also FALSE).
6965 Affected file lib/silcutil/silcnet.[ch].
6967 Mon Apr 9 21:54:44 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
6969 * Added silc_pkcs_decode_identifier to decode the public key's
6970 identifier. Affected file lib/silccrypt/silpkcs.[ch].
6971 Added also silc_pkcs_free_identifier. Added also new context
6972 SilcPublicKeyIdentifier.
6974 * Added -S option to the silc client. It is used to dump the
6975 contents of the specified public key file.
6977 * Changed the PKCS api to return the public key length when
6978 setting the public key.
6980 * Fixed a fatal bug in the public and private key file loading.
6981 Affected file lib/silccrypt/silcpkcs.c.
6983 * Execute the packet parsing for client with zero (0) timeout
6984 if the protocol is active. Affected file silcd/server.c.
6986 Sun Apr 8 19:30:56 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
6988 * Made the key generation options to the silcd program. Added
6989 -C option, equivalent to client's option.
6991 * Added new [ServerKeys] config section to the server. It
6992 configures the server's public and private key.
6994 * Defined generic Public Key Payload into the protocol
6995 specification to send specific type of public keys and
6998 * Defined new command SILC_COMMAND_GETKEY to fetch a client's
6999 public key or certificate.
7001 * Implemented the GETKEY command to the server and to the
7002 client library and on user interface.
7004 Sun Apr 8 01:37:21 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
7006 * Made preliminary `make install' work.
7008 Thu Apr 5 17:42:30 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
7010 * Added SilcServerRekey context into silcd/idlist.h.
7012 * Added the PFS support as defined in the specification to the
7013 SKE protocol. Affected files lib/silcske/*.c.
7015 * Added `ske_group' field to the SilcServerRekey context to hold
7016 the number of the SKE group that is used with PFS in re-key.
7017 Affected file silcd/idlist.h.
7019 * Added PFS re-key support to the server. Affected file is
7022 * Added silc_protocol_cancel to cancel execution of the next
7023 state of the protocol. Affected file is
7024 lib/silccore/silcprotocol.[ch].
7026 * Added the re-key support with and without PFS to the client
7027 library. Re-key is performed once in an hour, by default.
7029 Added new protocol type SILC_PROTOCOL_CLIENT_REKEY.
7030 Added silc_client_rekey_callback and silc_client_rekey_final.
7031 Affected files are lib/silcclient/protocol.[ch] and
7032 lib/silcclient/client.[ch].
7034 * Removed the `hmac_key' and `hmac_key_len' fields from the
7035 SilcClientConnection structure; not needed. Affected file is
7036 lib/silcclient/client.h.
7040 Wed Apr 4 16:32:31 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
7042 * Do not ask whether user wants to use the negotiated private key
7043 for private messages, just use it. Affected file is
7044 silc/local_command.c.
7046 * Added `send_enc_key' and `enc_key_len' fields to the
7047 SilcIDListData structure since they are needed in the re-key
7048 phase. Affected file is silcd/idlist.[ch].
7050 * Implemented the simple re-key protocol into the server.
7051 Affected files silcd/server.c and silcd/protocol.[ch]. The
7052 re-key will be performed once in an hour, by default.
7054 Added new protocol type SILC_PROTOCOL_SERVER_REKEY.
7055 Added silc_server_rekey, silc_server_rekey_callback and
7056 silc_server_rekey_final.
7058 * Removed Tunneled flag from the protocol. Updated the code
7059 and the specifications.
7061 * Adde `pfs' field to the SilcIDListData to indicate whether
7062 the PFS is to be performed in the re-key. Affected file is
7065 Tue Apr 3 21:52:42 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
7067 * Defined uint8, int8, uint16, int16, uint32, int32, uint64 and
7068 int64 of at least the xintXX size. If void * is less that 4
7069 bytes uint32 * will be used. Defined bool as boolean.
7071 * Changed _ALL_ unsigned long and unsigned int to uint32,
7072 unsgined short to uint16 in the source tree.
7074 * Fixed a fatal bug in silc_server_remove_clients_by_server. Do
7075 not handle clients that has entry->data.registered == FALSE.
7076 They are not in the network anymore. Affected file is
7079 Tue Apr 3 16:39:19 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
7081 * Implemented the sending of the SERVER_SIGNOFF notify in the
7082 server. Affected file is silcd/server.c.
7084 * Added silc_server_send_notify_args into silcd/packet_send.[ch].
7085 Added also silc_notify_payload_encode_args into the
7086 lib/silccore/silcnotify.[ch].
7088 * Implemented ther SERVER_SIGNOFF notify handling in the server.
7089 Affected file silcd/packet_receive.c.
7091 * Implemented the SERVER_SIGNOFF notify handling in the client
7092 library. Affected file lib/silcclient/client_notify.c. Also,
7093 implemnted the printing of the SERVER_SIGNOFF info to the
7094 application. Affected file silc/client_ops.c.
7096 * The silc_idlist_del_server now returns TRUE or FALSE to indicate
7097 if the deleting was successful. Affected file silcd/idlist.[ch].
7099 * Added support for public key authentication in the connection
7100 authentication protocol in the client library. Affected file
7101 lib/silcclient/protocol.c.
7103 * Changed the server's silc_idlist_get_clients_by_* interface
7104 to support already allocated array so that new entries may be
7105 added to pre-allocated array. Affected file silcd/idlist.[ch].
7106 This fixes some bugs with WHOIS, WHOWAS and IDENTIFY commands
7107 and command replies.
7109 * All command reply functions in the server now calls the
7110 pending command callback even if error occured. This way the
7111 error will be delivered to the client as well. Affected files
7112 silcd/command.c and silcd/command_reply.c.
7114 * Fixed INFO command to return local server's info if no server
7115 was provided. Affected file lib/silcclient/command.c.
7117 * Removed RESTART command for good. Updated the code and the
7120 * Rewrote parts of the task system. It is a bit simpler now.
7121 Removed unsued task priorities. The affected files are
7122 lib/silcutil/silctask.[ch].
7124 Mon Apr 2 20:02:33 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
7126 * Moved the USERS printing from the library to the application.
7127 Affected files lib/silcclient/command.c and silc/client_ops.c.
7129 Mon Apr 2 13:13:23 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
7133 * Added channel key re-key support. The re-key is perfomed
7134 only by the router and is done once in an hour. Added `rekey'
7135 field to the SilcChannelEntry in the server. Affected files
7136 silcd/server.c and silcd/idlist.h.
7138 * Added silc_task_unregister_by_context into the file
7139 lib/silcutil/silctask.[ch].
7141 Sun Apr 1 19:49:34 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
7143 * Added SILC_UMODE_GONE mode to indicate when the client is not
7144 present in the SILC network. Added also support to the local
7145 command AWAY that will set this mode. Added support of showing
7146 "xxx is gone" in WHOIS command. The USERS command shows the
7147 gone status as well.
7149 * Fixed setting server and router operator privileges in the
7150 server's UMODE command. Affected file silcd/command.c.
7152 * Merged the SKE KE1 and KE2 payloads into one payload. The
7153 new KE payload is equivalent to the old KE2 payload.
7155 Cleaned up the SKE Start Payload parsing. It now uses the
7156 simple buffer unformatting to do the parsing. A lot faster
7159 Added new Mutual Authentication flag (SILC_SKE_SP_FLAG_MUTUAL)
7160 to the SKE that is used to indicate whether both of the SKE
7161 parties should perform authentication. By default only the
7162 responder performs authentication. By setting this flag also
7163 the initiator must do authentication. By default it is unset
7164 since in normal SKE case, client to server connection, only
7165 the responder should do authentication. When doing SKE between
7166 two clients both should perform authentication. Updated the
7167 code and the protocol specs.
7169 * A little fix to IDENTIFY command in the server. Search the
7170 client first by hash not nickname. Affected file is
7173 * Fixed the silc_client_close_connection to support closing
7174 the client to client connections wihtout deleting too much
7175 data. Affected file lib/silcclient/client.c.
7177 * Fixed a fatal bug in server and client; if KE1 or KE2 packets
7178 are received if protocol used to be active but is not anymore
7179 the application would crash due to NULL pointer dereference.
7180 Affected files silcd/server.c and lib/silcclient/client.c.
7182 * Added `hash' field to the SilcClientConnection to include
7183 the hash function negotiated in the SKE protocol.
7185 * Added new channel mode SILC_CMODE_FOUNDER_AUTH that is used
7186 to set the channel founder authentication data. A client can
7187 claim the founder rights later by providing the authentication
7188 data to the CUMODE command using SILC_CUMODE_FOUNDER mode.
7189 This way the channel founder can regain the channel founder
7190 privileges even it is left the channel. This works only on
7191 local server and the client must be connected to the same
7192 server to be able to regain the founder rights. Updated the
7193 protocol specs accordingly.
7195 Added support to the CMODE command in the client to set the
7196 founder auth data. Read the README to see how to set it.
7198 Added support to the CUMODE command to claim the founder
7199 rights. Read the README to see how to do it.
7201 Added support for the founder authentication to the Channel
7202 Entry in the server. Affected file silcd/idlist.h.
7204 Added support for the SILC_CMODE_FOUNDER_AUTH mode in the
7205 server's CMODE command. Affected file silcd/command.c.
7207 * Added the following new functions into lib/silccore/silcauth.[ch]:
7208 silc_auth_get_method and silc_auth_get_data.
7210 * The server now saves the remote hosts public key to the
7211 SilcIDListData pointer. Affected file silcd/protocol.c.
7213 * The normal server now does not remove the channel entry from
7214 the cache if the founder authentication data is set. It used
7215 to remove it if the founder was the last one on the channel on
7216 the server and left the channel. The auth data is saved and
7217 if the channel is re-joined later the old entry is used with
7218 the old auth data. Affected files silcd/command_reply.c and
7221 * Removed the `pkcs' field from the SilcIDListData structure
7222 in the server; it is not used. Affected file silcd/idlist.h.
7224 Sat Mar 31 15:38:36 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
7226 * Fixed packet processing on slow links. Partial packets were
7227 never re-processed because the incoming data buffer was cleared
7228 by the application. Application must not directly clear the
7229 sock->inbuf, the packet processing routines handle it. Fixed
7230 this in client library and in server.
7232 Fri Mar 30 16:35:27 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
7234 * Fixed the WHOIS and IDENTIFY send reply function to really
7235 check whether to send list or just one entry. Affected file
7238 * Cleaned up the LEAVE command's channel key distribution. The
7239 affected file silcd/command.c.
7241 * Changed CMODE_CHANGE's <Client ID> to <ID Payload> as server
7242 can enforce the channel mode as well. In that case the ID
7243 includes the ID of the server. The code now enforces the
7244 mode change if the router have different mode than the server.
7246 * The notify client operation with CMODE_CHANGE notify can now
7247 return NULL client_entry pointer if the CMODE was not changed
7248 by client. Application must check for this.
7250 * Added <Server ID> argument to INFO command to support server
7251 info fetching by Server ID.
7253 * Added silc_server_announce_get_channel_users to get assembled
7254 packets of channel users of the specified channel. Affected
7255 file silcd/server.[ch].
7257 * Fixed bug in CHANNEL_CHANGE notify in the server. The new ID
7258 was freed underneath the ID Cache.
7260 * Re-announce clients when the server received CHANNEL_CHANGE
7261 notify from the router. Affected file silcd/packet_send.c.
7263 Thu Mar 29 19:10:28 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
7265 * Fixed a fatal bug when client does /join 1 2 3 4 5 6 the server
7266 crashed since it did not handle the fact that there is no cipher
7267 called "3" and didn't check the error condition. Now fixed.
7269 * Added SILC_MESSAGE_FLAG_REQUEST message flag as generic request
7270 flag. It can be used to send message requests.
7272 Thu Mar 29 12:26:25 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
7274 * Implemented the RESTART command in the client.
7276 * Added SILC_MESSAGE_FLAG_NOTICE message flag for informational
7277 notice type messages. Added notice printing to the user
7280 * The channel keys are not re-generated if the channel's mode
7281 is PRIVKEY, ie private key on the channel exists. Affected
7282 files silcd/server.c and silcd/command.c.
7284 * Fixed a little bug in channel message delivery when channel
7285 private keys are set in the server. Affected file is
7286 silcd/packet_send.c.
7288 * Changed the setting on channel->on_channel = TRUE from the
7289 silc_client_save_channel_key to the JOIN command reply. The
7290 key payload is not received if the private channel key is set.
7291 Affected file lib/silcclient/command_reply.c and the
7292 lib/silcclient/client_channel.c.
7294 * When the CMODE_CHANGE notify is sent and the channel private
7295 key mode is removed the channel key must be re-generated in
7296 other cells as well. Added this support for the router in the
7297 silcd/packet_receive.c.
7299 * Added new local command NOTICE to send notice message on
7300 channel. Affected file silc/local_command.[ch].
7302 Wed Mar 28 23:55:54 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
7304 * Added new local command ME to the client. It is used to send
7305 message to a channel with SILC_MESSAGE_FLAG_ACTION to indicate
7306 some action. Affected file silc/local_command.[ch].
7308 * Changed channel_message and private_message client operations
7309 to deliver the message flags to the application. Added also
7310 the `flags' arguments to the silc_client_send_channel_message
7311 and silc_client_send_private_message functions. Affected file
7314 Wed Mar 28 20:50:47 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
7316 * Redefined the Private Message Payload to support private message
7317 keys and to support the new private message flags. Updated
7318 the protocol specs. Flags makes it possible to have for example
7319 CTCP style messages.
7321 * Added new type SilcPrivateMessagePayload and defined an API
7322 for it in the lib/silcclient/silcprivate.[ch].
7324 * Tested private message private keys successfully. Tested the
7325 private message key set, unset and list commands with the new
7328 * Redefined the Channel Message Payload to include the channel
7329 message flags (equal with private message flags) to support
7330 for example CTCP style messages.
7332 * Defined some of the message (for channel and private message)
7333 flags. Updated the protocol specs and added the flags to the
7334 lib/silccore/silcchannel.h. The type is SilcMessageFlags.
7336 Wed Mar 28 15:52:36 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
7338 * Added SilcKeyAgreementStatus type to the key agreement routines
7339 to indicate the current status and error if one occured.
7340 The status types are defined in the lib/silcclient/silcapi.h.
7342 * Added new local command KEY that is used to set and unset private
7343 keys for channels, set and unset private keys for private messages
7344 with remote clients and to send key agreement requests and
7345 negotiate the key agreement protocol with remote client. The
7346 key agreement is supported only to negotiate private message keys,
7347 it currently cannot be used to negotiate private keys for channels,
7348 as it is not convenient for that purpose.
7350 * Fixed a minor pending callback setting bug in the function
7351 silc_client_get_client_by_id_resolve, now the function works.
7352 Affected file lib/silcclient/idlist.c.
7354 * Added function silc_net_get_local_port to get local bound
7355 port by socket. Added to lib/silcutil/silcnet.[ch].
7357 * Added `sockets' and `sockets_count' fields to the SilcClient
7358 object. They hold the sockets of the listenning sockets in
7359 the client. Listenning sockets may be for example the key
7360 agreement server. Affected file lib/silcclient/client.[ch].
7361 Added functions the silc_client_add_socket and the
7362 silc_client_del_socket. They are exported to the application
7365 * Added ~./silc/clientkeys to support other client's public keys.
7367 * Renamed verify_server_key client operation to verify_public_key
7368 and added one argument to indicate the type of the connection
7369 (server, client etc.).
7371 Tue Mar 27 22:22:38 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
7373 * Added silc_server_connection_auth_request to handle the
7374 incoming CONNECTION_AUTH_REQUEST packet. Affected file is
7375 silcd/packet_receive.[ch].
7377 * Added silc_server_send_connection_auth_request into the
7378 silcd/packet_send.c to send the connection auth request packet.
7380 * Cleaned up the silcd/protocol.c a bit and fixed some memory
7383 * Fixed the public key authentication in responder side in the
7384 server. The `auth_data' pointer includes the SilcPublicKey
7385 not the path to the public key. Affected file silcd/protocol.c.
7387 * Implemented the public key authentication in the initiator side
7388 in the server. Affected file silcd/protocol.c.
7390 * Removed the [RedirectClient] config section from the server
7391 configuration. Is not needed and I don't want to implement it.
7393 Tue Mar 27 12:49:56 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
7395 * Cleaned up the CMODE command in the server. It now works
7396 correctly and supports all the modes defined in the protocol.
7397 Affected file is silcd/command.c.
7399 * Added `hmac_name' field to the SilcChannelEntry in the server
7400 to hold the default HMAC of the channel. It can be set when
7401 creating the channel (with JOIN command). Affected files
7404 * Added <cipher> and <hmac> argument to the CMODE_CHANGE notify
7405 type to indicate the change of the current cipher and hmac
7406 on the channel. Client can safely ignore the <cipher> argument
7407 (if it chooses to do so) since the CHANNEL_KEY packet will
7408 force the channel key change anyway. The <hmac> argument is
7409 important since the client is responsible of setting the new
7410 HMAC and the hmac key into use.
7412 * Fixed the CMODE command in the client library as well.
7414 * Tested CMODE command in router environment successfully.
7416 Mon Mar 26 14:39:48 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
7418 * Show the version of the remote client (or server) when connecting
7419 to the server. It is logged to the log file. Affected file
7420 is silcd/protocol.c.
7422 * Fixed the KILLED notify handling in the client library. The
7423 client must be removed from all channels when receiving the
7426 Also, do not remove the client entry when giving the KILL
7427 command but when the KILLED notify is received.
7429 * Removed silc_idlist_find_client_by_nickname from the server.
7430 Not needed anymore. Affected files silcd/idlist.[ch].
7432 * Implemented the CHANNEL_CHANGE notify type handling to the
7433 server. Affected file silcd/server.c.
7437 Mon Mar 26 12:11:14 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
7439 * Added silc_server_send_notify_invite to send the INVITE
7440 notify between routers.
7442 * Implemented the INVITE command correctly to the server.
7444 * Implemented the INVITE notify type handling in the server.
7446 * Implemented the INVITE command to the client library and on the
7449 Sun Mar 25 20:27:09 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
7451 * Added function silc_server_get_client_resolve to find the
7452 client entry by ID from all ID lists and then resolve it
7453 (using WHOIS) if it cannot be found. Affected file is
7456 Sun Mar 25 13:52:51 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
7458 * Implemented the BAN command to the client library.
7460 * The JOIN command in the server now checks the invite list
7463 * Changed the silc_command_reply_payload_encode_va and the
7464 silc_command_payload_encode_va to support that if argument is
7465 NULL it ignores and checks the next argument. Affected file
7466 lib/silccore/silccommand.c.
7468 * Added silc_server_send_notify_ban to send the BAN notify
7469 type between routers.
7471 * Chaned the silc_notify_payload_encode to support that if
7472 argument is NULL it ignores and checks the next argument.
7473 Affected file lib/silccore/silcnotify.c.
7475 * Tested ban lists in router environment successfully.
7477 Sat Mar 24 14:47:25 EET 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
7479 * Implemented BAN command to the server, in silcd/command.[ch].
7481 * Removed the BAN and INVITE_LIST modes from the CMODE command
7484 * Added function silc_string_match to regex match two strings.
7485 Affected files lib/silcutil/silcutil.[ch].
7487 Fri Mar 23 22:02:40 EET 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
7489 * Redefined parts of the SilcChannelEntry in the server to support
7490 the new ban and invite lists.
7492 Fri Mar 23 16:25:11 EET 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
7494 * Redefined the INVITE command. The same command can be used to
7495 invite individuals to the channel but also to manage the invite
7496 list of the channel (to add to and remove from the invite list).
7497 Updated the protocol specs.
7499 * Added new command SILC_COMMAND_BAN that can be used to manage
7500 the ban list of the channel. Updated the protocol specs.
7502 * Removed the channel modes: the SILC_CMODE_BAN and the
7503 SILC_CMODE_INVITE_LIST as they were a bit kludge to be included
7504 in the CMODE command. The equivalent features are now available
7505 using INVITE and BAN commands. Updated the protocol specs.
7507 * Added new SILC_NOTIFY_TYPE_BAN notify type to notify routers
7508 in the network about change in the current ban list. The notify
7509 type is not used by the client.
7511 * Redefined parts of the SILC_NOTIFY_TYPE_INVITE command to
7512 support the invite lists.
7514 Thu Mar 22 22:52:23 EET 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
7516 * Added new function silc_string_regexify that converts string
7517 including wildcard characters into regex string that can
7518 be used by the GNU regex library. Added into the file
7519 lib/silcutil/silcutil.[ch].
7521 Added silc_string_regex_combine to combine to regex strings
7522 into one so that they can be used as one regex string by
7523 the GNU regex library. Added into the file
7524 lib/silcutil/silcutil.[ch].
7526 Added silc_string_regex_match to match two strings. It returns
7527 TRUE if the strings match. Added into lib/silcutil/silcutil.[ch].
7529 Thu Mar 22 15:29:42 EET 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
7531 * Imported GNU regex to the soruce tree into lib/contrib.
7532 Fixed some compiler warning from the regex.c.
7534 Wed Mar 21 15:27:58 EET 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
7536 * Fixed MOTD command in the server to work in router environment.
7538 * Fixed the MOTD command in the client library to support
7539 the server argument in the command.
7541 * Added `nickname_len' argument to the silc_idlist_add_client
7542 in the server, as the `nickname' argument may be binary data
7545 * Added silc_idlist_get_channels to return all channels from
7548 * Implemented LIST command to the server. Affected file is
7551 * Implemented the LIST command to the client library and on the
7554 * Added [<user count>] argument to the LIST command reply.
7555 With private channels the user count is not shown.
7557 * Updated TODO and README.
7559 Tue Mar 20 21:05:57 EET 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
7561 * The client entry's data.registered must be TRUE even with
7562 global client entry on global client list. The data.registered
7563 is used to check whether the client is anymore in the network,
7564 for example with WHOWAS command so it must be valid.
7566 * Fixed the WHOWAS command in the server. It now actually works
7567 in router environment. Added function into silcd/command_reply.c
7568 silc_server_command_reply_whowas_save.
7570 * Added silc_idlist_purge function to the silcd/idlist.c
7571 to periodically purge the ID Cache.
7573 * Fixed INFO command in the server. It works now in router
7574 environment. Added <server name> argument to the INFO command
7575 reply. Updated the protocol specs.
7577 * Fixed minor bug in silc_idcache_purge to not purge if the
7578 expire value is zero.
7580 * Fixed various bugs in WHOIS and IDENTIFY command handling as
7581 they were buggy because of the WHOWAS information.
7583 * Fixed local command MSG to handle the async resolving of
7584 the remote client properly. It used to fail the first MSG.
7585 Affected file silc/local_command.c.
7587 * Added `data_len' field to SilcIDCache context.
7589 Tue Mar 20 16:29:00 EET 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
7591 * Update TODO. Todo in commands in the server.
7593 Tue Mar 20 15:45:14 EET 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
7595 * Added new notify type SILC_NOTIFY_TYPE_UMODE_CHANGE that is
7596 used by routers as broadcast packet to inform other routers
7597 about the changed user mode.
7599 Implemented the notify handling in the server. Affected file is
7600 silcd/packet_receive.c. Added the function
7601 silc_server_send_notify_umode to the silcd/packet_send.[ch].
7603 * Added new generic Channel Payload and deprecated the New Channel
7604 Payload. The New Channel Payload is now the generic Channel
7607 * Added new argument `mode' to the silc_server_send_new_channel
7608 as it is required in the Channel Payload now.
7610 * Renamed the SilcChannelPayload to SilcChannelMessagePayload
7611 and created a new and real SilChannelPayload to represent the
7612 new generic Channel Payload. Implemented the encode/decode
7613 for Channel Payload. Affected file lib/silccore/silcchannel.[ch].
7615 * Added silc_server_get_client_channel_list to return the list
7616 of channels the client has joined for WHOIS command reply.
7617 Affected file silcd/server.[ch].
7619 * Implemented the channel list sending in the WHOIS command reply
7620 in server and in the client.
7622 Implemented the channel list displaying on the user interface
7623 as well. Affected file silc/client_ops.c.
7625 * Added silc_channel_payload_parse_list to parse list of Channel
7626 Payloads. It returns SilcDList list of SilcChannelPayloads.
7627 Client for example can use this function to parse the list of
7628 channels it receives in the WHOIS command reply. The caller
7629 must free the list by calling silc_channel_payload_list_free.
7630 Affected files lib/silccore/silcchannel.[ch].
7632 Mon Mar 19 21:39:15 EET 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
7634 * Added one new argument <user mode> to the WHOIS command reply
7635 to return the mode of the user in SILC. Updated the protocol
7638 Implemented it to the server and client.
7640 Mon Mar 19 18:43:06 EET 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
7642 * Fixed the mode printing on the user interface on joining.
7643 Affected file silc/client_ops.c.
7645 * Implemented the UMODE command and user modes in general to the
7646 client library and to the user interface.
7648 * Implemented the UMODE command to the server.
7650 * The server now sends UNKNOWN_COMMAND error status if client sends
7651 unknown command. Affected file silcd/command.c.
7653 * All server commands now handle the command identifier the right
7654 way when sending the command reply to the client. The client can
7655 use to identify the command replies with the identifier.
7657 Mon Mar 19 16:13:07 EET 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
7659 * Added silc_server_get_client_route to resolve the route to
7660 the client indicated by the client ID. Affected file is
7663 * Added silc_server_relay_packet as general function to relay
7664 packet to arbitrary destination. This deprecates functions
7665 like _send_private_message_key, _relay_notify etc. Affected
7666 file is silcd/packet_send.[ch].
7668 Removed silc_server_send_key_agreement,
7669 silc_server_send_private_message_key and
7670 silc_server_packet_relay_notify functions from the file
7671 silcd/packet_send.[ch].
7675 * Implemented the SILC_NOTIFY_TYPE_KILLED notify handling in the
7676 server. Affected file silcd/packet_receive.[ch].
7678 * Implemented the KILL command to the client. Implemented the
7679 SILC_NOTIFY_TYPE_KILLED notify handling in the client library.
7680 Affected files lib/silcclient/command[_reply].c and
7681 lib/silcclient/client_notify.c. Implemented the KILL notify
7682 printing in the user inteface.
7684 * Fixed a lot silc_parse_nick memory leaks from the client
7685 library in the file lib/silcclient/command.c.
7687 * Changed the silc_server_send_notify_on_channels's `sender'
7688 argument from SilcSocketConnection to SilcClientEntry to
7689 check the sender as entry and not as connection object and not
7690 to send to the client provided as argument. The affected file
7691 is silcd/packet_send.[ch].
7693 * The notify packets that are destined directly to the client used
7694 to not to be processed by the server. Now changed that and the
7695 server processes all notify packets. After relaying the packet
7696 to the client the notify packet is processed in the server.
7698 * The silc_server_free_client_data now checks whether there is
7699 pending outgoing traffic for the client and purges the data to
7700 the network before removing the client entry.
7702 Sun Mar 18 21:02:47 EET 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
7704 * Added SILC_NOTIFY_TYPE_KILLED notify type. It is sent when
7705 an client is killed from the SILC Network. Updated the protocol
7708 Added new function silc_server_send_notify_killed to the
7709 silcd/packet_send.[ch].
7711 * Added function silc_server_packet_relay_notify to relay notify
7712 packets that are destined directly to a client. In this case
7713 the server does not process the notify packets but merely relays
7714 it to the client. Affected file silcd/packet_send.[ch].
7716 Added also silc_server_packet_process_relay_notify to check
7717 whereto relay the notify. Affected file is
7718 silcd/packet_receive.[ch].
7720 * Implemented the KILL command to the server.
7724 * Added the backup schema desgined last fall to the protocol
7725 specs for everyone to see. The specification is in the
7726 *-spec-xx.txt draft and the packet type definitions for the
7727 backup routers is in *-pp-xx.txt draft. Thusly, added also
7728 new packet type SILC_PACKET_CELL_ROUTERS.
7730 * A big security problem in the implementation discovered. The
7731 signoff of an client did not cause new channel key generation
7732 which it of course should've done. The channel keys must be
7733 always re-generated when client leaves (or signoffs) the channel.
7734 The silc_server_remove_from_channels funtion now handles
7735 the channel key re-generation.
7737 * Added `sender' argument to the silc_server_send_notify_on_channels
7738 to not to send the client provided as argument. Affected file
7739 silcd/packet_send.[ch].
7741 Fri Mar 16 15:52:49 EET 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
7743 * Implemented OPER and SILCOPER commands into the server and
7746 * Added silc_auth_verify and silc_auth_verify_data to verify
7747 the authentication directly from the authentication payload.
7748 It supports verifying both passphrase and public key based
7749 authentication. Affected file lib/silccore/silcauth.[ch].
7751 * Added `hash' field to the SilcIDListData structure. It is the
7752 hash negotiated in the SKE protocol. Affected file is
7755 * Slight redesigning of the SilcAuthPayload handling routines.
7756 Do not send SilcPKCS but SilcPublicKey as argument.
7758 * Implemented the public key authentication support to the
7759 serverconfig. The public key is loaded from the provided path
7760 and saved as authentication data to void * pointer. Thus,
7761 changed the unsigned char *auth_data to void *auth_data;
7763 * Fixed SHUTDOWN command to send the reply before the server
7764 is shutdown. :) Affected file silcd/command.c.
7766 * Fixed fatal bug in CONNECT command. The hostname was invalid
7767 memory and server crashed. Affected file silcd/command.c.
7769 * Fixed fatal bug in CLOSE command. The server_entry became
7770 invalid but was referenced later in the command. Affected file
7773 Thu Mar 15 12:46:58 EET 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
7775 * Fixed fatal bug in failure packet handling. Server ignored
7776 the failure and thus crashed when it came.
7780 Wed Mar 14 20:37:35 EET 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
7782 * Added new SILC_CF_LAG_STRICT command flag that strictly forces
7783 that the command may be executed only once in (about) 2 seconds.
7784 The old SILC_CF_LAG flag is same but allows command bursts up
7785 to five before limiting.
7787 Added the support for CF_LAG and CF_LAG_STRICT flags to the
7788 server code. Various commands now includes the CF_LAG_STRICT
7789 flag to disallow any kind of miss-use of the command.
7791 * Fixed the silc_buffer_unformat to not to allocate any data
7792 if the length of the data is zero. It used to allocate the
7793 length + 1. Affected file lib/silcutil/silcbuffmt.c.
7795 Wed Mar 14 16:10:30 EET 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
7797 * Changed the format of AdminConnection configuration section
7798 in the server. Added username of the admin to the format.
7799 Affected files silcd/serverconfig.[ch].
7801 Added silc_server_config_find_admin into silcd/serverconfig.[ch]
7802 to return admin configuration data by host, username and/or
7805 Wed Mar 14 13:18:16 EET 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
7807 * Implemented WHOWAS command to the server. Added the functions:
7809 silc_server_command_whowas_parse,
7810 silc_server_command_whowas_send_reply,
7811 silc_server_command_whowas_from_client and
7812 silc_server_command_whowas_from_server
7814 * Added <Client ID> argument to the WHOWAS command reply. Updated
7815 the protocol specs accordingly.
7817 * Implemented WHOWAS command and command_reply to the client
7820 Implemented the WHOWAS printing on the user interface.
7822 Tue Mar 13 22:17:34 EET 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
7824 * Added new argument to the WHOWAS command reply, the real name.
7825 It is an optional argument. Updated the protocol specs.
7827 * Added SilcIDCacheDestructor callback that is registered when
7828 the SilcIDCache is allocated. The callback is called when
7829 an cache entry in the ID Cache expires, or is purged from the
7830 cache. Added into lib/silccore/idcache.[ch].
7832 Added silc_idlist_client_destructor to the silcd/idlist.[ch]
7833 to destruct the client entries when the cache entry expires.
7834 Other ID Cache's in server and in the client library ignores
7837 * If the ID Cache entry's `expire' field is zero then the entry
7838 never expires. Added boolean `expire' argument to the
7839 silc_idcache_add function in the lib/silccore/idcache.[ch].
7840 If it is TRUE the default expiry value is used.
7842 * Added silc_server_free_client_data_timeout that is registered
7843 when client disconnects. By default for 5 minutes we preserve
7844 the client entry for history - for WHOWAS command.
7846 Tue Mar 13 13:26:18 EET 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
7848 * Added support to the server to enforce that commands are not
7849 executed more than once in 2 seconds. If server receives
7850 commands from client more frequently, timeout is registered
7851 to process the commands. Affected file silcd/command.c.
7852 Added new function silc_server_command_process_timeout.
7854 * Changed NICK_NOTIFY handling in client library to check that
7855 if the client's nickname was changed, so there is no need to
7856 resolve anything from the server.
7858 * Removed error printing from the WHOIS and IDENTIFY commands.
7859 If error occurs then it is ignored silently in the client library.
7860 The application, however, may map the received error to
7861 human readable error string. The application currently maps
7862 the NO_SUCH_NICKNAME error to string.
7864 * Made the command status message public to the application. Moved
7865 them from lib/silcclient/command_reply.c to
7866 lib/silcclient/command_reply.h. The application can map the
7867 received command status to the string with the
7868 silc_client_command_status_message function.
7870 * Added check to the server to check that client's ID is same
7871 as the Source ID in the packet the client sent. They must
7874 Tue Mar 13 12:49:21 EET 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
7876 * Added dist-bzip hook to the Makefile.am to make bzip2
7877 compressed distributions.
7879 Mon Mar 12 18:43:38 EET 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
7881 * Server now enforces the maximum length for the nickname and
7882 the channel as protocol specification dictates. 128 bytes for
7883 nickname and 256 bytes for channel name.
7885 * Moved the WHOIS printing to the application. The client libary
7886 does not print out the WHOIS information anymore, the application
7887 must do it. Renamed silc_client_command_reply_whois_print to
7888 the silc_client_command_reply_whois_save.
7890 The client's idle time is also sent to the application now, and
7891 the idle is shown on screen.
7893 * Added silc_client_command_reply_identify_save to save the
7894 received IDENTIFY entries.
7896 * Do not check for channel private keys in message sending and
7897 reception if the channel does not have the PRIVKEY mode set.
7898 Affected file lib/silclient/client_channel.c.
7900 Sun Mar 11 20:25:06 EET 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
7902 * Fixed a minor bug if WHOIS and IDENTIFY command parsing that
7903 just surfaced after chaning the JOIN procedure.
7905 Sun Mar 11 14:59:05 EET 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
7907 * Added silc_client_get_clients_by_list to get client entries
7908 from Client ID list, that is returned for example by JOIN
7909 and USERS command replies. The application should use this
7910 function for example when JOIN command reply is received to
7911 resolve the clients already on the channel (library does not
7912 do that anymore as USERS command reply is not used in the JOIN
7913 procedure anymore). Affected files lib/silcclient/silcapi.h and
7914 lib/silcclient/idlist.c.
7916 * JOIN command reply and USERS command reply returns now SilcBuffer
7917 pointers instead of unsigned char pointers when returning
7918 the client list and mode list.
7920 * Added <Client ID> argument to the JOIN command reply, mainly
7921 for the server to identify for which client the command was
7922 originally sent. Updated protocol specs accordingly.
7924 * Added SilcDlist private_key pointer to the SilcChannelEntry
7925 in the client to support the channel private keys. Affected
7926 file is lib/silcclient/idlist.h.
7928 * Added SilcChannelPrivateKey argument to the function
7929 silc_client_send_channel_message so that application can choose
7930 to use specific private ke if it wants to. If it is not provided,
7931 the normal channel key is used, unless private keys are set.
7932 In this case the first (key that was added first) is used
7933 as the encryption key.
7935 * Implemented the support for channel private key handling.
7936 Implemented the following functions:
7938 silc_client_add_channel_private_key,
7939 silc_client_del_channel_private_keys,
7940 silc_client_del_channel_private_key,
7941 silc_client_list_channel_private_keys and
7942 silc_client_free_channel_private_keys
7944 Affected file lib/silcclient/client_channel.c.
7946 * Added the support for the private keys in the channel message
7947 sending and encryption and in the message reception and
7948 decryption. Affected funtions are
7949 silc_client_send_channel_message and silc_client_channel_message.
7951 Sat Mar 10 21:36:22 EET 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
7953 * Added SKE's key verify callback to the client library's
7954 KE protocol context. Affected files lib/silcclient/protocol.[ch].
7956 * Removed the statement that server (or router) must send USERS
7957 command reply when joining to the channel so that the client
7958 knows who are on the channel. Instead, the client list and
7959 client's mode list is now sent in the JOIN command reply to the
7960 client who joined channel. This is better solution.
7962 * Added function silc_server_get_users_on_channel and function
7963 silc_server_save_users_on_channel to the silcd/server.[ch].
7965 * Removed function silc_server_command_send_users from the
7968 * Do not show topic on the client library anymore. The topic is
7969 sent in the command reply notify to the application and the
7970 application must show the topic now.
7972 Sat Mar 10 00:07:37 EET 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
7974 * Added client searching by nickname hash into the IDENTIFY and
7975 WHOIS commands in the server as they were clearly missing from
7976 them. Affected file is silcd/command.c.
7978 * Fixed a bug in private message receiving in the client library.
7979 The remote ID was freed and it wasn't supposed, now it is
7982 Fri Mar 9 12:40:42 EET 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
7984 * Minor fix to the channel payload; allocate the data area, as it
7985 needs to be of specific length.
7987 * If the key agreement port is zero then the operating
7988 system will define the bound port. Affected files are
7989 lib/silcclient/silcapi.h and lib/silcclient/client_keyagr.c.
7991 * Added new function silc_channel_payload_decrypt into the file
7992 lib/silccore/silcchannel.[ch].
7994 * Moved the channel message etc, check from silc_packet_decrypt
7995 to applications. The library calls now a generic
7996 SilcPacketCheckDecrypt callback which is to return TRUE or FALSE
7997 when the packet is either normal or special. This was done to
7998 allow more wide range of checking that was not allowed when
7999 the code was in library. Now applications can do virtually any
8000 checks to the packet and return to the library the decision how
8001 the packet should be processed. Affected files are
8002 lib/silccore/silcpacket.[ch].
8004 Added silc_server_packet_decrypt_check to the server and
8005 silc_client_packet_decrypt_check to the client library.
8007 * Added silc_server_packet_send_srcdest into silcd/packet_send.[ch]
8008 to send with specified source and destination information.
8010 * Channel message delivery between routers was broken after the
8011 channel key distribution was fixed earlier. The channel key
8012 was used be to distributed to other routers as well which is not
8013 allowed by the protocol. Now this is fixed and channel keys
8014 really are cell specific and the channel message delivery between
8015 routers comply with the protocol specification.
8017 * Fixed various commands in server to check also the global list
8018 for the channel entry and not just the local list. The affected
8019 file silcd/command.c.
8021 Thu Mar 8 21:39:03 EET 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
8023 * Added assert()s to buffer formatting and unformatting routines
8024 to assert (if --enable-debug) when error occurs. Affected
8025 file: lib/silcutil/silcbuffmt.c.
8027 * Changed to auto-reconnect to check whether the remote host is
8028 router and register the re-connect timeout if it is. It used
8029 to check that whether we are normal server, but router must do
8030 auto-reconnect with another router as well. Affected file
8033 * Removed the [<key len>] option from CMODE command as the cipher
8034 name decides the key length, nowadays. See the defined ciphers
8035 from the protocol specification.
8037 * Added [<hmac>] option to the CMODE command to define the HMAC
8038 for the channel. Added SILC_CMODE_HMAC channel mode.
8040 * Added [<hmac>] option for the JOIN command so that user can
8041 select which HMAC is used to compute the MACs of the channel
8044 * Added Hmac field to the Channel Message Payload. The integrity
8045 of plaintext channel messages are now protected by computing
8046 MAC of the message and attaching the MAC to the payload. The
8047 MAC is encrypted. Now, it is clear that this causes some
8048 overhead to the size of the packet but rationale for this is that
8049 now the receiver can verify whether the channel message decrypted
8050 correctly and also when private keys are set for the channel the
8051 receiver can decrypt the packet with several keys and check from
8052 the MAC which key decrypted the message correctly.
8054 * Added silc_cipher_encrypt and silc_cipher_decrypt into the
8055 lib/silccrypt/silccipher.[ch].
8057 * Added silc_hash_len to return the digest length into the
8058 lib/silcrypt/silchash.[ch].
8060 * Rewrote parts of Silc Channel Payload interface in the
8061 lib/silccore/silcchannel.[ch]. The encode function now also
8062 encrypts the packet and parse function decrypts it.
8064 Wed Mar 7 20:58:50 EET 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
8066 * Fixed a minor formatting bug in the SKE's key material processing.
8067 It actually might have processed the keys wrong way resulting
8070 * Redefined the mandatory HMAC algorithms and added new algorithms.
8071 Added hmac-sha1-96 and hmac-md5-96 which are normal hmac-sha1
8072 and hmac-md5 truncated to 96 bits. The mandatory is now
8073 hmac-sha1-96. Rest are optional (including the one that used
8074 to be mandatory). Rationale for this is that the truncated HMAC
8075 length is sufficient from security point of view and can actually
8076 make the attack against the HMAC harder. Also, the truncated
8077 HMAC causes less overhead to the packets. See the RFC2104 for
8080 * Added new [hmac] configuration section. The SKE used to use
8081 the hash names (md5 and sha1) in the SKE proposal as HMCAS which
8082 is of course wrong. The official names that must be proposed in
8083 the SKE are the ones defined in the protocol specification
8084 (hmac-sha1-96 for example). The user can configure any hmac
8085 using any hash function configured in the [hash] section. At
8086 least, the mandatory must be configured.
8088 Rewrote the HMAC interface in lib/silccrypt/silchmac.[ch].
8090 * Added HMAC list to the SKE proposal list. It has now both
8091 hash algorithm list and HMAC list. This makes the protocol
8092 incompatible with previous versions. The SKE now seems to work
8093 the way it is supposed to work, for the first time actually.
8095 * Defined plain Hash algorithms to the protocol specification.
8098 Tue Mar 6 15:36:11 EET 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
8100 * Implemented support for key agreement packets into the server.
8101 Added functions silc_server_key_agreement and
8102 silc_server_send_key_agreement. Other than these functions,
8103 server has nothing to do with this packet.
8105 * Added support for private message key packets into the server.
8106 Added functions silc_server_private_message_key and
8107 silc_server_send_private_message_key.
8111 * Changed the silc_[client|server]_protocol_ke_set_keys to be
8112 called in the protocol's final callback instead in the END
8113 protocol state. This makes a little more sense and in the same
8114 time in client we can use the same protocol routines for normal
8115 key exchange and to key agreement packet handling as well.
8117 * Added to both client's and server's KE protocol context the
8118 SilcSKEKeyMaterial pointer to save the key material. We will
8119 bring the key material to the protocol's final callback by doing
8120 this. The final callback must free the key material.
8122 * Added SKE's packet_send callback into client's KE protocol
8123 context so that the caller can choose what packet sending function
8124 is used. This way we can use different packet sending when
8125 doing normal SKE when doing key agreement packet handling (in
8126 the key agreement packet handling we do not want to encrypt
8129 * Implemented the responder side of the key agreement routines
8130 in the client. The client can now bind to specified port and
8131 accept incoming key negotiation. The key material is passed
8132 to the application after the protocol is over.
8134 * Implemented the processing of incoming Key Agreement packet
8135 in the client. Added function silc_client_key_agreement to
8138 * Implemented the intiator side of the key agreement routines
8139 in the client. The client can now initiate key agreement with
8140 another remote client. The key material is passed to the
8141 application after the protocol is over.
8143 * Created client_keyagr.c to include all the key agreement
8146 * Added macro SILC_TASK_CALLBACK_GLOBAL which is equal to the
8147 SILC_TASK_CALLBACK except that it is not static.
8149 * Created client_notify.c and moved the Notify packet handling
8150 from the client.[ch] into that file.
8152 * Created client_prvmsg.c and moved all private message and
8153 private message key routines from the client.[ch] into that file.
8155 * Create client_channel.c and moved all channel message and
8156 channel private key routines from the client.[ch] into that file.
8158 * Changed silc_client_get_client_by_id_resolve to resolve with
8159 WHOIS command instead of IDENTIFY command, in the file
8160 lib/silclient/idlist.c.
8162 Mon Mar 5 18:39:49 EET 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
8164 * Implemented the SKE's responder side to the Client library.
8166 * When FAILURE is received to the protocol do not trust it
8167 blindly. Register a timeout to wait whether the remote closes
8168 the connection as it should do it, only after that process the
8169 actual failure. This was changed to both client and server.
8171 * Added client_internal.h to include some of the structures
8172 there instead of client.h in lib/silcclient/.
8174 * Added function silc_task_unregister_by_callback to unregister
8175 timeouts by the callback function.
8177 Sat Mar 3 19:15:43 EET 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
8179 * Some "Incomplete WHOIS info" errors has been appearing on the
8180 log files. Took away the entry->userinfo check from WHOIS
8181 reply sending. The entry->userinfo is now " " if client did not
8182 provide one. I thought this was fixed earlier but something
8183 is wrong still. Let's see if the error still appears.
8185 Wed Feb 28 20:56:29 EET 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
8187 * Fixed a minor bug in the login when the channel key is
8188 re-generated in the server. It used to generate the key in
8189 wrong order and thus caused problems in the channel traffic.
8191 * Fixed a minor bug in channel key distsribution after
8192 KICK command. The key was not sent to the router even though
8195 Tue Feb 27 20:24:25 EET 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
8197 * Added silc_ske_process_key_material_data as generic routine
8198 to process any key material as the SILC protocol dictates. The
8199 function is used by the actual SKE library but can be used by
8200 applications as well. This relates to the private message keys
8201 and the channel private keys since they must be processed the
8202 same way the normal SILC session keys. The protocol dictates
8203 this. Affected files: lib/silcske/silcske.[ch].
8205 Added also silc_ske_free_key_material to free the
8206 SilcSKEKeyMaterial structure.
8208 * Defined silc_cipher_set_key function to set the key for
8209 cipher without using the object's method function. The affected
8210 files: lib/silccrypt/silccipher.[ch].
8212 * Implemented silc silc_client_add_private_message_key,
8213 silc_client_add_private_message_key_ske,
8214 silc_client_del_private_message_key,
8215 silc_client_list_private_message_keys and
8216 silc_client_free_private_message_keys functions in the
8219 Added functions silc_client_send_private_message_key to send
8220 the Private Message Key payload and silc_client_private_message_key
8221 to handle incoming Private Message Key payload.
8223 * Added Cipher field to the Private Message Key payload to set
8224 the cipher to be used. If ignored, the default cipher defined
8225 in the SILC protocol (aes-256-cbc) is used.
8227 Tue Feb 27 13:30:52 EET 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
8229 * Removed lib/silcclient/ops.h file.
8231 Redefined parts of the SILC Client Library API. Created new
8232 file silcapi.h that deprecates the ops.h file and defines the
8233 published Client Library API. Defined also private message key
8234 API and channel private key API into the file.
8236 This is the file that the application must include from the
8237 SILC Client Library. Other files need not be included by
8238 the application anymore.
8240 * Added new key_agreement client operation callback and also
8241 defined the Key Agreement library API for the application.
8243 Tue Feb 27 11:28:31 EET 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
8245 * Added new packet type: SILC_PACKET_KEY_AGREEMENT. This packet
8246 is used by clients to request key negotiation between another
8247 client in the SILC network. If the negotiation is started it
8248 is performed using the SKE protocol. The result of the
8249 negotiation, the secret key material, can be used for example
8250 as private message key.
8252 Implemented the Key Agreement payload into the files
8253 lib/silccore/silauth.[ch].
8255 Mon Feb 26 12:13:58 EET 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
8257 * Redefined ciphers for the SILC protocol. Added some new ciphers
8258 and defined the key lengths for the algorithms. Changed the
8259 code accordingly. The default key length is now 256 bits.
8261 * Fixed SKE key distribution function silc_ske_process_key_material
8262 when the key length is more than 128 bits. The default key
8263 length in SILC is now 256 bits.
8265 * Added new command status type: SILC_STATUS_ERR_UNKOWN_ALGORITHM
8266 to indicate unsupported algorithm.
8268 * Renamed rijndael.c to aes.c and all functions as well.
8270 * Fixed a long standing channel key setting bug in client library.
8271 Weird that it has never surfaced before.
8273 * Fixed bug in channel deletion. If the entire channel is removed
8274 then it must also delete the references of the channel entry
8275 from the client's channel list as the client's channel entry and
8276 the channel's client entry share same memory.
8278 Sun Feb 25 20:47:29 EET 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
8280 * Implemented CONNECT and SHUTDOWN commands in the client.
8282 * Implemented CLOSE command to the client.
8284 * Added the function silc_idlist_find_server_by_name into the
8285 files silcd/idlist.[ch].
8287 Added the function silc_idlist_find_server_by_conn into the
8288 files silcd/idlist.[ch].
8290 Sat Feb 24 23:45:49 EET 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
8292 * DIE command was renamed to SHUTDOWN. Updated the both code
8295 * Defined SILC_UMODE_NONE, SILC_UMODE_SERVER_OPERATOR and
8296 SILC_UMODE_ROUTER_OPERATOR modes into lib/silccore/silcmode.h.
8298 * Implemented CONNECT, CLOSE and SHUTDOWN commands to the server
8301 * Added function silc_server_create_connection function to create
8302 connection to remote router. My server implementation actually
8303 does not allow router to connect to normal server (it expects
8304 that normal server always initiates the connection to the router)
8305 so the CONNECT command is only good for connecting to another
8308 Sat Feb 24 16:03:45 EET 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
8310 * Added SILC_NOTIFY_TYPE_KICKED to indicate that the client
8311 or some other client was kicked from the channel.
8313 Implemented the handling of the notify type to both client
8316 Implemented silc_server_send_notify_kicked to send the KICKED
8317 notify. It is used to send it to the server's primary router.
8319 * Implemented the KICK command into server and client.
8321 * Added `query' argument to the silc_idlist_get_client function
8322 to indicate whether to query the client from server or not if
8325 * Added new command status type SILC_STATUS_ERR_NO_CHANNEL_FOPRIV
8326 to indicate that the client is not channel founder.
8330 Sat Feb 24 00:00:55 EET 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
8332 * Removed the rng context from SilcPacketContext structure and
8333 changed that the packet routine uses the Global RNG API.
8335 Fri Feb 23 11:22:57 EET 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
8337 * Added support for quit message that client can "leave" on the
8338 channel when it quits the SILC. It is ditributed inside the
8339 SILC_NOTIFY_TYPE_SIGNOFF notify type.
8341 Added silc_server_free_client_data that will take the
8342 signoff message as argument.
8344 * Changed SKE routines to use the silc_pkcs_sign/verify routines.
8346 Thu Feb 22 23:05:36 EET 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
8348 * Updated parts of the protocol specification to keep it up
8351 Thu Feb 22 15:08:20 EET 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
8353 * Added List flag (SILC_PACKET_FLAG_LIST) to indicate list of
8354 payloads in one packet.
8356 * Deprecated following packet types: NEW_ID_LIST, NEW_CHANNEL_LIST,
8357 NEW_CHANNEL_USER_LIST, SET_MODE and SET_MODE_LIST. List packets
8358 use now the new List flag.
8360 * Also deprecated the following packet types: REPLACE_ID,
8361 NEW_CHANNEL_USER and REMOVE_CHANNEL_USER packet types.
8363 * Added list support for Notify packet in server.
8365 * Added silc_server_send_notify_channel_change to send the
8366 CHANNEL_CHANGE notify type to replace channel ID's. Deprecates
8367 the silc_server_send_replace_id.
8369 * Added silc_server_send_notify_nick_change to send the
8370 NICK_CHANGE notify type. Deprecates the function
8371 silc_server_send_replace_id.
8373 * Added silc_server_send_notify_join to send the JOIN notify type.
8374 Deprecates the function silc_server_send_new_channel_user.
8376 * Added silc_server_send_notify_leave to send LEAVE notify type.
8377 Deprecates the function silc_server_send_remove_channel_user.
8379 * Added silc_server_send_notify_cmode and
8380 silc_server_send_notify_cumode to send CMODE and CUMODE notify
8381 types. Deprecates the silc_server_send_set_mode function.
8383 * Added SERVER_SIGNOFF notify type to indicate that server has
8384 quit. This means that all clients on the channel from that
8385 server will drop. This can be also used when netsplit happens.
8387 Deprecated REMOVE_ID packet type since it is not needed anymore
8390 Added silc_server_send_notify_server_signoff to send the
8391 SERVER_SIGNOFF notify type. Deprecates the function
8392 silc_server_send_remove_id.
8394 Added also silc_server_send_notify_signoff to send the
8395 SIGNOFF notify type.
8397 * Employed the PKCS #1. It is the mandatory way to do RSA in the
8398 SILC protocol from this day on. Changed the protocol
8399 specification as well.
8401 * Added silc_server_send_notify_topic_set to send TOPIC_SET
8402 notify type. It is used between routers to notify about
8403 topic changes on a channel.
8405 * Added silc_id_dup into lib/silccore/id.[ch] to duplicate
8408 * Partly updated the protocol specification to comply with the
8409 changes now made. It is still though a bit outdated.
8411 * The JOIN notify type now takes one extra argument <Channel ID>.
8412 The packet used to be destined to the channel but now the
8413 JOIN type may be sent as list thus it is impossible to
8414 destine it to any specific channel. By adding this argument
8415 it is again possible.
8417 Wed Feb 21 22:39:30 EET 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
8419 * Added CREDITS file. The CHANGES and CREDITS file will appear
8420 in the distribution as well.
8422 Wed Feb 21 14:17:04 EET 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
8424 * Implemented CMODE_CHANGE, CUMODE_CHANGE and TOPIC_SET notify
8425 types in the server's silcd/packet_receive.c.
8427 * Implemented CMODE and CUMODE to work in router environment.
8429 * Fixed minor encoding and decoding buglet from the
8430 lib/silccore/silcmode.c.
8432 * Fixed buffer overflow from lib/silcclient/command.c in USERS
8435 Wed Feb 21 12:44:00 EET 2001 Mika Boström <bostik@lut.fi>
8437 * Changed all SilcConfigServer* and silc_config_server* to
8438 SilcServerConfig* and silc_server_config*, respectively.
8441 Wed Feb 21 00:10:00 EET 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
8443 * Associated the ID (client or server ID) to the Authentication
8444 Payload to avoid any possibility of forging. Updated the
8445 protocol specification and the code accordingly.
8447 Tue Feb 20 14:14:14 EET 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
8449 * The RSA key length is now save to the RsaKey context in the
8450 key generation process in lib/silccrypt/rsa.c. The key length
8451 is now used to figure out the maximum size of the block allowed
8452 to be encrypted/signed.
8454 * Added silc_mp_mp2bin_noalloc into lib/silcmath/mpbin.[ch]. It
8455 is equivalent to the silc_mp_mp2bin but does not allocate any
8458 * Changed silc_mp_mp2bin API to take length argument. If it is
8459 non-zero then the buffer is allocated that large. If zero, then
8460 the size is approximated using silc_mp_sizeinbase, which however
8463 * Created Global RNG API which is global RNG that application can
8464 initialize. After initializing, any routine anywhere in the
8465 code (including library) can use RNG without allocating a new
8466 RNG object. This was done to allow this sort of use of the
8467 RNG in code that has no chance to allocate RNG object. All
8468 applications currently allocate this and many routines in the
8469 library use this. Affected file lib/silccrypt/silcrng.[ch].
8471 * Removed the RNG kludge from lib/silcmath/primegen.c and changed
8472 it to use the Global RNG API.
8474 * Defined Authentication Payload into protocol specification that
8475 is used during SILC session to authenticate entities. It is
8476 used for example by client to authenticate itself to the server
8477 to obtain server operator privileges.
8479 Implemented this payload into the lib/silccore/silcauth.[ch].
8480 Implemented also routines for public key based authentication
8481 as the new protocol specification dictates.
8483 Moved definitions of different authentication methods from
8484 lib/silccore/silcprotocol.h into lib/silccore/silcauth.h.
8486 * Added silc_pkcs_encrypt, silc_pkcs_decrypt, silc_pkcs_sign,
8487 silc_pkcs_verify and silc_pkcs_sign_with_hash and
8488 silc_pkcs_verify_with_hash functions into the file
8489 lib/silccrypt/silcpkcs.[ch].
8491 Mon Feb 19 19:59:28 EET 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
8493 * The client entry's userinfo pointer must be always valid.
8494 Otherwise the [<unknown>] bug will surface beacuse the WHOIS
8495 will fail since it requires the userinfo. Now, the userinfo
8496 is allocated as "" if actual userinfo does not exist. Actually,
8497 it must exist and it is totally Ok to drop client connections
8498 that does not announce the userinfo. However, we will make
8499 this workaround for now.
8501 * Added silc_net_get_remote_port into lib/silcutil/silcnet.[ch]
8502 to return the remote port by socket.
8504 Mon Feb 19 14:26:49 EET 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
8506 * Changed SILC_SERVER_COMMAND_EXEC_PENDING macro to the name
8507 SILC_SERVER_PENDING_EXEC and added an new macro
8508 SILC_SERVER_PENDING_DESTRUCTOR which is called to free the
8509 data or when error occurs while processing the pending command.
8511 Added new argument `destructor' into silc_server_command_pending
8512 and to the SilcServerCommandPending object. This destructor is
8513 now called after calling the pending callback or if error occurs
8514 immediately. If error occurs the actual pending callback won't
8515 be called at all - only the destructor. The destructor may be
8516 NULL if destructor is not needed.
8518 All this applies for client library code as well. Similar
8519 changes were made there as well for the pending commands.
8521 In the client, the application must now allocate the
8522 SilcClientCommandContext with the silc_client_command_alloc
8525 * Added reference counter to the SilcServerCommandContext. Added
8526 function silc_server_command_alloc and silc_server_command_dup
8529 Same type of functions added to the client library for the same
8532 * Removed the cmd_ident from IDListData away since it is now
8533 global for all connections. It is the command identifier used
8534 in command sending and with pending commands. The affected file
8537 * Added reference counter to the SilcSocketConnection objecet to
8538 indicate the usage count of the object. The object won't be
8539 freed untill the reference counter hits zero. Currently only
8540 server uses this, and client ignores it. The client must be
8541 set to use this too later. The affected files are
8542 lib/silccore/silcsockconn.[ch]. Added also the function
8543 silc_socket_dup to increase the reference counter.
8545 This was mainly added because it is possible that the socket
8546 is removed underneath of pending command or other async
8547 operation. Now it won't be free'd and proper DISCONNECTING
8548 flags, etc. can be set to avoid sending data to connection that
8549 is not valid anymore.
8551 * Added SILC_SET_DISCONNECTING to server.c when EOF is read from
8552 the connection. After that it sets SILC_SET_DISCONNECTED.
8553 It is, however, possible that the socket data is not still freed.
8554 The silc_server_packet_process now checks that data is not
8555 read or written to connection that is DISCONNECTED. The socket
8556 get's freed when the reference counter hits zero.
8558 Mon Feb 19 00:50:57 EET 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
8560 * Changed the client operation API: channel_message operation's
8561 `sender' is now the client entry of the sender, not the nickname
8562 and the `channel' is the channel entry, not the channel name.
8564 In the private_message operation the `sender' is now also the
8565 client entry of the sender not the nickname.
8567 Affected file is lib/silcclient/ops.h and all applications
8568 using the client operations.
8570 Sat Feb 17 22:11:50 EET 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
8572 * Moved the calling of ops->connect() from connect_to_server_final
8573 into receive_new_id functin since that is the point when the
8574 client is actually allowed to send traffic to network. The
8575 affected file is lib/silcclient/client.c.
8577 Sat Feb 17 13:15:35 EET 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
8579 * When receiving NEW_CHANNEL_LIST, NEW_CHANNEL_USER_LIST,
8580 NEW_ID_LIST and SET_MODE_LIST packets, broadcast the list packet
8581 (if needs broadcasting) instead of broadcasting the packets one
8582 by one which would make a burst in the network traffic.
8584 * Added `broadcast' argument to the functions in silcd/server.[ch]
8585 silc_server_create_new_channel[_with_id] to indicate whether
8586 to send New Channel packet to primary router.
8588 Sat Feb 17 01:06:44 EET 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
8590 * Added new function into the silcd/server.[ch] files:
8591 silc_server_create_new_channel_with_id to create new channel with
8592 already existing Channel ID.
8594 * Added new packet type SILC_PACKET_SET_MODE_LIST into the file
8595 lib/silccore/silcpacket.h. This packet is used t send list of
8596 Set Mode payloads inside one packet. Server uses this to set
8597 the modes for the channels and clients on those channels, that it
8598 announced to the router when it connected to it. The protocol
8599 specification has been updated accordingly.
8601 * The silc_server_new_channel did not handle the packet coming
8602 from normal server as it normally does not send that. However,
8603 when it announces its channels it does send it. Implemented
8604 the support for that.
8606 * Added SILC_ID_CHANNEL_COMPARE macro to compare to Channel ID's
8607 into the file lib/silccore/id.h.
8609 Fri Feb 16 23:57:29 EET 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
8611 * Fixed memory leaks in the functions silc_idlist_del_client,
8612 silc_idlist_del_channel and silc_idlist_del_server in the file
8613 silcd/idlist.c. All of those leaked like a sieve.
8615 * Fixed some small memory leaks in the client's function
8616 silc_client_notify_by_server.
8618 * Added functions into silcd/server.c: silc_server_announce_clients,
8619 silc_server_announce_channels and silc_server_announce_server.
8620 These functions are used by normal and router server to announce
8621 to its primary router about clients, channels and servers (when
8622 router) that we own. This is done after we've connected to the
8625 These functions effectively implements the following packet types:
8626 SILC_PACKET_NEW_CHANNEL_LIST, SILC_PACKET_NEW_CHANNEL_USER_LIST
8627 and SILC_PACKET_NEW_ID_LIST.
8629 * Added new functions into the silcd/packet_receive.[ch]:
8630 silc_server_new_id_list, silc_server_new_channel_list and
8631 silc_server_new_channel_user_list to handle the incoming
8632 NEW_ID_LIST, NEW_CHANNEL_LIST and NEW_CHANNEL_USER_LIST packets.
8634 * Added support of changing Channel ID in the function
8635 silc_server_replace_id. If the server that announces a channel
8636 to the router already exists in the router (with same name but
8637 with different Channel ID), router is responsible to send
8638 Replace ID packet to the server and force the server to change
8639 the Channel ID to the one router has.
8641 * Added new notify type SILC_NOTIFY_TYPE_CHANNEL_CHANGE to notify
8642 client that the Channel ID has been changed by the router. The
8643 normal server sends this to the client. Client must start using
8644 the new Channel ID as the channel's ID.
8646 Implemented handling of this new type into lib/silcclient/client.c
8647 into the function silc_client_notify_by_server.
8649 * Added new function silc_idlist_replace_channel_id into the files
8650 silcd/idlist.[ch] to replace the Channel ID.
8652 Fri Feb 16 14:14:00 EET 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
8654 * Call silc_server_command_identify_check always when processing
8655 the IDENTIFY command in silcd/command.c
8657 Thu Feb 15 20:07:37 EET 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
8659 * Added new packet type SILC_PACKET_HEARTBEAT that is used to
8660 send keepalive packets. The packet can be sent by clients,
8661 servers and routers.
8663 Added function silc_socket_set_heartbeat into the file
8664 lib/silccore/silcsockconn.[ch] to set the heartbeat timeout.
8665 If not set, the heartbeat is not performed. The actual
8666 heartbeat is implemented in the low level socket connection
8667 library. However, application is responsible of actually
8670 Added silc_server_send_heartbeat to send the actual heartbeat
8671 packet into silcd/packet_send.[ch]. Server now performs
8672 keepalive with all connections.
8674 * Added silc_task_get_first function into lib/silcutil/silctask.c
8675 to return the timeout task with shortest timeout. There was a bug
8676 in task unregistration that caused problems. TODO has been
8677 updated to include that task system must be rewritten.
8679 * The client library will now resolve the client information when
8680 receiving JOIN notify from server for client that we know but
8681 have incomplete information.
8683 * Rewrote parts of silc_server_remove_from_channels and
8684 silc_server_remove_from_one_channel as they did not remove the
8685 channel in some circumstances even though they should've.
8687 * Encryption problem encountered in server:
8689 The LEAVE command used to send the Channel Key packet to the
8690 router immediately after generating it. However, the code
8691 had earlier sent Remove Channel user packet but not immediately,
8692 ie. it was put to queue. The order of packets in the router
8693 was that Channel Key packet was first and Remove Channel User
8694 packet was second, even though they were encrypted in the
8695 reverse order. For this reason, MAC check failed. Now, this
8696 is fixed by not sending the Channel Key packet immediately but
8697 putting it to queue. However, this is more fundamental problem:
8698 packets that are in queue should actually not be encrypted
8699 because packets that are sent immediately gets encrypted
8700 actually with wrong IV (and thus MAC check fails). So, packets
8701 that are in queue should be encrypted when they are sent to
8702 the wire and not when they put to the queue.
8704 However, the problem is that the current system has not been
8705 designed to work that way. Instead, the packet is encrypted
8706 as soon as possible and left to the queue. The queue is then
8707 just purged into wire. There won't be any fixes for this
8708 any time soon. So, the current semantic for packet sending
8711 o If you send packet to remote host and do not force the send
8712 (the packet will be in queue) then all subsequent packets to the
8713 same remote host must also be put to the queue. Only after the
8714 queue has been purged is it safe again to force the packet
8717 o If you send all packets immediately then it safe to send
8718 any of subsequent packets through the queue, however, after
8719 the first packet is put to queue then any subsequent packets
8720 must also be put to the queue.
8722 Follow these rules and everything works fine.
8724 Thu Feb 15 14:24:32 EET 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
8726 * Added new function silc_server_remove_clients_by_server to
8727 remove all client entries from ID list when the server connection
8728 is lost. In this case it is also important to invalidate all
8729 client entires as they hold the invalid server entry. This
8730 fixes fatal bug when server has lost connection and will reconnect
8733 Wed Feb 14 16:03:25 EET 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
8735 * Made some sanity checks to silc_server_daemonise like to check
8736 whether the requested user and group actually exists.
8738 * Added sanity check to SKE's silc_ske_responder_finish to check
8739 that the public and private key actually is valid.
8741 * Invalidate the client's nickname when receiving Replace ID
8742 packet and the Client ID is being replaced. This means that the
8743 server will query the nickname if someone needs it (client)
8746 * Sort the ID Cache in client library when the ID Cache data
8747 has changed (needs sorting).
8749 * Do not allow for SILC client to create several connections to
8750 several servers. The client does not support windows right now
8751 and generating multiple connections causes weird behaviour.
8753 Irssi-silc client does support windows and can handle several
8754 connections without problems, see: www.irssi.org and SILC plugin.
8756 * Fixed some places where client was added to the IDList. The
8757 rule of thumb is following (in order to get everything right):
8758 If the client is directly connected local client then the
8759 `connection' argument must be set and `router' argument must be
8760 NULL to silc_idlist_add_client function. If the client is not
8761 directly connected client then the `router' argument must
8762 bet set and the `connection' argument must be NULL to the
8763 silc_idlist_add_client function.
8765 * The funtion silc_server_packet_send_local_channel actually did
8766 not check whether the client was locally connected or not. It
8767 does that now. Fixed a bug related to LEAVE command.
8769 * Fixed Remove Channel User payload parsing bug in server's
8770 silcd/packet_receive.c. Fixed a bug related to LEAVE command.
8772 * The server's silc_server_save_channel_key now checks also the
8773 global ID list for the channel as it might not be in the local
8774 list. Fixed a bug related to LEAVE command.
8776 * Is this the end of the [<unknown>] buglet that has been lurking
8777 around for a long time? A little for loop fix in server's
8778 silc_server_command_whois_parse that is used by both IDENTIFY
8779 and WHOIS command. At least, this was a clear bug and a cause
8780 of one type of [<unknown>] buglet.
8782 * WHOIS and IDENTIFY commands call the function
8783 silc_server_command_[whois/identify]_check function even if
8784 we are not router server.
8786 Tue Feb 13 19:55:59 EET 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
8788 * Added --with-gmp configuration option. If set the GMP
8789 is always compiled in the SILC source tree. If not set then
8790 it is checked whether the system has the GMP3 installed. If
8791 it has then the GMP won't be compiled (the system's headers
8792 and library is used), if it doesn't have it then the GMP is
8793 compiled in the SILC source tree.
8795 Mon Feb 12 11:20:32 EET 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
8797 * Changed RSA private exponent generation to what PKCS #1
8798 suggests. We try to find the smallest possible d by doing
8799 modinv(e, lcm(phi)) instead of modinv(e, phi). Note: this is
8800 not security fix but optimization.
8802 Sun Feb 11 18:19:51 EET 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
8804 * Added new config entry [Identity] to fork the server and run
8805 it as specific user and group. A patch from Bostik.
8807 * Imported Dotconf configuration library into lib/dotconf.
8808 This will be used to create the SILC configuration files later.
8809 It will appear in the distsribution after this commit.
8811 Sat Feb 10 21:13:45 EET 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
8813 * A big code auditing weekend happening. Auditing code for
8814 obvious mistakes, bugs and errors. Also, removing any code
8817 Removed files for being obsolete:
8819 o lib/silcutil/silcbuffer.c (the buffer interface is entirely in
8820 inline in the file lib/silcutil/silcbuffer.h)
8822 o lib/silcutil/silcbufutil.c (the header has inline versions)
8824 Changed code to fix possible error conditions:
8826 o The buffer formatting routines now check that the destination
8827 buffer really has enough space to add the data. This applies for
8828 both buffer formatting and unformatting
8829 (lib/silcutil/silcbuffmt.[ch]). Also, the entire buffer
8830 unformatting was changed to accomodate following rules:
8831 XXX_*STRING_ALLOC will allocate space for the data into the pointer
8832 sent to the function while XXX_*STRING will not allocate or copy
8833 the data into the buffer. Instead it sets the pointer from the
8834 buffer into the pointer sent as argument (XXX_*STRING used to
8835 require that the pointer must be allocated already). This change
8836 makes this whole thing a bit more consistent and more optimized
8837 (note that the data returned in the unformatting with XXX_*STRING
8838 must not be freed now). The routines return now -1 on error.
8840 o Tried to find all code that use buffer_format and buffer_unformat
8841 and added return value checking to prevent formatting and
8842 especially unformatting errors and possible subsequent fatal
8845 o Changed ske->x and ske->KEY to mallocated pointers in
8846 lib/silcske/silcske.h. Fixed possible data and memory leak.
8848 o Added return value checking to all *_parse* functions. Fixed
8849 many memory leaks as well.
8851 o Added length argument to silc_id_str2id in lib/silccore/id.[ch]
8852 so that buffer overflows would not happen. All code now also
8853 checks the return value as it can fail.
8855 Mon Feb 5 20:08:30 EET 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
8857 * Added reconnection support to server if the normal server looses
8858 its connection to the router (for example if router is rebooted).
8859 The server performs normal reconnection strategy implemented
8860 to the server. Affected file silcd/server.c.
8862 Sun Feb 4 13:18:32 EET 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
8864 * Added new packet type SILC_PACKET_SET_MODE that is used to
8865 distribute the information about changed modes (for clients,
8866 channels and clients channel modes) to all routers in the
8867 network. Updated the protocol specification accordingly.
8869 Added functions into silcd/packet_send.c and
8870 silcd/packet_receive.c: silc_server_send_set_mode,
8871 silc_server_set_mode.
8873 Added new files silcmode.[ch] into lib/silccore that implements
8874 the encoding and decoding of Set Mode Payload. Added new type
8875 SilcSetModePayload. Moved the definitions of different modes
8876 from lib/silccore/silcchannel.h into lib/silccore/silcmode.h.
8878 Sat Feb 3 15:44:54 EET 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
8880 * Oops, a little mistake in server's connection authentication
8881 protocol. The protocol is not ended with FAILURE but with
8882 SUCCESS if the authentication is Ok. :) Affected file is
8885 * Implemented NICK_CHANGE notify handling in server in the file
8886 silcd/packet_receive.c The NICK_CHANGE notify is distributed to
8887 the local clients on the channel. After the changing nickname
8888 in router environment snhould work and the [<unknown>] nickname
8889 should appear no more.
8891 The silc_server_replace_id function that receives the Replace ID
8892 payload now sends the NICK_CHANGE notify type also in the file
8893 silcd/packet_receive.c
8895 * Changed WHOIS and IDENTIFY command to support the maximum amount
8896 of arguments defined in protocol specs (3328 arguments). This
8897 fixed a bug that caused problems when there were more than three
8900 Fri Feb 2 11:42:56 EET 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
8902 * Added extra parameter, command identifier, to the
8903 silc_client_send_command so that explicit command identifier
8906 Changed that ID list routines uses specific command identifier
8907 when sending WHOIS/IDENTIFY requests to the server so that they
8908 can be identified when the reply comes back.
8910 Affected files lib/silcclient/command.[ch],
8911 lib/silcclient/client.c and lib/silcclient/idlist.[ch].
8913 * Added `sender' argument to silc_server_packet_send_to_channel
8914 to indicaet the sender who originally sent the packet to us
8915 that we are now re-sending. Ignored if NULL. Affected file
8916 silcd/packet_send.[ch].
8918 * Added some server statistics support in silcd/server_internal.h
8919 SilcServerStatistics structure and around the server code. Also
8920 send some nice statistics information when client is connecting
8923 Thu Feb 1 23:31:21 EET 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
8925 * Fixed channel ID decoding in server's JOIN command reply in
8926 silcd/command_reply.c
8928 * Fixed braodcasting of replace ID payload to not to send it if
8929 we are standalone server in silcd/packet_receive.c.
8931 * Fixed all channel message sending routines to not to send
8932 packets to clients that has router set, since they are routed
8933 separately in the same function earlier. Affects file
8934 silcd/packet_send.c and all channel packet sending functions.
8936 * In USERS reply, res_argv[i] are not allocated, the table
8937 is allocated. Thus changed that free the table, not its
8940 * In server's whois_check and identify_check if the client is
8941 locally connected do not send any WHOIS commands - they are not
8944 Thu Feb 1 21:32:27 EET 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
8946 * Fixed some minor bugs in client when sending WHOIS command. The
8947 arguments was in wrong order.
8949 * Removed statis function add_to_channel from server in
8950 silcd/command.c that was previously used with the joining but
8953 * Tested USERS command in router environment successfully with two
8954 routers, two servers and two clients.
8956 Thu Feb 1 00:54:26 EET 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
8958 * Reorganized the USERS command and command reply in client library
8959 in lib/silcclient/command.c and lib/silcclient/command_reply.c.
8960 When the command is given by user we register a pending command
8961 callback that will reprocess the command after the reply has been
8962 received from the server. When reprocessing the packet we then
8963 display the information. Thus, the USERS information is displayed
8964 now in the command callback instead of in the command reply
8965 callback. The processing of the command is same as previously
8966 when server has sent the command reply in the JOINing process.
8968 * Added to USERS command in silcd/command_reply.c to join the client,
8969 we didn't use to know about, to the channel after we've created
8970 a client entry for it. Also, for clienet we did know already still
8971 check whether it is on the channel or not and add it if not.
8973 * Removed silc_server_command_join_notify as the function and its
8976 Tue Jan 30 22:39:15 EET 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
8978 * Changed the client's pending command handling to the same as the
8979 server's pending command handling. It is also now possible to
8980 execute command reply functions from other command reply
8981 function as the function callbacks for commands and command
8982 replies are one and same. The pending commands are not static
8983 list anymore, it is mallocated SilcDList in lib/silcclient/client.h
8984 in client connection context. Thus, pending commands are server
8985 connection specific as it is convenient.
8987 Changed the function silc_client_command_pending and
8988 silc_client_command_pending_del and added new function
8989 silc_client_command_pending_check. Removed the
8990 SILC_CLIENT_CMD_REPLY_EXEC, and SILC_CLIENT_PENDING_COMMAND_CHECK
8993 * Added cmd_ident, current command identifier, to the client
8994 connection context in lib/silcclient/client.h to keep track on
8995 command identifiers used in command sending. Client's command reply
8996 function handling now supports the mandatory command identifiers.
8998 * Added SILC_CLIENT_COMMAND_EXEC_PENDING macros to all command reply
8999 funtions in client to fully support pending command callbacks.
9001 * NOTE: the name_list in USERS (old NAMES) command is NOT sent anymore
9002 as one of the arguments to the application in the command reply
9005 * NOTE: The FORWARDED flag is depracated. It used to be depracated
9006 before first releasing SILC but came back. Now it is removed again
9007 and should come back nomore. The FORWARDED flag was used only
9008 by the JOINing procedure by forwarding the command packet to router.
9009 Now, the JOINing procedure has been changed to more generic (due
9010 to various router environment issues) and FORWARDED is not needed
9011 anymore for anything. The protocol specification is yet to be
9014 Now, removed silc_server_packet_forward from server and the flag
9015 SILC_PACKET_FORWARDED from lib/silccore/silcpacket.h.
9017 Tue Jan 30 00:05:05 EET 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
9019 * Renamed NAMES command to USERS command. The NAMES was named that
9020 due to historical reasons. Now it is renamed. Also, rewrote
9021 parts of the USERS command. The nickname list is not sent anymore
9022 by the server. Only Client ID and mode lists are sent in the USERS
9023 command. Changed this also to the protocol specification.
9025 The client now resolves the names and stuff after it receives
9026 the USERS list from the server when joining to the channel.
9028 * WHOIS and IDENTIFY commands has been changed to support multiple
9029 Client ID's per command. One can now search for multiple users
9030 in the network by sending only one WHOIS or IDENTIFY command.
9031 Changed the code and the protocol specifications.
9033 * Removed silc_server_command_identify_parse and changed that IDENTIFY
9034 uses silc_server_command_whois_parse to parse the request. */
9036 * If normal server, do not parse the WHOIS and IDENTIFY requests
9037 before sending it to the router. Saves some time.
9039 Sun Jan 28 16:19:49 EET 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
9041 * Fixed JOIN command on client library. Wrong number of arguments
9042 used to crash the client.
9044 * Added silc_server_channel_has_global function to check whether
9045 channel has global users or not.
9047 * Added silc_server_channel_has_local function to check whether channel
9048 has locally connected clients on the channel.
9050 * The silc_server_remove_from_one_channel now checks whether the
9051 channel has global users or not after given client was removed from
9052 the channel. It also checks whether the channel has local clients
9053 on the channel anymore. If it does not have then the channel entry
9054 is removed as it is not needed anymore.
9056 * The silc_server_notify now checks on JOIN notify whether the joining
9057 client is one of locally connected or global. If it is global then
9058 the channel has now global users on the channel and that is marked
9059 to the channel entry. Also, it now saves the global client to
9060 global list who is joining and JOINs it to the channel. This is
9061 for normal server, that is.
9063 Changed silc_server_send_notify_on_channel,
9064 silc_server_packet_relay_to_channel and
9065 silc_server_packet_send_to_channel check if we are normal server
9066 and client has router set (ie. global client) do not send the
9067 message to that client, as it is already routed to our router.
9069 * Implemented LEAVE notify type handling in silc_server_notify
9072 * Tested LEAVE command in router environment successfully. Tested
9073 with two routers, two servers and two clients.
9077 * idlist_find_xxx_by_id routines now dumps the ID on the debug mode.
9079 * Implemented SIGNOFF notify type handling in silc_server_notify
9082 * silc_server_remove_id now removes the client entry from all channels
9083 it has joined and thusly sends SIGNOFF notify type.
9085 * Rewrote the NAMES list generation in server by removing two excess
9086 loops. The lists are created now inside one loop.
9088 Sat Jan 27 22:34:56 EET 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
9090 * silc_server_remove_channel_user checks now also global list
9091 for channel and client.
9093 * silc_server_new_channel_user checks now both local and global
9094 list for channel and client. Fixed a bug in client id decoding.
9095 Used to decode wrong buffer.
9097 * silc_server_channel_message checks now both local and global
9098 list for channel entry.
9100 * Tested channel joining (hence JOIN) in router environment
9101 successfully. Tested with two routers, two servers and two
9104 * Tested channel message sending in router environment successfully.
9106 Thu Jan 11 03:22:57 EET 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
9108 * Added silc_server_save_channel_key into server.[ch] to save the
9109 received channel key in Channel Key payload processing. It is
9110 also used in JOIN command reply handling.
9112 Equivalent function silc_client_save_channel_key added into
9113 client.[ch] into client library.
9115 * Changed JOIN command reply to send information whether the channel
9116 was created or not (is existing already) and the channel key
9117 payload. Changed protocol specs accordingly.
9119 * Fixed bugs in WHOIS and IDENTIFY command reply sending when
9120 the request was sent by ID and not by nickname. Crashed on
9123 Sat Dec 23 21:55:07 EET 2000 Pekka Riikonen <priikone@poseidon.pspt.fi>
9125 * Fixed a bug in Client library. IDENTIFY and WHOIS reply functions
9126 now correctly save the received data.
9128 * silc_server_free_sock_user_data now notifies routers in the
9129 network about entities leaving the network.
9131 At the same time implemented functions silc_server_remove_id
9132 and silc_server_send_remove_id to receive and send REMOVE_ID
9133 packets. The packet is used to notify routers in the network
9134 about leaving entities. The ID removed will become invalid in
9137 * Added function silc_idlist_del_server into server. Removes and
9138 free's server entry from ID list.
9140 * silc_server_private_message function now checks, if we are router,
9141 that the destination ID really is valid ID, naturally.
9143 * In router when NEW_ID packet is received (for new client) the
9144 hash of the Client ID is saved in the ID Cache but the
9145 client->nickname is set to NULL, instead of putting the hash
9148 IDENTIFY command now also checks that client->nickname must be
9149 valid. If it is not if will request the data from the server who
9150 owns the client. Added new function
9151 silc_server_command_identify_check.
9153 * Added silc_command_set_command into lib/silccore/silcommand.[ch]
9154 to set the command to already allocated Command Payload.
9156 * Tested private message sending in router environment with two
9157 routers, two servers and two clients. Fixed minor bugs and now
9160 * Fixed segfault from client's NAMES command. Used to crash if
9163 * Forwarded packets must not be routed even if it is not destined
9164 to the receiver. Changed server code comply with this.
9166 Sun Dec 17 14:40:08 EET 2000 Pekka Riikonen <priikone@poseidon.pspt.fi>
9168 * Added `require_reverse_mapping' boolean value to ServerParams
9169 structure. If TRUE (not default) the server will require that
9170 the connecting host has fully qualified domain name.
9172 If the reverse mapping is not required and hostname could not be
9173 found the IP address is used as hostname.
9175 Sat Dec 16 17:39:54 EET 2000 Pekka Riikonen <priikone@poseidon.pspt.fi>
9177 * Implemented version string checking to both client and server.
9178 The check is incomplete currently due to the abnormal version
9179 strings used in development version of SILC.
9181 * Changed all command functions in server to use the new
9184 Fri Dec 15 15:55:12 EET 2000 Pekka Riikonen <priikone@poseidon.pspt.fi>
9186 * Changed char *data to unsigned char *data in ID Cache system to
9187 support binary data as ID Cache data. Changed code to support
9188 binary data in lib/silccore/idcache.c.
9190 * Renamed silc_server_packet_relay_command_reply to
9191 silc_server_command_reply as it is normal packet receiving
9192 function. Rewrote the function to accept command replys for
9193 servers and not only for clients.
9195 * Mark remote router always as registered server if we are connecting
9196 to it. Otherwise, commands sent by the router to us are ignored.
9198 * All ID List find routines now returns the ID Cache Entry pointer
9199 as well if requested.
9201 * WHOIS command works now in router environment, tested with two
9202 routers, two servers and two clients.
9204 * Cleaned up and rewrote IDENTIFY command. IDENTIFY should work now
9205 in router environment (as it is almost equivalent to WHOIS) but
9206 hasn't been tested thoroughly. Added new functions:
9208 silc_server_command_identify_parse
9209 silc_server_command_identify_send_reply
9210 silc_server_command_identify_from_client
9211 silc_server_command_identify_from_server
9213 * Disabled route cache adding because adding two different ID's with
9214 same IP replaces the old cache entry thus giving wrong route.
9215 The entry->router->connection is always the fastest route anyway
9216 so route cache may not be needed. Of course, new routes maybe
9217 established after receiving the ID when the entry->router->connection
9218 might not be anymore the most optimal.
9220 Thu Dec 14 15:55:35 EET 2000 Pekka Riikonen <priikone@poseidon.pspt.fi>
9222 * Add route cache for received ID for fast routing.
9224 * Added silc_server_packet_route to route received packet on router
9225 that is not destined to us.
9227 * Renamed silc_server_get_route to silc_server_route_get.
9229 * Added id_string and id_string_len fields into SilcServer to
9230 include encoded ServerID for fast comparing without excess
9231 encoding of the ID's.
9233 * Cleaned up WHOIS command on server side. Added following static
9236 silc_server_command_whois_parse
9237 silc_server_command_whois_check
9238 silc_server_command_whois_send_reply
9239 silc_server_command_whois_from_client
9240 silc_server_command_whois_from_server
9242 * Added macro SILC_SERVER_COMMAND_CHECK_ARGC to check mandatory
9243 arguments in command replies. All command functions should be
9244 updated to use this macro.
9246 Sun Dec 10 23:52:00 EET 2000 Pekka Riikonen <priikone@poseidon.pspt.fi>
9248 * Minor typo fixes on command reply handling on server.
9250 Tue Nov 28 11:05:39 EET 2000 Pekka Riikonen <priikone@poseidon.pspt.fi>
9252 * Added silc_server_command_add_to_channel internal routine to add
9253 the client to the channel after router has created the channel and
9254 sent command reply to the server.
9256 * Added generic silc_server_send_command to send any command from
9259 * Use static buffer with ID rendering instead of duplicating data.
9261 Mon Nov 27 21:39:40 EET 2000 Pekka Riikonen <priikone@poseidon.pspt.fi>
9263 * Fixed a channel user mode bug when joining to a channel server gave
9264 everybody channel founder rights, oops.
9266 * We mark ourselves as the router of the incoming server connection
9267 if we are router ourselves. This way we can check in some packet
9268 sending functions whether it is locally connected server. For
9269 incoming router connections we put NULL.
9271 * For router sending packets locally means now always sending the
9272 packet cell wide; to local clients and local servers. For normal
9273 server sending packet locally means sending it to only local
9276 * Fixed the JOIN command to really work in router environment. If the
9277 channel is created it is always created by the router. Router is
9278 also responsible of making the initial joining to the channel,
9279 sending JOIN notify to the sending server and distributing
9280 NEW_CHANNEL and NEW_CHANNEL_USER packets. Hence, if the channel
9281 does not exist server doesn't do anything else but forward the
9282 command to the router which performs everything.
9284 * Added silc_server_send_channel_key function to send the Channel Key
9287 * Added silc_server_create_channel_key to create new channel key. The
9288 channel key is now re-generated everytime someone joins or leaves
9289 a channel, as protocol dictates. Note: channel->key_len is the
9292 Wed Nov 22 22:14:19 EET 2000 Pekka Riikonen <priikone@poseidon.pspt.fi>
9294 * Splitted server.[ch] finally. Created now packet_send.[ch] and
9295 packet_receive.[ch] to separate packet sending and receiving
9296 routines. The server.[ch] now includes everything else including
9297 actual packet processing (writing and reading data) and other
9300 Renamed silc_server_private_message_send_internal to
9301 silc_server_send_private_message. The routine is still though
9302 used only to relay private messages as server does not send
9303 private messages itself.
9305 Renamed silc_server_new_channel to silc_server_create_new_channel
9306 and added new function sicl_server_new_channel that handles the
9307 incoming New Channel packet. Added also new sending function
9308 silc_server_send_new_channel to send New Channel Payload.
9310 * Added new function silc_server_notify to process incoming notify
9311 packet to the server/router. Server may then relay the notify
9312 to clients if needed.
9314 * Added new function silc_server_new_channel_user to process incoming
9315 New Channel User packet. Router will redistribute the packet and
9316 send JOIN notify to its local clients and locally connected servers
9317 if needed. Normal server will send JOIN notify to its local client
9318 on same channel when received this packet. Added also corresponding
9319 sending function silc_server_send_new_channel_user to sent the
9322 * Added boolean route argument to send_notif_to_channel and
9323 packet_send_to_channel functions to attempt to route the packet
9324 if it is TRUE and send only locally if it is FALSE.
9326 Tue Nov 21 19:49:31 EET 2000 Pekka Riikonen <priikone@poseidon.pspt.fi>
9328 * silc_server_replace_id now broadcasts the received replace ID
9329 packet if it is not broadcast packet already. The router must
9330 broadcast to inform other routers about changed ID.
9332 * Added backpointer to server's router into SilcServer context in
9333 silcd/server_internal.h.
9335 * Fixed silc_server_packet_broadcast to send correct broadcast
9338 * The channel key is now distributed to the local client as soon
9339 as it is received from the router (in router environment) so that
9340 no other packet may be sent for the channel until client has
9343 * silc_server_remove_channel_user now broadcasts the received
9344 Remove Channel User packet if it is not broadcast packet already.
9345 The router must broadcast to inform other routers about removed
9348 * Added users field into SilcPacketContext that is a reference count
9349 of the context. One can increase the reference count by calling
9350 silc_packet_context_dup which is now changed to just increase the
9351 reference count instead of duplicating the data. The reference
9352 count is decresed by calling silc_packet_context_free that will
9353 free the data after the reference count hits zero.
9355 For now on the packet context and everything allocated into it
9356 (including the raw packet from network) must be freed by calling
9357 the new silc_packet_context_free function. Added also new function
9358 silc_packet_context_alloc that must be used now to allocate the
9359 context. This also means that if a routine is asynchronous from
9360 silc_[client/server]_packet_parse_type the packet context must
9361 be duplicated by calling silc_packet_context_dup. Otherwise it
9362 gets free'd after silc_[client/server]_packet_parse_type returns.
9363 Also, one must remember that if packet is duplicated then its
9364 reference count must be decresed by calling the free function as
9365 many times as it was duplicated.
9367 * Changed SilcBuffer field from protocol contexts to SilcPacketContext
9368 from both client and server.
9370 Mon Nov 20 23:47:03 EET 2000 Pekka Riikonen <priikone@poseidon.pspt.fi>
9372 * Made joining to a channel working in router environment.
9374 * Cleaned up JOIN command on server side and create function
9375 silc_server_command_join_channel internal routine to make the
9378 Thu Nov 9 21:12:39 EET 2000 Pekka Riikonen <priikone@poseidon.pspt.fi>
9380 * Changed silc_command_pending list to SilcDList. Also, added
9381 `ident' field to SilcServerCommandPending structure to identify
9382 the reply and to call correct callback.
9384 Added silc_server_command_pending_check function to replace the
9385 corresnponding macro. The silc_command_pending list is not
9388 * Added silc_command_set_ident into lib/silccore/silccommand.[ch]
9389 to set identifier to previously allocated Command Payload. It
9390 is used to set identifier for command when resending Command
9393 * Added silc_command_payload_encode_payload to encode Command
9394 Payload buffer from SilcCommandPayload structure.
9396 * Added silc_argument_payload_encode_payload to encode Argument
9397 payload buffer from SilcArgumentPayload structure.
9399 Wed Nov 8 21:03:28 EET 2000 Pekka Riikonen <priikone@poseidon.pspt.fi>
9401 * Changed WHOIS command to support router connection on server side.
9402 The whois request is always sent to router unless the server is
9403 standalone server. After server has received the reply from the
9404 router will it send the reply to the client.
9406 * Added silc_server_packet_broadcast into silcd/server.[ch] to
9407 broadcast received broadcast packet. The function is used only
9408 by router. The broadcast packet is always sent to the router's
9411 * Added silc_id_render function in lib/silcutil/silcutil.[ch] to
9412 render given ID to printable string, for log files for example.
9414 Tue Nov 7 22:14:19 EET 2000 Pekka Riikonen <priikone@poseidon.pspt.fi>
9416 * Made basic router to router connections working. At least they
9417 can now connect to each other but nothing really works the way
9418 they are supposed - yet.
9420 * Added new initiator token to RouterConnection configuration
9421 file in silcd/serverconfig.[ch]. It is used to tell whether we
9422 are the initiator to the remote router or whether we'll expect
9423 the other end to connect.
9425 * Moved registering of listener task to silc_server_init, hence
9426 the server starts listenning as soon as it is run, even if it
9427 does not have connections to other routers. Let's see how well
9430 * Changed default connection retry timeouts for more suitable in
9433 * Removed cipher and such arguments from silc_idlist_add_client
9434 and silc_idlist_add_server prototypes from silcd/idlist.[ch].
9435 Added new function silc_idlist_add_data to add the keys and stuff
9438 * Added SilcIDListData structure and added it to SilcClientEntry
9439 and SilcServerEntry as their first field in the structure. This
9440 way we can explicitly cast the ID entries to the SilcIDListData
9441 structure and get common data for the entries. In past, we had
9442 to first check what type of connection it is and then cast it to
9443 correct ID entry type. Now, we can directly cast the opaque
9444 pointer to the SilcIDListData (no matter what ID entry it actually
9445 is) and get the data needed.
9447 Mon Nov 6 21:56:12 EET 2000 Pekka Riikonen <priikone@poseidon.pspt.fi>
9449 * Wow, found a bug in scheduler. The scheduler uninitialized itself
9450 in some circumstances even if threre were timeout tasks, though not
9451 IO tasks, but tasks anyway. Now fixed.
9453 * Defined SilcServerConnection structure to hold connection specific
9454 stuff about directly connected servers and routers. The definition
9455 is currently in silcd/server_internal.h. I thought about having
9456 a bit more important role fro this struct but for now it is used
9457 only when connecting to other server (or router actually).
9459 * Added connecting retry support in server when connecting to
9460 router(s). The retry feature implement exponential backoff
9461 algorithm. Also, added SilcServerParams structure to hold default
9462 parameters for server. For now, it include these retry settings
9463 and are hard coded. After server is moded to be as Silc Server
9464 Library this structure will be more important.
9466 Sun Nov 5 22:28:44 EET 2000 Pekka Riikonen <priikone@poseidon.pspt.fi>
9468 * Changed client librarys channel->clients table to SilcList and
9469 changed code accordingly.
9471 Thu Nov 2 16:28:01 EET 2000 Pekka Riikonen <priikone@poseidon.pspt.fi>
9473 * Changed client's channel table to SilcList and changed code
9474 accordingly. Also changed SilcChannelClientEntry to include back-
9475 pointer to the channel so that client entry can use that structure
9476 as list as well and we have fast cross-reference to the channel.
9477 This change dramatically decreased the complexity of channel
9478 handling with client entry and vice versa (removed one extra
9479 loop when searching for channel entry from many functions).
9481 * Changed server->sim from table to SilcDList and changed code
9484 * NAMES command can now be used from user interface. It will show
9485 the user list on the channel, neatly.
9487 * Added realname pointer to SilcClientEntry in lib/silcclient/idlist.h.
9488 Code now saves realname of the user if it becomes available.
9490 * Renamed configure.in to configure.in.pre and made ./prepare
9491 script to automatically add correct version string to
9492 configure.in which it creates from configure.in.pre.
9494 Wed Nov 1 17:21:26 EET 2000 Pekka Riikonen <priikone@poseidon.pspt.fi>
9496 * NAMES command reply now shows users mode with the nickname when
9499 * Moved silc_client_ch[u]mode[_char] functions from
9500 silc/clientutil.[ch] to lib/silcclient/client.[ch]. Though, that
9501 place sucks, they are utility functions and should be in some
9504 * Fixed some unsigned int's to unsigned short's. Patch by cras.
9506 * Fixed contrib/getopt*.[ch] to not require config.h. Patch by
9509 Tue Oct 31 20:10:37 EET 2000 Pekka Riikonen <priikone@poseidon.pspt.fi>
9513 * Added TRQ (efficient deque and list library) into lib/trq. This is
9514 a very good list library that is currently used in the SILC. Defined
9515 SilcList API over the library because I didn't like the API very
9516 much. See lib/trq/silclist.h for the API and examples of how to
9517 use the API. Fixed various places in the code to use the new
9518 SilcList API. The SilcList is meant for lists that has a structure
9519 already defined as a list. It is not suitable to add just some
9520 context to the list (in TRQ, the context is the list actually).
9522 So, I defined SilcDList that can be used for the purpose where
9523 predefined list structure does not exit. This can be used as
9524 such list. Now some context just can be added to the SilcDList.
9525 Currently this list is not used in the SILC just yet, though there
9526 are a lot places where this can replace dynamically allocated
9527 tables and I will fix these places, later, to use SilcDList.
9528 See lib/trq/silcdlist.h for SilcDList (they are all inline functions,
9529 and use TRQ internally).
9531 Also fixed some annoying warning messages that the original TRQ
9532 code generated. Also minor changes to TRQ's Makefile.in.
9534 * Added support for querying by Client ID to both WHOIS and
9535 IDENTIFY commands into server, as required by the protocol.
9537 * Removed method function pointers from SilcBuffer structure. They
9538 weren't used to anything and just increased the context size for
9539 no good reason. This change also made silc_buffer_alloc and
9540 silc_buffer_free functions inline functions.
9542 * Disabled command flooding detection support until it's fixed so
9543 that it accepts commands in but does not execute them more than once
9546 * Added silc_net_localhost(), to return local hostname, into
9547 lib/silcutil/silcnet.[ch]. Also added client->hostname pointer
9548 that must be initialized before calling silc_client_init.
9550 * Added new function: silc_server_send_notify_on_channels to send
9551 notify messages to all channels client has joined. It is assured
9552 that the message is sent only once per client.
9554 * Moved silc_log_format (from lib/silcutil/silclog.[ch] into
9555 lib/silcutil/silcutil.[ch] as silc_format function. The new
9556 function is generic and is used by server as well, not only by
9557 the logging routines.
9559 * Added new SKE status type: SILC_SKE_STATUS_BAD_VERSION to indicate
9560 the provided version string was not acceptable. Added new function:
9561 silc_ske_check_version into lib/silcske/silcske.h. The function
9562 must be implemented by the application (client or server) and it
9563 does not reside in the SKE library. The function checks the version
9564 string remote end sent.
9566 * Added back pointers (to opaque context and to SilcSocketConnection)
9567 into SilcPacketContext structure into lib/silccore/silcpacket.h.
9569 * Added silc_packet_context_dup into lib/silccore/silcpacket.[ch] to
9570 duplicate packet context structure.
9572 * Changed `notify' client operation to send same arguments as client
9573 receives from server except for ID's. ID's are mapped to correct
9574 ID entry and that is returned. Also, if channel entry is not sent
9575 by server but the notify is for channel the channel entry is sent
9576 to application (otherwise application doesn't know that it is for
9577 channel (library gets it from packet's Destination ID)).
9579 * Added silc_client_remove_from_channels into client library to
9580 remove a client from all channels it has joined to. Used when
9581 received SIGNOFF notify from server. Added also new function
9582 silc_client_replace_from_channels to replace old ID entry with
9583 new ID entry on all channels. Used when received NICK_CHANGE
9586 * Fixed ID Cache list handling in silc_idlist_get_client in
9587 lib/silcclient/idlist.c. Also, added silc_idlist_get_client_by_id
9588 to get (or query) client by ID.
9590 * Updated TODO list.
9592 * Added connection authentication status message defined by the
9593 protocol: SILC_CONN_AUTH_OK and SILC_CONN_AUTH_FAILED and added the
9594 support for these into the code in client and server side.
9596 * Added generic function silc_client_send_command to send any command
9597 with variable argument list. Application should use this function
9598 to send commands if the command functions provided by the library
9599 does not suite for the application's user interface needs.
9601 * Added new `failure' client operation. Application is notified about
9602 received failure packet if client is executing a protocol. In this
9603 case the protocol's execution has failed.
9605 * Added SKE's end notify to send the SKE_SUCCESS notify message that
9606 is required by the protocol.
9608 * Added SILC_PROTOCOL_STATE_FAILURE to indicate received failure
9609 packet from remote. SILC_PROTOCOL_STATE_ERROR indicates local
9612 * Added status flag to SilcSKE object to indicate realtime status
9613 of the SKE protocol.
9615 * Application receives now exactly same command reply arguments as
9616 the library receives from server. However, if ID is received the
9617 corresponding ID entry is returned to the application (eg. Client
9618 ID is mapped to correct SilcClientEntry entry and that is returned).
9619 Changed command_reply client operation due to this change.
9621 * Changed all ID's in commands and in command replys as ID Payloads.
9622 Change affected both client and server side codes.
9624 All ID's sent in SILC network (with execption of ID's in SILC
9625 Packet header) are sent in ID Payload to support variable length
9628 * Server now notifies nick changes and notifies all clients on
9629 the channels about the new nickname (about the new Client ID,
9632 * Implemented CMODE command to change channel modes. Supports all
9633 channel modes defined by the protocol specs except ban and invite
9634 lists. (Also, private channel key mode is supported but support for
9635 setting private channel key in client is missing, thus, this mode
9636 has no effect on client side (except that server requires that the
9637 client uses private channel key and normal channel traffic does not
9640 Also, invite mode works per se, but INVITE command does not work
9641 yet correctly, so you can set channel as invite only channel but
9642 inviting clients to the channel does not work (it is yet to be
9643 thought what's the best way to do it).
9645 * Added new command SILC_COMMAND_CUMODE to change user mode on the
9646 channel. Defined user modes: CHANNEL_FOUNDER and CHANNEL_OPERATOR.
9647 Implemented CUMODE command to change user's mode on the channel.
9648 Supports all modes defined by the protocol specs.
9650 * Added NAMES command reply to return users modes on the channel.
9652 * Removed unnecessary and slow ciphers from lib/silccrypt.
9654 * Set SO_KEEPALIVE option to connection sockets by default.
9656 * Added new command reply status: SILC_STATUS_USER_NOT_ON_CHANNEL.
9658 * Added notify types: MOTD, CMODE_CHANGE and CUMODE_CHANGE. Also,
9659 redefined the Notify Payload into protocol specs.
9661 * Added silc_id_payload_parse_id to get ID directly from raw
9664 Mon Oct 9 20:57:02 EEST 2000 Pekka Riikonen <priikone@poseidon.pspt.fi>
9666 * Changed SILC_COMMAND_IDENTIFY in protocol specification to
9667 accept searching by Client ID as well.
9669 * Added support for LEAVE and SIGNOFF notify types in client library.
9671 * Added silc_id_payload_parse_data into lib/silccore/silcpayload.[ch]
9672 to parse ID Payload from raw data.
9674 Sun Oct 8 19:33:08 EEST 2000 Pekka Riikonen <priikone@poseidon.pspt.fi>
9676 * Added flags parameter into silc_ske_assemble_security_properties
9677 function in lib/silcske/silcske.[ch].
9679 * Changed notify client operation to fit better for notify messages
9680 sent by server. The notify payload received from server is now
9681 passed to the application (after parsing it to SilcNotifyPayload).
9682 It is application's responsibility to retrieve the arguments
9683 from the payload and show the message the way it wants. The message
9684 sent by server is implementation specific.
9686 * Changed public keys to comply with the protocol specification.
9687 Old public keys are not supported anymore and are not compatible.
9689 * Removed nickname from Channel Payload as the latest draft removed
9690 it. The client must resolve the nickname from the NAMES command
9691 reply received when it joined the channel.
9693 Also, changed all channel_xxxx_payload to channel_payload_xxxx.
9695 Sat Oct 7 21:55:01 EEST 2000 Pekka Riikonen <priikone@poseidon.pspt.fi>
9697 * Fixed some errors in protocol specification drafts.
9699 * Created lib/silccore/silcnotify.c to implement Notify Payload
9700 encoding and decoding, lib/silccore/silcpayload.[ch] to implement
9701 generic payloads described by protocol specifications. The file
9702 includes implementations for ID Payload and Argument Payload.
9704 * Changed Command Payload implementation to use the new Argument
9705 Payload. Changed command_xxxx_payload to command_payload_xxxx
9706 to comply with SILC coding conventions.
9708 * Added suppport for Argument Payload handling in Notify Payload
9709 implementation as protocol requires it. Added the new support
9710 into server and client lib as well.
9712 Thu Oct 5 21:16:28 EEST 2000 Pekka Riikonen <priikone@poseidon.pspt.fi>
9714 * Added support for multiple nicknames on same channel. [n] is
9715 added locally to the nickname if there are more than one same
9716 nicknames on the channel.
9718 * Server now sends all nicknames that matched WHOIS request.
9719 Client also shows the list received from server.
9721 * Added TOPIC command to client side. User can now set and show
9722 current topic on channel.
9724 * Added MOTD command to client and server. Also, server sends the
9725 motd when client connects to the server.
9727 * Changed version strings to comply ISO 8601.
9729 Wed Oct 4 23:29:06 EEST 2000 Pekka Riikonen <priikone@poseidon.pspt.fi>
9731 * Fixed protocol error handling in client library. It should now
9732 cope even if the SKE fails for some reason.
9734 * Made new protocol specification drafts for submitting to IETF.
9736 * Implemented TOPIC command to server in silcd/command.c.
9738 * Added two new notify types into lib/silccore/silcnotify.h:
9739 SILC_NOTIFY_TYPE_NICK_CHANGE and SILC_NOTIFY_TYPE_TOPIC_SET to
9740 notify nickname change and topic setting/change on a channel.
9742 * API change of command_reply operation in client library. The
9743 application gets now the status type received from server as well.
9745 Sat Sep 30 16:57:42 EEST 2000 Pekka Riikonen <priikone@poseidon.pspt.fi>
9747 * Removed the function just added to lib/silcutil/silcschedule.[ch].
9749 * Cras fixed and optimized the packet handling even further and
9750 it should work now. Minor change to the prototype of function
9751 silc_packet_receive_process in lib/silccore/silcpacket.[ch].
9753 Sat Sep 30 08:48:47 EEST 2000 Pekka Riikonen <priikone@poseidon.pspt.fi>
9755 * Added new function into lib/silcutil/silcschedule.[ch]:
9756 silc_schedule_with_fd to select() a specified fd. The function
9757 returns after timeout expires or data arrives or goes. The
9758 function is used by packet routines to wait that all data is
9759 received from network.
9761 * Fixed data reading from network in lib/silccore/silcpacket.c.
9762 The code now assures that all data is read from the fd and then
9763 continues packet processing. This was a bug fix since the code
9764 used to drop some data in some circumstances.
9766 * Added new function into lib/silcclient/client.[ch]:
9767 silc_client_start_key_exchange to start key exchange after
9768 connection has been established to server. The code internally
9769 now uses this funtion but its main purpose was to provide it
9770 for applications that perform their own connecting. After
9771 application has created a connection it merely calls this
9772 function to start the key exchange between client and server.
9773 The library takes care of everything else after that.
9775 Updated also lib/silcclient/README to explain the usage of
9778 * Do not send to application information that connection has
9779 been established. Application gets notified it by connect
9782 Thu Sep 28 23:40:19 EEST 2000 Pekka Riikonen <priikone@poseidon.pspt.fi>
9784 * Applied cras's patch to add silc_schedule_one function. The
9785 function runs scheduler once and returns.
9787 * Fixed the scheduler after cras messed it up. The timeout
9788 handling works now as it's supposed to work.
9790 * Added into lib/silccore/ silcnotify.h to include notify
9791 message types support. Changed silc_server_send_notify*
9792 functions, in server.[ch], to support those new notify types.
9793 Added the support for the notify types into client library,
9794 as well. Added new notify client operation into ops.h in
9797 * Changed silc_server_packet_send_to_channel to send normal
9798 packets instead of just channel message packets. The function
9799 is now used to send the notify packets to channels. It is not
9800 used to send channel message packets anymore, as server never
9803 * Added explicit casting into lib/silcutil/silcbuffmt.c to few
9804 va_arg()s as it seems to require it nowadays. I guess, if SILC
9805 is compiled with older va_arg() the new code should work anyway.
9807 Wed Sep 13 18:10:14 EEST 2000 Pekka Riikonen <priikone@poseidon.pspt.fi>
9809 * Splitted core library. Core library (lib/silccore) includes
9810 now only SILC protocol specific core (and common) components.
9811 Created new utility library (lib/silcutil) that includes more
9812 generic purpose stuff. The stuff for util library was taken
9813 from the old core library. This was minor and easy split.
9815 * Created SILC Client Library (lib/silcclient) that includes
9816 implementation of the SILC client without user interface. This
9817 was major move from silc/ directory. The code has been changed
9818 so that it is transparent towards the user interface. The
9819 silc/ directory includes now the same user interface as before
9820 and it uses the new client library. Read lib/silcclient/README.
9821 Basicly, the client library performs everything else related
9822 to SILC except user interface handling. Also, configuration
9823 files are considered to be part of user interface and library
9824 does not handle them.
9826 This change also changed a lot of structures, function naming etc.
9827 Most important change was that SilcClientWindow object was
9828 renamed to SilcClientConnection in the client library. Created
9829 also new file lib/silcclient/ops.h. Also added new files
9830 silc/local_command.[ch] and silc/client_ops.[ch].
9832 All these changes were made to make it easier for user interface
9833 designers to create what ever user interface for the SILC client
9836 It is also expected that the server will be moved to lib
9837 directory as well and SILC Server Library will be created;
9838 sometimes in the future.
9840 * Removed Local commands from lib/silccore/silccommand.h as
9841 they are application specific and new client library does not
9842 handle any of those anymore.
9844 * Several functions moved to lib/silcutil/silcutilc.[ch] from
9845 old client implementation in silc/.
9847 * Added support for callback functions in SILC_LOG_* macros.
9848 Application can now set its own callbacks that will be called
9849 instead of using the default functions that will always print
9850 the debug messages to stderr (or stdout). Also, debugging can
9851 now be disabled by setting silc_debug to FALSE and re-enabled by
9852 setting it to TRUE. Note, that logging will still work even
9853 if debugging is disabled.
9855 New functions in lib/silcutil/silclog.[ch]: silc_log_set_callbacks,
9856 silc_log_reset_callbacks, silc_log_set_debug_callbacks and
9857 silc_log_reset_debug_callbacks.
9859 * To enable debugging in silc client one must give now -d
9860 option on command line.
9862 * Changed silc_schedule_init to automatically allocate task queues
9863 if they are not allocated before calling it.
9865 Thu Sep 7 10:49:33 EEST 2000 Pekka Riikonen <priikone@poseidon.pspt.fi>
9867 * Added GMP 3.1 into math library.
9869 Sun Aug 20 21:27:26 EEST 2000 Pekka Riikonen <priikone@poseidon.pspt.fi>
9871 * Added SILC_PACKET_REMOVE_CHANNEL_USER to remove a client from
9872 a channel in SILC network. The packet is used by servers and
9873 routers to notify other routers that user has left a channel.
9874 This little feature was missing until now. Added the feature
9875 to protocol specification as well.
9877 Added functions: silc_server_send_remove_channel_user and
9878 silc_server_remove_channel_user into server.[ch].
9880 * Added SILC_PACKET_REKEY and SILC_PACKET_REKEY_DONE into
9881 lib/silccore/silcpacket.h. However, they are not implemented
9884 Sat Aug 19 23:04:16 EEST 2000 Pekka Riikonen <priikone@poseidon.pspt.fi>
9886 * Fixed joining to a channel and sending channel messages
9887 between server and router. The channel message sending should
9888 now work inside a cell.
9890 Tue Jul 25 20:46:13 EEST 2000 Pekka Riikonen <priikone@poseidon.pspt.fi>
9892 * Fixed the private message sending between server and router.
9893 The private message sending should now work inside a cell.
9895 * Added silc_server_replace_id into server.[ch] to replace
9896 existing ID in the SILC network.
9898 * Added silc_idlist_find_server_by, silc_idlist_replace_client_id
9899 and silc_idlist_replace_server_id into idlist.[ch] in server.
9901 Mon Jul 24 18:33:31 EEST 2000 Pekka Riikonen <priikone@poseidon.pspt.fi>
9903 * Fixed the server to server connections. Server can again now
9904 connect to router. Router to router connections probably does
9907 Thu Jul 20 13:15:01 EEST 2000 Pekka Riikonen <priikone@poseidon.pspt.fi>
9909 * Added dynamic protocol registering support. Now protocols can
9910 registered and unregistered on the fly. Patch by cras.
9912 Wed Jul 19 19:08:46 EEST 2000 Pekka Riikonen <priikone@poseidon.pspt.fi>
9914 * Added lib/contrib directory to hold routines that some platforms
9915 don't have but are needed by SILC.
9917 * Added getopt.c, getopt1.c and getopt.h from GNU C library
9918 into lin/contrib to provide getopt() and getopt_long() for
9919 those who don't have it.
9921 Tue Jul 18 20:41:20 EEST 2000 Pekka Riikonen <priikone@poseidon.pspt.fi>
9923 * Added AWAY command to client. When away message is set and
9924 client receives a private message packet the client automatically
9925 replies to the sender with the away message.
9927 * Fixed a bug in lib/silcmath/mpbin.c: silc_mp_mp2bin. This
9928 bug seemed to be the cause of recent problems when compiling
9931 * Added version detection support to SKE protocol specification
9932 and added the new changes to the SKE implementation as well.
9933 There were other minor changes in the SKE protocol as well.
9935 Many changes in lib/silcske/silcske.[ch] and in
9936 lib/silcske/payload.[ch].
9938 * Added ^U functionality, clear input line. Patch from cras.
9940 Mon Jul 17 23:33:26 EEST 2000 Pekka Riikonen <priikone@poseidon.pspt.fi>
9942 * Mainly small bugfixes on core library. Fixed some debugging
9943 logging and buffer overflow in silclog.c.
9945 * Updated config.sub and config.guess on the distribution tree.
9947 Sat Jul 15 15:33:48 EEST 2000 Pekka Riikonen <priikone@poseidon.pspt.fi>
9949 * Added command lagging support in server. Client may execute
9950 commands now only once in two seconds.
9952 Thu Jul 13 22:10:21 EEST 2000 Pekka Riikonen <priikone@poseidon.pspt.fi>
9954 * Optimized packet reception. MAC computation and checking is now
9955 also more optimized. A lot previously duplicated code is now
9956 used as generic by both client and server.
9958 * Fixed key pair generation in clientutil.c
9960 Wed Jul 12 18:28:07 EEST 2000 Pekka Riikonen <priikone@poseidon.pspt.fi>
9962 * Added into lib/silccore/silcbufutil.[ch] new function;
9963 silc_buffer_realloc.
9965 * Moved generic packet sending/encryption functions to
9966 lib/silccore/silcpacket.[ch] from client and server. Some
9967 rewriting of the functions.
9969 * Moved all generic packet reception/decryption functions to
9970 lib/silccore/silcpacket.[ch] from client and server. The
9971 packet processing is now much cleaner in both client and server.
9972 These were major changes in both client and server.
9974 * Created many common functions in server to do packet sending.
9975 Previously code were duplicated a lot, this has been removed
9978 Tue Jul 11 20:27:26 EEST 2000 Pekka Riikonen <priikone@poseidon.pspt.fi>
9980 * Rewrote major parts of the ID cache system. Don't know
9981 whether it is better now or not but at least the API is more
9984 * Major rewrite on ID cache stuff on client because of the ID
9985 cache API changes. Added idlist.c to client.
9987 * Also major rewrite on ID cache stuff on server as well.
9988 Major rewrite of idlist.[ch]. SilcXXXList's are now named
9989 SilcXXXEntry's. We won't keep anymore idlist specific pointers
9990 in hand, instead they are all put into the ID cache system now.
9991 All server_idlist_* routines uses ID cache now instead of
9992 traversing its own lists (those lists does not exist anymore).
9993 SilcIDList though still exists. Also, SilcXXXEntry's are
9996 Sun Jul 9 15:19:24 EEST 2000 Pekka Riikonen <priikone@poseidon.pspt.fi>
9998 * Finally made the SKE implementation compliant to the protocol
9999 specification. All mp integers are now binary encoded as
10000 opposed being HEX encoded.
10002 * Added lib/silcmath/mpbin.[ch]. Encoding mp intergers to and
10005 * Added into lib/silccore/silcutil.[ch] PEM encoding/decoding
10006 functions: silc_[encode/decode]_pem. Also added function
10007 silc_encode_pem_file to PEM encode with newlines ('\n') for
10008 saving into a file.
10010 * SILC public keys are now encoded either PEM or binary. Same
10011 option is for private keys as well. By default private keys
10012 are binary encoded and public keys PEM encoded. Silly HEX
10013 encoding were removed.
10015 * Added into lib/silccrypt/silchash.[ch] silc_hash_fingerprint
10016 function to create fingerprints.
10018 * Fixed a bug in SHA1; does not change the original data anymore.
10020 * Partly implemented INFO command on client and server side.
10021 Fixed CLEAR command. Changes to SERVER command; show current
10022 server(s) when giving command without arguments. Added
10023 VERSION command to client.
10025 * Added check to server that unregistered connections cannot
10026 execute commands (unless it is specificly allowed).
10028 Thu Jul 6 18:12:24 EEST 2000 Pekka Riikonen <priikone@poseidon.pspt.fi>
10030 * Fixed screen refresh.
10032 * Fixed channel joining bug from client. On some circumstances
10033 client tried to join to a channel it had already joined.
10035 * Added public key verification process into client's protocol.c.
10036 The client now verifies the public key from user and saves
10037 it into ~./silc/serverkeys/ directory.
10039 Added into: clientutil.[ch]: silc_client_verify_server_key.
10041 * Changed SKE protocol's silc_ske_initiator_finish function
10042 to accept callback function that verifies the received public
10043 key. Removed old silc_ske_verify_public_key function.
10045 Wed Jul 5 19:19:02 EEST 2000 Pekka Riikonen <priikone@poseidon.pspt.fi>
10047 * Added into silcpkcs[ch]: silc_pkcs_public_key[_data]_set and
10048 silc_pkcs_private_key[_data]_set.
10050 * Made the password and public authentication more cleaner in
10051 server's protocol.c.
10053 * Removed historic and obsolete protocol `channel_auth' from
10054 both client and server.
10056 * Removed wrong way of sending command status messages from
10057 server to client in server's command.c. The old way violated
10058 protocol specification.
10060 Changes to silccore/silccommand.[ch]: removed
10061 silc_command_encode_status_payload -> not needed anymore,
10062 changed silc_command_encode_payload_va to accept extra
10063 argument on variable argument list. The argument type must
10064 now be provided to the function. Also, added new function:
10065 silc_command_encode_reply_payload_va which is same as
10066 normal command_encode_payload_va except command status type
10067 is provided as extra argument.
10069 Tue Jul 4 18:26:39 EEST 2000 Pekka Riikonen <priikone@poseidon.pspt.fi>
10071 * Added ~./silc directory handling. The directory includes the
10072 public and private keys for the client.
10074 Added silc_client_check_silc_dir, silc_client_create_identifier
10075 and silc_client_load_keys.
10077 * Implemented SILC protocol compliant public key. Added public
10078 and private key saving to and loading from files.
10080 Added into silcpkcs.[ch]: silc_pkcs_encode_identifier,
10081 silc_pkcs_public_key_encode[_data], silc_pkcs_public_key_decode,
10082 silc_pkcs_private_key_encode[_data], silc_pkcs_private_key_decode,
10083 silc_pkcs_public_key_alloc, silc_pkcs_public_key_free,
10084 silc_pkcs_private_key_alloc and silc_pkcs_private_key_free.
10086 Implemented: silc_pkcs_save_[public/private]_key[_data] and
10087 silc_pkcs_load_[public/private]_key.
10089 Mon Jul 3 18:51:27 EEST 2000 Pekka Riikonen <priikone@poseidon.pspt.fi>
10091 * Added silc_server_get_route (route.[ch]) to get connection
10092 data for the fastest route for given ID.
10094 * Implemented INVITE command on client and server. The command
10095 were re-defined in the SILC Protocol Specification and the
10096 implementation now complies with the specification.
10098 * Implemented PING command on client and server.
10100 * Implemented NAMES command on client and server. The server side
10101 supports currently only normal server not router server yet.
10102 Some changes to NAMES definition in SILC protocol specification.
10104 Sun Jul 2 18:23:01 EEST 2000 Pekka Riikonen <priikone@poseidon.pspt.fi>
10106 * Implemented LEAVE command on client and server.
10108 * Previously deprecated SILC_PACKET_FORWARDED flag is now in use
10109 again. This change was made to the protocol as well. Server
10110 should not violate the protocol specification anymore.
10112 Fri Jun 30 14:03:26 EEST 2000 Pekka Riikonen <priikone@poseidon.pspt.fi>
10114 * Added SOCKS4 and SOCKS5 support to SILC client. SOCKS5
10115 was tested. SOCKS4 was not but should work anyway.