chore: allow custom resolver for dns discovery (#930)

This commit is contained in:
kaichao 2023-11-29 18:16:28 +08:00 committed by GitHub
parent e1266b836b
commit 28107bd307
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 12 additions and 1 deletions

View File

@ -15,6 +15,7 @@ import (
type dnsDiscoveryParameters struct {
nameserver string
resolver dnsdisc.Resolver
}
type DNSDiscoveryOption func(*dnsDiscoveryParameters)
@ -26,6 +27,12 @@ func WithNameserver(nameserver string) DNSDiscoveryOption {
}
}
func WithResolver(resolver dnsdisc.Resolver) DNSDiscoveryOption {
return func(params *dnsDiscoveryParameters) {
params.resolver = resolver
}
}
type DiscoveredNode struct {
PeerID peer.ID
PeerInfo peer.AddrInfo
@ -52,8 +59,12 @@ func RetrieveNodes(ctx context.Context, url string, opts ...DNSDiscoveryOption)
opt(params)
}
if params.resolver == nil {
params.resolver = GetResolver(ctx, params.nameserver)
}
client := dnsdisc.NewClient(dnsdisc.Config{
Resolver: GetResolver(ctx, params.nameserver),
Resolver: params.resolver,
})
tree, err := client.SyncTree(url)