resolver: a reply marked recursion available from a root server's address stops the lookup (closes #300)
check / check (push) Waiting to run
check / check (push) Waiting to run
dnswatcher never asks for recursion and a root server never offers it, so a reply marked recursion available from a root server's address came from a resolver on the network answering in its place. The first such reply, a refusal included, now stops the lookup at once with "this network intercepts DNS queries", naming the address, whether or not that resolver had the name cached. queryDNS returns a refused reply along with ErrRefused so the mark can be seen; a refusal without the mark is handled as before. On such a network dnswatcher and its tests fail with that error, by design, as the owner ruled on the issue. Model: opus-5-5
This commit was merged in pull request #301.
This commit is contained in:
@@ -53,9 +53,13 @@ var (
|
||||
"reply truncated and its retry over TCP failed",
|
||||
)
|
||||
|
||||
// ErrIntercepted is returned when every root server refused a
|
||||
// query. Root servers refuse no query, so the refusals came from
|
||||
// something on the network answering in their place.
|
||||
// ErrIntercepted is returned when a root server's address gave a
|
||||
// reply marked recursion available, a refusal included, which ends
|
||||
// the lookup at once, or when every root server refused a query.
|
||||
// Root servers do neither, so those replies came from something on
|
||||
// the network answering in their place. On such a network
|
||||
// dnswatcher fails with it, by design: nothing works around the
|
||||
// interception.
|
||||
ErrIntercepted = errors.New("this network intercepts DNS queries")
|
||||
|
||||
// ErrCNAMEDepthExceeded is returned when a CNAME chain
|
||||
|
||||
Reference in New Issue
Block a user