From 5895fa8ce05001b58b1804927ef2eef46c1e459e Mon Sep 17 00:00:00 2001 From: Christopher Faulet Date: Mon, 12 Feb 2024 22:29:06 +0100 Subject: [PATCH] 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. --- src/cli.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/src/cli.c b/src/cli.c index f5b5203bb..1d4537411 100644 --- a/src/cli.c +++ b/src/cli.c @@ -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; } -- 2.47.3