dns: return immediately on context cancellation in evaluate exchange

This commit is contained in:
世界
2026-03-31 17:08:52 +08:00
parent 21f3acef81
commit 0e87476ee5

View File

@@ -501,6 +501,9 @@ func (r *Router) exchangeWithRules(ctx context.Context, rules []adapter.DNSRule,
}
response, err := r.client.Exchange(adapter.OverrideContext(ctx), transport, message, exchangeOptions, nil)
if err != nil {
if E.IsClosedOrCanceled(err) {
return exchangeWithRulesResult{err: err}
}
r.logger.ErrorContext(ctx, E.Cause(err, "exchange failed for ", FormatQuestion(message.Question[0].String())))
savedResponse = nil
continue