From: Willy Tarreau Date: Thu, 28 Jan 2010 14:01:20 +0000 (+0100) Subject: [MINOR] http: disable keep-alive when process is going down X-Git-Tag: v1.4-rc1~32 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=c3e8b25c795461331b142bf0af82e21d7771f68a;p=thirdparty%2Fhaproxy.git [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. --- diff --git a/src/proto_http.c b/src/proto_http.c index 44c082d67d..d3c2b52f86 100644 --- a/src/proto_http.c +++ b/src/proto_http.c @@ -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_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 */ - !(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; }