types/logger: fix rateFree interaction with verbosity prefixes

We log lines like this:

c.logf("[v1] magicsock: disco: %v->%v (%v, %v) sent %v", c.discoShort, dstDisco.ShortString(), dstKey.ShortString(), derpStr(dst.String()), disco.MessageSummary(m))

The leading [v1] causes it to get unintentionally rate limited.
Until we have a proper fix, work around it.

Fixes #1216

Signed-off-by: Josh Bleecher Snyder <josh@tailscale.com>
pull/1249/head
Josh Bleecher Snyder 4 years ago committed by Josh Bleecher Snyder
parent 7a16ac80b7
commit 1e28207a15

@ -64,9 +64,9 @@ type limitData struct {
var disableRateLimit = os.Getenv("TS_DEBUG_LOG_RATE") == "all" var disableRateLimit = os.Getenv("TS_DEBUG_LOG_RATE") == "all"
// rateFreePrefix are format string prefixes that are exempt from rate limiting. // rateFree are format string substrings that are exempt from rate limiting.
// Things should not be added to this unless they're already limited otherwise. // Things should not be added to this unless they're already limited otherwise.
var rateFreePrefix = []string{ var rateFree = []string{
"magicsock: disco: ", "magicsock: disco: ",
"magicsock: CreateEndpoint:", "magicsock: CreateEndpoint:",
} }
@ -93,8 +93,8 @@ func RateLimitedFn(logf Logf, f time.Duration, burst int, maxCache int) Logf {
) )
judge := func(format string) verdict { judge := func(format string) verdict {
for _, pfx := range rateFreePrefix { for _, sub := range rateFree {
if strings.HasPrefix(format, pfx) { if strings.Contains(format, sub) {
return allow return allow
} }
} }

Loading…
Cancel
Save