X-Git-Url: http://git.silcnet.org/gitweb/?p=silc.git;a=blobdiff_plain;f=TODO;h=cc5fc769a559e397fee0dbfc0528d3ca0eb3f862;hp=8d3dc4d280f9f904eab2f958e9727bc5773404d1;hb=017dec75a98209fbef49eb496c2269b0c49e736d;hpb=2b4b8df2dc94c0a12ff268154c4d441a571565dc diff --git a/TODO b/TODO index 8d3dc4d2..cc5fc769 100644 --- a/TODO +++ b/TODO @@ -1,48 +1,60 @@ -TODO/bugs In SILC Client Library -================================ +TODO/bugs in Irssi SILC client +============================== + + 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 With USERS command to a channel user is not joined the name of the + channel is printed as garbled. + + 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 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 Set different kind of settings, like, /set mutual_authentication, + /set key_exchange_timeout, /set conn_auth_timeout etc etc. - o Input line on UI is buggy. Cursor movement etc bugs. Too lazy to - fix it. + +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 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 perhaps /var/run/silcd.pid for PID information for the server. + + 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 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 The backup router support described in the protocol specification should be done at some point. @@ -69,17 +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 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 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 @@ -87,24 +89,47 @@ 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. + 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. + 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 @@ -121,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.