From 95fabeae73b4e9e96fdfb9cb7e12ee6c0768cdec Mon Sep 17 00:00:00 2001 From: Pierre-Yves Aillet Date: Tue, 16 Nov 2021 16:38:11 +0100 Subject: [PATCH] feat: rate-limit ceil Retry-After to superior integer --- pkg/middlewares/ratelimiter/rate_limiter.go | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/pkg/middlewares/ratelimiter/rate_limiter.go b/pkg/middlewares/ratelimiter/rate_limiter.go index 7992c7d48..93ab92ec7 100644 --- a/pkg/middlewares/ratelimiter/rate_limiter.go +++ b/pkg/middlewares/ratelimiter/rate_limiter.go @@ -4,6 +4,7 @@ package ratelimiter import ( "context" "fmt" + "math" "net/http" "time" @@ -174,7 +175,7 @@ func (rl *rateLimiter) ServeHTTP(w http.ResponseWriter, r *http.Request) { } func (rl *rateLimiter) serveDelayError(ctx context.Context, w http.ResponseWriter, r *http.Request, delay time.Duration) { - w.Header().Set("Retry-After", fmt.Sprintf("%.0f", delay.Seconds())) + w.Header().Set("Retry-After", fmt.Sprintf("%.0f", math.Ceil(delay.Seconds()))) w.Header().Set("X-Retry-In", delay.String()) w.WriteHeader(http.StatusTooManyRequests)