diff options
| author | Dave Henderson <dhenderson@gmail.com> | 2018-08-24 21:12:11 -0400 |
|---|---|---|
| committer | Dave Henderson <dhenderson@gmail.com> | 2018-09-24 23:22:40 -0400 |
| commit | cc0dc067c7362adfb1de802c86c3bab1601b5fe0 (patch) | |
| tree | a59826f272902b2ba138c95e3a1eba6cfad7dda6 /net/net.go | |
| parent | 2eeb9a78c06835db36b2df169e26334cb9d65c86 (diff) | |
Return error instead of using log.Fatal
Signed-off-by: Dave Henderson <dhenderson@gmail.com>
Diffstat (limited to 'net/net.go')
| -rw-r--r-- | net/net.go | 59 |
1 files changed, 33 insertions, 26 deletions
@@ -1,62 +1,69 @@ package net import ( - "log" "net" ) // LookupIP - -func LookupIP(name string) string { - i := LookupIPs(name) +func LookupIP(name string) (string, error) { + i, err := LookupIPs(name) + if err != nil { + return "", err + } if len(i) == 0 { - return "" + return "", nil } - return i[0] + return i[0], nil } // LookupIPs - -func LookupIPs(name string) []string { +func LookupIPs(name string) ([]string, error) { srcIPs, err := net.LookupIP(name) if err != nil { - log.Fatal(err) + return nil, err } var ips []string for _, v := range srcIPs { - if v.To4() != nil { + if v.To4() != nil && !contains(ips, v.String()) { ips = append(ips, v.String()) } } - return ips + return ips, nil } -// LookupCNAME - -func LookupCNAME(name string) string { - cname, err := net.LookupCNAME(name) - if err != nil { - log.Fatal(err) +func contains(a []string, s string) bool { + for _, v := range a { + if v == s { + return true + } } - return cname + return false +} + +// LookupCNAME - +func LookupCNAME(name string) (string, error) { + return net.LookupCNAME(name) } // LookupTXT - -func LookupTXT(name string) []string { - records, err := net.LookupTXT(name) - if err != nil { - log.Fatal(err) - } - return records +func LookupTXT(name string) ([]string, error) { + return net.LookupTXT(name) } // LookupSRV - -func LookupSRV(name string) *net.SRV { - return LookupSRVs(name)[0] +func LookupSRV(name string) (*net.SRV, error) { + srvs, err := LookupSRVs(name) + if err != nil { + return nil, err + } + return srvs[0], nil } // LookupSRVs - -func LookupSRVs(name string) []*net.SRV { +func LookupSRVs(name string) ([]*net.SRV, error) { _, addrs, err := net.LookupSRV("", "", name) if err != nil { - log.Fatal(err) + return nil, err } - return addrs + return addrs, nil } |
