diff --git a/NEWS b/NEWS index da431285..73b8b098 100644 --- a/NEWS +++ b/NEWS @@ -5,6 +5,7 @@ NEWS - 1.4.32 - * Code cleanup with clang/sparse (fixes #2437, thx kibi) + * Ignore EPIPE/ECONNRESET after SSL_shutdown - 1.4.31 - 2012-05-31 * [ssl] fix segfault in counting renegotiations for openssl versions without TLSEXT/SNI (thx carpii for reporting) diff --git a/src/connections.c b/src/connections.c index faec09f7..0b8d0fba 100644 --- a/src/connections.c +++ b/src/connections.c @@ -1712,11 +1712,18 @@ int connection_state_machine(server *srv, connection *con) { ERR_error_string(err, NULL)); } while((err = ERR_get_error())); } else if (errno != 0) { /* ssl bug (see lighttpd ticket #2213): sometimes errno == 0 */ - log_error_write(srv, __FILE__, __LINE__, "sddds", "SSL (error):", + switch(errno) { + case EPIPE: + case ECONNRESET: + break; + default: + log_error_write(srv, __FILE__, __LINE__, "sddds", "SSL (error):", ssl_r, ret, errno, strerror(errno)); + break; + } } - + break; default: while((err = ERR_get_error())) { @@ -1724,7 +1731,7 @@ int connection_state_machine(server *srv, connection *con) { ssl_r, ret, ERR_error_string(err, NULL)); } - + break; } }