* sockets, socket pairs, andoccasionally TCP connections on the
* loopback on a heavily loaded system.
*/
- if (srv_conn->flags & CO_FL_ERROR)
+ if (srv_conn->flags & CO_FL_ERROR) {
sc_ep_set(s->scb, SE_FL_ERROR);
+ s->scb->flags |= SC_FL_ERROR;
+ }
/* If we had early data, and the handshake ended, then
* we can remove the flag, and attempt to wake the task up,
sc_abort(sc);
sc_shutdown(sc);
sc_ep_set(sc, SE_FL_ERROR|SE_FL_EOS);
+ sc->flags |= SC_FL_ERROR;
s->logs.t_queue = tv_ms_elapsed(&s->logs.tv_accept, &now);
*/
sc->state = SC_ST_CER;
sc_ep_clr(sc, SE_FL_ERROR);
+ sc->flags &= ~SC_FL_ERROR;
back_handle_st_cer(s);
DBG_TRACE_STATE("connection error, retry", STRM_EV_STRM_PROC|STRM_EV_CS_ST|STRM_EV_STRM_ERR, s);
sc_abort(sc);
sc_shutdown(sc);
sc_ep_set(sc, SE_FL_ERROR|SE_FL_EOS);
+ sc->flags |= SC_FL_ERROR;
s->conn_err_type = STRM_ET_CONN_RES;
sc->state = SC_ST_CLO;
if (s->srv_error)
sc_abort(sc);
sc_shutdown(sc);
sc_ep_set(sc, SE_FL_ERROR|SE_FL_EOS);
+ sc->flags |= SC_FL_ERROR;
if (!s->conn_err_type)
s->conn_err_type = STRM_ET_CONN_OTHER;
sc->state = SC_ST_CLO;
/* shutw is enough to stop a connecting socket */
sc_shutdown(sc);
sc_ep_set(sc, SE_FL_ERROR|SE_FL_EOS);
+ sc->flags |= SC_FL_ERROR;
sc->state = SC_ST_CLO;
if (s->srv_error)
/* shutw is enough to stop a connecting socket */
sc_shutdown(sc);
sc_ep_set(sc, SE_FL_ERROR|SE_FL_EOS);
+ sc->flags |= SC_FL_ERROR;
sc->state = SC_ST_CLO;
if (s->srv_error)