mirror of
https://git.haproxy.org/git/haproxy.git/
synced 2025-08-06 23:27:04 +02:00
BUG/MEDIUM: stconn: Don't rearm the read expiration date if EOI was reached
At the stream level, the read expiration date is unset if a shutr was received but not if the end of input was reached. If we know no more data are excpected, there is no reason to let the read expiration date armed, except to respect clientfin/serverfin timeout on some circumstances. This patch could slowly be backported as far as 2.2.
This commit is contained in:
parent
af124360ed
commit
407210a34d
@ -1041,7 +1041,7 @@ void sc_update_rx(struct stconn *sc)
|
||||
else
|
||||
sc_will_read(sc);
|
||||
|
||||
if (sc->flags & (SC_FL_WONT_READ|SC_FL_NEED_BUFF|SC_FL_NEED_ROOM))
|
||||
if ((ic->flags & CF_EOI) || sc->flags & (SC_FL_WONT_READ|SC_FL_NEED_BUFF|SC_FL_NEED_ROOM))
|
||||
ic->rex = TICK_ETERNITY;
|
||||
else if (!(ic->flags & CF_READ_NOEXP) && !tick_isset(ic->rex))
|
||||
ic->rex = tick_add_ifset(now_ms, ic->rto);
|
||||
@ -1189,7 +1189,7 @@ static void sc_notify(struct stconn *sc)
|
||||
sc_chk_rcv(sc);
|
||||
sc_chk_rcv(sco);
|
||||
|
||||
if (ic->flags & CF_SHUTR || sc_ep_test(sc, SE_FL_APPLET_NEED_CONN) ||
|
||||
if (ic->flags & (CF_EOI|CF_SHUTR) || sc_ep_test(sc, SE_FL_APPLET_NEED_CONN) ||
|
||||
(sc->flags & (SC_FL_WONT_READ|SC_FL_NEED_BUFF|SC_FL_NEED_ROOM))) {
|
||||
ic->rex = TICK_ETERNITY;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user