diff --git a/resolver.go b/resolver.go index 6654779..2aadd05 100644 --- a/resolver.go +++ b/resolver.go @@ -6,12 +6,16 @@ import ( // NameResolver is used to implement custom name resolution type NameResolver interface { - Resolve(name string) (*net.IPAddr, error) + Resolve(name string) (net.IP, error) } // DNSResolver uses the system DNS to resolve host names type DNSResolver struct{} -func (d DNSResolver) Resolve(name string) (*net.IPAddr, error) { - return net.ResolveIPAddr("ip", name) +func (d DNSResolver) Resolve(name string) (net.IP, error) { + addr, err := net.ResolveIPAddr("ip", name) + if err != nil { + return nil, err + } + return addr.IP, err } diff --git a/resolver_test.go b/resolver_test.go index 31ace24..4ac3c0e 100644 --- a/resolver_test.go +++ b/resolver_test.go @@ -12,7 +12,7 @@ func TestDNSResolver(t *testing.T) { t.Fatalf("err: %v", err) } - if !addr.IP.IsLoopback() { + if !addr.IsLoopback() { t.Fatalf("expected loopback") } }