From: William Lallemand Date: Fri, 2 May 2025 08:16:12 +0000 (+0200) Subject: MINOR: acme: allow a delay after a valid response X-Git-Tag: v3.2-dev14~19 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=f7cae0e55bf1d3259c958f394adb2786c9c591f1;p=thirdparty%2Fhaproxy.git MINOR: acme: allow a delay after a valid response Use the retryafter value to set a delay before doing the next request when the previous response was valid. --- diff --git a/src/acme.c b/src/acme.c index 139d2ad34..87efad7ed 100644 --- a/src/acme.c +++ b/src/acme.c @@ -1936,7 +1936,18 @@ nextreq: /* this is called when changing step in the state machine */ http_st = ACME_HTTP_REQ; ctx->retries = ACME_RETRY; /* reinit the retries */ - goto re; /* optimize by not leaving the task for the next httpreq to init */ + + if (ctx->retryafter == 0) + goto re; /* optimize by not leaving the task for the next httpreq to init */ + + /* if we have a retryafter, wait before next request (usually finalize) */ + task->expire = tick_add(now_ms, ctx->retryafter * 1000); + ctx->retryafter = 0; + ctx->http_state = http_st; + ctx->state = st; + + MT_LIST_UNLOCK_FULL(&ctx->el, tmp); + return task; retry: ctx->http_state = ACME_HTTP_REQ;