From e406fe16ea0c96f657f7bf6ffb67fb750c08350c Mon Sep 17 00:00:00 2001 From: Christopher Faulet Date: Wed, 23 Apr 2025 16:32:55 +0200 Subject: [PATCH] BUG/MINOR: hlua: Fix I/O handler of lua CLI commands to not rely on the SC Thanks to the CLI refactoring ("MAJOR: cli: Refacor parsing and execution of pipelined commands"), it is possible to fix the I/O handler function used by lua CLI commands to no longer use the SC. When the applet API was refactored to no longer manipulate the channels or the stream-connectors, this part was missed. However, without the patch above, it could not be fixed. It is now possible so let's do it. This patch must not be backported becaues it depends on refactoring of the CLI applet. --- src/hlua.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/hlua.c b/src/hlua.c index 05bf3dda5..f3f41aae5 100644 --- a/src/hlua.c +++ b/src/hlua.c @@ -11895,11 +11895,9 @@ static int hlua_cli_io_handler_fct(struct appctx *appctx) { struct hlua_cli_ctx *ctx = appctx->svcctx; struct hlua *hlua; - struct stconn *sc; struct hlua_function *fcn; hlua = ctx->hlua; - sc = appctx_sc(appctx); fcn = ctx->fcn; /* Execute the function. */ @@ -11913,10 +11911,13 @@ static int hlua_cli_io_handler_fct(struct appctx *appctx) case HLUA_E_AGAIN: /* We want write. */ if (HLUA_IS_WAKERESWR(hlua)) - sc_need_room(sc, -1); + applet_have_more_data(appctx); /* Set the timeout. */ if (hlua->wake_time != TICK_ETERNITY) task_schedule(hlua->task, hlua->wake_time); + + applet_will_consume(appctx); + applet_expect_data(appctx); return 0; /* finished with error. */