updates.
[runtime.git] / TODO
diff --git a/TODO b/TODO
index c408e032b7919882300ba914753396e9ebe70f74..06677ae7101ef607cfae1bce6939a7649c8f3db1 100644 (file)
--- a/TODO
+++ b/TODO
@@ -62,6 +62,19 @@ New features TODO
 TODO In SILC Client Library
 ===========================
 
+ o Client library crashes if for example server timeouts protocol
+   execution and disconnects the client.  The client, on the other hand
+   may still assume that the connection is active, even after receiving
+   the EOF.  Reason for this is that the clien library does not handle
+   the SilcSocketConnection reference counter at all.  This must be
+   fixed.
+
+ o Add client library parameters or options that handle what kind of
+   messages the library should print out (using `say' client operation,
+   for example) and what is left for the application to print.  The
+   appliation could for example set that it handles all command printing
+   but all error printing should be handled by the library, etc...
+
  o Non-blocking connection on the background must be stopped if some
    other connection on same window has established.  Now it is possible
    that some non-blocking connection timeouts on the background when
@@ -87,37 +100,42 @@ TODO In SILC Client Library
 TODO In SILC Server
 ===================
 
+ o TODO in commands (command.c and command_reply.c):
+
+       o RESTART is not implemented
+       o CMODE should be rewritten as it uses a lot duplicated code.
+         Some of the modes may still not be implemented or is implemented
+         the wrong way.
+       o In servers all command reply funtions should still call the
+         pending command reply even if the reply was error.  In client
+         it is not called but in server, I think, it must be called.
+         When implementing this check that all commands handle the
+         situation correctly when it is called as pending command
+         (it should most likely check that cmd->pending == TRUE/FALSE).
+
+ o TODO in notify types (packet_receive.c):
+
+       o CHANNEL_CHANGE notify type is not implemented
+       o SERVER_SIGNOFF notify type is not implemented
+
  o Packet processing can be made faster. All packet function in the
    packet_receive.c has same prototypes.  Instead of calling those from
    huge switch() make a table of callback functions that can be called
    directly by the packet type.
 
- o silc_server_send_key_agreement and silc_server_send_private_message_key
-   are one and same function (also silc_server_send_private_message is
-   almost same function).  These should be unified to one generic named
-   function and use that.
-
  o DNS/IP lookup blocks the server.  This must be fixed.  Check the
    resolver stuff (resolver(3), resolver(5)).  Either we have to do the
    own resolver stuff (through scheduler, if possible without writing
    too much own stuff) or use threads.
 
- o Length of the packet processing timeouts needs to be checked whether
-   they are too short or too long.  I haven't really tested whether they
-   are suitable.  They should be tested on high load which I haven't done
-   at all yet.
-
- o INVITE command must set the channel's invite list if channel is 
-   invite-only channel.
+ o Acceptance of incoming connections (client and server connections)
+   should be checked before key exchange protocol.  Currently it is
+   checked at the authentication phase after KE, that is ok, but it should
+   be checked before starting KE, as well.
 
  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 Command flag usage in general is not implemented yet.
-
- o Client history must be implemented.  Protocol says that server must
-   keep history information about clients for some period of time.
-
  o Protocol execution timeouts are hard coded, should be configurable.
 
  o IP address fields in configuration file should accept mask format
@@ -126,11 +144,6 @@ TODO In SILC Server
  o Connection classes should be actually implemented in serverconfig.c.
    They can be defined but they are totally ignored currently.
 
- o Acceptance of incoming connections (client and server connections)
-   should be checked before key exchange protocol.  Currently it is
-   checked at the authentication phase after KE, that is ok, but it should
-   be checked before starting KE, as well.
-
 
 TODO In SILC Libraries
 ======================