mirror of
https://github.com/Control-D-Inc/ctrld.git
synced 2026-09-29 13:51:51 +02:00
Using LAN servers from OS resolver for private resolver
So heavy functions are only called once and could be re-used in subsequent calls to NewPrivateResolver.
This commit is contained in:
1 parent
c60cf33af3
commit
dacc67e50f
1 file changed
+9
-8
+9
-8
@@ -478,10 +478,10 @@ func lookupIP(domain string, timeout int) (ips []string) {
|
|||||||
ProxyLogger.Load().Debug().Msgf("Initialize OS resolver in lookupIP")
|
ProxyLogger.Load().Debug().Msgf("Initialize OS resolver in lookupIP")
|
||||||
or = newResolverWithNameserver(defaultNameservers())
|
or = newResolverWithNameserver(defaultNameservers())
|
||||||
}
|
}
|
||||||
resolverMutex.Unlock()
|
|
||||||
|
|
||||||
nss := *or.lanServers.Load()
|
nss := *or.lanServers.Load()
|
||||||
nss = append(nss, *or.publicServers.Load()...)
|
nss = append(nss, *or.publicServers.Load()...)
|
||||||
|
resolverMutex.Unlock()
|
||||||
|
|
||||||
resolver := newResolverWithNameserver(nss)
|
resolver := newResolverWithNameserver(nss)
|
||||||
ProxyLogger.Load().Debug().Msgf("resolving %q using bootstrap DNS %q", domain, nss)
|
ProxyLogger.Load().Debug().Msgf("resolving %q using bootstrap DNS %q", domain, nss)
|
||||||
timeoutMs := 2000
|
timeoutMs := 2000
|
||||||
@@ -575,12 +575,13 @@ func NewBootstrapResolver(servers ...string) Resolver {
|
|||||||
//
|
//
|
||||||
// This is useful for doing PTR lookup in LAN network.
|
// This is useful for doing PTR lookup in LAN network.
|
||||||
func NewPrivateResolver() Resolver {
|
func NewPrivateResolver() Resolver {
|
||||||
|
resolverMutex.Lock()
|
||||||
logger := *ProxyLogger.Load()
|
if or == nil {
|
||||||
|
ProxyLogger.Load().Debug().Msgf("Initialize new OS resolver in NewPrivateResolver")
|
||||||
Log(context.Background(), logger.Debug(), "NewPrivateResolver called")
|
or = newResolverWithNameserver(defaultNameservers())
|
||||||
|
}
|
||||||
nss := defaultNameservers()
|
nss := *or.lanServers.Load()
|
||||||
|
resolverMutex.Unlock()
|
||||||
resolveConfNss := nameserversFromResolvconf()
|
resolveConfNss := nameserversFromResolvconf()
|
||||||
localRfc1918Addrs := Rfc1918Addresses()
|
localRfc1918Addrs := Rfc1918Addresses()
|
||||||
n := 0
|
n := 0
|
||||||
|
|||||||
Reference in new issue
Block a user