summaryrefslogtreecommitdiff
path: root/net/net.go
diff options
context:
space:
mode:
authorDave Henderson <dhenderson@gmail.com>2018-08-24 21:12:11 -0400
committerDave Henderson <dhenderson@gmail.com>2018-09-24 23:22:40 -0400
commitcc0dc067c7362adfb1de802c86c3bab1601b5fe0 (patch)
treea59826f272902b2ba138c95e3a1eba6cfad7dda6 /net/net.go
parent2eeb9a78c06835db36b2df169e26334cb9d65c86 (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.go59
1 files changed, 33 insertions, 26 deletions
diff --git a/net/net.go b/net/net.go
index c0bfe594..e54ec5ae 100644
--- a/net/net.go
+++ b/net/net.go
@@ -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
}