fix(dns): fix panic when using DNS_KEEP_NAMESERVER

This commit is contained in:
Quentin McGaw
2025-11-17 17:54:52 +00:00
parent 6e99ca573e
commit c4b9d459ed

View File

@@ -45,7 +45,6 @@ func (l *Loop) Run(ctx context.Context, done chan<- struct{}) {
if err == nil { if err == nil {
l.backoffTime = defaultBackoffTime l.backoffTime = defaultBackoffTime
l.logger.Info("ready") l.logger.Info("ready")
l.signalOrSetStatus(constants.Running)
break break
} }
@@ -62,6 +61,7 @@ func (l *Loop) Run(ctx context.Context, done chan<- struct{}) {
l.logAndWait(ctx, err) l.logAndWait(ctx, err)
settings = l.GetSettings() settings = l.GetSettings()
} }
l.signalOrSetStatus(constants.Running)
settings = l.GetSettings() settings = l.GetSettings()
if !*settings.KeepNameserver && !*settings.ServerEnabled { if !*settings.KeepNameserver && !*settings.ServerEnabled {
@@ -82,15 +82,19 @@ func (l *Loop) runWait(ctx context.Context, runError <-chan error) (exitLoop boo
for { for {
select { select {
case <-ctx.Done(): case <-ctx.Done():
l.stopServer() if !*l.GetSettings().KeepNameserver {
// TODO revert OS and Go nameserver when exiting l.stopServer()
// TODO revert OS and Go nameserver when exiting
}
return true return true
case <-l.stop: case <-l.stop:
l.userTrigger = true l.userTrigger = true
l.logger.Info("stopping") l.logger.Info("stopping")
const fallback = false if !*l.GetSettings().KeepNameserver {
l.useUnencryptedDNS(fallback) const fallback = false
l.stopServer() l.useUnencryptedDNS(fallback)
l.stopServer()
}
l.stopped <- struct{}{} l.stopped <- struct{}{}
case <-l.start: case <-l.start:
l.userTrigger = true l.userTrigger = true