1 Wed Mar 23 11:20:33 CET 2005 Jochen Eisinger <jochen@penguin-breeder.org>
3 * If the passphrases entered do not match while generating a new key,
4 completly start over instead of going into an infinite loop asking
5 the user to re-enter the passphrase correctly. Affected file
6 lib/silcutil/silcapputil.c
8 Sun Jan 9 14:28:51 CET 2005 Pekka Riikonen <priikone@silcnet.org>
10 * Make sure server is removed from backup list when it is
11 deleted. Affected files silcd/command.c, server.c,
14 * Close socket when connecting to router fails. Affected
17 Tue Jan 4 13:06:26 CET 2005 Jochen Eisinger <jochen@penguin-breeder.org>
19 * Adopt configuration toolchain to current auto-tools.
20 Affected files prepare, irssi/configure.in
21 * Revert most of the UTF-8 fixes to SILC Client 1.0.1. Will
22 redo that. Affected files irssi/src/silc/core/client_ops.c,
23 irssi/src/fe-common/silc/fe-silc-channels.c
24 * Take over command line options into silcclient data structure.
25 Affected file irssi/src/silc/core/silc-core.c
27 Wed Dec 8 16:15:11 CET 2004 Pekka Riikonen <priikone@silcnet.org>
29 * Do not try to initiate backup resuming protocol forever.
30 Affected file silcd/server_backup.c.
32 Wed Nov 24 18:24:05 CET 2004 Pekka Riikonen <priikone@silcnet.org>
34 * ID change in resuming has to be done before changing
35 detached client's modes, since the ID change may fail and
36 leave ghosts on the network. Affected file is
37 silcd/packet_receive.c.
39 Tue Nov 23 16:54:35 CET 2004 Pekka Riikonen <priikone@silcnet.org>
41 * Fixed Win32 scheduler to not stuck anymore. A patch from
42 Juha Räsänen. Affected file is
43 lib/silcutil/win32/silcwin32schedule.c.
45 * Fixed QoS parsing for connection blocks in server. Affected
46 file is silcd/serverconfig.c.
48 * Fixed server statistics increasing in server. Affected file
51 * The CLOSE command now marks backup router as self disconnected
52 to avoid resuming problems. Affected file silcd/command.c.
54 Wed Sep 22 19:46:32 CEST 2004 Patrik Weiskircher <pat@icore.at>
56 * When using silc_net_create_connection[_async], and your system can
57 create IPv6 sockets, it will try to connect to the IPv6 host.
58 Now it tries to connect to an IPv4 host if IPv6 fails. Affected
59 file lib/silcutil/unix/silcunixnet.c
61 Fri Jun 18 19:26:58 CEST 2004 Pekka Riikonen <priikone@silcnet.org>
63 * Check for valid route when receiving packet from router and
64 when routing it to local server in the cell. A patch from
65 Matt Miller. Affected files silcd/router.c and server.c.
67 Sat May 1 13:55:54 CEST 2004 Patrik Weiskircher <pat@icore.at>
69 * Couldn't detach and reattach twice, because of the previous
70 commit. Affected file silcd/packet_receive.c
72 Fri Apr 30 19:40:28 CEST 2004 Patrik Weiskircher <pat@icore.at>
74 * Added check to ignore Port value if Initiator is FALSE.
75 Remote router coudln't connect if Port was set. Affected file
78 * If some client tries to resume more than once at the same time,
79 server crashed. Router didn't crash, but showed odd behaviour
80 (didn't allow clients to join anymore, ..). Affected files
81 silcd/packet_receive.c silcd/idlist.h
83 Mon Mar 15 21:10:08 EET 2004 Pekka Riikonen <priikone@silcnet.org>
85 * Destroy the file transfer session in silc_client_file_close
86 with timeout. Affected file lib/silcclient/client_ftp.c.
88 * Call SFTP server monitor in READ and WRITE after the actual
89 operations. Affected file lib/silcsftp/sftp_server.c.
91 Wed Mar 10 21:30:02 EET 2004 Pekka Riikonen <priikone@silcnet.org>
93 * Create one configure script from configure fragments
94 (configure.ad). This is a first step towards new distribution
95 system. Affected files prepare, configure.in.pre,
96 lib/silcmath/mpi/configure.ad.
98 Wed Mar 10 18:35:24 CET 2004 Jochen Eisinger <jochen@penguin-breeder.org>
100 * Removed expiring of client key pair. Affected file is
101 irssi/src/silc/core/clientutil.c
103 Tue Mar 9 17:11:58 EET 2004 Pekka Riikonen <priikone@silcnet.org>
105 * Check the number of connections from real number of
106 connections instead of socket number, when deciding if
107 server is full. Affected files are silcd/server.c,
108 server_internal.h and silcd.c.
110 * Clarified the connections_max meaning in General section
111 in doc/example_silcd.conf.in.
113 * The reconnect_keep_trying default value set to TRUE
114 if it is not defined in the config file. Affected file
115 silcd/serverconfig.c.
117 Wed Mar 3 15:13:49 CET 2004 Pekka Riikonen <priikone@silcnet.org>
119 * Fixed crashbug in connection closing, after a protocol
120 completion callback, which might have closed it already.
121 Affected file silcd/server.c.
123 * Fixed rekey with PFS in backup router. It did not allow
124 rekeys with PFS, and when the rekey protocol timedout
125 it crashed the backup router without the above fix. Affected
126 file silcd/packet_send.c and server.c.
128 Sat Feb 28 16:25:09 EET 2004 Pekka Riikonen <priikone@silcnet.org>
130 * The silc_client_add_channel_private_key now returns the
131 private key context if pointer is given as argument.
132 Affected files are lib/silcclient/silcclient.h and
135 * Added support for using channel private keys in SILC
136 Client Library even if the private key mode is not set
137 on the channel. Affected file lib/silcclient/client_channel.c.
139 * The channel private key used to decrypt message is now
140 delivered to the application in the 'channel_messageÃ' client
141 operation. Affected files are lib/silcclient/silcclient.h
142 and client_channel.c.
144 * Fixed wrong arg type for user limit in CMODE command reply.
145 Affected file silcd/command.c.
147 * The user limit is now taken and saved to SilcClientEntry in
148 JOIN and CMODE command replies and in CMODE_CHANGE notify.
149 Affected files lib/silcclient/silcclient.h, command_reply.c
152 * Added support to the new private message key indicator
153 packet. Added a new function to the client library:
154 silc_client_send_private_message_key_request. The sender
155 indicates to be initiator, and receiver is responder.
156 Added the indicator to the SilcClientEntry as 'prv_resp'
157 boolean. Affected files are lib/silcclient/silcclient.h
158 client.[ch], and client_prvmsg.c.
160 Fri Feb 27 11:25:26 CET 2004 Pekka Riikonen <priikone@silcnet.org>
162 * Fixed the JOIN command calling when called with both
163 -auth and -founder. Affected file is lib/silcclien/command.c.
165 Wed Feb 25 23:12:11 EET 2004 Pekka Riikonen <priikone@silcnet.org>
167 * Check watcher list for resumed clients as well. Affected
168 file is silcd/packet_receive.c.
170 Tue Feb 24 16:49:10 EET 2004 Pekka Riikonen <priikone@silcnet.org>
172 * Implemented the user limit to the CMODE_CHANGE notify,
173 CMODE command reply and JOIN command reply in server.
174 Affected files are silcd/server.c, command.c, command_reply.c,
175 packet_send.c and packet_receive.c.
177 Mon Feb 23 23:31:15 EET 2004 Pekka Riikonen <priikone@silcnet.org>
179 * Defined SILC_STRFMT_END that must be used now with
180 silc_buffer_strformat, instead of SILC_STR_END. Fixes
181 crashes on AMD64. Affected files are lib/silcutil/silcbuffmt.h,
182 lib/silcclient/silcvcard.c, silcd/server_util.c.
184 * Fixed the adding of public key to the WATCH list in server.
185 Fixed the WATCH notify sending to client. Affected files
186 are silcd/packet_send.[ch], command.c, server_util.c.
188 * Implemented the watching by public key in the SILC Client
189 Library and SILC Client. Affected files are
190 lib/silcclient/command.c and client_notify.c.
192 Mon Feb 23 09:30:30 CET 2004 Pekka Riikonen <priikone@silcnet.org>
194 * Added support for public key watching in server. Affected
195 files are silcd/server.c, server_internal.h, command.c,
198 Sun Feb 22 19:03:59 EET 2004 Pekka Riikonen <priikone@silcnet.org>
200 * Added public key to the SIlcClientEntry. Affected files
201 are lib/silcclient/silcclient.h, command_reply.c, idlist.c
203 * Fixed the get_clients_whois reply processing to return
204 exactly same entries server returned. Makes it possible
205 to search using attributes. Affected file is
206 lib/silcclient/idlist.c.
208 Sat Feb 21 19:21:57 EET 2004 Pekka Riikonen <priikone@silcnet.org>
210 * Save founder key to SilcChannelEntry. Affected files are
211 lib/silcclient/silcclient.h, command_reply.c, idlist.c.
213 Fri Feb 20 20:37:38 EET 2004 Pekka Riikonen <priikone@silcnet.org>
215 * Call the monitor callback with _CLOSED status from the
216 silc_client_file_close. Affected files are
217 lib/silcclient/client_fpt.c, silcclient.h
219 * Added silc_client_get_clients_whois which resolves using
220 WHOIS, and supports requested attributes as well.
221 Affected files are lib/silcclient/silcclient.h, idlist.c.
223 Fri Feb 19 21:09:22 EET 2004 Pekka Riikonen <priikone@silcnet.org>
225 * Added support for asking the destination filename where
226 the downloaded file is saved in the file transfer. Affected
227 files are lib/silccilent/silcclient.h, client_ftp.c.
229 Wed Feb 18 02:46:17 EET 2004 Pekka Riikonen <priikone@silcnet.org>
231 * Fixed error handling in resuming data processing. Affected
232 files are lib/silcclient/client_resume.c and client.c.
234 Tue Feb 17 19:34:30 EET 2004 Pekka Riikonen <priikone@silcnet.org>
236 * Fixed silc_client_send_private_message to return TRUE correctly.
237 Affected file lib/silcclient/client_prvmsg.c.
239 * Added topic to the SilcChannelEntry. Affected files are
240 lib/silcclient/silcclient.h, command_reply.c, client_notify.c.
242 Fri Feb 13 14:19:14 CET 2004 Jochen Eisinger <jochen@penguin-breeder.org>
244 * Use conn->cmd_ident for all silc_client_command_call()s. Affected
245 file lib/silcclient/command.c
247 Fri Feb 13 13:53:45 CET 2004 Jochen Eisinger <jochen@penguin-breeder.org>
249 * Convert all commands to UTF-8 before passing them to the
250 client library. Still need to convert replies from UTF-8 to
251 the locale encoding. Affected file
252 irssi/src/silc/core/silc-cmdqueue.c
254 Fri Feb 13 13:13:07 CET 2004 Jochen Eisinger <jochen@penguin-breeder.org>
256 * redirect all silc_client_command_calls through a queueing framework.
257 This fixes /CYCLE and the annoying "nick change after auto-joining
258 a channel". Furthermore it defines one central point where
259 command parameters can be UTF-8-ified. Affected files
260 irssi/src/silc/core/Makefile, client_ops.c, silc-channels.c,
261 silc-servers.[ch], silc-core.c, silc-cmdqueue.[ch], silc-lag.c
263 Fri Feb 13 12:04:41 CET 2004 Jochen Eisinger <jochen@penguin-breeder.org>
265 * use asynchronous connect() to establish router connections.
266 Fixes problem when the primary router goes down. Affected files
267 silcd/server.c, silcd/server_backup.c
269 Thu Feb 12 20:09:59 EET 2004 Pekka Riikonen <priikone@silcnet.org>
271 * Added SILC_[32|64]_TO_PTR and SILC_PTR_TO_[32|64] macros.
272 Fixed various compilation warnings when type casting ints
273 to pointers or vice versa, of different size. Updates around
276 Tue Feb 3 23:25:17 EET 2004 Pekka Riikonen <priikone@silcnet.org>
278 * Surrogates not allowed in UTF-8 strings, updated decoder.
279 Affected file lib/silcutil/silcstrutil.c. Added UTF-8
280 testers in lib/silcutil/tests/ directory.
282 Wed Jan 14 18:42:44 EET 2004 Pekka Riikonen <priikone@silcnet.org>
284 * Added SILC_CLIENT_CONN_ERROR_KE, ERROR_AUTH, ERROR_RESUME and
285 ERROR_TIMEOUT SilcClientConnectionStatus errors. Affected
286 files are lib/silcclient/silcclient.h, client.c.
288 Mon Jan 12 13:01:10 CET 2004 Jochen Eisinger <jochen@penguin-breeder.org>
290 * When resuming a session fails, notify the user that the session
291 file needs to be removed eventually. Affected files
292 irssi/src/fe-common/silc/module-formats.[ch],
293 irssi/src/silc/core/client_ops.c.
295 Tue Jan 04 12:16:04 CET 2004 Jochen Eisinger <jochen@penguin-breeder.org>
297 * Added DIST_SUBDIRS symbols to include all subdirs in distributions.
298 Affected files lib/silcutil/Makefile.am, lib/silcmath/Makefile.am
300 * Typofix in Irssi::Silc module. Affected file
301 irssi/src/perl/silc/Silc.xs.
303 Tue Jan 04 02:43:44 CET 2004 Jochen Eisinger <jochen@penguin-breeder.org>
305 * Changed the way NOTICE flagged messages are treated. Added support
306 for notices in queries and signing notices. Affected files
307 irssi/default.theme; irssi/docs/help/in/notice.in;
308 irssi/src/fe-common/silc/module-formats.[ch], fe-silc-messages.c;
309 irssi/src/silc/core/client_ops.c, silc-channels.c, silc-servers.c
311 * Fixed typo in /ACTION help. Affected file
312 irssi/docs/help/in/action.in
314 Mon Jan 03 23:26:38 CET 2004 Jochen Eisinger <jochen@penguin-breeder.org>
316 * Fixed typo in perl module. Affected file
317 irssi/src/perl/silc/Server.xs
319 * Changed the way ACTION flagged messages are treated. Added support
320 for actions in queries and signing actions. Affected files
321 irssi/default.theme; irssi/docs/help/in/action.in;
322 irssi/src/fe-common/silc/module-formats.[ch], fe-silc-messages.c,
323 fe-silc-queries.c; irssi/src/silc/core/client_ops.c, silc-channels.c,
326 Mon Jan 03 16:04:29 CET 2004 Jochen Eisinger <jochen@penguin-breeder.org>
328 * Incorrectly reported error when client had to be resolved from
329 server in /SMSG. Affected file irssi/src/silc/core/silc-servers.c
331 Sat Jan 3 16:37:15 EET 2004 Pekka Riikonen <priikone@silcnet.org>
333 * Fixed whois public key hash table deleting and adding in
334 detached client case. Affected file silcd/packet_receive.c.
336 Sat Jan 03 12:15:38 CET 2004 Jochen Eisinger <jochen@penguin-breeder.org>
338 * Changed filenames of silc/fe module not to collide with filenames
339 from core/fe. Also seperated public messages printing from
340 query messages printing. Affected files are all in
341 irssi/src/fe-common/silc.
343 Sat Jan 3 12:18:07 EET 2004 Pekka Riikonen <priikone@silcnet.org>
345 * Fixed the invite process handling during joining to use
346 correct server name for the client that is matched against
347 the invite string for the channel. Wrong server name caused
348 inability to join the channel. Affected file is
351 Fri Jan 2 23:34:17 EET 2004 Pekka Riikonen <priikone@silcnet.org>
353 * Fixed the CUMODE channel founder authentication on normal
354 server to not remove the founder rights on existing founder
355 before checking that router accepts the mode change. Affected
356 files are silcd/command.c and silcd/packet_receive.c.
358 * Remove the server entry correctly when rekey timeouts and
359 remote router connection on normal server is closed. Fixes
360 a crash where server uses the freed server entry. Affected
363 Fri Jan 02 10:28:15 CET 2004 Jochen Eisinger <jochen@penguin-breeder.org>
365 * Add /SILCNET [ADD|REMOVE|LIST] command to manage different SILC
366 networks. This is the first step in solving the bug about
367 /SERVER ADD -silcnet <silcnet>. Affected files
368 irssi/docs/in/silcnet.in; irssi/src/fe-common/silc/Makefile.am,
369 fe-silcnet.c, fe-common-silc.c, module-formats.[ch];
370 irssi/src/silc/core/silc-chatnets.[ch], silc-core.c, Makefile.am
372 Thu Jan 01 20:11:32 CET 2004 Jochen Eisinger <jochen@penguin-breeder.org>
374 * /SMSG and /MMSG now correctly create new queries. Affected files
375 irssi/src/fe-common/silc/fe-messages.c, irssi/scripts/silc-mime.pl
377 * Add basic support for SILC protocol specific variables in perl.
378 Affected files irssi/src/perl/silc/*, irssi/configure.in,
379 irssi/src/perl/Makefile.am
381 Wed Dec 31 17:06:55 CET 2003 Jochen Eisinger <jochen@penguin-breeder.org>
383 * Don't use silc_get_input, it's obviously not reliable. Fixes
384 issue when the current key expires. Affect file
385 irssi/src/silc/core/clientutils.c
387 * Make the session data filename configurable. This makes it
388 possible to have different session files for different
389 SILC networks. Affected files irssi/src/silc/core/silc-core.c,
390 client_ops.[ch], silc-servers.c,
391 irssi/src/silc/fe-common/silc/module-formats.[ch]
393 * Use the same set of libtool files for the MPI lib as for the
394 rest of the toolkit. Affected files lib/silcmath/mpi/config.guess,
395 config.sub, configure.in, install-sh, missing, mkinstalldirs
397 Sun Dec 28 21:57:39 EET 2003 Pekka Riikonen <priikone@silcnet.org>
399 * Fixed server statistics decrementing error to not go to
400 negative. Affected file silcd/packet_receive.c.
402 Sat Dec 20 14:42:36 EET 2003 Pekka Riikonen <priikone@silcnet.org>
404 * Use silc_server_query_add_error to add error in public key
405 search error. Added support in send_reply to send errors
406 without specific argument. Affected file silcd/server_query.c.
408 * Fixed the WHOIS, IDENTIFY and WHOWAS error handling in SILC
409 Client for NO_SUCH_NICK. It was against the protocol specs.
410 Affected file irssi/src/silc/core/client_ops.c.
412 * Added backwards support for the wrong NO_SUCH_NICK error sending
413 in server. To be removed in SILC Server 1.0. Both old clients
414 and clients with fixed error handling now works. Affected file
415 silcd/server_query.c.
417 Sat Dec 20 00:44:47 CET 2003 Patrik Weiskircher <pat@icore.at>
419 * fixed a bug in the whois using attributes function where no
420 error was sent if no nickname and client id but the attributes were
421 given to whois. Affected file silcd/server_query.c
423 Tue Dec 16 21:34:59 CET 2003 Patrik Weiskircher <pat@icore.at>
425 * remove public key from public key hashtable on detach. Affected
426 file silcd/packet_receive.c
428 * free public key hashtable before removing clients on server
429 shutdown. Affected file silcd/server.c
431 * remove public key prior deleting client-data on killing a client.
432 Affected file silcd/server_util.c
434 Sat Dec 06 21:35:14 CET 2003 Patrik Weiskircher <pat@icore.at>
436 * Getting the MOTD from other servers works now. Affected
437 files are silcd/command.c and silcd/command_reply.c
439 Thu Dec 04 11:33:46 CET 2003 Jochen Eisinger <jochen@penguin-breeder.org>
441 * Initialize the variable idletag, since it is tested in
442 silc_core_deinit for its default value. Affected file
443 irssi/src/silc/core/silc-core.c
445 Sun Nov 30 19:47:02 CET 2003 Patrik Weiskircher <pat@icore.at>
447 * Fixed signed channel messages across cells. Affected file
450 Fri Nov 28 19:13:21 EET 2003 Pekka Riikonen <priikone@silcnet.org>
452 * Changed the SILC_LOG_* macros to not be empty if SILC_DEBUG
453 is not defined. They can now be safely used in if-statements
454 without braces. Affected file lib/silcutil/silclog.h.
456 * Added the checks for backup closing connection due to error
457 (local or remote) and thus not allow the resuming to occur
458 in reconnect. Affected files are silcd/packet_send.c
461 Tue Nov 25 15:20:59 EET 2003 Pekka Riikonen <priikone@silcnet.org>
463 * Help file updates. Affected files in irssi/src/docs/help/in/.
465 Wed Nov 23 20:51:21 CET 2003 Patrik Weiskircher <pat@icore.at>
467 * Fixed channel messages across cells. Affected file
470 Wed Nov 12 11:34:56 EET 2003 Pekka Riikonen <priikone@silcnet.org>
472 * Fixed file transmission accepting in client library to not
473 start the negotiation if user hasn't accepted the transfer,
474 instead create new session for resent transfer. Affected
475 file lib/silcclient/client_ftp.c.
477 * Show the session ID in the file transmision list. Remove
478 session from list that failed to transfer. Switch the current
479 session automatically after transmission, and in errors, to new
480 session if other sessions exists in the transfer list. Affected
481 files are irssi/src/silc/core/silc-servers.c,
482 irssi/src/fe-common/silc/modfule-formats.c.
484 Mon Nov 10 14:41:40 CET 2003 Jochen Eisinger <jochen@penguin-breeder.org>
486 * Fixed MIME header parsing for the hopefully last time. Affected
487 file lib/silcutil/silcstrutil.c
489 Mon Nov 10 13:03:46 EET 2003 Pekka Riikonen <priikone@silcnet.org>
491 * Rewrote the PKCS#1 routines. Added lib/silccrypt/silcpkcs1.[ch].
493 * The SILC RNG is now gauranteed to return non-zero random
494 values. Affected files are lib/silccrypt/silcrng.[ch].
496 Sun Nov 9 20:44:56 EET 2003 Pekka Riikonen <priikone@silcnet.org>
498 * Fixed nickname formatting when changing only case of the
499 nickname. Affected file lib/silcclient/idlist.c.
501 Sun Nov 9 19:33:59 CET 2003 Jochen Eisinger <jochen@penguin-breeder.org>
503 * Fixed a memory leak and incorrect printing of the "appears as"
504 message. Affected file irssi/src/silc/core/client_ops.c
506 Sun Nov 9 17:45:11 EET 2003 Pekka Riikonen <priikone@silcnet.org>
508 * Added CRT (Chinese Remainder Theorem) supported RSA
509 private keys and private key operations. This significantly
510 increases private key operation efficiency. No compatibility
511 issues with new or old private keys. Affected files are
512 lib/silccrypt/rsa.[ch], rsa_internal.h and pkcs1.c.
514 Sat Nov 8 13:08:53 EET 2003 Pekka Riikonen <priikone@silcnet.org>
516 * Fixed GCC-3.3.2 related compilation warnings from the
519 Fri Nov 7 23:01:47 EET 2003 Pekka Riikonen <priikone@silcnet.org>
521 * Removed RC6 from distributions.
523 Fri Nov 7 19:38:42 EET 2003 Pekka Riikonen <priikone@silcnet.org>
525 * Added some better comments to lib/silccrypt/silcpkcs.h,
526 optimized some routines in lib/silccrypt/silcpkcs.c.
527 Added test_silcpkcs into lib/silccrypt/tests/.
529 * Fixed silc_rng_global_init to actually init the global RNG
530 if RNG wasn't provided for it. Affected file is
531 lib/silccrypt/silrng.c.
533 Thu Nov 6 21:08:28 EET 2003 Pekka Riikonen <priikone@silcnet.org>
535 * Added silc_hash_table_find_by_context_ext. Affected files
536 lib/silcutil/silchashtable.[ch].
538 * Save the public key on normal server in WHOIS command reply
539 from attributes, if present, and add it to public key hash
540 table. Fixes WHOIS resolving by public key on normal server.
542 Optimized the attributes resolving on normal server to not
543 resolve if we resolved them already from router.
545 Affected files are silcd/server_query.c, command_reply.c.
547 Wed Nov 5 19:36:30 CET 2003 Patrik Weiskircher <pat@icore.at>
549 * Added support for whois using attributes.
550 Affected files silcd/command_reply.c, silcd/packet_receive.c,
551 silcd/server.c, silcd/server_internal.h, silcd/server_query.c,
554 * Added support for whois using public key attribute to /WHOIS i
555 client command. Affected files irssi/docs/help/in/whois.in,
556 irssi/src/silc/core/silc-servers.c, lib/silcclient/command.c
558 Wed Nov 5 23:37:36 EET 2003 Pekka Riikonen <priikone@silcnet.org>
560 * Fixed UMODE setting in server when the client has anonymous
561 mode set. The mode setting was not working. Affected file
564 Mon Nov 2 11:36:08 CET 2003 Jochen Eisinger <jochen@penguin-breeder.org>
566 * Fixed some bugs and typos related to sending split messages.
567 Print notification when sending messages with /MMSG. Affected
568 files irssi/scripts/silc-mime.pl, irssi/src/silc/core/client_ops.c
570 Fri Oct 31 12:33:59 EET 2003 Pekka Riikonen <priikone@silcnet.org>
572 * Optimized the socket referencing in packet routines, client
573 library and server. Affected files are lib/silccore/silcpacket.c,
574 lib/silcclient/client.c and silcd/server.c.
576 * If silc_socket_set_qos is given with NULL arguments the QoS is
577 reset from the socket. Affected files are
578 lib/silcutil/silcsockconn.[ch].
580 Thu Oct 30 21:23:24 CET 2003 Jochen Eisinger <jochen@penguin-breeder.org>
582 * Add a /LISTKEYS command which lists the locally cached
583 client and server keys. Affected files
584 irssi/src/fe-common/module-formats.[ch],
585 irssi/src/silc/core/silc-{channels,servers}.c
586 irssi/docs/help/in/listkeys.in
588 Thu Oct 30 20:23:40 EET 2003 Pekka Riikonen <priikone@silcnet.org>
590 * Check that packet queue purging was successful. Affected
591 files lib/silcclient/client.c and silcd/packet_send.c. Related
592 to MAC failed errors.
594 * Do not clear the inbuf even if it is empty if QoS was applied
595 to it. Otherwise the QoS data is cleared and MAC failed error
596 will occur. Affected file lib/silccore/silcpacket.c.
598 * Use the rekey period time as rekey protocol timeout value.
599 If the rekey does not succeed during the rekey period there's
600 something very wrong, and we most likely end up with wrong keys,
601 do graceful reconnect then. Affected file silcd/server.c.
603 * Take reference of the socket in the parser context, as it's
604 possible to have the parsers in queue after the socket is
605 disconnected and this may cause crash. Affected files are
606 lib/silccore/silcpacket.c, lib/silcclient/client.c and
609 Thu Oct 30 17:01:01 EET 2003 Pekka Riikonen <priikone@silcnet.org>
611 * Fixed KICK command reply sending, it sent to replies.
612 Affected file silcd/command.c.
614 Wed Oct 30 14:06:52 CET 2003 Jochen Eisinger <jochen@penguin-breeder.org>
616 * Finish the silc-mime.pl script. It now supports MIME type
617 guessing using magic files, signing data messages, executing
618 MIME handlers in background. Affected files
619 irssi/scripts/silc-mime.pl and irssi/docs/help/in/mmsg.in
621 * Changed MIME signal handler to make things easier for the perl
622 script. Affected files irssi/src/silc/core/client_ops.c,
623 silc-servers.c, and irssi/docs/signals.txt
625 * Cleaned up the silc_mime_parse function and fixed detection
626 of wrapped header lines. Affected file lib/silcutil/silcstrutil.c
628 Sun Oct 26 21:19:02 EET 2003 Pekka Riikonen <priikone@silcnet.org>
630 * Resolve the IP for file transfer listener from the connection
631 socket. Affected file lib/silcclient/client_ftp.c.
633 * Accept NULL hostname parameter in the functions
634 silc_net_check_[local|remote]_by_socket. Do not reverse lookup
635 if hostname is not wanted.
637 Fri Oct 24 21:24:12 CEST 2003 Jochen Eisinger <jochen@penguin-breeder.org>
639 * Fixed race condition between silc_client_init and
640 my_silc_scheduler. Affected file irssi/src/silc/core/silc-core.c
642 Fri Oct 24 16:43:40 EEST 2003 Pekka Riikonen <priikone@silcnet.org>
644 * Fixed file transfer connection closing when SIGNOFF for
645 the client is received from server. Affected file is
646 lib/silcclient/client_ftp.c.
648 Tue Oct 21 13:35:57 CEST 2003 Pekka Riikonen <priikone@silcnet.org>
650 * Check for disconnected socket in QUIT callback. Affected
651 file silcd/command.c.
653 Thu Oct 21 09:43:17 CEST 2003 Jochen Eisinger <jochen@penguin-breeder.org>
655 * Modified the MIME parsing to allow \n and \r\n as delimiters.
656 Affected files lib/silcutil/silcstrutil.c
658 * Cleaned up the escape/unescape functions for correctness and
659 speed. Affected file irssi/src/silc/core/client_ops.c
661 * Removed handling for data messages with Content-Type: text/*,
662 moved parsing of MIME headers to the signal handler, added
663 support for signing and verifying data messages. Affected
664 files are irssi/docs/signals.txt, irssi/src/silc/core/client_ops.c,
665 irssi/src/silc/core/silc-{servers,channels}.c
667 * Added a perl script for handling data messages based on
668 information read from Mailcap files. New file
669 irssi/scripts/silc-mime.pl
671 Mon Oct 20 16:08:22 EEST 2003 Pekka Riikonen <priikone@silcnet.org>
673 * Added new SILC_MESSAGE_FLAG_ACK that can be used to
674 acknowledge recepetion of a message to the sender. Updated
677 Sat Oct 18 11:55:33 EEST 2003 Pekka Riikonen <priikone@silcnet.org>
679 * Unregister channel key saving callback when deleting channel.
680 Affected file lib/silcclient/idlist.c.
682 * Do not remove the client from channels in NOTIFY_TYPE_SIGNOFF
683 before calling notify client operation. Affected file is
684 lib/silcclient/client_notify.c.
686 * Unregister QoS tasks when deleting the socket connection.
687 Affected files lib/silcutil/silcsockconn.[ch],
688 unix/silcunixsockconn.c.
690 * Implemented latest presence-attrs draft changes. Affected
691 files lib/silccore/silcattrs.h and
692 irssi/src/silc/core/silc-queries.c.
694 Tue Oct 14 18:24:53 EEST 2003 Pekka Riikonen <priikone@silcnet.org>
696 * Save old channel keys in list to allow more rapid change
697 of channel keys if server for some reason does that. This
698 avoids loosing so many channel messages due to not having
699 key to decrypt. Affected file lib/silcclient/silcclient.h,
700 idlist.c and client_channel.c.
702 Mon Oct 13 21:37:47 EEST 2003 Pekka Riikonen <priikone@silcnet.org>
704 * Continued backup router tests and fixes. Affected files
705 silcd/server_backup, server_util.c, server.c. See TODO.
707 Sun Oct 12 19:58:18 EEST 2003 Pekka Riikonen <priikone@silcnet.org>
709 * Fixed SERVER_SIGNOFF handling in servers. The client
710 was removed from wrong list thus not removing the client
711 at all. Affected file silcd/packet_receive.c.
713 * Do not execute rekey protocol for disabled connections as
714 it would never go through. Affected file silcd/server.c.
716 * Added timeout for rekey protocol to catch if the protocol
717 never executes successfully. Affected files silcd/server.c
720 Sat Oct 11 15:39:22 EEST 2003 Pekka Riikonen <priikone@silcnet.org>
722 * Abandon packet processing for disconnected sockets. Check
723 this always after calling packet processing callback.
724 Affected file lib/silccore/silcpacket.c.
726 * Fixed double registration disconnection code in server.
727 Closed wrong connection. Affected file silcd/packet_receive.c.
729 Fri Oct 10 16:27:12 EEST 2003 Pekka Riikonen <priikone@silcnet.org>
731 * On normal server reconnect to primary during resuming 4
732 times, then give up. Affected file silcd/server_backup.c.
734 * If during reconnecting to routers we notice we have router
735 connection but no primary router set, the server is in desync.
736 Reconnect to primary to restore network. Affected file
739 * Assure that only one protocol is exeucting at the same time.
740 Added checks for all protocols. Affected files are
741 silcd/server.c and server_backup.c.
743 Thu Oct 9 20:24:09 EEST 2003 Pekka Riikonen <priikone@silcnet.org>
745 * Check that a string is not already part on invite/ban
746 string when processing it. Affected file silcd/server_util.c.
748 Thu Oct 9 12:06:40 CEST 2003 Pekka Riikonen <priikone@silcnet.org>
750 * Fixed the CUMODE_CHANGE for founder mode changes to comply
751 with 1.2 version of the protocol. Affected file is
752 silcd/packet_receive.c.
754 Wed Oct 8 19:41:15 EEST 2003 Pekka Riikonen <priikone@silcnet.org>
756 * ERR_BAD_PASSWORD now returns the Channel ID of the channel
757 where the passphrase was given. Affected file is
760 Wed Oct 8 09:32:12 CEST 2003 Pekka Riikonen <priikone@silcnet.org>
762 * INVITE and BAN notifys are now delivered from routers to
763 servers (but not clients) on the channel. Updated specs and
764 code. Affected files silcd/packet_[send|receive].[ch],
765 command.c, server.c and server_util.c.
767 * Implemented INVITE and BAN announcing. Affected files are
768 silcd/server.[ch], server_util.c.
770 * Implemented SilcStatus error type argument returning in
771 command reply error in server. Affected file silcd/command.c.
773 * Implemented SilcStatus argument returning in comand reply
774 in client library. The command_reply client operation now
775 returns error specific arguments as well. Affected files
776 are lib/silcclient/command_reply.[ch], client_resume.c,
777 lib/silccore/silcstatus.[ch].
779 Sun Oct 5 20:22:08 EEST 2003 Pekka Riikonen <priikone@silcnet.org>
781 * Backup router protocol version 1.2 implemented. Testing still
782 required. Affected files in silcd/server_backup.[ch], server.c,
783 packet_receive.c and server_internal.h.
785 Sun Oct 5 12:36:37 EEST 2003 Pekka Riikonen <priikone@silcnet.org>
787 * silc_client_send_[channel|private]_message now return TRUE
788 or FALSE. Affected file lib/silcclien/client_channel.c and
791 Thu Oct 2 17:03:09 EEST 2003 Pekka Riikonen <priikone@silcnet.org>
793 * Check for explicit nickname in INVITE and BAN processing
794 during join as well (and don't expect only wildcards in
795 invite/ban strings). Affected file silcd/command.c.
797 * Fixed the INVITE and BAN by public key. The public key saved
798 is the PK payload (as specified) not the raw data. Affected
799 file silcd/server_util.c.
801 Wed Oct 1 20:29:06 EEST 2003 Pekka Riikonen <priikone@silcnet.org>
803 * UTF-8 text message support for actions and notices in SILC
804 Client. Affected file irssi/src/silc/core/client_ops.c.
806 * silc_get_username and silc_get_real_name now returns sensible
807 data on Win32. Patch by Toni Willberg. Affected file is
808 lib/silcutil/win32/silcwin32util.c.
810 Sun Aug 24 23:35:19 CEST 2003 Jochen Eisinger <c0ffee@penguin-breeder.org>
812 * Provide a signal handler to send MIME encoded messages and emit
813 a signal when a MIME encoded message is received. Also document
814 the signals for usage with the perl interface.
816 A sample perl script will be supplied at a later point.
818 Affected files are irssi/docs/signals.txt,
819 irssi/src/silc/core/client_ops.[ch],
820 irssi/src/silc/core/silc-{channels,servers}.c
822 Sun Aug 24 12:58:30 CEST 2003 Jochen Eisinger <c0ffee@penguin-breeder.org>
824 * Use SILC_COMMAND_PING to estimate the round-trip time to the
825 server. Use this time to display a lag and disconnect when it
826 exceeds a specified limit.
828 Affected files are irssi/src/silc/core/silc-{lag,core}.c.
830 Mon Aug 11 17:14:17 EEST 2003 Pekka Riikonen <priikone@silcnet.org>
832 * Remove the channel auth list in normal server if router
833 encofrces its list during connecting. Send notify to channel
834 to remove the mode to remove the list. Affected files are
835 silcd/server_util.c and silcd/packet_receive.c.
837 Wed Aug 6 14:52:04 EEST 2003 Pekka Riikonen <priikone@silcnet.org>
839 * Added support for channel public keys. Updated protocol specs
840 and implemented it. Affected files are
841 silcd/command.c, command_reply.c, lib/silcclient/command.c,
842 lib/silcclient/command_reply.c.
844 Wed Jul 23 12:17:01 EEST 2003 Pekka Riikonen <priikone@silcnet.org>
846 * Ignore SIGXFSZ and SIGXCPU signals in server. They can
847 terminate the process on Linux. Affected file silcd/silcd.c.
849 Mon Jun 2 19:13:27 EEST 2003 Pekka Riikonen <priikone@silcnet.org>
851 * Check for NULL buffer in silc_buffer_clear. Affected file
852 is lib/silcutil/silcbuffer.h.
854 * Simplified the backup router protocol by removing the _GLOBAL
855 types. Updated protocol specs and the code. Affected files
856 are silcd/server_backup.[ch].
858 Thu Apr 24 19:50:25 EEST 2003 Pekka Riikonen <priikone@silcnet.org>
860 * Deny '@' and '!' from nicknames since they are reserved
861 by the SILC_COMMAND_INVITE and SILC_COMMAND_BAN commands.
862 Updated protocol specs and the code.
864 Affected files are silcd/server_util.[ch].
866 Wed Apr 9 18:51:59 EEST 2003 Pekka Riikonen <priikone@silcnet.org>
868 * Fixed stack overflow in Irssi SILC client. Affected
869 file irssi/src/silc/core/client_ops.c.
871 * Check that Host is set in ServerConnection and RouterConnection
872 in silcd.conf. Affected file silcd/serverconfig.c.
874 * Fixed crash in server with protocol completion callbacks,
875 namely rekey and backup resuming protocols. Affected files
876 are silcd/server_backup.c and silcd/server.c.
878 * Fixed rekey protocol to not restart if it is started already.
879 Affected files are lib/silcclient/client.c and
882 Mon Mar 17 18:35:24 EET 2003 Pekka Riikonen <priikone@silcnet.org>
884 * Rewrote SilcList, affected file lib/silcutil/silc*list.h.
886 * Fixed EOF handling in SILC Config, affected file
887 lib/silcutil/silcconfig.c.
889 * Fixed buffer overflows in lib/silcutil/silcstrutil.c.
891 * Fixed RESOLVING flag handling in JOIN notify and other
892 notifys to handle the resolvings correctly in client library.
893 Affected file lib/silcclient/client_notify.c.
895 * Do not send full INVITE and BAN lists in INVITE and BAN
896 notifys, only the changed information. Affected file
899 * Fixed INVITE notify sending in INVITE command, send it
900 only when needed. Affected file silcd/command.c.
902 * Handle the founder key change properly in CMODE_CHANGE
903 notify. Bug #122. Affected file silcd/packet_receive.c.
905 Sun Mar 9 16:29:20 EET 2003 Pekka Riikonen <priikone@silcnet.org>
907 * Remove the mark for output (mark it only for input) after
908 purging outgoing queue. Prevents the "Error in select()"
909 floods. Affected file silcd/packet_send.c.
911 * Fixed incorrect connection deletion from client library
912 after calling "connect" client operation. Could cause
913 crashes for example during reconnect timeouts. Affected
914 files are lib/silcclient/client.c and
915 irssi/src/silc/core/client_ops.c.
917 * Check server private key file permissions before starting
918 the server. Affected file silcd/serverconfig.c.
920 Tue Feb 4 22:53:26 EET 2003 Pekka Riikonen <priikone@silcnet.org>
922 * NULL terminate allocated string in silc_buffer_strformat.
923 Affected file lib/silcutil/silcbuffmt.c.
925 * Rewrote the invite/ban list string handling in server to
926 use SilcBuffer instead. Affected files are silcd/command.c
927 and silcd/server_util.c.
929 Mon Feb 3 14:43:52 CET 2003 Pekka Riikonen <priikone@silcnet.org>
931 * Fixed double free in CMODE command when setting new HMAC
932 for channel. Affected file silcd/command.c.
934 * Added couple of missing memset's to zero sensitive memory.
935 Affected files silcd/command.c, lib/silcclient/command.c.
937 Sun Jan 26 12:20:30 EET 2003 Pekka Riikonen <priikone@silcnet.org>
939 * Fixed a double free in INVITE command error handling in
940 server. Affected file silcd/command.c.
942 * Added macros SILC_SWAB_[16|32] to swab byte order of
943 16-bit and 32-bit unsigned integers. Affected file
944 lib/silcutil/silctypes.h.
946 * Use the SILC_SWAB_16 instead of htons() in server when
947 handling ports since the ports in structures are always
948 in little-endian order (regardless of platform). Affected
949 file silcd/serverid.c and silcd/server_backup.c.
951 Tue Jan 21 17:18:04 EET 2003 Pekka Riikonen <priikone@silcnet.org>
953 * Send DISCONNECT in close admin command in server. Affected
954 file silcd/command.c.
956 * Check whether we are already connecting to a remote router
957 (in addition of checking whether we are already connected)
958 before creating new connection. Affected file silcd/server.c.
960 Thu Jan 16 18:47:00 EET 2003 Pekka Riikonen <priikone@silcnet.org>
962 * Added better compiler and compiler flags checking in
965 * Check that socket is valid after QoS is applied to data.
966 Affected file lib/silcutil/unix/silcunixsockconn.c.
968 * Make sure the socket connecetion is not closed to early
969 when closing connection in server. Also make sure the
970 connection is always closed after error in a protocol.
971 Affected file silcd/server.c.
973 Wed Jan 15 11:03:36 CET 2003 Pekka Riikonen <priikone@silcnet.org>
975 * Removed --session and --dummy options from Irssi SILC Client.
976 -d option is available only if --enable-debug was given.
977 Affected files are irssi/src/silc/core/silc-core,
978 irssi/src/core/session.c and irssi/src/fe-text/silc.c.
980 Tue Jan 14 12:25:09 CET 2003 Pekka Riikonen <priikone@silcnet.org>
982 * Added silc_buffer_steal to steal the data from the buffer.
983 Affected file lib/silcutil/silcbuffer.h.
985 Sat Jan 11 18:16:29 CET 2003 Giovanni Giacobbi <giovanni@giacobbi.net>
987 * Fixed server crash with double Primary block in config file.
989 Fixed also various memory leaks around the config file
990 parser. Affected files lib/silcutil/silcconfig.c,
991 silcd/serverconfig.c.
993 * Changed my nickname (Johnny Mnemonic) to my real name, this
994 means that bugs introduced by him were actually introduced
997 Tue Jan 7 21:58:53 CET 2003 Jochen Eisinger <c0ffee@penguin-breeder.org>
999 * Don't display "foo appears as foo\nYou're now known as foo"
1000 messages. Affected file irssi/src/silc/core/client_ops.c
1002 Tue Jan 7 20:08:15 EET 2003 Pekka Riikonen <priikone@silcnet.org>
1004 * Fixed error handling of invalid client entry when calling
1005 commands in server. Fixes a crash. Affected file
1008 Thu Dec 26 14:19:29 EET 2002 Pekka Riikonen <priikone@silcnet.org>
1010 * Added some sanity checks in server for correctness of the
1011 server configuration. Affected file silcd/serverconfig.c.
1013 Fri Dec 20 10:47:59 CET 2002 Pekka Riikonen <priikone@silcnet.org>
1015 * Prevent endless resolving of user informations in USERS
1016 command by checking the command reply status correctly.
1017 Affected file lib/silcclient/command_reply.c.
1019 Tue Dec 17 10:05:00 CET 2002 Pekka Riikonen <priikone@silcnet.org>
1021 * Fixed file writing on WIN32 to use O_BINARY flag. Affected
1022 file is lib/silcutil/silcfileutil.c. A patch by Matthew
1023 Aldous <Matthew@Aldous.com>.
1025 * Added better implementation using CriticalSection of
1026 SilcMutex on WIN32. A patch by Mikko Lähteenmäki
1027 <mikko.lahteenmaki@pikabaana.net>.
1029 * Added some Winsock WIN32 compatiblity defines into
1030 includes/silcwin32.h.
1032 Mon Dec 16 19:33:05 EET 2002 Pekka Riikonen <priikone@silcnet.org>
1034 * Fixed double free in async host lookup code. Affected file
1035 lib/silcutil/silcsockconn.c.
1037 * On backup router handle now the SERVER_SIGNOFF from router
1038 for local connected servers too, and close the connections.
1040 Do not process them as normally signing off servers when they
1041 really signoff by sending EOF fe, but always assume that
1042 router sends the SERVER_SIGNOFF.
1044 Affected files silcd/server.c and silcd/packet_receive.c.
1046 * Fixed socket unsetting when closing connections. Affected
1047 files silcd/server.c and silcd/packet_send.c.
1049 * Do not print the nickname in SERVER_SIGNOFF if we do not
1050 have it. Prevents asserts in Irssi core. It is possible we
1051 don't have the nick if it was just being resolved when server
1052 signoff. Affected file irssi/src/silc/core/client_ops.c.
1054 Thu Dec 12 23:22:50 EET 2002 Pekka Riikonen <priikone@silcnet.org>
1056 * Fixed autonick crashbug in client library. Affected file
1057 lib/silcclient/client.c.
1059 * Fixed Unix implementation of SilcMutex to really assert if
1060 the mutex is locked/unlcoked already. Affected file
1061 lib/silcutil/unix/silcunixmutex.c.
1063 * Fixed locking in silc_schedule_uninit. It didn't lock
1064 when dispatching timeout tasks. Affected file is
1065 lib/silcutil/silcschedule.c.
1067 * Changed Win32 implementation of SilcThread to use modern
1068 Win32 interface. Affected file is
1069 lib/silcutil/win32/silcwin32thread.c A patch by Mikko L.
1071 Thu Dec 12 12:06:59 CET 2002 Jochen Eisinger <c0ffee@penguin-breeder.org>
1073 * Don't print signed messages when sending failed. Affected files
1074 irssi/src/silc/core/silc-[servers.c/commands.h]
1076 * Send adquate signal when founding a channel by joing it. Affect
1077 file irssi/src/silc/core/client_ops.c
1079 Wed Dec 11 21:46:19 CET 2002 Jochen Eisinger <c0ffee@penguin-breeder.org>
1081 * Fix theme abstracts parsing. Affected files irssi/default.theme,
1082 irssi/src/fe-common/core/themes.c
1084 Wed Dec 11 20:20:07 EET 2002 Pekka Riikonen <priikone@silcnet.org>
1086 * Fixed close command to use the port correctly when closing
1087 server connections. Affected file silcd/idlist.c.
1089 * Check for NULL outbuf in silc_socket_write. It is possible
1090 that it is NULL is some odd case. Affected files are
1091 lib/silcutil/[unix/win32]/silc[unix/win32]sockconn.c.
1093 * Do not call final protocol callback for backup router
1094 resuming protocol when closing connection. It is closed
1095 by timeout in case of error. Affected file silcd/server.c.
1097 * Backup reconnect to router if backup resuming protocol
1098 failed. Affected file silcd/server_backup.c.
1100 Wed Dec 11 10:01:26 CET 2002 Pekka Riikonen <priikone@silcnet.org>
1102 * Fixed double free in SKE library error hadling when signature
1103 error occurred. Affected file lib/silcske/silcske.c.
1105 * Save the fingerprint to new SilcClientEntry after changing
1106 nickname. Affected file lib/silcclient/client_notify.c.
1108 * Print SIGNOFF in Irssi SILC client only if the nickname is
1109 known. Prevents asserts in Irssi core. It is possible we
1110 don't have the nick if it was just being resolved when it
1111 quit. Affected file irssi/src/silc/core/client_ops.c.
1113 Tue Dec 10 21:47:56 EET 2002 Pekka Riikonen <priikone@silcnet.org>
1115 * Fixed double free in invite list adding code when adding
1116 invite strings. Affected file silcd/server_util.c.
1118 Fri Dec 6 17:40:24 EET 2002 Pekka Riikonen <priikone@silcnet.org>
1120 * More log printing during backup router protocol. Affected
1121 file silcd/server_backup.c.
1123 * Removed backwards support for old private key file format.
1124 Affected file lib/silccrypt/silcpkcs.c.
1126 * Removed backwards support for not-so-strict decryption length
1127 check, it's strict now. Affected lib/silccrypt/silccipher.c.
1129 * GETKEY to update the client entrys fingerprint too.
1130 Affected file lib/silcclient/command_reply.c.
1132 * Added --without-libtoolfix for package builders using weird
1133 wrappers around libtool (BSD at least).
1135 Thu Dec 5 22:29:46 EET 2002 Pekka Riikonen <priikone@silcnet.org>
1137 * Fixed backup router bugs: When backup resumes router and
1138 receives a CHANNEL_MESSAGE packet the backup must not act
1139 as router since the packet header decryption would be
1140 different. Also, when relaying packets to channel, do
1141 not re-encrypt packets on backup that came from the primary
1142 since the connection isn't really router-router connection.
1143 Affected files silcd/server.c, silcd/packet_send.c.
1145 * Added checks in encryption/decryption that encryption/decryption
1146 length sent as argument really is multiple by block size. Helps
1147 catching really weird bugs like the above backup router bugs
1148 when packets are being decrypted in wrong way. Affected files
1149 lib/silccore/silcpacket.c, and lib/silccrypt/silccipher.c.
1151 * Fixed padding generation in private key file encryption.
1152 Affected file lib/silccrypt/silcpkcs.c.
1154 Thu Dec 5 16:35:23 EET 2002 Pekka Riikonen <priikone@silcnet.org>
1156 * Added ignore_message_signatures setting which can be used
1157 to ignore signatures in messages. Affected files are
1158 irssi/src/silc/core/client_ops.c, silc-core.c.
1160 * Fixed the libtoolfix to use command line options instead of
1161 environment variables. They didn't work as expected. Now,
1162 the libtool is fully run-time configurable.
1164 Wed Dec 4 21:08:52 CET 2002 Jochen Eisinger <c0ffee@penguin-breeder.org>
1166 * Verify signature payload for signed messages. Affected files
1167 irssi/src/silc/core/client_ops.h, irssi/src/silc/core/silc-servers.c,
1168 irssi/src/silc/core/silc-core.h
1170 * Display signature verification result in public and private
1171 messages using theme abstracts. See irssi/default.theme for
1172 examples on their usage. Affected files
1173 irssi/default.theme, irssi/src/fe-common/silc/fe-messages.h,
1174 irssi/src/fe-common/silc/module-formats.[ch],
1175 irssi/src/fe-common/silc/fe-common-silc.c,
1176 irssi/src/fe-common/silc/Makefile.am
1177 irssi/src/fe-common/core/fe-messages.[ch]
1179 * Fixed bugs in Irssi's theme parsing. Affected files
1180 irssi/src/fe-common/core/themes.c
1182 Wed Dec 4 18:29:13 EET 2002 Pekka Riikonen <priikone@silcnet.org>
1184 * Calculate the correct length for signed messages before
1185 encrypting, it must be multiple by block size. Affected
1186 file lib/silccore/silcmessage.c.
1188 * silc_message_signed_get_public_key returns now both
1189 decoded and encoded public key. Affected files are
1190 lib/silccore/silcmessage.[ch].
1192 * Added libtoolfix script that makes the libtool more generic
1193 and configurable in run-time. Now we can specify in run-time
1194 if what kind of libraries we want to create, regardless of
1195 configuration. SIMs are now creates even if --disable-shared
1196 was explicitly given.
1198 Tue Dec 3 23:26:55 EET 2002 Pekka Riikonen <priikone@silcnet.org>
1200 * Fixed founder key sending in CMODE command in client.
1201 Affected file lib/silcclient/command.c.
1203 * Fixed CUMODE founder authentication in server to not check
1204 for client's public key since it's not supposed to do that.
1205 Affected file silcd/command.c.
1207 Tue Dec 3 12:02:41 CET 2002 Jochen Eisinger <c0ffee@penguin-breeder.org>
1209 * Set realname and hostname in NICK_REC records. Affected file
1210 irssi/src/silc/core/silc-nicklist.c
1212 Mon Dec 2 20:50:20 EET 2002 Pekka Riikonen <priikone@silcnet.org>
1214 * Remove 1.0 protocol backwards compat code from client
1217 * Added more reliable check for whether nickname did change
1218 or not, or whether only Client ID changed in NICK_CHANGE
1219 notify. Affected file lib/silcclient/client_notify.c.
1220 Fixes bug in '@' character handling in a nickname.
1222 * Added support for automatically parsing signature from
1223 the message payload. Added new function
1224 silc_message_get_signature to return the payload to
1225 application. Affected files lib/silccore/silcmessage.[ch].
1227 * Changed the private_message and channel_message client
1228 operations to deliver the SilcMessagePayload to the
1229 application too. Application can use it fe. to get the
1230 signature from the message for verification. Affected
1231 file lib/silcclient/silcclient.h, client_channel.c and
1234 * Redefined the signed payload for message payloads.
1235 Updated protocol specs and implemented.
1237 Mon Dec 2 16:28:29 EET 2002 Pekka Riikonen <priikone@silcnet.org>
1239 * Fixed wrong invite and ban list handling in server command
1240 reply. Affected files are silcd/command_reply.c,
1241 silcd/server_util.[ch].
1243 Sun Dec 1 20:48:17 EET 2002 Pekka Riikonen <priikone@silcnet.org>
1245 * Fixed CMODE setting in server when founder mode was set.
1246 Affected file silcd/command.c. Bug #95.
1248 * Added support to setting specific public key in CMODE in
1249 Irssi SILC client. Affected file lib/silcclient/command.c.
1251 * Added support to use specific public key in CUMODE in
1252 Irssi SILC Client. Affected file lib/silcclient/command.c.
1254 * Added support for inviting and banning by public key in
1255 Irssi SILC client. Affected file lib/silcclient/command.c.
1257 * Fixed fingerprint/babbleprint showing in invite and ban
1258 list command replys. Affected file is
1259 irssi/src/silc/core/client_ops.c.
1261 Sun Dec 1 16:32:03 CET 2002 Jochen Eisinger <c0ffee@penguin-breeder.org>
1263 * Format CMODE +c and +h to display both the mode and the argument
1265 Sun Dec 1 18:17:22 EET 2002 Pekka Riikonen <priikone@silcnet.org>
1267 * Added test vectors and test programs for SHA-1, MD5,
1268 HMAC-SHA1 and HMAC-MD5. New tests are located in
1269 lib/silccrypt/tests/. Fixed also argument decoding bug in
1270 MD5 implementation. Affected file lib/silccrypt/md5.c.
1272 * Changed the channel private key and private message key
1273 generation (with static keys) to use SHA1 instead of MD5,
1274 as SHA1 is the mandatory hash function in SILC. Affected
1275 file lib/silcclient/client_[channel/prvmsg].c.
1277 * Changed the private key file encryption to use SHA1 instead
1278 of MD5. Added support for the old generation and added
1279 automatic change of the key (to be removed later). Affected
1280 files lib/silccrypt/silcpkcs.c.
1282 Sat Nov 30 19:07:52 EET 2002 Pekka Riikonen <priikone@silcnet.org>
1284 * Load only files with .pub suffix in PublicKeyDir. Affected
1285 file silcd/serverconfig.c.
1287 Sat Nov 30 14:29:34 CET 2002 Johnny Mnemonic <johnny@themnemonic.org>
1289 * Extended the SILC_SERVER_LOG_ERROR macro to all available logging
1290 channels. Affected files silcd/silcd.c, silcd/server.h.
1292 * Added the config directive PublicKeyDir for the client block.
1293 Affected files doc/exampe_silcd.conf.in, silcd/serverconfig.[ch].
1295 Sat Nov 30 09:30:55 CET 2002 Pekka Riikonen <priikone@silcnet.org>
1297 * Merged Toni's irssi/silc.conf patch.
1299 * ROBODoc cleanup patch to lib/silccrypt/silcpkcs.h by johnny.
1301 * Max alloc tests in allocation routines. Affected file
1302 lib/silcutil/silcmemory.c.
1304 Fri Nov 29 23:44:29 EET 2002 Pekka Riikonen <priikone@silcnet.org>
1306 * Fixed a typo in resuming code that fixed detach/resume code
1307 in server. Bug #93. Affected file silcd/packet_receive.c.
1309 Thu Nov 28 17:17:11 CET 2002 Jochen Eisinger <c0ffee@penguin-breeder.org>
1311 * Do reverse lookups for server when /connecting. Affected files
1312 irssi/silc.conf, irssi/src/core/servers.c, irssi/src/core/network.c,
1313 irssi/src/core/net-nonblock.*
1315 Thu Nov 28 16:19:18 CET 2002 Pekka Riikonen <priikone@silcnet.org>
1317 * Added library versioning for shared libraries. Affected
1318 files configure.in.pre and lib/Makefile.am.pre.
1320 Wed Nov 27 21:51:52 CET 2002 Jochen Eisinger <c0ffee@penguin-breeder.org>
1322 * Display INVITE and BAN lists as specified by SILC 1.2
1324 Wed Nov 27 16:01:11 CET 2002 Pekka Riikonen <priikone@silcnet.org>
1326 * Do not send invite list back unless asked (when sending
1327 no arguments) or when list was modified. Affected file
1330 * Remove client from invite list in KILLED notify and in
1331 KILL command. Affected file silcd/command.c and
1334 * Fixed bugs in invite list handling in INVITE command.
1335 Affected files silcd/command.c and silcd/server_util.c.
1337 * Merged with Irssi 0.8.6.
1339 * Fixed UTF-8 in Irssi SILC Client, setlocale was missing.
1340 Affected file irssi/src/fe-text/silc.c.
1342 Mon Nov 25 18:21:43 EET 2002 Pekka Riikonen <priikone@silcnet.org>
1344 * The silc_argument_get_[first/next] now return the argument
1345 type to caller. Added silc_argument_payload_encode_one.
1347 Affected files are lib/silccore/silcargument.[ch].
1349 * Added support for the SILC 1.2 INVITE command and new
1350 invite lists to server. Affected files are silcd/command.c,
1351 silcd/server_util.[ch] and silcd/packet_[receive/send].[ch].
1353 * Added support for the SILC 1.2 BAN command and new
1354 ban lists to server. Affected files are silcd/command.c,
1355 silcd/server_util.[ch] and silcd/packet_[receive/send].[ch].
1357 * Added support to client sending new INVITE command. Affected
1358 file is lib/silcclient/command.c.
1360 * Added support to client sending new BAN command. Affected
1361 file is lib/silcclient/command.c.
1363 * Added support for removing client from invite list when kicked
1364 from channel, as SILC 1.2 dictates. Affected files are
1365 silcd/packet_receive.c and silcd/command.c.
1367 Sun Nov 24 18:26:42 EET 2002 Pekka Riikonen <priikone@silcnet.org>
1369 * If iv argument to silc_cipher_[encrypt/decrypt] is NULL, use
1370 automatically the cipher's internal IV. Affected files
1371 lib/silccrypt/silccipher.[ch].
1373 * Assure the RESUME_CLIENT packet is not sent to twice to
1374 backup router if the detached client was originated from
1375 the backup. Affected file silcd/server.c. Bug #76.
1377 * Changed silc_sim_symname to not allocate memory. Affected
1378 file lib/silcsim/silcsimutil.c.
1380 * Fixed memory leaks with SIMs in server. Affected files
1381 silcd/serverconfig.c, silcd/server.c.
1383 * Fixed channel key distribution after resuming detached
1384 client. Affected files silcd/packet_receive.c.
1386 * Fixed channel's global_user boolean checking after detaching.
1387 Check it after changing the owner of the client not before.
1388 Affected file silcd/packet_receive.c.
1390 * Fixed few double frees from client library. Fixes at least
1391 Bug #81, possibly others too.
1393 * UTF-8 decode topics also in JOIN command reply and TOPIC_SET
1394 notifys in Irssi SILC Client. Affected file is
1395 irssi/src/silc/core/client_ops.c. Bug #82.
1397 * Applied Ville Räsänen's manual page and --mandir bugfix
1398 patch. Affected files are configure.in.pre and Makefile.am.pre.
1401 Fri Nov 22 18:34:20 EET 2002 Pekka Riikonen <priikone@silcnet.org>
1403 * Added support to backup router protocol for backup to tell
1404 normal server that it cannot use the backup router as primary
1405 because the primary isn't really down. Updated protocol
1408 * Added support for primary router to tell backup router that
1409 resuming is not possible because the backup really isn't primary
1410 in the cell. For example if backup disconnected itself the
1411 resuming is not allowed since the primary really did not
1412 go down. Updated protocol specs.
1414 * Removed MARS from crypto library.
1416 * Defined the CTR mode and Randomized CBC mode in SILC. The
1417 CTR mode is RECOMMENDED now in specification. Defined also
1418 Serpent cipher as optional cipher. Updated the protocol specs.
1420 Thu Nov 21 12:43:28 EET 2002 Pekka Riikonen <priikone@silcnet.org>
1422 * Added support for inviting/banning by IP/MASK, public key,
1423 and explicit Client ID. Redefined the command and notify
1424 types to allow easier forwards support for other methods
1425 of inviting/banning. Updated protocol specs.
1427 * Remove the client from channel's invite lists if the client
1428 is kicked or killed. Updated protocol specs.
1430 * Unified the Channel Message Payload and Private Message
1431 into one Message Payload. Updated protocol specs and
1434 Tue Nov 19 22:30:56 EET 2002 Pekka Riikonen <priikone@silcnet.org>
1436 * Don't wait for EOF after socket error has occurred, but
1437 close the connection. Affected file is silcd/server.c.
1439 Mon Nov 18 18:58:26 EET 2002 Pekka Riikonen <priikone@silcnet.org>
1441 * Added support for setting FOUNDER mode on channel with
1442 specific public key which can be set with CMODE command.
1443 Updated protocol specs and implemented in client and server.
1445 * Fixed the Irssi SILC client to correctly shutdown the client
1446 library to avoid memory leaks. Affected files are
1447 irssi/src/silc/core/silc-core.c and silc-servers.c.
1449 * Deprecated the No Reply flag in SKE protocol and introduced
1450 "IV Included" flag which can be used to indicate that the IV
1451 is included in the ciphertext. This makes it possible to use
1452 SILC on unreliable transport, such as UDP which may cause
1453 packet reordering and losses. Updated protocol specs, did
1456 Sun Nov 17 15:50:57 EET 2002 Pekka Riikonen <priikone@silcnet.org>
1458 * Fixed the MPI implementation of silc_mp_sizeinbase to return
1459 < 32 bit values in correct size. Affected file is
1460 lib/silcmath/mp_mpi.c.
1462 Sat Nov 16 13:14:45 EET 2002 Pekka Riikonen <priikone@silcnet.org>
1464 * Fixed the KE Start Payload parsing to check that mandatory
1465 fields are present. Affected file lib/silcske/payload.c.
1467 * Fixed compilation warnigs in Irssi SILC Client. Affected
1468 files are irssi/src/silc/core/silc-query.c. client_ops.c.
1470 Thu Nov 14 19:33:28 CET 2002 Jochen Eisinger <c0ffee@penguin-breeder.org>
1472 * Print "nick now appears as newnick" and update Irssi's nicklist
1473 when you change your nick to "nick". Closes #62
1475 * Never format your own nick. Closes #63
1477 Thu Nov 14 09:44:54 CET 2002 Jochen Eisinger <c0ffee@penguin-breeder.org>
1479 * SILC_UMODE_GONE changes are now propagated correctly to the
1480 Irssi client. Closes #54
1482 Tue Nov 12 19:42:18 CET 2002 Jochen Eisinger <c0ffee@penguin-breeder.org>
1484 * Fixed example in /HELP KEY
1486 * Added expando $j which expands to current SILC Client version
1488 Tue Nov 12 19:46:39 EET 2002 Pekka Riikonen <priikone@silcnet.org>
1490 * Fixed public key decoding in crypto library.
1492 * Added better error printing to SKE library.
1494 Tue Nov 12 08:50:12 CET 2002 Pekka Riikonen <priikone@silcnet.org>
1496 * Fixed NICK command to not crash if nickname was not sent.
1498 Mon Nov 11 19:32:00 EET 2002 Pekka Riikonen <priikone@silcnet.org>
1500 * Added Encrypt-Then-MAC order to SILC packet MAC generation.
1501 Deprecated the old Encrypt-And-MAC order. Updated protocol
1502 specs and implemented.
1504 * Added Encrypt-Then-MAC order to Channel Message Payload MAC
1505 generation. Updated specs and implemented.
1507 Sun Nov 10 12:20:56 EET 2002 Pekka Riikonen <priikone@silcnet.org>
1509 * Added support for rekey before 2^32 sequence number wraps.
1510 Affected files in server and client library.
1512 * Padding must be at least 8 bytes now. Implemented and updated
1515 * Compute maximum padding for authentication packets to make
1516 passphrase approximation attacks impossible. Affected files
1517 in client library and in server.
1519 * Fixed PING command sending in client library and handling in
1520 server. The server ID must be ID Payload, not raw ID data.
1521 Affected files in server and client library.
1523 * Defined that all public keys sent in commands and notify
1524 payloads are actually Public Key Payloads not raw public key
1525 data. Updated protocol specs and implemented.
1527 * Updated protocol version to 1.2. Updated specs and code.
1529 * Added ERR_UNSUPPORTED_PUBLIC_KEY and ERR_OPERATION_ALLOWED
1530 status types. Updated specs and the code.
1532 * Added support for normal client to kill its own entries from
1533 the network. Updated protocol specs and the code.
1535 * Defined the SILC_MESSAGE_FLAG_SIGNED. Updated protocol specs
1536 and added initial implementation.
1538 * Added MAC field to the Private Message Payload to protect
1539 against chosen ciphertext attacks. Updated the protocol specs
1542 * Added idle and signon fields to the ATTRIBUTE_SERVICE
1543 attribute to indicate the user's current idle and signon time
1544 of a service. Updated protocol specs and implemented.
1546 Thu Nov 7 19:21:10 EET 2002 Pekka Riikonen <priikone@silcnet.org>
1548 * Added "do_not_bind" argument to silc_client_file_send what
1549 can be used to not bind locally but assume the file receiver
1550 provides the point of connect. Usefull when sender is behind
1551 NAT device. Affected file lib/silcclient/silcclient.h and
1554 * Added -no-listener option to FILE SEND command in Irssi SILC
1555 client. Affected file irssi/src/silc/core/silc-servers.c.
1556 Renamed FILE RECEIVE to FILE ACCEPT.
1558 * Confirm passphrase for private key encryption in
1559 silc_create_key_pair and silc_change_private_key_passphrase.
1560 Affected files are lib/silcutil/silcapputil.c.
1562 Thu Nov 7 10:05:28 CET 2002 Pekka Riikonen <priikone@silcnet.org>
1564 * Move silc_client_packet_send back to internal, added
1565 silc_client_send_packet, a bit simpler function for application.
1566 Affected files lib/silcclient/silcclient.h, client.c and
1569 * Moved the SilcClientEntry, SilcChannelEntry and
1570 SilcServerEntry to silcclient.h to be public and documented
1571 them for application. Affected files are
1572 lib/silcclient/silcclient.h and idlist.h.
1574 Wed Nov 6 17:18:13 EET 2002 Pekka Riikonen <priikone@silcnet.org>
1576 * Fixed manual page installation patch by Ville Räsänen.
1577 USERS help page fix patch by Ville Räsänen
1579 * Changed the silc_client_command_call interface to make
1580 the command call simpler for the application. The library
1581 now handles the command line parsing, command finding and
1582 execution. Application only needs to call the function
1583 with the command line. Affected files are
1584 lib/silcclient/silcclient.h, command.[ch].
1586 * Fixed silc_get_input to NULL-terminate the returned input.
1587 Affected file lib/silcutil/silcutil.c.
1589 * Resolve the client's public key in JOIN command if the
1590 founder auth data is being requested but we don't know the
1591 client's public key. Affected file silcd/command.c.
1594 Mon Nov 4 16:02:59 EET 2002 Pekka Riikonen <priikone@silcnet.org>
1596 * Print notify for server opers when backup router comes
1597 online. Affected file silcd/server.c.
1599 * Fixed the INVITE command to send the invite list in
1600 command reply. Affected file silcd/command_reply.c.
1602 * Fixed MOTD command reply sending. Affected file
1605 * UTF-8 decode the topic in TOPIC command reply and LIST
1606 command reply in Irssi SILC client. Affected file is
1607 irssi/src/silc/core/client_ops.c.
1609 Sun Nov 3 17:59:15 EET 2002 Pekka Riikonen <priikone@silcnet.org>
1611 * Fixed the INVITE command to not crash Irssi SILC client
1612 when given without nickname argument. AFfected file
1613 irssi/src/silc/core/client_ops.c.
1615 * Fixed double free in WHOIS query on normal server when
1616 forwarding query to router. Affected file is
1617 silcd/server_query.c.
1619 * Fixed WATCH command reply handling on normal server which
1620 was missing altogether. Affected file silcd/command_reply.c.
1623 Sun Nov 3 00:42:05 EET 2002 Mika Boström <bostik@lut.fi>
1625 * Added man-pages for silc(1), silcd(8) and silcd.conf(5).
1626 Included yodl sources for each of these. Also modified
1627 Makefile.am prototype to install these files to proper
1628 locations. Updated CREDITS. Affected file Makefile.am.pre,
1629 new files doc/*.yo, doc/silc.1, doc/silcd.conf.5,
1632 Sat Nov 2 21:26:56 EET 2002 Pekka Riikonen <priikone@silcnet.org>
1634 * Added support for encrypted private key files. Now
1635 passphrase must be provided when new key pair is created
1636 (can be empty though), and prompted when loading the
1637 private key. Added support for loading the old-style
1638 non-encrypted private keys as well. Affected files
1639 lib/silccrypt/silcpkcs.[ch], Irssi SILC client and
1642 * Fixed silc_get_input to accept input on all terminals.
1643 Affected file lib/silcutil/silcutil.c.
1645 * Moved the Irssi SILC client key loading and other stuff
1646 to be called after the arguments and UI is initialized.
1647 Affected file irssi/src/silc/core/silc-core.c. Bug #31.
1649 * Added -P option to Irssi SILC client which can be used
1650 to change the passphrase of the private key. Affected
1651 file irssi/src/silc/core/silc-core.c.
1653 * Added silc_change_private_key_passphrase apputil routine
1654 to lib/silcutil/silcapputil.[ch].
1656 Sat Nov 2 12:53:09 EET 2002 Pekka Riikonen <priikone@silcnet.org>
1658 * Fixed connection closing in client library to not crash.
1659 Moved the connection freeing totally to function
1660 silc_clinet_del_connection. Affected file
1661 lib/silcclinet/client.c.
1663 Fri Nov 1 18:57:02 EET 2002 Pekka Riikonen <priikone@silcnet.org>
1665 * Changed includes/silcincludes.h to silcincludes.h.in to
1666 include configuration specific information. The silcdefs.h
1667 is not included in to installation anymore (it's only
1668 compilation time header).
1670 Fri Nov 1 10:30:26 CET 2002 Pekka Riikonen <priikone@silcnet.org>
1672 * Moved the SilcClient and SilcClientConnection from client.h
1673 to the public lib/silcclient/silcclient.h. Changed the
1676 Thu Oct 31 22:44:07 EET 2002 Pekka Riikonen <priikone@silcnet.org>
1678 * If version string in silc_clinet_alloc is NULL the library
1679 puts it automatically. Affected file lib/silcclient/client.c.
1681 * Changed the version strings from variables to #define's
1682 in includes/silcversion.h.
1684 Wed Oct 30 16:17:30 CET 2002 Pekka Riikonen <priikone@silcnet.org>
1686 * Added shared library complation support.
1688 Tue Oct 29 21:48:55 EET 2002 Pekka Riikonen <priikone@silcnet.org>
1690 * Added lib/silcutil/silcapputil.[ch] for application
1691 utility functions. It includes routines for applications'
1692 convenience. Added silc_create_key_pair, silc_show_public_key
1693 and silc_load_key_pair functions.
1695 Tue Oct 29 17:36:44 EET 2002 Pekka Riikonen <priikone@silcnet.org>
1697 * Send RESUME_CLIENT packet from router to backup routers
1698 to in resuming. Affected file silcd/packet_receive.c.
1700 Mon Oct 28 21:23:39 EET 2002 Pekka Riikonen <priikone@silcnet.org>
1702 * In IDENTIFY command parsing, send all other IDs except
1703 Client IDs explicitly to router for resolving on normal
1704 server. Also check that ID received in WHOIS command is
1705 always Client ID, others are not allowed. Affected file
1706 silcd/server_query.c.
1708 * Merged latest changes from irssi.org CVS.
1710 Sun Oct 27 11:44:32 EET 2002 Pekka Riikonen <priikone@silcnet.org>
1712 * Merged c0ffee's /set heartbeat patch to Irssi SILC client.
1713 Affected files irssi/src/silc/core/silc-core, silc-server.c.
1715 * Fixed the heartbeat sending in Irssi SILC client. Moved
1716 the silc_client_packet_send to silcclient.h for application
1717 usage. Affected files lib/silcclient/client_internal.h
1718 lib/silcclient/silcclient.h.
1720 * Fixed a bug in query resolving in server. Used wrong
1721 variable in a for loop and crashed. Affected file is
1722 silcd/server_query.c.
1724 * Server constructs requested attributes only to locally
1725 connected clients. Affected file silcd/server_query.c.
1728 * Fixed a bug when sending resolving from router to server
1729 with requested attributes. The constructed WHOIS command
1730 was incorrect. Affected file silcd/server_query.c.
1733 * Fixed Requested Attributes saving in WHOIS command reply.
1734 The length of the data buffer must be saved too. Affected
1735 file silcd/command_reply.c.
1737 * Update the client entry's servername after detaching is
1738 over. Affected file silcd/packet_receive.c. Bug #37.
1740 * Resolve incomplete client entrys in CUMODE_CHANGE and
1741 CMODE_CHANGE notifys. Affected file is
1742 lib/silcclient/client_notify.c. Bug #42.
1744 Thu Oct 24 12:22:35 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
1746 * Fixed channel key packet processing bug on backup router
1747 during backup resuming protocol. Affected file is
1748 silcd/packet_receive.c.
1750 * Fixed memory leaks in server. Affected files are
1751 silcd/server.c and silcd/packet_receive.c.
1753 * Fixed packet decryption problem when backup router encrypted
1754 channel message with wrong key during backup resuming
1755 protocol. Affected file silcd/packet_send.c.
1757 * ROBODoc documented lib/silccrypt/silccipher.h. A patch by
1758 Toni Willberg (toniw@iki.fi)
1760 * Changed the SilcCipher context to be private. Changed the
1761 silc_cipher_get_iv to just return pointer to the IV. Added
1762 silc_cipher_get_name to return the name of the cipher.
1763 Fixed code all around to support these changes. Affected
1764 files are lib/silccrypt/silccipher.[ch], client library and
1767 Wed Oct 23 19:01:41 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
1769 * Fixed unaligned access in lib/silccore/silcattrs.c.
1771 * Fixed libtool linking in lib/silcsim/Makefile.am.
1773 * Fixed services attribute printing. Affected files is
1774 irssi/src/silc/core/silc-queries.c.
1776 Wed Oct 23 09:51:04 CEST 2002 Pekka Riikonen <priikone@silcnet.org>
1778 * Fixed a crashbug in incoming server accepting. Affected
1779 file silcd/server.c.
1781 Tue Oct 22 13:02:32 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
1783 * Added automatically generated index to Toolkit Reference
1786 * Added support for Postscript Toolkit Reference Manual.
1788 Mon Oct 21 21:30:40 CEST 2002 Pekka Riikonen <priikone@silcnet.org>
1790 * Merged DISCONNECT fix, and autoconn port fix from Irssi
1793 Sun Oct 20 19:54:55 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
1795 * Added 'send_events' boolean argument to the function
1796 silc_schedule_set_listen_fd which sends the set events to
1797 the application explicitly if set to TRUE. Default action
1798 should be FALSE. Affected file lib/silcutil/silcschedule.[ch],
1799 lib/silcclient/client_internal.h and silcd/server_internal.h.
1801 * Added silc_compare_timeval to determine which time values
1802 is smaller. Affected file lib/silcutil/silcutil.[ch].
1804 * Added sort-of "Quality of Service" (QoS) support to
1805 SilcSocketConnection. Data reception can be controlled with
1806 rate limit per second and/or read data length limit.
1807 Added silc_socket_set_qos. Affected files are
1808 lib/silcutil/silcsockconn.[ch] and unix/silcunixsockconn.c.
1810 * Added the QoS configuration to SILC Server configuration
1811 file. Affected files are silcd/serverconfig.[ch] and
1814 Sun Oct 20 14:12:24 CEST 2002 Pekka Riikonen <priikone@silcnet.org>
1816 * Merged with irssi.org CVS.
1818 * Failed OPER and SILCOPER authentications are now logged.
1819 Affected file silcd/command.c. Bugs #25.
1821 Sat Oct 19 13:32:15 CEST 2002 Pekka Riikonen <priikone@silcnet.org>
1823 * ROBODoc documented lib/silcutil/silcbuffer.h and
1824 lib/silcutil/silcdlist.h. Patch by Ville Räsänen
1825 <ville.rasanen@iki.fi>.
1827 Fri Oct 18 10:51:04 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
1829 * Added support for auto-passphrase authentication from the
1830 config file during connecting which was not implemented
1831 yet. Affected file irssi/src/silc/core/client_ops.c.
1833 * Fixed a bug in authentication protocol failure handling which
1834 was processing wrong callback context. Affected files
1835 are lib/silcclient/client.c and protocol.c.
1837 * Fixed the /ATTR allow off to actually work. Affected file
1838 is irssi/src/silc/core/silc-queries.c.
1840 * Fixed the /ATTR -del to work. Affected file is
1841 irssi/src/silc/core/silc-queries.c.
1843 Thu Oct 17 23:45:12 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
1845 * Fixed string formatting crashbug in lib/silccore/silcattrs.c.
1847 * Fixed mask attribute adding in Irssi SILC client. Affected
1848 file irssi/src/silc/core/silc-queries.c.
1850 Thu Oct 17 16:40:39 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
1852 * Added support for saving the requested attributes in
1853 WHOIS to directory. Affected file is
1854 irssi/src/silc/core/silc-queries.c.
1856 Wed Oct 16 17:40:56 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
1858 * Added support for parsing VCard fields that do not have
1859 the TYPE= for types. Affected file lib/silcutil/silcvcard.c.
1861 * Fixed a double free bug in hash table foreach function
1862 if the entry was deleted in the foreach callback. Affected
1863 file lib/silcutil/silchashtable.c.
1865 Tue Oct 15 18:05:24 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
1867 * Added silc_attribute_get_verify_data to return the signature
1868 verification data for either user digital signature or
1869 server digital signature in Requested Attributes. Affected
1870 files are lib/silccore/silcattrs.[ch].
1872 * Added silc_vcard_alloc which is used to allocated dynamic
1873 SilcVCard context. The silc_vcard_free now checks whether
1874 the context is dynamically allocated or not. Affected files
1875 are lib/silcutil/silcvcard.[ch].
1877 Mon Oct 14 17:55:44 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
1879 * Periodically remove the NOATTR status from client entry
1880 so that the client may take the attributes in use even after
1881 server has resolved them unsuccessfully earlier. Affected
1882 file silcd/server_query.c and idlist.h.
1884 * Moved sha1hash and md5hash from client->internal to
1885 SilcClient for application usage. Affected files are
1886 lib/silcclient/client.h and client_internal.h.
1888 * Fixed attribute encoding and decoding bugs. Affected
1889 files lib/silccore/silcattrs.[ch].
1891 * Added ATTR command to Irssi SILC Client which is used to
1892 manage user's Requested Attributes sending and values for
1893 WHOIS command. Affected files around Irssi SILC client.
1895 Mon Oct 14 14:33:54 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
1897 * Added silc_buffer_strformat which can be used to format
1898 strings into a buffer which size is automatically increased.
1899 Affected file lib/silcutil/silcbuffmt.[ch].
1901 * Added implementation of VCard (RFC 2426) which can be used
1902 as part of Requested Attributes in WHOIS command. Affected
1903 file lib/silcutil/silcvcard.[ch].
1905 Fri Oct 11 23:52:17 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
1907 * Some strncat -> silc_strncat changes our the core and
1910 * Added SILC_SKE_STATUS_SIGNATURE_ERROR and OUT_OF_MEMORY
1911 errors. Added better error printing to SKE library.
1912 Affected files lib/silcske/silcske.c, silcske_status.h and
1915 * Save the PKCS key length even if only private key is set to
1916 SilcPKCS. Affected file lib/silccrypt/silcpkcs.[ch] and rsa.c.
1918 * Fixed the usage of silc_pkcs_get_key_len since it returns the
1919 length in bits not in bytes. Affected files are
1920 lib/silcske/silcske.c, lib/silccore/silcauth.c and
1921 silcd/server_query.c.
1923 Wed Oct 9 17:22:57 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
1925 * Added silc_attribute_payload_encode_data to directly encode
1926 the data into the attributes buffer. Renamed function
1927 silc_attribute_payload_parse_list to silc_attribute_payload_parse.
1928 Affected files are lib/silccore/silcattrs.[ch].
1930 * silc_hash_table_find_foreach calls the foreach function now
1931 once even if the nothing was found with context set to NULL.
1932 Affected file lib/silcutil/silchashtable.[ch].
1934 * Remove the RESOLVING flag from client entry after received
1935 the Requested Attributes from the client. Fixed memory leak
1936 in client entry freeing. Affected files silcd/server_query.c
1939 * Added Requested Attributes support into SILC Client Library.
1940 It is not able to send requested attributes in WHOIS command,
1941 and also receive and process requested attributes. Added
1942 silc_client_attribute_[add|del] and silc_client_attributes_get
1943 functions. Added also `ignore_requested_attributes' to the
1944 SilcClientParams to not use attributes in client. Affected
1945 files are lib/silcclient/command.c, client_attrs.[ch],
1946 silcclient.h, client_internal and client.[ch].
1948 * Changed the silc_client_get_client_by_id to support Requested
1949 Attributes, it takes them as argument now. Affected file
1950 is lib/silcclient/silcclient.h, and idlist.c.
1952 * Added -details option to WHOIS command in Irssi SILC Client
1953 to support the requested attributes. By default it requests
1954 all attributes. Affected file lib/silcclient/command.c and
1955 irssi/doc/help/in/whois.in.
1957 Tue Oct 8 17:58:28 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
1959 * Add also SERVICE attribute for server-constructed attribute
1960 data. Also digitally sign the attributes and add
1961 SERVER_DIGITAL_SIGNATURE attribute. Affected file is
1962 silcd/server_query.c.
1964 Mon Oct 7 18:25:35 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
1966 * Changed the silc_attribute_payload_encode to support list
1967 of attributes (function may be called several times to add
1968 a new attribute). Removed the silc_attribute_payload_encode_list
1969 function. The encoding function now also automatically encodes
1970 the data, so the caller does not need to do that. Affected
1971 files lib/silccore/silcattrs.[ch].
1973 * Added support for replying on behalf of the user to the
1974 Requested Attributes in WHOIS command in the server. Affected
1975 file silcd/server_query.c.
1977 * SILC_NOT_IMPLEMENTED macro use SILC_LOG_INFO now instead of
1978 SILC_LOG_DEBUG. Affected file lib/silcutil/silclog.h.
1980 Sun Oct 6 16:48:32 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
1982 * Don't swtich to become primary router if we are backup if
1983 decryption error has occurred. Affected file silcd/server.c.
1985 * Fixed a bug in backup router IP address comparison in
1986 silc_server_backup_get.
1988 Save now also the port of the server/router and use that
1989 in comparison as well. Affected file silcd/server_backup.c.
1991 * Normal server now reconnects to backup router automatically
1992 if connection is lost to it. Affected file silcd/server.c.
1994 Thu Sep 26 13:51:02 CEST 2002 Pekka Riikonen <priikone@silcnet.org>
1996 * If packet processing fails (like integrity check fails)
1997 the connection is closed now. Affected files are
1998 lib/silccore/silcpacket.c and silcd/server.c.
2000 Mon Sep 23 10:59:39 CEST 2002 Pekka Riikonen <priikone@silcnet.org>
2002 * Fixed double free in RSA public key set function
2003 silc_rsa_set_public_key. Affected file lib/silccrypt/rsa.c.
2006 Sun Sep 22 14:54:05 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
2008 * Rewrote WHOIS, WHOWAS and IDENTIFY commands in the server.
2009 Added server_query.[ch] which provides one interface for
2010 querying information using all three commands.
2012 * Changed all "typedef unsigned char" in core library to
2013 "typedef SilcUInt8".
2015 Sat Sep 21 21:36:45 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
2017 * Added silc_strncat into lib/silcutil/silcstrutil.[ch].
2019 * Renamed silc_server_get_client_resolve to
2020 silc_server_query_resolve and moved to server_query.[ch].
2022 Wed Sep 18 18:28:04 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
2024 * Resumed client packet handling from server put the resumed
2025 client on wrong list on router and caused the client not
2026 be present on the network anymore. Now fixed to put the
2027 client to correct list. Affected file silcd/packet_receive.c.
2029 Wed Sep 18 15:13:48 CEST 2002 Johnny Mnemonic <johnny@themnemonic.org>
2031 * Various cleanup in error message output in config parsing code
2032 and in server init code. Fixed error log files containing
2033 too many newlines ('\n') in some situations. Affected files are
2034 silcd/serverconfig.c, silcd/silcd.c, and silcd/server.c.
2036 Wed Sep 18 10:51:23 CEST 2002 Pekka Riikonen <priikone@silcnet.org>
2038 * Use the reverse lookupped hostname in client internals
2039 instead of one user provided us as remote server name.
2040 Affected file lib/silcclient/client.c.
2042 Mon Sep 16 12:02:54 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
2044 * Added 'app_context' to silc_schedule_init. It is an
2045 application specific context that is delivered to application
2046 in task callback functions. Affected files are
2047 lib/silcutil/silcutil.[ch].
2049 * The hb_context in SilcSocketConnection is not freed
2050 automatically anymore (application must free it). Freeing
2051 it automatic is inconsistent. Affected files are
2052 lib/silcutil/silcsockconn.[ch].
2054 Sun Sep 15 22:16:19 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
2056 * Added support for removing explicitly added client connections
2057 in rehash and closing the client connections if they were
2058 unconfigured in the rehash. Affected file silcd/server.c.
2060 * Added support for aborting automatically pending commands
2061 that never receives the reply (to avoid memory leaks).
2062 Added also silc_server_command_pending_timed to set the
2063 specific timeout for pending command. Affected files are
2064 silcd/command[_reply].[ch].
2066 * Added SILC_STATUS_ERR_TIMEDOUT status. Updated protocol
2067 specs and lib/silccore/silcstatus.h.
2069 Sun Sep 15 12:25:10 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
2071 * Changed the silc_get_time to accept time value as argument
2072 or if zero is sent return current local time. Affected
2073 file lib/silcutil/silcutil.[ch].
2075 * Added STATS command to client library and Irssi SILC client.
2076 Patch provided by Ville Räsänen <ville.rasanen@iki.fi>.
2078 Wed Sep 11 09:22:00 CEST 2002 Pekka Riikonen <priikone@silcnet.org>
2080 * Assure that channel key is set before sending it. May
2081 crash server otherwise. Affected file silcd/packet_send.c.
2083 Tue Sep 10 09:50:08 CEST 2002 Pekka Riikonen <priikone@silcnet.org>
2085 * Assure that endless loop cannot happen with detached client
2086 resolving on normal server. Added idlist status
2087 SILC_IDLIST_STATUS_RESUME_RES. Affected files are
2088 silcd/idlist.h and silcd/packet_receive.c.
2090 Mon Sep 9 12:18:18 CEST 2002 Pekka Riikonen <priikone@silcnet.org>
2092 * Incoming file transfer request cannot use same session as
2093 the sending session. This can happen when sending file to
2094 yourself. Crashed the client on quit. Affected file
2095 lib/silcclient/client_ftp.c. Bug #24.
2097 Sun Sep 8 18:39:25 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
2099 * Implemented the draft-riikonen-precense-attrs draft and
2100 the Attribute Payload into the lib/silccore/silcattrs.[ch].
2102 Sun Sep 8 13:13:44 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
2104 * Distribute the SERVER_SIGNOFF notify also to local backup
2105 routers from the primary router. The backup router may not
2106 have the signing of local server directly connected and need
2107 to know about the signoff. Affected file silcd/server_util.c.
2109 * Use the primary router as the origin of the locally connected
2110 server when it is disconnecting from the backup router since
2111 that's where it really is coming from. Now the clients from
2112 the disconnecting server are removed correctly and "shadow"
2113 clients are not left to the backup router. Affected file
2116 Sat Sep 7 22:26:50 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
2118 * If normal server is standalone and found existing but disabled
2119 channel, do not re-create the channel since it creates
2120 duplicate same channels. Affected file silcd/server.c.
2122 * Added anonymous client connections support to server. New
2123 "anonymous" configuration option to ConnectionParams section
2124 added. If set to true, the username and hostname information
2125 of the client will be scrambled and anonymous user mode is
2126 set automatically to the user. Affected files are
2127 silcd/serverconfig.[ch], silcd/packet_receive.c and server.c.
2129 Sat Sep 7 16:02:09 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
2131 * In JOIN notify handling, mark that the cache entry of the
2132 client cannot be expired. Can cause crashes on normal
2133 server (asserts client->channels). Affected file is
2134 silcd/packet_receive.c.
2136 * From now on distribution versions are used as protocol versions
2137 instead of by default using the Toolkit base version as protocol
2138 version. Affected file prepare.
2140 * Do not set the locally resolved hostname for local client
2141 entry but take what server sends. This way the real hostname
2142 is showed in WHOIS for yourself. Affected file is
2143 lib/silcclient/idlist.c and lib/silcclient/client.c.
2145 * Resolve local info with IDENTIFY when connecting to server.y
2147 Sat Sep 7 14:22:43 CEST 2002 Lubomir Sedlacik <salo@silcnet.org>
2149 * Rewritten check for POSIX threads. Use --with-pthreads[=DIR]
2150 for implied search (not needed on platforms which has native
2151 pthreads library). Use --without-pthreads to disable threads.
2152 Affected file is configure.in.pre
2154 * Fixed --with-iconv on platforms which need to bypass (broken)
2155 native iconv(). Affected file is configure.in.pre
2157 Sat Sep 7 15:08:13 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
2159 * Moved -C option parsing in Irssi SILC client at same time
2160 as other options. The UI was initialized earlier and caused
2161 problems on command line. Bug #16. Affected file is
2162 irssi/src/silc/core/silc-core.c.
2164 Mon Sep 2 23:00:30 CEST 2002 Johnny Mnemonic <johnny@themnemonic.org>
2166 * Added global variable silc_log_timestamp that tells silclog
2167 wether to print or not the timestamp in the logging files.
2168 Affected file lib/silcutil/silclog.[ch].
2170 * Added silcd configuration option Timestamp in the Logging
2171 section. Affected file silcd/serverconfig.[ch],
2172 doc/example_silcd.conf.in.
2174 Fri Aug 30 08:57:33 CEST 2002 Pekka Riikonen <priikone@silcnet.org>
2176 * Fixed fingerprint checking to check for entirely empty
2177 fingerprint instead of two first bytes when determining
2178 if it is set. Bug #18. Affected file silcd/command.c.
2180 * Fixed duplicate PKCS name registering to not allow it.
2181 Bugs #17. Affected file lib/silccrypt/silcpkcs.c.
2183 Sun Aug 25 08:02:04 CEST 2002 Lubomir Sedlacik <salo@silcnet.org>
2185 * Conditionalize non-gcc compiler optimizations for various
2186 platforms, enable those commented out. Cleanups.
2187 Affected file lib/silcmath/mpi/configure.in
2189 Sat Aug 24 15:11:32 EEST 2002 Timo Sirainen <tss@iki.fi>
2191 * silc_rng_exec_command() left zombie processes if command
2192 didn't generate any output. Affected file
2193 lib/silccrypt/silcrng.c
2195 Fri Aug 23 22:05:44 CEST 2002 Lubomir Sedlacik <salo@silcnet.org>
2197 * Rewrote iconv checking, introduce --with-iconv for systems
2198 which rely on libiconv. Check if iconv() provided by libc
2199 is good enough, otherwise demand libiconv. Affected file
2202 Fri Aug 23 07:10:52 CEST 2002 Lubomir Sedlacik <salo@silcnet.org>
2204 * Search for ldopen() also in libc. This enables SIM support
2205 on *BSD systems. Based on patch from Alex Zepeda. Affected
2206 file configure.in.pre
2208 Sun Aug 18 04:44:30 CEST 2002 Lubomir Sedlacik <salo@silcnet.org>
2210 * Don't call AM_CONDITIONAL conditonally for SILC_THREADS.
2211 This fixes prepare on *BSD systems. Affected file
2214 Sun Aug 4 15:55:40 CEST 2002 Pekka Riikonen <priikone@silcnet.org>
2216 * More fixed for not having purge timeout for global clients
2217 that are on channel. Affected files silcd/command_reply.c
2220 * Fixed the rekey protocol to work with backup router connections.
2221 Rekey packets are now allowed on disabled connections as
2222 well. Affected files silcd/packet_send.c and server.c.
2224 * Do not switch to be as backup router when shutting down and
2225 closing the primary connection. Affected file silcd/server.c.
2227 * Fixed memory leaks in backup router deleting. Added
2228 silc_server_backup_free to free all data during shutdown of
2229 server. Affected files silcd/server_backup.[ch].
2231 Sun Jul 14 21:33:32 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
2233 * Do not process commands if the sock->user_data is NULL.
2234 Affected file silcd/command.c.
2236 Tue Jul 9 19:03:11 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
2238 * Fixed buffer overflow and security problems (loosing bits
2239 in CFB encryption) in SILC RNG. Problems reported by
2240 Markku-Juhani O. Saarinen <mjos@saturn.tcs.hut.fi>.
2242 Sun Jul 7 13:10:01 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
2244 * Added yet more checks that client is not expired on global
2245 list if it is on channels. Affected file is
2246 silcd/command_reply.c.
2248 Sat Jul 6 11:45:11 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
2250 * Merged c0ffee's MIME signal patch which adds support for
2251 sending also MIME messages in Irssi SILC Client, and handling
2252 received MIME messages in a signal (and perhaps doing something
2253 to non-textual MIME messages).
2255 Sun Jun 30 01:30:22 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
2257 * Fixed pending command deletion in server and client library
2258 to check the whole list instead of breaking after first found.
2259 The affected files are silcd/command.[ch] and
2260 lib/silcclient/command.[ch].
2262 Sat Jun 29 17:40:12 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
2264 * Return NO_SUCH_CHANNEL error in USERS for channel that is
2265 secret or private, otherwise it's possible to find out
2266 whether a secret channel exists or not. Affected file
2269 * If CMODE change fails during the mode setting, assure that
2270 the old mode mask is set for the channel back. Affected
2271 file silcd/command.c.
2273 * Fixed passphrase saving on +a channel on normal server
2274 after successful JOIN command. Affected file silcd/command.c.
2276 Fri Jun 28 11:53:25 CEST 2002 Pekka Riikonen <priikone@silcnet.org>
2278 * Remove server/router operator privileges in DETACH command,
2279 since it's possible to resume to server where these
2280 privileges would not be allowed for the client. Affected
2281 file silcd/command.c.
2283 * Do not set to wait for backup in rehash of the server.
2284 Affected file silcd/server.c.
2286 * Do not check listener sockets when counting how many
2287 socket connections we have. Affected file is
2288 silcd/server_util.c.
2290 * Do not announce disconnected clients that are remaining
2291 in history (for WHOWAS). This is because SIGNOFF notify
2292 for these has been sent earlier already. Affected file
2295 Thu Jun 27 20:07:27 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
2297 * Buffer overflow with CUMODE command's mode->mode character
2298 conversion. Reported by Ville Räsänen. Affected file
2299 lib/silcutil/silcutil.c.
2301 Thu Jun 27 16:54:33 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
2303 * Allow heartbeat packets to go disabled connections anyway.
2304 Affected files silcd/server.c and silcd/packet_send.c.
2306 * Do not broadcast New Channel packets with List flag set
2307 in the packet to backup routers. The router must check
2308 for the correctness of the packets before sending them.
2309 It is possible that router will have enforce Channel ID
2310 change and this would cause desync in the backup router.
2311 Affected file silcd/packet_receive.c.
2313 * Remove SILC_PACKET_FLAG_LIST from the temp packets that
2314 are handled in list parsing. They are not list packets
2315 anymore. Affected file silcd/packet_receive.c.
2317 Thu Jun 27 11:27:07 CEST 2002 Pekka Riikonen <priikone@silcnet.org>
2319 * Stop waiting for backup router through the timeout, not
2320 directly after backup router has arrived. Affected file
2323 * Do not re-create channel keys and send them when removing
2324 clients in server shutdown. Affected files are
2325 silcd/server_internal.h and silcd/server_util.c.
2327 * Notify distribution to backup routers was missing from
2328 the silc_server_send_notify_dest function which caused
2329 desyncing problems with backup router. Affected file is
2330 silcd/packet_send.c.
2332 * The client's channel removing was working wrong on
2333 backup router. It assumed that it doesn't know global
2334 information but backup router does know. For this reason
2335 it could remove channel when it wasn't supposed to do that.
2336 Affected file silcd/server.c and silcd/server_util.c.
2338 Wed Jun 26 15:14:12 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
2340 * Stop for a couple seconds after badkup router has become
2341 primary router. Affected file silcd/server.c.
2343 * Added silc_server_remove_servers_by_server, which is used
2344 to remove servers originated from some other server. Also
2345 clients of those servers can be removed too. Affected file
2346 silcd/server_util.[ch].
2348 * When removing clients after a server has signed of remove
2349 also all servers behind that server (unless they are known
2350 to be available locally), and send SERVER_SIGNOFF for each
2351 of the server separately. Also the signed off clients are
2352 sent now separately per signed off server. The affected files
2353 are silcd/server.c and silcd/server_util.[ch].
2355 * All servers added with silc_idlist_add_server must always
2356 have both "router" and "connection" pointers set. Otherwise,
2357 bad server entries may be left around in the cache.
2358 Affected file silcd/command_reply.c.
2360 * Do not create the channel key in NEW_CHANNEL packet
2361 processing if the channel is empty. Affected file
2362 silcd/packet_receive.c.
2364 * Completed backup router support for standalone routers.
2365 Supports also servers in the cell that do not use the backup
2368 Wed Jun 26 10:38:11 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
2370 * Fixed a bug in silc_string_regexify which did not add '^'
2371 at the start of each string, and thus the matching was
2372 not explicit. For example ban list iikone@*!*@* would
2373 match also "priikone", which is wrong, it would have to be
2374 *iikone@*!*@* to match also "priikone". Affected
2375 file lib/silcutil/unix/silcunixutil.c.
2377 Tue Jun 25 18:47:39 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
2379 * Enable all local server connections before updating client
2380 caches when we've become backup router. Otherwise, signoff
2381 packets may not reach the clients. Affected files are
2382 silcd/server.c and silcd/server_util.[ch].
2384 * Fixed a bug in version string parsing which could crash
2385 the program with specially formatted version string.
2386 Bug reported and patch provided by Ville Räsänen. Affected
2387 file lib/silcutil/silcutil.c.
2389 * Handle the disconnection immediately when DISCONNECT
2390 packet is received in server. Affected file silcd/server.c.
2392 * Primary router now waits a short time (10 seconds) for
2393 backup router connection before accepting any other
2394 connection (except local). Affected file silcd/server.c,
2397 * Fixed a crash in client libary in NICK_CHANGE notify when
2398 NICK_CHANGE arrived for client entry we are resolving
2399 currently. Affected file lib/silcclient/client_notify.c.
2401 * Call the sconn->callback completion even if error had
2402 occurred. Start reconnecting always if connection to
2403 primary router fails during backup router protocol.
2404 Affected files silcd/server.c and server_backup.c.
2406 Mon Jun 24 17:47:52 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
2408 * Added functions silc_server_send_opers and
2409 silc_server_send_opers_notify to send packets stricly
2410 to operators. Added macro SILC_SERVER_SEND_OPERS macro
2411 to send variable argument notify to operators.
2412 Affected files silcd/packet_send.[ch] and silcd/server.h.
2414 * Removed UMODE rights checking with UMODE_CHANGE notify.
2415 Affected file silcd/packet_receive.c.
2417 * Server/router operator now receives notify when network
2418 switches to backup router and when it resumes the use of
2419 primary router. Affected file silcd/server.c and
2420 silcd/server_backup.c.
2422 * Fixed the updating of client information after backup
2423 resuming protocol is over; update all except local clients
2424 to the new primary router. The affected file is
2425 silcd/server_util.c.
2427 * Added support for closing active connections in rehash
2428 that were unconfigured by the user. Supports currently
2429 closing server and router connections. Affected file
2432 * Rewrote some SILC_LOG_DEBUG's in silcd/server_backup.c.
2434 Sun Jun 23 17:32:31 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
2436 * Don't do SILC_STRING_LANGUAGE encoding if the outbuffer
2437 is NULL since seems that on some platforms NULL is allowed
2438 and on some it's not. Fallback encoding is used instead.
2439 Affected file lib/silcutil/silcstrutil.c.
2441 * Fixed statistics updating for incoming server connection
2442 which could cause problems when re-connecting. Affected
2443 file silcd/server.c.
2445 * Preliminary backup router support for standalone router
2446 added. Affected files in silcd/.
2448 * Mark server connections in backup router disabled before
2449 and after backup protocol. Affected file is
2450 silcd/server_backup.c.
2452 * Added support for reconnecting to remote server connection
2453 even if the protocol fails, and if the configuration wants
2454 us to keep trying to connect anyway.
2456 Server connection is not allowed to backup router if
2457 backup router does not have connection to primary router yet.
2459 Affected file is silcd/server.c.
2461 Sat Jun 22 21:34:59 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
2463 * Added silc_client_udpate_server function to update changed
2464 server info. Affected file lib/silcclient/idlist.[ch].
2466 * Added check for server entries that are being resolved when
2467 notify is received. If being resolved, handle the received
2468 notify only after it's resolved so that all notifys are
2469 handled in same order as received from the server.
2471 Added similar resolver check to channel entries. Every
2472 notify that cause resolving of any information that affects
2473 channel entry marks the channel entry in waiting state.
2474 After whatever resolving is over the waiters are signalled
2475 and only then the notifys are handled in the same order
2476 as delivered from the server.
2478 Affected files are lib/silcclient/idlist.[ch], and
2481 * Fixed KILLED notify handling in normal server. Affected
2482 file silcd/packet_receive.c.
2484 * Added SILC_IDLIST_STATUS_LOCAL which indicates that entry
2485 is locally connected, or was locally connected (but may
2486 be detached and connection is not active). Added also
2487 SILC_IS_LOCAL for checking this status. Affected files
2488 silcd/idlist.h, silcd/packet_receive.c, silcd/server_util.c,
2489 silcd/server.c and silcd/server_internal.h.
2491 Sat Jun 22 17:06:58 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
2493 * Don't send or handle TOPIC_SET if topic is already set and
2494 is same as being set. Affected files silcd/command.c and
2495 silcd/packet_receive.c.
2497 * Fixed CMODE change rights checking to work correctly when
2498 removing modes by operator. Affected file is
2499 silcd/server_util.c.
2501 * Fixed some handling with New Channel packet in router and
2502 fixed some CMODE_CHANGE notify handling in server and router.
2503 Affected file is silcd/packet_receive.c.
2505 * Changed "disconnect" client operation to include the
2506 reason of the disconnection and optional disconnection
2507 message. Affected file lib/silcclient/silcclient.h.
2509 * Made the compilation of lib/contrib/ stuff conditional.
2510 Affected files configure.in.pre, lib/contrib/Makefile.am.
2512 Sat Jun 22 12:49:21 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
2514 * All CMODE_CHANGE and CUMODE_CHANGE notifys are now sent back
2515 to the sender of the notify too, to avoid situation where two
2516 notifys are in the network at the same time going to oppsite
2517 directions. Affected file silcd/packet_receice.c.
2519 Fri Jun 21 10:00:32 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
2521 * Delete the client from channel even if the cilent->id is
2522 NULL. It was possible that client was deleted without
2523 removing from channels (theoretically at least). Affected
2524 file silcd/server.c and silcd/server_util.c.
2526 * Free the client data too when resuming is not successful.
2527 Affected file silcd/packet_receive.c.
2529 * Merged some code from c0ffee's silc-plugin. Affected files
2530 irssi/src/silc/core/silc-channels.c and silc-expandos.c.
2532 * Added SILC_PRIMARY_ROUTE and SILC_BROADXAST macros to
2533 silcd/server_internal.h. SILC_PRIMARY_ROUTE Returns pointer
2534 to the primary router connection, the other one returns
2535 TRUE if packet must be broadcasted to network.
2537 * All notifys that are destined to primary router (to network)
2538 are now automatically sent to backup routers even if the
2539 router is standalone (and has backup router). Affected files
2542 * Added --without-irssi and --without-silcd configuration
2543 options for disabling the compilation of these applications.
2544 Affected file configure.in.pre and prepare.
2546 Thu Jun 20 13:48:15 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
2548 * Implemented SILC_STRING_BMP and SILC_STRING_UNIVERSAL for
2549 UTF-8 encoding and decoding. Added also new encodings
2550 SILC_STRING_BMP_LSB and SILC_STRING_UNIVERSAL_LSB.
2552 Added also SILC_STRING_LANGUAGE which is language and charset
2553 specific encoder and decoer for those platforms that support
2554 iconv(). It can convert the UTF-8 to and from the locale
2555 specific character set.
2557 Affected file lib/silcutil/silcstrutil.[ch].
2559 * Added macro SILC_NOT_IMPLEMENTED to lib/silcutil/silclog.h.
2561 * Added function silc_get_command_name to the file
2562 lib/silcutil/silcutil.[ch].
2564 * Improved the server debug output a bit. Affected files are
2567 Wed Jun 19 17:46:31 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
2569 * Save the channel passphrase when received succesful JOIN
2570 command reply from router, on normal server. Otherwise
2571 joinig +a channels from normal server is not possible.
2572 Affected file silcd/command.c.
2574 * Fixed a bug in TOPIC_SET notify handling. The notifier
2575 may be other than client too, like server or channel.
2576 It expected it to always be only client and ignored the
2577 notify. Affected file silcd/packet_recieve.c.
2579 * Removed some (unnecessary) debug printing from
2580 lib/silccore/silcid.c and lib/silccore/silcargument.c.
2582 * Do not force CMODE_CHANGE when server is announcing new
2585 Router announces stuff only after server reannounces channel
2586 after CHANNEL_CHANGE notify.
2588 These fixes optimizes the announcing procedure, and perhaps
2589 fixes some problems too. Affected file silcd/packet_receive.c.
2591 * Fixed SERVER_SIGNOFF sending to local clients. It was
2592 totally broken and sent the notify to all local clients,
2593 instead of only to those that was on same channel as the
2594 signing off clients. Affected file silcd/server_util.c.
2596 * Added -D option to server. It can be used to give debug
2597 level. The levels are from 0 - 99, and are predefined for
2598 smooth server debugging. (see silcd.c for the predefined
2599 levels). Affected file silcd/server.c.
2601 Wed Jun 19 16:01:51 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
2603 * Fixed a bug in Irssi SILC client to close the connection
2604 properly when disconnecting from server. Affected file
2605 irssi/src/silc/core/client_ops.c.
2607 Tue Jun 18 17:14:52 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
2609 * When authenticating as founder during JOIN command, check
2610 that the one authenticating becomes the only founder on the
2611 channel. Affected file silcd/command.c.
2613 * Better checking for founder mode setting when CUMODE_CHANGE
2614 notify is received. Affected file silcd/packet_receive.c.
2616 * Close all connections when shutting down the server by sending
2617 DISCONNECT packet. Close all listeners too when shutting
2618 down the server. Affected file silcd/server.c.
2620 * Handle DISCONNECT packet correctly in client library by
2621 calling the "disconnect" client operation. Affected file
2622 lib/silcclient/client.c.
2624 * Handle local errors correctly during resuming. Affected
2625 file lib/silcclient/client.c.
2627 Tue Jun 18 10:26:27 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
2629 * The log file is not dupped internally anymore in
2630 lib/silcutil/silclog.c. Fixed memory leaks too.
2632 * The scheduler now dispatches all pending timeout tasks
2633 when it is uninitialized with silc_schedule_uninit.
2634 Affected file lib/silcutil/silcschedule.c.
2636 Mon Jun 17 21:30:55 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
2638 * Added --enable-stack-trace option to configure. Added
2639 memory allocation stack trace support. Added files
2640 lib/silcutil/stacktrace.[ch]. Affected files are
2641 lib/silcutil/silcmemory.[ch].
2643 * Fixed memory leaks from libraries and server. Affected
2644 files around the tree.
2646 * Reverted back a fix made to CUMODE which broke it.
2647 Affected file silcd/command.c.
2649 Sun Jun 16 11:49:45 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
2651 * Added SILC_MESSAGE_FLAG_UTF8 to the protocol specs and the
2652 core library, and implemented it. All textual messages SHOULD
2653 use this flag and the message MUST be UTF-8 encoded.
2654 All text messages sent by Irssi SILC client are now UTF-8
2655 encoded (regardless whether the terminal supports UTF-8 or not).
2656 Affected files are lib/silccore/silcchannel.h,
2657 irssi/src/silc/core/silc-servers.c, silc-channels.c and
2660 Sat Jun 15 18:23:39 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
2662 * Added lots of new statistics updating that was missing from
2663 the server and router code. Affected files in silcd/.
2665 * Sending SIGUSR1 signal to server now dumps the current
2666 server statistics into /tmp directory. Affected file is
2669 * ROBODoc documented the lib/silccrypt/silchash.h. Improved
2670 the SILC Hash Interface also. Added new functions
2671 silc_hash_get_name, silc_hash_init, silc_hash_update and
2672 silc_hash_final. Affected file lib/silccrypt/silchash.c.
2674 Sat Jun 15 12:09:14 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
2676 * Added some better info printing for client during connecting.
2677 Affected file silcd/server_util.c.
2679 * Implemented the SILC_CHANNEL_UMODE_QUIET mode that can be used
2680 to silence a user on a channel. Affected files are
2681 lib/silcclient/client_channel.c, irssi/src/silc/core/client_ops.c,
2682 irssi/src/fe-common/silc/module-formats.[ch], silcd/command.c
2683 and silcd/packet_receive.c.
2685 * Fixed a fatal bug in handling of malformed command payload.
2686 Affected file silcd/command.c.
2688 * Fixed a double free when announcing channel users to router.
2689 Affected file silcd/server.c.
2691 * After successful authentication to channel founder mode, check
2692 that there isn't anyone else with founder mode on the channel.
2693 The one that authenticated will become founder and anyone
2694 else is demoted. Affected file silcd/command.c.
2696 * Added error printing of any error that has occurred during
2697 any command in client library. Affected file is
2698 irssi/src/silc/core/client_ops.c.
2700 * Removed some error printing from the client library and left
2701 it for the application to worry (from the error status it
2702 receives in 'command' client operation. Affected file is
2703 lib/silcclient/command.c.
2705 Fri Jun 14 22:59:02 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
2707 * Added new status types KEY_AGREEMENT_ALREADY_STARTED and
2708 KEY_AGREEMENT_SELF_DENIED to lib/silcclient/silcclient.h.
2709 Starting key agreement with itself is denied. Affected file
2710 is lib/silcclient/client_keyagr.c.
2712 * Fixed some error checkings from the SFTP library which caused
2713 misbehaviour. Affected files are lib/silcsftp/sftp_client.c
2714 and lib/silcsftp/sftp_util.c.
2716 * Added new "debug" and "debug_string" settings to Irssi SILC
2717 client which can be used to print runtime debugging on the
2718 Irssi's screen. Available when compiled with --enable-debug
2719 option. Affected file irssi/src/silc/core/silc-core.c.
2721 Tue Jun 11 16:36:02 CEST 2002 Johnny Mnemonic <johnny@themnemonic.org>
2723 * Fixed a missing variadic parameter in a function call that
2724 caused server crash when a non-allowed connection arrived.
2725 Reported by Richard Becker. Affected file silcd/server.c.
2727 Mon Jun 10 16:29:42 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
2729 * Added WATCH list sending to backup routers from router.
2730 The WATCH command is sent by the router to the backup
2731 router. Affected file silcd/command.c.
2733 * Mark the backup_router flag for RouterConnection entry
2734 if the backup router stuff is defined in the config file.
2735 Affected file silcd/serverconfig.c.
2737 * Fixed some backup data sending around the code to work better
2738 if the router is standalone router. Not all places were fixed.
2739 Affected file silcd/packet_receive.c, silcd/packet_send.c,
2742 * Fixed the router connecting when connecting to multiple
2743 routers. It ignored every other router except the first
2744 one. Affected file silcd/server.c.
2746 Mon Jun 10 09:28:21 CEST 2002 Pekka Riikonen <priikone@silcnet.org>
2748 * Made the private key generation after expiration optional.
2749 If not created after expiration the old key will re-expire
2750 at a later time (and thus key pair is not necessary to
2751 change). Affected file irssi/src/silc/core/clientutil.c.
2753 Sun Jun 9 18:58:25 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
2755 * The length arguments in bind() and connect() were wrong
2756 and fixed now to used SIZEOF_SOCKADDR in the
2757 lib/silcutil/unix/silcunixutil.c.
2759 Tue Jun 4 18:36:05 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
2761 * Fixed detach timeout handling to use Client ID and not
2762 the actual client entry which may be freed in the callback.
2763 Affected file silcd/command.c.
2765 Thu May 30 15:53:45 CEST 2002 Pekka Riikonen <priikone@silcnet.org>
2767 * Merged c0ffee's multiple interface support patch.
2768 Affected files in silcd/.
2770 Wed May 29 18:08:15 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
2772 * Cleanup keys properly. Affected file is
2773 irssi/src/silc/core/clientutil.c.
2775 Tue May 28 20:11:41 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
2777 * Display the user mode on the status bar. Affected file
2778 irssi/src/silc/core/silc-expandos.c.
2780 Tue May 28 13:56:26 CEST 2002 Pekka Riikonen <priikone@silcnet.org>
2782 * If private message key is not set, but the flag is set in
2783 the packet, ignore the packet since it cannot be decrypted.
2784 Affected file lib/silcclient/client_prvmsg.c.
2786 Thu May 23 12:00:14 CEST 2002 Pekka Riikonen <priikone@silcnet.org>
2788 * When resuming client, remove the old client entry from
2789 the watcher list too. Affected file silcd/packet_receive.c.
2791 * Do not allow normal server to force founder mode away
2792 from router if the founder mode is already set. Affected
2793 file silcd/packet_receive.c.
2795 * Remove the client entry with watch notify types with short
2796 timeout, and not directly, so that other notifys can be
2797 retrieved too. Affected file lib/silcclient/client_notify.c.
2799 * Display notification about data messages that cannot be
2800 displayed. Affected files irssi/src/silc/core/client_ops.c,
2801 irssi/src/fe-common/silc/module-formats.[ch].
2803 Sun May 19 18:59:00 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
2805 * Fixed the CHANNEL_CHANGE notify handling in client libary
2806 to not use freed memory. Affected file is
2807 lib/silcclient/client_notify.c.
2809 * Fixed CUMODE_CHANGE notify handling in server. Affected
2810 file silcd/packet_receive.c.
2812 * Fixed USERS command to support empty channels. Affected
2813 file silcd/command.c.
2815 Sat May 18 11:35:19 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
2817 * Allow multiple identical pending commands to be registered
2818 in client library. Affected file is lib/silcclient/command.c.
2820 * Call the completion for resolving client information only
2821 after all resolvers has finished. This fixes a crash in
2822 the client. Added support for checking when the resolvers
2823 are finished. Affected file is lib/silcclient/idlist.c.
2825 * Wait by default 3 seconds before reconnecting to the server
2826 after being disconnected. Makes the /detach command a bit
2829 Fri May 17 17:23:45 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
2831 * Check the watcher list before sending signoff notifys
2832 when closing client connection. Affected file is
2835 * Added better CMODE command rights checking. Affected file
2836 silcd/server_util.c.
2838 Fri May 17 08:33:41 CEST 2002 Pekka Riikonen <priikone@silcnet.org>
2840 * Fixed watcher list checking during server signoff. It
2841 crashed the server. Affected file silcd/server_util.c.
2843 * The JOIN command reply returns now the founder's public
2844 key. Affected file is silcd/command.c.
2846 * Announce the channel mode, and the mode properties with
2847 CMODE_CHANGE notify. Affected file silcd/server.c.
2849 * Mark new channels by default disabled, untill at least
2850 one user joins the channel. Affected file is
2851 silcd/packet_receive.c.
2853 Thu May 16 13:05:13 CEST 2002 Pekka Riikonen <priikone@silcnet.org>
2855 * The nickname argument to watch notify can be optional.
2856 Fixes a crash in server. Affected file silcd/packet_send.c.
2858 * Remove the client entry from cache if the WATCH notify type
2859 is KILLED, SERVER_SIGNOFF or SIGNOFF. Affected file is
2860 lib/silcclient/client_notify.c.
2862 * Check the watcher list before and after changing nickname
2863 when the NICK_CHANGE notify is received. Affected file is
2866 * Fixed a crash in OPER and SILCOPER command sending. Empty
2867 passphrase caused the crash. Affected file is
2868 lib/silcclient/command.c.
2870 Wed May 15 19:01:42 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
2872 * Merged with Irssi CVS for Irssi SILC client.
2874 Tue May 14 19:37:48 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
2876 * Completed the protocol specifications.
2878 Tue May 7 20:41:58 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
2880 * Merged with Irssi CVS for Irssi SILC client.
2882 Tue May 7 11:07:16 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
2884 * Added the founder's public key delivery to the
2885 CUMODE_CHANGE notify type as well. Updated the protocol
2886 specs and the code. Affected files are silcd/packet_send.[ch],
2887 silcd/packet_receive.c and silcd/command.c.
2889 Mon May 6 19:46:12 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
2891 * Added silc_pkcs_public_key_copy function into the
2892 lib/silccrypt/silcpkcs.[ch].
2894 * Remove the `iv' from the SilcChannelEntry since we can
2895 live without it. Affected files are silcd/idlist.h and
2896 silcd/packet_receive.c.
2898 * Added support for sending the founder's public key in
2899 the CMODE_CHANGE notify packet in the server. Affected
2900 files are silcd/packet_send.[ch], silcd/packet_receive.c,
2901 silcd/command.c and silcd/server.c.
2903 * Changed the FOUNDER_AUTH authentication to use only
2904 public key authentication as defined by new protocol
2905 specs. Passphrase authentication with that mode cannot
2906 be used anymore. It is now possible to reclaim founder
2907 mode from any server in the network. Affected files are
2908 silcd/command.c, silcd/idlist.h and silcd/command_reply.c.
2910 * Added permanent channels support by making the channel
2911 permanent when FOUNDER_AUTH mode is set on the channel.
2912 The channel will not be destroyed even if channel is empty
2913 when that mode is set. Protocol TODO #17. Affected
2914 files are silcd/server.[ch], server_util.[ch],
2915 silcd/command.c, silcd/packet_receive.c and
2916 lib/silcclient/command.c.
2918 Fri May 3 18:36:51 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
2920 * Added reference counter to the command reply context in
2921 the client library. Affected files are
2922 lib/silcclient/command_reply.[ch].
2924 Fri May 3 11:37:10 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
2926 * Fixed rekey protocol with PFS in the client library.
2927 Affected file is lib/silcclient/protocol.c.
2929 * Added support for list of errors in client library
2930 command reply handling. Affected file is
2931 lib/silcclient/command_reply.c.
2933 * Defined that the WHOIS and IDENTIFY commands can send
2934 list of errors. Updated the protocol specs. Protocol
2937 * Added support for sending list of errors to WHOIS and
2938 IDENTIFY commands in server. Added support for receiving
2939 list of errors in server. Affected files are
2940 silcd/command.c and silcd/command_reply.c.
2942 * Fixed client info resolving on LEAVE command in client
2943 library to not crash. Affected file is
2944 lib/silcclient/client_notify.c.
2946 Thu May 2 08:45:11 CEST 2002 Pekka Riikonen <priikone@silcnet.org>
2948 * Defined that the NICK command replies with thew changed
2949 nickname too, to make the nickname changing simpler at
2950 the client's end. Updated protocol specs and the code
2951 in client and server. Affected files are
2952 silcd/command.c, lib/silcclient/command_reply.c and
2953 lib/silcclient/command.c.
2955 Mon Apr 29 20:10:42 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
2957 * Added `Compressed' packet flag to indicate that the packet
2958 payload is compressed by the sender. Updated the protocol
2959 specs and the core library. The compression still is not
2960 implemented in the sources. Affected file is
2961 lib/silccore/silcpacket.h.
2963 Mon Apr 29 09:48:12 CEST 2002 Pekka Riikonen <priikone@silcnet.org>
2965 * Remove pending command callbacks also if the connection
2966 to the server is destroyed. Affected file is
2967 lib/silcclient/client.c.
2969 Sat Apr 27 19:52:32 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
2971 * Added new QUIET channel user mode that can be used to
2972 quiet a user in a channel. Updated the protocol specs but
2973 it wasn't implemented yet. Protocol TODO #27. Affected
2974 file is lib/silccore/silcmode.h.
2976 Mon Apr 22 09:09:44 CEST 2002 Pekka Riikonen <priikone@silcnet.org>
2978 * Added BLOCK_INVITE user mode to be able to block incoming
2979 invite notifications. Protoocol TODO #26. Affected files
2980 are lib/silccore/silcmode.h, lib/silcclient/command.c and
2983 * SILC Publickey fields MUST be UTF-8 encoded now. Updated
2984 the protocol specs and the code. Affected file is
2985 lib/silccrypt/silcpkcs.c.
2987 Sun Apr 21 19:44:38 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
2989 * Disconnect Payload includes now the status type. Updated
2990 the protocol specs and the code. Protocol TODO #25.
2991 Affected files are silcd/server.c, lib/silcclient/client.c.
2993 * Added NOT_AUTHENTICATED, BAD_SERVER_ID, INCOMPLETE_INFORMATION,
2994 KEY_EXCHANGE_FAILED and BAD_VERSION error status types.
2995 Moved the silc_client_command_status_messages table to the
2996 lib/silcutil/silcutil.c and added new funtion
2997 silc_get_status_message, which deprecates function
2998 silc_client_status_message. Affected files are
2999 lib/silccore/silcstatus.h, lib/silcclient/command_reply.[ch],
3000 lib/silcutil/silcutil.[ch].
3002 Fri Apr 19 17:35:15 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
3004 * Defined that the nickname hash in Client ID MUST be from
3005 lowercase nickname. This effectively changes nicknames in
3006 SILC to case-insensitive. Updated the protocol specs and
3007 the code. Affected files are lib/silcutil/silcutil.[ch],
3008 silcd/serverid.c, and silcd/idlist.c.
3010 * Added new channel user modes BLOCK_MESSAGES_USERS and
3011 BLOCK_MESSAGES_ROBOTS. Updated the protocol specs and the
3012 code. Affected files are lib/silccore/silcmode.h,
3013 lib/silcclient/command.c, and silcd/packet_send.c.
3015 * Added new error status ERR_RESOURCE_LIMIT. Updated protocol
3016 specs and code. Affected file lib/silccore/silcstatus.h.
3018 * Added support for watch list. It is possible to add nicknames
3019 to be watched, and when they come to network, leave network
3020 or user mode changes the watcher will be notified of this
3021 change. Added SILC_COMMAND_WATCH command, added new
3022 notify type SILC_NOTIFY_TYPE_WATCH to deliver the watch
3023 notifications. Updated the protocol specs and implemented
3024 this to library, client and server. Protocol TODO #21.
3025 Affected files are lib/silccore/silccomand.h,
3026 lib/silccore/silcnotify.h, lib/silcclient/command[_reply].[ch],
3027 silcd/command[_reply].[ch], lib/silcclient/client_notify.c,
3028 silcd/packet_send.[ch], silcd/packet_receive.c, and
3029 irssi/src/silc/core/client_ops.c.
3031 * Added user mode SILC_UMODE_REJECT_WATCHING to reject
3032 somebody watching you. Updated the protocol specs and the
3033 code. Affected files are lib/silccore/silcmode.h, and
3034 lib/silcclient/command.c.
3036 Fri Apr 19 09:02:20 CEST 2002 Pekka Riikonen <priikone@silcnet.org>
3038 * Added service support to SILC protocol. Added new command
3039 SILC_COMMAND_SERVICE. Updated the protocol specs and the
3040 core library. Services are not implemented in server or
3041 client for now. Protocol TODO #20. Affected files are
3042 lib/silccore/silcstatus.h, lib/silccore/silccommand.h.
3044 * Added SilcStatus argument to `command' client operation
3045 to return the error status when command sending fails
3046 locally. Changed all command in client library to return
3047 correct command status. Affected files are
3048 lib/silcclient/command.c, lib/silcclient/silcclient.h and
3049 irssi/src/silc/core/client_ops.c.
3051 Thu Apr 18 14:09:51 CEST 2002 Pekka Riikonen <priikone@silcnet.org>
3053 * Added silc_mime_parse function to parse MIME headers.
3054 Affected files are lib/silcutil/silcstruti.[ch].
3056 * Added MIME header parsing in Irssi SILC Client. It displays
3057 all textual MIME objects, others it ignores. Affected file
3058 is irssi/src/silc/core/clien_ops.c.
3060 Wed Apr 17 22:07:59 CEST 2002 Johnny Mnemonic <johnny@themnemonic.org>
3062 * Fixed a bug in the pid writing function, which couldn't be
3063 written in a root-owned directory.
3065 Tue Apr 16 09:34:40 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
3067 * Defined that channel message to unknown Channel ID must
3068 cause SILC_NOTIFY_TYPE_ERROR notify message to the sender.
3069 Updated the protocol specs and the code in server. The
3070 affected file is silcd/packet_receive.c.
3072 Mon Apr 15 19:57:57 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
3074 * Added new notify type SILC_NOTIFY_TYPE_ERROR and specified
3075 that it is used to send error notifys if error occurs during
3076 some SILC packet processing, except commands. The error
3077 types are same as for command reply types. Defined that
3078 if private message is sent to unknown Client ID the error
3079 is sent in SILC_NOTIFY_TYPE_ERROR instead of command reply.
3080 Updated the protocol specs and code. Affected files are
3081 lib/silccore/silcnotify.h, added lib/silccore/silcstatus.h,
3082 lib/silcclient/client_notify.c, silcd/packet_receive.c,
3083 and irssi/src/silc/core/client_ops.c. Renamed the
3084 SilcCommandStatus to SilcStatus.
3086 * Defined the use of extra WHOIS attributes in WHOIS command.
3087 The <Requested Attributes> (defined in a separate document)
3088 can be used to request additional information about user
3089 not returned by standard WHOIS command. Defined that server
3090 can send WHOIS command directly to client. Client provides
3091 the requested attributes to the server. Updated the protocol
3092 specs. Protocol TODO #4. Implementation is not done yet
3093 (Protocol TODO #24).
3095 * Renamed function silc_client_command_status_message to
3096 silc_client_status_message. Affected files are
3097 lib/silcclient/command_reply.[ch].
3099 Sun Apr 14 21:13:42 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
3101 * Changed the WHOIS, IDENTIFY and WHOWAS count arguments to
3102 32 bit integers. Updated the protcol specs and the code.
3103 Affected files are silcd/command.c and
3104 lib/silcclient/command.c.
3106 Sun Apr 14 19:49:02 CEST 2002 Johnny Mnemonic <johnny@themnemonic.org>
3108 * Fixed a bug in library where sending a bogus authentication
3109 payload would lead to a crash. Affected file is
3110 lib/silccore/silcauth.c.
3112 Sat Apr 13 13:09:24 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
3114 * Added detach_disabled and detach_timeout server config
3115 options to the server. Affected files silcd/serverconfig.[ch],
3116 silcd/command.c and silcd/packet_receive.c.
3118 Fri Apr 12 20:09:08 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
3120 * Added resolve_cmd_ident field to the SilcClientEntry structure
3121 too so that if the entry is for example being resolved so
3122 another command may attach to the same pending command reply
3123 without requiring to resolve the same entry again. Added
3124 support for adding multiple pending commands for one
3125 command idenfier. Affected files lib/silcclient/command.[ch],
3126 lib/silcclient/command_reply.[ch], lib/silcclient/idlist.h.
3128 Fri Apr 12 10:17:51 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
3130 * Defined that server receives WHOIS command reply for private
3131 and secret channels too. Updated protocol specs and the
3132 code in server. Affected file silcd/command.c.
3134 * Defined <channel user mode list> argument to WHOIS command
3135 reply for returning user modes on the channels. The
3136 channel list now doesn't include the user mode anymore but the
3137 actual channel mode. Updated protocol specs and the code in
3138 client and server. Affected files are silcd/command_reply.c,
3139 silcd/command.c, silcd/server.c, irssi/src/silc/core/client_ops.c,
3140 and lib/silcclient/command_reply.c.
3142 * Save the channels list in WHOIS command reply in normal server
3143 so that WHOIS always shows joined channels also in normal
3144 server and not just on router. Affected file is
3145 silcd/command_reply.c.
3147 Thu Apr 11 22:29:33 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
3149 * Defined that server receives USERS command reply for private
3150 and secret channels too. Updated protocol specs and the
3151 code in server. Affected file silcd/command.c.
3153 Thu Apr 11 16:32:08 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
3155 * Changed the UMODE's mode mask argument to be optional. If
3156 not provided then the command merely returns the current mode
3157 mask to the client. Updated protocol specs and the server.
3158 Affected file is silcd/command.c.
3160 * Added SILC session detachment/resuming support. It is possible
3161 to detach by closing the network connection and then re-connect
3162 and resume to the old client session. Added DETACHED user
3163 mode that server will set for detached client. Added new
3164 packet RESUME_CLIENT which is used to perform the resuming
3165 process. Added DETACH command. Updated the protocol specs,
3166 core library, client and server. Protocol TODO #22. Very
3167 many affected files around the tree.
3169 Wed Apr 10 16:32:01 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
3171 * Changed the CMODE's mode mask argument to be optional. If
3172 not provided then the command merely returns the current mode
3173 mask to the client. Updated protocol specs and the server.
3174 Affected file is silcd/command.c.
3176 * Changed the Killer's Client ID in KILLED notify to be just
3177 any ID payload since router server is allowed to kill as well.
3178 Updated protocol specs, client libary and server. Affected
3179 files are lib/silcclient/client_notify.c, silcd/packet_receive.c,
3180 and irssi/src/silc/core/client_ops.c.
3182 Tue Apr 9 17:15:42 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
3184 * Added new user modes ANONYMOUS for special anonymous servers
3185 that may set the mode for client, and BLOCK_PRIVMSG which
3186 client may set to block incoming private messages unless the
3187 Private Message Key flag is set (using private keys to protect
3188 private messages). Updated protocol specs and code in client
3189 and server and core library. Protocol TODO #23. Affected
3190 files are lib/silccore/silcmode.h, silcd/server.[ch],
3191 irssi/src/silc/core/client_ops.c, silcd/packet_receive.c,
3192 irssi/docs/help/in/umode.in, lib/silcclient/command.c.
3194 * Added new channel user mode BLOCK_MESSAGES which the client
3195 may set to itself to tell server not send channel messages.
3196 Other packets such as channel key packets are still sent.
3197 Protocol TODO #23. Updated the protocol specs, client and
3198 server. Affected files are lib/silccore/silcmode.h,
3199 irssi/docs/help/in/cumode.in, lib/silcclient/command.c,
3200 lib/silcutil/silcutil.c, silcd/command.c, and
3201 silcd/packet_send.c.
3203 Mon Apr 8 23:57:32 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
3205 * Redefined the Status Payload to include now two 8 bit fields,
3206 instead of one 16 bit field. This now makes it possible to
3207 send list of errors. Updated the protocol specs and the code
3208 in core library, client library and server. Protocol TODO #1.
3209 Affected files are lib/silccore/silccommand.[ch],
3210 lib/silcclient/command_reply.[ch], silcd/command.c,
3211 silcd/command_reply.c and silcd/packet_receive.[ch].
3213 Mon Apr 8 19:57:40 CEST 2002 Johnny Mnemonic <johnny@themnemonic.org>
3215 * Added config parse status SILC_CONFIG_EPRINTLINE, this status
3216 must be handled by the application and should tell the application
3217 that an error message was already printed, and it should print the
3218 config coords (line, filename, ...). Affected files are
3219 silcd/serverconfig.c, lib/silcutil/silcconfig.[ch].
3221 * Added local macro SILC_SERVER_CONFIG_ALLOCTMP to make the
3222 server config parsing code more readable.
3224 Fixed a bug in the fetch_logging() config callback.
3226 Affected files is silcd/serverconfig.c.
3228 * Drop root privileges when started in foreground. Don't drop them
3229 if debugging also. Affected file is silcd/silcd.c.
3231 Mon Apr 8 17:00:41 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
3233 * Added more IM-like features by introducing new user modes
3234 for setting various presence information. Added new modes:
3235 INDISPOSED, BUSY, PAGE, HYPER and ROBOT. Updated protocol
3236 specs and code. Protocol TODO #19. Affected files are
3237 lib/silccore/silcmode.h, irssi/src/silc/core/client_ops.c,
3238 irssi/docs/help/in/umode.in and lib/silcclient/command.c.
3240 Sun Apr 7 17:07:59 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
3242 * Added STATS command to the protocol after all, to return
3243 various statistical information about the network. It can
3244 be used by clients to retrieve statistical information, and
3245 servers may use it to to fetch cell and network wide
3246 statistics from router. Updated the protocol specs and
3247 implemented it to the server. Protocol TODO #16.
3248 Affected files are lib/silccore/silccommand, silcd/command.[ch],
3249 silcd/command_reply.[ch].
3251 Sat Apr 6 17:08:58 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
3253 * The LIST command reply in client libary now adds new channel
3254 entry if the returned channel doesn't exist yet in cache,
3255 and returns the channel entry to the application in the
3256 command_reply client operation. Affected file is
3257 lib/silcclient/command_reply.c.
3259 * Changed the channel message payload's MAC generation to
3260 include the IV in the MAC as well. This way all relevant
3261 parts of the channel message payload are authenticated also
3262 with the channel message MAC (and not only by packet MAC).
3263 Causes incompatibility with 1.0 protocol. Protocol TODO #7.
3264 Affected file is lib/silccore/silcchannel.c.
3266 * Fixed the SKE to save the remote version, since the
3267 silc_ske_parse_version mistakenly checked wrong version,
3268 after it replaced the start payload. Affected files are
3269 lib/silcske/silcske.[ch].
3271 Fri Apr 5 16:03:03 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
3273 * Splitted lib/silcutil/silcutil.h into silcstrutil.h for
3274 string utility functions. Added there also new functions
3275 silc_utf8_[encode/decode/valid] for UTF-8 string encoding.
3276 Affected files lib/silcutil/silcstrutil.[ch].
3278 * Renamed silc_*_pem functions to silc_pem_* functions. Affected
3279 files are lib/silcutil/silcstrutil.[ch].
3281 * Defined that the security property fields in SKE SHOULD be
3282 UTF-8 encoded, defined that version string MUST be US-ASCII
3283 encoded, defined that passphrases sent in connection
3284 authentication protocol MUST be UTF-8 encoded. Implemented
3285 these to the client and server. Defined also that other
3286 passphrases sent in the protocol MUST be UTF-8 encoded.
3287 Affected files are lib/silcske/silcske.c,
3288 lib/silcclient/protocol.c, silcd/protocol.c,
3289 silcd/serverconfig.c, and lib/silccore/silcauth.c.
3291 * Changed the silc_client_close_connection interface to not
3292 need the SilcSocketConnection which should not be visible
3293 to application. Affected files are lib/silcclient/client.c
3294 and lib/silcclient/silcclient.h.
3296 * Rewrote the text for Private Message Key Payload in the
3297 protocol specification. Protocol TODO #11.
3299 Wed Apr 3 16:24:51 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
3301 * Upgraded the protocol version to 1.1, updated protocol specs
3304 * Added the nickname as new argument to NICK_CHANGE notify and
3305 added it to protocol specs and implemented it to client and
3306 server. Protocol TODO #3. Affected files are silcd/idlist.[ch],
3307 silcd/command.c, silcd/packet_receive.c, packet_send.[ch], and
3308 lib/silcclient/client_notify.c.
3310 * Added the killer's client ID to the KILLED notify and added
3311 it to protocol specs and implemented it to client and server.
3312 Protocol TODO #13. Affected files are silcd/command.c,
3313 silcd/packet_receive.c, packet_send.[ch],
3314 lib/silcclient/client_notify.c, irssi/src/silc/core/client_ops.c.
3315 The killer's client entry is now returned to application in
3316 the `notify' client operation.
3318 * Fixed the Max Argument fields that had too large value set
3319 in the protocol specs. Protocol TODO #14.
3321 * Added the LEAVE command reply to return the ID of parted
3322 channel. Updated protocol specs and implemented it to the
3323 client and server. Protocol TODO #15. Affected files are
3324 silcd/command.c, lib/silcclient/command_reply.c. The channel
3325 entry is now returned to application in the `command_reply'
3328 * Rewrote the version SKE version checking in client libary
3329 and in server to use the silc_parse_version_string. Affected
3330 files are lib/silcclient/protocol.c, silcd/protocol.c.
3332 * Added SILC_STATUS_ERR_NO_CHANNEL_FOPRIV error status to few
3333 commands that was missing it, and updated protocol specs and
3334 the server implementation. Protocol TODO #10. The affected
3335 file is silcd/command.c.
3337 * Defined new message flags SILC_MESSAGE_FLAG_REPLY to be
3338 generic reply to a generic request (REQUEST flag), and
3339 SILC_MESSAGE_FLAG_DATA to send any kind of data in a generic
3340 way. A draft-riikonen-silc-flags-payloads-00.txt is written
3341 to define the payload for DATA flag. Added the flags to
3342 the implementation. Protocol TODO #9. Affected file is
3343 lib/silccore/silcchannel.h.
3345 Changed the client library to return the message length
3346 to application as well in the channel_message and private_message
3347 client operations. Affected files are
3348 lib/silcclient/client_prvmsg, lib/silcclient/client_channel.c,
3349 lib/silcclient/silcclient.h, irssi/src/silc/core/client_ops.c,
3350 and lib/silcclient/client_ops_example.c.
3352 * Added two new channel modes: SILC_CMODE_SILENCE_USERS
3353 and SILC_CMODE_SILENCE_OPERS which can be used to moderate
3354 the channel. Updated protocol specs and impelemented this
3355 to client and server. Protocol TODO #6. Affected files are
3356 silcd/packet_receive.c, server_util.c, lib/silcclient/command.c,
3357 lib/silcclient/client_channel.c, lib/silccore/silcmode.h.
3359 Added new options m and M to CMODE command in Irssi SILC
3360 client to set these modes.
3362 * Deprecated all administrative commands from SILC protocol
3363 since they are highly implementation specific commands.
3364 Updated protocol specs. Moved the old commands in
3365 implementations to private range of command types. Affected
3366 files are silcd/command.c, lib/silcclient/command.c and
3367 lib/silcclient/command_reply.c. Protocol TODO #8.
3369 * Fixed a bug in server where sending unknown command crashes
3370 the server. Affected file silcd/command.c.
3372 Wed Apr 3 09:57:47 CEST 2002 Pekka Riikonen <priikone@silcnet.org>
3374 * Added SILC_PROTOCOLVERSION macro to check protocol version
3375 of a socket connection. The affected file is
3376 lib/silcutil/silcsockconn.h.
3378 * Added better error logging in rekey protocol. Affected file
3381 * Do not check public key types in SKE during rekey. Affected
3382 file lib/silcske/payload.c.
3384 * Fixed the rekey protocol with PFS, which was totally broken.
3385 Affected file silcd/protocol.c.
3387 Tue Apr 2 14:55:06 CEST 2002 Pekka Riikonen <priikone@silcnet.org>
3389 * Some client implementations quit network by doing first LEAVE
3390 and then immediately SIGNOFF (like Bombyx). We now do check
3391 after a short time after LEAVE notify and check whether the
3392 client is still valid after LEAVE, and if not we remove it from
3393 cache. Affected file is lib/silcclient/client_notify.c.
3395 Tue Apr 2 13:39:04 CEST 2002 Johnny Mnemonic <johnny@themnemonic.org>
3397 * Merged version 1.1.4 of zlib. Even if it not currently in use,
3398 it's good not to have security holes here.
3400 * Fixed a negative refcount situtuation for the config context.
3401 Affected file is silcd/serverconfig.c.
3403 Mon Apr 1 20:15:10 CEST 2002 Johnny Mnemonic <johnny@themnemonic.org>
3405 * ROBOdoc documented lib/silcutil/silcutil.h.
3407 Sat Mar 30 21:06:45 EET 2002 Pekka Riikonen <priikone@silcnet.org>
3409 * Optimized even more the SilcPacketContext structure. Now
3410 totally saved 16 bytes of memory per context after optimization.
3411 Affected files are lib/silccore/silcpacket.[ch].
3413 * Made strict checks for valid SILC IDs. Affected file is
3414 lib/silccore/silcid.c.
3416 Sat Mar 30 18:15:55 EET 2002 Pekka Riikonen <priikone@silcnet.org>
3418 * Changed the object argument for silc_cipher_register,
3419 silc_hash_register, silc_hmac_register and silc_pkcs_register
3420 to const. Affected files are lib/silccrypt/silccipher.[ch],
3421 silchash.[ch], silchmac.[ch] and silcpkcs.[ch].
3423 * Changed the silc_get_username and silc_get_real_name to
3424 never fail. Affected file lib/silcutil/unix/silcunixutil.c.
3426 * Fixed the Irssi SILC Client to use the silc_get_username and
3427 silc_get_real_name insted of glib routines since the glib
3428 routines only corrupt stack. Fixes the Irssi SILC to work in
3429 Cygwin. Affected file irssi/src/silc/core/silc-core.c.
3431 * Fixed the Irssi to not use g_get_home_dir since it crashes
3432 or returns garbage on cygwin and corrupts stack. Added function
3433 get_home_dir to Irssi routines. Affected files are
3434 irssi/src/core/misc.[ch] and irssi/src/core/core.c.
3436 Fri Mar 29 21:55:41 EET 2002 Pekka Riikonen <priikone@silcnet.org>
3438 * Made some structure optimizations. SFTP memory FS MemFSEntry
3439 entry structure. Optimized SilcTask structure. Optimized
3440 SilcPacketContext structure.
3442 Affected files lib/silcsftp/sftp_fs_memory.c,
3443 lib/silcutil/silcschedule.c, lib/silccore/silcpacket.h.
3445 Fri Mar 29 10:41:07 EET 2002 Pekka Riikonen <priikone@silcnet.org>
3447 * And yet again reverted back the config thing since Johnny
3448 screwed it up. Affected file silcd/serverconfig.[ch], server.c,
3451 * Fixed memory leaks from config object. Affected files are
3452 silcd/serverconfig.[ch].
3454 * Added support for adding new connections to the server in rehash.
3455 After rehash they take effect.
3457 Added support for changing the maximum allowed connections in
3458 rehash. The number can grow but going smaller is not supported.
3460 Added function silc_server_num_sockets_by_remote to the
3461 silcd/server_util.[ch].
3463 Affected files are silcd/server.c, and silcd/serverconfig.[ch].
3465 Fri Mar 29 03:26:12 CET 2002 Johnny Mnemonic <johnny@themnemonic.org>
3467 * Added preliminary checking during config parsing for a valid
3468 public/private key and removed further checks in the code.
3469 Affected files are silcd/serverconfig.[ch], server.c.
3471 * Moved functions silc_server_drop() and silc_server_daemonise()
3472 from server.c to silcd.c since they are stricly related to
3473 the application activity.
3475 * Reverted a small part of the automatic ref/unref since
3476 it caused a double unref in some situations. Affected
3477 files are silcd/silcd.[ch], server.c, serverconfig.c.
3479 * Added some .cvsignore files in the lib directory.
3481 Thu Mar 28 22:51:15 EET 2002 Pekka Riikonen <priikone@silcnet.org>
3483 * Fixed silc_net_gethostbyaddr to correctly resolve by
3484 address. Affected file lib/silcutil/silcnet.c.
3486 * Fixed the notify relaying to client. The HMAC to be used
3487 with relayed packets ws wrong and caused decryption failure
3488 at the client end. Affected file is silcd/packet_receive.c.
3490 Thu Mar 28 19:02:05 EET 2002 Pekka Riikonen <priikone@silcnet.org>
3492 * Created new branch silc_protocol_1_0_branch.
3494 * Reverted the silc_log_quick change in lib/silcutil/silclog.c.
3496 * Changed the silc_server_config_* routines to be SilcServer
3497 independent. They are now officially application specific code
3498 and not part of generic server implementation. Affected files
3499 are silcd/serverconfig.[ch], silcd/silcd.c, silcd/server.c.
3501 Thu Mar 28 17:01:43 EET 2002 Pekka Riikonen <priikone@silcnet.org>
3503 * Added automatic referencing of config context in the
3504 silc_server_config_alloc, and automatic unreferencing in the
3505 silc_server_config_destroy. Affected files are
3506 silcd/serverconfig.[ch], silcd/silcd.c.
3508 * Fixed the silc_log_quick handling in the logging routines.
3509 It didn't log quickly when it was TRUE. Affected file is
3510 lib/silcutil/silclog.c. Also the flush delay was set even
3511 if it was 0 in config file. Affected file is
3512 silcd/serverconfig.c.
3514 * Added support for changing key pair of the server in rehash.
3515 Affected file silcd/server.c.
3517 Thu Mar 28 12:17:21 CET 2002 Pekka Riikonen <priikone@silcnet.org>
3519 * Fixed the TOPIC_SET notify to not cras. It changed the topic
3520 too early, before getting the channel entry. Affected file
3521 is silcd/packet_receive.c.
3523 Thu Mar 28 09:58:16 CET 2002 Johnny Mnemonic <johnny@themnemonic.org>
3525 * Added functions silc_server_config_[ref/unref], these are used
3526 to prevent that the config object is destroyed.
3528 No longer directly affect global variables silc_log_quick and
3529 silc_log_delay, they are first cached inside the config object
3530 and then applied with silc_server_config_setlogfiles().
3532 silc_server_config_set_defaults() is now internal to
3533 serverconfig.c, there are no reasons to show this internal stuff
3536 Affected files are silcd/serverconfig.[ch].
3538 * Added macro SILC_SERVER_LOG_STDERR(), this should replace most
3539 fprintf's to stderr, since some code may be executed again after
3540 the server went into the background. Affected files are
3543 * Added rehash support. Added function silc_server_rehash() that
3544 will perform all the basic tasks of the rehashing procedure.
3546 * Added command line option `-x, --hexdump'. This will enable the
3547 SILC_LOG_HEXDUMP calls that are no longer enabled with `--debug'.
3548 The option `--hexdump' implies `--debug'.
3550 * Fixed a bad bug in the logging APIs (silcutil library) where
3551 the application would crash after calling silc_log_reset_all().
3553 Wed Mar 27 19:43:16 EET 2002 Pekka Riikonen <priikone@silcnet.org>
3555 * Fixed the KICKED notify handling in client library to
3556 correctly remove the channel and all entries from the
3557 channel when I was kicked. This bug crashed the client.
3559 Fixed yet another but in KICKED notify handling to remove
3560 the kicked client correctly from the channel.
3562 Affected file is lib/silcclient/client_notify.c.
3564 * Fixed a minor bug in looking up correct client entry
3565 in KICKED notify in server. Affected file is
3566 silcd/packet_receive.c.
3568 * Fixed the lib/silcmath/Makefile.am to include the MPI and GMP
3569 sources correctly to distribution. Fixes --with-gmp option.
3571 * Removed the manual rehashing from ID Cache, and changed it
3572 to use the SILC Hash Table's auto rehash feature. Affected
3573 file is lib/silccore/silcidcache.c.
3575 Wed Mar 27 00:07:11 EET 2002 Pekka Riikonen <priikone@silcnet.org>
3577 * Fixed a bug in the silc_client_nickname_format function that
3578 handles the multiple same nickname formatting. Two clients
3579 with same nickname caused problems after the first one left
3580 and rejoined. It didn't format the nickname correctly.
3581 Affected file is lib/silcclient/idlist.c.
3583 Tue Mar 26 19:33:03 CET 2002 Pekka Riikonen <priikone@silcnet.org>
3585 * Don't change the topic if olod topic is same as new one.
3586 Affected file is silcd/packet_receive.c.
3588 Mon Mar 25 21:11:35 EET 2002 Pekka Riikonen <priikone@silcnet.org>
3590 * Added cross-reference support to the SILC Documentation
3591 generator. All types across all HTML files are now cross-
3592 referenced. Affected files util/robodoc/generator.c and
3593 scripts/silcdoc/silcdoc.
3595 * Added file lib/silcutil/silctypes.h to include all the
3596 arithmetic type definitions and some macros. Removed
3597 includes/bitmove.h and moved macros to silctypes.h.
3599 Mon Mar 25 17:19:46 EET 2002 Pekka Riikonen <priikone@silcnet.org>
3601 * Merged bugfixes for Irssi SILC client from irssi.org CVS.
3603 Sun Mar 24 11:21:04 EET 2002 Pekka Riikonen <priikone@silcnet.org>
3605 * Added `type' argument to silc_id_payload_parse_id function which
3606 now returns the type of the ID to the sent pointer. Affected
3607 file is lib/silccore/silcid.[ch].
3609 * Added check for CMODE_CHANGE notify type that mode change is
3610 allowed by the sender. Affected file silcd/packet_receive.c.
3612 * Added check for CUMODE_CHANGE notify type that mode change is
3613 allowed by the sender. Affected file silcd/packet_receive.c.
3614 Added the ID type as CUMODE_CHANGE notify type as argument
3615 to the `notify' client operation. Affected files are
3616 lib/silcclient/client_notify.c, irssi/src/silc/core/client_ops.c.
3618 * Added function silc_client_add_server to the client library.
3619 Added support for resolving also channel and server info when
3620 received unknown entity in notify packet. Affected files are
3621 lib/silcclient/idlist.[ch], lib/silcclient/client_notify.c.
3623 * Added function silc_command_get_status to return the command
3624 status from the command reply's argument payload. Affected files
3625 are lib/silccore/silccommand.[ch].
3627 * Added check for KICKED notify type that the kicking is
3628 allowed by the client. Affected file silcd/packet_receive.c.
3630 * Created function silc_get_input which can be used to get input
3631 (echo on or off) from user on command line. Affected files are
3632 lib/silcutil/silcutil.[ch].
3634 Sat Mar 23 09:51:26 EET 2002 Pekka Riikonen <priikone@silcnet.org>
3636 * Optimized silc_server_packet_relay_to_channel function.
3637 Added new function silc_channel_message_payload_encrypt which
3638 can be called directly if channel message payload needs to
3639 be encrypted and is already encoded (no need to call _encode
3640 function). Packet relaying is now done by router without any
3641 extra memory allocations. Affected files are
3642 lib/silccore/silcchanel.[ch], silcd/packet_receive.c and
3643 silcd/packet_send.c.
3645 * Fixed the INVITE notify handling. It took wrong arguments
3646 as invite list and invite delete. Affected file is
3647 silcd/packet_receive.c.
3649 * Added check for TOPIC_SET notify type that the topic change is
3650 allowed by the client. Affected file silcd/packet_receive.c.
3652 * Added check for INVITE notify type that inviting is allowed by
3653 the client. Affected file silcd/packet_receive.c.
3655 * Changed the silc_server_client_on_channel to return the
3656 SilcChannelClientEntry as well. Moved the function
3657 silc_server_check_cmode_rights to server_util.[ch].
3658 Affected files are silcd/server_util.[ch], silcd/command.c.
3660 * Added function silc_server_check_umode_rights to check whether
3661 changing client's user mode is allowed. Added check for
3662 UMODE_CHANGE notify type that the umode change is allowed
3663 by the client. Affected files are silcd/server_util.[ch],
3664 silcd/packet_receive.c and silcd/command.c.
3666 Fri Mar 22 12:25:58 CET 2002 Pekka Riikonen <priikone@silcnet.org>
3668 * Fixed the SILC_PACKET_MAX_ID_LEN to actually be the max
3669 ID length. It ignored that ID can be IPv6 based as well.
3670 Affected file lib/silccore/silcpacket.h.
3672 * Fixed the silc_id_id2str and silc_id_str2id to take the
3673 IPv6 address offset's into consideration. Affecte file is
3674 lib/silccore/silcid.c.
3676 Thu Mar 21 20:44:13 EET 2002 Pekka Riikonen <priikone@silcnet.org>
3678 * Fixed the internal Unix scheduler functions to check for
3679 NULL context they may receive. The affected file is
3680 lib/silcutil/unix/silcunixschedule.c.
3682 Thu Mar 21 19:12:22 EET 2002 Timo Sirainen <tss@iki.fi>
3684 * Changed hardcoded ~/.silc paths to use get_irssi_dir() so you
3685 can specify different directory with --home command line
3686 parameter. Affected files irssi/src/silc/core/client_ops.c,
3689 * SILC-specific commands aren't now executed if the active server
3690 isn't of SILC-type, so there won't be problems with having
3691 IRC and SILC protocol support in same client. Affected files
3692 irssi/src/silc/core/silc-channels.c, silc-servers.c,
3695 Wed Mar 20 11:06:57 CET 2002 Pekka Riikonen <priikone@silcnet.org>
3697 * Improved the signal support in SILC Schedule. Added new
3698 function silc_schedule_signal_call which is used by application
3699 to mark a signal to be called. It is now safe to perform
3700 any kind of tasks in signal callbacks since it is guaranteed
3701 that the application specified signal callback is called
3702 after the signal is over. Affected files are
3703 lib/silcutil/silcschedule.[ch], lib/silcutil/*/silc*schedule.c.
3705 Tue Mar 19 20:42:41 EET 2002 Pekka Riikonen <priikone@silcnet.org>
3707 * Added `name' field to SilcChannelPrivateKey to represent
3708 application given name for the key. Moved also the context from
3709 lib/silcclient/idlist.h into lib/silcclient/silcclient.h.
3710 Added the `name' argument also to the function
3711 silc_client_add_channel_private_key.
3713 Added function silc_client_current_channel_private_key to set the
3714 current channel private key in use.
3716 Added "change" command to KEY command which can be used to change
3717 the current channel private key. Bound the command also to
3718 alt+K (Alt+Shift+k).
3720 Also affected files lib/silcclient/client_channel.c,
3721 irssi/src/docs/help/in/key.in, irssi/src/silc/core/silc-channel.c.
3723 Tue Mar 19 16:32:43 CET 2002 Pekka Riikonen <priikone@silcnet.org>
3725 * Added silc_rng_get_byte_fast function in to the
3726 lib/silccrypt/silcrng.[ch].
3728 * Changed the interface of silc_packet_assemble and the
3729 silc_packet_send_prepare. If silc_packet_assmble is now
3730 called the application does not call silc_packet_send_prepare
3731 because the library will call it automatically. These
3732 interfaces now also return a reference to the outgoing buffer
3733 which includes the assembled packet, which the application can
3734 use to encrypt the packet.
3736 Affected files are lib/silccore/silcpacket.[ch],
3737 lib/silcclient/client.c, client_channel.c client_prvmsg.c,
3738 silcd/packet_send.c, server_backup.c and packet_receive.c.
3740 * Fixed a packet sending bug on very high load, where outgoing
3741 packet queue wasn't handled correctly and packets got corrupted.
3742 Affected files are lib/silcutil/*/silc*sockconn.c,
3743 lib/silcclient/client.c and silcd/server.c.
3745 Mon Mar 18 21:00:41 EET 2002 Pekka Riikonen <priikone@silcnet.org>
3747 * Added macro SILC_PACKET_DATALEN which can be used during
3748 packet assembling to check whether the data to be added to
3749 the packet will fit to SILC_PACKET_MAX_LEN. If not the data
3750 len is truncated until it fits it.
3752 Added checks for maximum length of channel message payload and
3753 private message payload also.
3755 Added checks for maximum packet length in server and in
3758 Affected files are lib/silccore/silcpacket.h, silcd/packet_send.c,
3759 lib/silcclient/client.c, lib/silccore/silcchannel.c and
3760 lib/silccore/silcprivate.c, lib/silcclient/client_channel.c and
3761 lib/silcclient/client_prvmsg.c.
3763 Mon Mar 18 14:54:42 CET 2002 Pekka Riikonen <priikone@silcnet.org>
3765 * Added silc_server_packet_queue_purge call to the
3766 silc_server_disconnect_remote to assure that all data in the
3767 queue before disconnecting is sent to the network. Affected
3768 file silcd/server.c.
3770 Sun Mar 17 19:26:16 EET 2002 Pekka Riikonen <priikone@silcnet.org>
3772 * Added the deleting of server's own ID cache entry to the
3773 silc_server_free function. Free also everything else that
3774 has been allocated in silc_server_init. The affected file
3777 Sun Mar 17 15:44:56 EET 2002 Pekka Riikonen <priikone@silcnet.org>
3779 * Added functions silc_parse_version_string, silc_version_to_num,
3780 and silc_ske_parse_version to parse SILC protocol style version
3781 strings. Affected files lib/silcutil/silcutil.[ch] and
3782 lib/silcske/silcske.[ch].
3784 * Added new configuration params: version_protocol, version_software
3785 and version_software_vendor to specify what version the remote
3786 host must at least be to be able to connect to server. The vendor
3787 string can be regex matched too. Added new function
3788 silc_server_connection_allowed to check maximum number of allowed
3789 connections, and allowed versions for incoming connections.
3790 Affected files are silcd/server.c, server_util.[ch] and
3793 Sun Mar 17 10:24:50 EET 2002 Pekka Riikonen <priikone@silcnet.org>
3795 * Added preliminary support for signals in scheduler. The
3796 signals we care about are now blocked always when the scheduler
3797 is locked. This way we can synchronise the use of signal with
3798 scheduler. It is guaranteed that when signal occurs the scheduler
3799 is not locked, and thus new tasks can be safely added to the
3802 Renamed silc_schedule_wakeup_init and silc_schedule_wakeup_uninit
3803 to silc_schedule_internal_init and silc_schedule_internal_uninit.
3804 Added new platform specific routines
3805 silc_schedule_internal_signals_[un]block and
3806 silc_schedule_internal_signal_[un]register.
3808 Added new functions to SILC Schedule API:
3809 silc_schedule_signal_[un]register. Each signal that application
3810 is going to use should be registered to the scheduler.
3812 Affected files are lib/silcutil/silcschedule.[ch],
3813 lib/silcutil/*/silc*schedule.c.
3815 Sat Mar 16 22:39:23 EET 2002 Pekka Riikonen <priikone@silcnet.org>
3817 * Check for unauthenticated client and server in the
3818 silc_server_new_client and silc_server_new_server functions.
3819 Affected file silcd/packet_receive.c.
3821 * Added function silc_string_is_ascii to check whether given
3822 string is 7-bit ASCII string. Affected files are
3823 lib/silcutil/silcutil.[ch].
3825 * Added function silc_id_is_valid_server_id into the
3826 silcd/serverid.c and added checking for valid Server ID's in
3827 silc_server_new_server. The Server ID must always be based
3828 on the server's public IP address.
3830 * Added logging of DISCONNECT packet message in the server.
3831 Affected file silcd/server.c.
3833 Sat Mar 16 18:04:30 EET 2002 Pekka Riikonen <priikone@silcnet.org>
3835 * Changed all library interfaces that use Global RNG to also
3836 accept SilcRng as argument. Affected files are
3837 lib/silcclient/command.c, lib/silccore/silcauth.[ch],
3838 lib/silccore/silcchanel.[ch], lib/silcclient/client_channel.c,
3839 silcd/packet_send.c, lib/silccore/silcprivate.[ch],
3840 lib/silcmath/silcprimegen.c, lib/silcmath/silcmath.h, and
3841 lib/silccrypt/rsa.c.
3843 * Added function silc_pkcs_generate_key to the
3844 lib/silccrypt/silcpkcs.[ch] for applications so that they
3845 don't need to do pkcs->pkcs->init calls anymore.
3847 * Remove SilcSocketConnection from the SFTP API since it really
3848 wasn't needed there. The application has the information
3849 saved in its contexts anyway and the SFTP layer doesn't need
3850 know about it. Affected files lib/silcsft/silcsftp.h and
3851 lib/silcsftp/sftp_[server/client].c.
3853 * Rewrote the SILC SIM (modules) interface in lib/silcsim.[ch].
3854 The SilcSimContext is not SilcSim.
3856 * Fixed possible buffer overflows in silc_id_render in the
3857 lib/silcutil/silcutil.c.
3859 * On EPOC the global crypto module lists are not used at all
3860 in the crypto library. Added support for using the constant
3861 algorithm list on EPOC. Affected files are
3862 lib/silccrypt/silccipher.c, silchash.c, silchmac.c and
3865 * Fixed the handling of third parameter of KICKED notify, since
3866 it was mistakenly updated to SILC Protocol 1.0 even though it
3867 is to be included in 1.1. Since it is not in 1.0 it is not
3868 mandatory, and this fix now handles it only if it is provided,
3869 and it is not error if it is not provided. Affected file
3870 lib/silcclient/client_notify.c.
3872 Sat Mar 16 09:07:27 EET 2002 Pekka Riikonen <priikone@silcnet.org>
3874 * Handled CHANNEL_CHANGE notify (ignore it) in Irssi SILC
3875 client. Affected file irssi/src/silc/core/client_ops.c.
3877 * Merged with Irssi 0.8.4 from irssi.org CVS.
3879 Thu Mar 14 12:53:57 CET 2002 Pekka Riikonen <priikone@silcnet.org>
3881 * Check for valid socket connection in client entries before
3882 sending any messages. Fixes a crash, but doesn't fix some
3883 other underlaying bug that is lurking there. Affected
3884 file silcd/packet_send.c.
3886 Thu Mar 14 13:38:12 EET 2002 Timo Sirainen <tss@iki.fi>
3888 * $usermode, $cumode and $cumode_space expandos shouldn't do
3889 anything with non-SILC server records. Affected file
3890 irssi/src/silc/core/silc-expandos.c
3892 Wed Mar 13 21:38:26 EET 2002 Pekka Riikonen <priikone@silcnet.org>
3894 * Fixed the silc_net_check_[host/local]_by_sock to support
3895 IPv6 bound sockets as well. Now they can return IPv6 addresses
3896 as well. Affected file lib/silcutil/silcnet.c.
3898 * Fixed silc_net_addr2bin to correctly convert IPv6 addresses.
3899 Affected lib/silcutil/unix/silcunixnet.c.
3901 * Fixed ID rendering (at least on some platforms, not NetBSD)
3902 for IPv6 addresses. Affected file lib/silcutil/silcutil.c.
3904 Tue Mar 12 17:58:59 EET 2002 Pekka Riikonen <priikone@silcnet.org>
3906 * Added silc_hash_public_key and silc_hash_public_key_compare
3907 functions to be used with SilcHashTable. They can be used to
3908 hash public keys and compare public keys in hash table. Affected
3909 file lib/silcutil/silcutil.[ch].
3911 * Added support for specifying multiple public keys for Client
3912 connection section in server configuration file. This makes it
3913 possible to accept multiple public keys from same host, or to
3914 make a section that accepts any incoming host, and have the
3915 accepted public keys listed in the section.
3917 Added functions silc_sever_[find/get]_public_key, added the
3918 support for this actually to all connection sections but only
3919 the Client section is currently allowed to specify multiple
3922 Affected files are silcd/server.c, server_internal.h,
3923 command.c, protocol.c, server_util.[ch], packet_receive.c.
3925 Mon Mar 11 23:37:38 EET 2002 Pekka Riikonen <priikone@silcnet.org>
3927 * Merged Irssi 0.8.2 from irssi.org CVS.
3929 Sun Mar 10 23:34:48 CET 2002 Johnny Mnemonic <johnny@themnemonic.org>
3931 * If silc_debug is TRUE, also output standard logging messages
3932 to stderr with the debug output.
3934 Made silc_log_reset_all() flushing all channels before returning.
3935 Also fixed some documentation typos.
3937 Affected files are lib/silcutil/silclog.[ch].
3939 Sun Mar 10 20:07:49 EET 2002 Pekka Riikonen <priikone@silcnet.org>
3941 * Fixed the server to check correctly the amount of connections
3942 from single host, by checking also the type of the connection.
3943 Fixed also the comparison of number of connections and number
3944 of allowed connections. Affected files are silcd/server.c,
3947 Fri Mar 8 17:16:41 EET 2002 Pekka Riikonen <priikone@silcnet.org>
3949 * Fixed the USERS command reply to save the user's mode on the
3950 channel as well. Fixed JOIN command reply to check whether a
3951 client is on channel already and not join it twice. Affected
3952 file lib/silcclient/command_reply.c.
3954 * Added new file silc-expandos.c into irssi/silc/core/ to return
3955 various stuff for various signal for the statusbar etc. updating.
3956 Now Irssi SILC client prints channel user modes etc. on the
3959 * The user mode (like server/router operator changes) is now shown
3960 on the Irssi SILC client's statusbar. The affected files are
3961 irssi/src/silc/core/client_ops.c, silc-expandos.c.
3963 Thu Mar 7 19:21:22 EET 2002 Pekka Riikonen <priikone@silcnet.org>
3965 * Changed silc_mutex_[un]lock calls in lib/silcutil/silcschedule.c
3966 to SILC_SCHEDULE_[UN]LOCK macros.
3968 * Added more error printing to logs in server code. Affected
3969 files silcd/server.c and silcd/protocol.c.
3971 * Fixed -S option parsing in Irssi SILC Client. Affected file
3972 irssi/src/silc/core/silc-core.c.
3974 * Added silc_buffer_alloc_size function. Affected file is
3975 lib/silcutil/silcbuffer.h.
3977 Tue Mar 5 14:37:27 EET 2002 Pekka Riikonen <priikone@silcnet.org>
3979 * Changed all silc_[hash|hmac|cipher|pkcs]_default tables to
3980 constants. Affected files in
3981 lib/silccrypt/silcpkcs.[ch], silchash.[ch], silchmac.[ch] and
3984 * Changed the internal SFTP Memory FS table to const. Affected
3985 file lib/silcsftp/sftp_fs_memory.c.
3987 Sun Mar 3 18:37:13 EET 2002 Pekka Riikonen <priikone@silcnet.org>
3989 * Fixed the buffer formatting and unformatting routines to
3990 check the size of 64 bits types with sizeof(). Affected
3991 file is lib/silcutil/silcbuffmt.c.
3993 Mon Feb 25 17:19:05 EET 2002 Pekka Riikonen <priikone@silcnet.org>
3995 * Removed 0.6.x backwards support.
3997 Sun Feb 24 12:53:25 EET 2002 Pekka Riikonen <priikone@silcnet.org>
3999 * Changed all integer type names:
4000 [u]int[8/16/32/64] -> Silc[UInt/Int][8/16/32/64]. This is
4001 to avoid collisions with other libraries using same type names
4004 Sat Feb 23 20:31:43 EET 2002 Pekka Riikonen <priikone@silcnet.org>
4006 * Added `prefer_ipv6' argument to the functions
4007 silc_net_gethostbyname[_async]. If it is TRUE it will return
4008 IPv6 address over IPv4. If FALSE IPv4 address is returned
4009 even if IPv6 address was found. Affected files
4010 lib/silcutil/silcnet.[ch].
4012 * Added support silc_net_create_connection[_async] to fallback
4013 to IPv4 address if IPv6 address could not be used (like if
4014 it doesn't work on a specific system). Affected file in
4015 lib/silcutil/unix/silcunixnet.c.
4017 Sat Feb 23 15:20:30 EET 2002 Pekka Riikonen <priikone@silcnet.org>
4019 * Added silc_schedule_reinit function to do the enlarging
4020 of the max tasks handling capabilities of the scheduler.
4021 Affected files lib/silcutil/silcschedule.[ch].
4023 Wed Feb 20 20:41:01 EET 2002 Pekka Riikonen <priikone@silcnet.org>
4025 * Added automatic extern "C" { ... } for C++ compilers so the
4026 application does not need to define them. Affected file
4027 includes/silcincludes.h.
4029 * Renamed lib/silcclient/silcapi.h to silcclient.h as the
4030 old name went against naming convention. Applications now
4031 include "silcclient.h" instead of "clientlibincludes.h".
4032 Removed includes/clientlibincludes.h, it is redundant now.
4034 * Renamed includes/version.h to silcversion.h.
4036 * Added really preliminary support for OS/2 into the util
4037 library. Only thread & mutex API is implemented, others
4038 are still to be implemented. Created the lib/silcutil/os2/
4039 directory. Created also file includes/silcos2.h.
4041 Wed Feb 20 18:48:49 EET 2002 Pekka Riikonen <priikone@silcnet.org>
4043 * Added preliminary BeOS support into the util library.
4044 Created lib/silcutil/beos/, and implemented all the needed
4045 functions to support SILC on BeOS. Created also file
4046 includes/silcbeos.h.
4048 Mon Feb 18 15:49:22 EET 2002 Timo Sirainen <tss@iki.fi>
4050 * Added proper initializations to silc's irssi code, so it's
4051 now possible to load it as module. Affected files
4052 irssi/src/silc/core/silc-core.c,
4053 fe-common/silc/fe-common-silc-core.[ch] and fe-text/silc.c
4055 Sun Feb 17 19:02:56 EET 2002 Pekka Riikonen <priikone@silcnet.org>
4057 * Merged latest Irssi (0.8.1) from the irssi.org's CVS into
4060 * Fixed the silcdoc document generator to correct generate
4061 docs from all kinds of filenames. Affected files are
4062 util/robodoc/Source/generator.c, scripts/silcdoc/silcdoc
4064 * ROBOdoc documented lib/silcutil/silcmemory.h.
4065 Added also new function silc_memdup.
4067 * Removed lib/silcutil/silcbufutil.h and moved those routines
4068 to the lib/silcutil/silcbuffer.h.
4070 Sun Feb 17 15:52:30 EET 2002 Pekka Riikonen <priikone@silcnet.org>
4072 * Added `user_count' to the SilcChannelEntry which now tells the
4073 number of users on the channel. The user count is now saved
4074 in normal server of global channels as well. Affected files
4075 silcd/server.c, idlist.h, packet_receive.c and command.c.
4077 * Splitted lib/silcutil/silcutil.[ch] into silcfileutil.[ch] to
4078 include file utility functions.
4080 * Fixed the lib/silcsftp/sftp_fs_memory.c to use silcutil routines
4081 instead of calling directly OS routines.
4083 * Fixed NICK change printing in Irssi SILC Client. Fixed
4084 KICKED notify printing in Irssi SILC Client. Affected file
4085 irssi/src/silc/core/client_ops.c.
4087 * Fixed a NICK change bug in client library, to not recreate the
4088 client_entry->channels hash table everytime nick is changed.
4089 Affected file lib/silcclient/client.c.
4091 Sun Feb 17 10:10:14 EET 2002 Pekka Riikonen <priikone@silcnet.org>
4093 * ROBOdoc documented the lib/silcske/silcske.h, and improved
4094 the SKE interface a bit.
4096 * Fixed padding problem in PKCS#1. The padding was not actually
4097 random since the random number generator was used incorrectly.
4098 This security bug affects only when encrypting with PKCS#1, and
4099 it is not currently used at all in SILC. SILC only use signing
4100 with PKCS#1. Affected file lib/silccrypt/pkcs1.c.
4102 Sat Feb 16 13:44:24 EET 2002 Pekka Riikonen <priikone@silcnet.org>
4104 * Rewrote the notify handling in Irssi SILC client to not call
4105 the events as signals. Fixes problems with Perl support.
4106 Affected files irssi/src/silc/core/client_ops.c, silc-channels.c.
4108 * Send the auto-nicking NICK command in client library with
4109 little timeout after connecting. The affected file is
4110 lib/silcclient/client.c.
4112 * Added following new config file settings:
4113 channel_rekey_secs, key_exchange_rekey, key_exchange_pfs,
4114 key_exchange_timeout, conn_auth_timeout, connections_max,
4117 Implemented all the new config settings handling in the server.
4119 Optimized the use of SKE Mutual flag usage. Use it only
4120 if connection authentication protocol is not based in public
4123 Renamed all SilcServerConfigSection* to SilcServerConfig*
4124 to have a bit shorter names.
4126 Affected files silcd/serverconfig.[ch], server.[ch], and
4129 Sat Feb 16 02:46:43 CET 2002 Johnny Mnemonic <johnny@themnemonic.org>
4131 * Cleaned up the listening sockets code, preparing for the rehash
4132 support. Affected file is silcd/server.c.
4134 * Fixed some output messages. Affected files are silcd/silcd.c,
4137 Fri Feb 15 19:10:20 EET 2002 Pekka Riikonen <priikone@silcnet.org>
4139 * Create lib/doc/silcrng_intro.html document as introduction
4140 to SILC RNG. ROBOdoc documented lib/silccrypt/silcrng.h.
4142 Fri Feb 15 13:23:03 CET 2002 Johnny Mnemonic <johnny@themnemonic.org>
4144 * Fixes to the silcd config template. Affected file is
4145 doc/example_silcd.conf.in.
4147 * Removed type casts from silc_calloc(), conforming to the
4148 CodingStyle. Affected file is lib/silcutil/silcconfig.c.
4150 * Removed param_name member from client, server, and router
4151 section structs, now identifying the param directly.
4153 Added CONFIG_FREE_AUTH macro in config file parsing.
4155 Affected files are silcd/serverconfig.[ch].
4157 Fri Feb 15 12:24:08 EET 2002 Timo Sirainen <tss@iki.fi>
4159 * Fixed command line parameter handling. All SILC initialization
4160 is now done in silc_core_init() which also fixes autoconnecting
4163 Affected files irssi/src/silc/core/silc-core.c,
4164 irssi/src/fe-text/silc.c.
4166 Thu Feb 14 22:03:58 EET 2002 Pekka Riikonen <priikone@silcnet.org>
4168 * Added new configuration options and blocks:
4169 keepalive_secs, reconnect_count, reconnect_interval,
4170 reconnect_interval_max, reconnect_keep_trying and
4171 require_reverser_lookup. Added ConnectionParam block, and
4172 implemented the connection parameters when connecting as
4173 initiator and when accepting connections as responder.
4175 Added CONFIG_IS_DOUBLE macro in config file parsing, to check
4176 whether given configuration value has been given already.
4178 Affected files silcd/serverconfig.[c], server.[c].
4180 * Splitted the doc/example_silcd.conf.in. Separated the crypto
4181 algorithm parts and created new file silcalgs.conf, that
4182 is now included from the example_silcd.conf.in.
4184 * Optimized the silc_server_connect_to_router_second to take
4185 the connection configuration object from the SilcServerConnection
4186 object instead of finding it during the connecting phase.
4187 Added the configuration object to SilcServerConnection struct.
4188 Affected files silcd/server_internal.h, server.c.
4190 Thu Feb 14 16:02:26 CET 2002 Pekka Riikonen <priikone@silcnet.org>
4192 * Add the client on channel after it was resolved at the
4193 channel message receiving, and it was not already on the
4194 channel. Affected file lib/silcclient/client_channel.c.
4196 Wed Feb 13 23:16:41 EET 2002 Pekka Riikonen <priikone@silcnet.org>
4198 * Fixed the public key authentication to allocate always the
4199 destination signature buffer instead of using static buffer.
4200 Affected file silcd/protocol.c.
4202 Wed Feb 13 20:51:13 EET 2002 Pekka Riikonen <priikone@silcnet.org>
4204 * Unified the serverconfig.[ch]'s helper function interface.
4205 Affected file silcd/serverconfig.[ch].
4207 * Removed doc/example_silc.conf.in since it is redundant.
4208 The make install will now install irssi/silc.conf file.
4210 * Added new Passphrase and Publickey authentication methods to
4211 config file, allowing both public key and passphrase based
4212 authentication to be set at the same time.
4214 Added `prefer_passphrase_auth' setting in config file which
4215 can be used to set to prefer passwd auth if both passwd and
4216 public key is set. If not set, public key is preferred.
4217 This has effect only when being initiator (responder will try
4220 Added support for authentication with passphrase and public key
4221 at the same time. The passphrase is tried first always since
4222 it is faster to check.
4224 Affected file silcd/serverconfig.[ch], server.c, protocol.[ch].
4226 Wed Feb 13 12:46:25 CET 2002 Johnny Mnemonic <johnny@themnemonic.org>
4228 * Merged the new SILC Config library, with the server parsing
4229 support. Read the header file silcconfig.h or the toolkit
4230 documentation for the news. Affected files are
4231 doc/example_silcd.conf.in lib/silcutil/silcconfig.[ch]
4232 silcd/command.c silcd/packet_receive.c silcd/packet_send.c
4233 silcd/protocol.c silcd/server.c silcd/server_backup.c
4234 silcd/serverconfig.[ch] silcd/silcd.c.
4236 * Fixed some silclog documentation. Affected file is
4237 lib/silcutil/silclog.h.
4239 Sun Feb 10 18:11:30 EET 2002 Pekka Riikonen <priikone@silcnet.org>
4241 * The silc_cipher_register, silc_hash_register and
4242 silc_hmac_register now checks if the object to be registered
4243 is registered already. Affected files are
4244 lib/silccrypt/silccipher.c, silchash.c and silchmac.c.
4246 Sun Feb 10 15:48:38 EET 2002 Pekka Riikonen <priikone@silcnet.org>
4248 * Merged new irssi from irssi.org's CVS, the version 0.7.99.
4250 Sat Feb 9 14:54:33 EET 2002 Pekka Riikonen <priikone@silcnet.org>
4252 * Allow zero length channel messages inside the Channel Message
4253 Payload. Affected file lib/silccore/silcchannel.c.
4255 * Fixed scripts/silcdoc/silcdoc to support all kinds of filenames
4256 as header filenames.
4258 * Removed lib/silcclient/README and created HTML file
4259 lib/silcclient/silcclient_using.html, which is now included
4260 as part of Toolkit documentation.
4262 Thu Feb 7 10:12:25 CET 2002 Pekka Riikonen <priikone@silcnet.org>
4264 * Fixed CUMODE_CHANGE notify handling to change the mode of
4265 correct client. Affected file lib/silcclient/client_notify.c.
4267 * Make silc_rng_alloc fail if it cannot allocate the sha1
4268 hash algorithm. Affected file lib/silccrypt/silcrng.c.
4270 Sun Feb 3 17:20:52 EET 2002 Pekka Riikonen <priikone@silcnet.org>
4272 * Fixed the file transfer's key agreement payload to include
4273 zero port also if the hostname is NULL because it could not
4276 Call file transfer monitor callback now also if error occurs
4277 during key agreement protocol.
4279 Changed the silc_client_file_send interface to return the
4280 SilcClientFileError instead of session id. The session ID
4281 is returned into pointer provided as argument.
4283 Check that the file exists locally before sending the
4284 file transfer request at all.
4286 Affected file lib/silcclient/client_ftp.c, silcapi.h.
4288 * Added SILC_CLIENT_FILE_KEY_AGREEMENT_FAILED file transfer
4289 error than can occur while key agreement protocol. Affected
4290 file lib/silcclient/silcapi.h.
4292 * Fixed the event_mode CMODE handler to not crash when mode
4293 is changed and +k mode is set in the channel. Affected file
4294 irssi/src/silc/core/silc-channels.c.
4296 * Fixed SILC_LOG_ERROR to give out Error and not Warning, and
4297 SILC_LOG_WARNING to give out Warning and not Error. Affected
4298 file lib/silcutil/silclog.c.
4300 * Fixed the channel message payload decryption in the function
4301 silc_channel_message_payload_decrypt to not modify the original
4302 buffer before it is verified that the message decrypted
4303 correctly. Otherwise, next time it is called with correct
4304 channel key it won't encrypt since the payload is corrupted.
4305 Affected file lib/silccore/silcchannel.c.
4307 Sun Feb 3 11:46:12 EET 2002 Pekka Riikonen <priikone@silcnet.org>
4309 * Do not constantly resize the window. A fix patch by cras.
4310 Affected file irssi/src/fe-text/screen.c.
4312 Sat Feb 2 16:54:18 EET 2002 Pekka Riikonen <priikone@silcnet.org>
4314 * Applied IPv6 fix patch from Jun-ichiro itojun Hagino.
4315 Affected file lib/silcutil/silcnet.c.
4317 Fri Feb 1 22:33:11 EET 2002 Pekka Riikonen <priikone@silcnet.org>
4319 * Fixed a bug in hash table internal routine for traversing
4320 the table with foreach callback. The current entry may
4321 become invalid in the callback but it was referenced after
4322 the callback returned.
4324 Do not allow auto rehashing of hash table during the
4325 silc_hash_table_foreach operation, for same reasons as it is
4326 not allowed for SilcHashTableList. Affected files are
4327 lib/silcutil/silchashtable.[ch].
4329 Fri Feb 1 14:55:00 CET 2002 Pekka Riikonen <priikone@silcnet.org>
4331 * Defined DLLAPI into silcincludes.h and silcwin32.h for
4332 Win32 DLL. extern's in header files are now declared with
4335 Thu Jan 31 23:34:33 EET 2002 Pekka Riikonen <priikone@silcnet.org>
4337 * Fixed private message handling. It used some old code that
4338 caused the client to crash. Affecte file is
4339 lib/silcclient/client_prvmsg.c.
4341 Thu Jan 31 19:06:22 EET 2002 Pekka Riikonen <priikone@silcnet.org>
4343 * Added function silc_client_add_channel,
4344 silc_client_replace_channel_id, and removed functions
4345 silc_client_new_channel_id and silc_idlist_get_channel_by_id
4346 from client library.
4348 * Added cross reference of the joined channels to the
4349 SilcClientEntry, and changed the SilcChannelEntry's
4350 users list to SilcHashTable. The affected files are
4351 lib/silcclient/idlist.[ch].
4353 * Fixed a bug in hash table tarversing. While the hash table
4354 is traversed with SilcHashTableList the table must not be
4355 rehashed. It is now guaranteed that auto rehashable tables
4356 are not rehashed while tarversing the list. Also defined that
4357 silc_hash_table_rehash must not be called while tarversing
4358 the table. Added function silc_hash_table_list_reset that must
4359 be called after the tarversing is over. The affected files are
4360 lib/silcutil/silchashtable.[ch].
4362 * Changed all hash table traversing to call the new
4363 silc_hash_table_list_reset in server and in client library.
4365 * Added function silc_client_on_channel to return the
4366 SilcChannelUser entry if the specified client entry is joined
4367 on the specified channel. This is exported to application as
4368 well. Affected files lib/silcclient/client_channel.c, silcapi.h.
4370 Wed Jan 30 19:14:31 EET 2002 Pekka Riikonen <priikone@silcnet.org>
4372 * Fixed founder regaining problem with JOIN command on normal
4373 server. The notify for mode change must be sent always and
4374 not only if !cmd->pending. Affected file silcd/command.c.
4376 * Fixed the WHOWAS command's reply sending to support the
4377 lists correctly. Affected file silcd/command.c.
4379 Wed Jan 30 11:11:47 CET 2002 Pekka Riikonen <priikone@silcnet.org>
4381 * When sending JOIN command to router for processing the
4382 sender's old command identifier was not saved back to the
4383 sender's command context, fixed now. The affected file is
4386 * Create the key in JOIN command of the router did not return
4387 the channel key, added check for this. Affected file is
4390 * Fixed a channel ID update bug in JOIN command reply. Do
4391 not directly upgrade the ID but call the function
4392 silc_idlist_replace_channel_id if the ID was changed.
4393 Affected file silcd/command_reply.c.
4395 * Fixed memory leaks from command calling if it would fail.
4396 Affected file silcd/command.c.
4398 Tue Jan 29 19:49:31 EET 2002 Pekka Riikonen <priikone@silcnet.org>
4400 * Applied patches from cras:
4402 Memory leak fixes around libaries, irssi window resize fix,
4403 new silclist.h and silcdlist.h, all extern inline changed to
4406 * Removed dotconf from lib/dotconf, not needed anymore.
4408 * Removed TRQ from lib/trq, not needed anymore.
4410 * Do more frequent heartbeats (5 minutes instead of 10 minutes)
4411 with server connections. Later this will be configurable
4412 in config file after new config file is done. Affected file
4415 Tue Jan 29 10:35:03 CET 2002 Pekka Riikonen <priikone@silcnet.org>
4417 * Fixed a crash in server related to channel announcements.
4418 Affected file silcd/server.c.
4420 Mon Jan 28 17:49:42 EET 2002 Pekka Riikonen <priikone@silcnet.org>
4422 * Fixed memory leaks in silc_server_create_new_channel*
4423 functions. Affected file silcd/server.c.
4425 * Fixed the CHANNEL_CHANGE notify to re-announce the channel
4426 which ID was changed. This way the router will send the
4427 user list for the channel again, and server won't be in
4428 desync in some rare circumstances. Affected file is
4429 silcd/packet_receive.c.
4431 Sun Jan 27 21:04:19 EET 2002 Pekka Riikonen <priikone@silcnet.org>
4433 * Check for NULL socket pointer in the function
4434 silc_server_packet_send_to_channel_real. Affected file
4435 silcd/packet_send.c.
4437 * Fixed the BAN notify handling to correctly remove ban
4438 list. Affected file silcd/packet_receive.c.
4440 Sat Jan 26 23:01:03 EET 2002 Pekka Riikonen <priikone@silcnet.org>
4442 * Fixed some header addition to Toolkit distribution in
4443 lib/silcutil/Makefile.am and lib/trq/Makefile.am.
4445 * Added lib/silcclient/client_ops_example.h as an template
4446 file for application programmers to quickly start using
4447 the SilcClientOperation functions in their application.
4448 Updated the lib/silcclient/README as well to tell about this
4449 nice file made available.
4451 Sat Jan 26 10:45:41 EET 2002 Pekka Riikonen <priikone@silcnet.org>
4453 * Call silc_server_remove_from_channels when removing client
4454 entry when NO_SUCH_CLIENT_ID was received. Affected file
4455 is silcd/command_reply.c.
4457 Fri Jan 25 19:12:36 EET 2002 Pekka Riikonen <priikone@silcnet.org>
4459 * Added server & router operator statistics updating. Affected
4460 file silcd/packet_receive.c and silcd/command.c.
4462 * Fixed the SERVER_SIGNOFF notify handling on normal server
4463 not to save the history information for clients. Same was
4464 fixed earlier in remove_clients_by_server function, but not
4465 here. Affected file silcd/packet_receive.c.
4467 * Raised the default connection-retry count from 4 to 7 in
4468 server. Affected file silcd/server.h.
4470 * Cancel any possible reconnect timeouts when we start the
4471 key exchange. Affected file silcd/server.c.
4473 * Do not reconnect on connection failure when SCONNECT was
4474 given. Affected files silcd/server.[ch].
4476 Tue Jan 22 18:19:36 EET 2002 Pekka Riikonen <priikone@silcnet.org>
4478 * Removed assert()'s from the lib/silcclient/client_keyagr.c.
4480 * Fixed the NICK command to always give the unformatted
4481 nickname to the one giving the NICK command. If unformatted
4482 nickname is cached already it will be formatted and the
4483 local entry will always get the unformatted nickname.
4484 Affected file lib/silcclient/idlist.c.
4486 * Fixed some double frees from client library commands.
4487 Affected file is lib/silcclient/command.c.
4489 * Fixed CUMODE command in server to assure that no one can
4490 change founder's mode than the founder itself, there was a
4491 little bug. Affected file silcd/command.c.
4493 Mon Jan 21 19:07:53 EET 2002 Pekka Riikonen <priikone@silcnet.org>
4495 * Removed the SilcClientCommandDestructor from the client
4496 libary, it is not needed anymore. Affected files are
4497 lib/silcclient/silcapi.h, command[_reply].[ch],
4498 client_notify, idlist.c.
4500 * Fixed GETKEY command to first resolve client, and then
4501 resolve the server only if the client was not found, instead
4502 of resolving both at the same time. Affected file is
4503 lib/silcclient/command.c.
4505 * Added silc_client_start_key_exchange_cb and lookup the
4506 remote hostname and IP address before starting the key
4507 exchange with server. The affected file is
4508 lib/silcclient/client.c.
4510 * The server's public key is now saved using the IP address
4511 of the server and not the servername for the filename.
4512 The hostname public key filename is checked as an fall back
4513 method if the IP address based filename is not found.
4515 Fixed the GETKEY command to save the fetched server key
4516 in correct filename.
4518 Print the remote server's hostname now when new key is
4519 received during connection process. Affected file is
4520 irssi/src/silc/core/client_ops.c.
4522 * Return always our own public key to the client if it asks
4523 for it with GETKEY command. Affected file silcd/command.c.
4525 * Removed the use_auto_addr variable from default config
4526 file since it was in wrong section. Affected file is
4529 * Fixed TOPIC_CHANGE notification to not route it when it
4530 was sent using silc_server_send_notify_to_channel function.
4531 Affected file silcd/command.c.
4533 * Fixed silc_server_send_notify_kicked to send the kicker's
4534 Client ID also, it was missing. Affected files are
4535 silcd/command.c, silcd/packet_send.[ch].
4537 Thu Jan 17 18:59:11 EET 2002 Pekka Riikonen <priikone@silcnet.org>
4539 * Do not save client history information in SERVER_SIGNOFF.
4540 Fixes the bug in normal server that it does not detect
4541 the client becoming valid after the server becomes back
4542 online. Affected file silcd/server_util.c.
4544 * Added `sock_error' field into the SilcSocketConnection
4545 context. When error occurs during socket operation (read
4546 or write) the error is saved. Added also new function
4547 silc_socket_get_error to return human readable socket error
4548 message. Affected files are lib/silcutil/silcsockconn.[ch],
4549 lib/silcutil/unix/silcunixsockconn.c, and
4550 lib/silcutil/win32/silcwin32sockconn.c.
4552 * The server now prints the socket error message in the
4553 signoff for client. Affected file silcd/server.c.
4555 * Fixed the `created' channel information sending from router
4556 to server in JOIN command. Checks now whether the channel
4557 really was created or not and set it according that.
4559 Fixed the JOIN command to use the client entry's current
4560 ID during the joining procedure instead of the one it sent
4561 in the command (it is checked though), since it can change
4562 between the packet processing and command processing, and
4563 would just case unnecessary pain in the client end. Affected
4564 file silcd/command.c.
4566 * Fixed a channel key payload sending to use correct channel
4567 ID when the server was forced to change the channel's ID by
4568 router. Router sent the key payload with the old Channel ID.
4569 Affected file silcd/packet_receive.c.
4571 Wed Jan 16 22:26:30 EET 2002 Pekka Riikonen <priikone@silcnet.org>
4573 * Call silc_server_save_channel_key only if the key payload
4574 was provided in the JOIN command's command reply. Affected
4575 file silcd/command_reply.c.
4577 Tue Jan 15 18:49:41 EET 2002 Pekka Riikonen <priikone@silcnet.org>
4579 * Fixed silc_mp_sizeinbase to return the value correctly with
4580 MPI. Affected file lib/silcmath/mp_mpi.c.
4582 * Fixed the stop_server signal to correctly stop the scheduler
4583 and gracefully stop the server when SIGTERM or SIGINT signals
4584 are received. Affected file silcd/silcd.c.
4586 Mon Jan 7 23:38:19 CET 2002 Johnny Mnemonic <johnny@themnemonic.org>
4588 * Simple handling of TERM and HUP signals. Also added some log
4589 flushing call around. Affected file is
4592 * Fixed small bugs in silclog.c. Now buffering output will take
4593 effect after 10 seconds since startup: This will ensure that
4594 no important startup messages are lost. Also output redirection
4595 will preserve original format ([Date] [Type] message).
4596 Affected file is lib/silcutil/silclog.c.
4598 * Added two options to the config file, in the logging section:
4599 quicklogs:<yes/no>: and flushdelay:<seconds>:. Affected files
4600 lib/silcutil/silclog.[ch], silcd/serverconfig.[ch].
4602 Sun Jan 6 12:49:40 EET 2002 Pekka Riikonen <priikone@silcnet.org>
4604 * Do not print the warning about log files not being initialized
4605 more than once to avoid excess logging. Affected file is
4606 lib/silcutil/silclog.c.
4608 * Fixed the SIM compilation in lib/silcsim/Makefile.am. Fixed
4609 the SIM copying in make install in Makefile.am.pre.
4611 Sun Jan 6 01:10:21 CET 2001 Johnny Mnemonic <johnny@themnemonic.org>
4613 * Rewritten silclog APIs. Globally interesting changes follows:
4614 silc_log_set_files() changed to silc_log_set_file().
4615 silc_log_set_callbacks() changed to silc_log_set_callback().
4616 ROBOdoc documented silclog header file.
4617 SilcLogCb now returns bool to wether inihibit the default
4618 handler or not (to keep the old behaviour return always TRUE).
4619 The new APIs should also fix the problem of the
4620 silcd_error.log file that was written in the current directory.
4623 Log files streams will remain opened after silc_log_set_file()
4624 call, means less CPU usage notably on high traffic servers.
4625 File streams are now full buffered, and flushed to the disk
4626 every 5 minutes, lesses HD activity and CPU usage.
4627 Messages can be redirected, allowing admins to configure
4628 one single logfile for all server messages.
4629 the silc_log_quick global variable to activate fast-logging.
4630 Affected files lib/silcutil/silclog.[ch]
4632 * Changed some code to conform new silclog APIs. Affected
4633 files are doc/example_silcd.conf.in, silcd/server.c
4634 irssi/src/silc/core/silc-core.c, silcd/serverconfig.[ch],
4637 * Fixed a memory leak that could occur in some situations.
4638 Affected file silcd/serverconfig.c.
4640 Sat Jan 5 13:37:29 EET 2002 Pekka Riikonen <priikone@silcnet.org>
4642 * Added the silc_client_del_client to remove the client from
4643 all channels as well. Affected file lib/silcclient/idlist.c.
4645 * Fixed the client library to correctly remove the client
4646 from all channels when the client entry is being destroyed.
4647 Affected file lib/silcclient/client_notify.c, command.c.
4649 * Added auto-nicking support to the client library. If the
4650 applicatio now sets client->nickname it will be sent to the
4651 server after connecting by the library. This way for example
4652 SILCNICK (or IRCNICK) environment variables will have effect
4653 and always change the nickname automatically to whatever
4654 it is wanted. Affected file lib/silcclient/client.[ch].
4656 * Renamed silc_server_command_bad_chars to the
4657 silc_server_name_bad_chars and moved it to the
4658 silcd/server_util.[ch]. Added also new function
4659 silc_server_name_modify_bad to return nickname that
4660 includes bad characters as new nickname without those
4661 bad characters. This check and modify is now used in
4662 silc_server_new_client when the username is initially set
4663 as nickname, so it must be checked to be valid nickname.
4664 Affected file silcd/packet_receive.c.
4666 * The nickname length is now taken from the packet for real
4667 and not trusted to strlen() since it clearly can return
4668 wrong length for nickname including bad characters. This
4669 also applies to channel names. Affected file silcd/command.c.
4671 * Removed the lib/silcsilm/modules directory. Modules are now
4672 compiled into the lib/silcsim. Fixed the copying of the
4673 modules to follow symbolic links in Makefile.am.pre.
4675 Wed Jan 2 18:56:21 EET 2002 Pekka Riikonen <priikone@silcnet.org>
4677 * Fixed silc_string_regexify list creation. Fixes bugs with
4678 BAN and INVITE commands in server. The affected file is
4679 lib/silcutil/unix/silcunixutil.c.
4681 Sun Dec 30 13:41:34 EET 2001 Pekka Riikonen <priikone@silcnet.org>
4683 * Removed the command destructor entirely from the server's
4684 command and command reply routines. It is not needed, and
4685 its usage was buggy and caused crashes. Affected files are
4686 silcd/command[_reply].[ch].
4688 Fri Dec 28 12:43:22 EET 2001 Pekka Riikonen <priikone@silcnet.org>
4690 * Cancel protocol and NULL sock->protocol if timeout
4691 occurred during protocol. Affected file silcd/server.c.
4693 * Cancel protocol timeouts always before calling the final
4694 callback, to assure that after final callback is called
4695 no other state will be called for the protocol anymore.
4696 Affected file silcd/protocol.c.
4698 * Print error log if incoming connection configuration could
4699 not be found. Affected file silcd/server.c.
4701 * Fixed JOIN command to correctly save the founder mode
4702 to the client on normal SILC server, when the channel
4703 was created by the router. Affected file silcd/command.c.
4705 * Fixed LIST command (hopefully) to send correct reply
4706 packets. Affected file silcd/command.c.
4708 Thu Dec 20 16:14:52 CET 2001 Pekka Riikonen <priikone@silcnet.org>
4710 * The silc_packet_receive_process now returns FALSE if the
4711 read data was invalid packet, and TRUE if it was ok.
4713 The server now checks that if unauthenticated connection
4714 sends data and its processing fails the server will close
4715 the connection since it could be a malicious flooder.
4717 Affected files lib/silccore/silcpacket.[ch], silcd/server.c.
4719 Wed Dec 19 21:31:25 EET 2001 Pekka Riikonen <priikone@silcnet.org>
4721 * Make sure the warning about error opening a log file is
4722 printed only once and not everytime it fails (produces
4723 too much useless log). Affected file lib/silcutil/silclog.c.
4725 Wed Dec 19 18:21:51 CET 2001 Johnny Mnemonic <johnny@themnemonic.org>
4727 * Made the silc_server_daemonise() function more readable.
4728 Affected file silcd/server.c.
4730 * Pid file is now optional, the user may comment it out from
4731 the config file. Removed define SILC_SERVER_PID_FILE, we
4732 don't need a default any longer. Affected file
4733 configure.in.pre, lib/Makefile.am.pre.
4735 * Make some use of the pid file. The server now dies at startup
4736 if it detects a valid pid file on his path. The server would
4737 die anyway in this circumstance, because of the bind() failure.
4738 Affected file silcd/silcd.c.
4740 * No longer compiling lib/dotconf.
4742 Mon Dec 17 18:24:27 EET 2001 Pekka Riikonen <priikone@silcnet.org>
4744 * Fixed JOIN command parsing not to crash. Affected file
4745 lib/silcclient/command.c.
4747 * Fied the NICK_CHANGE notify to add the new client entry
4748 even it is resolved. This removes an <[unknown]> nick
4749 thingy bug in the client. Affected file is
4750 lib/silcclient/client_notify.c.
4752 * Do not try to allocate 0 bytes (efence does not like it)
4753 in lib/silccore/silccomand.c when encoding payload.
4755 * Do not take IRCNICK as nickname in Irssi SILC client since
4756 it is not possible to set nickname before hand connecting
4757 the server (TODO has an entry about adding auto-nicking
4760 * Changed the silc_server_command_pending to check whether
4761 there already exists an pending entry with the specified
4762 command, command identifier and pending callback. This is
4763 to fix IDENTIFY and WHOIS related crashes that may register
4764 multiple pending commands with same identifier. Affected
4765 file silcd/command.c.
4767 * Fixed the server to reconnect to the router even if it
4768 was already reconnecting and EOF was received. This to
4769 fix a possibility that the server wouldn't ever try to
4770 auto-reconnect to the router. Affected file silcd/server.c.
4772 Sat Dec 15 20:31:50 EET 2001 Pekka Riikonen <priikone@silcnet.org>
4774 * Fixed the server's password authentication to use the
4775 length of the locally saved password, and not the one
4776 sent in the packet. Affected file silcd/protocol.c.
4778 * Fixed same password authentication problem in the
4779 Authentication Payload handling routines in
4780 lib/silccore/silcauth.c.
4782 * Yet another password authentication problem fixed with
4783 channel password handling in silcd/command.c.
4785 Mon Dec 10 19:57:40 EET 2001 Pekka Riikonen <priikone@silcnet.org>
4787 * If first character of string in silc_parse_userfqdn is '@'
4788 then do not parse it. Affected file is
4789 lib/silcutil/silcutil.c.
4791 Sun Dec 9 22:18:50 EET 2001 Pekka Riikonen <priikone@silcnet.org>
4793 * Fixed minor bug in IDENTIFY command reply sending, which
4794 caused various weird problems during JOIN when it was
4795 resolving names for users. Affected file silcd/command.c.
4797 Sun Dec 9 19:18:41 EET 2001 Pekka Riikonen <priikone@silcnet.org>
4799 * Fixed the IDENTIFY command reply sending to chech better valid
4800 clients. It was possible to send incomplete list of replies.
4801 Affected file silcd/command.c.
4803 Sat Dec 8 15:58:31 EET 2001 Pekka Riikonen <priikone@silcnet.org>
4805 * Added silc_client_command[s]_[un]register functions now to
4806 dynamically register the commands in client library. Removed
4807 the static table of commands. This allows the client library
4808 to call commands without causing the application to know about
4809 what commands library has called.
4811 Removed the INFO command reply kludge to detect when the command
4812 was called by library. Now library use its own command reply
4813 function for INFO command.
4815 Added function silc_client_command_call to call a command.
4816 Application can use it to call command, not access the structure
4819 Now all commands that are sent by the client library (not
4820 explicitly sent by application) use own command reply functions.
4822 Affected files around lib/silcclient/ and in
4823 irssi/src/silc/core/.
4825 * Fixed the WHOIS command reply sending to chech better valid
4826 clients. It was possible to send incomplete list of replies.
4828 Fixed the WHOIS and IDENTIFY to send the request to router
4829 if normal server did not do it and did not find any results.
4831 Affected file silcd/command.c.
4833 Thu Dec 6 17:21:06 EET 2001 Pekka Riikonen <priikone@silcnet.org>
4835 * Moved the internal data from SilcClient context into its
4836 own file, not accesible to application. Affected files
4837 lib/silcclient/client.h and lib/silcclient/client_internal.h,
4838 and other files in client library.
4840 Thu Dec 6 10:37:55 EET 2001 Pekka Riikonen <priikone@silcnet.org>
4842 * Added doc/examples installation target in Makefile.am.pre.
4845 Tue Dec 4 17:43:19 EET 2001 Pekka Riikonen <priikone@silcnet.org>
4847 * If NO_SUCH_CLIENT_ID notify is received for WHOIS or IDENTIFY
4848 commands the found client entry will be removed from the
4849 cache, after notifying application about the error. Affected
4850 file lib/silcclient/command_reply.c.
4852 * Changed the /MSG to check for exact nickname user gave, and
4853 not let `nick' match `nick@host' if it is only one found. Now,
4854 user must type the exact nickname (like nick@host2) even if
4855 there are no more than one same nicks found. This is to avoid
4856 a possibility of sending nickname to wrong nickname since
4857 `nick' could match `nick@host'. Affected file is
4858 irssi/src/core/silc-servers.c.
4860 Mon Dec 3 18:49:45 EET 2001 Pekka Riikonen <priikone@silcnet.org>
4862 * Do not print "you are now server operator" or similar when
4863 giving /away command. Affected files are
4864 irssi/src/silc/core/client_ops.c, silc-servers.h.
4866 * Made the silc_server_command_pending_error_check to send
4867 the same command reply payload it received back to the
4868 original sender of the command. This way all arguments
4869 that was received by the server will be received by the
4870 client too. Affected file silcd/command.c.
4872 * Added the silc_idcache_add to return the created cache entry
4873 to a pointer. Affected file lib/silccore/silcidcache.[ch].
4875 * Add global clients to expire if they are not on any channel.
4876 This is because normal server will never know if they signoff
4877 if they are not on any channel. The cache expiry will take
4878 case of these entries. This is done by normal servers only.
4879 The affected files are silcd/command_reply.c,
4880 silcd/idlist.[ch], silcd/server and silcd/packet_receive.c.
4882 * If server receives invalid ID notification for WHOIS or
4883 IDENTIFY and the ID exists in the lists, it is removed.
4884 Affected file silcd/command_reply.c.
4886 * If NO_SUCH_CLIENT_ID is received for WHOIS or IDENTIFY command
4887 in client then client entry that it matches is searched and
4888 the nickname is printed on the screen for user. Affected
4889 file irssi/src/silc/core/client_ops.c.
4891 Mon Dec 3 11:56:59 EET 2001 Pekka Riikonen <priikone@silcnet.org>
4893 * Use cache entry expire time in the LIST command reply to
4894 purge old entries from the cache after the LIST command
4895 reply has been received. This way we don't have non-existent
4896 entries in the cache for too long. Affected file is
4897 silcd/command_reply.c.
4899 Sun Dec 2 23:29:07 EET 2001 Pekka Riikonen <priikone@silcnet.org>
4901 * If we are normal server, and we've not resolved client info
4902 in WHOIS or IDENTIFY from router, and it is global client,
4903 we'll check whether it is on some channel. If it is not
4904 then we cannot be sure about its validity and will resolve it
4905 from router. Fixes a bug in WHOIS and IDENTIFY. Affected
4906 file silcd/command.c.
4908 * Search channel by name (if possible) rather than by ID
4909 in IDENTIFY command's command reply. Affected file is
4910 silcd/command_reply.c.
4912 Sun Dec 2 13:48:46 EET 2001 Pekka Riikonen <priikone@silcnet.org>
4914 * Distribute to the channel passphrase in CMODE_CHANGE notify.
4915 Updated specs and implemented it. Affected file silcd/command.c,
4916 silcd/packet_send.c and silcd/packet_receive.c.
4918 * Implemented the <founder auth> payload handling in the JOIN
4919 command. If provided all conditions for channel joining
4920 except requirement to provide correct passphrase can be
4921 overrided by the channel founder. Updated the protocol specs.
4922 Affected file silcd/command.c.
4924 Added support for founder auth in JOIN command in client
4925 library. Fixed the parsing of the JOIN command now to support
4926 all options as they should be. The affected file is
4927 lib/silcclient/command.c.
4929 * Optimized the WHOIS and IDENTIFY commands to send the request
4930 to router only if it includes nicknames or other names. If
4931 they include only IDs then check the local cache first before
4932 routing. Affected file is silcd/command.c.
4934 * Added channels topic announcements. Affected file is
4935 silcd/packet_receive.c and silcd/server.c.
4937 * Fixed the silc_server_send_notify_topic_set to really destine
4938 the packet to channel. Affected file silcd/packet_send.c.
4940 * Fixed a crash in CHANNEL_CHANGE notify handling in the client
4941 library. Affected file lib/silcclient/client_notify.c.
4943 * Added UMODE announcements. Affected file silcd/server.c.
4945 Sat Dec 1 12:52:39 EET 2001 Pekka Riikonen <priikone@silcnet.org>
4947 * Memory leak fixes in:
4949 lib/silcutil/silcsockconn.c
4950 lib/silcske/silcske.c
4951 lib/silcske/groups.c
4953 lib/silccrypt/silcpkcs.c
4954 lib/silccore/silccommand.c
4955 lib/silccore/silcidcache.c
4960 * ROBOdoc documented the lib/silcske/groups.h file and a
4961 bit changed the interface for better.
4963 Thu Nov 29 22:12:50 EET 2001 Pekka Riikonen <priikone@silcnet.org>'
4965 * Update the client entry context in the ID cache after
4966 nick change. Affected file lib/silcclient/command.c.
4967 Fixes the CUMODE command when regaining founder privileges,
4968 and a little WHOIS problem.
4970 * Fixed silc_net_gethostbyname to correctly call the
4971 inet_ntop. Affected file lib/silcutil/silcnet.c.
4973 Thu Nov 29 19:31:23 EET 2001 Pekka Riikonen <priikone@silcnet.org>'
4975 * Added IPv6 support checking to the configure.in.pre, added
4976 also --enable-ipv6 option to override the check. Affected
4977 file configure.in.pre.
4979 * The silc_thread_create now calls the start function
4980 directly if threads support is not compiled in. Removes
4981 ugly #ifdef's from generic code. Affected files are
4982 lib/silcutil/unix/silcunixthread, win32/silcwin32thread.c.
4984 * Added silc_net_gethostby[name/addr]_async to asynchronously
4985 resolve. Affected files are lib/silcutil/silcnet.[ch].
4987 * Added support for rendering IPv6 based server, client and
4988 channel IDs. Affected file lib/silcutil/silcutil.c.
4990 * Added support for creating IPv6 based server IDs. Affected
4991 file is silcd/serverid.c.
4993 Wed Nov 28 23:46:09 EET 2001 Pekka Riikonen <priikone@silcnet.org>'
4995 * Added silc_net_gethostby[addr/name] into the
4996 lib/silcutil/silcnet.[ch]. Added IPv6 support to Unix network
4997 routines. Added silc_net_is_ip[4/6]. Affected file is
4998 lib/silcutil/unix/silcunixnet.c. All routines that take
4999 address as argument now supports both IPv4 and IPv6 addresses.
5001 Mon Nov 26 18:09:48 EET 2001 Pekka Riikonen <priikone@silcnet.org>'
5003 * Fixed LIST command reply sending in server. Affected file
5006 * Server now sends the kicker's client ID in the KICK notify
5007 to the kicked client. Affected file silcd/command.c.
5009 * The client library now parses the kickers client ID and
5010 UI displays it. Affected files lib/silcclient/client_notify.c
5011 and irssi/src/silc/core/silc-channels.c, module-formats.c.
5013 * Made all payload parsing function prototypes consistent.
5014 They all take now const unsigned char * and uint32 pair as
5015 the payload data instead of SilcBuffer. Changes all around
5016 the source tree. Other unsigned char* -> const unsigned char*
5017 changes around the tree as well.
5019 * Optimized SFTP client and server packet sending not to
5020 allocate new buffer for each packet but to recycle the
5021 first allocated buffer. Affected files are
5022 lib/silcsftp/sftp_client.c, sftp_server.c, sftp_util.[ch].
5024 * Optimized the SFTP client to use SilcList instead of
5025 SilcDList for requests, because it is faster. Affected file
5026 is lib/silcsftp/sftp_client.c.
5028 * Moved the ID Payload routines from lib/silccore/silcpayload.[ch]
5029 into lib/silccore/silcid.[ch].
5031 Renamed silcpayload.[ch] into silcargument.[ch].
5033 Mon Nov 26 15:01:53 CET 2001 Pekka Riikonen <priikone@silcnet.org>
5035 * If client entry is deleted with active key agreement
5036 session, abort the session.
5038 The silc_client_abort_key_agreement now calls the completion
5039 callback with new SILC_KEY_AGREEMENT_ABORTED status.
5041 Affected file lib/silcclient/silcapi.h, client_keyagr.c and
5044 Sun Nov 25 18:01:45 EET 2001 Pekka Riikonen <priikone@silcnet.org>
5046 * Don't use __restrict in older GCC's. Affected file is
5047 lib/silcmath/mpi/mpi-priv.h. A patch by salo.
5049 * silc_net_localhost now attempts to reverse lookup the
5050 IP/hostname. Affected file lib/silcutil/silcnet.c.
5052 * Defined <founder auth> argument to the SILC_COMMAND_JOIN
5053 command. It can be used to gain founder privileges at
5054 the same time when joining the channel.
5056 Defined that the SILC_NOTIFY_TYPE_KICKED send the
5057 kicker's client ID as well. Updated protocol specs.
5059 Defined that the server must send SILC_COMMAND_IDENTIFY
5060 command reply with error status to client who sent
5061 private message with invalid client ID.
5063 Updated the protocol specification.
5065 * Added silc_server_send_command_reply to send any
5066 command reply. Affected file silcd/packet_send.[ch].
5068 * Added silc_id_payload_encode_data to encode ID payload
5069 from raw ID data. Affected file lib/silccore/silcpayload.[ch].
5071 * The server now send IDENTIFY command reply with error
5072 status if client ID in private message is invalid. Affected
5073 file silcd/packet_receive.c.
5075 * Save the server key file with server's IP address in
5076 the filename instead of hostname. The affected file is
5077 irssi/src/silc/core/client_ops.c.
5079 Sat Nov 24 20:08:22 EET 2001 Pekka Riikonen <priikone@silcnet.org>
5081 * Typo fixes in irssi/src/fe-common/silc/module-formats.c.
5084 * Added libtool support for compiling shared objects in
5085 lib/silcsim. Affected file configure.in.pre and
5086 lib/silcsim/Makefile.am. Original patch by cras.
5088 Fri Nov 23 23:30:59 EET 2001 Pekka Riikonen <priikone@silcnet.org>
5090 * Pid file configuration, and server's config file fixes
5091 patch by toma. Updated CREDITS file.
5093 Sun Nov 18 01:34:41 EET 2001 Pekka Riikonen <priikone@silcnet.org>
5095 * Fixed silc_client_channel_message to not try to decrypt
5096 the message twice if it resolved the destination client
5097 information. This could cause of dropping one channel
5098 message. Affected file lib/silcclient/client_channel.c.
5100 Wed Nov 14 23:44:56 EET 2001 Pekka Riikonen <priikone@silcnet.org>
5102 * Added silc_client_run_one into lib/silcclient/silcapi.h and
5103 lib/silcclient/client.c. This function is used when the SILC
5104 Client is run under some other scheduler, or event loop or
5105 main loop. On GUI applications, for example this may be
5106 desired to used to run the client under the GUI application's
5107 main loop. Typically the GUI application would register an
5108 idle task that calls this function multiple times in a second
5109 to quickly process the SILC specific data.
5111 Wed Nov 14 19:16:52 CET 2001 Johnny Mnemonic <johnny@themnemonic.org>
5113 * Fixed silc_server_drop() for dropping the supplementary
5114 groups as well, this could cause a security hole on some
5117 Wed Nov 14 16:22:25 EET 2001 Pekka Riikonen <priikone@silcnet.org>
5119 * __pid_t -> pid_t in lib/silccrypt/silcrng.c. A patch by
5122 * Write PID file after dropping privileges. Added -F option
5123 to run server on foreground. A patch by debolaz.
5124 Affected files silcd/server.c, silcd/silcd.c.
5126 * Fixed MOTD to return the MOTD file server name. Affected
5127 file silcd/command.c.
5129 * Added INFO command reply handling to the Irssi SILC Client.
5130 Affected file irssi/src/silc/core/client_ops.c.
5132 Wed Nov 14 00:18:08 EET 2001 Pekka Riikonen <priikone@silcnet.org>
5134 * Fixed the silc_idcache_list_* routines to really support
5135 the dynamic list. Fixes a crash. Affected file is
5136 lib/silccore/silcidcache.c.
5138 * Fixed the LIST command reply to really call LIST command's
5139 pending callbacks. Affected file silcd/command_reply.c.
5141 Tue Nov 13 00:49:17 EET 2001 Pekka Riikonen <priikone@silcnet.org>
5143 * Update conn->local_entry->nickname after giving NICK
5144 command. Affected file lib/silcclient/command.c.
5146 Sun Nov 11 23:43:02 PST 2001 Brian Costello <bc@wpfr.org>
5148 * Added the [pid] option to the silcd configuration file
5150 Affected files: serverconfig.[ch] and silcd.c
5152 Sun Nov 11 23:56:39 EET 2001 Pekka Riikonen <priikone@silcnet.org>
5154 * Save fingerprint in WHOIS command reply in server.
5155 Affected file silcd/command_reply.c.
5157 * Fixed NICK commands pending callback registration.
5158 Affected file lib/silcclient/command.c.
5160 Sun Nov 11 10:49:10 EET 2001 Pekka Riikonen <priikone@silcnet.org>
5162 * Use ++server->cmd_ident when sending commands in server,
5163 instead of random number. Affected file silcd/command.c.
5165 * Fixed GETKEY command reply to call actually GETKEY pending
5166 command callbacks. Affected file silcd/command_reply.c.
5168 * A bit stricter check for nicknames. Check for same nickname
5169 in NICK command also. Affected file silcd/command.c.
5171 * Do not call INFO command everytime client ID changes, only
5172 during first connecting. Affected file lib/silcclient/client.c.
5174 * Set the new nickname only after successful command reply for
5175 NICK command is returned by server. Affected file
5176 lib/silcclient/command.c.
5178 * Remove nicknames from nicklist during server_signoff notify.
5179 Should fix /NAMES bit more. The affected file is
5180 irssi/src/silc/core/silc-channels.c.
5182 * Added `fingerprint' field to the SilcIDListData in the
5183 silcd/idlist.h to hold the fingerprint of the client's
5186 Send the fingerprint of the client's public key in WHOIS
5189 Affected files silcd/command.c, and silcd/idlist.[ch].
5191 * Added silc_fingerprint into lib/silcutil/silcutil.[ch] to
5192 create fingerprint from given data.
5194 * Show the fingerprint of the client's public key in WHOIS.
5195 Affected files irssi/src/module-formats.[ch] and
5196 irssi/src/silc/core/client_ops.c.
5198 * Format the multiple same nicknames also during JOIN and
5199 NICK_CHANGE notifys. Affected file is
5200 lib/silcclient/client_notify.c.
5202 * Do not print error on screen for invalid private message
5203 payload since it can come if someone is sending private
5204 messages with wrong key. Affected file
5205 lib/silccore/silcprivate.c.
5207 * Fixed multiple concurrent /PING crash. Affected file
5208 lib/silcclient/command.c.
5210 * Changed the wrong ID encoding. All IP addresses must be
5211 in MSB first order in encoded format. They were encoded
5212 wrong and was in LSB format. Affected files are
5213 silcd/serverid.c, lib/silcutil/silcutil.c.
5215 * Remove silc_net_addr2bin_ne from lib/silcutil/silcnet.[ch].
5217 * Call the `connect' client operation through the scheduler
5218 in case of error. Affected file lib/silcclient/client.c.
5220 * Call the `failure' client operation even if the error
5221 occurred locally during a protocol. Affected file is
5222 lib/silcclient/protocol.c.
5224 * Added support of sending LIST command to router from normal
5225 server. This way normal server can get list of all channels
5226 in the network too. Fixed the channel list sending in the
5227 server too. Affected files are silcd/command.c, and
5228 silcd/command_reply.[ch].
5230 * Added silc_server_update_channels_by_server and
5231 silc_server_remove_channels_by_server. They are used during
5232 disconnection of primary router and in backup router protocol.
5233 Affected file silcd/server_util.[ch], silcd/server.c and
5234 silcd/server_backup.c.
5236 * Fixed channel adding to global list in IDENTIFY command
5237 reply in server. Affected file silcd/command_reply.c.
5239 Sat Nov 10 21:39:22 EET 2001 Pekka Riikonen <priikone@silcnet.org>
5241 * If the incoming packet type is REKEY or REKEY_DONE process
5242 that packet always synchronously. Fixes yet another MAC
5243 failed error on slow (dialup) connections. Affected file
5244 lib/silcclient/client.c and silcd/server.c.
5246 Thu Nov 8 22:21:09 EET 2001 Pekka Riikonen <priikone@silcnet.org>
5248 * Call check_version SKE callback for initiator too. Affected
5249 file lib/silcske/silcske.c.
5251 * Implemented fix for security hole found in the SKE that was
5252 fixed in the specification few days back; the initiator's
5253 public key is now added to the HASH value computation.
5254 Added backwards support for the old way of doing it too, for
5255 old clients and old servers. Affected file is
5256 lib/silcske/silcske.c.
5258 * Enabled mutual authentication by default in SKE. If initiator
5259 is not providing mutual authentication the responder will
5260 force it. This will provide the proof of posession of the
5261 private key for responder. The affected files are
5262 lib/silcclient/protocol.c and silcd/protocol.c.
5264 * Do not cache anymore the server's public key during SKE.
5265 We do mutual authentication so the proof of posession of
5266 private key is done, and if the server is authenticated in
5267 conn auth protocol with public key we must have the public
5268 key already. Affected file silcd/protocol.c.
5270 * Added new global debug variable: silc_debug_hexdump. If
5271 it is set to TRUE SILC_LOG_HEXDUMP will be printed. Affected
5272 file lib/silcutil/silclog.[ch].
5274 * Fixed compilation warning due to char * -> const char *.
5275 Affected files lib/silcutil/silcnet.h, and
5276 lib/silccore/silcauth.[ch].
5278 Wed Nov 7 20:43:03 EET 2001 Pekka Riikonen <priikone@silcnet.org>
5280 * Fixed CMODE command when new channel key was created. If
5281 the creation failed the old key was removed. Next time giving
5282 same command would crash the server since the old key was
5283 freed already. Affected file silcd/command.c.
5285 * Fixed the silc_server_announce_get_channels to not crash
5286 on reconnect. Affected file silcd/server.c.
5288 Wed Nov 7 17:15:07 EET 2001 Pekka Riikonen <priikone@silcnet.org>
5290 * Added silc_log_set_debug_string function to set a regex
5291 string to match for debug output. Only the function names,
5292 or filenames matching the given debug string is actually
5293 printed. This way it is possible to filter out those debug
5294 strings that user is not interested in.
5296 Fixed a bug in silc_string_regexify.
5298 Affected files lib/silcutil/silclog.[ch], and
5299 lib/silcutil/unix/silcunixutil.c.
5301 * Changed the -d options in both server and Irssi SILC client
5302 to take the debug string as argument. Affected files
5303 silcd/silcd.c and irssi/src/silc/core/silc-core.c.
5305 Tue Nov 6 21:31:54 EET 2001 Pekka Riikonen <priikone@silcnet.org>
5307 * Added silc_hash_babbleprint to create a Bubble Babble
5308 Encoded fingerprint. The encoding is developed by Antti
5309 Huima (draft-huima-babble-01.txt), and it creates human
5310 readable strings out of binary data. Affected file
5311 lib/silccrypt/silchash.[ch].
5313 * Print the babble print now in addition of fingerprint as well
5314 in Irssi SILC client. Affected files are
5315 irssi/src/fe-common/silc/module-formats.[ch],
5316 irssi/src/fe-common/silc/core/client_ops.c.
5318 Sun Nov 4 23:37:28 EET 2001 Pekka Riikonen <priikone@silcnet.org>
5320 * Fixed a security problem found in SKE. The initiator's
5321 public key too is now added to the HASH hash value creation
5322 which is signed by the responder to create the SIGN value.
5323 This will prevent anyone in the middle to lie to the responder
5324 about the initiator's public key. If this is done now, the
5325 man in the middle will get caught. Updated the protocol
5328 Sun Nov 4 11:43:53 EET 2001 Pekka Riikonen <priikone@silcnet.org>
5330 * Better installation directory handling. Configure module
5331 paths and other paths automatically to example_silc* files
5332 in doc/. A patch by toma.
5334 * Fixed compiler warning from MPI library, and from SILC RNG.
5337 * Added SILC_SERVER_PID_FILE to define the pid file for server.
5338 It can be configured with ./configure. A patch by toma.
5340 Sat Nov 3 23:48:23 EET 2001 Pekka Riikonen <priikone@silcnet.org>
5342 * Find correct make to use in prepare-clean. A patch by
5343 toma. Affected file prepare-clean.
5345 Sat Nov 3 22:04:00 PST 2001 Brian Costello <bc@mksecure.com>
5347 * Added irssi variables use_auto_addr, auto_bind_ip,
5348 auto_bind_port and auto_public_ip.
5350 * Changed the interface for silc_client_send_key_agreement
5351 in lib/silcclient/silcapi.h
5355 irssi/src/silc/core/silc-core.c
5357 lib/silcclient/silcapi.h
5358 irssi/src/silc/core/silc-channels.c
5359 lib/silcclient/client_keyagr.c
5362 Sat Nov 3 17:48:55 EET 2001 Pekka Riikonen <priikone@silcnet.org>
5364 * Added silc_pkcs_public_key_compare to compare two
5365 public keys. Affected file lib/silccrypt/silcpkcs.[ch].
5367 * Check that the client who set the founder mode on the
5368 channel is the same client that is giving the founder
5369 mode to itself. It is done by comparing the saved public
5370 key (it is saved even in the authentication is passphrase).
5371 Affected file silcd/command.c.
5373 Fri Nov 2 18:52:08 EST 2001 Pekka Riikonen <priikone@silcnet.org>
5375 * Do not process packet for disconnected socket connection.
5376 Affected file lib/silccore/silcpacket.c.
5378 * Process the DISCONNECT packet through scheduler in the
5379 client library. Affected file lib/silcclient/client.c.
5381 * Fixed the silc_client_packet_parse to not to increase
5382 the packet sequence number if the conn->sock and the
5383 current socket connection is not same. This can happen
5384 for example during key agreement when the conn includes
5385 multiple socket connections (listeners). Affected file
5386 lib/silcclient/client.c.
5388 * The sender of the file transfer request now provides also
5389 the pointer (listener) for the key exchange protocol. If
5390 the listener cannot be created then it sends empty key
5391 agreement and lets the receiver provide the listener.
5393 Added `local_ip' and `local_port' arguments to the
5394 silc_client_file_send. If they are provided they are used,
5395 if not then it will attempt to find local IP address, if
5396 not found or bind fails then the remote client will provide
5399 Affected files are lib/silcclient/client_ftp.c and
5400 lib/silcclient/silcapi.h.
5402 * Extended the FILE SEND command to support defining the
5403 local IP and port for key exchange listener. They are
5404 optional. Affected file irssi/src/silc/core/silc-servers.c.
5406 Thu Nov 1 22:10:07 EST 2001 Pekka Riikonen <priikone@silcnet.org>
5408 * Defined to WHOIS command reply the sending of fingerprint
5409 of the client's public key (if the proof of posession of the
5410 corresponding private key is verified by the server).
5411 Updated to the protocol specification.
5413 * Added support of receiving the client's public key's
5414 fingerprint in command reply in client library. Affected
5415 file is lib/silcclient/command_reply.c, and
5416 lib/silcclient/idlist.[ch].
5418 Thu Nov 1 18:06:12 EST 2001 Pekka Riikonen <priikone@silcnet.org>
5420 * Do not send over 128 chars long nickname to the server
5421 in NICK command. Affected file lib/silcclient/command.c.
5423 * Do not send over 256 chars long channel names to the server
5424 in JOIN command. Affected file lib/silcclient/command.c.
5426 Tue Oct 30 22:48:59 EST 2001 Pekka Riikonen <priikone@silcnet.org>
5428 * Assure that silc_server_close_connection cannot be called
5429 twice for same socket context. Affected file is
5432 Tue Oct 30 16:58:14 EST 2001 Pekka Riikonen <priikone@silcnet.org>
5434 * Send error message to application if opening file for
5435 writing during file transfer fails. Affected file is
5436 lib/silcclient/client_ftp.c.
5438 Remove all file transfer sessions for a client that we're
5439 removing from ID cache.
5441 Affected file is lib/silcclient/client_ftp.c.
5443 * Fixed silc_net_addr2bin to return correct address. Affected
5444 file lib/silcutil/[unix/win32]/silc[unix/win32]net.c.
5446 * Fixed file transfer session removing on signoff notify.
5447 Affected file irssi/src/silc/core/silc-servers.c.
5449 * Added the SilcClientFileError to be returned in the monitor
5450 callback. Added NO_SUCH_FILE and PERMISSION_DENIED errors.
5451 Affected file lib/silcclient/silcapi.h.
5453 Mon Oct 29 17:43:04 EST 2001 Pekka Riikonen <priikone@silcnet.org>
5455 * Fixed a crash in silc_client_ftp_free_sessions and
5456 silc_client_ftp_session_free_client. Affected file
5457 lib/silcclient/client_ftp.c.
5459 * Added `disabled' field in the SilcChannelEntry in the server
5460 to indicate if the server entry is disabled. Affected file
5461 silcd/idlist.h, silcd/command[_reply].c.
5463 * SILC server adds now /var/run/silcd.pid everytime it is
5464 started. Affected file silcd/silcd.c.
5466 * Added silc_server_packet_send_clients to send a packet to
5467 the provided table of client entries. Affected file
5468 silcd/packet_send.[ch].
5470 * Fixed a crash in client resolving in client_prvmsg.c in
5471 client library. Affected file lib/silcclient/client_prvmsg.c.
5473 * Do not actually remove the client directly from ID cache
5474 during SERVER_SIGNOFF, but invalidate it. This way we
5475 preserve the WHOWAS info for the client. Affected file
5476 silcd/server_util.c.
5478 * Fixed SERVER_SIGNOFF notify handling in the server. The
5479 server is now able to process incoming SERVER_SIGNOFF notify
5480 for a server that it doesn't even know about. It will remove
5481 the clients provided in the notify. Affected file
5482 silcd/packet_receive.c.
5484 * Check for partial packet in data queue after every packet that
5485 was found from the queue. Return and wait for more data if
5486 there is partial data in queue. Affected file is
5487 lib/silccore/silcpacket.c.
5489 Sun Oct 28 18:46:27 EST 2001 Pekka Riikonen <priikone@silcnet.org>
5491 * Added SilcClietFileError enum to indicate error in
5492 file transfer. Added SILC_CLIENT_FILE_MONITOR_KEY_AGREEMENT
5493 and SILC_CLIENT_FILE_MONITOR_ERROR new monitor statuses.
5494 Affected files lib/silcclient/silcapi.h and
5495 lib/silcclient/client_ftp.c.
5497 * Check that newsize in silc_buffer_realloc is larger than
5498 the old buffer's size. Affected file lib/silcutil/silcbufutil.h.
5500 * Added better monitor of file transfers. It now monitors
5501 key agreement protocol during the file transfer too. Added
5502 error reporting too. Affected files
5503 irssi/src/silc/core/silc-servers.c,
5504 irssi/src/fe-common/silc/module-formats.[ch].
5506 * Wrote a help file for FILE command.
5508 * Added silc_rng_global_get_byte_fast to get not-so-secure
5509 random data as fast as possible. Random data is read from
5510 /dev/urandom if available and from the SILC RNG if not
5511 available. It is used in padding generation. Affected file
5512 lib/silccrypt/silcrng.[ch].
5514 * All packets in client library are now processed synchronously.
5515 Optimized packet processing a lot. Affected file
5516 lib/silcclient/client.c.
5518 * All server connection packets are processing synchronously
5519 now in server, to optimize packet processing. Affected file
5522 * Include files are installed now only in Toolkit distribution
5523 if make install is given. Affected files: all Makefile.am's.
5525 Thu Oct 25 22:44:06 EDT 2001 Pekka Riikonen <priikone@silcnet.org>
5527 * Assure that silc_client_notify_by_server_resolve does not
5528 resolve the client information multiple times. If it cannot
5529 be found by the first it cannot be found at all. Affected
5530 file lib/silcclient/client_notify.c.
5532 * Fixed WHOWAS command reply calling. Affected file
5533 lib/silcclient/command_reply.c.
5535 * Removed all references to silc_idlist_get_client from the
5536 Irssi SILC client since that call is internal call used by
5537 the library. The Irssi SILC client will use now client
5538 retrieval functions found in silcapi.h.
5540 * Fixed a bug in resolving nickname info before sending
5541 private message. It used freed memory. Affected file
5542 irssi/src/silc/core/silc-servers.c.
5544 Thu Oct 25 19:04:49 EDT 2001 Pekka Riikonen <priikone@silcnet.org>
5546 * Assure my_channels statistics cannot go negative in server.
5547 Affected files silcd/server.c, silcd/server_util.c.
5549 Wed Oct 24 19:53:05 EDT 2001 Pekka Riikonen <priikone@silcnet.org>
5551 * Upgraded dotconf 1.0.2 to 1.0.6 in lib/dotconf.
5553 Tue Oct 23 13:51:19 EEST 2001 Pekka Riikonen <priikone@silcnet.org>
5555 * Win32 Toolkit changes. Affected files
5556 win32/silc.dsw, win32/libsilc/libsilc.def,
5557 win32/libsilcclient/libsilc.def,
5558 lib/silcutil/silcutil.c, and
5559 lib/sftp/sftp_fs_memory.c.
5561 Mon Oct 22 16:35:05 EDT 2001 Pekka Riikonen <priikone@silcnet.org>
5563 * Added silc_net_localip to return local host's IP address.
5564 Affected file lib/silcutil/silcnet.[ch].
5566 * If key exchange or rekey protocol is active for a connection
5567 parse all packets syncronously since there might be packets
5568 in packet queue that we are not able to process without first
5569 processing packets before them. Affected file silcd/server,
5570 lib/silcclient/client.c.
5572 * SilcPacketParserCallback now returns TRUE or FALSE to indicate
5573 whether library should continue processing the packet.
5574 Affected file lib/silccore/silcpacket.h.
5576 * Added SilcSFTPMonitor callback, SilcSFTPMonitors and
5577 SilcSFTPMonitorData to SFTP server to monitor various
5578 SFTP client requests. Affected file lib/silcsftp/silcsftp.h,
5579 lib/silcsftp/sftp_server.c.
5581 * Added silc_file_size to return file size. Affected file
5582 lib/silcutil/silcutil.[ch].
5584 * Implemented the file transfer support for the client library.
5585 Added preliminary support for simple client to client one-file
5586 transmission. Affected file lib/silcclient/client_ftp.c,
5587 lib/silccilent/client.[ch].
5589 * Added new local command FILE to the Irssi SILC Client.
5590 It is used to perform the file transfer. It has subcommands
5591 SEND, RECEIVE, SHOW and CLOSE. Affected files
5592 irssi/src/silc/core/client_ops.c,
5593 irssi/src/silc/core/silc-server.[ch].
5595 Mon Oct 22 12:50:08 EDT 2001 Pekka Riikonen <priikone@silcnet.org>
5597 * Relay the SILC_PACKET_FTP in the server. Affected files
5598 silcd/server.c and silcd/packet_receive.c.
5600 Sun Oct 21 20:21:02 EDT 2001 Pekka Riikonen <priikone@silcnet.org>
5602 * Renamed silc_file_read and silc_file_write to functions
5603 silc_file_readfile and silc_file_writefile. Added function
5604 silc_file_open and silc_file_close. Affected files
5605 lib/silcutil/silcutil.[ch].
5607 Thu Oct 18 20:58:13 EDT 2001 Pekka Riikonen <priikone@silcnet.org>
5609 * Resolve the client info when received private message or
5610 channel message for a client which nickname we don't know.
5611 Affected files lib/silcclient/client_prvmsg.c and
5612 lib/silcclient/client_channel.c.
5614 * Do not crash in /KEY if client is not connected. Affected
5615 file irssi/src/silc/core/silc-channels.c.
5617 * Added SilcClientStatus field to the SilcClientEntry in the
5618 lib/silcclient/idlist.h.
5620 Added SILC_CLIENT_STATUS_RESOLVING to mark that the entry
5621 is incomplete and is being resolved, it won't be resolved
5624 Make sure also that USERS command reply does not resolve
5625 twice information. Affected file is
5626 lib/silcclient/command_reply.c.
5628 Make sure that silc_client_get_clients_by_list does not
5629 resolve twice same information.
5631 * Check for valid client->id in the silc_server_free_client_data.
5632 Affected file silcd/server.c.
5634 * Fixed /GETKEY nick@server not to crash if the server entry
5635 is not found. Affected file lib/silcclient/command.c.
5637 * Fixed the silc_server_check_cmode_rights to check the
5638 requested modes correctly. Affected file silcd/command.c.
5640 Thu Oct 18 12:10:22 CEST 2001 Pekka Riikonen <priikone@silcnet.org>
5642 * Better checks for non-printable chars in nick added.
5643 Affected file silcd/command.c.
5645 Thu Oct 18 09:18:58 EDT 2001 Pekka Riikonen <priikone@silcnet.org>
5647 * Call the silc_server_udpate_servers_by_server in the
5648 primary router that comes back online in the backup resuming
5649 protocol. Otherwise it routes packets wrong. Affected file
5650 silcd/server_util.[ch], silcd/server_backup.c.
5652 Wed Oct 17 16:51:18 EDT 2001 Pekka Riikonen <priikone@silcnet.org>
5654 * Added SILC_STR_UI8_[N]STRING[_ALLOC] formats to the
5655 lib/silcutil/silcbuffmt.[ch].
5657 * Redefined the SILC packet header to include the padding
5658 length. Affected file lib/silccore/silcpacket.[ch].
5660 * Added SILC_PACKET_PADLEN_MAX macro to return the padding
5661 length for maximum padding up to 128 bytes). Affected
5662 file lib/silccore/silcpacket.h.
5664 * Removed all backwards support for old 0.5.x MAC thingies.
5665 The SILC packet header change makes it impossible to be
5666 backwards compatible.
5668 * Send the ENDING packet with timeout in the backup resuming
5669 protocol. This is to assure that all routers has connected
5670 to the primary router. Affected file silcd/server_backup.c.
5672 * Changed the RNG to take the first IV from random data. It
5673 used to take it from zero actually. Changed the RNG also
5674 to use /dev/urandom during session. /dev/random is used
5675 in initialization. Affected file lib/silccrypt/silcrng.[ch].
5677 Tue Oct 16 20:45:49 EDT 2001 Pekka Riikonen <priikone@silcnet.org>
5679 * Changed the SILC packet header to have the first two bytes
5680 (the packet length) encrypted. Affected files aroung the
5681 code tree, lib/silccore/silcpacket.[ch]. Removed the
5682 SilcPacketCheckDecrypt callback. It is not needed anymore
5683 since the silc_packet_receive_process will determine now
5684 whether the packet is normal or special.
5686 * Implemented the unidirectional MAC keys. Affected files
5687 lib/silcske/silcske.c, silcd/protocol.c and
5688 lib/silcclient/protocol.c.
5690 * Implemented the packet sequence number to the MAC computation.
5691 Affected files lib/silccore/silcpacket.c, silcd/protocol.c,
5692 silcd/packet_send.c, silcd/server.c, lib/silcclient/client.c,
5693 lib/silcclient/protocol.c.
5695 Mon Oct 15 17:42:55 EDT 2001 Pekka Riikonen <priikone@silcnet.org>
5697 * Allow backup router to announce servers. All servers
5698 announced by backup router are added to the global list
5699 automatically. Update hte server's socket to our primary
5700 router also when backup router announces a server.
5701 Affected file silcd/packet_receive.c.
5703 * Do not update the client->router in the function
5704 silc_server_udpate_clients_by_server if the client is on
5705 global list. We might fail to find any specific server
5706 for locally connected clients and local cell clients. They
5707 should still use the `from' and not `to' as client->router.
5708 This fixes backup router resuming protocol. Affected file
5709 silcd/server_util.c.
5711 * Decrease channel statistics count only if the channel
5712 deletion worked. Affected files are silcd/server.c and
5713 silcd/server_util.c.
5715 * Added silc_server_update_servers_by_server to update origin
5716 of all server entries. Used during backup router protocol.
5717 Affected files silcd/server_util.[ch], silcd/server.c. and
5718 silcd/backup_router.c.
5720 * ROBODoc documented the lib/silccrypt/silchmac.h. Added new
5721 function silc_hmac_init, silc_hmac_update, silc_hmac_final,
5722 silc_hmac_get_hash and silc_hmac_get_name. Affected file
5723 lib/silccrypt/silchmac.c.
5725 Sun Oct 14 18:28:22 EDT 2001 Pekka Riikonen <priikone@silcnet.org>
5727 * Assure that router cannot reroute the same channel message
5728 to the sender. Affected file silcd/packet_receive.c.
5730 Sat Oct 13 12:46:18 EDT 2001 Pekka Riikonen <priikone@silcnet.org>
5732 * Made better checks that the channel message is not sent
5733 to the router it came from. Affected file is
5734 silcd/packet_send.c. Fixed memory leak too.
5736 * Announce informations for incoming router connection, but
5737 only after checking if it is replaced by backup router.
5738 Affected file silcd/packet_receive.c.
5740 Fri Oct 12 18:37:24 EDT 2001 Pekka Riikonen <priikone@silcnet.org>
5742 * Fixed the backup resuming protocol to work in multiple
5743 router environment. Affected file silcd/server_backup.c.
5745 * Route packet only to one router in the function
5746 silc_server_packet_send_to_channel. Affected file is
5747 silcd/packet_send.c.
5749 * Fixed silc_server_send_notify_dest to set the broadcast
5750 flag. Fixed the silc_server_send_notify_topic to actually
5751 send the TOPIC_CHANGE notify and not SERVER_SIGNOFF notify.
5752 Affected file silcd/packet_send.c.
5754 * Changed the SFTP Filesystem interface. Changed the
5755 SilcSFTPFilesystemStruct to SilcSFTPFilesystemOps to include
5756 the filesystem operation function. The SilcSFTPFilesystem
5757 is now a context that is allocated by all filesystem allocation
5758 functions and it already includes the operations structure
5759 and filesystem specific context. It is given as argument
5760 now to the silc_sftp_server_start. This made the interface
5761 a bit cleaner. Affected file lib/silcsftp/silcsftp[_fs].h,
5762 lib/silcsftp/sftp_fs_memory.c and sftp_server.c.
5764 Thu Oct 11 22:19:26 EDT 2001 Pekka Riikonen <priikone@silcnet.org>
5766 * Changed the backup router adding and getting interfaces
5767 in the server. The router that will be replaced by the
5768 specified backup router is now sent as argument. Affected
5769 files silcd/serverconfig.[ch], silcd/backup_router.[ch], and
5772 * Added silc_net_addr2bin_ne to return the binary form of
5773 the IP address in network byte order. Affected files
5774 lib/silcutil/[unix/win32].silc[unix/win32]net.[ch].
5776 Thu Oct 11 12:14:19 EDT 2001 Pekka Riikonen <priikone@silcnet.org>
5778 * Check for existing server ID in silc_server_new_server
5779 and in silc_server_connect_to_router_final and remove the
5780 old entry if it exists. Affected file silcd/packet_receive.c,
5783 * Send the channel message always to only one router, either
5784 in upstream or downstream. Affected file is
5785 silcd/packet_send.c.
5787 Tue Oct 9 17:45:43 EDT 2001 Pekka Riikonen <priikone@silcnet.org>
5789 * Wrote the definition of the backup resuming protocol to the
5790 protocol specification.
5792 * Removed one redundant channel key generation from normal
5793 server during joining procedure. Removed one redundant
5794 channel key sending from server to router during joining
5795 procedure. Affected file silcd/command.c.
5797 * Made minor bugfixes to the backup router resuming protocol.
5798 Affected file silcd/server_backup.c, server.c.
5800 Mon Oct 8 16:47:42 EDT 2001 Pekka Riikonen <priikone@silcnet.org>
5802 * Added --disable-asm configuration option. Affected files
5803 configure.in.pre, lib/silcmath/mpi/configure.in. A patch
5806 * Implemented the backup resuming protocol that is used to
5807 resume the primary router position in the cell after the
5808 primary router comes back online. Affected files
5809 silcd/server_backup.[ch], silcd/server, silcd/packet_receive.c,
5810 and silcd/server_util.[ch].
5812 Sun Oct 7 12:29:25 EDT 2001 Pekka Riikonen <priikone@silcnet.org>
5814 * Sleep two (2) seconds after sending QUIT command to server.
5815 Affected file lib/silcclient/command.c.
5817 * Assure that if outgoing data buffer is pending do not force
5818 send any data. Affected file silcd/packet_send.c.
5820 * Assure that if outgoing data buffer is pending do not force
5821 send any data. Affected file lib/silcclient/client.c.
5823 * Implemented the backup router support when the primary router
5824 goes down. The servers and routers can now use the backup
5825 router as new primary router without loosing connectivity.
5827 Sat Oct 6 21:18:54 EDT 2001 Pekka Riikonen <priikone@silcnet.org>
5829 * Added new SILC_IDLIST_STATUS_DISABLED flag for entries
5830 in the server to indicate disabled entry. All data read
5831 from the connection will be ignored and no data is sent
5832 for entry that is disabled. Affected files are
5833 silcd/idlist.h, silcd/server.c.
5835 Fri Oct 5 00:03:29 EDT 2001 Pekka Riikonen <priikone@silcnet.org>
5837 * Created SFTP client and server test programs in the
5838 lib/silcsftp/tests directory.
5840 Wed Oct 3 23:31:42 EDT 2001 Pekka Riikonen <priikone@silcnet.org>
5842 * Implemented memory filesystem (virtual filesystem) for
5843 SFTP server. Affected file lib/silcsftp/silcsftp_fs.h,
5846 Sun Sep 30 22:10:57 EEST 2001 Pekka Riikonen <priikone@silcnet.org>
5848 * Implemented the SFTP (SSH File Transfer Protocol) to the
5849 lib/silcsftp. It includes SFTP client and SFTP server
5852 Sun Sep 30 10:35:44 EEST 2001 Pekka Riikonen <priikone@silcnet.org>
5854 * Moved lib/silccore/silcprotocol.[ch] to the
5855 lib/silcutil library.
5857 * Added silc_buffer_format_vp and silc_buffer_unformat_vp to
5858 take variable argument list pointer as argument. Affected
5859 file lib/silcutil/silcbuffmt.[ch].
5861 * Added silc_buffer_set function that is used to set data
5862 to a SilcBuffer that is not allocated at all (SilcBufferStruct).
5863 Affected file lib/silcutil/silcbuffer.h.
5865 * Changed various routines in the core library to use the new
5866 silc_buffer_set instead of allocating new buffer only for
5869 * Added 64-bit value formatting and unformatting support to the
5870 silc_buffer_[un]format routines. Affected file is
5871 lib/silcutil/silcbuffmt.[ch].
5873 Added also 64-bit macros: SILC_GET64_MSB and SILC_PUT64_MSB,
5874 to includes/bitmove.h.
5876 Fri Sep 28 21:30:10 EEST 2001 Pekka Riikonen <priikone@silcnet.org>
5878 * Fixed channel user mode saving in client library. Affected
5879 file lib/silcclient/command[_reply].c.
5881 Thu Sep 27 22:52:30 EEST 2001 Pekka Riikonen <priikone@silcnet.org>
5883 * Defined the file transfer to the SILC Protocol. Added
5884 new packet type SILC_PACKET_FTP and defined File Transfer
5885 Payload. The mandatory file transfer protocol is SFTP
5886 (SSH File Transfer Protocol). Affected file in addition
5887 of the internet draft is lib/silccore/silcpacket.h.
5889 * Deprecated the SILC_PACKET_CELL_ROUTERS and defined new
5890 packet SILC_PACKET_RESUME_ROUTER instead. The new packet
5891 is used as part of backup router protocol when the primary
5892 router of the cell is back online and wishes to resume
5893 the position as primary router.
5895 * Redefined the MAC generation keys in the protocol. The
5896 same key is not used anymore in both direction. Both
5897 direction will now use different keys for sending and
5898 receiving. This fixes a potential security flaw. This
5899 change causes incompatibilities in the protocol.
5901 * Redefined also the MAC computation from the packet.
5902 An packet sequence number is now added to the MAC
5903 computation. This prevents possible replay attacks against
5904 the protocol. This change too causes incompatibilities
5907 Added `sequence' field to the SilcPacketContext to hold
5908 the current sequence number for the packet.
5910 Wed Sep 26 20:15:22 EEST 2001 Pekka Riikonen <priikone@silcnet.org>
5912 * Added `created' field to the SilcIDListData in the file
5913 silcd/idlist.h to indicate the time when the entry was
5916 * Added `created' field to the SilcChannelEntry too. Affected
5917 file silcd/idlist.h.
5919 * Added `creation_time' aguments to all the announcement functions
5920 in the server. If it is provided then only the entries that
5921 was created after the provided time frame are actually
5922 announced. Affected file silcd/server.[ch].
5924 * The protocol says that the Channel ID's IP address must be
5925 based on the router's IP address. Added check for this in
5926 the silc_server_new_channel when processing incoming New Channel
5927 Payload. Affected file silcd/packet_receive.c.
5929 * Print out the correct version with --version in SILC client.
5930 Affected file irssi/src/silc/core/silc-core.c.
5932 Mon Sep 24 17:19:00 EEST 2001 Pekka Riikonen <priikone@silcnet.org>
5934 * Fixed WHOWAS command to check for completnes of the client
5935 entry always, not just when the command is coming from client.
5936 Affected file silcd/command.c.
5938 * Added new function silc_server_packet_queue_purge to purge the
5939 outgoing data queue to the network. After the function returns
5940 it is guaranteed that the outgoing packet queue is empty.
5941 Affected file silcd/packet_send.[ch].
5943 * Purge the outgoing packet queue in the rekey protocol's final
5944 callback to assure that all rekey packets go to the network
5945 before quitting the protocol. Affected file silcd/server.c.
5947 * Added silc_client_packet_queue_parse as similar function as
5948 in server to the client library. The affected file is
5949 lib/silcclient/client.c.
5951 Sun Sep 23 15:15:53 EEST 2001 Pekka Riikonen <priikone@silcnet.org>
5953 * Splitted silcd/server.c and created silcd/server_util.[ch]
5954 for utility functions.
5956 * Added new socket flag SILC_SF_DISABLED to indicate that the
5957 connection is open but nothing can be sent to or received from
5958 the connection. Affected file lib/silcutil/silsockconn.[ch].
5959 The checking for disabled socket is checked in the low level
5960 silc_socket_write and silc_socket_read functions.
5962 Thu Sep 20 23:11:28 EEST 2001 Pekka Riikonen <priikone@silcnet.org>
5964 * Allow only nicknames and channel names that fits into the
5965 7-bit unsigned char ASCII set. Affected file silcd/command.c.
5967 Thu Sep 20 18:04:12 EEST 2001 Pekka Riikonen <priikone@silcnet.org>
5969 * When processing JOIN command reply in server check that if
5970 the channel exists in our global list we'll move it the local
5971 list. Affected file silcd/command_reply.c.
5973 * Fixed the check whether client is joined on the channel already
5974 in JOIN command. Affected file lib/silcclient/command.c.
5976 * Fixed the JOIN command reply to check whether the channel
5977 already exists. Affected file lib/silcclient/command_reply.c.
5979 Wed Sep 19 22:58:32 EEST 2001 Pekka Riikonen <priikone@silcnet.org>
5981 * Added silc_ske_status_string to map the SKE error numbers
5982 to readable strings. The affected files are
5983 lib/silcske/silcske[_status].[ch].
5985 Tue Sep 18 22:50:41 EEST 2001 Pekka Riikonen <priikone@silcnet.org>
5987 * Do not show the private channels on the WHOIS channel list
5988 as it is not allowed by the protocol. The affected file is
5991 Sun Sep 16 12:32:58 EEST 2001 Pekka Riikonen <priikone@silcnet.org>
5993 * Assure that the packet length digged from the actual packet
5994 is something sensible in the silc_packet_decrypt_rest_special
5995 in lib/silccrypt/silcpacket.c.
5997 * Free and NULL the allocated pointer in silc_hmac_alloc if
5998 the HMAC allocation fails. The affected file is
5999 lib/silccrypt/silchmac.c.
6001 * Print the selected security properties to the log files in
6002 the server. Affected file silcd/protocol.c.
6004 * Add SKE's reference counter even if calling the completion
6005 callback manually. Otherwise it goes negative, although it
6006 does not cause any problems. The affected file is
6007 lib/silcske/silcske.c.
6009 * Remove the client entry with short timeout after giving the
6010 KILL command. Affected file lib/silcclient/command.c.
6012 * Fixed to send error reply in WHOIS and IDENTIFY commands in
6013 case all found clients are already disconnected (WHOWAS would
6014 found them) in the server. Affected file silcd/command.c.
6016 * Update the last_receive (time of last data received) to be
6017 updated only when received private or channel message so that
6018 the idle time showed in WHOIS makes more sense.
6020 * Added boolean field `valid' in to the SilcClientEntry in the
6021 client library to indicate whether the entry is valid or not.
6022 This fixes the nickname change bug on channel when changing
6023 the nickname to be same than the old (like nick to Nick) the
6024 nickname formatter doesn't set the new nick anymore to Nick@host.
6025 Affected file lib/silcclient/idlist.[ch].
6027 * Now actually fixed the nickname changing on disconnection.
6028 Added new function silc_change_nick to the Irssi SILC Client.
6029 Affected file irssi/src/silc/core/client_ops.c,
6030 irssi/src/silc/core/silc-nicklist.[ch].
6032 Sat Sep 15 13:29:17 EEST 2001 Pekka Riikonen <priikone@silcnet.org>
6034 * Check that the public key exists in the GETKEY command before
6035 trying to encode it. Affected file silcd/command.c.
6037 * Print some notifications on received public keys with GETKEY
6038 command in the Irssi SILC Client. Affected files are
6039 irssi/src/fe-common/silc/module-formats.[ch],
6040 irssi/src/silc/core/client_ops.c.
6042 * Use IDENTIFY command to resolve the server information in the
6043 GETKEY command instead of INFO command. Affected file
6044 lib/silcclient/command.c.
6046 * All command reply functions in the client library now calls
6047 the pending command reply callbacks even if an error has
6048 occurred. The server has done this a long time and now it was
6049 time to move the client library to this as well. Now all
6050 errors can be delivered back to the pending command reply
6051 callbacks if necessary. Affected files are
6052 lib/silcclient/command[_reply].[ch].
6054 * Change the nickname on disconnection back to the username
6055 because in reconnect the server will enforce it to it anyway.
6056 Affected file irssi/src/silc/core/silc-servers.c.
6058 * Fixed a config file parsing bug in the Irssi SILC client.
6059 Affected file irssi/src/silc/core/clientconfig.c.
6061 Thu Sep 13 23:11:18 EEST 2001 Pekka Riikonen <priikone@silcnet.org>
6063 * When printing the channel mode on JOIN, verify that the
6064 channel key and channel's HMAC are valid. Affected file
6065 irssi/src/silc/core/client_ops.c.
6067 Thu Sep 13 20:24:52 EEST 2001 Pekka Riikonen <priikone@silcnet.org>
6069 * Added defines SILC_DEFAULT_CIPHER, SILC_DEFAULT_HMAC,
6070 SILC_DEFAULT_HASH and SILC_DEFAULT_PKCS in the file
6071 lib/silccrypt/[silccipher.h|silchmac.h|silchash.h|silcpkcs.h].
6073 * Removed channel key rekey task deleting from the function
6074 silc_server_save_channel_key. Affected file silcd/server.c.
6075 Added explicit timeout task context instead that is used to
6076 delete the task if we are registering a new task before the
6077 new task has elapsed.
6079 * When channel key rekey occurs the client library now saves
6080 the old channel key for a short period of time (10 seconds) and
6081 is able to use it in case some is still sending channel
6082 messages encrypted with the old key after the rekey. Affected
6083 file lib/silcclient/[idlist.h|client_channel.c].
6085 Sun Sep 9 15:49:16 EEST 2001 Pekka Riikonen <priikone@silcnet.org>
6087 * Added check to the silc_server_new_id_real to not accept
6088 new ID if it is the sender's own ID. Affected file is
6089 silcd/packet_receive.c.
6091 * Assure that we do not announce ourself or the one we've
6092 sending our announcements when we're router and are announcing
6093 servers to our primary router. Affected file silcd/server.c.
6095 * Fixed silc_server_command_identify_check_client to assemble
6096 correct WHOIS packet. It send corrupted WHOIS packet and
6097 caused problem with router to router connections. Affected
6098 file silcd/command.c.
6100 Fixed also silc_server_command_whois_check the same way
6101 as for the IDENTIFY command.
6103 * Added new SilcIDListStatus to the server in the SilcIDListData
6104 structure. The status now includes the current status of
6105 the entry (like registered, resolved etc.). Affected file
6106 silcd/idlist.[ch]. Defined a bunch of different status types
6107 as well. This replaced the old boolean registered field as well.
6109 Added resolve_cmd_ident field to the SilcClientEntry structure
6110 too so that if the entry is for example being resolved so
6111 another command may attach to the same pending command reply
6112 without requiring to resolve the same entry again. This concept
6113 should optimize the WHOIS and the IDENTIFY resolving under
6114 heavy load by taking away unnecessary resolving for entries
6115 that are being resolved already.
6117 Added support for adding multiple pending commands for one
6118 command idenfier. Affected file silcd/command[_reply].[ch].
6120 * Fixed WHOIS and IDENTIFY save to remove the cache entry
6121 before deleting the data. Otherwise the hash table will have
6122 freed data in comparison functions. Affected file is
6123 silcd/command_reply.c.
6125 * Fixed silc_idlist_replace_client_id to add the new entry to
6126 the cache with NULL nickname. Otherwise there will be invalid
6127 memory as the nickname after the nickname is freed. Affected
6128 file silcd/packet_receive.c.
6130 * Fixed the silc_idlist_get_clients_by_hash. The entries was
6131 saved into wrong slots because the previous number of entries
6132 was not taken into account. Affected file silcd/idlist.c.
6133 Fixed same thing in silc_idlist_get_clients_by_nickname too.
6135 * If we are router and we receive JOIN notify to a channel that
6136 does not have any users then notified client is marked as the
6137 channel founder, as it is it. The affected file is
6138 silcd/packet_receive.c
6140 * Added to the extended hash table API's table_del_*ext functions
6141 the destructor as argument too, so that the caller can decide
6142 which destructor to use or whether to use destructor at all.
6143 Affected file lib/silcutil/silchashtable.[ch].
6145 * Fixed ID Cache purging. It actually deleted the entries from
6146 the hash table after the data was freed. The hash table ended
6147 up comparing freed memory. The affected file is
6148 lib/silccore/silcidcache.c.
6150 Sat Sep 8 10:22:10 EEST 2001 Pekka Riikonen <priikone@silcnet.org>
6152 * Fixed Irssi SILC client's KILL command's HELP syntax.
6154 * The USERS command now resolves the detailed user information
6155 if the userinfo field is missing. Affected file is
6156 lib/silcclient/command_reply.c.
6158 * Do not print error in silc_file_read if the read file does
6159 not exist. Just silently return NULL. Affected file is
6160 lib/silcutil/silcutil.c.
6162 * Fixed the silc_log_output to not wine about NULL filename
6163 and to not create some bogus " " filename. Affected file is
6164 lib/silcutil/silclog.c.
6166 Fri Sep 7 22:16:38 EEST 2001 Pekka Riikonen <priikone@silcnet.org>
6168 * Fixed various printing bugs on the user interface in the
6169 Irssi SILC Client. Minor changes that were forgotten from
6172 Fri Sep 7 17:28:37 EEST 2001 Pekka Riikonen <priikone@silcnet.org>
6174 * Fixed the configure.in.pre and the compilation and distribution
6175 environment to support the new autoconf 2.52. That version is
6176 now required to compile the CVS trunk.
6178 Thu Sep 6 12:47:37 EEST 2001 Pekka Riikonen <priikone@silcnet.org>
6180 * Renamed function silc_parse_nickname to silc_parse_userfqdn
6181 to generally parse user@fqdn format strings. Affected file
6182 lib/silcutil/silcutil.c.
6184 * Added nickname_format and nickname_force_format fields to the
6185 SilcClientParams structure. The first one defines the format
6186 for the nicknames that the library will enforce if the receives
6187 multiple same nicknames. The second one is boolean value and
6188 can be used to force the library to always enforce the format
6189 to the nicknames regardles whether there are multiple nicknames
6190 or not. This configurable formatting was employed to flexibly
6191 support accessing multiple nicknames from the user interface.
6192 The userinterface can now set the nicknames to what ever format
6193 they prefer. Affected file lib/silcclient/silcapi.h.
6195 Added function silc_client_nickname_format to the file
6196 lib/silcclient/idlist.c. It performs the nickname formatting.
6198 Added new field `hostname´ to the SilcClientEntry context.
6199 It holds the hostname of the client. Affected file is
6200 lib/silcclient/idlist.h.
6202 * Irssi SILC Client sets the nicknames in nick@hostn format.
6203 Fe. priikone@otaku, priikone@otaku2 etc. Affected file
6204 irssi/src/silc/core/silc-core.c.
6206 The WHOIS printing now also shows both the real nickname and
6207 the formatted nickname so that user knows how to access the
6208 user if there are multiple same nicknames cached. Affected
6209 file irssi/src/silc/core/client_ops.c. Changed the WHOIS
6210 printing formatting too to take the hostname now as a separate
6211 argument. The Affected file is
6212 irssi/src/fe-common/silc/modules-formats.[ch].
6214 * Changed the silc_client_get_clients_local to accept the formatted
6215 nickname as argument. It accepts the real nickname too but the
6216 formatted nickname can be used to find the true entry from
6217 multiple entries. Affected file lib/silcclient/silcapi.h and
6218 lib/silcclient/idlist.c.
6220 * Added nickname_format_parse field to the SilcClientParams.
6221 It is a callback function provided by the application to parse
6222 the nickname out of the formatted nickname string. The library
6223 calls it to get the nickname from the formatted string. Since
6224 the application generally knows better the format of the nickname
6225 string it parses it instead of the library, even though library
6226 encodes the formatted string. If the callback function is not
6227 provided then the library will use the string as is. The
6228 affected file is lib/silcclient/silcapi.h.
6230 * All the nickname strings passed to the client library in
6231 commands are now expected to be formatted nickname strings.
6232 If the command does not support the formatted nickname string
6233 it will assume that the sent string is the actual nickname.
6234 Affected file lib/silcclient/command.c.
6236 Tue Sep 4 22:31:28 EEST 2001 Pekka Riikonen <priikone@silcnet.org>
6238 * Added public key authentication support to OPER and SILCOPER
6239 commands in the client library. Affected file is
6240 lib/silcclient/command.c.
6242 Tue Sep 4 12:39:17 EEST 2001 Pekka Riikonen <priikone@silcnet.org>
6244 * Changed the get_auth_methdod client operation to be asynchronous.
6245 It can be async if the application resolves the authentication
6246 method from the server during the negotiation. Added new
6247 SilcGetAuthMeth completion callback that the application will
6248 call after resolving the authentication method.
6250 Added function silc_client_request_authentication_method that
6251 the application can use to resolve the authentication method
6252 from the server. Added also SilcConnectionAuthRequest callback
6253 that the library will call after the server has replied. The
6254 application can call this function if it does not know the
6255 current authentication method.
6257 Affected files are lib/silcclient/client.c and
6258 lib/silcclient/silcapi.h.
6260 * The Irssi SILC client now automatically resolves the authentication
6261 method incase any configuration information is not present (and
6262 currently there never is). The affected file is
6263 irssi/src/silc/core/client_ops.c.
6265 * Fixed public key authentication from the client library.
6266 Affected file lib/silcclient/protocol.c. Changed also the
6267 protocol specification about the public key authentication in
6268 the connection authentication protocol. The actual data to be
6269 signed is now computed with a hash function before signing.
6271 * Fixed the public key authentication from the server as well.
6272 Affected file silcd/protocol.c.
6274 * Removed the mlock()'s from the memory allocation routines.
6275 Affected file lib/silcutil/silcmemory.c. The ./configure does
6276 not check anymore for the mlock(). Affected file is
6279 * Fixed USERS command in server to allow the execution of the
6280 command for private and secret channels if the client sending
6281 the command is on the channel. Affected file silcd/command.c.
6283 * Fixed silc_client_get_clients_local to return the clients
6284 count correctly. It could return wrong value. Affected file
6285 lib/silcclient/idlist.c.
6287 Mon Sep 3 20:09:59 EEST 2001 Pekka Riikonen <priikone@silcnet.org>
6289 * Fixed the lib/silcmath/mpi/mpi.h to always use 32-bit data
6290 types. The assembler optimizations seemed not to like 64-bit
6291 data types. The assmebler optimizations thus are now enabled
6292 also for BSD systems as opposed to only enable them for Linux.
6294 * Do not check for threads at all on BSD systems. Affected
6295 file configure.in.pre.
6297 * Removed -n and -h options from the Irssi SILC Client since
6298 they are not used in silc.
6300 * Fixed the prime generation to assure that the first digit
6301 of the generated random number is not zero since our conversion
6302 routines does not like number strings that starts with zero
6303 digit. If zero digit is seen the random number is regenerated.
6304 This caused some corrupted RSA keys when the zero first digit
6305 was met. Affected file lib/silcmath/silcprimegen.c.
6307 Sun Sep 2 17:17:24 EEST 2001 Pekka Riikonen <priikone@silcnet.org>
6309 * Fixed WIN32 configuration in the ./configure script.
6310 Fixed to include xti.h on environments that has it.
6311 Patches by Carsten Ilchmann and andrew.
6313 Sat Sep 1 00:29:33 EEST 2001 Pekka Riikonen <priikone@silcnet.org>
6315 * Changed the silc_id_create_client_id to be collision
6316 resistant. It is now assured that there cannot be created
6317 two same client ID's. I suspect that some weird bugs in
6318 the server were actually caused by duplicate Client IDs.
6319 Affected file silcd/serverid.[ch]. A router receiving
6320 new ID now also assures and informs the sending server
6321 if the ID caused collision.
6323 * Changed the silc_id_create_channel_id to also assure that
6324 there are no collisions.
6326 Wed Aug 29 17:55:01 EEST 2001 Pekka Riikonen <priikone@silcnet.org>
6328 * Statement about ignoring the Mutual Authentication flag when
6329 performing rekey with PFS was a bit misleading. It is ignored
6330 if it was set in the initial negotiation, it cannot be even
6331 set in the rekey. Fixed in the ke-auth draft. Started the
6332 new versions of the protocol drafts in the doc/.
6334 Sun Aug 26 14:59:15 EEST 2001 Pekka Riikonen <priikone@silcnet.org>
6336 * Fixed a bug in silc_client_command_identify_save when saving
6337 new channel information. The channel name was no duplicated
6338 and caused crash on exit. Affected file is
6339 lib/silcclient/command_reply.c.
6341 Fri Aug 17 23:07:45 EEST 2001 Pekka Riikonen <priikone@silcnet.org>
6343 * Fixed the getkey command handling in the server. Send just
6344 empty OK reply to the sender if the key could not be fetched
6345 (but everything else was ok, like the key just was not available).
6346 Changed the public key parameter to optional in the protocol
6347 specs so that empty OK reply can be sent. Affected file
6350 Added a message to Irssi SILC client to tell to user if the
6351 server did not return a public key.
6353 Tue Aug 14 07:29:27 CEST 2001 Pekka Riikonen <priikone@silcnet.org>
6355 * Fixed a channel key regeneration bug. It registered new
6356 timeout tasks exponentially until all system resources were
6357 used. Affected file silcd/server.c.
6359 Sun Aug 12 20:48:14 EEST 2001 Pekka Riikonen <priikone@silcnet.org>
6361 * Added the SILC Document generator to the scripts/silcdoc.
6362 It can be used to generate the Toolkit Reference Manual out
6363 of the source tree. Internally it will also use the RoboDoc
6364 generator now imported in util/robodoc.
6366 Sun Aug 12 12:28:17 EEST 2001 Pekka Riikonen <priikone@silcnet.org>
6368 * Added couple of return's in rekey protocol if error orccurred
6369 during the protocol. The execution must be terminated.
6370 Affected file silcd/protocol.c. Also, terminate the protocol
6371 always with timeout.
6373 Sat Aug 11 12:36:02 EEST 2001 Pekka Riikonen <priikone@silcnet.org>
6375 * The client's Client ID was created initally from the wrong
6376 nickname (it could have been in format nick@host) in the
6377 silc_server_new_client. Affected file silcd/packet_receive.c
6379 Sat Aug 11 00:29:57 EEST 2001 Pekka Riikonen <priikone@silcnet.org>
6381 * Added some SILC_LOG_ERROR's to various error conditions
6382 if client could not be added to ID cache. Affected files
6383 silcd/packet_receive.c and silcd/server.c.
6385 * When client's sock->user_data is freed, NULL also the
6386 client->router and client->connection pointers. Added check
6387 for these pointers being NULL to various places around the
6388 code. Affected file silcd/server.c.
6390 * Added client->data.registered == TRUE checks to various
6391 places around the code to assure that unregistered client's
6392 are not handled when it is not allowed. Affected file
6395 * Added `bool registered' fields to all
6396 silc_idlist_[server|client]_get_* routines to indicate whether
6397 the fetched client needs to be registered or not. Affected
6398 file silcd/idlist.[ch].
6400 * Add your own entry as registered to the ID cache in the
6401 server. Affected file server.c.
6403 * Fixed a bug in silc_server_new_server. The SilcServer was
6404 set as the new server's context instead of SilcServerEntry.
6405 This naturally caused some weird bugs.
6407 * Added "updated" field the SilcChannelEntry which indicates
6408 the time since the channel entry was last accessed. This
6409 can be used to determine whether it is necessary to
6410 announce the channel after backup resuming protocol.
6411 Affected files silcd/idlist.[ch].
6413 Thu Aug 9 18:28:37 EEST 2001 Pekka Riikonen <priikone@silcnet.org>
6415 * Do not delete the channel rekey task when adding it
6416 for in silc_server_create_channel_key.
6418 * Changed the silc_server_create_channel_key to return
6419 TRUE or FALSE to indicate the success of the channel key
6422 Thu Jul 26 11:32:31 EEST 2001 Pekka Riikonen <priikone@silcnet.org>
6424 * Fixed MSVC++ project files and added missing files to
6425 Makefiles under win32/.
6427 Wed Jul 25 18:43:54 EEST 2001 Pekka Riikonen <priikone@silcnet.org>
6429 * Do not add TCP_NODELAY flag if the operating system
6430 does not have it defined. Affected files are
6431 lib/silcutil/[unix/win32]/silc[unix/win32]net.c.
6433 * Fixed buffer overflow from Irssi SILC Client. Affected
6434 file irssi/src/fe-common/core/themes.c.
6436 * Fixed double free in client library in the file
6437 lib/silcclient/client.c when disconnecting from server.
6439 * Applied double free patch from cras to Irssi SILC client.
6440 Affected files irssi/src/core/[modules/expandos].c
6442 * Fixed the disconnection handling to Irssi SILC Client.
6443 The application must call silc_client_close_connection
6444 in ops->connect client operation in case of failure of
6445 the connection. Affected file is
6446 irssi/src/silc/core/client_ops.c.
6448 * Do not set sock->protocol to NULL in the function
6449 silc_client_close_connection after executing the protocol's
6450 final callback since the sock might not be valid anymore.
6451 Affected file lib/silcclient/client.c.
6453 Wed Jul 25 16:04:35 EEST 2001 Pekka Riikonen <priikone@silcnet.org>
6455 * Do not enable SILC_THREADS if the linking with libpthread
6456 did not happen. Affected file configure.in.pre.
6458 * Added notion to protocol specification that server must
6459 verify the sent authentication payload with CMODE when
6460 setting the channel founder key. Implemented it to the
6461 server. Affected file silcd/command.c.
6463 Mon Jul 23 18:31:43 EEST 2001 Pekka Riikonen <priikone@silcnet.org>
6465 * Added _EXTRA_DIST SILC distribution variable to the
6466 distributions file. It is used to conditionally add extra
6467 files or directories to the specific distribution. Affected
6468 files ./prepare, Makefile.am.pre and distributions.
6470 Removed the `_' from the start of the distribution names.
6473 * Added README.WIN32 for instructions to compile the Toolkit
6476 Mon Jul 23 10:12:37 EEST 2001 Pekka Riikonen <priikone@silcnet.org>
6478 * Fixed a double free in disconnection in the server. Affected
6479 file is silcd/server.c.
6481 * Fixed the lib/silcske/groups.c to work now also with GMP
6482 MP library. The string conversion did not work when using
6483 specific base and the base is indicated in the string as well.
6485 * Created win32/ directory which now includes MSVC++ specific
6486 stuff so that toolkit (DLLs) may be compiled with MSVC++.
6487 It will appear only in the toolkit distribution
6489 Sun Jul 22 19:40:30 EEST 2001 Pekka Riikonen <priikone@silcnet.org>
6491 * Changed the key material distribution function in case when
6492 the hash output is too short. The data is now concatenated
6493 a bit differently than it used to. Made the change to the
6494 SKE protocol specification.
6496 * Added better GMP detection to configure.in.pre. A patch
6499 Fri Jul 20 13:16:00 EEST 2001 Pekka Riikonen <priikone@silcnet.org>
6501 * Fixed a minor bug in SKE that might cause some problem on
6502 some platforms. Affected file lib/silcske/silcske.c.
6504 * Added the cookie checking for initiator in the SKE. It checks
6505 that the responder returns the sent cookie unmodified. The
6506 affected file is lib/silcske/silcske.c. Added new SKE
6507 error type INVALID_COOKIE that can be sent during the
6508 negotiation. Fixed some memory leaks as well.
6510 * Added the "invalid cookie" error message to Irssi SILC client's
6513 Thu Jul 19 21:44:31 EEST 2001 Pekka Riikonen <priikone@silcnet.org>
6515 * Added `task_max' field to the SilcClientParams to indicate
6516 the maximum tasks the scheduler can handle. If set to zero,
6517 default values are used. Affected file lib/silcclient/silcapi.h.
6519 * Fixed memory leaks in silc_client_close_connection. Affected
6520 file lib/silcclient/client.c.
6522 * Added silc_client_del_client_entry to client library to free
6523 all memory of given client entry. Affected file is
6524 lib/silcclient/idlist.[ch].
6526 * Added new functions silc_client_del_channel and
6527 silc_client_del_server to delete channel and server entries.
6528 Affected file lib/silcclient/[silcapi.h/idlist.c].
6530 * Removed silc_client_del_client_by_id from silcapi.h.
6532 * Fixed the INFO command to return the server's own info
6533 correctly when querying by Server ID. Affected file is
6536 Thu Jul 19 14:47:30 EEST 2001 Pekka Riikonen <priikone@silcnet.org>
6538 * Removed the non-blocking settings in WIN32 code in the
6539 silc_sock_[read/write] and added SleepEx instead. Affected
6540 file lib/silcutil/win32/silcwin32sockconn.c. The availability
6541 of input data is now checked with FIONREAD and ioctlsocket.
6543 Wed Jul 18 18:34:01 EEST 2001 Pekka Riikonen <priikone@silcnet.org>
6545 * Call silc_schedule_task_del_by_context in the
6546 silc_protocol_cancel instead of silc_schedule_task_del_by_callback.
6547 Affected file lib/silccore/silcprotocol.c.
6549 * Call silc_protocol_cancel for active protocols in the
6550 silc_server_close_connection if the funtion
6551 silc_server_free_sock_user_data has not been called.
6552 Affected file silcd/server.c.
6554 * Generic tasks cannot be deleted using the del_by_fd
6555 task deleting function since generic tasks does not match
6556 any specific fd. Affected file lib/silcutil/silcschedule.[ch].
6558 * Added a notion to SILCOPER help file that the SILCOPER works
6559 only on router server, not on normal server.
6561 Wed Jul 18 09:40:04 EEST 2001 Pekka Riikonen <priikone@silcnet.org>
6563 * Added for WIN32 support for the new scheduler as well.
6564 Affected file lib/silcutil/win32/silcwin32schedule.c.
6566 * Fixed the SHA1 implementation to work on various platforms.
6568 Tue Jul 17 23:04:10 EEST 2001 Pekka Riikonen <priikone@silcnet.org>
6570 * Rewrote the SILC Scheduler entirely. Removed the old SILC Task
6571 API. It is part of the scheduler now. Everything else is
6572 as previously but some functions has changed their names.
6573 Checkout the lib/silcutil/silcschedule.h for the interface.
6574 Updated all applications to use the new interface. Affected
6575 files are lib/silcutil/silcschedule.[ch].
6577 Tue Jul 17 16:53:30 EEST 2001 Pekka Riikonen <priikone@silcnet.org>
6579 * Found a bug in the SKE implementation. The HASH value,
6580 specified by the protocol, was not computed correctly. The
6581 public key of the responder was not added to the computation
6582 even though it is mandatory. Affected file lib/silcske/silcske.c.
6583 This unfortunately causes incompatibilities with older
6584 clients and servers.
6586 * Added WIN32 specific network init and uninit functions:
6587 silc_net_win32_init and silc_net_win32_uninit to init and uninit
6588 the Winsock2. Affected file lib/silcutil/silcnet.h and
6589 lib/silcutil/win32/silcwin32net.c.
6591 * Set the socket always to nonblocking mode on WIN32 after
6592 reading data or writing data. Affected file is
6593 lib/silcutil/win32/silcwin32sockconn.c.
6595 Mon Jul 16 22:55:26 EEST 2001 Pekka Riikonen <priikone@silcnet.org>
6597 * Fixed various compilation problems under WIN32. Affected
6598 files lib/silcutil/win32/silcwin32thread.c and
6599 lib/silcutil/win32/silcwin32schedule.c.
6601 * Removed all _internal.h #includes from public header
6602 files. Internal headers must never be included from
6605 Removed also the lib/silcske/payload_internal.h file.
6607 * All include files that may be needed (public and some others
6608 included by the public headers) by application developers are
6609 now copied to the ./includes directory. It does not copy any
6610 internal headers. Affected file Makefile.defines.pre and all
6611 Makefile.am's under lib/ and subdirs.
6613 Thu Jul 12 17:49:31 EEST 2001 Pekka Riikonen <priikone@silcnet.org>
6615 * Do not change the ~/.silc directory's permissions automatically.
6616 Affected file irssi/src/silc/core/clientutil.c.
6618 Thu Jul 12 10:18:40 EEST 2001 Pekka Riikonen <priikone@silcnet.org>
6620 * Do not cancel the protocol in silc_server_close_connection
6621 it might cause recursion. Now cancelled in the function
6622 silc_server_free_sock_user_data. Affected file silcd/server.c.
6624 * Fixed the silc_server_remove_clients_by_server to regenerate
6625 the channel keys correctly finally. Added also new function
6626 silc_server_remove_clients_channels to actually do it.
6627 Affected file silcd/server.c.
6629 * Fixed the silc_server_new_channel to not crash by giving
6630 wrong router to the new channel. Affected file is
6631 silcd/packet_receive.c.
6633 Wed Jul 11 18:31:57 EEST 2001 Pekka Riikonen <priikone@silcnet.org>
6635 * Added SilcClientParams structure to the lib/silcclient/silcapi.h
6636 which is given as argument to the silc_client_alloc now.
6637 It can be used to configure the client and set various parameters
6638 that affect the function of the client.
6640 * The USERS command in server did not check whether the channel
6641 is private or secret. Affected file silcd/command.c.
6643 * Added new argument to the USERS command in protocol specification.
6644 The USERS command now can take the channel name as argument
6645 as well. Added support for this in client and server and
6646 updated the protocol specs.
6648 * Completed the GETKEY command in client. It can be now used
6649 to fetch also servers public key not only some clients.
6650 Affected files lib/silcclient/command[_reply].c.
6652 * Added silc_client_get_server to return server entry by the
6653 server name. Affected files lib/silcclient/silcapi.h and
6656 * Redefined the IDENTIFY command in protocol specification to be
6657 more generic. It now can be used to query information about
6658 any entity in the SILC Network, including clients, servers and
6659 channels. The query may be based either the entity's name
6660 or the ID. Added support for this in both client and server.
6662 Affected files silcd/command.c and lib/silcclient/command.c
6663 and command_reply.c.
6665 * Optimized the WHOIS and WHOWAS commands in the server. Removed
6666 the _from_client and _from_server functions. Affected file
6669 * Added silc_client_get_channel_by_id_resolve to the file
6670 lib/silcclient/silcapi.h to resolve channel information by
6671 its ID. Added also silc_client_get_channel_by_id that
6672 does not resolve it from the server.
6674 Tue Jul 10 18:05:38 EEST 2001 Pekka Riikonen <priikone@silcnet.org>
6676 * Added SilcServerEntry context into the client library
6677 to represent one server. The INFO command now allocates
6678 these to save the resolved server info. For now on the
6679 client library will also keep information about servers,
6680 connected and resolved with INFO.
6682 The INFO command now allocates the SilcServerEntry context
6683 and saves the server info there. The COMMAND_REPLY in
6684 the INFO now returns the parameters to application in
6685 same order as defined in the protocol specification.
6687 The entries are cached in the client->server_cache.
6689 * The INFO command is now issued after received the Client ID
6690 from the server. Affected file lib/silcclient/client.c.
6692 * The CMODE_CHANGE notify may now return also an SilcServerEntry
6693 to the application as the mode changer might be server.
6694 It is guaranteed that NULL is not returned anymore to the
6695 application. Affected file lib/silcclient/client_notify.c.
6697 The ID Type is now also passed to the application so that
6698 it can check whether the returned entry is SilcClientEntry
6701 Added new function silc_client_get_server_by_id to return
6702 the server entry by ID. Affected files are the
6703 lib/silcclient/silcapi.h and lib/silcclient/idlist.c.
6705 * Do not create the channel in the Irssi SILC Client when issuing
6706 the JOIN command but when received the sucessful JOIN command
6707 reply. Otherwise the channel might get created even though we
6708 could not join it. The Affected file is
6709 irssi/src/silc/core/[silc-channels.c/client_ops.c].
6711 * Fixed a channel joining bug in router. The router must also
6712 check the channel modes, invite and ban lists etc. when serving
6713 the JOIN command sent by normal server. Affected file is
6714 silcd/command.c. The router now resolves the client's
6715 information from the server who sent the JOIN command if it
6716 does not know it, and processes the JOIN command only after
6719 * Changed the SilcCommandCb to take new argument; void *context2.
6720 Affected file lib/silccore/silccommand.h
6722 The second argument in the command callbacks in the server now
6723 includes the SilcServerCommandReplyContext if the command was
6724 called as pending command callback from the command reply.
6725 Otherwise it is NULL. When called as pending the status of the
6726 command reply will be checked and if it was erronous the
6727 error will be sent to the original sender of the command.
6728 This way the client always receives the error messages even
6729 though the server was actually the one who received the error
6730 when it resent the command to router, for example. Affected
6731 files silcd/command[_reply].[ch].
6733 * Fixed sending WHOWAS command's error message to client if
6734 the requested client could not be found. It was missing.
6737 * Changed the CMODE and CUMODE commands reply arguments in the
6738 protocol specification. The Channel ID is now sent in both
6739 of the commands to identify the channel. Implemented this
6740 new feature to the client and server. Affected files
6741 lib/silcclient/command_reply.c and silcd/command.c.
6743 * Made better checks for invite and ban lists in the JOIN
6744 command in server. Affected file silcd/command.c.
6746 Mon Jul 9 18:28:34 EEST 2001 Pekka Riikonen <priikone@silcnet.org>
6748 * The server now performs the incoming host IP/DNS lookup
6749 using the silc_socket_host_lookup and thus does not block
6750 the server anymore. Affected file silcd/server.c.
6752 * Completed the multi-thread support for SILC Scheduler in
6753 the lib/silcutil/silcschedule.c.
6755 * Fixed the configure.in.pre to detect the pthread correctly
6758 * Fixed a deadlock in silc_task_queue_wakeup in the file
6759 lib/silcutil/silctask.c.
6761 Mon Jul 9 13:40:03 EEST 2001 Pekka Riikonen <priikone@silcnet.org>
6763 * Added new function silc_schedule_wakeup that is used in
6764 multi-threaded environment to wakeup the main thread's
6765 schduler. It needs to be used when a thread adds a new task
6766 or removes a task from task queues. After waking up, the
6767 scheduler will detect the task queue changes. If threads
6768 support is not compiled in this function has no effect.
6769 Implemented the wakeup mechanism to both Unix and WIN32
6770 systems. Affected files are lib/silcutil/silcschedule.[ch],
6771 lib/silcutil/unix/silcunixschedule.c and the
6772 lib/silcutil/win32/silcwin32schedule.c.
6774 * Added new function silc_task_queue_wakeup to wakeup the
6775 scheduler by the specified task queue. Affected file
6776 lib/silcutil/silctask.[ch].
6778 * The silc_socket_host_lookup_start now wakes up the scheduler
6779 after adding the timeout task. Affected file is
6780 lib/silcutil/silcsockconn.c.
6782 * The silc_socket_host_lookup is synchronous now if the threads
6783 support is not compiled in. However, the callback is still
6784 called asyncronously through the scheduler, anyway. Affected
6785 file lib/silcutil/silcsockconn.c.
6787 Mon Jul 9 00:24:45 EEST 2001 Pekka Riikonen <priikone@silcnet.org>
6789 * Added new function silc_socket_host_lookup to perform
6790 asynchronous IP and FQDN lookups for the socket connection.
6791 Affected files lib/silcutil/silcsockconn.[ch].
6793 Sun Jul 8 18:44:53 EEST 2001 Pekka Riikonen <priikone@silcnet.org>
6795 * Added SILC_MUTEX_DEFINE to define the mutex on environments
6796 that may or may not compile the mutex support in.
6798 Changed the silc_mutex_alloc interface. It allocates the
6799 mutex now to the sent pointer and returns TRUE or FALSE.
6801 Affected file lib/silcutil/silcmutex.h.
6803 * Wrote the SILC Task Queue interface to support multi-threads.
6804 Affected file lib/silcutil/silctask.[ch].
6806 * Wrote the SILC Scheduler to support multi-threads. Affected
6807 file lib/silcutil/silcschedule.c.
6809 Sun Jul 8 11:16:01 EEST 2001 Pekka Riikonen <priikone@silcnet.org>
6811 * Implemented the SILC Mutex API and SILC Thread API for WIN32
6812 in lib/silcutil/win32/.
6814 Sun Jul 8 00:18:15 EEST 2001 Pekka Riikonen <priikone@silcnet.org>
6816 * Defined SILC Mutex API and SILC Thread API and implemented
6817 them for Unix. Affected files are
6818 lib/silcutil/silcmutex.h, lib/silcutil/silcthread.h,
6819 lib/silcutil/unix/silcunixmutex.c and
6820 lib/silcutil/unix/silcunixthread.c.
6822 Sat Jul 7 14:40:31 EEST 2001 Pekka Riikonen <priikone@silcnet.org>
6824 * Fixed the silc_server_remove_clients_by_server's channel
6825 key re-generation. The hash table handling was incorrect
6826 and would not work with many channels. Affected file is
6829 * Fixed some memory leaks around the server code.
6831 * Rewrote the silc_server_get_users_on_channel to support IPv6
6832 based Client ID's. Affected file silcd/server.c.
6834 * Defined the SILC_MESSAGE_FLAG_SIGNED to the protocol
6835 specification. However, a separate document must be written
6836 to define the detailed signing procedure and the payload
6837 associated with the flag. Defined the flag to the
6838 lib/silccore/silcchannel.h as well.
6840 Fri Jul 6 18:26:31 EEST 2001 Pekka Riikonen <priikone@silcnet.org>
6842 * Changed the dynamic tables to static size tables in the
6843 lib/silccrypt/silchmac.c.
6845 * Removed GCC dependencies from the code. A patch by cras.
6847 Fri Jul 6 09:39:35 EEST 2001 Pekka Riikonen <priikone@silcnet.org>
6849 * Do not show the error "Error receiving packet bla bla"
6850 in server if it really was not an error (-2 means that reading
6851 is pending). Affected file silcd/server.c.
6853 Thu Jul 5 21:22:32 EEST 2001 Pekka Riikonen <priikone@silcnet.org>
6855 * Fixed a possible crash in silc_server_remove_clients_by_server
6856 in silcd/server.c. Fixed there also some memory leaks.
6858 * Fixed the silc_idlist_replace_client_id. It could replace
6859 wrong key in the hash table. Affected file silcd/idlist.c.
6861 * Do not check whether there are global users on the channel
6862 if the channel->global_users is FALSE. Affected functions
6863 silc_server_remove_from_one_channel and
6864 silc_server_remove_from_channels in silcd/server.c. Also,
6865 do not check if the removed client is local as we can be
6866 sure that global client was not removed from the channel
6867 and checking for global users is not needed.
6869 * The silc_server_remove_clients_by_server now re-generates
6870 the channel keys correctly for those channels that had
6871 clients removed from them. Affected file silcd/server.c.
6873 Tue Jul 3 11:39:20 EEST 2001 Pekka Riikonen <priikone@silcnet.org>
6875 * Found the reason of random crashes in the server. We weren't
6876 ignoring the SIGPIPE signal (which can be sent in write())
6877 and it crashed the server. Affected file silcd/silcd.c.
6879 Fri Jun 29 20:05:25 EEST 2001 Pekka Riikonen <priikone@silcnet.org>
6881 * Assure that sock->user_data is not NULL in the function
6882 silc_server_packet_send in silcd/packet_send.c.
6884 * Disconnect the remote connection if it could not be added
6885 to any ID lists in the server. The affected file is
6888 * Check in silc_server_packet_send[_real/dest] that the
6889 socket is not disconnecting and ignore the data if it is.
6890 Affected file silcd/packet_send.c.
6892 * Define inline to __inline on native WIN32 compilation.
6893 Affected file includes/silcwin32.h.
6895 * Added some explicit type casts for inline code since MSVC
6896 require them. Affected files lib/silcutil/silcbuffer.h,
6897 lib/trq/silcdlist.h and lib/trq/silclist.h.
6899 * Print warning in log files from now on if the packet
6900 decryption fails. Affected file silcd/server.c.
6902 Thu Jun 28 21:30:39 EEST 2001 Pekka Riikonen <priikone@silcnet.org>
6904 * Changed the `say' client operation's interface to accept
6905 new `type' argument to indicate the type of the message sent
6906 by the library. The application may filter the library's
6907 messages according the type. The affected file is the
6908 lib/silcclient/silcapi.h.
6910 * Added two new functions to lib/silcclient/silcapi.h:
6911 silc_client_del_client and silc_client_del_client_by_id.
6912 Affected file lib/silcclient/idlist.c.
6914 * Moved the clientincludes.h from includes/ to silc/ and
6915 serverincludes.h from includes/ to silcd/.
6917 * The modes for the CMODE and CUMODE are now passed as
6918 uint32 for application with COMMAND_REPLY. The affected
6919 file is lib/silcclient/command_reply.c.
6921 Wed Jun 27 22:24:47 EEST 2001 Pekka Riikonen <priikone@silcnet.org>
6923 * /WHOIS without arguments shows client's own information.
6924 Affected file lib/silcclient/command.c.
6926 * Changed PING to not accept any arguments. The specs
6927 says that client can ping only the connected server so
6928 requiring an argument is not needed. Affected file is
6929 lib/silcclient/command.c.
6931 Wed Jun 27 00:10:33 EEST 2001 Pekka Riikonen <priikone@silcnet.org>
6933 * Fixed a fatal bug in private message sending and reception
6934 encryption and decryption when using private message keys.
6935 The implementation was incorrect and did not follow the
6936 specification. It causd that some of the message were
6937 lost since it did not use the sending and receiving keys
6938 as the protocol suggests. This has been fixed and will cause
6939 incompatibilities with older clients when sending private
6940 message encrypted with private message keys. Affected files
6941 lib/silcclient/client_prvmsg.c, lib/silcclient/client_keyagr.c
6942 and various other in Irssi SILC Client.
6944 Added `responder' boolean argument to the functions
6945 silc_client_add_private_message_key[_ske] to indicate when
6946 the key is added as responder or initiator of the key
6949 Tue Jun 26 19:23:07 EEST 2001 Pekka Riikonen <priikone@silcnet.org>
6951 * Removed the silc_ske_check_version function and created
6952 a SilcSKECheckVersion callback. Added also a function
6953 silc_ske_set_callbacks that is now used to set all SKE
6954 callbacks. The callback functions are not given to
6955 the SKE functions anymore, but this function is used to
6958 * Fixed the WIN32 DLL generation in lib/Makefile.am.pre.
6960 * Added `silc_version' argument to the silc_client_alloc
6961 to define the version of the application for the library.
6962 The library will use the version string to compare it
6963 against the remote host's (usually a server) version
6964 string. Affected file lib/silcclient/silcapi.h
6966 * Added the KE protocol context to Key Agreement context
6967 in client library so that we can abort the SKE if it
6968 is in process when we get timeout. Affected file is
6969 lib/silcclient/client_keyagr.c.
6971 * Do not resolve the client ID forever if it returns in the
6972 first time that such client does not exist. This was done
6973 for example with private message. Affected file is
6974 lib/silcclient/client_prvmsg.c.
6976 Mon Jun 25 21:42:51 EEST 2001 Pekka Riikonen <priikone@silcnet.org>
6978 * Do not add regex.h for WIN32. The affected file
6979 includes/silcincludes.h.
6981 * Added WIN32 DLL generation to lib/Makefile.am.pre. It might
6982 not work yet 100%. It generates the DLL's automatically
6983 when compiling with --with-win32 under cygwin.
6985 Sun Jun 24 19:49:23 EEST 2001 Pekka Riikonen <priikone@silcnet.org>
6987 * lib/contrib/regex.c is not compiled on WIN32.
6989 * Added silc_net_get_socket_opt function to the
6990 lib/silcutil/silcnet.h.
6992 * Added includes/silcwin32.h for WIN32 specific includes
6995 * Do not use ptime structure or any of the posix process
6996 functions on WIN32 in lib/silccrypt/silrng.c.
6998 * Added silc_gettimeofday to provide generic function
6999 for struct timeval on all platforms. Added the function
7000 to lib/silcutil/silcutil.h.
7002 Sun Jun 24 12:19:52 EEST 2001 Pekka Riikonen <priikone@silcnet.org>
7004 * Moved the lib/silccore/silcsockconn.[ch] to the utility
7005 library as they clearly belong there. As a plus side we
7006 can make the actual socket connection routines platform
7009 Added also new generic function silc_socket_read and
7010 silc_socket_write (that used to be silc_packet_[read/write].
7011 The implementation of these are platform specific.
7013 * Added WIN32 specific routines of silc_socket_[read/write]
7014 to lib/silcutil/win32/silcwin32sockconn.c.
7016 Sat Jun 23 16:01:00 EEST 2001 Pekka Riikonen <priikone@silcnet.org>
7018 * Added preliminary support for native WIN32 compilation under
7019 cygwin (using the -mno-cygwin option for GCC) to the
7020 ./configure.in.pre. The --with-win32 now prepares the
7021 compilation for native WIN32.
7023 * Rewrote the SILC Scheduler interface in the file
7024 lib/silcutil/silcschedule.h. The scheduler is now context
7025 based and does not have anymore any global static scheduler.
7026 Moved the Unix scheduler to the lib/silcutil/unix/ directory
7027 and created lib/silcutil/win32 directory for WIN32 based
7030 * Added Unix specific network routines to the
7031 lib/silcutil/unix/silcunixnet.c and the old
7032 lib/silcutil/silcnet.c includes now only generic routines.
7034 Added WIN32 specific network routines to the
7035 lib/silcutil/win32/silcwin32net.c.
7037 * Added Unix specific utility functions from the
7038 lib/silcutil/silcutil.c to lib/silcutil/unix/silcunixutil.c.
7040 * Added WIN32 SILC Scheduler to the file
7041 lib/silcutil/win32/silcwin32schedule.c. The code is of course
7044 Fri Jun 22 10:44:14 EEST 2001 Pekka Riikonen <priikone@silcnet.org>
7046 * Do not handle JOIN notify in the server if the target client
7047 is not registered (idata->registered == FALSE). The affected
7048 file is silcd/packet_receive.c.
7050 * Update the nickrec->founder in event_cumode in the Irssi SILC
7051 client. Affected file irssi/src/silc/core/silc-channels.c.
7053 * Fixed the CUMODE_CHANGE notify handling in the server when
7054 server and router are announcing their clients on channels.
7055 Now the mode changes are saved and notified correctly. The
7056 affected file is /silcd/packet_receive.c.
7058 * Fixed silc_idlit_replace_[server/client/channel]_id functions.
7059 They really did not replace the cache entry in the ID Cache.
7060 Now they do that. Affected file silcd/idlist.c.
7062 * Fixed the KICK notify handling in the Irssi SILC client to
7063 update the channel records so that the kicked client does not
7064 appear to be on the channel. The affected file is
7065 irssi/src/silc/core/silc-channels.c.
7067 * Always update the conn->current_channel when executing command
7068 on a channel. Affected file irssi/src/silc/core/silc-servers.c.
7070 * Fixed the KILL notify handling in Irssi SILC client to remove
7071 the killed client on all channels.
7073 Thu Jun 21 17:10:08 CEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
7075 * Fixed the silc_parse_command_line to remove extra spaces
7076 from the start and end of the arguments. Affected file is
7077 lib/silcutil/silcutil.c.
7079 * Cancel and free any active protocol in the function
7080 silc_server_close_connection. Affected file silcd/server.c.
7082 * Cancel and free any active protocol in the function
7083 silc_client_close_connction. Affected file is
7084 lib/silcclient/client.c.
7086 * Do not execute the KILL command for clients that are in
7087 history (ie. they are not in the network). Affected file is
7090 * Fixed KILL notify handling, client does not crash anymore.
7091 Affected file irssi/src/silc/core/silc-channels.c.
7093 * Reduced the default packet buffer size from 2048 to 1024 in
7094 lib/silccore/silcpacket.c.
7096 * Added SILC_SKE_STATUS_FREED SKE status type and a reference
7097 counter to the SKE context that is incresed when the SKE library
7098 performs async operation outside the library. If the outside
7099 process frees the SKE context and FREED status will be set
7100 and the library will detect after the sync operation that the
7101 libary is freed. The affected files are
7102 lib/silcske/silcske[_status].[ch].
7104 * Resolve the client entry information in the function
7105 silc_client_channel_message to assure that NULL pointer is not
7106 passed as client entry to the application. */
7108 * Fixed the task timeout calculation to assure that there is
7109 never negative timeouts. The affected file is
7110 lib/silcutil/silcschedule.c.
7112 * Fixed the channel user mode notification sending in server.
7113 It was sent point-to-point to the router (or to server by router)
7114 but it needs to be destined to a channel. The routines now
7115 supports sending the channel user mode notifys to the channels
7116 when announcing clients and channels. Affected files are
7117 silcd/server.c and silcd/packet_receive.c.
7119 * Fixed the CHANNEL_CHANGE notify handling in the client libary.
7120 It did not actually replace the old channel entry in the cache.
7121 Affected file lib/silcclient/client_notify.c.
7123 Tue Jun 19 22:10:36 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
7125 * Fixed a possible crash in silc_packet_send_prepare. It now
7126 assures always that there is enough space in the buffer and
7127 at the tail area of the buffer (for MAC).
7129 Fixed the inbound buffer reallocation in silc_packet_read.
7130 It was old code and did not handle the reallocation correctly.
7133 The affected file is lib/silccore/silcpacket.c.
7135 * Fixed buffer overflow in silc_parse_nickname in the file
7136 lib/silcutil/silcutil.c.
7138 Tue Jun 19 13:40:09 CEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
7140 * make install generates new server keys only if there is not
7143 Mon Jun 18 18:49:07 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
7145 * Set SILC_MESSAGE_FLAG_NOREPLY when sending the away message.
7146 Added check that if the NOREPLY is set then we will not send
7147 the away message. This avoids infinite loop of away messages
7148 if both clients are away. The affected file is
7149 lib/silcclient/client_prvmsg.c.
7151 * Fixed client crash if /NICK was given without arguments.
7152 Affected file lib/silcclient/command.c.
7154 * Server does not send the invite list in INVITE command back
7155 to the client if the list was not altered. Added this notion
7156 to the protocol spec as well. Affected file silcd/command.c.
7158 Fixed possible crash in INVITE command by checking the
7159 value of silc_server_get_client_route command.
7161 * Fixed the INVITE notify type handling. The arguments are now
7162 taken in correct order and client does not crash. The affected
7163 file is irssi/src/silc/core/silc-channels.c.
7165 Removed the "Inviting xxx to channel" message from the
7166 client library away and let the application handle it.
7167 Affected file lib/silcclient/command.c. Added that message
7168 to Irssi SILC client's message formats.
7170 * Fixed CMODE command crash in client. It now checks the
7171 amount of arguments correctly and does not crash. The affected
7172 file is lib/silcclient/command.c.
7174 * Do not create new channel automatically in silc_channels_join
7175 but check whether the channel by that name already exists.
7176 Affected file irssi/silc/core/silc-channels.c.
7178 * Do not send the SERVER_SIGNOFF to router if the disconnected
7179 entity was the router. Affected file silcd/server.c.
7181 * Added the handling of the SERVER_SIGNOFF notify to the Irssi
7182 SILC client as it was missing from there.
7184 Added the handling of the KICK notify to the Irssi SILC client
7185 as it was missing. Added "you have been kicked" message to
7186 Irssi SILC client's message modules formats.
7188 Added the handing of the KILL notify to the Irssi SILC client
7189 as it was missing. Added the kill message module formats
7192 The affected file is irssi/src/silc/core/silc-channels.c.
7194 * The router did not save the channel mode the server announced.
7195 Affected file silcd/packet_receive.c.
7197 * Fixed a possible crash in INFO command in server. If the
7198 server did not provide the server info it crashed. Affected
7199 file silcd/command.c.
7201 Sun Jun 17 15:26:05 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
7203 * Fixed the GETKEY command in the server to check also the
7204 global list. Otherwise the GETKEY would not work correctly
7205 in normal SILC server. Affected file silcd/command.c.
7207 Sat Jun 16 18:00:00 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
7209 * Fixed GETKEY crash, it crashed if the command did not succseed.
7211 Tue Jun 12 21:36:18 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
7213 * Redefined the SILC MP API in lib/silcmath/silcmp.h. The API
7214 is now real and not just an macro interface to GMP.
7216 Removed the entire GMP from the source tree and imported new
7217 NSS MPI library instead. Reason for removing GMP is that it is
7218 extremely large and compiles extremely slow. The NSS MPI
7219 is only a few files and compiles in less than 10 seconds.
7220 The speed is also about the same as GMP. The MPI is imported
7221 to lib/silcmath/mpi.
7223 If the system has GMP installed we will still use the GMP.
7224 If it is not then the NSS MPI will be compiled.
7226 Mon Jun 11 18:07:24 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
7228 * Merged a long nickname (127 characters long) crash bugfix from
7229 Irssi CVS tree. Affected file irssi/src/core/misc.c.
7231 * Merged a freed memory reference bugfix from Irssi CVS tree.
7232 Affected file irssi/src/core/commands.c.
7234 Sun Jun 10 16:08:35 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
7236 * Added the server's public key sving and verification to the
7237 server when performing the SKE. This was missing and the
7238 remote server's (or router's) public key was accepted without
7239 checking whether we have it previously or trust it at all.
7240 Affected file silcd/protocol.c.
7242 Sat Jun 9 20:17:30 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
7244 * Check in the silc_server_timeout_remote if protocol is active
7245 and make sure that the protocol's final callback is called so
7246 that all memory if freed. Affected file silcd/server.c.
7248 Sat Jun 9 12:51:27 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
7250 * silc_server_whois_send_reply crashed the server if the nickname
7251 was 127 characters long. Affected file silcd/command.c.
7253 Thu Jun 7 16:29:56 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
7255 * Added sanity check to the silc_server_new_client. If the hostname
7256 is provided inside username then check that the provided hostname
7257 really is the same as the resolved one. If the hostname was not
7258 resolved then check it from the public key. Affected file is
7259 silcd/packet_receive.c.
7261 * Fixed a fatal bug in Irssi SILC client. Do not send QUIT command
7262 if the server disconnected us and the connection is not valid
7263 anymore. Affected file irssi/src/silc/core/silc-channels.c.
7265 * Moved the silc_client_[chmode|chumode|chumode_char] away from
7266 the library to the lib/silcutil/silcutil.[ch].
7268 Thu Jun 7 08:57:16 CEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
7270 * Close log file after open. Affected file
7271 lib/silcutil/silclog.c.
7273 * Check whether sock == NULL in silc_client_send_packet and return
7274 if it is. Affected file lib/silcclient/silcclient.c.
7276 * Check rec->entry == NULL in the Irssi SILC Client before
7277 sending the channel message. Affecte file is
7278 irssi/src/silc/core/silc-servers.c.
7280 Tue Jun 5 08:08:21 CEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
7282 * Merged a splitted window bugfix from Irssi CVS tree. The
7283 affected file is irssi/src/fe-text/textbuffer-view.c.
7285 * Fixed the ME, ACTION and NOTICE printing in Irssi Client.
7286 It did not print nickname.
7288 * Improved the distributions system a bit.
7290 Mon Jun 4 17:57:16 CEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
7292 * Merged /WINDOW bugfix from irssi CVS tree. Affected file is
7293 irssi/src/fe-text/gui-window.c.
7295 * Fixed a fatal bug in Irssi SILC client. Crashed if sent message
7296 to in-active server. The affected file is
7297 irssi/src/silc/core/client_ops.c.
7299 * Resolve the client in USERS command reply if the entry does
7300 not have username resolved. The affected file is
7301 lib/silcclient/command_reply.c. Also, changed the IDENTIFY
7302 command to WHOIS command to really resolve stuff. The USERS
7303 is not used any more in any critical section so WHOIS can
7304 be used even though it might be slower than IDENTIFY.
7306 * Changed the lib/silcutil/silchashtable.h header to ROBODoc
7309 Sun Jun 3 14:21:32 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
7311 * Changed the protocol API a bit more consistent in the
7312 lib/silccore/silcprotocol.[ch].
7314 * Changed the following headers to ROBODoc format:
7316 lib/silccore/silcpayload.h
7317 lib/silccore/silcprotocol.h
7318 lib/silccore/silcsockconn.h
7320 All core library headers are now formatted.
7322 Sat Jun 2 10:45:09 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
7324 * Fixed a bug in Irssi SILC client; do not show that you are
7325 server/router operator if you really are not. Affected file is
7326 irssi/src/silc/core/client_ops.c.
7328 * Renamed silc_command_free_payload to silc_command_payload_free.
7329 Affected file lib/silccore/silccommand.h
7331 * Added silcmath.h to include the prototoypes of various routines
7332 in the lib/silcmath. Removed the old modinv.h, mpbin.h and
7335 * Changed the following headers to ROBODoc format:
7337 lib/silccore/silcchannel.h
7338 lib/silccore/silccommand.h
7339 lib/silccore/silcid.h
7340 lib/silccore/silcidcache.h
7341 lib/silccore/silcmode.h
7342 lib/silccore/silcnotify.h
7343 lib/silccore/silcpacket.h
7344 lib/silcmath/silcmath.h
7346 Fri Jun 1 22:19:37 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
7348 * Added checking to the server code not to start the server if
7349 ciphers and stuff are not configured properly. Affected files
7350 silcd/serverconfig.[h] and silcd/server.c.
7352 * Changed the layout of the header files of the public interfaces
7353 in the SILC libraries. The new layout supports ROBODoc
7354 documentation tool (and some others) so that it is easy to create
7355 a library reference manual. All the other headers and source
7356 code must still follow the CodingStyle document. Also source
7357 code must not include these ROBODoc stuffs, only the headers.
7358 Furthermore, all public interface headers must now be named
7359 by using `silc' prefix, example: silcapi.h, silccipher.h.
7360 Some files were renamed due to this. All the other headers
7361 must not be used as public interfaces. I will update the
7362 CodingStyle document later. Changed following headers, so far:
7364 lib/silcclient/silcapi.h
7365 lib/silccore/silcauth.h
7366 lib/silccore/silcprivate.h
7367 lib/silccrypt/silcdh.h
7369 Fri Jun 1 10:28:09 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
7373 * Removed silc_client_packet_send_flush from the client library
7374 as it is not needed. Affected file lib/silcclient/client.[ch].
7376 * Added printing of message of unresolved authentication method
7377 to the Irssi SILC client. Added it to the module formats.
7378 Removed the same message from the client library.
7380 Thu May 31 13:57:33 CEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
7382 * Added new distribution feature, DISTLABEL. Every distribution
7383 can define own preprocessor label that can be used in the
7384 source code. For example: #ifdef SILC_DIST_CLIENT. Affected
7385 file distributions, acconfig.h.pre and prepare.
7387 Tue May 29 22:16:40 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
7389 * Added Makefile.defines_int to include the actual definitions
7390 for Makefile.defines.in. Tested the new distribution system,
7391 created distributions and tested installation.
7393 * Added AWAY message printing to the Irssi SILC client. Added
7394 the messages to the irssi/src/fe-common/silc/module-formats.[ch].
7396 * Added SCONNECT command to call the SILC's CONNECT command.
7397 Cannot use CONNECT directly since Irssi uses that internally.
7398 Affected file irssi/src/silc/core/silc-servers.c.
7400 Added ACTION local command. It is same as ME command but takes
7401 the channel as mandatory argument.
7403 Rewrote some of the Irssi's help files to suite for SILC
7406 Mon May 28 19:05:22 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
7408 * Added Makefile.defines[.in] that should for now on be included
7409 in all Makefile.am file in the source tree. That file includes
7410 all common compilation definitions for SILC source tree.
7412 Mon May 28 10:30:51 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
7414 * Minor changes to the ./prepare script to change the package
7415 name according the distribution name to the configure.in.
7417 Sun May 27 22:24:57 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
7419 * Created new distribution system. Added file `distributions'
7420 that defines all the distributions that can be created out of
7421 the SILC source tree. The ./prepare script now reads that
7422 file to determine how to prepare the distributions. The
7423 first argument to the ./prepare is the name of the distribution
7424 and second is the version of the distribution. If given
7425 without arguments it creates the default (toolkit) distribution
7426 with the default version (defined in ./prepare).
7428 All Makefile.am files that are subject to the distributions
7429 are now named as Makefile.am.pre. These are ./Makefile.am
7430 and lib/Makefile.am. Others may be changed later.
7432 Sun May 27 15:57:17 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
7434 * Added invite list, ban list, some key management and connection
7435 error message printing to module formats in the Irssi SILC client.
7437 * Added new silc_client_set_away_message to set the away message
7438 that is back to the person who sent private message. The
7439 affected file lib/silcclient/silcapi.h and the
7440 lib/silcclient/client_prvmsg.c.
7442 Sun May 27 12:39:48 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
7444 * Fixed the private message sending in the Irssi SILC client,
7445 added local command KEY to the Irssi SILC client.
7447 Added key management and key agreement message formats to the
7448 irssi/src/fe-common/silc/module-formats.[ch].
7450 Added USERS (alias WHO) printing, server/router operator
7451 indication and LIST command printing to the module formats.
7453 Sat May 26 17:43:42 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
7455 * Fixed channel joining notify handling, cumode notify handling
7456 from Irssi SILC client.
7458 * Added SILC specific module-formats to the Irssi SILC client so
7459 that SILC specific message hilighting, colors etc is possible.
7460 Affected file irssi/src/fe-common/silc/module-formats.[ch].
7462 Added channel mode, channel user mode, actions, notices,
7463 whois and whowas printing to the the module-formats.c.
7465 * Fixed a bug in channel deletion in the server. The channel
7466 is not left to the cache even if the channel founder auth mode
7467 is set when there are no users anymore on the channel. Affected
7468 file silcd/server.c.
7470 * The silc_net_localhost now resolves the entire hostname including
7471 the domain name. Affected file lib/silcutil/silcnet.c.
7473 Sat May 26 12:13:37 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
7475 * Changed the ask_passphrase client operation to be ascynchronous.
7476 It has now a completion callback and a context that the
7477 application must call after it has got the passphrase from
7478 the user. Affected files lib/silcclient/silcapi.h,
7479 lib/silcclient/protocol.c, lib/silcclient/command.c and
7482 Added SilcAskPassphrase callback that the application calls
7483 to deliver the passphrase to the library.
7485 * Changed the SKE protocol's SilcSKEVerifyCb to be asynchronous.
7486 The public key verification and especially a certificate
7487 verification is asynchronous procedure.
7489 Added new SILC_SKE_STATUS_PENDING status to indicate the
7490 request is pending and a callback will be called to finalize
7493 Added also SILC_SKE_STATUS_PUBLIC_KEY_NOT_PROVIDED status to
7494 indicate that remote end did not send its public key (or
7495 certificate), even though we require it. Added check for this
7496 condition in the SKE. This was a security bug, now fixed.
7498 Defined new SilcSKEVerifyCbCompletion callback that is called
7499 when the verification process is completed.
7501 The affected files lib/silcske/silcske_status.h and
7502 lib/silcske/silcske.[ch].
7504 * Changed the verify_public_key client operation to be async
7505 as well. Defined SilcVerifyPublicKey callback that is used to
7506 indicate the success of the public key verification process.
7508 Changed the server and client to use the new async client
7511 * Changed the Irssi SILC client's internal scheduler to be called
7512 twice as many times as it used to be. As a result the client
7513 should be a bit faster now. Affected file is
7514 irssi/src/silc/core/silc-core.c.
7516 * Added support to Irssi SILC client of asynchronous public key
7517 verification and passphrase inquiry. Affected file is
7518 irssi/src/silc/core/silc-core.c.
7520 Fri May 25 14:38:38 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
7522 * Do not say "You have left channel %s" in client library.
7523 Moved it to the application. Affected files are
7524 lib/silcclient/command.c and silc/client_ops.c.
7526 * Fixed silc_client_get_clients. Command context was not
7527 duplicated and was freed memory in the callback. Affected
7528 file lib/silcclient/idlist.c.
7530 * Do not say "you are now talking..." on JOIN command in the
7531 client library. The appliation must handle it.
7533 * Do not say ".. changed topic to" in command reply in the
7534 client libary. The application must handle it.
7536 * Fixed TOPIC command sending in the client library.
7538 * Fixed a memory leak in silc_client_command_free in the file
7539 lib/silcclient/command.c.
7541 Thu May 24 19:08:55 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
7543 * Imported a modified version of Irssi client to the source tree.
7544 The Irssi will be used to create a new client called
7545 Irssi SILC. Imported to irssi/.
7547 Added silc_core_init_finish function to the Irssi. Affected
7548 file irssi/configure.in.
7550 A lot changes in the Makefile.ams around the irssi tree.
7552 Tue May 22 22:23:49 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
7554 * Do not rehash if the new size is same as the old size of the
7555 hash table, in the silc_hash_table_rehash*. The affected file
7556 lib/silcutil/silchashtable.c.
7558 * Replaced hash_table_del_by_context calls from the server
7559 (when channel->user_list and client->channels) to the
7560 hash_table_del as it is sufficient and faster.
7562 Tue May 22 17:27:16 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
7564 * Added silc_hash_table_list, silc_hash_table_get and the
7565 SilcHashTableList structure to provide an alternative way to
7566 traverse the hash table. The affected files are
7567 lib/silcutil/silchashtable.[ch].
7569 * Changed the server's idlist routines to use the hash table
7570 routines to optimize the code.
7572 Mon May 21 21:46:20 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
7574 * Replaced the client entry's `channel' list and channel entry's
7575 `user_list' list to hash tables for optimized lookup. Changed
7576 the code to use the hash table interface around the code.
7577 Affected file lib/silcd/idlist.[ch].
7579 * Added `auto_rehash' boolean argument to the function
7580 silc_hash_table_alloc to indicate whether the hash table should
7581 auto-rehash when it thinks is appropriate time. It will
7582 increase the hash table size if the there is twice as much
7583 entries in the table than the size of the table, and will
7584 decrease the size if there are twice as less entries than
7585 the size of the table.
7587 Mon May 21 09:51:11 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
7589 * Fixed silc_xxx_get_supported to not crash at some circumstances.
7591 Sun May 20 13:45:58 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
7593 * silc_idcache_purge_by_context deletes the entry now by context
7594 as it is supposed to do. Affected file lib/silccore/idcache.c.
7596 * Send the ERR_NO_SUCH_NICK in the WHOIS command reply if the
7597 client is not anymore valid (WHOWAS givens the info) and not
7598 the ERR_NO_SUCH_CLIENT_ID if the nickname still exists.
7600 Sat May 19 16:30:03 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
7602 * Removed the `data' and `data_len' arguments from the ID Cache
7603 interfaces and added `name' argument. ID Cache does not handle
7604 anymore the binary data only a names associated with given ID.
7606 * When hashing a Client ID with silc_hash_id the entire ID is
7607 not hashed anymore, instead only the hash of the Client ID is
7608 hashed. This way we can access the Client ID from the cache
7609 with Client ID but with the hash of the ID (which is a hash of
7610 the nickname) as well without any difference in performance.
7612 Added also silc_idcache_find_by_id_one_ext to do one on one
7613 searching when we have the actual ID. Added also function
7614 silc_hash_client_id_compare. The affected files are
7615 lib/silccore/idcache.[ch] and lib/silcutil/silcutil.[ch].
7617 * When hashing the name associated with a ID it is always done
7618 in lowercase. This way we can access the cache without worrying
7619 about case-sensitivity, even though, for example nicknames are
7622 * Fixed a bug in server with channel message sending. It put
7623 wrong ID type as destination ID. The affected file
7624 silcd/packet_send.c.
7626 * silc_idcache_del_by_context now deletes from all hash tables
7627 by context. Affected file lib/silccore/idcache.c.
7629 Fri May 18 17:42:00 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
7631 * Changed the client library to use the new ID Cache interface.
7632 Changes around the source tree.
7634 * Added silc_hash_table_rehash_ext to rehash with specific
7635 hash function. Affected file lib/silcutil/silchashtable.[ch].
7637 * Added silc_hash_string_compare to compare two strings in the
7638 hash table. Affected file lib/silcutil/silcutil.[ch].
7640 Fri May 18 11:18:45 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
7642 * Added new function silc_idcache_del_by_context into the
7643 lib/silccore/idcache.[ch].
7645 * Changed the server's ID list routines to use the new ID Cache
7646 interface. Changes around the source tree.
7648 Fri May 18 08:35:31 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
7650 * Added silc_hash_table_del[_by_context]_ext functions in to the
7651 lib/silcutil/silchashtable.[ch].
7653 Removed silc_hash_table_find_all* routines and added new
7654 silc_hash_table_find_foreach to replace them.
7656 Added silc_hash_table_replace_ext function as extended
7657 replacing function. Separated the simple hash table interface
7658 from the extended hash table interface in the file
7659 lib/silcutil/silchashtable.h.
7661 * Fixed minor bugs and changed it to use some of the new
7662 hash table functions in lib/silccore/idcache.c
7664 Thu May 17 18:15:12 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
7666 * Added new function silc_hash_table_find_all to return all keys
7667 in the hash table by the specified key. As the hash table is
7668 collision resistant it also makes it possible to have several
7669 duplicate keys in the hash table. This function may be used to
7670 find all of the keys from the hash.
7672 Added user_context arguments to the SilcHashFunction,
7673 SilcHashCompare and SilcHashDestructor to deliver user specified
7676 Added new fuctions silc_hash_table_find[_all]_ext to do
7677 extended lookup with specified hash and compare functions and
7678 specified user contexts.
7680 Added new function silc_hash_table_add_ext to add the key
7681 with specified hash function and user context.
7683 Added new function silc_hash_table_foreach to traverse all
7684 entrys in the hash table. Added SilcHashForeach callback
7687 Added new function silc_hash_table_del_by_context to delete
7688 the entry only if the context associated with the key matches.
7690 Affected files are lib/silcutil/silchashtable.[ch].
7692 * Removed silc_hash_[server/client/channel]_id and added just
7693 silc_hash_id to the lib/silcutil/silcutil.[ch]. Added also
7694 silc_hash_id_compare to compare two ID's using as the hash table
7695 comparison function. Added also silc_hash_data to hash
7696 binary data and silc_hash_data_compare to compare it.
7698 * Removed silc_idlist_find_client_by_hash as it is not needed
7699 anymore. Affected file silcd/idlist.[ch].
7701 * Rewrote the entire ID Cache system (in lib/silccore/idcache.[ch])
7702 to use internally the SilcHashTable. The new ID Cache is a lot
7703 faster than the old one. Some of the ID Cache interface was also
7704 rewritten and obsolete and stupid functions were removed.
7706 Wed May 16 23:03:30 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
7708 * Added entry_count field to the SilcHashTable to keep the number
7709 of the entries in the table. Implemented the function
7710 silc_hash_table_rehash. Added new function
7711 silc_hash_table_count. Affected file lib/silcutil/silchashtable.c.
7713 Fixed a minor bug in silc_hash_table_free.
7715 * Added silc_hash_string, silc_hash_uint, silc_hash_ptr,
7716 silc_hash_client_id, silc_hash_server_id and silc_hash_channel_id
7717 into the lib/silcutil/silcutil.[ch].
7719 Wed May 16 20:02:47 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
7721 * Implemented a collision resistant hash table into the
7722 lib/silcutil/silchashtable[ch]. See the header and the source
7723 for the SilcHashTable API.
7725 Tue May 15 22:05:46 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
7727 * Merged dotconf version 1.0.2 into lib/dotconf.
7729 Sun May 13 19:32:09 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
7731 * Do not compile anything in lib/silcsim/* if the SIM support
7732 is not enabled. The tree should now compile without problems
7735 Thu May 10 22:49:51 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
7737 * Compiled the SILC under cygwin. Compiled and tested briefly
7738 without problems. More tests needed. The SIMs didn't compile
7741 * Added various #ifdef HAVE_* stuff to lib/silccrypt/silrng.c.
7743 * Fixed possible crash in silc_get_username in the
7744 lib/silcutil/silcutil.c.
7746 Tue May 8 09:04:03 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
7748 * Fixed a va_arg in silc/client_ops.c.
7750 * Oops, RC5 routines were named AES and caused some problems
7751 when not using SIM's. Affected file lib/silccrypt/rc5.c.
7753 Sun May 6 13:59:48 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
7755 * Added new SilcIDIP structure into the lib/silccore/id.h and
7756 replaced the old `ip' fields from all SILC ID's to that type.
7757 This is a step towards IPv6 support.
7759 The silc_id_get_len takes now the ID as an extra argument.
7760 The silc_id_id2str, silc_id_str2id and silc_id_dup now supports
7761 both IPv4 and IPv6 based ID's.
7763 The affected files are lib/silccore/id.[ch] and other files
7764 around the tree using these routines.
7766 * Removed the ID length arguments in server from various
7767 silc_server_send_notify_* routines -> they are not needed
7770 Sat May 5 13:56:33 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
7772 * Fixed memory leak in silc_encode_pem_file in the file
7773 lib/silcutil/silcutil.c.
7775 Thu May 3 21:23:50 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
7777 * Check minor version as well in the SKE. Affected files are
7778 silcd/protocol.c and lib/silcclient/protocol.c.
7780 * Added --identifier option to the server so that an identifier
7781 can be when creating the public key for the server. Affected
7782 file is silcd/silcd.c.
7784 * Fixed minor decoding bug in silc_pkcs_decode_identifier in
7785 lib/silccrypt/silcpkcs.c.
7787 Wed May 2 20:50:49 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
7789 * Register default ciphers and stuff when using -C option with
7790 the server. Affected file sildc/silcd.c.
7792 * Put back the servers public key filename format, it is better
7793 than the new one. For now, the client keys are saved with the
7794 new filename format. The affected file silc/client_ops.c.
7796 * Implemented the Cipher API for the rest of the ciphers that
7797 did not implement it or implemented it the wrong way.
7799 Wed May 2 13:31:26 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
7801 * Register default ciphers and stuff when using the -S option
7802 in the client. Affected file silc/silc.c. Same also when
7803 creating new key pair with -C option.
7805 Tue May 1 14:18:13 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
7807 * Fixed the silc_verify_public_key client operation function to
7808 save the public keys differently. The fingerprint is now
7809 used as filename and not the hostname. This way also the
7810 client keys are saved uniquely and not with hostnames. The
7811 affected file is silc/client_ops.c.
7813 * Trimmed the silc_hash_fingerprint function to remove extra
7814 whitespaces from the end of the fingerprint. The affected
7815 file is lib/silccrypt/silchash.c.
7819 * Added silc_cipher_register_default function to register all
7820 default ciphers. It can be used when configuration files
7821 does not exist and the application does not want any specific
7822 ciphers in any specific order.
7824 The SilcDList is now used as silc_cipher_list dynamically
7825 allocated cipher list. Removed the static list all together
7826 and now all ciphers must be allocated to the dynamic list.
7827 The silc_cipher_alloc routine was changed to check only the
7830 All silc_cipher_* routines that used to return int returns
7833 The affected files lib/silccrypt/silccrypt.[ch].
7835 * The same thing was done to silc_hash_* as for silc_cipher_*
7836 routines. Affected files lib/silccrypt/silchash.[ch].
7838 * The same thing was done to silc_pkcs_* as for silc_cipher_*
7839 routines. Affected files lib/silccrypt/silcpkcs.[ch].
7840 Added also silc_pkcs_[un]register[_default] functions.
7841 Removed the data_context from the PKCS API.
7843 * Added silc_hmac_register_default function to register default
7844 hmacs. Affected files lib/silccrypt/silchmac.[ch]. Added also
7845 SILC_ALL_HMACS macro that can be used with silc_hmac_unregister
7846 to unregister all hmacs at once.
7848 * Register the default ciphers, hash functions, PKCSs and HMACs
7849 if client's configuration file does not exist. The affected
7852 * The client did not load the hash functions from the SIM
7853 modules at all. Added support for this. Affected file is
7854 silc/clientconfig.c.
7856 * When decoding public key with silc_pkcs_public_key_decode, check
7857 the supported algorithm only if PKCS are registered. Affected
7858 file lib/silccrypt/silcpkcs.c. The same was done with the
7859 silc_pkcs_private_key_decode.
7861 * Fixed the SILC List routines to keep the list always in order.
7862 It used to change the list's order when traversing the list but
7863 not it preserves the order. Affected file lib/trq/silclist.h.
7865 Mon Apr 30 17:29:03 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
7867 * Added the client library to use the SilcSocketConnection's
7868 reference counter (by silc_socket_dup) to prevent the bug that
7869 the socket object may be freed underneath async operation.
7871 * The name resolv library checking fixes in the configure.in.pre.
7874 * Created new version of the protocol drafts for future
7875 development. The -03 drafts are the ones that will be changed
7876 in the trunk now and the -02 will remain as they are.
7878 * Send list of CUMODE notifys to the router when announcing
7879 the channel users to the router. Affected file silcd/server.c.
7880 If the router receiving channel founder CUMODE for a channel
7881 that already has channel founder it will send CUMODE notify
7882 to the sender to remove the channel founder rights from the
7883 announced client. Affected file silcd/packet_receive.c.
7885 * The CUMODE notify may now use Server ID as well as the entity
7886 who changes the mode. Updated protocool specs.
7888 * Updated INSTALL and README files.
7890 Sun Apr 29 23:17:50 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
7892 * New web pages in the http://silc.pspt.fi. The pages was
7897 Sun Apr 29 13:33:41 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
7899 * Implemented the [DenyConnectin] config section in the server.
7900 Added silc_server_config_denied_conn to check whether incoming
7901 connection is denied. Affected file silcd/serverconfig.[ch].
7903 * Do not check the ports when checking the incoming configuration
7904 data if the port is 0, meaning any. Affected file is
7905 silcd/serverconfig.c.
7907 Fri Apr 20 18:58:43 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
7909 * Fixed buffer overflow in silc_string_compare in the file
7910 lib/silcutil/silcutil.c.
7912 * Fixed double free in silc_server_command_leave in the file
7915 Fri Apr 20 14:00:11 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
7917 * Fixed the version checking in the server. Affected file is
7920 Thu Apr 19 19:52:46 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
7922 * Fixed the configuration data fetching when accepting new
7923 connections in the server. Affected file silcd/server.c.
7925 Thu Apr 19 11:40:20 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
7927 * Added `sender_entry' argument to the function
7928 silc_server_packet_relay_to_channel so that we can check
7929 whether some destination actually belongs to the same route
7930 the sender belongs (ie, we must not resend the packet to the
7931 sender). Affected file silcd/packet_send.[ch].
7933 * Added `servername' field to the SilcClientEntry in the server
7934 to hold the name of the server where client is from. Affected
7935 file is silcd/idlist.h.
7937 Wed Apr 18 22:19:03 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
7939 * Moved the channel message encrypting in the router betwen
7940 router connections from silc_server_channel_message to the
7941 silc_server_packet_relay_to_channel since we want to check
7942 whether we have anybody channel before encrypting anything.
7943 Affected files silcd/packet_[receive/send].c.
7945 Tue Apr 17 21:18:19 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
7947 * Fixed the [AdminConnection] server config section to support
7948 multiple entries. Affected file silcd/serverconfig.c.
7950 * Added support into the server to check the validity of the
7951 incoming connection before executing any KE or authentication
7954 * The connection configuration is now saved to the KE and
7955 connection auth protocol contexts and not fetched anymore in
7956 the protocol. Affected files silcd/server.c, silcd/protocol.[ch].
7958 * The local hosts listenning address and port is also resolved
7959 now when starting the server. We want to have the socket object
7960 to include the real address and port for the listener. Added
7961 new function silc_net_check_local_by_sock into the files
7962 lib/silcutil/silcnet.[ch].
7964 * Fixed a broadcast bug in server -> do not broadcast if we
7967 * Fixed a routing bug. Do not route broadcast packets ever.
7968 Broadcast packets must be processed always and not routed since
7969 they may be destined to some other host than yourself and thus
7970 would get routed without no good reason. Affected file is
7973 * Added function silc_server_config_is_primary_route to check
7974 whether primary router connection has been configured (a router
7975 configuration that we are initiating). If there is not, we
7976 will assume that there is only two routers in the SILC network
7977 and we will use the incoming router connection as our primary
7978 route. Affected files silcd/serverconfig.[ch], silcd/server.c.
7980 * Changed the order of the broadcasting. Broadcast _after_ the
7981 packet has been processed not before. Affected file is
7984 * Fixed a [ClientConnection] parsing bug. The port was never
7985 parsed correctly thus resulting to port 0. Affected file
7986 silcd/serverconfig.c.
7988 * Fixed silc_server_send_notify_args -> it ignored the `broadcast'
7989 argument and did not set the broadcast packet flag. Affected
7990 file silcd/packet_send.c. Fixed same bug in the function
7991 silc_server_send_notify as well.
7993 * If we receive NEW_ID packet for our own ID in the server, ignore
7996 Mon Apr 16 12:10:33 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
8000 * Removed the nickname from the Private Message Payload.
8001 Updated the code and the protocol specs.
8003 * Updated protocol specs for submitting to the IETF.
8005 * Tweaked the Random Number Generator a bit. Affected file
8006 lib/silccrypt/silcrng.c. Exported a new function
8007 silc_rng_[global]_add_noise which can be used to add more
8010 Sat Apr 14 16:21:32 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
8012 * Do not parse packets with different timeout when protocol
8013 is active -> may cause problem with rekey. Affected file
8016 * When server receives signoff notify it must not create
8017 new channel key if the client is on any channels since the
8018 sender of the signoff notify will create it.
8020 Fri Apr 13 17:12:46 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
8022 * Added printing of error messages during SKE protocol from the
8023 failure packet sent by server during SKE. Affected file
8026 * Removed the client's failure_callback handling with timeout
8027 and handle it immediately when received.
8029 * The SKE library returned wrong type in SUCCESS and FAILURE
8030 packets. They must be 32 bit MSB not 16 bit MSB.
8032 Fri Apr 13 00:09:08 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
8034 * Ok, rewrote the logic of the re-key and now it seems to work.
8035 I tested it on high traffic with frequent re-keys without
8036 problems. Added hmac_receive (and renamed hmac to hmac_send)
8037 in SilcClientConnection in lib/silcclient/client.h and
8038 in SilcIDListData in silcd/idlist.h. Also, removed the
8039 SilcPacketParserContext's cipher and hmac fields as they are
8040 not needed anymore and actually caused some problems when
8041 the ciphers and hmac's changed underneath the packet parser.
8043 Thu Apr 12 14:42:51 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
8045 * If re-key protocol is active then process the incoming packets
8046 synchronously since we must assure that icoming packets encrypted
8047 with the old key is processed before the new keys is set to
8048 use. This is true other packets than for REKEY packets.
8049 Affected file silcd/server.c. The same was done to client library
8050 as well, affected file lib/silcclient/client.c.
8052 Thu Apr 12 12:01:52 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
8054 * Fixed bug in client and server to accept the force send if
8055 the packet is send from silc_[server/client]_packet_process
8056 function. Otherwise the packets are never delivered, oops.
8058 Wed Apr 11 22:10:15 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
8060 * Disable force sending of packets when REKEY protocol is active.
8061 We must assure that no packet is sent directly when rekey is
8062 performed. All packets must be sent through packet queue.
8063 Added macro SILC_SERVER_IS_REKEY to silcd/server.h and
8064 SILC_CLIENT_IS_REKEY to lib/silcclient/client.h. Affected
8065 function is silc_[server/client]_packet_send_real to check
8068 * Replaced the SIM paths from example config files to
8069 /usr/local/modules. Also, make install creates now
8070 /usr/local/silc/logs directory to hold all the SILC server
8073 Wed Apr 11 16:59:59 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
8075 * Made the configure.in.pre work on Solaris. Patch by salo.
8077 * Made all ciphers compatible with non-x86 machines. Defined
8078 CBC mode macros into lib/silccrypt/ciphers_def.h.
8080 Tue Apr 10 20:32:44 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
8082 * Fixed the make install.
8084 Tue Apr 10 16:20:34 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
8086 * When MAC computation fails the silc_packet_decrypt returned 0
8087 even though it was supposed to return -1. Fixed this. The
8088 affected file is lib/silccore/silcpacket.c.
8090 * Do not replace the config files in /etc/silc (in make install)
8091 if they already exist. Affected file ./Makefile.am.
8093 * Do not send re-key packets immediately but through packet queue.
8094 Affected file silcd/protocol.c and lib/silcclient/protocol.c.
8096 * Changed silc_net_check_host_by_sock to return FALSE if the
8097 IP/DNS could not be resolved. Though, it returns the IP address
8098 now even if it could not resolve it (but returns also FALSE).
8099 Affected file lib/silcutil/silcnet.[ch].
8101 Mon Apr 9 21:54:44 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
8103 * Added silc_pkcs_decode_identifier to decode the public key's
8104 identifier. Affected file lib/silccrypt/silpkcs.[ch].
8105 Added also silc_pkcs_free_identifier. Added also new context
8106 SilcPublicKeyIdentifier.
8108 * Added -S option to the silc client. It is used to dump the
8109 contents of the specified public key file.
8111 * Changed the PKCS api to return the public key length when
8112 setting the public key.
8114 * Fixed a fatal bug in the public and private key file loading.
8115 Affected file lib/silccrypt/silcpkcs.c.
8117 * Execute the packet parsing for client with zero (0) timeout
8118 if the protocol is active. Affected file silcd/server.c.
8120 Sun Apr 8 19:30:56 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
8122 * Made the key generation options to the silcd program. Added
8123 -C option, equivalent to client's option.
8125 * Added new [ServerKeys] config section to the server. It
8126 configures the server's public and private key.
8128 * Defined generic Public Key Payload into the protocol
8129 specification to send specific type of public keys and
8132 * Defined new command SILC_COMMAND_GETKEY to fetch a client's
8133 public key or certificate.
8135 * Implemented the GETKEY command to the server and to the
8136 client library and on user interface.
8138 Sun Apr 8 01:37:21 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
8140 * Made preliminary `make install' work.
8142 Thu Apr 5 17:42:30 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
8144 * Added SilcServerRekey context into silcd/idlist.h.
8146 * Added the PFS support as defined in the specification to the
8147 SKE protocol. Affected files lib/silcske/*.c.
8149 * Added `ske_group' field to the SilcServerRekey context to hold
8150 the number of the SKE group that is used with PFS in re-key.
8151 Affected file silcd/idlist.h.
8153 * Added PFS re-key support to the server. Affected file is
8156 * Added silc_protocol_cancel to cancel execution of the next
8157 state of the protocol. Affected file is
8158 lib/silccore/silcprotocol.[ch].
8160 * Added the re-key support with and without PFS to the client
8161 library. Re-key is performed once in an hour, by default.
8163 Added new protocol type SILC_PROTOCOL_CLIENT_REKEY.
8164 Added silc_client_rekey_callback and silc_client_rekey_final.
8165 Affected files are lib/silcclient/protocol.[ch] and
8166 lib/silcclient/client.[ch].
8168 * Removed the `hmac_key' and `hmac_key_len' fields from the
8169 SilcClientConnection structure; not needed. Affected file is
8170 lib/silcclient/client.h.
8174 Wed Apr 4 16:32:31 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
8176 * Do not ask whether user wants to use the negotiated private key
8177 for private messages, just use it. Affected file is
8178 silc/local_command.c.
8180 * Added `send_enc_key' and `enc_key_len' fields to the
8181 SilcIDListData structure since they are needed in the re-key
8182 phase. Affected file is silcd/idlist.[ch].
8184 * Implemented the simple re-key protocol into the server.
8185 Affected files silcd/server.c and silcd/protocol.[ch]. The
8186 re-key will be performed once in an hour, by default.
8188 Added new protocol type SILC_PROTOCOL_SERVER_REKEY.
8189 Added silc_server_rekey, silc_server_rekey_callback and
8190 silc_server_rekey_final.
8192 * Removed Tunneled flag from the protocol. Updated the code
8193 and the specifications.
8195 * Adde `pfs' field to the SilcIDListData to indicate whether
8196 the PFS is to be performed in the re-key. Affected file is
8199 Tue Apr 3 21:52:42 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
8201 * Defined uint8, int8, uint16, int16, uint32, int32, uint64 and
8202 int64 of at least the xintXX size. If void * is less that 4
8203 bytes uint32 * will be used. Defined bool as boolean.
8205 * Changed _ALL_ unsigned long and unsigned int to uint32,
8206 unsgined short to uint16 in the source tree.
8208 * Fixed a fatal bug in silc_server_remove_clients_by_server. Do
8209 not handle clients that has entry->data.registered == FALSE.
8210 They are not in the network anymore. Affected file is
8213 Tue Apr 3 16:39:19 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
8215 * Implemented the sending of the SERVER_SIGNOFF notify in the
8216 server. Affected file is silcd/server.c.
8218 * Added silc_server_send_notify_args into silcd/packet_send.[ch].
8219 Added also silc_notify_payload_encode_args into the
8220 lib/silccore/silcnotify.[ch].
8222 * Implemented ther SERVER_SIGNOFF notify handling in the server.
8223 Affected file silcd/packet_receive.c.
8225 * Implemented the SERVER_SIGNOFF notify handling in the client
8226 library. Affected file lib/silcclient/client_notify.c. Also,
8227 implemnted the printing of the SERVER_SIGNOFF info to the
8228 application. Affected file silc/client_ops.c.
8230 * The silc_idlist_del_server now returns TRUE or FALSE to indicate
8231 if the deleting was successful. Affected file silcd/idlist.[ch].
8233 * Added support for public key authentication in the connection
8234 authentication protocol in the client library. Affected file
8235 lib/silcclient/protocol.c.
8237 * Changed the server's silc_idlist_get_clients_by_* interface
8238 to support already allocated array so that new entries may be
8239 added to pre-allocated array. Affected file silcd/idlist.[ch].
8240 This fixes some bugs with WHOIS, WHOWAS and IDENTIFY commands
8241 and command replies.
8243 * All command reply functions in the server now calls the
8244 pending command callback even if error occured. This way the
8245 error will be delivered to the client as well. Affected files
8246 silcd/command.c and silcd/command_reply.c.
8248 * Fixed INFO command to return local server's info if no server
8249 was provided. Affected file lib/silcclient/command.c.
8251 * Removed RESTART command for good. Updated the code and the
8254 * Rewrote parts of the task system. It is a bit simpler now.
8255 Removed unsued task priorities. The affected files are
8256 lib/silcutil/silctask.[ch].
8258 Mon Apr 2 20:02:33 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
8260 * Moved the USERS printing from the library to the application.
8261 Affected files lib/silcclient/command.c and silc/client_ops.c.
8263 Mon Apr 2 13:13:23 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
8267 * Added channel key re-key support. The re-key is perfomed
8268 only by the router and is done once in an hour. Added `rekey'
8269 field to the SilcChannelEntry in the server. Affected files
8270 silcd/server.c and silcd/idlist.h.
8272 * Added silc_task_unregister_by_context into the file
8273 lib/silcutil/silctask.[ch].
8275 Sun Apr 1 19:49:34 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
8277 * Added SILC_UMODE_GONE mode to indicate when the client is not
8278 present in the SILC network. Added also support to the local
8279 command AWAY that will set this mode. Added support of showing
8280 "xxx is gone" in WHOIS command. The USERS command shows the
8281 gone status as well.
8283 * Fixed setting server and router operator privileges in the
8284 server's UMODE command. Affected file silcd/command.c.
8286 * Merged the SKE KE1 and KE2 payloads into one payload. The
8287 new KE payload is equivalent to the old KE2 payload.
8289 Cleaned up the SKE Start Payload parsing. It now uses the
8290 simple buffer unformatting to do the parsing. A lot faster
8293 Added new Mutual Authentication flag (SILC_SKE_SP_FLAG_MUTUAL)
8294 to the SKE that is used to indicate whether both of the SKE
8295 parties should perform authentication. By default only the
8296 responder performs authentication. By setting this flag also
8297 the initiator must do authentication. By default it is unset
8298 since in normal SKE case, client to server connection, only
8299 the responder should do authentication. When doing SKE between
8300 two clients both should perform authentication. Updated the
8301 code and the protocol specs.
8303 * A little fix to IDENTIFY command in the server. Search the
8304 client first by hash not nickname. Affected file is
8307 * Fixed the silc_client_close_connection to support closing
8308 the client to client connections wihtout deleting too much
8309 data. Affected file lib/silcclient/client.c.
8311 * Fixed a fatal bug in server and client; if KE1 or KE2 packets
8312 are received if protocol used to be active but is not anymore
8313 the application would crash due to NULL pointer dereference.
8314 Affected files silcd/server.c and lib/silcclient/client.c.
8316 * Added `hash' field to the SilcClientConnection to include
8317 the hash function negotiated in the SKE protocol.
8319 * Added new channel mode SILC_CMODE_FOUNDER_AUTH that is used
8320 to set the channel founder authentication data. A client can
8321 claim the founder rights later by providing the authentication
8322 data to the CUMODE command using SILC_CUMODE_FOUNDER mode.
8323 This way the channel founder can regain the channel founder
8324 privileges even it is left the channel. This works only on
8325 local server and the client must be connected to the same
8326 server to be able to regain the founder rights. Updated the
8327 protocol specs accordingly.
8329 Added support to the CMODE command in the client to set the
8330 founder auth data. Read the README to see how to set it.
8332 Added support to the CUMODE command to claim the founder
8333 rights. Read the README to see how to do it.
8335 Added support for the founder authentication to the Channel
8336 Entry in the server. Affected file silcd/idlist.h.
8338 Added support for the SILC_CMODE_FOUNDER_AUTH mode in the
8339 server's CMODE command. Affected file silcd/command.c.
8341 * Added the following new functions into lib/silccore/silcauth.[ch]:
8342 silc_auth_get_method and silc_auth_get_data.
8344 * The server now saves the remote hosts public key to the
8345 SilcIDListData pointer. Affected file silcd/protocol.c.
8347 * The normal server now does not remove the channel entry from
8348 the cache if the founder authentication data is set. It used
8349 to remove it if the founder was the last one on the channel on
8350 the server and left the channel. The auth data is saved and
8351 if the channel is re-joined later the old entry is used with
8352 the old auth data. Affected files silcd/command_reply.c and
8355 * Removed the `pkcs' field from the SilcIDListData structure
8356 in the server; it is not used. Affected file silcd/idlist.h.
8358 Sat Mar 31 15:38:36 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
8360 * Fixed packet processing on slow links. Partial packets were
8361 never re-processed because the incoming data buffer was cleared
8362 by the application. Application must not directly clear the
8363 sock->inbuf, the packet processing routines handle it. Fixed
8364 this in client library and in server.
8366 Fri Mar 30 16:35:27 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
8368 * Fixed the WHOIS and IDENTIFY send reply function to really
8369 check whether to send list or just one entry. Affected file
8372 * Cleaned up the LEAVE command's channel key distribution. The
8373 affected file silcd/command.c.
8375 * Changed CMODE_CHANGE's <Client ID> to <ID Payload> as server
8376 can enforce the channel mode as well. In that case the ID
8377 includes the ID of the server. The code now enforces the
8378 mode change if the router have different mode than the server.
8380 * The notify client operation with CMODE_CHANGE notify can now
8381 return NULL client_entry pointer if the CMODE was not changed
8382 by client. Application must check for this.
8384 * Added <Server ID> argument to INFO command to support server
8385 info fetching by Server ID.
8387 * Added silc_server_announce_get_channel_users to get assembled
8388 packets of channel users of the specified channel. Affected
8389 file silcd/server.[ch].
8391 * Fixed bug in CHANNEL_CHANGE notify in the server. The new ID
8392 was freed underneath the ID Cache.
8394 * Re-announce clients when the server received CHANNEL_CHANGE
8395 notify from the router. Affected file silcd/packet_send.c.
8397 Thu Mar 29 19:10:28 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
8399 * Fixed a fatal bug when client does /join 1 2 3 4 5 6 the server
8400 crashed since it did not handle the fact that there is no cipher
8401 called "3" and didn't check the error condition. Now fixed.
8403 * Added SILC_MESSAGE_FLAG_REQUEST message flag as generic request
8404 flag. It can be used to send message requests.
8406 Thu Mar 29 12:26:25 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
8408 * Implemented the RESTART command in the client.
8410 * Added SILC_MESSAGE_FLAG_NOTICE message flag for informational
8411 notice type messages. Added notice printing to the user
8414 * The channel keys are not re-generated if the channel's mode
8415 is PRIVKEY, ie private key on the channel exists. Affected
8416 files silcd/server.c and silcd/command.c.
8418 * Fixed a little bug in channel message delivery when channel
8419 private keys are set in the server. Affected file is
8420 silcd/packet_send.c.
8422 * Changed the setting on channel->on_channel = TRUE from the
8423 silc_client_save_channel_key to the JOIN command reply. The
8424 key payload is not received if the private channel key is set.
8425 Affected file lib/silcclient/command_reply.c and the
8426 lib/silcclient/client_channel.c.
8428 * When the CMODE_CHANGE notify is sent and the channel private
8429 key mode is removed the channel key must be re-generated in
8430 other cells as well. Added this support for the router in the
8431 silcd/packet_receive.c.
8433 * Added new local command NOTICE to send notice message on
8434 channel. Affected file silc/local_command.[ch].
8436 Wed Mar 28 23:55:54 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
8438 * Added new local command ME to the client. It is used to send
8439 message to a channel with SILC_MESSAGE_FLAG_ACTION to indicate
8440 some action. Affected file silc/local_command.[ch].
8442 * Changed channel_message and private_message client operations
8443 to deliver the message flags to the application. Added also
8444 the `flags' arguments to the silc_client_send_channel_message
8445 and silc_client_send_private_message functions. Affected file
8448 Wed Mar 28 20:50:47 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
8450 * Redefined the Private Message Payload to support private message
8451 keys and to support the new private message flags. Updated
8452 the protocol specs. Flags makes it possible to have for example
8453 CTCP style messages.
8455 * Added new type SilcPrivateMessagePayload and defined an API
8456 for it in the lib/silcclient/silcprivate.[ch].
8458 * Tested private message private keys successfully. Tested the
8459 private message key set, unset and list commands with the new
8462 * Redefined the Channel Message Payload to include the channel
8463 message flags (equal with private message flags) to support
8464 for example CTCP style messages.
8466 * Defined some of the message (for channel and private message)
8467 flags. Updated the protocol specs and added the flags to the
8468 lib/silccore/silcchannel.h. The type is SilcMessageFlags.
8470 Wed Mar 28 15:52:36 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
8472 * Added SilcKeyAgreementStatus type to the key agreement routines
8473 to indicate the current status and error if one occured.
8474 The status types are defined in the lib/silcclient/silcapi.h.
8476 * Added new local command KEY that is used to set and unset private
8477 keys for channels, set and unset private keys for private messages
8478 with remote clients and to send key agreement requests and
8479 negotiate the key agreement protocol with remote client. The
8480 key agreement is supported only to negotiate private message keys,
8481 it currently cannot be used to negotiate private keys for channels,
8482 as it is not convenient for that purpose.
8484 * Fixed a minor pending callback setting bug in the function
8485 silc_client_get_client_by_id_resolve, now the function works.
8486 Affected file lib/silcclient/idlist.c.
8488 * Added function silc_net_get_local_port to get local bound
8489 port by socket. Added to lib/silcutil/silcnet.[ch].
8491 * Added `sockets' and `sockets_count' fields to the SilcClient
8492 object. They hold the sockets of the listenning sockets in
8493 the client. Listenning sockets may be for example the key
8494 agreement server. Affected file lib/silcclient/client.[ch].
8495 Added functions the silc_client_add_socket and the
8496 silc_client_del_socket. They are exported to the application
8499 * Added ~./silc/clientkeys to support other client's public keys.
8501 * Renamed verify_server_key client operation to verify_public_key
8502 and added one argument to indicate the type of the connection
8503 (server, client etc.).
8505 Tue Mar 27 22:22:38 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
8507 * Added silc_server_connection_auth_request to handle the
8508 incoming CONNECTION_AUTH_REQUEST packet. Affected file is
8509 silcd/packet_receive.[ch].
8511 * Added silc_server_send_connection_auth_request into the
8512 silcd/packet_send.c to send the connection auth request packet.
8514 * Cleaned up the silcd/protocol.c a bit and fixed some memory
8517 * Fixed the public key authentication in responder side in the
8518 server. The `auth_data' pointer includes the SilcPublicKey
8519 not the path to the public key. Affected file silcd/protocol.c.
8521 * Implemented the public key authentication in the initiator side
8522 in the server. Affected file silcd/protocol.c.
8524 * Removed the [RedirectClient] config section from the server
8525 configuration. Is not needed and I don't want to implement it.
8527 Tue Mar 27 12:49:56 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
8529 * Cleaned up the CMODE command in the server. It now works
8530 correctly and supports all the modes defined in the protocol.
8531 Affected file is silcd/command.c.
8533 * Added `hmac_name' field to the SilcChannelEntry in the server
8534 to hold the default HMAC of the channel. It can be set when
8535 creating the channel (with JOIN command). Affected files
8538 * Added <cipher> and <hmac> argument to the CMODE_CHANGE notify
8539 type to indicate the change of the current cipher and hmac
8540 on the channel. Client can safely ignore the <cipher> argument
8541 (if it chooses to do so) since the CHANNEL_KEY packet will
8542 force the channel key change anyway. The <hmac> argument is
8543 important since the client is responsible of setting the new
8544 HMAC and the hmac key into use.
8546 * Fixed the CMODE command in the client library as well.
8548 * Tested CMODE command in router environment successfully.
8550 Mon Mar 26 14:39:48 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
8552 * Show the version of the remote client (or server) when connecting
8553 to the server. It is logged to the log file. Affected file
8554 is silcd/protocol.c.
8556 * Fixed the KILLED notify handling in the client library. The
8557 client must be removed from all channels when receiving the
8560 Also, do not remove the client entry when giving the KILL
8561 command but when the KILLED notify is received.
8563 * Removed silc_idlist_find_client_by_nickname from the server.
8564 Not needed anymore. Affected files silcd/idlist.[ch].
8566 * Implemented the CHANNEL_CHANGE notify type handling to the
8567 server. Affected file silcd/server.c.
8571 Mon Mar 26 12:11:14 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
8573 * Added silc_server_send_notify_invite to send the INVITE
8574 notify between routers.
8576 * Implemented the INVITE command correctly to the server.
8578 * Implemented the INVITE notify type handling in the server.
8580 * Implemented the INVITE command to the client library and on the
8583 Sun Mar 25 20:27:09 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
8585 * Added function silc_server_get_client_resolve to find the
8586 client entry by ID from all ID lists and then resolve it
8587 (using WHOIS) if it cannot be found. Affected file is
8590 Sun Mar 25 13:52:51 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
8592 * Implemented the BAN command to the client library.
8594 * The JOIN command in the server now checks the invite list
8597 * Changed the silc_command_reply_payload_encode_va and the
8598 silc_command_payload_encode_va to support that if argument is
8599 NULL it ignores and checks the next argument. Affected file
8600 lib/silccore/silccommand.c.
8602 * Added silc_server_send_notify_ban to send the BAN notify
8603 type between routers.
8605 * Chaned the silc_notify_payload_encode to support that if
8606 argument is NULL it ignores and checks the next argument.
8607 Affected file lib/silccore/silcnotify.c.
8609 * Tested ban lists in router environment successfully.
8611 Sat Mar 24 14:47:25 EET 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
8613 * Implemented BAN command to the server, in silcd/command.[ch].
8615 * Removed the BAN and INVITE_LIST modes from the CMODE command
8618 * Added function silc_string_match to regex match two strings.
8619 Affected files lib/silcutil/silcutil.[ch].
8621 Fri Mar 23 22:02:40 EET 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
8623 * Redefined parts of the SilcChannelEntry in the server to support
8624 the new ban and invite lists.
8626 Fri Mar 23 16:25:11 EET 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
8628 * Redefined the INVITE command. The same command can be used to
8629 invite individuals to the channel but also to manage the invite
8630 list of the channel (to add to and remove from the invite list).
8631 Updated the protocol specs.
8633 * Added new command SILC_COMMAND_BAN that can be used to manage
8634 the ban list of the channel. Updated the protocol specs.
8636 * Removed the channel modes: the SILC_CMODE_BAN and the
8637 SILC_CMODE_INVITE_LIST as they were a bit kludge to be included
8638 in the CMODE command. The equivalent features are now available
8639 using INVITE and BAN commands. Updated the protocol specs.
8641 * Added new SILC_NOTIFY_TYPE_BAN notify type to notify routers
8642 in the network about change in the current ban list. The notify
8643 type is not used by the client.
8645 * Redefined parts of the SILC_NOTIFY_TYPE_INVITE command to
8646 support the invite lists.
8648 Thu Mar 22 22:52:23 EET 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
8650 * Added new function silc_string_regexify that converts string
8651 including wildcard characters into regex string that can
8652 be used by the GNU regex library. Added into the file
8653 lib/silcutil/silcutil.[ch].
8655 Added silc_string_regex_combine to combine to regex strings
8656 into one so that they can be used as one regex string by
8657 the GNU regex library. Added into the file
8658 lib/silcutil/silcutil.[ch].
8660 Added silc_string_regex_match to match two strings. It returns
8661 TRUE if the strings match. Added into lib/silcutil/silcutil.[ch].
8663 Thu Mar 22 15:29:42 EET 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
8665 * Imported GNU regex to the soruce tree into lib/contrib.
8666 Fixed some compiler warning from the regex.c.
8668 Wed Mar 21 15:27:58 EET 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
8670 * Fixed MOTD command in the server to work in router environment.
8672 * Fixed the MOTD command in the client library to support
8673 the server argument in the command.
8675 * Added `nickname_len' argument to the silc_idlist_add_client
8676 in the server, as the `nickname' argument may be binary data
8679 * Added silc_idlist_get_channels to return all channels from
8682 * Implemented LIST command to the server. Affected file is
8685 * Implemented the LIST command to the client library and on the
8688 * Added [<user count>] argument to the LIST command reply.
8689 With private channels the user count is not shown.
8691 * Updated TODO and README.
8693 Tue Mar 20 21:05:57 EET 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
8695 * The client entry's data.registered must be TRUE even with
8696 global client entry on global client list. The data.registered
8697 is used to check whether the client is anymore in the network,
8698 for example with WHOWAS command so it must be valid.
8700 * Fixed the WHOWAS command in the server. It now actually works
8701 in router environment. Added function into silcd/command_reply.c
8702 silc_server_command_reply_whowas_save.
8704 * Added silc_idlist_purge function to the silcd/idlist.c
8705 to periodically purge the ID Cache.
8707 * Fixed INFO command in the server. It works now in router
8708 environment. Added <server name> argument to the INFO command
8709 reply. Updated the protocol specs.
8711 * Fixed minor bug in silc_idcache_purge to not purge if the
8712 expire value is zero.
8714 * Fixed various bugs in WHOIS and IDENTIFY command handling as
8715 they were buggy because of the WHOWAS information.
8717 * Fixed local command MSG to handle the async resolving of
8718 the remote client properly. It used to fail the first MSG.
8719 Affected file silc/local_command.c.
8721 * Added `data_len' field to SilcIDCache context.
8723 Tue Mar 20 16:29:00 EET 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
8725 * Update TODO. Todo in commands in the server.
8727 Tue Mar 20 15:45:14 EET 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
8729 * Added new notify type SILC_NOTIFY_TYPE_UMODE_CHANGE that is
8730 used by routers as broadcast packet to inform other routers
8731 about the changed user mode.
8733 Implemented the notify handling in the server. Affected file is
8734 silcd/packet_receive.c. Added the function
8735 silc_server_send_notify_umode to the silcd/packet_send.[ch].
8737 * Added new generic Channel Payload and deprecated the New Channel
8738 Payload. The New Channel Payload is now the generic Channel
8741 * Added new argument `mode' to the silc_server_send_new_channel
8742 as it is required in the Channel Payload now.
8744 * Renamed the SilcChannelPayload to SilcChannelMessagePayload
8745 and created a new and real SilChannelPayload to represent the
8746 new generic Channel Payload. Implemented the encode/decode
8747 for Channel Payload. Affected file lib/silccore/silcchannel.[ch].
8749 * Added silc_server_get_client_channel_list to return the list
8750 of channels the client has joined for WHOIS command reply.
8751 Affected file silcd/server.[ch].
8753 * Implemented the channel list sending in the WHOIS command reply
8754 in server and in the client.
8756 Implemented the channel list displaying on the user interface
8757 as well. Affected file silc/client_ops.c.
8759 * Added silc_channel_payload_parse_list to parse list of Channel
8760 Payloads. It returns SilcDList list of SilcChannelPayloads.
8761 Client for example can use this function to parse the list of
8762 channels it receives in the WHOIS command reply. The caller
8763 must free the list by calling silc_channel_payload_list_free.
8764 Affected files lib/silccore/silcchannel.[ch].
8766 Mon Mar 19 21:39:15 EET 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
8768 * Added one new argument <user mode> to the WHOIS command reply
8769 to return the mode of the user in SILC. Updated the protocol
8772 Implemented it to the server and client.
8774 Mon Mar 19 18:43:06 EET 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
8776 * Fixed the mode printing on the user interface on joining.
8777 Affected file silc/client_ops.c.
8779 * Implemented the UMODE command and user modes in general to the
8780 client library and to the user interface.
8782 * Implemented the UMODE command to the server.
8784 * The server now sends UNKNOWN_COMMAND error status if client sends
8785 unknown command. Affected file silcd/command.c.
8787 * All server commands now handle the command identifier the right
8788 way when sending the command reply to the client. The client can
8789 use to identify the command replies with the identifier.
8791 Mon Mar 19 16:13:07 EET 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
8793 * Added silc_server_get_client_route to resolve the route to
8794 the client indicated by the client ID. Affected file is
8797 * Added silc_server_relay_packet as general function to relay
8798 packet to arbitrary destination. This deprecates functions
8799 like _send_private_message_key, _relay_notify etc. Affected
8800 file is silcd/packet_send.[ch].
8802 Removed silc_server_send_key_agreement,
8803 silc_server_send_private_message_key and
8804 silc_server_packet_relay_notify functions from the file
8805 silcd/packet_send.[ch].
8809 * Implemented the SILC_NOTIFY_TYPE_KILLED notify handling in the
8810 server. Affected file silcd/packet_receive.[ch].
8812 * Implemented the KILL command to the client. Implemented the
8813 SILC_NOTIFY_TYPE_KILLED notify handling in the client library.
8814 Affected files lib/silcclient/command[_reply].c and
8815 lib/silcclient/client_notify.c. Implemented the KILL notify
8816 printing in the user inteface.
8818 * Fixed a lot silc_parse_nick memory leaks from the client
8819 library in the file lib/silcclient/command.c.
8821 * Changed the silc_server_send_notify_on_channels's `sender'
8822 argument from SilcSocketConnection to SilcClientEntry to
8823 check the sender as entry and not as connection object and not
8824 to send to the client provided as argument. The affected file
8825 is silcd/packet_send.[ch].
8827 * The notify packets that are destined directly to the client used
8828 to not to be processed by the server. Now changed that and the
8829 server processes all notify packets. After relaying the packet
8830 to the client the notify packet is processed in the server.
8832 * The silc_server_free_client_data now checks whether there is
8833 pending outgoing traffic for the client and purges the data to
8834 the network before removing the client entry.
8836 Sun Mar 18 21:02:47 EET 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
8838 * Added SILC_NOTIFY_TYPE_KILLED notify type. It is sent when
8839 an client is killed from the SILC Network. Updated the protocol
8842 Added new function silc_server_send_notify_killed to the
8843 silcd/packet_send.[ch].
8845 * Added function silc_server_packet_relay_notify to relay notify
8846 packets that are destined directly to a client. In this case
8847 the server does not process the notify packets but merely relays
8848 it to the client. Affected file silcd/packet_send.[ch].
8850 Added also silc_server_packet_process_relay_notify to check
8851 whereto relay the notify. Affected file is
8852 silcd/packet_receive.[ch].
8854 * Implemented the KILL command to the server.
8858 * Added the backup schema desgined last fall to the protocol
8859 specs for everyone to see. The specification is in the
8860 *-spec-xx.txt draft and the packet type definitions for the
8861 backup routers is in *-pp-xx.txt draft. Thusly, added also
8862 new packet type SILC_PACKET_CELL_ROUTERS.
8864 * A big security problem in the implementation discovered. The
8865 signoff of an client did not cause new channel key generation
8866 which it of course should've done. The channel keys must be
8867 always re-generated when client leaves (or signoffs) the channel.
8868 The silc_server_remove_from_channels funtion now handles
8869 the channel key re-generation.
8871 * Added `sender' argument to the silc_server_send_notify_on_channels
8872 to not to send the client provided as argument. Affected file
8873 silcd/packet_send.[ch].
8875 Fri Mar 16 15:52:49 EET 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
8877 * Implemented OPER and SILCOPER commands into the server and
8880 * Added silc_auth_verify and silc_auth_verify_data to verify
8881 the authentication directly from the authentication payload.
8882 It supports verifying both passphrase and public key based
8883 authentication. Affected file lib/silccore/silcauth.[ch].
8885 * Added `hash' field to the SilcIDListData structure. It is the
8886 hash negotiated in the SKE protocol. Affected file is
8889 * Slight redesigning of the SilcAuthPayload handling routines.
8890 Do not send SilcPKCS but SilcPublicKey as argument.
8892 * Implemented the public key authentication support to the
8893 serverconfig. The public key is loaded from the provided path
8894 and saved as authentication data to void * pointer. Thus,
8895 changed the unsigned char *auth_data to void *auth_data;
8897 * Fixed SHUTDOWN command to send the reply before the server
8898 is shutdown. :) Affected file silcd/command.c.
8900 * Fixed fatal bug in CONNECT command. The hostname was invalid
8901 memory and server crashed. Affected file silcd/command.c.
8903 * Fixed fatal bug in CLOSE command. The server_entry became
8904 invalid but was referenced later in the command. Affected file
8907 Thu Mar 15 12:46:58 EET 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
8909 * Fixed fatal bug in failure packet handling. Server ignored
8910 the failure and thus crashed when it came.
8914 Wed Mar 14 20:37:35 EET 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
8916 * Added new SILC_CF_LAG_STRICT command flag that strictly forces
8917 that the command may be executed only once in (about) 2 seconds.
8918 The old SILC_CF_LAG flag is same but allows command bursts up
8919 to five before limiting.
8921 Added the support for CF_LAG and CF_LAG_STRICT flags to the
8922 server code. Various commands now includes the CF_LAG_STRICT
8923 flag to disallow any kind of miss-use of the command.
8925 * Fixed the silc_buffer_unformat to not to allocate any data
8926 if the length of the data is zero. It used to allocate the
8927 length + 1. Affected file lib/silcutil/silcbuffmt.c.
8929 Wed Mar 14 16:10:30 EET 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
8931 * Changed the format of AdminConnection configuration section
8932 in the server. Added username of the admin to the format.
8933 Affected files silcd/serverconfig.[ch].
8935 Added silc_server_config_find_admin into silcd/serverconfig.[ch]
8936 to return admin configuration data by host, username and/or
8939 Wed Mar 14 13:18:16 EET 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
8941 * Implemented WHOWAS command to the server. Added the functions:
8943 silc_server_command_whowas_parse,
8944 silc_server_command_whowas_send_reply,
8945 silc_server_command_whowas_from_client and
8946 silc_server_command_whowas_from_server
8948 * Added <Client ID> argument to the WHOWAS command reply. Updated
8949 the protocol specs accordingly.
8951 * Implemented WHOWAS command and command_reply to the client
8954 Implemented the WHOWAS printing on the user interface.
8956 Tue Mar 13 22:17:34 EET 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
8958 * Added new argument to the WHOWAS command reply, the real name.
8959 It is an optional argument. Updated the protocol specs.
8961 * Added SilcIDCacheDestructor callback that is registered when
8962 the SilcIDCache is allocated. The callback is called when
8963 an cache entry in the ID Cache expires, or is purged from the
8964 cache. Added into lib/silccore/idcache.[ch].
8966 Added silc_idlist_client_destructor to the silcd/idlist.[ch]
8967 to destruct the client entries when the cache entry expires.
8968 Other ID Cache's in server and in the client library ignores
8971 * If the ID Cache entry's `expire' field is zero then the entry
8972 never expires. Added boolean `expire' argument to the
8973 silc_idcache_add function in the lib/silccore/idcache.[ch].
8974 If it is TRUE the default expiry value is used.
8976 * Added silc_server_free_client_data_timeout that is registered
8977 when client disconnects. By default for 5 minutes we preserve
8978 the client entry for history - for WHOWAS command.
8980 Tue Mar 13 13:26:18 EET 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
8982 * Added support to the server to enforce that commands are not
8983 executed more than once in 2 seconds. If server receives
8984 commands from client more frequently, timeout is registered
8985 to process the commands. Affected file silcd/command.c.
8986 Added new function silc_server_command_process_timeout.
8988 * Changed NICK_NOTIFY handling in client library to check that
8989 if the client's nickname was changed, so there is no need to
8990 resolve anything from the server.
8992 * Removed error printing from the WHOIS and IDENTIFY commands.
8993 If error occurs then it is ignored silently in the client library.
8994 The application, however, may map the received error to
8995 human readable error string. The application currently maps
8996 the NO_SUCH_NICKNAME error to string.
8998 * Made the command status message public to the application. Moved
8999 them from lib/silcclient/command_reply.c to
9000 lib/silcclient/command_reply.h. The application can map the
9001 received command status to the string with the
9002 silc_client_command_status_message function.
9004 * Added check to the server to check that client's ID is same
9005 as the Source ID in the packet the client sent. They must
9008 Tue Mar 13 12:49:21 EET 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
9010 * Added dist-bzip hook to the Makefile.am to make bzip2
9011 compressed distributions.
9013 Mon Mar 12 18:43:38 EET 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
9015 * Server now enforces the maximum length for the nickname and
9016 the channel as protocol specification dictates. 128 bytes for
9017 nickname and 256 bytes for channel name.
9019 * Moved the WHOIS printing to the application. The client libary
9020 does not print out the WHOIS information anymore, the application
9021 must do it. Renamed silc_client_command_reply_whois_print to
9022 the silc_client_command_reply_whois_save.
9024 The client's idle time is also sent to the application now, and
9025 the idle is shown on screen.
9027 * Added silc_client_command_reply_identify_save to save the
9028 received IDENTIFY entries.
9030 * Do not check for channel private keys in message sending and
9031 reception if the channel does not have the PRIVKEY mode set.
9032 Affected file lib/silclient/client_channel.c.
9034 Sun Mar 11 20:25:06 EET 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
9036 * Fixed a minor bug if WHOIS and IDENTIFY command parsing that
9037 just surfaced after chaning the JOIN procedure.
9039 Sun Mar 11 14:59:05 EET 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
9041 * Added silc_client_get_clients_by_list to get client entries
9042 from Client ID list, that is returned for example by JOIN
9043 and USERS command replies. The application should use this
9044 function for example when JOIN command reply is received to
9045 resolve the clients already on the channel (library does not
9046 do that anymore as USERS command reply is not used in the JOIN
9047 procedure anymore). Affected files lib/silcclient/silcapi.h and
9048 lib/silcclient/idlist.c.
9050 * JOIN command reply and USERS command reply returns now SilcBuffer
9051 pointers instead of unsigned char pointers when returning
9052 the client list and mode list.
9054 * Added <Client ID> argument to the JOIN command reply, mainly
9055 for the server to identify for which client the command was
9056 originally sent. Updated protocol specs accordingly.
9058 * Added SilcDlist private_key pointer to the SilcChannelEntry
9059 in the client to support the channel private keys. Affected
9060 file is lib/silcclient/idlist.h.
9062 * Added SilcChannelPrivateKey argument to the function
9063 silc_client_send_channel_message so that application can choose
9064 to use specific private ke if it wants to. If it is not provided,
9065 the normal channel key is used, unless private keys are set.
9066 In this case the first (key that was added first) is used
9067 as the encryption key.
9069 * Implemented the support for channel private key handling.
9070 Implemented the following functions:
9072 silc_client_add_channel_private_key,
9073 silc_client_del_channel_private_keys,
9074 silc_client_del_channel_private_key,
9075 silc_client_list_channel_private_keys and
9076 silc_client_free_channel_private_keys
9078 Affected file lib/silcclient/client_channel.c.
9080 * Added the support for the private keys in the channel message
9081 sending and encryption and in the message reception and
9082 decryption. Affected funtions are
9083 silc_client_send_channel_message and silc_client_channel_message.
9085 Sat Mar 10 21:36:22 EET 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
9087 * Added SKE's key verify callback to the client library's
9088 KE protocol context. Affected files lib/silcclient/protocol.[ch].
9090 * Removed the statement that server (or router) must send USERS
9091 command reply when joining to the channel so that the client
9092 knows who are on the channel. Instead, the client list and
9093 client's mode list is now sent in the JOIN command reply to the
9094 client who joined channel. This is better solution.
9096 * Added function silc_server_get_users_on_channel and function
9097 silc_server_save_users_on_channel to the silcd/server.[ch].
9099 * Removed function silc_server_command_send_users from the
9102 * Do not show topic on the client library anymore. The topic is
9103 sent in the command reply notify to the application and the
9104 application must show the topic now.
9106 Sat Mar 10 00:07:37 EET 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
9108 * Added client searching by nickname hash into the IDENTIFY and
9109 WHOIS commands in the server as they were clearly missing from
9110 them. Affected file is silcd/command.c.
9112 * Fixed a bug in private message receiving in the client library.
9113 The remote ID was freed and it wasn't supposed, now it is
9116 Fri Mar 9 12:40:42 EET 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
9118 * Minor fix to the channel payload; allocate the data area, as it
9119 needs to be of specific length.
9121 * If the key agreement port is zero then the operating
9122 system will define the bound port. Affected files are
9123 lib/silcclient/silcapi.h and lib/silcclient/client_keyagr.c.
9125 * Added new function silc_channel_payload_decrypt into the file
9126 lib/silccore/silcchannel.[ch].
9128 * Moved the channel message etc, check from silc_packet_decrypt
9129 to applications. The library calls now a generic
9130 SilcPacketCheckDecrypt callback which is to return TRUE or FALSE
9131 when the packet is either normal or special. This was done to
9132 allow more wide range of checking that was not allowed when
9133 the code was in library. Now applications can do virtually any
9134 checks to the packet and return to the library the decision how
9135 the packet should be processed. Affected files are
9136 lib/silccore/silcpacket.[ch].
9138 Added silc_server_packet_decrypt_check to the server and
9139 silc_client_packet_decrypt_check to the client library.
9141 * Added silc_server_packet_send_srcdest into silcd/packet_send.[ch]
9142 to send with specified source and destination information.
9144 * Channel message delivery between routers was broken after the
9145 channel key distribution was fixed earlier. The channel key
9146 was used be to distributed to other routers as well which is not
9147 allowed by the protocol. Now this is fixed and channel keys
9148 really are cell specific and the channel message delivery between
9149 routers comply with the protocol specification.
9151 * Fixed various commands in server to check also the global list
9152 for the channel entry and not just the local list. The affected
9153 file silcd/command.c.
9155 Thu Mar 8 21:39:03 EET 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
9157 * Added assert()s to buffer formatting and unformatting routines
9158 to assert (if --enable-debug) when error occurs. Affected
9159 file: lib/silcutil/silcbuffmt.c.
9161 * Changed to auto-reconnect to check whether the remote host is
9162 router and register the re-connect timeout if it is. It used
9163 to check that whether we are normal server, but router must do
9164 auto-reconnect with another router as well. Affected file
9167 * Removed the [<key len>] option from CMODE command as the cipher
9168 name decides the key length, nowadays. See the defined ciphers
9169 from the protocol specification.
9171 * Added [<hmac>] option to the CMODE command to define the HMAC
9172 for the channel. Added SILC_CMODE_HMAC channel mode.
9174 * Added [<hmac>] option for the JOIN command so that user can
9175 select which HMAC is used to compute the MACs of the channel
9178 * Added Hmac field to the Channel Message Payload. The integrity
9179 of plaintext channel messages are now protected by computing
9180 MAC of the message and attaching the MAC to the payload. The
9181 MAC is encrypted. Now, it is clear that this causes some
9182 overhead to the size of the packet but rationale for this is that
9183 now the receiver can verify whether the channel message decrypted
9184 correctly and also when private keys are set for the channel the
9185 receiver can decrypt the packet with several keys and check from
9186 the MAC which key decrypted the message correctly.
9188 * Added silc_cipher_encrypt and silc_cipher_decrypt into the
9189 lib/silccrypt/silccipher.[ch].
9191 * Added silc_hash_len to return the digest length into the
9192 lib/silcrypt/silchash.[ch].
9194 * Rewrote parts of Silc Channel Payload interface in the
9195 lib/silccore/silcchannel.[ch]. The encode function now also
9196 encrypts the packet and parse function decrypts it.
9198 Wed Mar 7 20:58:50 EET 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
9200 * Fixed a minor formatting bug in the SKE's key material processing.
9201 It actually might have processed the keys wrong way resulting
9204 * Redefined the mandatory HMAC algorithms and added new algorithms.
9205 Added hmac-sha1-96 and hmac-md5-96 which are normal hmac-sha1
9206 and hmac-md5 truncated to 96 bits. The mandatory is now
9207 hmac-sha1-96. Rest are optional (including the one that used
9208 to be mandatory). Rationale for this is that the truncated HMAC
9209 length is sufficient from security point of view and can actually
9210 make the attack against the HMAC harder. Also, the truncated
9211 HMAC causes less overhead to the packets. See the RFC2104 for
9214 * Added new [hmac] configuration section. The SKE used to use
9215 the hash names (md5 and sha1) in the SKE proposal as HMCAS which
9216 is of course wrong. The official names that must be proposed in
9217 the SKE are the ones defined in the protocol specification
9218 (hmac-sha1-96 for example). The user can configure any hmac
9219 using any hash function configured in the [hash] section. At
9220 least, the mandatory must be configured.
9222 Rewrote the HMAC interface in lib/silccrypt/silchmac.[ch].
9224 * Added HMAC list to the SKE proposal list. It has now both
9225 hash algorithm list and HMAC list. This makes the protocol
9226 incompatible with previous versions. The SKE now seems to work
9227 the way it is supposed to work, for the first time actually.
9229 * Defined plain Hash algorithms to the protocol specification.
9232 Tue Mar 6 15:36:11 EET 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
9234 * Implemented support for key agreement packets into the server.
9235 Added functions silc_server_key_agreement and
9236 silc_server_send_key_agreement. Other than these functions,
9237 server has nothing to do with this packet.
9239 * Added support for private message key packets into the server.
9240 Added functions silc_server_private_message_key and
9241 silc_server_send_private_message_key.
9245 * Changed the silc_[client|server]_protocol_ke_set_keys to be
9246 called in the protocol's final callback instead in the END
9247 protocol state. This makes a little more sense and in the same
9248 time in client we can use the same protocol routines for normal
9249 key exchange and to key agreement packet handling as well.
9251 * Added to both client's and server's KE protocol context the
9252 SilcSKEKeyMaterial pointer to save the key material. We will
9253 bring the key material to the protocol's final callback by doing
9254 this. The final callback must free the key material.
9256 * Added SKE's packet_send callback into client's KE protocol
9257 context so that the caller can choose what packet sending function
9258 is used. This way we can use different packet sending when
9259 doing normal SKE when doing key agreement packet handling (in
9260 the key agreement packet handling we do not want to encrypt
9263 * Implemented the responder side of the key agreement routines
9264 in the client. The client can now bind to specified port and
9265 accept incoming key negotiation. The key material is passed
9266 to the application after the protocol is over.
9268 * Implemented the processing of incoming Key Agreement packet
9269 in the client. Added function silc_client_key_agreement to
9272 * Implemented the intiator side of the key agreement routines
9273 in the client. The client can now initiate key agreement with
9274 another remote client. The key material is passed to the
9275 application after the protocol is over.
9277 * Created client_keyagr.c to include all the key agreement
9280 * Added macro SILC_TASK_CALLBACK_GLOBAL which is equal to the
9281 SILC_TASK_CALLBACK except that it is not static.
9283 * Created client_notify.c and moved the Notify packet handling
9284 from the client.[ch] into that file.
9286 * Created client_prvmsg.c and moved all private message and
9287 private message key routines from the client.[ch] into that file.
9289 * Create client_channel.c and moved all channel message and
9290 channel private key routines from the client.[ch] into that file.
9292 * Changed silc_client_get_client_by_id_resolve to resolve with
9293 WHOIS command instead of IDENTIFY command, in the file
9294 lib/silclient/idlist.c.
9296 Mon Mar 5 18:39:49 EET 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
9298 * Implemented the SKE's responder side to the Client library.
9300 * When FAILURE is received to the protocol do not trust it
9301 blindly. Register a timeout to wait whether the remote closes
9302 the connection as it should do it, only after that process the
9303 actual failure. This was changed to both client and server.
9305 * Added client_internal.h to include some of the structures
9306 there instead of client.h in lib/silcclient/.
9308 * Added function silc_task_unregister_by_callback to unregister
9309 timeouts by the callback function.
9311 Sat Mar 3 19:15:43 EET 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
9313 * Some "Incomplete WHOIS info" errors has been appearing on the
9314 log files. Took away the entry->userinfo check from WHOIS
9315 reply sending. The entry->userinfo is now " " if client did not
9316 provide one. I thought this was fixed earlier but something
9317 is wrong still. Let's see if the error still appears.
9319 Wed Feb 28 20:56:29 EET 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
9321 * Fixed a minor bug in the login when the channel key is
9322 re-generated in the server. It used to generate the key in
9323 wrong order and thus caused problems in the channel traffic.
9325 * Fixed a minor bug in channel key distsribution after
9326 KICK command. The key was not sent to the router even though
9329 Tue Feb 27 20:24:25 EET 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
9331 * Added silc_ske_process_key_material_data as generic routine
9332 to process any key material as the SILC protocol dictates. The
9333 function is used by the actual SKE library but can be used by
9334 applications as well. This relates to the private message keys
9335 and the channel private keys since they must be processed the
9336 same way the normal SILC session keys. The protocol dictates
9337 this. Affected files: lib/silcske/silcske.[ch].
9339 Added also silc_ske_free_key_material to free the
9340 SilcSKEKeyMaterial structure.
9342 * Defined silc_cipher_set_key function to set the key for
9343 cipher without using the object's method function. The affected
9344 files: lib/silccrypt/silccipher.[ch].
9346 * Implemented silc silc_client_add_private_message_key,
9347 silc_client_add_private_message_key_ske,
9348 silc_client_del_private_message_key,
9349 silc_client_list_private_message_keys and
9350 silc_client_free_private_message_keys functions in the
9353 Added functions silc_client_send_private_message_key to send
9354 the Private Message Key payload and silc_client_private_message_key
9355 to handle incoming Private Message Key payload.
9357 * Added Cipher field to the Private Message Key payload to set
9358 the cipher to be used. If ignored, the default cipher defined
9359 in the SILC protocol (aes-256-cbc) is used.
9361 Tue Feb 27 13:30:52 EET 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
9363 * Removed lib/silcclient/ops.h file.
9365 Redefined parts of the SILC Client Library API. Created new
9366 file silcapi.h that deprecates the ops.h file and defines the
9367 published Client Library API. Defined also private message key
9368 API and channel private key API into the file.
9370 This is the file that the application must include from the
9371 SILC Client Library. Other files need not be included by
9372 the application anymore.
9374 * Added new key_agreement client operation callback and also
9375 defined the Key Agreement library API for the application.
9377 Tue Feb 27 11:28:31 EET 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
9379 * Added new packet type: SILC_PACKET_KEY_AGREEMENT. This packet
9380 is used by clients to request key negotiation between another
9381 client in the SILC network. If the negotiation is started it
9382 is performed using the SKE protocol. The result of the
9383 negotiation, the secret key material, can be used for example
9384 as private message key.
9386 Implemented the Key Agreement payload into the files
9387 lib/silccore/silauth.[ch].
9389 Mon Feb 26 12:13:58 EET 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
9391 * Redefined ciphers for the SILC protocol. Added some new ciphers
9392 and defined the key lengths for the algorithms. Changed the
9393 code accordingly. The default key length is now 256 bits.
9395 * Fixed SKE key distribution function silc_ske_process_key_material
9396 when the key length is more than 128 bits. The default key
9397 length in SILC is now 256 bits.
9399 * Added new command status type: SILC_STATUS_ERR_UNKOWN_ALGORITHM
9400 to indicate unsupported algorithm.
9402 * Renamed rijndael.c to aes.c and all functions as well.
9404 * Fixed a long standing channel key setting bug in client library.
9405 Weird that it has never surfaced before.
9407 * Fixed bug in channel deletion. If the entire channel is removed
9408 then it must also delete the references of the channel entry
9409 from the client's channel list as the client's channel entry and
9410 the channel's client entry share same memory.
9412 Sun Feb 25 20:47:29 EET 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
9414 * Implemented CONNECT and SHUTDOWN commands in the client.
9416 * Implemented CLOSE command to the client.
9418 * Added the function silc_idlist_find_server_by_name into the
9419 files silcd/idlist.[ch].
9421 Added the function silc_idlist_find_server_by_conn into the
9422 files silcd/idlist.[ch].
9424 Sat Feb 24 23:45:49 EET 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
9426 * DIE command was renamed to SHUTDOWN. Updated the both code
9429 * Defined SILC_UMODE_NONE, SILC_UMODE_SERVER_OPERATOR and
9430 SILC_UMODE_ROUTER_OPERATOR modes into lib/silccore/silcmode.h.
9432 * Implemented CONNECT, CLOSE and SHUTDOWN commands to the server
9435 * Added function silc_server_create_connection function to create
9436 connection to remote router. My server implementation actually
9437 does not allow router to connect to normal server (it expects
9438 that normal server always initiates the connection to the router)
9439 so the CONNECT command is only good for connecting to another
9442 Sat Feb 24 16:03:45 EET 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
9444 * Added SILC_NOTIFY_TYPE_KICKED to indicate that the client
9445 or some other client was kicked from the channel.
9447 Implemented the handling of the notify type to both client
9450 Implemented silc_server_send_notify_kicked to send the KICKED
9451 notify. It is used to send it to the server's primary router.
9453 * Implemented the KICK command into server and client.
9455 * Added `query' argument to the silc_idlist_get_client function
9456 to indicate whether to query the client from server or not if
9459 * Added new command status type SILC_STATUS_ERR_NO_CHANNEL_FOPRIV
9460 to indicate that the client is not channel founder.
9464 Sat Feb 24 00:00:55 EET 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
9466 * Removed the rng context from SilcPacketContext structure and
9467 changed that the packet routine uses the Global RNG API.
9469 Fri Feb 23 11:22:57 EET 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
9471 * Added support for quit message that client can "leave" on the
9472 channel when it quits the SILC. It is ditributed inside the
9473 SILC_NOTIFY_TYPE_SIGNOFF notify type.
9475 Added silc_server_free_client_data that will take the
9476 signoff message as argument.
9478 * Changed SKE routines to use the silc_pkcs_sign/verify routines.
9480 Thu Feb 22 23:05:36 EET 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
9482 * Updated parts of the protocol specification to keep it up
9485 Thu Feb 22 15:08:20 EET 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
9487 * Added List flag (SILC_PACKET_FLAG_LIST) to indicate list of
9488 payloads in one packet.
9490 * Deprecated following packet types: NEW_ID_LIST, NEW_CHANNEL_LIST,
9491 NEW_CHANNEL_USER_LIST, SET_MODE and SET_MODE_LIST. List packets
9492 use now the new List flag.
9494 * Also deprecated the following packet types: REPLACE_ID,
9495 NEW_CHANNEL_USER and REMOVE_CHANNEL_USER packet types.
9497 * Added list support for Notify packet in server.
9499 * Added silc_server_send_notify_channel_change to send the
9500 CHANNEL_CHANGE notify type to replace channel ID's. Deprecates
9501 the silc_server_send_replace_id.
9503 * Added silc_server_send_notify_nick_change to send the
9504 NICK_CHANGE notify type. Deprecates the function
9505 silc_server_send_replace_id.
9507 * Added silc_server_send_notify_join to send the JOIN notify type.
9508 Deprecates the function silc_server_send_new_channel_user.
9510 * Added silc_server_send_notify_leave to send LEAVE notify type.
9511 Deprecates the function silc_server_send_remove_channel_user.
9513 * Added silc_server_send_notify_cmode and
9514 silc_server_send_notify_cumode to send CMODE and CUMODE notify
9515 types. Deprecates the silc_server_send_set_mode function.
9517 * Added SERVER_SIGNOFF notify type to indicate that server has
9518 quit. This means that all clients on the channel from that
9519 server will drop. This can be also used when netsplit happens.
9521 Deprecated REMOVE_ID packet type since it is not needed anymore
9524 Added silc_server_send_notify_server_signoff to send the
9525 SERVER_SIGNOFF notify type. Deprecates the function
9526 silc_server_send_remove_id.
9528 Added also silc_server_send_notify_signoff to send the
9529 SIGNOFF notify type.
9531 * Employed the PKCS #1. It is the mandatory way to do RSA in the
9532 SILC protocol from this day on. Changed the protocol
9533 specification as well.
9535 * Added silc_server_send_notify_topic_set to send TOPIC_SET
9536 notify type. It is used between routers to notify about
9537 topic changes on a channel.
9539 * Added silc_id_dup into lib/silccore/id.[ch] to duplicate
9542 * Partly updated the protocol specification to comply with the
9543 changes now made. It is still though a bit outdated.
9545 * The JOIN notify type now takes one extra argument <Channel ID>.
9546 The packet used to be destined to the channel but now the
9547 JOIN type may be sent as list thus it is impossible to
9548 destine it to any specific channel. By adding this argument
9549 it is again possible.
9551 Wed Feb 21 22:39:30 EET 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
9553 * Added CREDITS file. The CHANGES and CREDITS file will appear
9554 in the distribution as well.
9556 Wed Feb 21 14:17:04 EET 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
9558 * Implemented CMODE_CHANGE, CUMODE_CHANGE and TOPIC_SET notify
9559 types in the server's silcd/packet_receive.c.
9561 * Implemented CMODE and CUMODE to work in router environment.
9563 * Fixed minor encoding and decoding buglet from the
9564 lib/silccore/silcmode.c.
9566 * Fixed buffer overflow from lib/silcclient/command.c in USERS
9569 Wed Feb 21 12:44:00 EET 2001 Mika Boström <bostik@lut.fi>
9571 * Changed all SilcConfigServer* and silc_config_server* to
9572 SilcServerConfig* and silc_server_config*, respectively.
9575 Wed Feb 21 00:10:00 EET 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
9577 * Associated the ID (client or server ID) to the Authentication
9578 Payload to avoid any possibility of forging. Updated the
9579 protocol specification and the code accordingly.
9581 Tue Feb 20 14:14:14 EET 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
9583 * The RSA key length is now save to the RsaKey context in the
9584 key generation process in lib/silccrypt/rsa.c. The key length
9585 is now used to figure out the maximum size of the block allowed
9586 to be encrypted/signed.
9588 * Added silc_mp_mp2bin_noalloc into lib/silcmath/mpbin.[ch]. It
9589 is equivalent to the silc_mp_mp2bin but does not allocate any
9592 * Changed silc_mp_mp2bin API to take length argument. If it is
9593 non-zero then the buffer is allocated that large. If zero, then
9594 the size is approximated using silc_mp_sizeinbase, which however
9597 * Created Global RNG API which is global RNG that application can
9598 initialize. After initializing, any routine anywhere in the
9599 code (including library) can use RNG without allocating a new
9600 RNG object. This was done to allow this sort of use of the
9601 RNG in code that has no chance to allocate RNG object. All
9602 applications currently allocate this and many routines in the
9603 library use this. Affected file lib/silccrypt/silcrng.[ch].
9605 * Removed the RNG kludge from lib/silcmath/primegen.c and changed
9606 it to use the Global RNG API.
9608 * Defined Authentication Payload into protocol specification that
9609 is used during SILC session to authenticate entities. It is
9610 used for example by client to authenticate itself to the server
9611 to obtain server operator privileges.
9613 Implemented this payload into the lib/silccore/silcauth.[ch].
9614 Implemented also routines for public key based authentication
9615 as the new protocol specification dictates.
9617 Moved definitions of different authentication methods from
9618 lib/silccore/silcprotocol.h into lib/silccore/silcauth.h.
9620 * Added silc_pkcs_encrypt, silc_pkcs_decrypt, silc_pkcs_sign,
9621 silc_pkcs_verify and silc_pkcs_sign_with_hash and
9622 silc_pkcs_verify_with_hash functions into the file
9623 lib/silccrypt/silcpkcs.[ch].
9625 Mon Feb 19 19:59:28 EET 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
9627 * The client entry's userinfo pointer must be always valid.
9628 Otherwise the [<unknown>] bug will surface beacuse the WHOIS
9629 will fail since it requires the userinfo. Now, the userinfo
9630 is allocated as "" if actual userinfo does not exist. Actually,
9631 it must exist and it is totally Ok to drop client connections
9632 that does not announce the userinfo. However, we will make
9633 this workaround for now.
9635 * Added silc_net_get_remote_port into lib/silcutil/silcnet.[ch]
9636 to return the remote port by socket.
9638 Mon Feb 19 14:26:49 EET 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
9640 * Changed SILC_SERVER_COMMAND_EXEC_PENDING macro to the name
9641 SILC_SERVER_PENDING_EXEC and added an new macro
9642 SILC_SERVER_PENDING_DESTRUCTOR which is called to free the
9643 data or when error occurs while processing the pending command.
9645 Added new argument `destructor' into silc_server_command_pending
9646 and to the SilcServerCommandPending object. This destructor is
9647 now called after calling the pending callback or if error occurs
9648 immediately. If error occurs the actual pending callback won't
9649 be called at all - only the destructor. The destructor may be
9650 NULL if destructor is not needed.
9652 All this applies for client library code as well. Similar
9653 changes were made there as well for the pending commands.
9655 In the client, the application must now allocate the
9656 SilcClientCommandContext with the silc_client_command_alloc
9659 * Added reference counter to the SilcServerCommandContext. Added
9660 function silc_server_command_alloc and silc_server_command_dup
9663 Same type of functions added to the client library for the same
9666 * Removed the cmd_ident from IDListData away since it is now
9667 global for all connections. It is the command identifier used
9668 in command sending and with pending commands. The affected file
9671 * Added reference counter to the SilcSocketConnection objecet to
9672 indicate the usage count of the object. The object won't be
9673 freed untill the reference counter hits zero. Currently only
9674 server uses this, and client ignores it. The client must be
9675 set to use this too later. The affected files are
9676 lib/silccore/silcsockconn.[ch]. Added also the function
9677 silc_socket_dup to increase the reference counter.
9679 This was mainly added because it is possible that the socket
9680 is removed underneath of pending command or other async
9681 operation. Now it won't be free'd and proper DISCONNECTING
9682 flags, etc. can be set to avoid sending data to connection that
9683 is not valid anymore.
9685 * Added SILC_SET_DISCONNECTING to server.c when EOF is read from
9686 the connection. After that it sets SILC_SET_DISCONNECTED.
9687 It is, however, possible that the socket data is not still freed.
9688 The silc_server_packet_process now checks that data is not
9689 read or written to connection that is DISCONNECTED. The socket
9690 get's freed when the reference counter hits zero.
9692 Mon Feb 19 00:50:57 EET 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
9694 * Changed the client operation API: channel_message operation's
9695 `sender' is now the client entry of the sender, not the nickname
9696 and the `channel' is the channel entry, not the channel name.
9698 In the private_message operation the `sender' is now also the
9699 client entry of the sender not the nickname.
9701 Affected file is lib/silcclient/ops.h and all applications
9702 using the client operations.
9704 Sat Feb 17 22:11:50 EET 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
9706 * Moved the calling of ops->connect() from connect_to_server_final
9707 into receive_new_id functin since that is the point when the
9708 client is actually allowed to send traffic to network. The
9709 affected file is lib/silcclient/client.c.
9711 Sat Feb 17 13:15:35 EET 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
9713 * When receiving NEW_CHANNEL_LIST, NEW_CHANNEL_USER_LIST,
9714 NEW_ID_LIST and SET_MODE_LIST packets, broadcast the list packet
9715 (if needs broadcasting) instead of broadcasting the packets one
9716 by one which would make a burst in the network traffic.
9718 * Added `broadcast' argument to the functions in silcd/server.[ch]
9719 silc_server_create_new_channel[_with_id] to indicate whether
9720 to send New Channel packet to primary router.
9722 Sat Feb 17 01:06:44 EET 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
9724 * Added new function into the silcd/server.[ch] files:
9725 silc_server_create_new_channel_with_id to create new channel with
9726 already existing Channel ID.
9728 * Added new packet type SILC_PACKET_SET_MODE_LIST into the file
9729 lib/silccore/silcpacket.h. This packet is used t send list of
9730 Set Mode payloads inside one packet. Server uses this to set
9731 the modes for the channels and clients on those channels, that it
9732 announced to the router when it connected to it. The protocol
9733 specification has been updated accordingly.
9735 * The silc_server_new_channel did not handle the packet coming
9736 from normal server as it normally does not send that. However,
9737 when it announces its channels it does send it. Implemented
9738 the support for that.
9740 * Added SILC_ID_CHANNEL_COMPARE macro to compare to Channel ID's
9741 into the file lib/silccore/id.h.
9743 Fri Feb 16 23:57:29 EET 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
9745 * Fixed memory leaks in the functions silc_idlist_del_client,
9746 silc_idlist_del_channel and silc_idlist_del_server in the file
9747 silcd/idlist.c. All of those leaked like a sieve.
9749 * Fixed some small memory leaks in the client's function
9750 silc_client_notify_by_server.
9752 * Added functions into silcd/server.c: silc_server_announce_clients,
9753 silc_server_announce_channels and silc_server_announce_server.
9754 These functions are used by normal and router server to announce
9755 to its primary router about clients, channels and servers (when
9756 router) that we own. This is done after we've connected to the
9759 These functions effectively implements the following packet types:
9760 SILC_PACKET_NEW_CHANNEL_LIST, SILC_PACKET_NEW_CHANNEL_USER_LIST
9761 and SILC_PACKET_NEW_ID_LIST.
9763 * Added new functions into the silcd/packet_receive.[ch]:
9764 silc_server_new_id_list, silc_server_new_channel_list and
9765 silc_server_new_channel_user_list to handle the incoming
9766 NEW_ID_LIST, NEW_CHANNEL_LIST and NEW_CHANNEL_USER_LIST packets.
9768 * Added support of changing Channel ID in the function
9769 silc_server_replace_id. If the server that announces a channel
9770 to the router already exists in the router (with same name but
9771 with different Channel ID), router is responsible to send
9772 Replace ID packet to the server and force the server to change
9773 the Channel ID to the one router has.
9775 * Added new notify type SILC_NOTIFY_TYPE_CHANNEL_CHANGE to notify
9776 client that the Channel ID has been changed by the router. The
9777 normal server sends this to the client. Client must start using
9778 the new Channel ID as the channel's ID.
9780 Implemented handling of this new type into lib/silcclient/client.c
9781 into the function silc_client_notify_by_server.
9783 * Added new function silc_idlist_replace_channel_id into the files
9784 silcd/idlist.[ch] to replace the Channel ID.
9786 Fri Feb 16 14:14:00 EET 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
9788 * Call silc_server_command_identify_check always when processing
9789 the IDENTIFY command in silcd/command.c
9791 Thu Feb 15 20:07:37 EET 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
9793 * Added new packet type SILC_PACKET_HEARTBEAT that is used to
9794 send keepalive packets. The packet can be sent by clients,
9795 servers and routers.
9797 Added function silc_socket_set_heartbeat into the file
9798 lib/silccore/silcsockconn.[ch] to set the heartbeat timeout.
9799 If not set, the heartbeat is not performed. The actual
9800 heartbeat is implemented in the low level socket connection
9801 library. However, application is responsible of actually
9804 Added silc_server_send_heartbeat to send the actual heartbeat
9805 packet into silcd/packet_send.[ch]. Server now performs
9806 keepalive with all connections.
9808 * Added silc_task_get_first function into lib/silcutil/silctask.c
9809 to return the timeout task with shortest timeout. There was a bug
9810 in task unregistration that caused problems. TODO has been
9811 updated to include that task system must be rewritten.
9813 * The client library will now resolve the client information when
9814 receiving JOIN notify from server for client that we know but
9815 have incomplete information.
9817 * Rewrote parts of silc_server_remove_from_channels and
9818 silc_server_remove_from_one_channel as they did not remove the
9819 channel in some circumstances even though they should've.
9821 * Encryption problem encountered in server:
9823 The LEAVE command used to send the Channel Key packet to the
9824 router immediately after generating it. However, the code
9825 had earlier sent Remove Channel user packet but not immediately,
9826 ie. it was put to queue. The order of packets in the router
9827 was that Channel Key packet was first and Remove Channel User
9828 packet was second, even though they were encrypted in the
9829 reverse order. For this reason, MAC check failed. Now, this
9830 is fixed by not sending the Channel Key packet immediately but
9831 putting it to queue. However, this is more fundamental problem:
9832 packets that are in queue should actually not be encrypted
9833 because packets that are sent immediately gets encrypted
9834 actually with wrong IV (and thus MAC check fails). So, packets
9835 that are in queue should be encrypted when they are sent to
9836 the wire and not when they put to the queue.
9838 However, the problem is that the current system has not been
9839 designed to work that way. Instead, the packet is encrypted
9840 as soon as possible and left to the queue. The queue is then
9841 just purged into wire. There won't be any fixes for this
9842 any time soon. So, the current semantic for packet sending
9845 o If you send packet to remote host and do not force the send
9846 (the packet will be in queue) then all subsequent packets to the
9847 same remote host must also be put to the queue. Only after the
9848 queue has been purged is it safe again to force the packet
9851 o If you send all packets immediately then it safe to send
9852 any of subsequent packets through the queue, however, after
9853 the first packet is put to queue then any subsequent packets
9854 must also be put to the queue.
9856 Follow these rules and everything works fine.
9858 Thu Feb 15 14:24:32 EET 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
9860 * Added new function silc_server_remove_clients_by_server to
9861 remove all client entries from ID list when the server connection
9862 is lost. In this case it is also important to invalidate all
9863 client entires as they hold the invalid server entry. This
9864 fixes fatal bug when server has lost connection and will reconnect
9867 Wed Feb 14 16:03:25 EET 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
9869 * Made some sanity checks to silc_server_daemonise like to check
9870 whether the requested user and group actually exists.
9872 * Added sanity check to SKE's silc_ske_responder_finish to check
9873 that the public and private key actually is valid.
9875 * Invalidate the client's nickname when receiving Replace ID
9876 packet and the Client ID is being replaced. This means that the
9877 server will query the nickname if someone needs it (client)
9880 * Sort the ID Cache in client library when the ID Cache data
9881 has changed (needs sorting).
9883 * Do not allow for SILC client to create several connections to
9884 several servers. The client does not support windows right now
9885 and generating multiple connections causes weird behaviour.
9887 Irssi-silc client does support windows and can handle several
9888 connections without problems, see: www.irssi.org and SILC plugin.
9890 * Fixed some places where client was added to the IDList. The
9891 rule of thumb is following (in order to get everything right):
9892 If the client is directly connected local client then the
9893 `connection' argument must be set and `router' argument must be
9894 NULL to silc_idlist_add_client function. If the client is not
9895 directly connected client then the `router' argument must
9896 bet set and the `connection' argument must be NULL to the
9897 silc_idlist_add_client function.
9899 * The funtion silc_server_packet_send_local_channel actually did
9900 not check whether the client was locally connected or not. It
9901 does that now. Fixed a bug related to LEAVE command.
9903 * Fixed Remove Channel User payload parsing bug in server's
9904 silcd/packet_receive.c. Fixed a bug related to LEAVE command.
9906 * The server's silc_server_save_channel_key now checks also the
9907 global ID list for the channel as it might not be in the local
9908 list. Fixed a bug related to LEAVE command.
9910 * Is this the end of the [<unknown>] buglet that has been lurking
9911 around for a long time? A little for loop fix in server's
9912 silc_server_command_whois_parse that is used by both IDENTIFY
9913 and WHOIS command. At least, this was a clear bug and a cause
9914 of one type of [<unknown>] buglet.
9916 * WHOIS and IDENTIFY commands call the function
9917 silc_server_command_[whois/identify]_check function even if
9918 we are not router server.
9920 Tue Feb 13 19:55:59 EET 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
9922 * Added --with-gmp configuration option. If set the GMP
9923 is always compiled in the SILC source tree. If not set then
9924 it is checked whether the system has the GMP3 installed. If
9925 it has then the GMP won't be compiled (the system's headers
9926 and library is used), if it doesn't have it then the GMP is
9927 compiled in the SILC source tree.
9929 Mon Feb 12 11:20:32 EET 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
9931 * Changed RSA private exponent generation to what PKCS #1
9932 suggests. We try to find the smallest possible d by doing
9933 modinv(e, lcm(phi)) instead of modinv(e, phi). Note: this is
9934 not security fix but optimization.
9936 Sun Feb 11 18:19:51 EET 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
9938 * Added new config entry [Identity] to fork the server and run
9939 it as specific user and group. A patch from Bostik.
9941 * Imported Dotconf configuration library into lib/dotconf.
9942 This will be used to create the SILC configuration files later.
9943 It will appear in the distsribution after this commit.
9945 Sat Feb 10 21:13:45 EET 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
9947 * A big code auditing weekend happening. Auditing code for
9948 obvious mistakes, bugs and errors. Also, removing any code
9951 Removed files for being obsolete:
9953 o lib/silcutil/silcbuffer.c (the buffer interface is entirely in
9954 inline in the file lib/silcutil/silcbuffer.h)
9956 o lib/silcutil/silcbufutil.c (the header has inline versions)
9958 Changed code to fix possible error conditions:
9960 o The buffer formatting routines now check that the destination
9961 buffer really has enough space to add the data. This applies for
9962 both buffer formatting and unformatting
9963 (lib/silcutil/silcbuffmt.[ch]). Also, the entire buffer
9964 unformatting was changed to accomodate following rules:
9965 XXX_*STRING_ALLOC will allocate space for the data into the pointer
9966 sent to the function while XXX_*STRING will not allocate or copy
9967 the data into the buffer. Instead it sets the pointer from the
9968 buffer into the pointer sent as argument (XXX_*STRING used to
9969 require that the pointer must be allocated already). This change
9970 makes this whole thing a bit more consistent and more optimized
9971 (note that the data returned in the unformatting with XXX_*STRING
9972 must not be freed now). The routines return now -1 on error.
9974 o Tried to find all code that use buffer_format and buffer_unformat
9975 and added return value checking to prevent formatting and
9976 especially unformatting errors and possible subsequent fatal
9979 o Changed ske->x and ske->KEY to mallocated pointers in
9980 lib/silcske/silcske.h. Fixed possible data and memory leak.
9982 o Added return value checking to all *_parse* functions. Fixed
9983 many memory leaks as well.
9985 o Added length argument to silc_id_str2id in lib/silccore/id.[ch]
9986 so that buffer overflows would not happen. All code now also
9987 checks the return value as it can fail.
9989 Mon Feb 5 20:08:30 EET 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
9991 * Added reconnection support to server if the normal server looses
9992 its connection to the router (for example if router is rebooted).
9993 The server performs normal reconnection strategy implemented
9994 to the server. Affected file silcd/server.c.
9996 Sun Feb 4 13:18:32 EET 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
9998 * Added new packet type SILC_PACKET_SET_MODE that is used to
9999 distribute the information about changed modes (for clients,
10000 channels and clients channel modes) to all routers in the
10001 network. Updated the protocol specification accordingly.
10003 Added functions into silcd/packet_send.c and
10004 silcd/packet_receive.c: silc_server_send_set_mode,
10005 silc_server_set_mode.
10007 Added new files silcmode.[ch] into lib/silccore that implements
10008 the encoding and decoding of Set Mode Payload. Added new type
10009 SilcSetModePayload. Moved the definitions of different modes
10010 from lib/silccore/silcchannel.h into lib/silccore/silcmode.h.
10012 Sat Feb 3 15:44:54 EET 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
10014 * Oops, a little mistake in server's connection authentication
10015 protocol. The protocol is not ended with FAILURE but with
10016 SUCCESS if the authentication is Ok. :) Affected file is
10019 * Implemented NICK_CHANGE notify handling in server in the file
10020 silcd/packet_receive.c The NICK_CHANGE notify is distributed to
10021 the local clients on the channel. After the changing nickname
10022 in router environment snhould work and the [<unknown>] nickname
10023 should appear no more.
10025 The silc_server_replace_id function that receives the Replace ID
10026 payload now sends the NICK_CHANGE notify type also in the file
10027 silcd/packet_receive.c
10029 * Changed WHOIS and IDENTIFY command to support the maximum amount
10030 of arguments defined in protocol specs (3328 arguments). This
10031 fixed a bug that caused problems when there were more than three
10032 users on a channel.
10034 Fri Feb 2 11:42:56 EET 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
10036 * Added extra parameter, command identifier, to the
10037 silc_client_send_command so that explicit command identifier
10040 Changed that ID list routines uses specific command identifier
10041 when sending WHOIS/IDENTIFY requests to the server so that they
10042 can be identified when the reply comes back.
10044 Affected files lib/silcclient/command.[ch],
10045 lib/silcclient/client.c and lib/silcclient/idlist.[ch].
10047 * Added `sender' argument to silc_server_packet_send_to_channel
10048 to indicaet the sender who originally sent the packet to us
10049 that we are now re-sending. Ignored if NULL. Affected file
10050 silcd/packet_send.[ch].
10052 * Added some server statistics support in silcd/server_internal.h
10053 SilcServerStatistics structure and around the server code. Also
10054 send some nice statistics information when client is connecting
10057 Thu Feb 1 23:31:21 EET 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
10059 * Fixed channel ID decoding in server's JOIN command reply in
10060 silcd/command_reply.c
10062 * Fixed braodcasting of replace ID payload to not to send it if
10063 we are standalone server in silcd/packet_receive.c.
10065 * Fixed all channel message sending routines to not to send
10066 packets to clients that has router set, since they are routed
10067 separately in the same function earlier. Affects file
10068 silcd/packet_send.c and all channel packet sending functions.
10070 * In USERS reply, res_argv[i] are not allocated, the table
10071 is allocated. Thus changed that free the table, not its
10074 * In server's whois_check and identify_check if the client is
10075 locally connected do not send any WHOIS commands - they are not
10078 Thu Feb 1 21:32:27 EET 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
10080 * Fixed some minor bugs in client when sending WHOIS command. The
10081 arguments was in wrong order.
10083 * Removed statis function add_to_channel from server in
10084 silcd/command.c that was previously used with the joining but
10087 * Tested USERS command in router environment successfully with two
10088 routers, two servers and two clients.
10090 Thu Feb 1 00:54:26 EET 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
10092 * Reorganized the USERS command and command reply in client library
10093 in lib/silcclient/command.c and lib/silcclient/command_reply.c.
10094 When the command is given by user we register a pending command
10095 callback that will reprocess the command after the reply has been
10096 received from the server. When reprocessing the packet we then
10097 display the information. Thus, the USERS information is displayed
10098 now in the command callback instead of in the command reply
10099 callback. The processing of the command is same as previously
10100 when server has sent the command reply in the JOINing process.
10102 * Added to USERS command in silcd/command_reply.c to join the client,
10103 we didn't use to know about, to the channel after we've created
10104 a client entry for it. Also, for clienet we did know already still
10105 check whether it is on the channel or not and add it if not.
10107 * Removed silc_server_command_join_notify as the function and its
10110 Tue Jan 30 22:39:15 EET 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
10112 * Changed the client's pending command handling to the same as the
10113 server's pending command handling. It is also now possible to
10114 execute command reply functions from other command reply
10115 function as the function callbacks for commands and command
10116 replies are one and same. The pending commands are not static
10117 list anymore, it is mallocated SilcDList in lib/silcclient/client.h
10118 in client connection context. Thus, pending commands are server
10119 connection specific as it is convenient.
10121 Changed the function silc_client_command_pending and
10122 silc_client_command_pending_del and added new function
10123 silc_client_command_pending_check. Removed the
10124 SILC_CLIENT_CMD_REPLY_EXEC, and SILC_CLIENT_PENDING_COMMAND_CHECK
10127 * Added cmd_ident, current command identifier, to the client
10128 connection context in lib/silcclient/client.h to keep track on
10129 command identifiers used in command sending. Client's command reply
10130 function handling now supports the mandatory command identifiers.
10132 * Added SILC_CLIENT_COMMAND_EXEC_PENDING macros to all command reply
10133 funtions in client to fully support pending command callbacks.
10135 * NOTE: the name_list in USERS (old NAMES) command is NOT sent anymore
10136 as one of the arguments to the application in the command reply
10139 * NOTE: The FORWARDED flag is depracated. It used to be depracated
10140 before first releasing SILC but came back. Now it is removed again
10141 and should come back nomore. The FORWARDED flag was used only
10142 by the JOINing procedure by forwarding the command packet to router.
10143 Now, the JOINing procedure has been changed to more generic (due
10144 to various router environment issues) and FORWARDED is not needed
10145 anymore for anything. The protocol specification is yet to be
10148 Now, removed silc_server_packet_forward from server and the flag
10149 SILC_PACKET_FORWARDED from lib/silccore/silcpacket.h.
10151 Tue Jan 30 00:05:05 EET 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
10153 * Renamed NAMES command to USERS command. The NAMES was named that
10154 due to historical reasons. Now it is renamed. Also, rewrote
10155 parts of the USERS command. The nickname list is not sent anymore
10156 by the server. Only Client ID and mode lists are sent in the USERS
10157 command. Changed this also to the protocol specification.
10159 The client now resolves the names and stuff after it receives
10160 the USERS list from the server when joining to the channel.
10162 * WHOIS and IDENTIFY commands has been changed to support multiple
10163 Client ID's per command. One can now search for multiple users
10164 in the network by sending only one WHOIS or IDENTIFY command.
10165 Changed the code and the protocol specifications.
10167 * Removed silc_server_command_identify_parse and changed that IDENTIFY
10168 uses silc_server_command_whois_parse to parse the request. */
10170 * If normal server, do not parse the WHOIS and IDENTIFY requests
10171 before sending it to the router. Saves some time.
10173 Sun Jan 28 16:19:49 EET 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
10175 * Fixed JOIN command on client library. Wrong number of arguments
10176 used to crash the client.
10178 * Added silc_server_channel_has_global function to check whether
10179 channel has global users or not.
10181 * Added silc_server_channel_has_local function to check whether channel
10182 has locally connected clients on the channel.
10184 * The silc_server_remove_from_one_channel now checks whether the
10185 channel has global users or not after given client was removed from
10186 the channel. It also checks whether the channel has local clients
10187 on the channel anymore. If it does not have then the channel entry
10188 is removed as it is not needed anymore.
10190 * The silc_server_notify now checks on JOIN notify whether the joining
10191 client is one of locally connected or global. If it is global then
10192 the channel has now global users on the channel and that is marked
10193 to the channel entry. Also, it now saves the global client to
10194 global list who is joining and JOINs it to the channel. This is
10195 for normal server, that is.
10197 Changed silc_server_send_notify_on_channel,
10198 silc_server_packet_relay_to_channel and
10199 silc_server_packet_send_to_channel check if we are normal server
10200 and client has router set (ie. global client) do not send the
10201 message to that client, as it is already routed to our router.
10203 * Implemented LEAVE notify type handling in silc_server_notify
10206 * Tested LEAVE command in router environment successfully. Tested
10207 with two routers, two servers and two clients.
10211 * idlist_find_xxx_by_id routines now dumps the ID on the debug mode.
10213 * Implemented SIGNOFF notify type handling in silc_server_notify
10216 * silc_server_remove_id now removes the client entry from all channels
10217 it has joined and thusly sends SIGNOFF notify type.
10219 * Rewrote the NAMES list generation in server by removing two excess
10220 loops. The lists are created now inside one loop.
10222 Sat Jan 27 22:34:56 EET 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
10224 * silc_server_remove_channel_user checks now also global list
10225 for channel and client.
10227 * silc_server_new_channel_user checks now both local and global
10228 list for channel and client. Fixed a bug in client id decoding.
10229 Used to decode wrong buffer.
10231 * silc_server_channel_message checks now both local and global
10232 list for channel entry.
10234 * Tested channel joining (hence JOIN) in router environment
10235 successfully. Tested with two routers, two servers and two
10238 * Tested channel message sending in router environment successfully.
10240 Thu Jan 11 03:22:57 EET 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
10242 * Added silc_server_save_channel_key into server.[ch] to save the
10243 received channel key in Channel Key payload processing. It is
10244 also used in JOIN command reply handling.
10246 Equivalent function silc_client_save_channel_key added into
10247 client.[ch] into client library.
10249 * Changed JOIN command reply to send information whether the channel
10250 was created or not (is existing already) and the channel key
10251 payload. Changed protocol specs accordingly.
10253 * Fixed bugs in WHOIS and IDENTIFY command reply sending when
10254 the request was sent by ID and not by nickname. Crashed on
10257 Sat Dec 23 21:55:07 EET 2000 Pekka Riikonen <priikone@poseidon.pspt.fi>
10259 * Fixed a bug in Client library. IDENTIFY and WHOIS reply functions
10260 now correctly save the received data.
10262 * silc_server_free_sock_user_data now notifies routers in the
10263 network about entities leaving the network.
10265 At the same time implemented functions silc_server_remove_id
10266 and silc_server_send_remove_id to receive and send REMOVE_ID
10267 packets. The packet is used to notify routers in the network
10268 about leaving entities. The ID removed will become invalid in
10271 * Added function silc_idlist_del_server into server. Removes and
10272 free's server entry from ID list.
10274 * silc_server_private_message function now checks, if we are router,
10275 that the destination ID really is valid ID, naturally.
10277 * In router when NEW_ID packet is received (for new client) the
10278 hash of the Client ID is saved in the ID Cache but the
10279 client->nickname is set to NULL, instead of putting the hash
10282 IDENTIFY command now also checks that client->nickname must be
10283 valid. If it is not if will request the data from the server who
10284 owns the client. Added new function
10285 silc_server_command_identify_check.
10287 * Added silc_command_set_command into lib/silccore/silcommand.[ch]
10288 to set the command to already allocated Command Payload.
10290 * Tested private message sending in router environment with two
10291 routers, two servers and two clients. Fixed minor bugs and now
10294 * Fixed segfault from client's NAMES command. Used to crash if
10295 not on any channel.
10297 * Forwarded packets must not be routed even if it is not destined
10298 to the receiver. Changed server code comply with this.
10300 Sun Dec 17 14:40:08 EET 2000 Pekka Riikonen <priikone@poseidon.pspt.fi>
10302 * Added `require_reverse_mapping' boolean value to ServerParams
10303 structure. If TRUE (not default) the server will require that
10304 the connecting host has fully qualified domain name.
10306 If the reverse mapping is not required and hostname could not be
10307 found the IP address is used as hostname.
10309 Sat Dec 16 17:39:54 EET 2000 Pekka Riikonen <priikone@poseidon.pspt.fi>
10311 * Implemented version string checking to both client and server.
10312 The check is incomplete currently due to the abnormal version
10313 strings used in development version of SILC.
10315 * Changed all command functions in server to use the new
10318 Fri Dec 15 15:55:12 EET 2000 Pekka Riikonen <priikone@poseidon.pspt.fi>
10320 * Changed char *data to unsigned char *data in ID Cache system to
10321 support binary data as ID Cache data. Changed code to support
10322 binary data in lib/silccore/idcache.c.
10324 * Renamed silc_server_packet_relay_command_reply to
10325 silc_server_command_reply as it is normal packet receiving
10326 function. Rewrote the function to accept command replys for
10327 servers and not only for clients.
10329 * Mark remote router always as registered server if we are connecting
10330 to it. Otherwise, commands sent by the router to us are ignored.
10332 * All ID List find routines now returns the ID Cache Entry pointer
10333 as well if requested.
10335 * WHOIS command works now in router environment, tested with two
10336 routers, two servers and two clients.
10338 * Cleaned up and rewrote IDENTIFY command. IDENTIFY should work now
10339 in router environment (as it is almost equivalent to WHOIS) but
10340 hasn't been tested thoroughly. Added new functions:
10342 silc_server_command_identify_parse
10343 silc_server_command_identify_send_reply
10344 silc_server_command_identify_from_client
10345 silc_server_command_identify_from_server
10347 * Disabled route cache adding because adding two different ID's with
10348 same IP replaces the old cache entry thus giving wrong route.
10349 The entry->router->connection is always the fastest route anyway
10350 so route cache may not be needed. Of course, new routes maybe
10351 established after receiving the ID when the entry->router->connection
10352 might not be anymore the most optimal.
10354 Thu Dec 14 15:55:35 EET 2000 Pekka Riikonen <priikone@poseidon.pspt.fi>
10356 * Add route cache for received ID for fast routing.
10358 * Added silc_server_packet_route to route received packet on router
10359 that is not destined to us.
10361 * Renamed silc_server_get_route to silc_server_route_get.
10363 * Added id_string and id_string_len fields into SilcServer to
10364 include encoded ServerID for fast comparing without excess
10365 encoding of the ID's.
10367 * Cleaned up WHOIS command on server side. Added following static
10370 silc_server_command_whois_parse
10371 silc_server_command_whois_check
10372 silc_server_command_whois_send_reply
10373 silc_server_command_whois_from_client
10374 silc_server_command_whois_from_server
10376 * Added macro SILC_SERVER_COMMAND_CHECK_ARGC to check mandatory
10377 arguments in command replies. All command functions should be
10378 updated to use this macro.
10380 Sun Dec 10 23:52:00 EET 2000 Pekka Riikonen <priikone@poseidon.pspt.fi>
10382 * Minor typo fixes on command reply handling on server.
10384 Tue Nov 28 11:05:39 EET 2000 Pekka Riikonen <priikone@poseidon.pspt.fi>
10386 * Added silc_server_command_add_to_channel internal routine to add
10387 the client to the channel after router has created the channel and
10388 sent command reply to the server.
10390 * Added generic silc_server_send_command to send any command from
10393 * Use static buffer with ID rendering instead of duplicating data.
10395 Mon Nov 27 21:39:40 EET 2000 Pekka Riikonen <priikone@poseidon.pspt.fi>
10397 * Fixed a channel user mode bug when joining to a channel server gave
10398 everybody channel founder rights, oops.
10400 * We mark ourselves as the router of the incoming server connection
10401 if we are router ourselves. This way we can check in some packet
10402 sending functions whether it is locally connected server. For
10403 incoming router connections we put NULL.
10405 * For router sending packets locally means now always sending the
10406 packet cell wide; to local clients and local servers. For normal
10407 server sending packet locally means sending it to only local
10410 * Fixed the JOIN command to really work in router environment. If the
10411 channel is created it is always created by the router. Router is
10412 also responsible of making the initial joining to the channel,
10413 sending JOIN notify to the sending server and distributing
10414 NEW_CHANNEL and NEW_CHANNEL_USER packets. Hence, if the channel
10415 does not exist server doesn't do anything else but forward the
10416 command to the router which performs everything.
10418 * Added silc_server_send_channel_key function to send the Channel Key
10421 * Added silc_server_create_channel_key to create new channel key. The
10422 channel key is now re-generated everytime someone joins or leaves
10423 a channel, as protocol dictates. Note: channel->key_len is the
10424 key length in bits.
10426 Wed Nov 22 22:14:19 EET 2000 Pekka Riikonen <priikone@poseidon.pspt.fi>
10428 * Splitted server.[ch] finally. Created now packet_send.[ch] and
10429 packet_receive.[ch] to separate packet sending and receiving
10430 routines. The server.[ch] now includes everything else including
10431 actual packet processing (writing and reading data) and other
10434 Renamed silc_server_private_message_send_internal to
10435 silc_server_send_private_message. The routine is still though
10436 used only to relay private messages as server does not send
10437 private messages itself.
10439 Renamed silc_server_new_channel to silc_server_create_new_channel
10440 and added new function sicl_server_new_channel that handles the
10441 incoming New Channel packet. Added also new sending function
10442 silc_server_send_new_channel to send New Channel Payload.
10444 * Added new function silc_server_notify to process incoming notify
10445 packet to the server/router. Server may then relay the notify
10446 to clients if needed.
10448 * Added new function silc_server_new_channel_user to process incoming
10449 New Channel User packet. Router will redistribute the packet and
10450 send JOIN notify to its local clients and locally connected servers
10451 if needed. Normal server will send JOIN notify to its local client
10452 on same channel when received this packet. Added also corresponding
10453 sending function silc_server_send_new_channel_user to sent the
10456 * Added boolean route argument to send_notif_to_channel and
10457 packet_send_to_channel functions to attempt to route the packet
10458 if it is TRUE and send only locally if it is FALSE.
10460 Tue Nov 21 19:49:31 EET 2000 Pekka Riikonen <priikone@poseidon.pspt.fi>
10462 * silc_server_replace_id now broadcasts the received replace ID
10463 packet if it is not broadcast packet already. The router must
10464 broadcast to inform other routers about changed ID.
10466 * Added backpointer to server's router into SilcServer context in
10467 silcd/server_internal.h.
10469 * Fixed silc_server_packet_broadcast to send correct broadcast
10472 * The channel key is now distributed to the local client as soon
10473 as it is received from the router (in router environment) so that
10474 no other packet may be sent for the channel until client has
10477 * silc_server_remove_channel_user now broadcasts the received
10478 Remove Channel User packet if it is not broadcast packet already.
10479 The router must broadcast to inform other routers about removed
10482 * Added users field into SilcPacketContext that is a reference count
10483 of the context. One can increase the reference count by calling
10484 silc_packet_context_dup which is now changed to just increase the
10485 reference count instead of duplicating the data. The reference
10486 count is decresed by calling silc_packet_context_free that will
10487 free the data after the reference count hits zero.
10489 For now on the packet context and everything allocated into it
10490 (including the raw packet from network) must be freed by calling
10491 the new silc_packet_context_free function. Added also new function
10492 silc_packet_context_alloc that must be used now to allocate the
10493 context. This also means that if a routine is asynchronous from
10494 silc_[client/server]_packet_parse_type the packet context must
10495 be duplicated by calling silc_packet_context_dup. Otherwise it
10496 gets free'd after silc_[client/server]_packet_parse_type returns.
10497 Also, one must remember that if packet is duplicated then its
10498 reference count must be decresed by calling the free function as
10499 many times as it was duplicated.
10501 * Changed SilcBuffer field from protocol contexts to SilcPacketContext
10502 from both client and server.
10504 Mon Nov 20 23:47:03 EET 2000 Pekka Riikonen <priikone@poseidon.pspt.fi>
10506 * Made joining to a channel working in router environment.
10508 * Cleaned up JOIN command on server side and create function
10509 silc_server_command_join_channel internal routine to make the
10512 Thu Nov 9 21:12:39 EET 2000 Pekka Riikonen <priikone@poseidon.pspt.fi>
10514 * Changed silc_command_pending list to SilcDList. Also, added
10515 `ident' field to SilcServerCommandPending structure to identify
10516 the reply and to call correct callback.
10518 Added silc_server_command_pending_check function to replace the
10519 corresnponding macro. The silc_command_pending list is not
10522 * Added silc_command_set_ident into lib/silccore/silccommand.[ch]
10523 to set identifier to previously allocated Command Payload. It
10524 is used to set identifier for command when resending Command
10527 * Added silc_command_payload_encode_payload to encode Command
10528 Payload buffer from SilcCommandPayload structure.
10530 * Added silc_argument_payload_encode_payload to encode Argument
10531 payload buffer from SilcArgumentPayload structure.
10533 Wed Nov 8 21:03:28 EET 2000 Pekka Riikonen <priikone@poseidon.pspt.fi>
10535 * Changed WHOIS command to support router connection on server side.
10536 The whois request is always sent to router unless the server is
10537 standalone server. After server has received the reply from the
10538 router will it send the reply to the client.
10540 * Added silc_server_packet_broadcast into silcd/server.[ch] to
10541 broadcast received broadcast packet. The function is used only
10542 by router. The broadcast packet is always sent to the router's
10545 * Added silc_id_render function in lib/silcutil/silcutil.[ch] to
10546 render given ID to printable string, for log files for example.
10548 Tue Nov 7 22:14:19 EET 2000 Pekka Riikonen <priikone@poseidon.pspt.fi>
10550 * Made basic router to router connections working. At least they
10551 can now connect to each other but nothing really works the way
10552 they are supposed - yet.
10554 * Added new initiator token to RouterConnection configuration
10555 file in silcd/serverconfig.[ch]. It is used to tell whether we
10556 are the initiator to the remote router or whether we'll expect
10557 the other end to connect.
10559 * Moved registering of listener task to silc_server_init, hence
10560 the server starts listenning as soon as it is run, even if it
10561 does not have connections to other routers. Let's see how well
10564 * Changed default connection retry timeouts for more suitable in
10567 * Removed cipher and such arguments from silc_idlist_add_client
10568 and silc_idlist_add_server prototypes from silcd/idlist.[ch].
10569 Added new function silc_idlist_add_data to add the keys and stuff
10572 * Added SilcIDListData structure and added it to SilcClientEntry
10573 and SilcServerEntry as their first field in the structure. This
10574 way we can explicitly cast the ID entries to the SilcIDListData
10575 structure and get common data for the entries. In past, we had
10576 to first check what type of connection it is and then cast it to
10577 correct ID entry type. Now, we can directly cast the opaque
10578 pointer to the SilcIDListData (no matter what ID entry it actually
10579 is) and get the data needed.
10581 Mon Nov 6 21:56:12 EET 2000 Pekka Riikonen <priikone@poseidon.pspt.fi>
10583 * Wow, found a bug in scheduler. The scheduler uninitialized itself
10584 in some circumstances even if threre were timeout tasks, though not
10585 IO tasks, but tasks anyway. Now fixed.
10587 * Defined SilcServerConnection structure to hold connection specific
10588 stuff about directly connected servers and routers. The definition
10589 is currently in silcd/server_internal.h. I thought about having
10590 a bit more important role fro this struct but for now it is used
10591 only when connecting to other server (or router actually).
10593 * Added connecting retry support in server when connecting to
10594 router(s). The retry feature implement exponential backoff
10595 algorithm. Also, added SilcServerParams structure to hold default
10596 parameters for server. For now, it include these retry settings
10597 and are hard coded. After server is moded to be as Silc Server
10598 Library this structure will be more important.
10600 Sun Nov 5 22:28:44 EET 2000 Pekka Riikonen <priikone@poseidon.pspt.fi>
10602 * Changed client librarys channel->clients table to SilcList and
10603 changed code accordingly.
10605 Thu Nov 2 16:28:01 EET 2000 Pekka Riikonen <priikone@poseidon.pspt.fi>
10607 * Changed client's channel table to SilcList and changed code
10608 accordingly. Also changed SilcChannelClientEntry to include back-
10609 pointer to the channel so that client entry can use that structure
10610 as list as well and we have fast cross-reference to the channel.
10611 This change dramatically decreased the complexity of channel
10612 handling with client entry and vice versa (removed one extra
10613 loop when searching for channel entry from many functions).
10615 * Changed server->sim from table to SilcDList and changed code
10618 * NAMES command can now be used from user interface. It will show
10619 the user list on the channel, neatly.
10621 * Added realname pointer to SilcClientEntry in lib/silcclient/idlist.h.
10622 Code now saves realname of the user if it becomes available.
10624 * Renamed configure.in to configure.in.pre and made ./prepare
10625 script to automatically add correct version string to
10626 configure.in which it creates from configure.in.pre.
10628 Wed Nov 1 17:21:26 EET 2000 Pekka Riikonen <priikone@poseidon.pspt.fi>
10630 * NAMES command reply now shows users mode with the nickname when
10631 joining to channel.
10633 * Moved silc_client_ch[u]mode[_char] functions from
10634 silc/clientutil.[ch] to lib/silcclient/client.[ch]. Though, that
10635 place sucks, they are utility functions and should be in some
10638 * Fixed some unsigned int's to unsigned short's. Patch by cras.
10640 * Fixed contrib/getopt*.[ch] to not require config.h. Patch by
10643 Tue Oct 31 20:10:37 EET 2000 Pekka Riikonen <priikone@poseidon.pspt.fi>
10647 * Added TRQ (efficient deque and list library) into lib/trq. This is
10648 a very good list library that is currently used in the SILC. Defined
10649 SilcList API over the library because I didn't like the API very
10650 much. See lib/trq/silclist.h for the API and examples of how to
10651 use the API. Fixed various places in the code to use the new
10652 SilcList API. The SilcList is meant for lists that has a structure
10653 already defined as a list. It is not suitable to add just some
10654 context to the list (in TRQ, the context is the list actually).
10656 So, I defined SilcDList that can be used for the purpose where
10657 predefined list structure does not exit. This can be used as
10658 such list. Now some context just can be added to the SilcDList.
10659 Currently this list is not used in the SILC just yet, though there
10660 are a lot places where this can replace dynamically allocated
10661 tables and I will fix these places, later, to use SilcDList.
10662 See lib/trq/silcdlist.h for SilcDList (they are all inline functions,
10663 and use TRQ internally).
10665 Also fixed some annoying warning messages that the original TRQ
10666 code generated. Also minor changes to TRQ's Makefile.in.
10668 * Added support for querying by Client ID to both WHOIS and
10669 IDENTIFY commands into server, as required by the protocol.
10671 * Removed method function pointers from SilcBuffer structure. They
10672 weren't used to anything and just increased the context size for
10673 no good reason. This change also made silc_buffer_alloc and
10674 silc_buffer_free functions inline functions.
10676 * Disabled command flooding detection support until it's fixed so
10677 that it accepts commands in but does not execute them more than once
10680 * Added silc_net_localhost(), to return local hostname, into
10681 lib/silcutil/silcnet.[ch]. Also added client->hostname pointer
10682 that must be initialized before calling silc_client_init.
10684 * Added new function: silc_server_send_notify_on_channels to send
10685 notify messages to all channels client has joined. It is assured
10686 that the message is sent only once per client.
10688 * Moved silc_log_format (from lib/silcutil/silclog.[ch] into
10689 lib/silcutil/silcutil.[ch] as silc_format function. The new
10690 function is generic and is used by server as well, not only by
10691 the logging routines.
10693 * Added new SKE status type: SILC_SKE_STATUS_BAD_VERSION to indicate
10694 the provided version string was not acceptable. Added new function:
10695 silc_ske_check_version into lib/silcske/silcske.h. The function
10696 must be implemented by the application (client or server) and it
10697 does not reside in the SKE library. The function checks the version
10698 string remote end sent.
10700 * Added back pointers (to opaque context and to SilcSocketConnection)
10701 into SilcPacketContext structure into lib/silccore/silcpacket.h.
10703 * Added silc_packet_context_dup into lib/silccore/silcpacket.[ch] to
10704 duplicate packet context structure.
10706 * Changed `notify' client operation to send same arguments as client
10707 receives from server except for ID's. ID's are mapped to correct
10708 ID entry and that is returned. Also, if channel entry is not sent
10709 by server but the notify is for channel the channel entry is sent
10710 to application (otherwise application doesn't know that it is for
10711 channel (library gets it from packet's Destination ID)).
10713 * Added silc_client_remove_from_channels into client library to
10714 remove a client from all channels it has joined to. Used when
10715 received SIGNOFF notify from server. Added also new function
10716 silc_client_replace_from_channels to replace old ID entry with
10717 new ID entry on all channels. Used when received NICK_CHANGE
10718 notify from server.
10720 * Fixed ID Cache list handling in silc_idlist_get_client in
10721 lib/silcclient/idlist.c. Also, added silc_idlist_get_client_by_id
10722 to get (or query) client by ID.
10724 * Updated TODO list.
10726 * Added connection authentication status message defined by the
10727 protocol: SILC_CONN_AUTH_OK and SILC_CONN_AUTH_FAILED and added the
10728 support for these into the code in client and server side.
10730 * Added generic function silc_client_send_command to send any command
10731 with variable argument list. Application should use this function
10732 to send commands if the command functions provided by the library
10733 does not suite for the application's user interface needs.
10735 * Added new `failure' client operation. Application is notified about
10736 received failure packet if client is executing a protocol. In this
10737 case the protocol's execution has failed.
10739 * Added SKE's end notify to send the SKE_SUCCESS notify message that
10740 is required by the protocol.
10742 * Added SILC_PROTOCOL_STATE_FAILURE to indicate received failure
10743 packet from remote. SILC_PROTOCOL_STATE_ERROR indicates local
10746 * Added status flag to SilcSKE object to indicate realtime status
10747 of the SKE protocol.
10749 * Application receives now exactly same command reply arguments as
10750 the library receives from server. However, if ID is received the
10751 corresponding ID entry is returned to the application (eg. Client
10752 ID is mapped to correct SilcClientEntry entry and that is returned).
10753 Changed command_reply client operation due to this change.
10755 * Changed all ID's in commands and in command replys as ID Payloads.
10756 Change affected both client and server side codes.
10758 All ID's sent in SILC network (with execption of ID's in SILC
10759 Packet header) are sent in ID Payload to support variable length
10762 * Server now notifies nick changes and notifies all clients on
10763 the channels about the new nickname (about the new Client ID,
10766 * Implemented CMODE command to change channel modes. Supports all
10767 channel modes defined by the protocol specs except ban and invite
10768 lists. (Also, private channel key mode is supported but support for
10769 setting private channel key in client is missing, thus, this mode
10770 has no effect on client side (except that server requires that the
10771 client uses private channel key and normal channel traffic does not
10774 Also, invite mode works per se, but INVITE command does not work
10775 yet correctly, so you can set channel as invite only channel but
10776 inviting clients to the channel does not work (it is yet to be
10777 thought what's the best way to do it).
10779 * Added new command SILC_COMMAND_CUMODE to change user mode on the
10780 channel. Defined user modes: CHANNEL_FOUNDER and CHANNEL_OPERATOR.
10781 Implemented CUMODE command to change user's mode on the channel.
10782 Supports all modes defined by the protocol specs.
10784 * Added NAMES command reply to return users modes on the channel.
10786 * Removed unnecessary and slow ciphers from lib/silccrypt.
10788 * Set SO_KEEPALIVE option to connection sockets by default.
10790 * Added new command reply status: SILC_STATUS_USER_NOT_ON_CHANNEL.
10792 * Added notify types: MOTD, CMODE_CHANGE and CUMODE_CHANGE. Also,
10793 redefined the Notify Payload into protocol specs.
10795 * Added silc_id_payload_parse_id to get ID directly from raw
10798 Mon Oct 9 20:57:02 EEST 2000 Pekka Riikonen <priikone@poseidon.pspt.fi>
10800 * Changed SILC_COMMAND_IDENTIFY in protocol specification to
10801 accept searching by Client ID as well.
10803 * Added support for LEAVE and SIGNOFF notify types in client library.
10805 * Added silc_id_payload_parse_data into lib/silccore/silcpayload.[ch]
10806 to parse ID Payload from raw data.
10808 Sun Oct 8 19:33:08 EEST 2000 Pekka Riikonen <priikone@poseidon.pspt.fi>
10810 * Added flags parameter into silc_ske_assemble_security_properties
10811 function in lib/silcske/silcske.[ch].
10813 * Changed notify client operation to fit better for notify messages
10814 sent by server. The notify payload received from server is now
10815 passed to the application (after parsing it to SilcNotifyPayload).
10816 It is application's responsibility to retrieve the arguments
10817 from the payload and show the message the way it wants. The message
10818 sent by server is implementation specific.
10820 * Changed public keys to comply with the protocol specification.
10821 Old public keys are not supported anymore and are not compatible.
10823 * Removed nickname from Channel Payload as the latest draft removed
10824 it. The client must resolve the nickname from the NAMES command
10825 reply received when it joined the channel.
10827 Also, changed all channel_xxxx_payload to channel_payload_xxxx.
10829 Sat Oct 7 21:55:01 EEST 2000 Pekka Riikonen <priikone@poseidon.pspt.fi>
10831 * Fixed some errors in protocol specification drafts.
10833 * Created lib/silccore/silcnotify.c to implement Notify Payload
10834 encoding and decoding, lib/silccore/silcpayload.[ch] to implement
10835 generic payloads described by protocol specifications. The file
10836 includes implementations for ID Payload and Argument Payload.
10838 * Changed Command Payload implementation to use the new Argument
10839 Payload. Changed command_xxxx_payload to command_payload_xxxx
10840 to comply with SILC coding conventions.
10842 * Added suppport for Argument Payload handling in Notify Payload
10843 implementation as protocol requires it. Added the new support
10844 into server and client lib as well.
10846 Thu Oct 5 21:16:28 EEST 2000 Pekka Riikonen <priikone@poseidon.pspt.fi>
10848 * Added support for multiple nicknames on same channel. [n] is
10849 added locally to the nickname if there are more than one same
10850 nicknames on the channel.
10852 * Server now sends all nicknames that matched WHOIS request.
10853 Client also shows the list received from server.
10855 * Added TOPIC command to client side. User can now set and show
10856 current topic on channel.
10858 * Added MOTD command to client and server. Also, server sends the
10859 motd when client connects to the server.
10861 * Changed version strings to comply ISO 8601.
10863 Wed Oct 4 23:29:06 EEST 2000 Pekka Riikonen <priikone@poseidon.pspt.fi>
10865 * Fixed protocol error handling in client library. It should now
10866 cope even if the SKE fails for some reason.
10868 * Made new protocol specification drafts for submitting to IETF.
10870 * Implemented TOPIC command to server in silcd/command.c.
10872 * Added two new notify types into lib/silccore/silcnotify.h:
10873 SILC_NOTIFY_TYPE_NICK_CHANGE and SILC_NOTIFY_TYPE_TOPIC_SET to
10874 notify nickname change and topic setting/change on a channel.
10876 * API change of command_reply operation in client library. The
10877 application gets now the status type received from server as well.
10879 Sat Sep 30 16:57:42 EEST 2000 Pekka Riikonen <priikone@poseidon.pspt.fi>
10881 * Removed the function just added to lib/silcutil/silcschedule.[ch].
10883 * Cras fixed and optimized the packet handling even further and
10884 it should work now. Minor change to the prototype of function
10885 silc_packet_receive_process in lib/silccore/silcpacket.[ch].
10887 Sat Sep 30 08:48:47 EEST 2000 Pekka Riikonen <priikone@poseidon.pspt.fi>
10889 * Added new function into lib/silcutil/silcschedule.[ch]:
10890 silc_schedule_with_fd to select() a specified fd. The function
10891 returns after timeout expires or data arrives or goes. The
10892 function is used by packet routines to wait that all data is
10893 received from network.
10895 * Fixed data reading from network in lib/silccore/silcpacket.c.
10896 The code now assures that all data is read from the fd and then
10897 continues packet processing. This was a bug fix since the code
10898 used to drop some data in some circumstances.
10900 * Added new function into lib/silcclient/client.[ch]:
10901 silc_client_start_key_exchange to start key exchange after
10902 connection has been established to server. The code internally
10903 now uses this funtion but its main purpose was to provide it
10904 for applications that perform their own connecting. After
10905 application has created a connection it merely calls this
10906 function to start the key exchange between client and server.
10907 The library takes care of everything else after that.
10909 Updated also lib/silcclient/README to explain the usage of
10912 * Do not send to application information that connection has
10913 been established. Application gets notified it by connect
10916 Thu Sep 28 23:40:19 EEST 2000 Pekka Riikonen <priikone@poseidon.pspt.fi>
10918 * Applied cras's patch to add silc_schedule_one function. The
10919 function runs scheduler once and returns.
10921 * Fixed the scheduler after cras messed it up. The timeout
10922 handling works now as it's supposed to work.
10924 * Added into lib/silccore/ silcnotify.h to include notify
10925 message types support. Changed silc_server_send_notify*
10926 functions, in server.[ch], to support those new notify types.
10927 Added the support for the notify types into client library,
10928 as well. Added new notify client operation into ops.h in
10931 * Changed silc_server_packet_send_to_channel to send normal
10932 packets instead of just channel message packets. The function
10933 is now used to send the notify packets to channels. It is not
10934 used to send channel message packets anymore, as server never
10935 sends them anymore.
10937 * Added explicit casting into lib/silcutil/silcbuffmt.c to few
10938 va_arg()s as it seems to require it nowadays. I guess, if SILC
10939 is compiled with older va_arg() the new code should work anyway.
10941 Wed Sep 13 18:10:14 EEST 2000 Pekka Riikonen <priikone@poseidon.pspt.fi>
10943 * Splitted core library. Core library (lib/silccore) includes
10944 now only SILC protocol specific core (and common) components.
10945 Created new utility library (lib/silcutil) that includes more
10946 generic purpose stuff. The stuff for util library was taken
10947 from the old core library. This was minor and easy split.
10949 * Created SILC Client Library (lib/silcclient) that includes
10950 implementation of the SILC client without user interface. This
10951 was major move from silc/ directory. The code has been changed
10952 so that it is transparent towards the user interface. The
10953 silc/ directory includes now the same user interface as before
10954 and it uses the new client library. Read lib/silcclient/README.
10955 Basicly, the client library performs everything else related
10956 to SILC except user interface handling. Also, configuration
10957 files are considered to be part of user interface and library
10958 does not handle them.
10960 This change also changed a lot of structures, function naming etc.
10961 Most important change was that SilcClientWindow object was
10962 renamed to SilcClientConnection in the client library. Created
10963 also new file lib/silcclient/ops.h. Also added new files
10964 silc/local_command.[ch] and silc/client_ops.[ch].
10966 All these changes were made to make it easier for user interface
10967 designers to create what ever user interface for the SILC client
10970 It is also expected that the server will be moved to lib
10971 directory as well and SILC Server Library will be created;
10972 sometimes in the future.
10974 * Removed Local commands from lib/silccore/silccommand.h as
10975 they are application specific and new client library does not
10976 handle any of those anymore.
10978 * Several functions moved to lib/silcutil/silcutilc.[ch] from
10979 old client implementation in silc/.
10981 * Added support for callback functions in SILC_LOG_* macros.
10982 Application can now set its own callbacks that will be called
10983 instead of using the default functions that will always print
10984 the debug messages to stderr (or stdout). Also, debugging can
10985 now be disabled by setting silc_debug to FALSE and re-enabled by
10986 setting it to TRUE. Note, that logging will still work even
10987 if debugging is disabled.
10989 New functions in lib/silcutil/silclog.[ch]: silc_log_set_callbacks,
10990 silc_log_reset_callbacks, silc_log_set_debug_callbacks and
10991 silc_log_reset_debug_callbacks.
10993 * To enable debugging in silc client one must give now -d
10994 option on command line.
10996 * Changed silc_schedule_init to automatically allocate task queues
10997 if they are not allocated before calling it.
10999 Thu Sep 7 10:49:33 EEST 2000 Pekka Riikonen <priikone@poseidon.pspt.fi>
11001 * Added GMP 3.1 into math library.
11003 Sun Aug 20 21:27:26 EEST 2000 Pekka Riikonen <priikone@poseidon.pspt.fi>
11005 * Added SILC_PACKET_REMOVE_CHANNEL_USER to remove a client from
11006 a channel in SILC network. The packet is used by servers and
11007 routers to notify other routers that user has left a channel.
11008 This little feature was missing until now. Added the feature
11009 to protocol specification as well.
11011 Added functions: silc_server_send_remove_channel_user and
11012 silc_server_remove_channel_user into server.[ch].
11014 * Added SILC_PACKET_REKEY and SILC_PACKET_REKEY_DONE into
11015 lib/silccore/silcpacket.h. However, they are not implemented
11018 Sat Aug 19 23:04:16 EEST 2000 Pekka Riikonen <priikone@poseidon.pspt.fi>
11020 * Fixed joining to a channel and sending channel messages
11021 between server and router. The channel message sending should
11022 now work inside a cell.
11024 Tue Jul 25 20:46:13 EEST 2000 Pekka Riikonen <priikone@poseidon.pspt.fi>
11026 * Fixed the private message sending between server and router.
11027 The private message sending should now work inside a cell.
11029 * Added silc_server_replace_id into server.[ch] to replace
11030 existing ID in the SILC network.
11032 * Added silc_idlist_find_server_by, silc_idlist_replace_client_id
11033 and silc_idlist_replace_server_id into idlist.[ch] in server.
11035 Mon Jul 24 18:33:31 EEST 2000 Pekka Riikonen <priikone@poseidon.pspt.fi>
11037 * Fixed the server to server connections. Server can again now
11038 connect to router. Router to router connections probably does
11041 Thu Jul 20 13:15:01 EEST 2000 Pekka Riikonen <priikone@poseidon.pspt.fi>
11043 * Added dynamic protocol registering support. Now protocols can
11044 registered and unregistered on the fly. Patch by cras.
11046 Wed Jul 19 19:08:46 EEST 2000 Pekka Riikonen <priikone@poseidon.pspt.fi>
11048 * Added lib/contrib directory to hold routines that some platforms
11049 don't have but are needed by SILC.
11051 * Added getopt.c, getopt1.c and getopt.h from GNU C library
11052 into lin/contrib to provide getopt() and getopt_long() for
11053 those who don't have it.
11055 Tue Jul 18 20:41:20 EEST 2000 Pekka Riikonen <priikone@poseidon.pspt.fi>
11057 * Added AWAY command to client. When away message is set and
11058 client receives a private message packet the client automatically
11059 replies to the sender with the away message.
11061 * Fixed a bug in lib/silcmath/mpbin.c: silc_mp_mp2bin. This
11062 bug seemed to be the cause of recent problems when compiling
11065 * Added version detection support to SKE protocol specification
11066 and added the new changes to the SKE implementation as well.
11067 There were other minor changes in the SKE protocol as well.
11069 Many changes in lib/silcske/silcske.[ch] and in
11070 lib/silcske/payload.[ch].
11072 * Added ^U functionality, clear input line. Patch from cras.
11074 Mon Jul 17 23:33:26 EEST 2000 Pekka Riikonen <priikone@poseidon.pspt.fi>
11076 * Mainly small bugfixes on core library. Fixed some debugging
11077 logging and buffer overflow in silclog.c.
11079 * Updated config.sub and config.guess on the distribution tree.
11081 Sat Jul 15 15:33:48 EEST 2000 Pekka Riikonen <priikone@poseidon.pspt.fi>
11083 * Added command lagging support in server. Client may execute
11084 commands now only once in two seconds.
11086 Thu Jul 13 22:10:21 EEST 2000 Pekka Riikonen <priikone@poseidon.pspt.fi>
11088 * Optimized packet reception. MAC computation and checking is now
11089 also more optimized. A lot previously duplicated code is now
11090 used as generic by both client and server.
11092 * Fixed key pair generation in clientutil.c
11094 Wed Jul 12 18:28:07 EEST 2000 Pekka Riikonen <priikone@poseidon.pspt.fi>
11096 * Added into lib/silccore/silcbufutil.[ch] new function;
11097 silc_buffer_realloc.
11099 * Moved generic packet sending/encryption functions to
11100 lib/silccore/silcpacket.[ch] from client and server. Some
11101 rewriting of the functions.
11103 * Moved all generic packet reception/decryption functions to
11104 lib/silccore/silcpacket.[ch] from client and server. The
11105 packet processing is now much cleaner in both client and server.
11106 These were major changes in both client and server.
11108 * Created many common functions in server to do packet sending.
11109 Previously code were duplicated a lot, this has been removed
11110 with these changes.
11112 Tue Jul 11 20:27:26 EEST 2000 Pekka Riikonen <priikone@poseidon.pspt.fi>
11114 * Rewrote major parts of the ID cache system. Don't know
11115 whether it is better now or not but at least the API is more
11118 * Major rewrite on ID cache stuff on client because of the ID
11119 cache API changes. Added idlist.c to client.
11121 * Also major rewrite on ID cache stuff on server as well.
11122 Major rewrite of idlist.[ch]. SilcXXXList's are now named
11123 SilcXXXEntry's. We won't keep anymore idlist specific pointers
11124 in hand, instead they are all put into the ID cache system now.
11125 All server_idlist_* routines uses ID cache now instead of
11126 traversing its own lists (those lists does not exist anymore).
11127 SilcIDList though still exists. Also, SilcXXXEntry's are
11130 Sun Jul 9 15:19:24 EEST 2000 Pekka Riikonen <priikone@poseidon.pspt.fi>
11132 * Finally made the SKE implementation compliant to the protocol
11133 specification. All mp integers are now binary encoded as
11134 opposed being HEX encoded.
11136 * Added lib/silcmath/mpbin.[ch]. Encoding mp intergers to and
11139 * Added into lib/silccore/silcutil.[ch] PEM encoding/decoding
11140 functions: silc_[encode/decode]_pem. Also added function
11141 silc_encode_pem_file to PEM encode with newlines ('\n') for
11142 saving into a file.
11144 * SILC public keys are now encoded either PEM or binary. Same
11145 option is for private keys as well. By default private keys
11146 are binary encoded and public keys PEM encoded. Silly HEX
11147 encoding were removed.
11149 * Added into lib/silccrypt/silchash.[ch] silc_hash_fingerprint
11150 function to create fingerprints.
11152 * Fixed a bug in SHA1; does not change the original data anymore.
11154 * Partly implemented INFO command on client and server side.
11155 Fixed CLEAR command. Changes to SERVER command; show current
11156 server(s) when giving command without arguments. Added
11157 VERSION command to client.
11159 * Added check to server that unregistered connections cannot
11160 execute commands (unless it is specificly allowed).
11162 Thu Jul 6 18:12:24 EEST 2000 Pekka Riikonen <priikone@poseidon.pspt.fi>
11164 * Fixed screen refresh.
11166 * Fixed channel joining bug from client. On some circumstances
11167 client tried to join to a channel it had already joined.
11169 * Added public key verification process into client's protocol.c.
11170 The client now verifies the public key from user and saves
11171 it into ~./silc/serverkeys/ directory.
11173 Added into: clientutil.[ch]: silc_client_verify_server_key.
11175 * Changed SKE protocol's silc_ske_initiator_finish function
11176 to accept callback function that verifies the received public
11177 key. Removed old silc_ske_verify_public_key function.
11179 Wed Jul 5 19:19:02 EEST 2000 Pekka Riikonen <priikone@poseidon.pspt.fi>
11181 * Added into silcpkcs[ch]: silc_pkcs_public_key[_data]_set and
11182 silc_pkcs_private_key[_data]_set.
11184 * Made the password and public authentication more cleaner in
11185 server's protocol.c.
11187 * Removed historic and obsolete protocol `channel_auth' from
11188 both client and server.
11190 * Removed wrong way of sending command status messages from
11191 server to client in server's command.c. The old way violated
11192 protocol specification.
11194 Changes to silccore/silccommand.[ch]: removed
11195 silc_command_encode_status_payload -> not needed anymore,
11196 changed silc_command_encode_payload_va to accept extra
11197 argument on variable argument list. The argument type must
11198 now be provided to the function. Also, added new function:
11199 silc_command_encode_reply_payload_va which is same as
11200 normal command_encode_payload_va except command status type
11201 is provided as extra argument.
11203 Tue Jul 4 18:26:39 EEST 2000 Pekka Riikonen <priikone@poseidon.pspt.fi>
11205 * Added ~./silc directory handling. The directory includes the
11206 public and private keys for the client.
11208 Added silc_client_check_silc_dir, silc_client_create_identifier
11209 and silc_client_load_keys.
11211 * Implemented SILC protocol compliant public key. Added public
11212 and private key saving to and loading from files.
11214 Added into silcpkcs.[ch]: silc_pkcs_encode_identifier,
11215 silc_pkcs_public_key_encode[_data], silc_pkcs_public_key_decode,
11216 silc_pkcs_private_key_encode[_data], silc_pkcs_private_key_decode,
11217 silc_pkcs_public_key_alloc, silc_pkcs_public_key_free,
11218 silc_pkcs_private_key_alloc and silc_pkcs_private_key_free.
11220 Implemented: silc_pkcs_save_[public/private]_key[_data] and
11221 silc_pkcs_load_[public/private]_key.
11223 Mon Jul 3 18:51:27 EEST 2000 Pekka Riikonen <priikone@poseidon.pspt.fi>
11225 * Added silc_server_get_route (route.[ch]) to get connection
11226 data for the fastest route for given ID.
11228 * Implemented INVITE command on client and server. The command
11229 were re-defined in the SILC Protocol Specification and the
11230 implementation now complies with the specification.
11232 * Implemented PING command on client and server.
11234 * Implemented NAMES command on client and server. The server side
11235 supports currently only normal server not router server yet.
11236 Some changes to NAMES definition in SILC protocol specification.
11238 Sun Jul 2 18:23:01 EEST 2000 Pekka Riikonen <priikone@poseidon.pspt.fi>
11240 * Implemented LEAVE command on client and server.
11242 * Previously deprecated SILC_PACKET_FORWARDED flag is now in use
11243 again. This change was made to the protocol as well. Server
11244 should not violate the protocol specification anymore.
11246 Fri Jun 30 14:03:26 EEST 2000 Pekka Riikonen <priikone@poseidon.pspt.fi>
11248 * Added SOCKS4 and SOCKS5 support to SILC client. SOCKS5
11249 was tested. SOCKS4 was not but should work anyway.