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.
This commit is contained in:
William Lallemand 2022-02-17 12:52:09 +01:00
parent d0de677682
commit 5085bc3103

View File

@ -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);