if (sc_oc(sc)->flags & CF_SHUTW) {
sc->state = SC_ST_DIS;
- __sc_strm(sc)->conn_exp = TICK_ETERNITY;
+ if (sc->flags & SC_FL_ISBACK)
+ __sc_strm(sc)->conn_exp = TICK_ETERNITY;
}
else if (sc->flags & SC_FL_NOHALF) {
/* we want to immediately forward this close to the write side */
sc->flags &= ~SC_FL_NOLINGER;
ic->flags |= CF_SHUTR;
ic->rex = TICK_ETERNITY;
- __sc_strm(sc)->conn_exp = TICK_ETERNITY;
+ if (sc->flags & SC_FL_ISBACK)
+ __sc_strm(sc)->conn_exp = TICK_ETERNITY;
}
/* note that if the task exists, it must unregister itself once it runs */
if (sc_oc(sc)->flags & CF_SHUTW) {
sc_conn_shut(sc);
sc->state = SC_ST_DIS;
- __sc_strm(sc)->conn_exp = TICK_ETERNITY;
+ if (sc->flags & SC_FL_ISBACK)
+ __sc_strm(sc)->conn_exp = TICK_ETERNITY;
}
else if (sc->flags & SC_FL_NOHALF) {
/* we want to immediately forward this close to the write side */
sc->flags &= ~SC_FL_NOLINGER;
ic->flags |= CF_SHUTR;
ic->rex = TICK_ETERNITY;
- __sc_strm(sc)->conn_exp = TICK_ETERNITY;
+ if (sc->flags & SC_FL_ISBACK)
+ __sc_strm(sc)->conn_exp = TICK_ETERNITY;
}
}
if (sc_oc(sc)->flags & CF_SHUTW) {
appctx_shut(__sc_appctx(sc));
sc->state = SC_ST_DIS;
- __sc_strm(sc)->conn_exp = TICK_ETERNITY;
+ if (sc->flags & SC_FL_ISBACK)
+ __sc_strm(sc)->conn_exp = TICK_ETERNITY;
}
else if (sc->flags & SC_FL_NOHALF) {
/* we want to immediately forward this close to the write side */
sc->flags &= ~SC_FL_NOLINGER;
ic->flags |= CF_SHUTR;
ic->rex = TICK_ETERNITY;
- __sc_strm(sc)->conn_exp = TICK_ETERNITY;
+ if (sc->flags & SC_FL_ISBACK)
+ __sc_strm(sc)->conn_exp = TICK_ETERNITY;
}
}
oc->wex = TICK_ETERNITY;
sc->state = SC_ST_DIS;
- __sc_strm(sc)->conn_exp = TICK_ETERNITY;
+ if (sc->flags & SC_FL_ISBACK)
+ __sc_strm(sc)->conn_exp = TICK_ETERNITY;
return;
}
if (!sc_state_in(sc->state, SC_SB_EST|SC_SB_DIS|SC_SB_CLO) &&
(conn->flags & CO_FL_WAIT_XPRT) == 0) {
- __sc_strm(sc)->conn_exp = TICK_ETERNITY;
+ if (sc->flags & SC_FL_ISBACK)
+ __sc_strm(sc)->conn_exp = TICK_ETERNITY;
oc->flags |= CF_WRITE_NULL;
if (sc->state == SC_ST_CON)
sc->state = SC_ST_RDY;