mirror of
https://github.com/nginx/nginx.git
synced 2025-06-27 09:00:38 +08:00
Core: handle getsockopt(TCP_FASTOPEN) failures.
Linux returns EOPNOTSUPP for non-TCP sockets and ENOPROTOOPT for TCP sockets, because getsockopt(TCP_FASTOPEN) is not implemented so far. While there, lower the log level from ALERT to NOTICE to match other getsockopt() failures. Signed-off-by: Piotr Sikora <piotr@cloudflare.com>
This commit is contained in:
parent
449e8eeb53
commit
2e57e0609b
@ -97,7 +97,7 @@ ngx_set_inherited_sockets(ngx_cycle_t *cycle)
|
|||||||
ngx_uint_t i;
|
ngx_uint_t i;
|
||||||
ngx_listening_t *ls;
|
ngx_listening_t *ls;
|
||||||
socklen_t olen;
|
socklen_t olen;
|
||||||
#if (NGX_HAVE_DEFERRED_ACCEPT)
|
#if (NGX_HAVE_DEFERRED_ACCEPT || NGX_HAVE_TCP_FASTOPEN)
|
||||||
ngx_err_t err;
|
ngx_err_t err;
|
||||||
#endif
|
#endif
|
||||||
#if (NGX_HAVE_DEFERRED_ACCEPT && defined SO_ACCEPTFILTER)
|
#if (NGX_HAVE_DEFERRED_ACCEPT && defined SO_ACCEPTFILTER)
|
||||||
@ -223,9 +223,13 @@ ngx_set_inherited_sockets(ngx_cycle_t *cycle)
|
|||||||
(void *) &ls[i].fastopen, &olen)
|
(void *) &ls[i].fastopen, &olen)
|
||||||
== -1)
|
== -1)
|
||||||
{
|
{
|
||||||
ngx_log_error(NGX_LOG_ALERT, cycle->log, ngx_socket_errno,
|
err = ngx_socket_errno;
|
||||||
"getsockopt(TCP_FASTOPEN) %V failed, ignored",
|
|
||||||
&ls[i].addr_text);
|
if (err != NGX_EOPNOTSUPP && err != NGX_ENOPROTOOPT) {
|
||||||
|
ngx_log_error(NGX_LOG_NOTICE, cycle->log, err,
|
||||||
|
"getsockopt(TCP_FASTOPEN) %V failed, ignored",
|
||||||
|
&ls[i].addr_text);
|
||||||
|
}
|
||||||
|
|
||||||
ls[i].fastopen = -1;
|
ls[i].fastopen = -1;
|
||||||
}
|
}
|
||||||
|
@ -34,6 +34,7 @@ typedef int ngx_err_t;
|
|||||||
#define NGX_ENOSPC ENOSPC
|
#define NGX_ENOSPC ENOSPC
|
||||||
#define NGX_EPIPE EPIPE
|
#define NGX_EPIPE EPIPE
|
||||||
#define NGX_EINPROGRESS EINPROGRESS
|
#define NGX_EINPROGRESS EINPROGRESS
|
||||||
|
#define NGX_ENOPROTOOPT ENOPROTOOPT
|
||||||
#define NGX_EOPNOTSUPP EOPNOTSUPP
|
#define NGX_EOPNOTSUPP EOPNOTSUPP
|
||||||
#define NGX_EADDRINUSE EADDRINUSE
|
#define NGX_EADDRINUSE EADDRINUSE
|
||||||
#define NGX_ECONNABORTED ECONNABORTED
|
#define NGX_ECONNABORTED ECONNABORTED
|
||||||
|
@ -38,6 +38,7 @@ typedef DWORD ngx_err_t;
|
|||||||
#define NGX_EPIPE EPIPE
|
#define NGX_EPIPE EPIPE
|
||||||
#define NGX_EAGAIN WSAEWOULDBLOCK
|
#define NGX_EAGAIN WSAEWOULDBLOCK
|
||||||
#define NGX_EINPROGRESS WSAEINPROGRESS
|
#define NGX_EINPROGRESS WSAEINPROGRESS
|
||||||
|
#define NGX_ENOPROTOOPT WSAENOPROTOOPT
|
||||||
#define NGX_EOPNOTSUPP WSAEOPNOTSUPP
|
#define NGX_EOPNOTSUPP WSAEOPNOTSUPP
|
||||||
#define NGX_EADDRINUSE WSAEADDRINUSE
|
#define NGX_EADDRINUSE WSAEADDRINUSE
|
||||||
#define NGX_ECONNABORTED WSAECONNABORTED
|
#define NGX_ECONNABORTED WSAECONNABORTED
|
||||||
|
Loading…
Reference in New Issue
Block a user