}
sc->flags &= ~SC_FL_NOLINGER;
- sc->flags |= SC_FL_ABRT_DONE;
+ if (!(sc->flags & (SC_FL_EOS|SC_FL_ABRT_DONE)))
+ sc->flags |= SC_FL_ABRT_DONE;
if (sc->flags & SC_FL_ISBACK)
__sc_strm(sc)->conn_exp = TICK_ETERNITY;
}
sc->flags &= ~SC_FL_NOLINGER;
- sc->flags |= SC_FL_ABRT_DONE;
+ if (!(sc->flags & (SC_FL_EOS|SC_FL_ABRT_DONE)))
+ sc->flags |= SC_FL_ABRT_DONE;
if (sc->flags & SC_FL_ISBACK)
__sc_strm(sc)->conn_exp = TICK_ETERNITY;
}
}
sc->flags &= ~SC_FL_NOLINGER;
- sc->flags |= SC_FL_ABRT_DONE;
+ if (!(sc->flags & (SC_FL_EOS|SC_FL_ABRT_DONE)))
+ sc->flags |= SC_FL_ABRT_DONE;
if (sc->flags & SC_FL_ISBACK)
__sc_strm(sc)->conn_exp = TICK_ETERNITY;
}