]> git.ipfire.org Git - thirdparty/haproxy.git/commitdiff
BUG/MINOR: hlua: Fix I/O handler of lua CLI commands to not rely on the SC
authorChristopher Faulet <cfaulet@haproxy.com>
Wed, 23 Apr 2025 14:32:55 +0000 (16:32 +0200)
committerChristopher Faulet <cfaulet@haproxy.com>
Thu, 24 Apr 2025 13:09:37 +0000 (15:09 +0200)
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

index 05bf3dda533f5a5007c5c488c3716ee52597e618..f3f41aae51fb068e6c022eec5662215305529047 100644 (file)
@@ -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. */