mirror of
https://github.com/Control-D-Inc/ctrld.git
synced 2026-05-02 12:45:10 +02:00
Use discover_ptr_endpoints for PTR resolver
This commit is contained in:
committed by
Cuong Manh Le
parent
a2116e5eb5
commit
9e6e647ff8
@@ -285,6 +285,12 @@ func (p *prog) proxy(ctx context.Context, upstreams []string, failoverRcodes []i
|
||||
resolve1 := func(n int, upstreamConfig *ctrld.UpstreamConfig, msg *dns.Msg) (*dns.Msg, error) {
|
||||
ctrld.Log(ctx, mainLog.Load().Debug(), "sending query to %s: %s", upstreams[n], upstreamConfig.Name)
|
||||
dnsResolver, err := ctrld.NewResolver(upstreamConfig)
|
||||
if upstreamConfig.Type == ctrld.ResolverTypePrivate {
|
||||
if r := p.ptrResolver; r != nil {
|
||||
ctrld.ProxyLogger.Load().Debug().Msgf("using nameservers %v for PTR resolver", p.cfg.Service.DiscoverPtrEndpoints)
|
||||
dnsResolver = r
|
||||
}
|
||||
}
|
||||
if err != nil {
|
||||
ctrld.Log(ctx, mainLog.Load().Error().Err(err), "failed to create resolver")
|
||||
return nil, err
|
||||
|
||||
@@ -62,6 +62,7 @@ type prog struct {
|
||||
ciTable *clientinfo.Table
|
||||
um *upstreamMonitor
|
||||
router router.Router
|
||||
ptrResolver ctrld.Resolver
|
||||
|
||||
loopMu sync.Mutex
|
||||
loop map[string]bool
|
||||
@@ -229,6 +230,9 @@ func (p *prog) run(reload bool, reloadCh chan struct{}) {
|
||||
p.cache = cacher
|
||||
}
|
||||
}
|
||||
if r := p.cfg.Service.PtrResolver(); r != nil {
|
||||
p.ptrResolver = r
|
||||
}
|
||||
|
||||
var wg sync.WaitGroup
|
||||
wg.Add(len(p.cfg.Listener))
|
||||
|
||||
Reference in New Issue
Block a user