In connecting state, shutdown must not be forwarded or scheduled because
otherwise this will prevent any connection retries. Indeed, if a EOS is
reported by the mux during the connection establishment, this should be
handled by the stream to eventually retries. If the write side is closed
first, this will not be possible because the stconn will be switched in DIS
state. If the shut is scheduled because pending data are blocked, the same
may happen, depending on the abort-on-close option.
This patch should be slowly be backported as far as 2.4. But an observation
period is mandatory. On 2.4, the patch must be adapted to use the
stream-interface API.
ic->flags |= CF_READ_EVENT;
sc_ep_report_read_activity(sc);
- if (!sc_state_in(sc->state, SC_SB_CON|SC_SB_RDY|SC_SB_EST))
+ if (sc->state != SC_ST_EST)
return;
if (sc->flags & SC_FL_SHUT_DONE)
/* Note: on abort, we don't call the applet */
- if (!sc_state_in(sc->state, SC_SB_CON|SC_SB_RDY|SC_SB_EST))
+ if (sc->state != SC_ST_EST)
return;
if (sc->flags & SC_FL_SHUT_DONE) {