protocol struct add user controlled id member
authorAndy Green <andy.green@linaro.org>
Mon, 11 Aug 2014 04:11:36 +0000 (12:11 +0800)
committerAndy Green <andy.green@linaro.org>
Mon, 11 Aug 2014 04:11:36 +0000 (12:11 +0800)
Signed-off-by: Andy Green <andy.green@linaro.org>
changelog
lib/libwebsockets.h

index e3166c2..1652fe8 100644 (file)
--- a/changelog
+++ b/changelog
@@ -11,6 +11,11 @@ There's a new member in the info struct used to control context creation,
 ssl_private_key_password, which allows passing into lws the passphrase on
 an SSL cetificate
 
+There's a new member in struct protocols, id, which is ignored by lws but can
+be used by the user code to mark the selected protocol by user-defined version
+or capabliity flag information, for the case multiple versions of a protocol are
+supported.
+
 
 v1.3-chrome37-firefox30
 =======================
index 203c54e..71b6a65 100644 (file)
@@ -863,6 +863,12 @@ typedef int (extension_callback_function)(struct libwebsocket_context *context,
  *             protocols where you stream big blocks, set to nonzero and use
  *             the return value from libwebsocket_write() to manage how much
  *             got send yourself.
+ * @id:                ignored by lws, but useful to contain user information bound
+ *             to the selected protocol.  For example if this protocol was
+ *             called "myprotocol-v2", you might set id to 2, and the user
+ *             code that acts differently according to the version can do so by
+ *             switch (wsi->protocol->id), user code might use some bits as
+ *             capability flags based on selected protocol version, etc.
  * @owning_server:     the server init call fills in this opaque pointer when
  *             registering this protocol with the server.
  * @protocol_index: which protocol we are starting from zero
@@ -882,6 +888,7 @@ struct libwebsocket_protocols {
        size_t per_session_data_size;
        size_t rx_buffer_size;
        int no_buffer_all_partial_tx;
+       unsigned int id;
 
        /*
         * below are filled in on server init and can be left uninitialized,