summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorVladimir Homutov <vl@nginx.com>2018-05-08 19:35:56 +0300
committerVladimir Homutov <vl@nginx.com>2018-05-08 19:35:56 +0300
commit644d26e841ec06023d0dc3eb9b624b404043c473 (patch)
treeed9d92c6fe5891cec4aee23462d144925b9f76f8
parent68b50f71e193e58ee117ef36f25387cbaa75edf3 (diff)
downloadnginx-644d26e841ec06023d0dc3eb9b624b404043c473.tar.gz
nginx-644d26e841ec06023d0dc3eb9b624b404043c473.tar.bz2
Syslog: re-open syslog udp socket on send error (ticket #1477).
Previously, only unix domain sockets were reopened to tolerate cases when local syslog server was restarted. It makes sense to treat other cases (for example, local IP address changes) similarly.
-rw-r--r--src/core/ngx_syslog.c6
1 files changed, 1 insertions, 5 deletions
diff --git a/src/core/ngx_syslog.c b/src/core/ngx_syslog.c
index 0a67928e0..e2f9b6cba 100644
--- a/src/core/ngx_syslog.c
+++ b/src/core/ngx_syslog.c
@@ -289,9 +289,7 @@ ngx_syslog_send(ngx_syslog_peer_t *peer, u_char *buf, size_t len)
n = ngx_os_io.send(&peer->conn, buf, len);
}
-#if (NGX_HAVE_UNIX_DOMAIN)
-
- if (n == NGX_ERROR && peer->server.sockaddr->sa_family == AF_UNIX) {
+ if (n == NGX_ERROR) {
if (ngx_close_socket(peer->conn.fd) == -1) {
ngx_log_error(NGX_LOG_ALERT, ngx_cycle->log, ngx_socket_errno,
@@ -301,8 +299,6 @@ ngx_syslog_send(ngx_syslog_peer_t *peer, u_char *buf, size_t len)
peer->conn.fd = (ngx_socket_t) -1;
}
-#endif
-
return n;
}