From: Christopher Faulet Date: Fri, 5 May 2023 08:56:00 +0000 (+0200) Subject: MINOR: cli: Use applet API to write output message X-Git-Tag: v2.8-dev10~43 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=e8ee27b0fd8e98364e579f9efc9d0a7d6261b6ec;p=thirdparty%2Fhaproxy.git MINOR: cli: Use applet API to write output message Instead of using the channel API to to write output message from the CLI applet, we use the applet API. This way, the applet does not need to take care to request more room it it fails to put its message into the channel's buffer. --- diff --git a/src/cli.c b/src/cli.c index 0ec005a370..c26840a469 100644 --- a/src/cli.c +++ b/src/cli.c @@ -845,12 +845,12 @@ fail: } /* prepends then outputs the argument msg with a syslog-type severity depending on severity_output value */ -static int cli_output_msg(struct channel *chn, const char *msg, int severity, int severity_output) +static int cli_output_msg(struct appctx *appctx, const char *msg, int severity, int severity_output) { struct buffer *tmp; if (likely(severity_output == CLI_SEVERITY_NONE)) - return ci_putblk(chn, msg, strlen(msg)); + return applet_putstr(appctx, msg); tmp = get_trash_chunk(); chunk_reset(tmp); @@ -873,7 +873,7 @@ static int cli_output_msg(struct channel *chn, const char *msg, int severity, in } chunk_appendf(tmp, "%s", msg); - return ci_putblk(chn, tmp->area, strlen(tmp->area)); + return applet_putchk(appctx, tmp); } /* This I/O handler runs as an applet embedded in a stream connector. It is @@ -1082,7 +1082,7 @@ static void cli_io_handler(struct appctx *appctx) msg = "Internal error.\n"; } - if (cli_output_msg(res, msg, sev, cli_get_severity_output(appctx)) != -1) { + if (cli_output_msg(appctx, msg, sev, cli_get_severity_output(appctx)) != -1) { if (appctx->st0 == CLI_ST_PRINT_DYN || appctx->st0 == CLI_ST_PRINT_DYNERR) { ha_free(&ctx->err); @@ -1093,8 +1093,6 @@ static void cli_io_handler(struct appctx *appctx) } appctx->st0 = CLI_ST_PROMPT; } - else - sc_need_room(sc); break; case CLI_ST_CALLBACK: /* use custom pointer */