mirror of
https://git.haproxy.org/git/haproxy.git/
synced 2026-05-04 20:46:11 +02:00
BUG/MINOR: stream: Fix test on channels flags to set clientfin/serverfin touts
There is a bug in a way the channels flags are checked to set clientfin or serverfin timeout. Indeed, to set the clientfin timeout, the request channel must be shut for reads (CF_SHUTR) or the response channel must be shut for writes (CF_SHUTW). As the opposite, the serverfin timeout must be set when the request channel is shut for writes (CF_SHUTW) or the response channel is shut for reads (CF_SHUTR). It is a 2.8-dev specific issue. No backport needed.
This commit is contained in:
parent
c665bb5637
commit
947b2e5922
@ -2424,9 +2424,9 @@ struct task *process_stream(struct task *t, void *context, unsigned int state)
|
||||
if (!req->analysers && s->tunnel_timeout) {
|
||||
scf->ioto = scb->ioto = s->tunnel_timeout;
|
||||
|
||||
if ((req->flags & (CF_SHUTR|CF_SHUTW)) && tick_isset(sess->fe->timeout.clientfin))
|
||||
if (((req->flags & CF_SHUTR) || (res->flags & CF_SHUTW)) && tick_isset(sess->fe->timeout.clientfin))
|
||||
scf->ioto = sess->fe->timeout.clientfin;
|
||||
if ((req->flags & (CF_SHUTR|CF_SHUTW)) && tick_isset(s->be->timeout.serverfin))
|
||||
if (((res->flags & CF_SHUTR) || (req->flags & CF_SHUTW)) && tick_isset(s->be->timeout.serverfin))
|
||||
scb->ioto = s->be->timeout.serverfin;
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user