@@ -4,19 +4,19 @@ import (
4
4
"context"
5
5
"errors"
6
6
"fmt"
7
- "net"
8
7
"strings"
9
8
10
9
path "github.com/ipfs/go-path"
11
10
opts "github.com/ipfs/interface-go-ipfs-core/options/namesys"
12
11
isd "github.com/jbenet/go-is-domain"
12
+ madns "github.com/multiformats/go-multiaddr-dns"
13
13
)
14
14
15
15
const ethTLD = "eth"
16
16
const linkTLD = "domains"
17
17
18
18
// LookupTXTFunc is a generic type for a function that lookups TXT record values.
19
- type LookupTXTFunc func (name string ) (txt []string , err error )
19
+ type LookupTXTFunc func (ctx context. Context , name string ) (txt []string , err error )
20
20
21
21
// DNSResolver implements a Resolver on DNS domains
22
22
type DNSResolver struct {
@@ -26,8 +26,8 @@ type DNSResolver struct {
26
26
}
27
27
28
28
// NewDNSResolver constructs a name resolver using DNS TXT records.
29
- func NewDNSResolver () * DNSResolver {
30
- return & DNSResolver {lookupTXT : net .LookupTXT }
29
+ func NewDNSResolver (rslv madns. BasicResolver ) * DNSResolver {
30
+ return & DNSResolver {lookupTXT : rslv .LookupTXT }
31
31
}
32
32
33
33
// Resolve implements Resolver.
@@ -74,10 +74,10 @@ func (r *DNSResolver) resolveOnceAsync(ctx context.Context, name string, options
74
74
}
75
75
76
76
rootChan := make (chan lookupRes , 1 )
77
- go workDomain (r , fqdn , rootChan )
77
+ go workDomain (ctx , r , fqdn , rootChan )
78
78
79
79
subChan := make (chan lookupRes , 1 )
80
- go workDomain (r , "_dnslink." + fqdn , subChan )
80
+ go workDomain (ctx , r , "_dnslink." + fqdn , subChan )
81
81
82
82
appendPath := func (p path.Path ) (path.Path , error ) {
83
83
if len (segments ) > 1 {
@@ -121,10 +121,10 @@ func (r *DNSResolver) resolveOnceAsync(ctx context.Context, name string, options
121
121
return out
122
122
}
123
123
124
- func workDomain (r * DNSResolver , name string , res chan lookupRes ) {
124
+ func workDomain (ctx context. Context , r * DNSResolver , name string , res chan lookupRes ) {
125
125
defer close (res )
126
126
127
- txt , err := r .lookupTXT (name )
127
+ txt , err := r .lookupTXT (ctx , name )
128
128
if err != nil {
129
129
// Error is != nil
130
130
res <- lookupRes {"" , err }
0 commit comments