diff --git a/src/core/ngx_connection.c b/src/core/ngx_connection.c index e0a6ba23a..b31daaa57 100644 --- a/src/core/ngx_connection.c +++ b/src/core/ngx_connection.c @@ -767,6 +767,9 @@ ngx_connection_error(ngx_connection_t *c, ngx_err_t err, char *text) || err == NGX_ENOTCONN || err == NGX_ETIMEDOUT || err == NGX_ECONNREFUSED + || err == NGX_ENETDOWN + || err == NGX_ENETUNREACH + || err == NGX_EHOSTDOWN || err == NGX_EHOSTUNREACH) { switch (c->log_error) { diff --git a/src/event/ngx_event_connect.c b/src/event/ngx_event_connect.c index d8bd7f4a2..5ae7b23bf 100644 --- a/src/event/ngx_event_connect.c +++ b/src/event/ngx_event_connect.c @@ -143,8 +143,14 @@ ngx_event_connect_peer(ngx_peer_connection_t *pc) if (err != NGX_EINPROGRESS && err != NGX_EAGAIN) { - if (err == NGX_ECONNREFUSED || err == NGX_EHOSTUNREACH) { + if (err == NGX_ECONNREFUSED + || err == NGX_ENETDOWN + || err == NGX_ENETUNREACH + || err == NGX_EHOSTDOWN + || err == NGX_EHOSTUNREACH) + { level = NGX_LOG_ERR; + } else { level = NGX_LOG_CRIT; } diff --git a/src/event/ngx_event_openssl.c b/src/event/ngx_event_openssl.c index 6de77429b..edbb16fb8 100644 --- a/src/event/ngx_event_openssl.c +++ b/src/event/ngx_event_openssl.c @@ -1121,6 +1121,9 @@ ngx_ssl_connection_error(ngx_connection_t *c, int sslerr, ngx_err_t err, || err == NGX_ETIMEDOUT #endif || err == NGX_ECONNREFUSED + || err == NGX_ENETDOWN + || err == NGX_ENETUNREACH + || err == NGX_EHOSTDOWN || err == NGX_EHOSTUNREACH) { switch (c->log_error) { diff --git a/src/os/unix/ngx_errno.h b/src/os/unix/ngx_errno.h index b941a43eb..c50d7879a 100644 --- a/src/os/unix/ngx_errno.h +++ b/src/os/unix/ngx_errno.h @@ -37,6 +37,9 @@ typedef int ngx_err_t; #define NGX_ETIMEDOUT ETIMEDOUT #define NGX_ECONNREFUSED ECONNREFUSED #define NGX_ENAMETOOLONG ENAMETOOLONG +#define NGX_ENETDOWN ENETDOWN +#define NGX_ENETUNREACH ENETUNREACH +#define NGX_EHOSTDOWN EHOSTDOWN #define NGX_EHOSTUNREACH EHOSTUNREACH #define NGX_ENOSYS ENOSYS #define NGX_ECANCELED ECANCELED diff --git a/src/os/win32/ngx_errno.h b/src/os/win32/ngx_errno.h index 588d28879..52d04bc4d 100644 --- a/src/os/win32/ngx_errno.h +++ b/src/os/win32/ngx_errno.h @@ -40,6 +40,9 @@ typedef DWORD ngx_err_t; #define NGX_ETIMEDOUT WSAETIMEDOUT #define NGX_ECONNREFUSED WSAECONNREFUSED #define NGX_ENAMETOOLONG ERROR_BAD_PATHNAME +#define NGX_ENETDOWN WSAENETDOWN +#define NGX_ENETUNREACH WSAENETUNREACH +#define NGX_EHOSTDOWN WSAEHOSTDOWN #define NGX_EHOSTUNREACH WSAEHOSTUNREACH #define NGX_ENOMOREFILES ERROR_NO_MORE_FILES