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)