From f7cae0e55bf1d3259c958f394adb2786c9c591f1 Mon Sep 17 00:00:00 2001 From: William Lallemand Date: Fri, 2 May 2025 10:16:12 +0200 Subject: [PATCH] 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. --- src/acme.c | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) 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;