From f04fd845bb55d453e0e22272395842ded9de7574 Mon Sep 17 00:00:00 2001 From: Quentin McGaw Date: Sat, 2 Jan 2021 23:55:29 +0000 Subject: [PATCH] Bug fix: DNS setup failure loop behavior --- internal/dns/loop.go | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/internal/dns/loop.go b/internal/dns/loop.go index 1fe05327..463afa94 100644 --- a/internal/dns/loop.go +++ b/internal/dns/loop.go @@ -104,7 +104,11 @@ func (l *looper) Run(ctx context.Context, wg *sync.WaitGroup, signalDNSReady fun var unboundCancel context.CancelFunc = func() {} waitError := make(chan error) - for ctx.Err() == nil && l.GetSettings().Enabled { + for l.GetSettings().Enabled { + if ctx.Err() != nil { + l.logger.Warn("context canceled: exiting loop") + return + } var err error unboundCancel, err = l.setupUnbound(ctx, crashed, waitError) if err != nil { @@ -113,6 +117,7 @@ func (l *looper) Run(ctx context.Context, wg *sync.WaitGroup, signalDNSReady fun l.useUnencryptedDNS(fallback) } l.logAndWait(ctx, err) + continue } break }