From: Christopher Faulet Date: Thu, 29 Nov 2018 14:23:46 +0000 (+0100) Subject: MINOR: proto_htx: Use conn_stream's info to set t_idle duration when possible X-Git-Tag: v1.9-dev9~82 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=870aad91166e8f6f2f8853c1caef4cd2cb664204;p=thirdparty%2Fhaproxy.git MINOR: proto_htx: Use conn_stream's info to set t_idle duration when possible On the client side, if si_get_cs_info() returns valid info, we use it to set t_idle duration. Otherwise, we compute it using the stream's logs info. --- diff --git a/src/proto_htx.c b/src/proto_htx.c index 00712d3cd8..0e1abb6b7d 100644 --- a/src/proto_htx.c +++ b/src/proto_htx.c @@ -98,8 +98,13 @@ int htx_wait_for_request(struct stream *s, struct channel *req, int an_bit) s->srv_error = http_return_srv_error; /* If there is data available for analysis, log the end of the idle time. */ - if (c_data(req) && s->logs.t_idle == -1) - s->logs.t_idle = tv_ms_elapsed(&s->logs.tv_accept, &now) - s->logs.t_handshake; + if (c_data(req) && s->logs.t_idle == -1) { + const struct cs_info *csinfo = si_get_cs_info(objt_cs(s->si[0].end)); + + s->logs.t_idle = ((csinfo) + ? csinfo->t_idle + : tv_ms_elapsed(&s->logs.tv_accept, &now) - s->logs.t_handshake); + } /* * Now we quickly check if we have found a full valid request.