memcpy(res->buf.area, b_head(err), b_data(err));
res_htx = htx_from_buf(&res->buf);
channel_add_input(res, res_htx->data);
- appctx->st0 = PROMEX_ST_END;
return -1;
}
int ret;
res_htx = htx_from_buf(&res->buf);
- if (unlikely(sc->state == SC_ST_DIS || sc->state == SC_ST_CLO))
+
+ if (unlikely(se_fl_test(appctx->sedesc, (SE_FL_EOS|SE_FL_ERROR|SE_FL_SHR|SE_FL_SHW))))
goto out;
/* Check if the input buffer is available. */
__fallthrough;
case PROMEX_ST_END:
- if (!(res->flags & CF_SHUTR)) {
- sc_shutr(sc);
- }
+ se_fl_set(appctx->sedesc, SE_FL_EOS);
}
out:
return;
error:
- sc_shutr(sc);
- sc_shutw(sc);
+ se_fl_set(appctx->sedesc, SE_FL_ERROR);
goto out;
}