From e3a792d50d77f6b31d145ca9cc8f9013d2488e0f Mon Sep 17 00:00:00 2001 From: Cuong Manh Le Date: Wed, 3 May 2023 18:12:40 +0700 Subject: [PATCH] cmd/ctrld: start listener with no default upstream We can have more listeners than upstreams. --- cmd/ctrld/dns_proxy.go | 3 +++ cmd/ctrld/prog.go | 3 +-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/cmd/ctrld/dns_proxy.go b/cmd/ctrld/dns_proxy.go index f473634..af49bbf 100644 --- a/cmd/ctrld/dns_proxy.go +++ b/cmd/ctrld/dns_proxy.go @@ -257,6 +257,9 @@ func (p *prog) proxy(ctx context.Context, upstreams []string, failoverRcodes []i return answer } for n, upstreamConfig := range upstreamConfigs { + if upstreamConfig == nil { + continue + } answer := resolve(n, upstreamConfig, msg) if answer == nil { if serveStaleCache && staleAnswer != nil { diff --git a/cmd/ctrld/prog.go b/cmd/ctrld/prog.go index a170b36..f19aeda 100644 --- a/cmd/ctrld/prog.go +++ b/cmd/ctrld/prog.go @@ -91,8 +91,7 @@ func (p *prog) run() { listenerConfig := p.cfg.Listener[listenerNum] upstreamConfig := p.cfg.Upstream[listenerNum] if upstreamConfig == nil { - mainLog.Error().Msgf("missing upstream config for: [listener.%s]", listenerNum) - return + mainLog.Warn().Msgf("no default upstream for: [listener.%s]", listenerNum) } addr := net.JoinHostPort(listenerConfig.IP, strconv.Itoa(listenerConfig.Port)) mainLog.Info().Msgf("Starting DNS server on listener.%s: %s", listenerNum, addr)