Skip to content

Commit 2cc24b6

Browse files
committed
autodiscovery: Drop miekg/dns
1 parent aba3ddb commit 2cc24b6

File tree

3 files changed

+5
-36
lines changed

3 files changed

+5
-36
lines changed

autodiscovery/dns.go

Lines changed: 5 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -4,34 +4,23 @@ package autodiscovery
44

55
import (
66
"errors"
7+
"net"
78
"strconv"
8-
9-
"github.com/miekg/dns"
109
)
1110

1211
var ErrNoService = errors.New("autodiscovery: no DNS SRV record")
1312

1413
// Probe attempts to perform JMAP service autodiscovery by looking for DNS SRV
1514
// entry. It returns URL of JMAP session resource. ErrNoService is returned in
1615
// case there is no DNS SRV record for passed domain.
17-
//
18-
// Since Go standard DNS operations don't support SRV queries, custom DNS
19-
// library is used and you have to provide related configuration options.
20-
func Probe(cl *dns.Client, cfg *dns.ClientConfig, domain string) (string, error) {
21-
m := new(dns.Msg)
22-
m.SetQuestion("_jmap._tcp."+dns.Fqdn(domain), dns.TypeSRV)
23-
resp, _, err := cl.Exchange(m, cfg.Servers[0]+":"+cfg.Port)
16+
func Probe(domain string) (string, error) {
17+
_, addrs, err := net.LookupSRV("jmap", "tcp", domain)
2418
if err != nil {
2519
return "", err
2620
}
2721

28-
for _, ans := range resp.Answer {
29-
srv, ok := ans.(*dns.SRV)
30-
if !ok {
31-
continue
32-
}
33-
34-
return "https://" + srv.Target + ":" + strconv.Itoa(int(srv.Port)) + "/.well-known/jmap", nil
22+
for _, addr := range addrs {
23+
return "https://" + addr.Target + ":" + strconv.Itoa(int(addr.Port)) + "/.well-known/jmap", nil
3524
}
3625
return "", ErrNoService
3726
}

go.mod

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,6 @@ module github.com/foxcpp/go-jmap
22

33
require (
44
github.com/google/go-cmp v0.3.0 // indirect
5-
github.com/miekg/dns v1.1.9
65
github.com/pkg/errors v0.8.1 // indirect
7-
golang.org/x/crypto v0.0.0-20190513172903-22d7a77e9e5f // indirect
8-
golang.org/x/net v0.0.0-20190514140710-3ec191127204 // indirect
9-
golang.org/x/sync v0.0.0-20190423024810-112230192c58 // indirect
10-
golang.org/x/sys v0.0.0-20190515120540-06a5c4944438 // indirect
116
gotest.tools v2.2.0+incompatible
127
)

go.sum

Lines changed: 0 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,6 @@
11
github.com/google/go-cmp v0.3.0 h1:crn/baboCvb5fXaQ0IJ1SGTsTVrWpDsCWC8EGETZijY=
22
github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
3-
github.com/miekg/dns v1.1.9 h1:OIdC9wT96RzuZMf2PfKRhFgsStHUUBZLM/lo1LqiM9E=
4-
github.com/miekg/dns v1.1.9/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg=
53
github.com/pkg/errors v0.8.1 h1:iURUrRGxPUNPdy5/HRSm+Yj6okJ6UtLINN0Q9M4+h3I=
64
github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
7-
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
8-
golang.org/x/crypto v0.0.0-20190513172903-22d7a77e9e5f h1:R423Cnkcp5JABoeemiGEPlt9tHXFfw5kvc0yqlxRPWo=
9-
golang.org/x/crypto v0.0.0-20190513172903-22d7a77e9e5f/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
10-
golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
11-
golang.org/x/net v0.0.0-20190514140710-3ec191127204 h1:4yG6GqBtw9C+UrLp6s2wtSniayy/Vd/3F7ffLE427XI=
12-
golang.org/x/net v0.0.0-20190514140710-3ec191127204/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
13-
golang.org/x/sync v0.0.0-20190423024810-112230192c58 h1:8gQV6CLnAEikrhgkHFbMAEhagSSnXWGV915qUMm9mrU=
14-
golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
15-
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
16-
golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
17-
golang.org/x/sys v0.0.0-20190515120540-06a5c4944438 h1:khxRGsvPk4n2y8I/mLLjp7e5dMTJmH75wvqS6nMwUtY=
18-
golang.org/x/sys v0.0.0-20190515120540-06a5c4944438/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
19-
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
205
gotest.tools v2.2.0+incompatible h1:VsBPFP1AI068pPrMxtb/S8Zkgf9xEmTLJjfM+P5UIEo=
216
gotest.tools v2.2.0+incompatible/go.mod h1:DsYFclhRJ6vuDpmuTbkuFWG+y2sxOXAzmJt81HFBacw=

0 commit comments

Comments
 (0)