mirror of
https://github.com/netbirdio/netbird.git
synced 2026-09-28 17:49:08 +02:00
32 lines
784 B
Go
32 lines
784 B
Go
package server
|
|
|
|
import (
|
|
"os"
|
|
|
|
log "github.com/sirupsen/logrus"
|
|
|
|
"github.com/netbirdio/netbird/shared/ratelimit"
|
|
)
|
|
|
|
const defaultUploadBurst = 100
|
|
|
|
func newRateLimiter() *ratelimit.APIRateLimiter {
|
|
cfg, enabled := ratelimit.RateLimiterConfigFromEnv()
|
|
if os.Getenv(ratelimit.RateLimitingBurstEnv) == "" {
|
|
cfg.Burst = defaultUploadBurst
|
|
}
|
|
|
|
// Rate limiting is enabled by default unless explicitly disabled
|
|
if os.Getenv(ratelimit.RateLimitingEnabledEnv) == "" {
|
|
enabled = true
|
|
}
|
|
|
|
limiter := ratelimit.NewAPIRateLimiter(cfg)
|
|
limiter.SetEnabled(enabled)
|
|
|
|
log.Infof("Upload URL rate limiting: enabled=%t rate=%.0f/min burst=%d trusted_proxies=%q",
|
|
limiter.Enabled(), cfg.RequestsPerMinute, cfg.Burst, os.Getenv(ratelimit.RateLimitingTrustedProxiesEnv))
|
|
|
|
return limiter
|
|
}
|