From a8091761d7a964328cf8f3d76b747b2e91e73e48 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=B8=96=E7=95=8C?= Date: Sun, 9 Aug 2026 21:38:32 +0800 Subject: [PATCH] Fix missing process info in hijacked DNS queries --- route/dns.go | 3 +++ 1 file changed, 3 insertions(+) diff --git a/route/dns.go b/route/dns.go index c65778cd..5aaf4b1b 100644 --- a/route/dns.go +++ b/route/dns.go @@ -18,6 +18,7 @@ import ( ) func (r *Router) hijackDNSStream(ctx context.Context, conn net.Conn, metadata adapter.InboundContext) error { + r.searchProcessInfo(ctx, &metadata) metadata.Destination = M.Socksaddr{} for { conn.SetReadDeadline(time.Now().Add(C.DNSTimeout)) @@ -33,6 +34,7 @@ func (r *Router) hijackDNSStream(ctx context.Context, conn net.Conn, metadata ad } func (r *Router) hijackDNSPacket(ctx context.Context, conn N.PacketConn, packetBuffers []*N.PacketBuffer, metadata adapter.InboundContext, onClose N.CloseHandlerFunc) error { + r.searchProcessInfo(ctx, &metadata) err := dnsOutbound.NewDNSPacketConnection(ctx, r.dns, conn, packetBuffers, metadata) N.CloseOnHandshakeFailure(conn, onClose, err) if err != nil && !E.IsClosedOrCanceled(err) { @@ -48,6 +50,7 @@ func (r *Router) HijackDNSPacket(ctx context.Context, payload []byte, writer N.P r.logger.ErrorContext(ctx, E.Cause(err, "process DNS packet: unpack request")) return } + r.searchProcessInfo(ctx, &metadata) destination := metadata.Destination metadata.Destination = M.Socksaddr{} r.dns.ExchangeAsync(adapter.WithContext(ctx, &metadata), &message, adapter.DNSQueryOptions{}, func(response *mDNS.Msg, exchangeErr error) {