DNSResolver: use isd.IsDomain
this commit dedicated to @whyrusleeping
Juan Batiz-Benet committed
Oct 3, 2014 at 18:08 UTC
73b2058f8f5471e3ade0ff1a0f0b772a15519e8f
1 file changed
+6
-2
namesys/dns.go
+6
-2
@@ -2,25 +2,29 @@ package namesys
2
3
import (
4
"net"
5
- "strings"
5
6
b58 "github.com/jbenet/go-ipfs/Godeps/_workspace/src/github.com/jbenet/go-base58"
7
mh "github.com/jbenet/go-ipfs/Godeps/_workspace/src/github.com/jbenet/go-multihash"
8
u "github.com/jbenet/go-ipfs/util"
9
+ isd "github.com/jbenet/go-is-domain"
10
)
11
12
+// DNSResolver implements a Resolver on DNS domains
13
type DNSResolver struct {
14
// TODO: maybe some sort of caching?
15
// cache would need a timeout
16
}
17
18
+// Matches implements Resolver
19
func (r *DNSResolver) Matches(name string) bool {
18
- return strings.Contains(name, ".") && !strings.HasPrefix(name, ".")
20
+ return isd.IsDomain(name)
21
}
22
23
+// Resolve implements Resolver
24
// TXT records for a given domain name should contain a b58
25
// encoded multihash.
26
func (r *DNSResolver) Resolve(name string) (string, error) {
27
+ log.Info("DNSResolver resolving %v", name)
28
txt, err := net.LookupTXT(name)
29
if err != nil {
30
return "", err