libwebsocket_context: add userspace pointer for use before wsi creation
Signed-off-by: Alon Levy <alevy@redhat.com>
This commit is contained in:
parent
e1be13d8b5
commit
0291eb3b95
9 changed files with 22 additions and 8 deletions
|
@ -2118,6 +2118,12 @@ libwebsocket_context_destroy(struct libwebsocket_context *context)
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
LWS_EXTERN void *
|
||||||
|
libwebsocket_context_user(struct libwebsocket_context *context)
|
||||||
|
{
|
||||||
|
return context->user_space;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* libwebsocket_service() - Service any pending websocket activity
|
* libwebsocket_service() - Service any pending websocket activity
|
||||||
* @context: Websocket context
|
* @context: Websocket context
|
||||||
|
@ -2504,7 +2510,8 @@ libwebsocket_create_context(int port, const char *interf,
|
||||||
struct libwebsocket_extension *extensions,
|
struct libwebsocket_extension *extensions,
|
||||||
const char *ssl_cert_filepath,
|
const char *ssl_cert_filepath,
|
||||||
const char *ssl_private_key_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 n;
|
||||||
int m;
|
int m;
|
||||||
|
@ -2568,6 +2575,7 @@ libwebsocket_create_context(int port, const char *interf,
|
||||||
context->fds_count = 0;
|
context->fds_count = 0;
|
||||||
context->extensions = extensions;
|
context->extensions = extensions;
|
||||||
context->last_timeout_check_s = 0;
|
context->last_timeout_check_s = 0;
|
||||||
|
context->user_space = user;
|
||||||
|
|
||||||
#ifdef WIN32
|
#ifdef WIN32
|
||||||
context->fd_random = 0;
|
context->fd_random = 0;
|
||||||
|
|
|
@ -579,7 +579,7 @@ libwebsocket_create_context(int port, const char * interf,
|
||||||
struct libwebsocket_extension *extensions,
|
struct libwebsocket_extension *extensions,
|
||||||
const char *ssl_cert_filepath,
|
const char *ssl_cert_filepath,
|
||||||
const char *ssl_private_key_filepath, int gid, int uid,
|
const char *ssl_private_key_filepath, int gid, int uid,
|
||||||
unsigned int options);
|
unsigned int options, void *user);
|
||||||
|
|
||||||
LWS_EXTERN void
|
LWS_EXTERN void
|
||||||
libwebsocket_context_destroy(struct libwebsocket_context *context);
|
libwebsocket_context_destroy(struct libwebsocket_context *context);
|
||||||
|
@ -594,6 +594,9 @@ LWS_EXTERN int
|
||||||
libwebsocket_service_fd(struct libwebsocket_context *context,
|
libwebsocket_service_fd(struct libwebsocket_context *context,
|
||||||
struct pollfd *pollfd);
|
struct pollfd *pollfd);
|
||||||
|
|
||||||
|
LWS_EXTERN void *
|
||||||
|
libwebsocket_context_user(struct libwebsocket_context *context);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* IMPORTANT NOTICE!
|
* IMPORTANT NOTICE!
|
||||||
*
|
*
|
||||||
|
|
|
@ -258,6 +258,8 @@ struct libwebsocket_context {
|
||||||
struct libwebsocket_protocols *protocols;
|
struct libwebsocket_protocols *protocols;
|
||||||
int count_protocols;
|
int count_protocols;
|
||||||
struct libwebsocket_extension *extensions;
|
struct libwebsocket_extension *extensions;
|
||||||
|
|
||||||
|
void *user_space;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -226,7 +226,8 @@ has been created.
|
||||||
<i>const char *</i> <b>ssl_private_key_filepath</b>,
|
<i>const char *</i> <b>ssl_private_key_filepath</b>,
|
||||||
<i>int</i> <b>gid</b>,
|
<i>int</i> <b>gid</b>,
|
||||||
<i>int</i> <b>uid</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>
|
<h3>Arguments</h3>
|
||||||
<dl>
|
<dl>
|
||||||
<dt><b>port</b>
|
<dt><b>port</b>
|
||||||
|
|
|
@ -258,7 +258,7 @@ int main(int argc, char **argv)
|
||||||
|
|
||||||
context = libwebsocket_create_context(CONTEXT_PORT_NO_LISTEN, NULL,
|
context = libwebsocket_create_context(CONTEXT_PORT_NO_LISTEN, NULL,
|
||||||
protocols, libwebsocket_internal_extensions,
|
protocols, libwebsocket_internal_extensions,
|
||||||
NULL, NULL, -1, -1, 0);
|
NULL, NULL, -1, -1, 0, NULL);
|
||||||
if (context == NULL) {
|
if (context == NULL) {
|
||||||
fprintf(stderr, "Creating libwebsocket context failed\n");
|
fprintf(stderr, "Creating libwebsocket context failed\n");
|
||||||
return 1;
|
return 1;
|
||||||
|
|
|
@ -301,7 +301,7 @@ int main(int argc, char **argv)
|
||||||
|
|
||||||
context = libwebsocket_create_context(server_port, interface, protocols,
|
context = libwebsocket_create_context(server_port, interface, protocols,
|
||||||
libwebsocket_internal_extensions,
|
libwebsocket_internal_extensions,
|
||||||
cert_path, key_path, -1, -1, opts);
|
cert_path, key_path, -1, -1, opts, NULL);
|
||||||
if (context == NULL) {
|
if (context == NULL) {
|
||||||
fprintf(stderr, "libwebsocket init failed\n");
|
fprintf(stderr, "libwebsocket init failed\n");
|
||||||
return -1;
|
return -1;
|
||||||
|
|
|
@ -403,7 +403,7 @@ int main(int argc, char **argv)
|
||||||
context = libwebsocket_create_context(CONTEXT_PORT_NO_LISTEN, NULL,
|
context = libwebsocket_create_context(CONTEXT_PORT_NO_LISTEN, NULL,
|
||||||
protocols,
|
protocols,
|
||||||
libwebsocket_internal_extensions,
|
libwebsocket_internal_extensions,
|
||||||
NULL, NULL, -1, -1, 0);
|
NULL, NULL, -1, -1, 0, NULL);
|
||||||
if (context == NULL) {
|
if (context == NULL) {
|
||||||
fprintf(stderr, "Creating libwebsocket context failed\n");
|
fprintf(stderr, "Creating libwebsocket context failed\n");
|
||||||
return 1;
|
return 1;
|
||||||
|
|
|
@ -484,7 +484,7 @@ int main(int argc, char **argv)
|
||||||
|
|
||||||
context = libwebsocket_create_context(port, interface_ptr, protocols,
|
context = libwebsocket_create_context(port, interface_ptr, protocols,
|
||||||
libwebsocket_internal_extensions,
|
libwebsocket_internal_extensions,
|
||||||
cert_path, key_path, -1, -1, opts);
|
cert_path, key_path, -1, -1, opts, NULL);
|
||||||
if (context == NULL) {
|
if (context == NULL) {
|
||||||
fprintf(stderr, "libwebsocket init failed\n");
|
fprintf(stderr, "libwebsocket init failed\n");
|
||||||
return -1;
|
return -1;
|
||||||
|
|
|
@ -447,7 +447,7 @@ int main(int argc, char **argv)
|
||||||
|
|
||||||
context = libwebsocket_create_context(port, interface, protocols,
|
context = libwebsocket_create_context(port, interface, protocols,
|
||||||
libwebsocket_internal_extensions,
|
libwebsocket_internal_extensions,
|
||||||
cert_path, key_path, -1, -1, opts);
|
cert_path, key_path, -1, -1, opts, NULL);
|
||||||
if (context == NULL) {
|
if (context == NULL) {
|
||||||
fprintf(stderr, "libwebsocket init failed\n");
|
fprintf(stderr, "libwebsocket init failed\n");
|
||||||
return -1;
|
return -1;
|
||||||
|
|
Loading…
Add table
Reference in a new issue