mirror of
https://github.com/nginx/nginx.git
synced 2024-11-27 15:39:01 +08:00
Core: handling of getsockopt(TCP_DEFER_ACCEPT) failures.
Recent Linux versions started to return EOPNOTSUPP to getsockopt() calls on unix sockets, resulting in log pollution on binary upgrade. Such errors are silently ignored now.
This commit is contained in:
parent
475832834b
commit
0eee3b0bc5
@ -93,8 +93,10 @@ ngx_set_inherited_sockets(ngx_cycle_t *cycle)
|
||||
ngx_uint_t i;
|
||||
ngx_listening_t *ls;
|
||||
socklen_t olen;
|
||||
#if (NGX_HAVE_DEFERRED_ACCEPT && defined SO_ACCEPTFILTER)
|
||||
#if (NGX_HAVE_DEFERRED_ACCEPT)
|
||||
ngx_err_t err;
|
||||
#endif
|
||||
#if (NGX_HAVE_DEFERRED_ACCEPT && defined SO_ACCEPTFILTER)
|
||||
struct accept_filter_arg af;
|
||||
#endif
|
||||
#if (NGX_HAVE_DEFERRED_ACCEPT && defined TCP_DEFER_ACCEPT)
|
||||
@ -248,7 +250,13 @@ ngx_set_inherited_sockets(ngx_cycle_t *cycle)
|
||||
if (getsockopt(ls[i].fd, IPPROTO_TCP, TCP_DEFER_ACCEPT, &timeout, &olen)
|
||||
== -1)
|
||||
{
|
||||
ngx_log_error(NGX_LOG_NOTICE, cycle->log, ngx_errno,
|
||||
err = ngx_errno;
|
||||
|
||||
if (err == NGX_EOPNOTSUPP) {
|
||||
continue;
|
||||
}
|
||||
|
||||
ngx_log_error(NGX_LOG_NOTICE, cycle->log, err,
|
||||
"getsockopt(TCP_DEFER_ACCEPT) for %V failed, ignored",
|
||||
&ls[i].addr_text);
|
||||
continue;
|
||||
|
@ -34,6 +34,7 @@ typedef int ngx_err_t;
|
||||
#define NGX_ENOSPC ENOSPC
|
||||
#define NGX_EPIPE EPIPE
|
||||
#define NGX_EINPROGRESS EINPROGRESS
|
||||
#define NGX_EOPNOTSUPP EOPNOTSUPP
|
||||
#define NGX_EADDRINUSE EADDRINUSE
|
||||
#define NGX_ECONNABORTED ECONNABORTED
|
||||
#define NGX_ECONNRESET ECONNRESET
|
||||
|
@ -38,6 +38,7 @@ typedef DWORD ngx_err_t;
|
||||
#define NGX_EPIPE EPIPE
|
||||
#define NGX_EAGAIN WSAEWOULDBLOCK
|
||||
#define NGX_EINPROGRESS WSAEINPROGRESS
|
||||
#define NGX_EOPNOTSUPP WSAEOPNOTSUPP
|
||||
#define NGX_EADDRINUSE WSAEADDRINUSE
|
||||
#define NGX_ECONNABORTED WSAECONNABORTED
|
||||
#define NGX_ECONNRESET WSAECONNRESET
|
||||
|
Loading…
Reference in New Issue
Block a user