From 263b979e9ec7c2f54938da07931cdd72b870443f Mon Sep 17 00:00:00 2001 From: dyhkwong <50692134+dyhkwong@users.noreply.github.com> Date: Sun, 14 Apr 2024 21:57:35 +0800 Subject: [PATCH 1/2] Unify local DNS behavior of Cgo and pure Go resolver --- transport_local.go | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/transport_local.go b/transport_local.go index 0852046..664342d 100644 --- a/transport_local.go +++ b/transport_local.go @@ -8,8 +8,6 @@ import ( "sort" "github.com/sagernet/sing/common" - M "github.com/sagernet/sing/common/metadata" - N "github.com/sagernet/sing/common/network" "github.com/miekg/dns" ) @@ -30,11 +28,6 @@ type LocalTransport struct { func NewLocalTransport(options TransportOptions) *LocalTransport { return &LocalTransport{ name: options.Name, - resolver: net.Resolver{ - Dial: func(ctx context.Context, network, address string) (net.Conn, error) { - return options.Dialer.DialContext(ctx, N.NetworkName(network), M.ParseSocksaddr(address)) - }, - }, } } @@ -71,7 +64,7 @@ func (t *LocalTransport) Lookup(ctx context.Context, domain string, strategy Dom case DomainStrategyUseIPv6: network = "ip6" } - addrs, err := t.resolver.LookupNetIP(ctx, network, domain) + addrs, err := t.resolver.LookupNetIP(context.Background(), network, domain) if err != nil { return nil, err } From 610d2cd7d008d26dc2c89de1abaa617214f6f800 Mon Sep 17 00:00:00 2001 From: dyhkwong <50692134+dyhkwong@users.noreply.github.com> Date: Mon, 15 Apr 2024 12:44:57 +0800 Subject: [PATCH 2/2] Update transport_local.go --- transport_local.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/transport_local.go b/transport_local.go index 664342d..cae283a 100644 --- a/transport_local.go +++ b/transport_local.go @@ -64,7 +64,7 @@ func (t *LocalTransport) Lookup(ctx context.Context, domain string, strategy Dom case DomainStrategyUseIPv6: network = "ip6" } - addrs, err := t.resolver.LookupNetIP(context.Background(), network, domain) + addrs, err := t.resolver.LookupNetIP(ctx, network, domain) if err != nil { return nil, err }