mirror of
https://git.haproxy.org/git/haproxy.git/
synced 2025-08-06 15:17:01 +02:00
MEDIUM: promex: Use the sedesc to report and detect end of processing
Just like for other applets, we now use the SE descriptor instead of the channel to report error and end-of-stream.
This commit is contained in:
parent
df15a5d1f3
commit
d4eacb3683
@ -1486,7 +1486,6 @@ static int promex_parse_uri(struct appctx *appctx, struct stconn *sc)
|
||||
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;
|
||||
}
|
||||
|
||||
@ -1539,7 +1538,8 @@ static void promex_appctx_handle_io(struct appctx *appctx)
|
||||
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. */
|
||||
@ -1596,9 +1596,7 @@ static void promex_appctx_handle_io(struct appctx *appctx)
|
||||
__fallthrough;
|
||||
|
||||
case PROMEX_ST_END:
|
||||
if (!(res->flags & CF_SHUTR)) {
|
||||
sc_shutr(sc);
|
||||
}
|
||||
se_fl_set(appctx->sedesc, SE_FL_EOS);
|
||||
}
|
||||
|
||||
out:
|
||||
@ -1612,8 +1610,7 @@ static void promex_appctx_handle_io(struct appctx *appctx)
|
||||
return;
|
||||
|
||||
error:
|
||||
sc_shutr(sc);
|
||||
sc_shutw(sc);
|
||||
se_fl_set(appctx->sedesc, SE_FL_ERROR);
|
||||
goto out;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user