From 622d9f2ff3b0eeced1ff0eb2f2fc959fb38a293c Mon Sep 17 00:00:00 2001 From: Andrew Canaday Date: Wed, 2 Dec 2015 15:13:56 -0500 Subject: [PATCH] Handle pending SSL reads which would otherwise not trigger a POLLIN. --- lib/service.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/lib/service.c b/lib/service.c index 1b5dcf42..283c3923 100644 --- a/lib/service.c +++ b/lib/service.c @@ -497,6 +497,9 @@ libwebsocket_service_fd(struct libwebsocket_context *context, n = lws_server_socket_service(context, wsi, pollfd); if (n < 0) goto close_and_handled; + pending = lws_ssl_pending(wsi); + if (pending) + goto handle_pending; goto handled; case LWS_CONNMODE_WS_SERVING: @@ -596,6 +599,7 @@ drain: pending = lws_ssl_pending(wsi); if (pending) { +handle_pending: pending = pending > sizeof(context->service_buffer)? sizeof(context->service_buffer):pending; goto read;