# HG changeset patch
# User Vladimir Homutov <vl@nginx.com>
# Date 1518709467 -10800
# Thu Feb 15 18:44:27 2018 +0300
# Node ID d9475929537b10628efef6b5d338e67876e8be12
# Parent 8b0553239592f5d0fd419e5116b9d343838685cf
Core: re-open udp socket on send error.
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.
diff --git a/src/core/ngx_syslog.c b/src/core/ngx_syslog.c
|
a
|
b
|
ngx_syslog_send(ngx_syslog_peer_t *peer,
|
| 289 | 289 | n = ngx_os_io.send(&peer->conn, buf, len); |
| 290 | 290 | } |
| 291 | 291 | |
| 292 | | #if (NGX_HAVE_UNIX_DOMAIN) |
| 293 | | |
| 294 | | if (n == NGX_ERROR && peer->server.sockaddr->sa_family == AF_UNIX) { |
| | 292 | if (n == NGX_ERROR) { |
| 295 | 293 | |
| 296 | 294 | if (ngx_close_socket(peer->conn.fd) == -1) { |
| 297 | 295 | ngx_log_error(NGX_LOG_ALERT, ngx_cycle->log, ngx_socket_errno, |
| … |
… |
ngx_syslog_send(ngx_syslog_peer_t *peer,
|
| 301 | 299 | peer->conn.fd = (ngx_socket_t) -1; |
| 302 | 300 | } |
| 303 | 301 | |
| 304 | | #endif |
| 305 | | |
| 306 | 302 | return n; |
| 307 | 303 | } |
| 308 | 304 | |