diff --git a/home/clients.go b/home/clients.go index 0f25c755a9b..369be2bccdc 100644 --- a/home/clients.go +++ b/home/clients.go @@ -612,15 +612,13 @@ func (clients *clientsContainer) addFromHostsFile() { _ = clients.rmHosts(ClientSourceHostsFile) n := 0 - for ip, names := range hosts { - for _, name := range names { - ok, err := clients.addHost(ip, name.String(), ClientSourceHostsFile) - if err != nil { - log.Debug("Clients: %s", err) - } - if ok { - n++ - } + for ip, name := range hosts { + ok, err := clients.addHost(ip, name, ClientSourceHostsFile) + if err != nil { + log.Debug("Clients: %s", err) + } + if ok { + n++ } } diff --git a/util/auto_hosts.go b/util/auto_hosts.go index 6e78f1eef7c..a980f5a2bd4 100644 --- a/util/auto_hosts.go +++ b/util/auto_hosts.go @@ -371,11 +371,11 @@ func (a *AutoHosts) ProcessReverse(addr string, qtype uint16) string { return host } -// List - get the hosts table. Thread-safe. -func (a *AutoHosts) List() map[string][]net.IP { - table := make(map[string][]net.IP) +// List - get "IP -> hostname" table. Thread-safe. +func (a *AutoHosts) List() map[string]string { + table := make(map[string]string) a.lock.Lock() - for k, v := range a.table { + for k, v := range a.tableReverse { table[k] = v } a.lock.Unlock() diff --git a/util/auto_hosts_test.go b/util/auto_hosts_test.go index 3871b3942f7..17055e50d8f 100644 --- a/util/auto_hosts_test.go +++ b/util/auto_hosts_test.go @@ -49,10 +49,9 @@ func TestAutoHostsResolution(t *testing.T) { // Test hosts file table := ah.List() - ips, _ = table["host"] - assert.NotNil(t, ips) - assert.Equal(t, 1, len(ips)) - assert.Equal(t, "127.0.0.1", ips[0].String()) + name, ok := table["127.0.0.1"] + assert.True(t, ok) + assert.Equal(t, "host", name) // Test PTR a, _ := dns.ReverseAddr("127.0.0.1")