TODO for 1.1 And Beyond
=======================
-NOTE: Any item that doesn't have (***DONE) in it, isn't done yet.
+NOTE: Any item that doesn't have (***DONE) in it, isn't done yet. The
+(***TESTING NEEDED) means that the item has been done but not yet properly
+tested.
+
+
+lib/silcclient, The Client Library
+==================================
+
+ o silcclient.h clean up and API rewrites.
+
+ o silcclient_entry.h finishing, all entry relates APIs to this header.
+
+ o SilcChannelEntry, SilcServerEntry, SilcChannelUser, allocating,
+ freeing, finding, etc. rewrite. Also making them reference counted for
+ multi threads use.
+
+ o Finish all the missing SILC packet processings, rewrites.
+
+ o The client_notify.c rewrite.
+
+ o Resuming to client_register.c (remove client_resume.c)
+
+ o Rekey rewrite.
+
+ o Remove protocol.[ch].
+
+ o File transfer rewrite.
+
+ o Starting key exchange directly, rewrite.
+
+ o Channel messages, channel private keys, channel entires, channel
+ search, etc. rewrite.
+
+ o For many APIs leave the hash context allocations to the caller instead
+ of using client->sha1hash and client->md5hash, or some kind of thread
+ safe (no locking) concept.
+
+ o Password auth test, public key auth test.
+
+ o Key agreement rewrite.
+
+ o Connecting to remote client, peer-to-peer private messages
+
+ o Private message waiting API (in threads)
+
+ o client_attrs.c, attributes rewrite.
+
+ o No SilcBuffer lists back to application in command_reply operations.
+ Convert them all to real lists and/or structures for easier use.
+
+ o Nickname formatting rewrite.
+
+ o UDP connections.
+
+ o Remove silc_client_run and silc_client_run_one from calling SilcSchedule.
+ Leave the scheduling entirely to application.
+
+ o All packet waiting timeout tests and error condition tests.
lib/silccore/silcpacket.[ch] ****DONE****
lib/silccore/silcid.[ch] ****DONE****
========================
- o Add silc_id_str2id to accept the destination buffer as argument
- and thus not require any memory allocation. Same will happen
- with silc_id_payload_* functions. (***DONE)
+ o Add silc_id_str2id to accept the destination buffer as argument
+ and thus not require any memory allocation. Same will happen
+ with silc_id_payload_* functions. (***DONE)
- o silc_id_str2id, silc_id2str to non-allocating routines. (***DONE)
+ o silc_id_str2id, silc_id2str to non-allocating routines. (***DONE)
lib/silccore
============
- o All payload encoding routines should take SilcStack as argument.
+ o All payload encoding routines should take SilcStack as argument.
+
+ o All payload test routines into lib/silccore/tests/.
+
+
+lib/silcskr
+===========
+
+ o Removing key from the repository is not possible currently. It should
+ be.
lib/silcske/silcske.[ch]
========================
- o IV Included flag support in SKE (it currently doesn't accept it)
+ o IV Included flag support in SKE (***TESTING NEEDED)
+
+ o UDP transport changes; retransmission support by using exponential
+ backoff algorithm.
o SilcConnAuth header file documentation.
lib/silcutil/silcbuffmt.[ch] ****PARTLY DONE****
============================
- o SilcStack aware silc_buffer_unformat
+ o SilcStack aware silc_buffer_unformat (***DONE)
o SilcStack aware silc_buffer_format (***DONE)
o Add SilcSocketStream for WIN32
+ o Handle EOS sending to upper layer properly
+
o Test QoS after the changes made to socket stream
increased memory consumption with TFM, and the rare need for public
key operations in server.
+ o Change LTM and TFM function names when importing to SILC tree to avoid
+ rare linking problems on system that has same named symbols already in
+ the system.
+
o The SILC MP API function must start returning indication of success
and failure of the operation.
any other MP function (including utility ones) that may allocate
memory.
+ o Test on x86_64.
+
o All utility functions should be made non-allocating ones.
key ends up being used.
o The CMODE cipher & hmac change problem (#101).
-
-
-lib/silcclient
-==============
-
- o Some form of rewrite to make it more efficient.
-
- o Clear up interfaces.
-
- o Remove silc_client_run and silc_client_run_one from calling SilcSchedule.
- Leave the scheduling entirely to application.