updates.
[silc.git] / doc / draft-riikonen-silc-spec-02.nroff
index dd4e6472a4b03e94252bc695ec187cc13ac803aa..40508c302e087aaac3c8de4818360d1d456308d7 100644 (file)
@@ -2661,6 +2661,11 @@ List of all defined commands in SILC follows.
               privileges by SILC_COMMAND_SILCOPER command.  Client
               may unset the mode itself.
 
+           0x0004    SILC_UMODE_GONE
+
+              Marks that the user is not currently present in the
+              SILC Network.  Client may set and unset this mode.
+
         Reply messages to the command:
 
         Max Arguments:  2
@@ -2686,10 +2691,11 @@ List of all defined commands in SILC follows.
 
    17   SILC_COMMAND_CMODE
 
-        Max Arguments:  6
-            Arguments:  (1) <Channel ID>    (2) <channel mode mask>
-                        (3) [<user limit>]  (4) [<passphrase>]
-                        (5) [<cipher>]      (6) [<hmac>]
+        Max Arguments:  7
+            Arguments:  (1) <Channel ID>      (2) <channel mode mask>
+                        (3) [<user limit>]    (4) [<passphrase>]
+                        (5) [<cipher>]        (6) [<hmac>]
+                        (7) [<auth payload>]
 
         This command is used by client to set or change channel flags on
         a channel.  Channel has several modes that set various properties
@@ -2840,6 +2846,33 @@ List of all defined commands in SILC follows.
               to set/unset this mode.
 
 
+           0x0200    SILC_CMODE_FOUNDER_AUTH
+
+              Channel founder can set this mode to be able to regain
+              channel founder rights even if the client leaves the 
+              channel.  The <auth payload> is the Authentication Payload
+              consisting of the authentication method and authentication
+              data to be used in the authentication.  The server must
+              not accept NONE authentication method.  Also, if the 
+              method is public key authentication the server must not
+              save the authentication data from the payload as the
+              data is different on all authentications.  In this case the
+              server only saves the authentication method.
+
+              Note, that this  mode is effective only in the current server.
+              The client must connect to the same server later to be able
+              to regain the channel founder rights.  The server must save
+              the public key of the channel founder and use that to identify
+              the client who is claiming the channel founder rights.
+              The rights may be claimed by the SILC_CUMODE_FOUNDER 
+              channel user mode using SILC_COMMAND_CUMODE command.  The
+              set authentication data remains valid as long as the channel
+              exists or until the founder unsets this mode.
+
+              Typical implementation would use [+|-]f on user interface
+              to set/unset this mode.
+
+
         To make the mode system work, client must keep the channel mode
         mask locally so that the mode setting and unsetting would work
         without problems.  The client receives the initial channel mode
@@ -2873,9 +2906,9 @@ List of all defined commands in SILC follows.
 
    18   SILC_COMMAND_CUMODE
 
-        Max Arguments:  3
-            Arguments:  (1) <Channel ID>  (2) <mode mask>
-                        (3) <Client ID>
+        Max Arguments:  4
+            Arguments:  (1) <Channel ID>    (2) <mode mask>
+                        (3) <Client ID>     (4) [<auth payload>]
 
         This command is used by client to change channel user modes on
         channel.  Users on channel may have some special modes and this
@@ -2899,10 +2932,13 @@ List of all defined commands in SILC follows.
 
            0x0001    SILC_CUMODE_FOUNDER
 
-              The client is channel founder of the channel.  This mode
-              cannot be set by other client, it is set by the server when
-              the channel was founded (created).  The mode is provided 
-              because client may remove the founder rights from itself.
+              The client is channel founder of the channel.  Usually this
+              mode is set only by the server when the channel was created.
+              However, if the SILC_CMODE_FOUNDER_AUTH channel mode has
+              been set, the client can claim channel founder privileges
+              by providing the <auth payload> that the server will use
+              to authenticate the client.  The client can  remove this
+              mode at any time.
 
 
            0x0002    SILC_CUMODE_OPERATOR
@@ -2934,6 +2970,7 @@ List of all defined commands in SILC follows.
             SILC_STATUS_ERR_NO_CHANNEL_PRIV
             SILC_STATUS_ERR_UNKNOWN_MODE
             SILC_STATUS_ERR_NO_SUCH_CLIENT_ID
+            SILC_STATUS_ERR_AUTH_FAILED
 
 
    19   SILC_COMMAND_KICK