From ac2d07b61a0fb967bd030bcf60c099658d09002e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=B8=96=E7=95=8C?= Date: Tue, 3 Oct 2023 11:08:25 +0800 Subject: [PATCH] Fix UDP dialer network --- common/dialer/default.go | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/common/dialer/default.go b/common/dialer/default.go index f8546fa6..9fbd1d8e 100644 --- a/common/dialer/default.go +++ b/common/dialer/default.go @@ -137,10 +137,12 @@ func (d *DefaultDialer) DialContext(ctx context.Context, network string, address } func (d *DefaultDialer) ListenPacket(ctx context.Context, destination M.Socksaddr) (net.PacketConn, error) { - if !destination.IsIPv6() { - return trackPacketConn(d.udpListener.ListenPacket(ctx, N.NetworkUDP, d.udpAddr4)) - } else { + if destination.IsIPv6() { return trackPacketConn(d.udpListener.ListenPacket(ctx, N.NetworkUDP, d.udpAddr6)) + } else if destination.IsIPv4() && !destination.Addr.IsUnspecified() { + return trackPacketConn(d.udpListener.ListenPacket(ctx, N.NetworkUDP+"4", d.udpAddr4)) + } else { + return trackPacketConn(d.udpListener.ListenPacket(ctx, N.NetworkUDP, d.udpAddr4)) } }