that the user has. And a local command to dump the contents of the
public key to the screen. Something like LISTKEYS, SHOWKEY...
- 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. Most likely
- we must forget the Irssi's JOIN command and mimic it to get our
- required syntax for it too.
-
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.
TODO/bugs In SILC Client Library
================================
- o JOIN command's argument handling is buggy. See the XXX in the code.
+ o When changing own nickname and there exists a same nickname the library
+ can give the client now nickname in format nick@host. This is new
+ behaviour and maybe should be removed. The changer should always
+ get the one it wants and not have the formatted nickname.
TODO/bugs In SILC Server
========================
- o Implement the <founder auth> and founder privileges gaining to
- the JOIN command. This will bypass invite-only mode as well for
- the client who got the founder mode during JOIN.
-
- o Optimize the WHOIS and IDENTIFY commands to check if the request
- includes an ID or multiple IDs, then they are checked from local cache
- first, and not sent directly to router. This is because if they
- are found in the local cache there's no need to send them to the
- router. Only if some ID is not found, or an found entry is
- incomplete it can be queried from the router. This way these
- commands become faster, and for example JOIN command becomes a lot
- faster since the server ends up resolving the same information only
- once, as opposed to resolve it everytime JOIN command is issued, like
- it does now.
-
- The same thing can be done with WHOWAS command as well.
-
- It is important to send these requests to router only if they can be
- expanded to many results (as when doing WHOIS for nickname). If
- they are explicit (like requesting by ID) the local cache MUST be
- searched before sending it to router.
-
- o Announcements are incomplete: channel topics are not announced,
- user modes (UMODE) are not announced.
-
- o Change the server to connect to another server from low ports (706)
- and not from high ports. Currently we cannot do incoming connection
- checking by remote port because the port is not fixed.
+ o If auto-reconnecting to router and EOF is received during the
+ connecting phase the server will not try to auto-reconnect anymore
+ after that. Fix to auto-reconnect.
o Backup router related issues
- o After backup resume protocol the TOPIC_SET was not handled
- correctly by all (unknown Channel ID).
-
o Channel user mode changes are notified unnecessarely when
switching to backup router on router crash.
- o If client's public key is saved in the server (and doing public key
- authentication) then the hostname and the username information could
- be taken from the public key. Should be a configuration option!
-
o Add a timeout to handling incoming 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
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 If client's public key is saved in the server (and doing public key
+ authentication) then the hostname and the username information could
+ be taken from the public key. Should be a configuration option!
TODO/bugs In SILC Libraries
than on Unix. Do it with threads on WIN32. The function works but
is not actually async currently.
+ o Rewrite the lib/silcsim/silcsim.h. The SilcSimContext should be
+ private and silc_sim_alloc should take necessary arguments.
+
+
+TODO in SILC Protocol
+=====================
+
+ o Add "request parameters" or similar to the WHOIS command, which can
+ be used to request various parameters (something not returned by
+ standard WHOIS command) about clients (info that could be fetched
+ even from clients). Additional specification (or appendix) should
+ be done to define the payload and the parameters. It could be used
+ to make the WHOIS command support various search conditions as well.
+ This would be the way to extend the WHOIS command to support various
+ new features without always making the command incompatible to previous
+ version. To be included in protocol version 1.1.
+
+ o Re-define the Status Payload: it is now 16 bits, split it into two
+ 8 bits fields. First field includes status types from 0 - 9 and
+ 10 - n *if* it is not an list of errors. If it is list of errors then
+ the first field includes 1, 2 and/or 3, and the second field includes
+ the error status 10 - n. This way it is possible to send multiple
+ errors (list of errors) and we have a way to tell the receiver that
+ there will be other errors as well. The second field is used only
+ if there is list of errors. If normal status, or normal (single)
+ error status the second field is set to zero, and must be ignored.
+ Hence, the status works same way as now except for list of errors.
+ To be included in protocol version 1.1.
+
+ o Define that WHOIS and IDENTIFY commands must send list of errors
+ if multiple Client ID (or Channel ID and Server ID for IDENTIFY) was
+ requested and was not found. Each unfound entry must cause an error
+ command reply to the sender. Also define that errors must be sent
+ *after* sending successfully found entries (this way receiver may
+ ignore them). To be included in protocol version 1.1.
+
TODO After 1.0
==============
not in distribution), but it is not used yet, and it requires some
tweaking on the Makefiles (we want static lib not shared).
+ o Implement the defined SilcDH API. The definition is in
+ lib/silccrypt/silcdh.h.
+
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.
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.
+ Other package that should be checked is the NSS's X509 library,
+ which I like more over OpenSSL package.
- 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.
+ o SSH2 public keys support.
o OpenPGP certificate support.