X-Git-Url: https://vcs.fsf.org/?a=blobdiff_plain;f=src%2Fsrc%2Ftls-openssl.c;h=0caf1c0ff645265cf3eff4dde2fae2c6fac85b9d;hb=2844a966d127fb663ba96330dd7ccb37bb9e0ed1;hp=146ed695dcfeda0a7c42c14d8efa7abde90d01df;hpb=c685a2e3d970d25b36a00e4110f975b588b0bbab;p=exim.git diff --git a/src/src/tls-openssl.c b/src/src/tls-openssl.c index 146ed695d..0caf1c0ff 100644 --- a/src/src/tls-openssl.c +++ b/src/src/tls-openssl.c @@ -3,6 +3,7 @@ *************************************************/ /* Copyright (c) University of Cambridge 1995 - 2019 */ +/* Copyright (c) The Exim Maintainers 2020 */ /* See the file NOTICE for conditions of use and distribution. */ /* Portions Copyright (c) The OpenSSL Project 1999 */ @@ -2764,8 +2765,12 @@ if (rc <= 0) case SSL_ERROR_SSL: { uschar * s = US"SSL_accept"; - unsigned long e = ERR_peek_error(); - if (ERR_GET_REASON(e) == SSL_R_WRONG_VERSION_NUMBER) + int r = ERR_GET_REASON(ERR_peek_error()); + if ( r == SSL_R_WRONG_VERSION_NUMBER +#ifdef SSL_R_VERSION_TOO_LOW + || r == SSL_R_VERSION_TOO_LOW +#endif + || r == SSL_R_UNKNOWN_PROTOCOL || r == SSL_R_UNSUPPORTED_PROTOCOL) s = string_sprintf("%s (%s)", s, SSL_get_version(server_ssl)); (void) tls_error(s, NULL, sigalrm_seen ? US"timed out" : NULL, errstr); return FAIL;