From: Matt Caswell Date: Thu, 20 Apr 2017 13:45:33 +0000 (+0100) Subject: Ask libssl if we should retry not the socket X-Git-Tag: OpenSSL_1_1_1-pre1~1700 X-Git-Url: https://git.openssl.org/?p=openssl.git;a=commitdiff_plain;h=c4666bfa13480c1e700a0d487300da2a56e889af Ask libssl if we should retry not the socket s_server was asking the underlying socket if it is a retryable error rather than libssl which has more information. Reviewed-by: Richard Levitte (Merged from https://github.com/openssl/openssl/pull/3286) --- diff --git a/apps/s_server.c b/apps/s_server.c index 81c3973d6f..7fb7772826 100644 --- a/apps/s_server.c +++ b/apps/s_server.c @@ -2646,7 +2646,7 @@ static int init_ssl_connection(SSL *con) i = SSL_accept(con); if (i <= 0) - retry = BIO_sock_should_retry(i); + retry = !SSL_want_nothing(con); #ifdef CERT_CB_TEST_RETRY { while (i <= 0 @@ -2656,7 +2656,7 @@ static int init_ssl_connection(SSL *con) "LOOKUP from certificate callback during accept\n"); i = SSL_accept(con); if (i <= 0) - retry = BIO_sock_should_retry(i); + retry = !SSL_want_nothing(con); } } #endif @@ -2677,7 +2677,7 @@ static int init_ssl_connection(SSL *con) BIO_printf(bio_s_out, "LOOKUP not successful\n"); i = SSL_accept(con); if (i <= 0) - retry = BIO_sock_should_retry(i); + retry = !SSL_want_nothing(con); } #endif } while (i < 0 && SSL_waiting_for_async(con));