From 3de09d5c7ed4f107ddb97fbe9ec8604e654c34d6 Mon Sep 17 00:00:00 2001 From: William Lallemand Date: Tue, 11 Dec 2018 16:10:56 +0100 Subject: [PATCH] BUG/MINOR: cli: wait for payload data even without prompt During a payload transfer, we need to wait for the data even when we are not in interactive mode. Indeed, the data could be received line per line progressively instead of in one recv. Previously the CLI was doing a SHUTW just after the first line if it was not in interactive mode. We now check if we are in payload mode to do a SHUTW. Should be backported in 1.8. --- src/cli.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/cli.c b/src/cli.c index c6d226557..3af5c6ac8 100644 --- a/src/cli.c +++ b/src/cli.c @@ -758,7 +758,8 @@ static void cli_io_handler(struct appctx *appctx) * buffer is empty. This still allows pipelined requests * to be sent in non-interactive mode. */ - if ((res->flags & (CF_SHUTW|CF_SHUTW_NOW)) || (!(appctx->st1 & APPCTX_CLI_ST1_PROMPT) && !co_data(req))) { + if (((res->flags & (CF_SHUTW|CF_SHUTW_NOW))) || + (!(appctx->st1 & APPCTX_CLI_ST1_PROMPT) && !co_data(req) && (!(appctx->st1 & APPCTX_CLI_ST1_PAYLOAD)))) { appctx->st0 = CLI_ST_END; continue; }