diff --git a/internal/util/autohosts.go b/internal/util/autohosts.go index ad7825d5..e4cea58c 100644 --- a/internal/util/autohosts.go +++ b/internal/util/autohosts.go @@ -120,14 +120,13 @@ func (a *AutoHosts) Process(host string, qtype uint16) []net.IP { var ipsCopy []net.IP a.lock.RLock() + defer a.lock.RUnlock() if ips, ok := a.table[host]; ok { ipsCopy = make([]net.IP, len(ips)) copy(ipsCopy, ips) } - a.lock.RUnlock() - log.Debug("AutoHosts: answer: %s -> %v", host, ipsCopy) return ipsCopy } @@ -339,10 +338,13 @@ func (a *AutoHosts) updateHosts() { } } - a.lock.Lock() - a.table = table - a.tableReverse = tableRev - a.lock.Unlock() + func() { + a.lock.Lock() + defer a.lock.Unlock() + + a.table = table + a.tableReverse = tableRev + }() a.notify() }