TODO In SILC Client Library
===========================
- o TODO in commands (silc/local_command.c, lib/silcclient/command.c and
+ o TODO in commands (lib/silcclient/command.c and
silc/silclient/command_reply.c):
- o Local command to handle private message keys is not done
- o Local command to handle channel private keys is not done
- o Local command to handle key agreement protocol is not done
o RESTART command is not implemented
o Client library crashes if for example server timeouts protocol
from file and using them (see corresponding code in server, it should
support public key authentication already).
- o Connection Authentication request resolving is missing and must be
- done. This is required by the protocol.
+ 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
+ we already have a working connection to some other place; things
+ goes bad.
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
- we already have a working connection to some other place; things
- goes bad.
+ This is not a showstopper.
o Input line on UI is buggy. Cursor movement etc bugs. Too lazy to
fix it.
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 WHOIS and IDENTIFY command reply sending is buggy because
+ it may put status to be SILC_STATUS_LIST_START even though
+ there is only one valid entry (thus should be SILC_STATUS_OK).
+ This happens because it does not check the data.registered == FALSE
+ clients before setting the status. Good fix for this would be
+ to make sure that the clients table does not include any
+ unregistered clients in the first place.
o TODO in notify types (packet_receive.c):
o SERVER_SIGNOFF notify type is not implemented
- o TODO in authentication protocol (protocol.c):
-
- o Public key authentication is missing in initiator side. It must
- be implemented by creating the authentication data.
-
- o TODO in general server (server.c)
-
- o SILC_PACKET_CONNECTION_AUTH_REQUEST packet type is not
- implemented.
-
- o silc_server_connect_to_router_second checks the authentication
- method to be used in the connection. However, if it does not
- find it it must resolve it from the responder by sending the
- SILC_PACKET_CONNECTION_AUTH_REQUEST packet.
-
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
o Connection classes should be actually implemented in serverconfig.c.
They can be defined but they are totally ignored currently.
- o Connection redirect, if server is full, is not implemented. I also
- don't know how to do it currently. Maybe it shouldn't be done at all.
-
TODO In SILC Libraries
======================
o New commands and features in the commands
(draft-riikonen-silc-spec-xx.txt):
- o Define GETKEY command to fetch the public key of an server
- and/or client in the SILC Network.
+ o Define GETKEY command to fetch the public key of a server
+ and/or a client in the SILC Network.
o Define SENDKEY command to send your public key to a client
in the network. Sending to the server must not be done due
to various security reasons (the server must not trust the
passphrase or public key that can be used in the authentication
when regaining the founder rights.
- o New packets and features in the packets
- (draft-riikonen-silc-pp-xx.txt):
-
- o Define the Private Message packet to include private message
- flags and define the flags. The flags could indicate whether
- the message is, for example autoreply or the receiver should not
- reply to the private messages. What other flags?
-
- o New feature in the KE/auth protocol
+ o New features in the KE/auth protocol
(draft-riikonen-silc-ke-auth-xx.txt):
o Define group exchange support for the SKE so that the SKE