return se->flags;
}
+/* sets SE_FL_ERROR or SE_FL_ERR_PENDING on the endpoint */
+static inline void se_fl_set_error(struct sedesc *se)
+{
+ if (se_fl_test(se, SE_FL_EOS))
+ se_fl_set(se, SE_FL_ERROR);
+ else
+ se_fl_set(se, SE_FL_ERR_PENDING);
+}
+
/* stream connector version */
static forceinline void sc_ep_zero(struct stconn *sc)
{
sc_conn_shutr(cs, CO_SHR_DRAIN);
}
-/* sets SE_FL_ERROR or SE_FL_ERR_PENDING on the endpoint */
-static inline void cs_ep_set_error(struct sedesc *endp)
-{
- if (se_fl_test(endp, SE_FL_EOS))
- se_fl_set(endp, SE_FL_ERROR);
- else
- se_fl_set(endp, SE_FL_ERR_PENDING);
-}
-
/* Returns non-zero if the stream connector's Rx path is blocked */
static inline int cs_rx_blocked(const struct stconn *cs)
{
fstrm->state = FCGI_SS_ERROR;
TRACE_STATE("switching to ERROR", FCGI_EV_FSTRM_ERR, fstrm->fconn->conn, fstrm);
}
- cs_ep_set_error(fstrm->endp);
+ se_fl_set_error(fstrm->endp);
}
}
if (fstrm->state == FCGI_SS_ERROR) {
TRACE_DEVEL("reporting error to the app-layer stream", FCGI_EV_STRM_SEND|FCGI_EV_FSTRM_ERR|FCGI_EV_STRM_ERR, fconn->conn, fstrm);
- cs_ep_set_error(fstrm->endp);
+ se_fl_set_error(fstrm->endp);
if (!(fstrm->flags & FCGI_SF_BEGIN_SENT) || fcgi_strm_send_abort(fconn, fstrm))
fcgi_strm_close(fstrm);
}
h2s->errcode = err;
if (h2s->st < H2_SS_ERROR)
h2s->st = H2_SS_ERROR;
- cs_ep_set_error(h2s->endp);
+ se_fl_set_error(h2s->endp);
}
}
h2s_close(h2s);
if (h2s_sc(h2s)) {
- cs_ep_set_error(h2s->endp);
+ se_fl_set_error(h2s->endp);
h2s_alert(h2s);
}
/* RST are sent similarly to frame acks */
if (h2s->st == H2_SS_ERROR || h2s->flags & H2_SF_RST_RCVD) {
TRACE_DEVEL("reporting RST/error to the app-layer stream", H2_EV_H2S_SEND|H2_EV_H2S_ERR|H2_EV_STRM_ERR, h2s->h2c->conn, h2s);
- cs_ep_set_error(h2s->endp);
+ se_fl_set_error(h2s->endp);
if (h2s_send_rst_stream(h2s->h2c, h2s) > 0)
h2s_close(h2s);
}