[MINOR] http: disable keep-alive when process is going down

Krzysztof Oledzki suggested to disable keep-alive when a process
is going down due to a reload, in order to avoid ever-lasting
sessions. This is a simple and very efficient solution as it
ensures that at most one more request will be handled on a
keep-alive connection after the process has received a SIGUSR1
signal.
This commit is contained in:
Willy Tarreau 2010-01-28 15:01:20 +01:00
parent 910ba4bb8b
commit c3e8b25c79

View File

@ -2844,7 +2844,8 @@ int http_process_req_common(struct session *s, struct buffer *req, int an_bit, s
((txn->flags & TX_HDR_CONN_CLO) || /* "connection: close" */ ((txn->flags & TX_HDR_CONN_CLO) || /* "connection: close" */
(txn->flags & (TX_REQ_VER_11|TX_HDR_CONN_KAL)) == 0 || /* no "connection: k-a" in 1.0 */ (txn->flags & (TX_REQ_VER_11|TX_HDR_CONN_KAL)) == 0 || /* no "connection: k-a" in 1.0 */
((s->fe->options|s->be->options) & PR_O_HTTP_CLOSE) || /* httpclose + any = forceclose */ ((s->fe->options|s->be->options) & PR_O_HTTP_CLOSE) || /* httpclose + any = forceclose */
!(txn->flags & TX_REQ_XFER_LEN))) /* no length known => close */ !(txn->flags & TX_REQ_XFER_LEN) || /* no length known => close */
s->fe->state == PR_STSTOPPED)) /* frontend is stopping */
txn->flags = (txn->flags & ~TX_CON_WANT_MSK) | TX_CON_WANT_CLO; txn->flags = (txn->flags & ~TX_CON_WANT_MSK) | TX_CON_WANT_CLO;
} }