diff --git a/lib/server.c b/lib/server.c index 03c0a265..6f8e4373 100644 --- a/lib/server.c +++ b/lib/server.c @@ -143,6 +143,7 @@ int lws_server_socket_service(struct libwebsocket_context *context, int m; int opt = 1; ssize_t len; + BIO *bio; switch (wsi->mode) { @@ -281,6 +282,17 @@ int lws_server_socket_service(struct libwebsocket_context *context, SSL_set_fd(new_wsi->ssl, accept_fd); + bio = SSL_get_rbio(new_wsi->ssl); + if (bio) + BIO_set_nbio(bio, 1); /* nonblocking */ + else + lwsl_notice("NULL rbio\n"); + bio = SSL_get_wbio(new_wsi->ssl); + if (bio) + BIO_set_nbio(bio, 1); /* nonblocking */ + else + lwsl_notice("NULL rbio\n"); + /* * we are not accepted yet, but we need to enter ourselves * as a live connection. That way we can retry when more