From c20f6a0ea7cac03c38723b48bd4fc7d01d84c601 Mon Sep 17 00:00:00 2001 From: Sarto Date: Thu, 26 Mar 2026 03:37:55 +0330 Subject: [PATCH] refactor: adjust runNoise method to use a fixed interval for decoy queries --- internal/client/fetcher.go | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/internal/client/fetcher.go b/internal/client/fetcher.go index 82fba8b..cee903f 100644 --- a/internal/client/fetcher.go +++ b/internal/client/fetcher.go @@ -161,17 +161,17 @@ func (f *Fetcher) runRateLimiter(ctx context.Context) { } } -// runNoise sends decoy A-record queries to popular domains at a randomised -// rate matching the configured QPS, to make feed traffic look like normal DNS usage. +// runNoise sends decoy A-record queries to popular domains at a low rate +// to make feed traffic blend into normal DNS usage without exhausting resolver limits. func (f *Fetcher) runNoise(ctx context.Context) { - interval := time.Duration(float64(time.Second) / f.rateQPS) + const baseInterval = 10 * time.Second for { - // Random delay: 1–3× the query interval. - jitter := time.Duration(rand.Int63n(int64(2*interval) + 1)) + // Random delay: 10–30 seconds. + jitter := time.Duration(rand.Int63n(int64(20 * time.Second))) select { case <-ctx.Done(): return - case <-time.After(interval + jitter): + case <-time.After(baseInterval + jitter): } resolvers := f.Resolvers()