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.
This commit is contained in:
Vladimir Homutov 2018-05-08 19:35:56 +03:00
parent 68b50f71e1
commit 644d26e841

View File

@ -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;
}