diff --git a/ip/resolver/basic_http/service.go b/ip/resolver/basic_http/service.go index a3a3d07..fb5963b 100644 --- a/ip/resolver/basic_http/service.go +++ b/ip/resolver/basic_http/service.go @@ -7,6 +7,8 @@ import ( "net" "net/http" "strings" + + "dnsupdater/ip" ) type Service struct { @@ -44,9 +46,5 @@ func (s Service) Lookup(ctx context.Context) (net.IP, error) { // Trim spaces and stuff. ip_str := strings.TrimSpace(string(body)) - ip := net.ParseIP(ip_str) - if ip == nil { - err = fmt.Errorf("Failed to parse ip: %s", ip_str) - } - return ip, err + return ip.ParseIP(ip_str) } diff --git a/ip/resolver/basic_http/service_test.go b/ip/resolver/basic_http/service_test.go index d191f5d..6495462 100644 --- a/ip/resolver/basic_http/service_test.go +++ b/ip/resolver/basic_http/service_test.go @@ -80,6 +80,6 @@ func TestService_Lookup_ParseError(t *testing.T) { } ip, err := s.Lookup(context.Background()) - assert.EqualError(t, err, "Failed to parse ip: random_string") + assert.EqualError(t, err, "invalid IP address: random_string") assert.Nil(t, ip) } diff --git a/ip/resolver/jsonip/service.go b/ip/resolver/jsonip/service.go index 6af1e16..04e7136 100644 --- a/ip/resolver/jsonip/service.go +++ b/ip/resolver/jsonip/service.go @@ -5,6 +5,8 @@ import ( "encoding/json" "net" "net/http" + + "dnsupdater/ip" ) type Service struct { @@ -22,12 +24,7 @@ func (s Service) Name() string { } func (s Service) Lookup(ctx context.Context) (net.IP, error) { - req, err := http.NewRequestWithContext(ctx, "GET", s.url, nil) - if err != nil { - return nil, err - } - - resp, err := http.DefaultClient.Do(req) + resp, err := httphelper.Get(ctx, s.url, nil) if err != nil { return nil, err } @@ -41,5 +38,5 @@ func (s Service) Lookup(ctx context.Context) (net.IP, error) { return nil, err } - return net.ParseIP(v.Ip), err + return ip.ParseIP(v.Ip) }