MINOR: cli: No longer check SC for shutdown to interrupt wait command

Thanks to the previous patch ("MEDIUM: applet: Add notion of shutdown for
write for applets"), it is no longer necessary to check SC flags to detect
shutdowns to interrupt the wait command. It is possible to remove this ugly
workaround. In addition, we only test the SE for shutdown because end of
stream and error are already checked by the CLI I/O handler. And it is no
longer necessary to remove output data from the channel's buffer because
shutdown are not reported if there are remaining outgoing data.

Of course, if the "wait" command is backported, the commit above and this
one must be backported too.
This commit is contained in:
Christopher Faulet 2024-02-12 22:29:06 +01:00
parent 4a78f766ff
commit 5895fa8ce0

View File

@ -2093,7 +2093,6 @@ static int cli_parse_wait(char **args, char *payload, struct appctx *appctx, voi
static int cli_io_handler_wait(struct appctx *appctx)
{
struct cli_wait_ctx *ctx = appctx->svcctx;
struct stconn *sc = appctx_sc(appctx);
uint total, elapsed, left, wait;
int ret;
@ -2147,12 +2146,11 @@ static int cli_io_handler_wait(struct appctx *appctx)
wait:
/* Stop waiting upon close/abort/error */
if (unlikely((sc->flags & SC_FL_SHUT_DONE) ||
se_fl_test(appctx->sedesc, (SE_FL_EOS|SE_FL_ERROR|SE_FL_SHR|SE_FL_SHW)))) {
co_skip(sc_oc(sc), sc_oc(sc)->output);
if (unlikely(se_fl_test(appctx->sedesc, SE_FL_SHW))) {
ctx->error = CLI_WAIT_ERR_INTR;
return 1;
}
return 0;
}