mirror of
https://github.com/nginx/nginx.git
synced 2024-11-27 23:49:00 +08:00
On DragonFlyBSD, TCP_KEEPIDLE and TCP_KEEPINTVL are in msecs.
Based on a patch by Sepherosa Ziehau.
This commit is contained in:
parent
690e2b33aa
commit
02a077b827
@ -515,24 +515,36 @@ ngx_configure_listening_sockets(ngx_cycle_t *cycle)
|
||||
#if (NGX_HAVE_KEEPALIVE_TUNABLE)
|
||||
|
||||
if (ls[i].keepidle) {
|
||||
value = ls[i].keepidle;
|
||||
|
||||
#if (NGX_KEEPALIVE_FACTOR)
|
||||
value *= NGX_KEEPALIVE_FACTOR;
|
||||
#endif
|
||||
|
||||
if (setsockopt(ls[i].fd, IPPROTO_TCP, TCP_KEEPIDLE,
|
||||
(const void *) &ls[i].keepidle, sizeof(int))
|
||||
(const void *) &value, sizeof(int))
|
||||
== -1)
|
||||
{
|
||||
ngx_log_error(NGX_LOG_ALERT, cycle->log, ngx_socket_errno,
|
||||
"setsockopt(TCP_KEEPIDLE, %d) %V failed, ignored",
|
||||
ls[i].keepidle, &ls[i].addr_text);
|
||||
value, &ls[i].addr_text);
|
||||
}
|
||||
}
|
||||
|
||||
if (ls[i].keepintvl) {
|
||||
value = ls[i].keepintvl;
|
||||
|
||||
#if (NGX_KEEPALIVE_FACTOR)
|
||||
value *= NGX_KEEPALIVE_FACTOR;
|
||||
#endif
|
||||
|
||||
if (setsockopt(ls[i].fd, IPPROTO_TCP, TCP_KEEPINTVL,
|
||||
(const void *) &ls[i].keepintvl, sizeof(int))
|
||||
(const void *) &value, sizeof(int))
|
||||
== -1)
|
||||
{
|
||||
ngx_log_error(NGX_LOG_ALERT, cycle->log, ngx_socket_errno,
|
||||
"setsockopt(TCP_KEEPINTVL, %d) %V failed, ignored",
|
||||
ls[i].keepintvl, &ls[i].addr_text);
|
||||
value, &ls[i].addr_text);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -94,6 +94,11 @@ typedef struct aiocb ngx_aiocb_t;
|
||||
#define NGX_LISTEN_BACKLOG -1
|
||||
|
||||
|
||||
#ifdef __DragonFly__
|
||||
#define NGX_KEEPALIVE_FACTOR 1000
|
||||
#endif
|
||||
|
||||
|
||||
#if (__FreeBSD_version < 430000 || __FreeBSD_version < 500012)
|
||||
|
||||
pid_t rfork_thread(int flags, void *stack, int (*func)(void *arg), void *arg);
|
||||
|
Loading…
Reference in New Issue
Block a user