MCPcopy
hub / github.com/nextdns/nextdns / Resolve

Method Resolve

proxy/proxy.go:172–197  ·  view source on GitHub ↗
(ctx context.Context, q query.Query, buf []byte)

Source from the content-addressed store, hash-verified

170}
171
172func (p Proxy) Resolve(ctx context.Context, q query.Query, buf []byte) (n int, i resolver.ResolveInfo, err error) {
173 if p.LocalResolver != nil {
174 if _n, _i, _err := hostsResolve(p.LocalResolver, q, buf); _err == nil {
175 return _n, _i, nil
176 }
177 }
178
179 priv := q.Type == query.TypePTR && isPrivateReverse(q.Name)
180
181 if !p.BogusPriv || !priv {
182 n, i, err = p.Upstream.Resolve(ctx, q, buf)
183 }
184
185 if q.RecursionDesired && p.DiscoveryResolver != nil && (n <= 0 || isNXDomain(buf[:n])) {
186 if _n, _i, _err := hostsResolve(p.DiscoveryResolver, q, buf); _err == nil {
187 return _n, _i, nil
188 }
189 }
190
191 if p.BogusPriv && priv {
192 n = replyRCode(dnsmessage.RCodeNameError, q, buf)
193 return n, i, nil
194 }
195
196 return n, i, err
197}
198
199func (p Proxy) maxInflightRequests() int {
200 if p.MaxInflightRequests == 0 {

Callers 2

serveUDPMethod · 0.95
serveTCPConnMethod · 0.95

Calls 5

hostsResolveFunction · 0.85
isPrivateReverseFunction · 0.85
isNXDomainFunction · 0.85
replyRCodeFunction · 0.85
ResolveMethod · 0.65

Tested by

no test coverage detected