From ea18a0d490bee428f6c90106241cd8956b4c1854 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=B8=96=E7=95=8C?= Date: Tue, 31 Mar 2026 15:37:10 +0800 Subject: [PATCH] dns: populate reverse mapping for legacy predefined responses The legacy path returned predefined responses early, bypassing the reverse mapping cache. Use goto to reach the shared post-exchange block so both legacy and new paths record predefined A/AAAA answers. --- dns/router.go | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/dns/router.go b/dns/router.go index ae986d712..0d0c9519d 100644 --- a/dns/router.go +++ b/dns/router.go @@ -759,7 +759,9 @@ func (r *Router) Exchange(ctx context.Context, message *mDNS.Msg, options adapte return nil, tun.ErrDrop } case *R.RuleActionPredefined: - return action.Response(message), nil + err = nil + response = action.Response(message) + goto done } } responseCheck := addressLimitResponseCheck(rule, metadata) @@ -787,6 +789,7 @@ func (r *Router) Exchange(ctx context.Context, message *mDNS.Msg, options adapte break } } +done: if err != nil { return nil, err }