X-Git-Url: http://git.silcnet.org/gitweb/?a=blobdiff_plain;f=TODO;h=cc5fc769a559e397fee0dbfc0528d3ca0eb3f862;hb=017dec75a98209fbef49eb496c2269b0c49e736d;hp=60920cdaa24ffa8c2cca10c446ed6cab6aa0cded;hpb=fc93c69a223d6cd374c4cb808e156b6e19294305;p=silc.git diff --git a/TODO b/TODO index 60920cda..cc5fc769 100644 --- a/TODO +++ b/TODO @@ -1,54 +1,60 @@ -TODO/bugs In SILC Client Library -================================ +TODO/bugs in Irssi SILC client +============================== - 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 local command to switch the channel's private key when channel has + several private keys. Currently sending channel messages with many + keys is not possible because changing the key is not possible by the + user. 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... + + o We should get rid of the clientconfig.[ch] in Irssi SILC and move the + cipher, hash, hmac and pkcs configuration to the Irssi SILC's config + file. + + o The QUIT command should wait for servers disconnection (at least for + a while) before exiting the application. + + o The JOIN command's HELP is generated from Irssi IRCs JOIN help and + the syntax is not same in SILC. 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... - This is not a showstopper. + o With USERS command to a channel user is not joined the name of the + channel is printed as garbled. - o Input line on UI is buggy. Cursor movement etc bugs. Too lazy to - fix it. + o Add PERL scripting support from Irssi CVS. + + o Extend the /HELP command to support sub commands or something. So + that user can say /help set mutual_authentication they would get + help of the mutual_authentication setting. + + o Set different kind of settings, like, /set mutual_authentication, + /set key_exchange_timeout, /set conn_auth_timeout etc etc. + + +TODO/bugs In SILC Client Library +================================ + + o JOIN command's argument handling is buggy. See the XXX in the code. 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 Add perhaps /var/run/silcd.pid for PID information for the server. - 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 - the server has been removed. + o Add a timeout to handling incmoing JOIN commands. It should be + enforced that JOIN command is executed only once in a second or two + seconds. Now it is possible to accept n incoming JOIN commands + and process them without any timeouts. THis must be employed because + each JOIN command will create and distribute the new channel key + to everybody on the channel. o Incomplete IPv6 support: - o silc_server_get_users_on_channel does not support IPv6 based - Client ID's. - o silc_server_route_get and the route code in general supports - only IPv4. o silcd/serverid.c and its routines supports only IPv4. - 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 The backup router support described in the protocol specification should be done at some point. @@ -75,12 +81,7 @@ TODO/bugs In SILC Server TODO/bugs In SILC Libraries =========================== - o Incomplete IPv6 support: - - o All network routines in lib/silcutil/silcnet.[ch] does not - support IPv6. - o silc_id_render supports only IPv4 based ID's in the file - lib/silcutil/silcutil.c. + o Some ./prepare problems with latest autoconf and automake. o Compression routines are missing. The protocol supports packet compression thus it must be implemented. SILC Comp API must be @@ -88,9 +89,6 @@ TODO/bugs In SILC Libraries not in distribution), but it is not used yet, and it requires some tweaking on the Makefiles (we want static lib not shared). - 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. @@ -102,21 +100,36 @@ TODO/bugs In SILC Libraries only cosmetic changes but at some point must be done to make the payload interfaces consistent. + o Incomplete IPv6 support: -TODO After 1.0 -============== + o All network routines in lib/silcutil/silcnet.[ch] does not + support IPv6. + o silc_id_render supports only IPv4 based ID's in the file + lib/silcutil/silcutil.c. + + o Add builtin SOCKS and HTTP Proxy support, well the SOCKS at least. + SILC currently supports SOCKS4 and SOCKS5 but it needs to be compiled + in separately. - o Pthreads support. A lot of problems are solved with server (and with - client as well) if we add pthread support. We can forget things such - as non-blocking connecting etc, and we can do things such as DNS/IP - lookups async. The server itself also benefits great deal from - threads, especially from performance point of view. - But, this is not a small task and almost entire SILC Library has to - be made re-entrant. Own API is probably added for the threads support - to make changes in the future as painless as possible. So the API - would have things like silc_mutex_lock, silc_mutex_unlock and - friends... +TODO/Bugs in native WIN32 support (libraries) +============================================= + + o silc_net_create_connection_async does not work the same way than on + Unix. Do it with threads on WIN32. + + +TODO In SILC Protocol +===================== + + o If channel founder mode is set and the invite mode is set on channel + then the founder should be added to the list automatically so that + if the founder signoff's it will be able join again to the invite only + channel wihtout being invited. + + +TODO After 1.0 +============== o X.509 certificate support. SILC protocol supports certificates and it would be great to have support for them. This is a big task as @@ -133,6 +146,8 @@ TODO After 1.0 to start writing one myself. Anyhow, the OpenSSL X.509 lib should be checked. + Other package that should be checked is the NSS's X509 library. + o SSH2 public keys support. Maybe - not really needed but could be nice as SSH is widely used all over the place. SILC Protocol supports SSH2 public keys.