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
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
======================