diff --git a/lib/libwebsockets.c b/lib/libwebsockets.c index c64f24589..9b2284228 100644 --- a/lib/libwebsockets.c +++ b/lib/libwebsockets.c @@ -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; diff --git a/lib/libwebsockets.h b/lib/libwebsockets.h index 60e7468cd..719b3cb99 100644 --- a/lib/libwebsockets.h +++ b/lib/libwebsockets.h @@ -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! * diff --git a/lib/private-libwebsockets.h b/lib/private-libwebsockets.h index 3c9776fd8..b51a8525f 100644 --- a/lib/private-libwebsockets.h +++ b/lib/private-libwebsockets.h @@ -258,6 +258,8 @@ struct libwebsocket_context { struct libwebsocket_protocols *protocols; int count_protocols; struct libwebsocket_extension *extensions; + + void *user_space; }; diff --git a/libwebsockets-api-doc.html b/libwebsockets-api-doc.html index 18b1620e5..789871be7 100644 --- a/libwebsockets-api-doc.html +++ b/libwebsockets-api-doc.html @@ -226,7 +226,8 @@ has been created. const char * ssl_private_key_filepath, int gid, int uid, -unsigned int options) +unsigned int options, +void * user)

Arguments

port diff --git a/test-server/test-client.c b/test-server/test-client.c index ffd636569..6db609c87 100644 --- a/test-server/test-client.c +++ b/test-server/test-client.c @@ -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; diff --git a/test-server/test-fraggle.c b/test-server/test-fraggle.c index 1c77d59fe..de544fead 100644 --- a/test-server/test-fraggle.c +++ b/test-server/test-fraggle.c @@ -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; diff --git a/test-server/test-ping.c b/test-server/test-ping.c index 672f62cc0..476ef0baa 100644 --- a/test-server/test-ping.c +++ b/test-server/test-ping.c @@ -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; diff --git a/test-server/test-server-extpoll.c b/test-server/test-server-extpoll.c index 8131412fe..f2f68b4d0 100644 --- a/test-server/test-server-extpoll.c +++ b/test-server/test-server-extpoll.c @@ -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; diff --git a/test-server/test-server.c b/test-server/test-server.c index 516deff7b..9617194fe 100644 --- a/test-server/test-server.c +++ b/test-server/test-server.c @@ -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;