From: William Lallemand Date: Thu, 17 Feb 2022 11:52:09 +0000 (+0100) Subject: BUG/MINOR: httpclient: reinit flags in httpclient_start() X-Git-Tag: v2.6-dev2~116 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=5085bc3103e5a52f0d8909d13a6e36d24d2a6562;p=thirdparty%2Fhaproxy.git BUG/MINOR: httpclient: reinit flags in httpclient_start() When starting for the 2nd time a request from the same httpclient *hc context, the flags are not reinitialized and the httpclient will stop after the first call to the IO handler, because the END flag is always present. This patch also add a test before httpclient_start() to ensure we don't start a client already started. Must be backported in 2.5. --- diff --git a/src/http_client.c b/src/http_client.c index dacc326be6..c8576e7645 100644 --- a/src/http_client.c +++ b/src/http_client.c @@ -423,6 +423,13 @@ struct appctx *httpclient_start(struct httpclient *hc) int len; struct split_url out; + /* if the client was started and not ended, an applet is already + * running, we shouldn't try anything */ + if (httpclient_started(hc) && !httpclient_ended(hc)) + return NULL; + + hc->flags = 0; + /* parse URI and fill sockaddr_storage */ /* FIXME: use a resolver */ len = url2sa(istptr(hc->req.url), istlen(hc->req.url), &hc->dst, &out);