updates.
[silc.git] / TODO
diff --git a/TODO b/TODO
index 5e240e083926eca103f844857e40ce8f23093756..5923e89e481c7383f4a43514b17f76bf83e93b1b 100644 (file)
--- a/TODO
+++ b/TODO
@@ -1,9 +1,26 @@
-TODO/bugs In SILC Client Library
-================================
+TODO/bugs in Irssi SILC client
+==============================
+
+ o Add KNOCKOUT local command.  It should kick an client from channel and
+   set a ban for it for number of seconds.
+
+ o Add KICKBAN local command.  Kicks and bans the specified client.
 
  o Add local commands to list the current server and client public keys
    that the user has.  And a local command to dump the contents of the
-   public key to the screen.
+   public key to the screen.  Something like LISTKEYS, SHOWKEY...
+
+
+TODO/bugs In SILC Client Library
+================================
+
+ o The client library must manage somehow when receiving client that has
+   same nickname, same server, same username but different Client ID than
+   what we have in the cache.  It is now assumed that they are different
+   client but it might not be.  It should at least number the clients
+   using the client->num so that they can be accessed from the user
+   interface separately or it could just remove the old client unless
+   it is on some channels.
 
  o Add client library parameters or options that handle what kind of
    messages the library should print out (using `say' client operation,
@@ -19,6 +36,10 @@ TODO/bugs In SILC Client Library
 TODO/bugs In SILC Server
 ========================
 
+ o The SKE protocol in the server does not verify the remote hosts 
+   (the router's) public key at all.  All public keys are accepted without
+   verification - this obviously is not secure.
+
  o When server quits and all clients of that server are removed from all
    channels the channel keys are re-generated for all clients.  This is
    a bug and should be done only once per channel after all clients of
@@ -37,29 +58,27 @@ TODO/bugs In SILC Server
    own resolver stuff (through scheduler, if possible without writing
    too much own stuff) or use threads.
 
- o The ID List must be optimized.  When the lists grow the searching
-   becomes a lot slower and is some cases the lists are searched many
-   times, like with channel messages (twice at least).  Some sort of
-   hash tables should replace the lists.  Thus, the ID cache should be
-   rewritten to use hash tables internally.
-
- o New configuration file format must be added.  The new one will be
-   done using the dotconf config library.
-
  o The backup router support described in the protocol specification
    should be done at some point.
 
- o Server says that it is able to listen on multiple ports but currently
-   that is bogus.  It can, but internals are for single server.
+ o New configuration file format must be added.  The new one will be
+   done using the dotconf config library (lib/dotconf).  The following
+   tasks relates closely to this as well and must be done at the same time
+   when adding the new config file format:
+
+       o Server says that it is able to listen on multiple ports but
+         currently that is bogus.  It can, but internals are for single
+         server.
 
- o Protocol execution timeouts are hard coded, should be configurable.
+       o Protocol execution timeouts are hard coded, should be
+         configurable.
 
- o IP address fields in configuration file should accept mask format
-   as well, IP/MASK, and not just plain IP.
+       o IP address fields in configuration file should accept mask
+         format as well, IP/MASK, and not just plain IP.
 
- o Connection classes should be actually implemented in serverconfig.c.
-   They can be defined but they are totally ignored currently.  And they
-   should be redefined also.
+        o Connection classes should be actually implemented in
+         serverconfig.c.  They can be defined but they are totally
+         ignored currently.  And they should be redefined also.
 
 
 TODO/bugs In SILC Libraries
@@ -69,13 +88,8 @@ TODO/bugs In SILC Libraries
 
        o All network routines in lib/silcutil/silcnet.[ch] does not
          support IPv6.
-
- o Hash tables must be implemented.  The requirement for this is that
-   the hash table is collision resistant so that it can be used in 
-   critical positions as well.  It probably works the 95% of the time
-   fine without collisions but the last 5% of the cases must be
-   handled.  Maybe two interfaces could be done, one for normal static
-   hash tables and one for collision resistant hash table.
+       o silc_id_render supports only IPv4 based ID's in the file
+         lib/silcutil/silcutil.c.
 
  o Compression routines are missing.  The protocol supports packet
    compression thus it must be implemented.  SILC Comp API must be
@@ -86,6 +100,17 @@ TODO/bugs In SILC Libraries
  o The CAST cipher is not compiled currently due to compilation errors;
    check those.  Cast is in lib/silccrypt/cast.c.
 
+ o All payload parsing (decoding) functions should take unsigned char *
+   and uint32 as data and data length as arguments.  Now some of the
+   routines do already that but most of the routines use SilcBuffer.
+   The SilcBuffer ones should be removed since buf->data and buf->len
+   is more convenient to use.  However, the silc_buffer_[un]format
+   routines support only SilcBuffer so they would require reallocation
+   of SilcBuffer.  Maybe support for raw data (and not just SilcBuffer)
+   should be added silc_buffer_[un]format_? routines.  These are currently
+   only cosmetic changes but at some point must be done to make the
+   payload interfaces consistent.
+
 
 TODO After 1.0
 ==============