[core] allow keep-alives in one-shot mode (#3042)

x-ref:
  "lighttpd on demand"
  https://redmine.lighttpd.net/issues/3042
personal/stbuehler/tests-path
Glenn Strauss 2020-11-30 19:32:23 -05:00
parent f279ae7d50
commit 2d55953e75
1 changed files with 14 additions and 2 deletions

View File

@ -915,6 +915,17 @@ static int server_graceful_state_bg (server *srv) {
return 1;
}
__attribute_cold__
__attribute_noinline__
static void server_graceful_shutdown_maint (server *srv) {
if (oneshot_fd) {
/* permit keep-alive on one-shot connections until graceful_expire_ts */
if (!srv->graceful_expire_ts) return;
if (srv->graceful_expire_ts >= log_epoch_secs) return;
}
connection_graceful_shutdown_maint(srv);
}
__attribute_cold__
static void server_graceful_state (server *srv) {
@ -927,7 +938,7 @@ static void server_graceful_state (server *srv) {
if (srv->graceful_expire_ts)
srv->graceful_expire_ts += log_epoch_secs;
}
connection_graceful_shutdown_maint(srv);
server_graceful_shutdown_maint(srv);
}
if (2 == srv->sockets_disabled || 3 == srv->sockets_disabled) {
@ -1824,7 +1835,8 @@ static void server_handle_sigalrm (server * const srv, time_t min_ts, time_t las
/* reset global/aggregate rate limit counters */
config_reset_config_bytes_sec(srv->config_data_base);
/* if graceful_shutdown, accelerate cleanup of recently completed request/responses */
if (graceful_shutdown && !srv_shutdown) connection_graceful_shutdown_maint(srv);
if (graceful_shutdown && !srv_shutdown)
server_graceful_shutdown_maint(srv);
connection_periodic_maint(srv, min_ts);
}