BUG/MINOR: httpclient: end callback in applet release

In case an error provokes the release of the applet, we will never call
the end callback of the httpclient.

In the case of a lua script, it would mean that the lua task will never
be waked up after a yield, letting the lua script stuck forever.

Fix the issue by moving the callback from the end of the iohandler to
the applet release function.

Must be backported in 2.5.
This commit is contained in:
William Lallemand 2022-04-06 14:12:37 +02:00
parent 71abad050a
commit eb0d4c40ac

View File

@ -946,8 +946,6 @@ more:
return;
end:
if (hc->ops.res_end)
hc->ops.res_end(hc);
si_shutw(si);
si_shutr(si);
return;
@ -963,6 +961,8 @@ static void httpclient_applet_release(struct appctx *appctx)
* again from the caller */
hc->appctx = NULL;
if (hc->ops.res_end)
hc->ops.res_end(hc);
/* destroy the httpclient when set to autotokill */
if (hc->flags & HTTPCLIENT_FA_AUTOKILL) {