diff --git a/lib/tls/openssl/openssl-client.c b/lib/tls/openssl/openssl-client.c index d51c4d40..2f8c8df8 100644 --- a/lib/tls/openssl/openssl-client.c +++ b/lib/tls/openssl/openssl-client.c @@ -212,6 +212,9 @@ lws_tls_client_connect(struct lws *wsi) m = lws_ssl_get_error(wsi, n); + if (m == SSL_ERROR_SYSCALL) + return LWS_SSL_CAPABLE_ERROR; + if (m == SSL_ERROR_WANT_READ || SSL_want_read(wsi->ssl)) return LWS_SSL_CAPABLE_MORE_SERVICE_READ; diff --git a/lib/tls/openssl/ssl.c b/lib/tls/openssl/ssl.c index e959c360..faef7e7e 100644 --- a/lib/tls/openssl/ssl.c +++ b/lib/tls/openssl/ssl.c @@ -37,7 +37,7 @@ int lws_ssl_get_error(struct lws *wsi, int n) return 99; m = SSL_get_error(wsi->ssl, n); - lwsl_debug("%s: %p %d -> %d\n", __func__, wsi->ssl, n, m); + lwsl_debug("%s: %p %d -> %d (errno %d)\n", __func__, wsi->ssl, n, m, errno); return m; }