diff --git a/core/node/dns.go b/core/node/dns.go index 72c89903c426..75eaac0d65ed 100644 --- a/core/node/dns.go +++ b/core/node/dns.go @@ -2,10 +2,17 @@ package node import ( config "github.com/ipfs/go-ipfs-config" + doh "github.com/libp2p/go-doh-resolver" madns "github.com/multiformats/go-multiaddr-dns" ) func DNSResolver(cfg *config.Config) (*madns.Resolver, error) { - // TODO custom resolvers from config - return madns.DefaultResolver, nil + var opts []madns.Option + if cfg.DNS.DefaultResolver != "" { + opts = append(opts, madns.WithDefaultResolver(doh.NewResolver(cfg.DNS.DefaultResolver))) + } + for domain, url := range cfg.DNS.CustomResolvers { + opts = append(opts, madns.WithDomainResolver(domain, doh.NewResolver(url))) + } + return madns.NewResolver(opts...) }