diff --git a/lib/client.c b/lib/client.c index 3cff9a08..9a00dc68 100755 --- a/lib/client.c +++ b/lib/client.c @@ -402,7 +402,7 @@ int lws_client_socket_service(struct libwebsocket_context *context, len = 1; while (wsi->u.hdr.parser_state != WSI_PARSING_COMPLETE && len > 0) { - n = lws_ssl_capable_read(wsi, &c, 1); + n = lws_ssl_capable_read(context, wsi, &c, 1); lws_latency(context, wsi, "send lws_issue_raw", n, n == 1); switch (n) { case LWS_SSL_CAPABLE_ERROR: diff --git a/lib/output.c b/lib/output.c index ffe4c3c3..40bb1435 100644 --- a/lib/output.c +++ b/lib/output.c @@ -545,7 +545,8 @@ all_sent: } LWS_VISIBLE int -lws_ssl_capable_read_no_ssl(struct libwebsocket *wsi, unsigned char *buf, int len) +lws_ssl_capable_read_no_ssl(struct libwebsocket_context *context, + struct libwebsocket *wsi, unsigned char *buf, int len) { int n; diff --git a/lib/private-libwebsockets.h b/lib/private-libwebsockets.h index 9f9c63ad..5c20b4ce 100755 --- a/lib/private-libwebsockets.h +++ b/lib/private-libwebsockets.h @@ -960,7 +960,8 @@ enum lws_ssl_capable_status { #define LWS_SSL_ENABLED(context) (context->use_ssl) LWS_EXTERN int openssl_websocket_private_data_index; LWS_EXTERN int -lws_ssl_capable_read(struct libwebsocket *wsi, unsigned char *buf, int len); +lws_ssl_capable_read(struct libwebsocket_context *context, + struct libwebsocket *wsi, unsigned char *buf, int len); LWS_EXTERN int lws_ssl_capable_write(struct libwebsocket *wsi, unsigned char *buf, int len); @@ -993,7 +994,8 @@ lws_context_init_http2_ssl(struct libwebsocket_context *context); #endif LWS_EXTERN int -lws_ssl_capable_read_no_ssl(struct libwebsocket *wsi, unsigned char *buf, int len); +lws_ssl_capable_read_no_ssl(struct libwebsocket_context *context, + struct libwebsocket *wsi, unsigned char *buf, int len); LWS_EXTERN int lws_ssl_capable_write_no_ssl(struct libwebsocket *wsi, unsigned char *buf, int len); diff --git a/lib/server.c b/lib/server.c index 68ee4816..9932b25e 100644 --- a/lib/server.c +++ b/lib/server.c @@ -668,7 +668,7 @@ int lws_server_socket_service(struct libwebsocket_context *context, /* any incoming data ready? */ if (pollfd->revents & LWS_POLLIN) { - len = lws_ssl_capable_read(wsi, + len = lws_ssl_capable_read(context, wsi, context->service_buffer, sizeof(context->service_buffer)); switch (len) { diff --git a/lib/service.c b/lib/service.c index a914e345..55657097 100644 --- a/lib/service.c +++ b/lib/service.c @@ -436,7 +436,7 @@ libwebsocket_service_fd(struct libwebsocket_context *context, if (!(pollfd->revents & LWS_POLLIN)) break; - eff_buf.token_len = lws_ssl_capable_read(wsi, + eff_buf.token_len = lws_ssl_capable_read(context->wsi, context->service_buffer, sizeof(context->service_buffer)); switch (eff_buf.token_len) { diff --git a/lib/ssl.c b/lib/ssl.c index 89935f9d..120aece9 100644 --- a/lib/ssl.c +++ b/lib/ssl.c @@ -355,12 +355,13 @@ int lws_context_init_client_ssl(struct lws_context_creation_info *info, #endif LWS_VISIBLE int -lws_ssl_capable_read(struct libwebsocket *wsi, unsigned char *buf, int len) +lws_ssl_capable_read(struct libwebsocket_context *context, + struct libwebsocket *wsi, unsigned char *buf, int len) { int n; if (!wsi->ssl) - return lws_ssl_capable_read_no_ssl(wsi, buf, len); + return lws_ssl_capable_read_no_ssl(context, wsi, buf, len); wsi->buffered_reads_pending = 0;