case PROMEX_ST_END:
if (!(res->flags & CF_SHUTR)) {
- res->flags |= CF_READ_EVENT;
sc_shutr(sc);
}
}
return;
error:
- res->flags |= CF_READ_EVENT;
sc_shutr(sc);
sc_shutw(sc);
goto out;
sc_shutr(sc);
sc_shutw(sc);
sc_ep_set(sc, SE_FL_ERROR|SE_FL_EOS);
- req->flags |= CF_WRITE_EVENT;
s->logs.t_queue = tv_ms_elapsed(&s->logs.tv_accept, &now);
sc_shutr(sc);
sc_shutw(sc);
sc_ep_set(sc, SE_FL_ERROR|SE_FL_EOS);
- s->req.flags |= CF_WRITE_EVENT;
s->conn_err_type = STRM_ET_CONN_RES;
sc->state = SC_ST_CLO;
if (s->srv_error)
sc_shutr(sc);
sc_shutw(sc);
sc_ep_set(sc, SE_FL_ERROR|SE_FL_EOS);
- s->req.flags |= CF_WRITE_EVENT;
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_shutw(sc);
sc_ep_set(sc, SE_FL_ERROR|SE_FL_EOS);
- s->req.flags |= CF_WRITE_EVENT;
- s->res.flags |= CF_READ_EVENT;
sc->state = SC_ST_CLO;
if (s->srv_error)
/* shutw is enough to stop a connecting socket */
sc_shutw(sc);
sc_ep_set(sc, SE_FL_ERROR|SE_FL_EOS);
- s->req.flags |= CF_WRITE_EVENT;
- s->res.flags |= CF_READ_EVENT;
sc->state = SC_ST_CLO;
if (s->srv_error)
}
end:
- if (!(res->flags & CF_SHUTR) && appctx->st0 == HTX_CACHE_END) {
- res->flags |= CF_READ_EVENT;
+ if (!(res->flags & CF_SHUTR) && appctx->st0 == HTX_CACHE_END)
sc_shutr(sc);
- }
out:
total = res_htx->data - total;
* on the response buffer.
*/
sc_shutr(sc);
- res->flags |= CF_READ_EVENT;
}
out:
close:
sc_shutw(sc);
sc_shutr(sc);
- sc_ic(sc)->flags |= CF_READ_EVENT;
}
void dns_queries_flush(struct dns_session *ds)
sc_shutw(sc);
sc_shutr(sc);
- sc_ic(sc)->flags |= CF_READ_EVENT;
}
/* Destroy the task attached to this applet */
sc_shutw(sc);
sc_shutr(sc);
- sc_ic(sc)->flags |= CF_READ_EVENT;
__fallthrough;
case SPOE_APPCTX_ST_END:
if (ctx->die) {
sc_shutw(sc);
sc_shutr(sc);
- sc_ic(sc)->flags |= CF_READ_EVENT;
notification_wake(&ctx->wake_on_read);
notification_wake(&ctx->wake_on_write);
stream_shutdown(__sc_strm(sc), SF_ERR_KILLED);
struct hlua_tcp_ctx *tcp_ctx = ctx->svcctx;
struct stconn *sc = appctx_sc(ctx);
struct stream *strm = __sc_strm(sc);
- struct channel *res = sc_ic(sc);
struct act_rule *rule = ctx->rule;
struct proxy *px = strm->be;
struct hlua *hlua = tcp_ctx->hlua;
/* eat the whole request */
co_skip(sc_oc(sc), co_data(sc_oc(sc)));
- res->flags |= CF_READ_EVENT;
sc_shutr(sc);
return;
done:
if (http_ctx->flags & APPLET_DONE) {
- if (!(res->flags & CF_SHUTR)) {
- res->flags |= CF_READ_EVENT;
+ if (!(res->flags & CF_SHUTR))
sc_shutr(sc);
- }
/* eat the whole request */
if (co_data(req)) {
close:
sc_shutw(sc);
sc_shutr(sc);
-
- sc_ic(sc)->flags |= CF_READ_EVENT;
-
return;
}
}
sc_shutw(sc);
sc_shutr(sc);
- sc_ic(sc)->flags |= CF_READ_EVENT;
goto out;
}
}
close:
sc_shutw(sc);
sc_shutr(sc);
- sc_ic(sc)->flags |= CF_READ_EVENT;
}
/*
close:
sc_shutw(sc);
sc_shutr(sc);
- sc_ic(sc)->flags |= CF_READ_EVENT;
}
void __sink_forward_session_deinit(struct sink_forward_target *sft)
}
if (appctx->st0 == STAT_HTTP_END) {
- if (!(res->flags & CF_SHUTR)) {
- res->flags |= CF_READ_EVENT;
+ if (!(res->flags & CF_SHUTR))
sc_shutr(sc);
- }
/* eat the whole request */
if (co_data(req)) {
struct channel *ic = sc_ic(sc);
if (ic->flags & CF_SHUTR)
- return;
- ic->flags |= CF_SHUTR;
+
+ ic->flags |= CF_SHUTR|CF_READ_EVENT;
sc_ep_report_read_activity(sc);
sc_ep_reset_rex(sc);
oc->flags &= ~CF_SHUTW_NOW;
if (oc->flags & CF_SHUTW)
return;
- oc->flags |= CF_SHUTW;
+ oc->flags |= CF_SHUTW|CF_WRITE_EVENT;
sc_ep_reset_wex(sc);
if (tick_isset(sc->hcto)) {
if (ic->flags & CF_SHUTR)
return;
- ic->flags |= CF_SHUTR;
+ ic->flags |= CF_SHUTR|CF_READ_EVENT;
sc_ep_reset_rex(sc);
if (!sc_state_in(sc->state, SC_SB_CON|SC_SB_RDY|SC_SB_EST))
oc->flags &= ~CF_SHUTW_NOW;
if (oc->flags & CF_SHUTW)
return;
- oc->flags |= CF_SHUTW;
+ oc->flags |= CF_SHUTW|CF_WRITE_EVENT;
sc_ep_reset_wex(sc);
if (tick_isset(sc->hcto)) {
if (ic->flags & CF_SHUTR)
return;
- ic->flags |= CF_SHUTR;
+ ic->flags |= CF_SHUTR|CF_READ_EVENT;
sc_ep_reset_rex(sc);
/* Note: on shutr, we don't call the applet */
oc->flags &= ~CF_SHUTW_NOW;
if (oc->flags & CF_SHUTW)
return;
- oc->flags |= CF_SHUTW;
+ oc->flags |= CF_SHUTW|CF_WRITE_EVENT;
sc_ep_reset_wex(sc);
if (tick_isset(sc->hcto)) {
if (ic->flags & CF_SHUTR)
return;
- ic->flags |= CF_SHUTR;
+ ic->flags |= CF_SHUTR|CF_READ_EVENT;
sc_ep_report_read_activity(sc);
sc_ep_reset_rex(sc);
ret = 1;
else if (sc_ep_test(sc, SE_FL_EOS)) {
/* we received a shutdown */
- ic->flags |= CF_READ_EVENT;
if (ic->flags & CF_AUTO_CLOSE)
channel_shutw_now(ic);
sc_conn_read0(sc);
*/
if (sc_ep_test(sc, SE_FL_EOS) && !(ic->flags & CF_SHUTR)) {
/* we received a shutdown */
- ic->flags |= CF_READ_EVENT;
if (ic->flags & CF_AUTO_CLOSE)
channel_shutw_now(ic);
sc_conn_read0(sc);