a bug and should be done only once per channel after all clients of
the server has been removed.
+ 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
hash tables should replace the lists. Thus, the ID cache should be
rewritten to use hash tables internally.
- o New configuration file format must be added. The new one will be
- done using the dotconf config library.
-
o The backup router support described in the protocol specification
should be done at some point.
- 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 New configuration file format must be added. The new one will be
+ done using the dotconf config library (lib/dotconf). The following
+ tasks relates closely to this as well and must be done at the same time
+ when adding the new config file format:
+
+ 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 Protocol execution timeouts are hard coded, should be configurable.
+ o Protocol execution timeouts are hard coded, should be
+ configurable.
- o IP address fields in configuration file should accept mask format
- as well, IP/MASK, and not just plain IP.
+ o IP address fields in configuration file should accept mask
+ format as well, IP/MASK, and not just plain IP.
- o Connection classes should be actually implemented in serverconfig.c.
- They can be defined but they are totally ignored currently. And they
- should be redefined also.
+ o Connection classes should be actually implemented in
+ serverconfig.c. They can be defined but they are totally
+ ignored currently. And they should be redefined also.
TODO/bugs In SILC Libraries
===========================
- o Some of the ciphers in lib/silccrypt does not implement the SILC
- Crypto API correctly.
+ 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 All the ID Cache routines has not been implemented in
+ lib/silccore/idcache.c.
o Compression routines are missing. The protocol supports packet
compression thus it must be implemented. SILC Comp API must be
not in distribution), but it is not used yet, and it requires some
tweaking on the Makefiles (we want static lib not shared).
- o IPv6 support for ID's and into the code.
+ 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.
TODO After 1.0