resolver: drop the unused timeout multiplier and the comment claiming it (closes #296)
check / check (push) Canceled after 0s
check / check (push) Canceled after 0s
The resolver declared timeoutMultiplier and passed each try's number to exchangeWithTimeout, which threw it away with a comment saying the client config grew the timeout. Nothing did: every try waits the same 2-second queryTimeoutDuration. The constant goes, and exchangeWithTimeout is folded into its one caller, tryExchange, whose comment now says the timeout is fixed. Behaviour is unchanged. Model: opus-5-5
This commit was merged in pull request #297.
This commit is contained in:
@@ -19,6 +19,9 @@ milestone: https://git.eeqj.de/sneak/dnswatcher/milestone/7
|
|||||||
|
|
||||||
# Completed Steps
|
# Completed Steps
|
||||||
|
|
||||||
|
- 2026-10-15: the resolver no longer says its query timeout grows on each try;
|
||||||
|
every try waits the same 2 seconds, and the unused `timeoutMultiplier` is gone
|
||||||
|
(closes #296).
|
||||||
- 2026-10-15: `TESTING.md` Constraints give the resolver's 2-second query
|
- 2026-10-15: `TESTING.md` Constraints give the resolver's 2-second query
|
||||||
timeout and second try, say a zone's servers are asked one at a time in a
|
timeout and second try, say a zone's servers are asked one at a time in a
|
||||||
random order, give the 60-second cap and 20-second target for `make test`, and
|
random order, give the 60-second cap and 20-second target for `make test`, and
|
||||||
|
|||||||
@@ -19,7 +19,6 @@ const (
|
|||||||
queryTimeoutDuration = 2 * time.Second
|
queryTimeoutDuration = 2 * time.Second
|
||||||
maxRetries = 2
|
maxRetries = 2
|
||||||
maxDelegation = 20
|
maxDelegation = 20
|
||||||
timeoutMultiplier = 2
|
|
||||||
|
|
||||||
// maxLookupDepth is how many lookups of nameserver addresses may be
|
// maxLookupDepth is how many lookups of nameserver addresses may be
|
||||||
// under way one inside another. Looking up a nameserver's address
|
// under way one inside another. Looking up a nameserver's address
|
||||||
@@ -62,19 +61,8 @@ func checkCtx(ctx context.Context) error {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (r *Resolver) exchangeWithTimeout(
|
// tryExchange sends msg to addr over UDP, up to maxRetries times, until
|
||||||
ctx context.Context,
|
// a reply comes. Every try waits the same queryTimeoutDuration.
|
||||||
msg *dns.Msg,
|
|
||||||
addr string,
|
|
||||||
attempt int,
|
|
||||||
) (*dns.Msg, error) {
|
|
||||||
_ = attempt // timeout escalation handled by client config
|
|
||||||
|
|
||||||
resp, _, err := r.client.ExchangeContext(ctx, msg, addr)
|
|
||||||
|
|
||||||
return resp, err
|
|
||||||
}
|
|
||||||
|
|
||||||
func (r *Resolver) tryExchange(
|
func (r *Resolver) tryExchange(
|
||||||
ctx context.Context,
|
ctx context.Context,
|
||||||
msg *dns.Msg,
|
msg *dns.Msg,
|
||||||
@@ -84,14 +72,12 @@ func (r *Resolver) tryExchange(
|
|||||||
|
|
||||||
var err error
|
var err error
|
||||||
|
|
||||||
for attempt := range maxRetries {
|
for range maxRetries {
|
||||||
if checkCtx(ctx) != nil {
|
if checkCtx(ctx) != nil {
|
||||||
return nil, ErrContextCanceled
|
return nil, ErrContextCanceled
|
||||||
}
|
}
|
||||||
|
|
||||||
resp, err = r.exchangeWithTimeout(
|
resp, _, err = r.client.ExchangeContext(ctx, msg, addr)
|
||||||
ctx, msg, addr, attempt,
|
|
||||||
)
|
|
||||||
if err == nil {
|
if err == nil {
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user