mirror of
https://github.com/nginx/nginx.git
synced 2025-02-25 18:55:26 -06:00
Merge aedc0b15d1
into ecb809305e
This commit is contained in:
commit
6d392cb930
@ -118,3 +118,19 @@ ngx_feature_libs=
|
|||||||
ngx_feature_test="int32_t lock = 0;
|
ngx_feature_test="int32_t lock = 0;
|
||||||
if (!OSAtomicCompareAndSwap32Barrier(0, 1, &lock)) return 1"
|
if (!OSAtomicCompareAndSwap32Barrier(0, 1, &lock)) return 1"
|
||||||
. auto/feature
|
. auto/feature
|
||||||
|
|
||||||
|
|
||||||
|
# TCP keepalive
|
||||||
|
|
||||||
|
ngx_feature="TCP_KEEPALIVE"
|
||||||
|
ngx_feature_name="NGX_HAVE_KEEPALIVE_TUNABLE"
|
||||||
|
ngx_feature_run=no
|
||||||
|
ngx_feature_incs="#include <sys/socket.h>
|
||||||
|
#include <netinet/in.h>
|
||||||
|
#include <netinet/tcp.h>"
|
||||||
|
ngx_feature_path=
|
||||||
|
ngx_feature_libs=
|
||||||
|
ngx_feature_test="setsockopt(0, IPPROTO_TCP, TCP_KEEPALIVE, NULL, 0);
|
||||||
|
setsockopt(0, IPPROTO_TCP, TCP_KEEPINTVL, NULL, 0);
|
||||||
|
setsockopt(0, IPPROTO_TCP, TCP_KEEPCNT, NULL, 0)"
|
||||||
|
. auto/feature
|
||||||
|
26
auto/unix
26
auto/unix
@ -508,18 +508,20 @@ ngx_feature_test="setsockopt(0, IPPROTO_TCP, TCP_DEFER_ACCEPT, NULL, 0)"
|
|||||||
. auto/feature
|
. auto/feature
|
||||||
|
|
||||||
|
|
||||||
ngx_feature="TCP_KEEPIDLE"
|
if [ -z "$NGX_HAVE_KEEPALIVE_TUNABLE" ]; then
|
||||||
ngx_feature_name="NGX_HAVE_KEEPALIVE_TUNABLE"
|
ngx_feature="TCP_KEEPIDLE"
|
||||||
ngx_feature_run=no
|
ngx_feature_name="NGX_HAVE_KEEPALIVE_TUNABLE"
|
||||||
ngx_feature_incs="#include <sys/socket.h>
|
ngx_feature_run=no
|
||||||
#include <netinet/in.h>
|
ngx_feature_incs="#include <sys/socket.h>
|
||||||
#include <netinet/tcp.h>"
|
#include <netinet/in.h>
|
||||||
ngx_feature_path=
|
#include <netinet/tcp.h>"
|
||||||
ngx_feature_libs=
|
ngx_feature_path=
|
||||||
ngx_feature_test="setsockopt(0, IPPROTO_TCP, TCP_KEEPIDLE, NULL, 0);
|
ngx_feature_libs=
|
||||||
setsockopt(0, IPPROTO_TCP, TCP_KEEPINTVL, NULL, 0);
|
ngx_feature_test="setsockopt(0, IPPROTO_TCP, TCP_KEEPIDLE, NULL, 0);
|
||||||
setsockopt(0, IPPROTO_TCP, TCP_KEEPCNT, NULL, 0)"
|
setsockopt(0, IPPROTO_TCP, TCP_KEEPINTVL, NULL, 0);
|
||||||
. auto/feature
|
setsockopt(0, IPPROTO_TCP, TCP_KEEPCNT, NULL, 0)"
|
||||||
|
. auto/feature
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
ngx_feature="TCP_FASTOPEN"
|
ngx_feature="TCP_FASTOPEN"
|
||||||
|
@ -772,6 +772,7 @@ ngx_configure_listening_sockets(ngx_cycle_t *cycle)
|
|||||||
value *= NGX_KEEPALIVE_FACTOR;
|
value *= NGX_KEEPALIVE_FACTOR;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef TCP_KEEPIDLE
|
||||||
if (setsockopt(ls[i].fd, IPPROTO_TCP, TCP_KEEPIDLE,
|
if (setsockopt(ls[i].fd, IPPROTO_TCP, TCP_KEEPIDLE,
|
||||||
(const void *) &value, sizeof(int))
|
(const void *) &value, sizeof(int))
|
||||||
== -1)
|
== -1)
|
||||||
@ -780,6 +781,17 @@ ngx_configure_listening_sockets(ngx_cycle_t *cycle)
|
|||||||
"setsockopt(TCP_KEEPIDLE, %d) %V failed, ignored",
|
"setsockopt(TCP_KEEPIDLE, %d) %V failed, ignored",
|
||||||
value, &ls[i].addr_text);
|
value, &ls[i].addr_text);
|
||||||
}
|
}
|
||||||
|
#elif defined(TCP_KEEPALIVE)
|
||||||
|
/* The equivalent of TCP_KEEPIDLE on Darwin is TCP_KEEPALIVE. */
|
||||||
|
if (setsockopt(ls[i].fd, IPPROTO_TCP, TCP_KEEPALIVE,
|
||||||
|
(const void *) &value, sizeof(int))
|
||||||
|
== -1)
|
||||||
|
{
|
||||||
|
ngx_log_error(NGX_LOG_ALERT, cycle->log, ngx_socket_errno,
|
||||||
|
"setsockopt(TCP_KEEPALIVE, %d) %V failed, ignored",
|
||||||
|
value, &ls[i].addr_text);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ls[i].keepintvl) {
|
if (ls[i].keepintvl) {
|
||||||
|
Loading…
Reference in New Issue
Block a user