diff options
Diffstat (limited to 'internal/config/validate.go')
-rw-r--r-- | internal/config/validate.go | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/internal/config/validate.go b/internal/config/validate.go index 723d5c931..c8ebd4f2d 100644 --- a/internal/config/validate.go +++ b/internal/config/validate.go @@ -19,6 +19,7 @@ package config import ( "fmt" + "net/netip" "net/url" "strings" @@ -168,5 +169,22 @@ func Validate() error { ) } + // Parse `advanced-rate-limit-exceptions` and set + // parsed versions on config to avoid reparsing calls. + rles := GetAdvancedRateLimitExceptions() + rlesParsed := make([]netip.Prefix, 0, len(rles)) + for _, rle := range rles { + parsed, err := netip.ParsePrefix(rle) + if err != nil { + errf( + "invalid entry %s in %s: %w", + rle, AdvancedRateLimitExceptionsFlag(), err, + ) + continue + } + rlesParsed = append(rlesParsed, parsed) + } + SetAdvancedRateLimitExceptionsParsed(rlesParsed) + return errs.Combine() } |