From eabed8defe9a0dea9d734efaae534c0f85f8f35b Mon Sep 17 00:00:00 2001 From: Andy Green Date: Mon, 11 Aug 2014 12:11:36 +0800 Subject: [PATCH] protocol struct add user controlled id member Signed-off-by: Andy Green --- changelog | 5 +++++ lib/libwebsockets.h | 7 +++++++ 2 files changed, 12 insertions(+) diff --git a/changelog b/changelog index e3166c2ae..1652fe8f0 100644 --- 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 ======================= diff --git a/lib/libwebsockets.h b/lib/libwebsockets.h index 203c54e1c..71b6a65a8 100644 --- a/lib/libwebsockets.h +++ b/lib/libwebsockets.h @@ -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,