From cc64fb535bebb96e4f53bfc8e844d573686ebce9 Mon Sep 17 00:00:00 2001 From: Andy Green Date: Sat, 31 Oct 2015 06:49:05 +0800 Subject: [PATCH] non ssl on ssl port fixes As found by 'github user 7' https://github.com/warmcat/libwebsockets/issues/338 Signed-off-by: Andy Green --- lib/ssl.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/lib/ssl.c b/lib/ssl.c index 701ec8e24..0150b15fb 100644 --- a/lib/ssl.c +++ b/lib/ssl.c @@ -633,8 +633,10 @@ lws_server_socket_service_ssl(struct libwebsocket_context *context, wsi->ssl = NULL; goto accepted; } - if (n == 0 || LWS_ERRNO == LWS_EAGAIN || - LWS_ERRNO == LWS_EWOULDBLOCK) { + if (!n) /* connection is gone */ + goto fail; + if (n < 0 && (LWS_ERRNO == LWS_EAGAIN || + LWS_ERRNO == LWS_EWOULDBLOCK)) { /* * well, we get no way to know ssl or not * so go around again waiting for something