updates
authorPekka Riikonen <priikone@silcnet.org>
Fri, 19 Apr 2002 07:04:50 +0000 (07:04 +0000)
committerPekka Riikonen <priikone@silcnet.org>
Fri, 19 Apr 2002 07:04:50 +0000 (07:04 +0000)
CHANGES
TODO
doc/draft-riikonen-silc-commands-03.nroff
lib/silccore/silccommand.h
lib/silccore/silcstatus.h

diff --git a/CHANGES b/CHANGES
index 5708445f65e84ff444512b7be2b9b54591cd2cc2..cfce68d85784ab3a52e1e6142024c4a51f84506d 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -1,3 +1,11 @@
+Fri Apr 19 09:02:20 CEST 2002  Pekka Riikonen <priikone@silcnet.org>
+
+       * Added service support to SILC protocol.  Added new command
+          SILC_COMMAND_SERVICE.  Updated the protocol specs and the
+          core library.  Services are not implemented in server or
+          client for now.  Protocol TODO #20.  Affected files are
+          lib/silccore/silcstatus.h, lib/silccore/silccommand.h.
+
 Thu Apr 18 14:09:51 CEST 2002  Pekka Riikonen <priikone@silcnet.org>
 
        * Added silc_mime_parse function to parse MIME headers.
diff --git a/TODO b/TODO
index 6bcc7fa58c7f07f91d750504e47db65dd0272c20..314939a08f346d823c0dcbc30a9485c9994a5d6e 100644 (file)
--- a/TODO
+++ b/TODO
@@ -112,8 +112,6 @@ TODO in SILC Protocol
  17. Cell wide channel founder support, and permanent channels when
      founder mode set.
 
- 20. Services support?
-
  21. Subscription/IRC's notify kind support?
 
  24. Implement the <Requested Attributes> and the Attribute Payload to
index 677ae76c59da6b9af70be20007de32ae5267570f..525426a1462afb5f01b42cb6ee71e82a8e91c1c8 100644 (file)
@@ -1711,7 +1711,61 @@ List of all defined commands in SILC follows.
             SILC_STATUS_ERR_NO_SUCH_SERVER_ID
 
 
-   27 - 199
+   27   SILC_COMMAND_SERVICE
+
+        Max Arguments:  256
+            Arguments:  (1) [<service name>]    (2) [<auth payload>]
+                        (n) [...]
+
+        This command is used to negotiate a service agreement with a
+        remote server.  If this command is given without arguments it
+        MAY return the service list, if it is publicly available.  The
+        <service name> is a service sepcific identifier, and the
+        <auth payload> MAY be used to authenticate the requestor to the
+        remote service.  The authentication to a service may be based
+        on previous agreement with the requestor and the service
+        provider.  The command MAY also take additional service
+        specific arguments.
+
+        This document does not specify any services.  How the services
+        are configured and put available in a server is also out of
+        scope of this document.
+
+        This command MAY be used by client to start using some service
+        in a server, but it also MAY be used by server to negotiate
+        to start using a service in some other server or router.
+
+        After the negotiation is done both of the parties need to know
+        from the service identifier how the service can be used.  The
+        service can be considered to be a protocol which both of the
+        parties need to support.
+
+        Reply messages to the command:
+
+        Max Arguments:  256
+            Arguments:  (1) <Status Payload>      (2) [<service list>]
+                        (3) [<service name>]      (n) [...]
+
+
+        This command MAY reply with the <service list> when command is
+        given without arguments, and the list is a comma separated list
+        of service identifiers.  The <service name> is the service that
+        the sender requested and this is provided when the server has
+        accepted the sender to use the <service name>.  The command
+        reply MAY also have additional service specific arguments.
+
+        Status messages:
+
+            SILC_STATUS_OK
+            SILC_STATUS_ERR_NOT_REGISTERED
+            SILC_STATUS_ERR_NOT_ENOUGH_PARAMS
+            SILC_STATUS_ERR_TOO_MANY_PARAMS
+            SILC_STATUS_ERR_NO_SUCH_SERVICE
+            SILC_STATUS_ERR_AUTH_FAILED
+            SILC_STATUS_ERR_PERM_DENIED
+
+
+   28 - 199
 
         Currently undefined commands.
 
@@ -2049,6 +2103,11 @@ List of all defined status types:
         The unknown Server ID MUST be provided as next argument
         in the reply.
 
+   49   SILC_STATUS_ERR_NO_SUCH_SERVICE
+
+        "Service does not exist".  Requested service identifier is
+        unknown.
+
 .in 3
 
 
index 691d96eee68c6a62dfaa2a6d5fafd7d53cdfb055..1575a80ca11c4d208cf5e414c9ec7b2eba0f9159 100644 (file)
@@ -149,6 +149,7 @@ typedef unsigned char SilcCommand;
 #define SILC_COMMAND_LEAVE             24
 #define SILC_COMMAND_USERS             25
 #define SILC_COMMAND_GETKEY            26
+#define SILC_COMMAND_SERVICE           27
 
 /* Private range start */
 #define SILC_COMMAND_PRIV_CONNECT       200
index 73f598b881d124d1d3ca1226a2e3a51efd55f9e5..a11e693bce5a5199e55150edd551e5979e38c905 100644 (file)
@@ -93,6 +93,7 @@ typedef SilcUInt8 SilcStatus;
 #define SILC_STATUS_ERR_AUTH_FAILED         45
 #define SILC_STATUS_ERR_UNKNOWN_ALGORITHM   46
 #define SILC_STATUS_ERR_NO_SUCH_SERVER_ID   47
+#define SILC_STATUS_ERR_NO_SUCH_SERVICE     49
 /***/
 
 #endif /* SILCSTATUS_H */