aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/core/ngx_connection.c3
-rw-r--r--src/event/ngx_event_connect.c8
-rw-r--r--src/event/ngx_event_openssl.c3
-rw-r--r--src/os/unix/ngx_errno.h3
-rw-r--r--src/os/win32/ngx_errno.h3
5 files changed, 19 insertions, 1 deletions
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