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.
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.