updates.
[silc.git] / TODO
diff --git a/TODO b/TODO
index 7af043baa6ad6314d21a3fa5b9d829fccf1d863f..2d35cbdf776bbca04be194ff67bca2baa82f476f 100644 (file)
--- a/TODO
+++ b/TODO
@@ -30,18 +30,38 @@ TODO/bugs in Irssi SILC client
 TODO/bugs In SILC Client Library
 ================================
 
+ o The PRIVATE_MESSAGE_KEY packet is not handled (it is implemented 
+   though).  This should be added and perhaps new client operation
+   should be added to notify application that it was received and
+   set the key only if application wishes to set (accept the key) it.
+
+ o should /nick nick and /nick Nick cause the Nick to be Nick@host becase
+   it used to be nick??
+
  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.
 
+ o Remove the command destructor all together from the client, it is
+   not needed and its usage is buggy when the context is registered
+   to multiple pending commands.
+
+ o Additions to do after protocol version 1.1:
+
+       o Fix the NICK_CHANGE notify handling not to create new entry
+         for the changed client, but take the nickname from the notify
+         (removes need for resolving as well).  Protocol TODO entry 3.
+
+       o Add support for list of errors in command replies.  Protocol
+         TODO entry 1.
+
 
 TODO/bugs In SILC Server
 ========================
 
- 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 strerror messages from premature EOF's to signoff messages.
+   (add perhaps a socket error thingy to SilcSocketConnection).
 
  o Backup router related issues
 
@@ -78,6 +98,9 @@ TODO/bugs In SILC Server
 TODO/bugs In SILC Libraries
 ===========================
 
+ o make install copies the symblic links from lib/silcsim/ and not
+   modules.
+
  o WIN32 silc_net_create_connection_async does not work the same way
    than on Unix.  Do it with threads on WIN32.  The function works but
    is not actually async currently.
@@ -89,34 +112,59 @@ TODO/bugs In SILC Libraries
 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.
+Current protocol version is 1.0.  However, it is far from being perfect,
+and needs to include additional features.  Following protocol TODO entries
+describe new stuff to be added to protocol versions 1.x.
+
+ 1. 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.
+
+ 2. 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.
+
+ 3. Define the NICK_CHANGE notify to send the changed nickname as a new
+    third argument.  This will make the NICK_CHANGE notify handling easier
+    in the receiver's end (client primarily) since it removes the
+    requirement that receiver must resolve (using IDENTIFY or WHOIS) the
+    new Client ID received in the notify (because of the new nickname is
+    unknown).  To be included in protocol version 1.1.
+
+ 4. 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.
+
+ 5. Inviting and banning by public key should be made possible.  To be
+    included in protocol version 1.x.
+
+ 6. Add perhaps SILENCE_USERS, SILENCE_OPERS channel user modes which
+    can be used to silence (moderate) normal users and opers (this set
+    only by founder).  To be included in protocol version 1.1.
+
+ 7. Channel Message Payload needs slight redesining to include the IV
+    field to the MAC generation of the payload.  It is authenticated
+    by the packet's MAC but not by the payload's MAC.  Since the IV
+    belongs to the payload, its integrity should be protected by the
+    payload MAC and not alone by packet MAC.  To be included in protocol 
+    version 1.1.
 
 
 TODO After 1.0