From 4614b98e94451cbf29a3bcfe81974e11112b42c0 Mon Sep 17 00:00:00 2001 From: Cuong Manh Le Date: Tue, 7 Nov 2023 21:35:42 +0700 Subject: [PATCH] internal/clientinfo: emit error once if ptr discovery failed So it won't spam ctrld log unnecessary, prevent confusion. While at it, also change the log level from Warn to Info, since this error is not actionable by the user. --- internal/clientinfo/ptr_lookup.go | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/internal/clientinfo/ptr_lookup.go b/internal/clientinfo/ptr_lookup.go index 6a9d99b..fea79fb 100644 --- a/internal/clientinfo/ptr_lookup.go +++ b/internal/clientinfo/ptr_lookup.go @@ -72,15 +72,16 @@ func (p *ptrDiscover) lookupHostname(ip string) string { msg := new(dns.Msg) addr, err := dns.ReverseAddr(ip) if err != nil { - ctrld.ProxyLogger.Load().Warn().Str("discovery", "ptr").Err(err).Msg("invalid ip address") + ctrld.ProxyLogger.Load().Info().Str("discovery", "ptr").Err(err).Msg("invalid ip address") return "" } msg.SetQuestion(addr, dns.TypePTR) ans, err := p.resolver.Resolve(ctx, msg) if err != nil { - ctrld.ProxyLogger.Load().Warn().Str("discovery", "ptr").Err(err).Msg("could not perform PTR lookup") - p.serverDown.Store(true) - go p.checkServer() + if p.serverDown.CompareAndSwap(false, true) { + ctrld.ProxyLogger.Load().Info().Str("discovery", "ptr").Err(err).Msg("could not perform PTR lookup") + go p.checkServer() + } return "" } for _, rr := range ans.Answer {