From e8ae07c3cec83f0d03e553526bbd58863d2594ff Mon Sep 17 00:00:00 2001 From: Lifei Chen Date: Fri, 18 Sep 2020 20:04:29 +0800 Subject: [PATCH] Return an error when addr is empty --- ping.go | 4 ++++ ping_test.go | 5 +++++ 2 files changed, 9 insertions(+) diff --git a/ping.go b/ping.go index f402439..f226933 100644 --- a/ping.go +++ b/ping.go @@ -46,6 +46,7 @@ package ping import ( "bytes" "encoding/binary" + "errors" "fmt" "math" "math/rand" @@ -230,6 +231,9 @@ func (p *Pinger) IPAddr() *net.IPAddr { // Resolve does the DNS lookup for the Pinger address and sets IP protocol. func (p *Pinger) Resolve() error { + if len(p.addr) == 0 { + return errors.New("addr cannot be empty") + } ipaddr, err := net.ResolveIPAddr(p.network, p.addr) if err != nil { return err diff --git a/ping_test.go b/ping_test.go index 18973b4..a27b5e3 100644 --- a/ping_test.go +++ b/ping_test.go @@ -358,6 +358,11 @@ func TestSetIPAddr(t *testing.T) { AssertEqualStrings(t, googleaddr.String(), p.Addr()) } +func TestEmptyIPAddr(t *testing.T) { + _, err := NewPinger("") + AssertError(t, err, "empty pinger did not return an error") +} + func TestStatisticsSunny(t *testing.T) { // Create a localhost ipv4 pinger p := New("localhost")