libwebsocket_context: add userspace pointer for use before wsi creation
authorAlon Levy <alevy@redhat.com>
Fri, 19 Oct 2012 09:21:56 +0000 (11:21 +0200)
committerAndy Green <andy.green@linaro.org>
Fri, 19 Oct 2012 10:27:19 +0000 (18:27 +0800)
Signed-off-by: Alon Levy <alevy@redhat.com>
lib/libwebsockets.c
lib/libwebsockets.h
lib/private-libwebsockets.h
libwebsockets-api-doc.html
test-server/test-client.c
test-server/test-fraggle.c
test-server/test-ping.c
test-server/test-server-extpoll.c
test-server/test-server.c

index c64f245..9b22842 100644 (file)
@@ -2118,6 +2118,12 @@ libwebsocket_context_destroy(struct libwebsocket_context *context)
 #endif
 }
 
+LWS_EXTERN void *
+libwebsocket_context_user(struct libwebsocket_context *context)
+{
+    return context->user_space;
+}
+
 /**
  * libwebsocket_service() - Service any pending websocket activity
  * @context:   Websocket context
@@ -2504,7 +2510,8 @@ libwebsocket_create_context(int port, const char *interf,
                               struct libwebsocket_extension *extensions,
                               const char *ssl_cert_filepath,
                               const char *ssl_private_key_filepath,
-                              int gid, int uid, unsigned int options)
+                              int gid, int uid, unsigned int options,
+                   void *user)
 {
        int n;
        int m;
@@ -2568,6 +2575,7 @@ libwebsocket_create_context(int port, const char *interf,
        context->fds_count = 0;
        context->extensions = extensions;
        context->last_timeout_check_s = 0;
+    context->user_space = user;
 
 #ifdef WIN32
        context->fd_random = 0;
index 60e7468..719b3cb 100644 (file)
@@ -579,7 +579,7 @@ libwebsocket_create_context(int port, const char * interf,
                  struct libwebsocket_extension *extensions,
                  const char *ssl_cert_filepath,
                  const char *ssl_private_key_filepath, int gid, int uid,
-                 unsigned int options);
+                 unsigned int options, void *user);
 
 LWS_EXTERN void
 libwebsocket_context_destroy(struct libwebsocket_context *context);
@@ -594,6 +594,9 @@ LWS_EXTERN int
 libwebsocket_service_fd(struct libwebsocket_context *context,
                                                         struct pollfd *pollfd);
 
+LWS_EXTERN void *
+libwebsocket_context_user(struct libwebsocket_context *context);
+
 /*
  * IMPORTANT NOTICE!
  *
index 3c9776f..b51a852 100644 (file)
@@ -258,6 +258,8 @@ struct libwebsocket_context {
        struct libwebsocket_protocols *protocols;
        int count_protocols;
        struct libwebsocket_extension *extensions;
+
+    void *user_space;
 };
 
 
index 18b1620..789871b 100644 (file)
@@ -226,7 +226,8 @@ has been created.
 <i>const char *</i> <b>ssl_private_key_filepath</b>,
 <i>int</i> <b>gid</b>,
 <i>int</i> <b>uid</b>,
-<i>unsigned int</i> <b>options</b>)
+<i>unsigned int</i> <b>options</b>,
+<i>void *</i> <b>user</b>)
 <h3>Arguments</h3>
 <dl>
 <dt><b>port</b>
index ffd6365..6db609c 100644 (file)
@@ -258,7 +258,7 @@ int main(int argc, char **argv)
 
        context = libwebsocket_create_context(CONTEXT_PORT_NO_LISTEN, NULL,
                                protocols, libwebsocket_internal_extensions,
-                                                        NULL, NULL, -1, -1, 0);
+                                                        NULL, NULL, -1, -1, 0, NULL);
        if (context == NULL) {
                fprintf(stderr, "Creating libwebsocket context failed\n");
                return 1;
index 1c77d59..de544fe 100644 (file)
@@ -301,7 +301,7 @@ int main(int argc, char **argv)
 
        context = libwebsocket_create_context(server_port, interface, protocols,
                                libwebsocket_internal_extensions,
-                               cert_path, key_path, -1, -1, opts);
+                               cert_path, key_path, -1, -1, opts, NULL);
        if (context == NULL) {
                fprintf(stderr, "libwebsocket init failed\n");
                return -1;
index 672f62c..476ef0b 100644 (file)
@@ -403,7 +403,7 @@ int main(int argc, char **argv)
        context = libwebsocket_create_context(CONTEXT_PORT_NO_LISTEN, NULL,
                                              protocols,
                                              libwebsocket_internal_extensions,
-                                             NULL, NULL, -1, -1, 0);
+                                             NULL, NULL, -1, -1, 0, NULL);
        if (context == NULL) {
                fprintf(stderr, "Creating libwebsocket context failed\n");
                return 1;
index 8131412..f2f68b4 100644 (file)
@@ -484,7 +484,7 @@ int main(int argc, char **argv)
 
        context = libwebsocket_create_context(port, interface_ptr, protocols,
                                        libwebsocket_internal_extensions,
-                                       cert_path, key_path, -1, -1, opts);
+                                       cert_path, key_path, -1, -1, opts, NULL);
        if (context == NULL) {
                fprintf(stderr, "libwebsocket init failed\n");
                return -1;
index 516deff..9617194 100644 (file)
@@ -447,7 +447,7 @@ int main(int argc, char **argv)
 
        context = libwebsocket_create_context(port, interface, protocols,
                                libwebsocket_internal_extensions,
-                               cert_path, key_path, -1, -1, opts);
+                               cert_path, key_path, -1, -1, opts, NULL);
        if (context == NULL) {
                fprintf(stderr, "libwebsocket init failed\n");
                return -1;