mirror of
https://github.com/netbirdio/netbird.git
synced 2026-09-12 17:59:06 +02:00
32 lines
807 B
Go
32 lines
807 B
Go
package server
|
|
|
|
import (
|
|
"os"
|
|
|
|
log "github.com/sirupsen/logrus"
|
|
|
|
"github.com/netbirdio/netbird/management/server/http/middleware"
|
|
)
|
|
|
|
const defaultUploadBurst = 100
|
|
|
|
func newRateLimiter() *middleware.APIRateLimiter {
|
|
cfg, enabled := middleware.RateLimiterConfigFromEnv()
|
|
if os.Getenv(middleware.RateLimitingBurstEnv) == "" {
|
|
cfg.Burst = defaultUploadBurst
|
|
}
|
|
|
|
// Rate limiting is enabled by default unless explicitly disabled
|
|
if os.Getenv(middleware.RateLimitingEnabledEnv) == "" {
|
|
enabled = true
|
|
}
|
|
|
|
limiter := middleware.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(middleware.RateLimitingTrustedProxiesEnv))
|
|
|
|
return limiter
|
|
}
|