From d1fe17a4db1e444485fede62499135d95ce8c661 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=B8=96=E7=95=8C?= Date: Fri, 25 Nov 2022 17:54:53 +0800 Subject: [PATCH] Fix listen packet on address --- common/dialer/default.go | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/common/dialer/default.go b/common/dialer/default.go index d46bd2e5..8ab080eb 100644 --- a/common/dialer/default.go +++ b/common/dialer/default.go @@ -175,9 +175,13 @@ 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 d.udpListener.ListenPacket(ctx, N.NetworkUDP, d.udpAddr4) + var destinationString string + if destination.IsValid() && !destination.Addr.IsUnspecified() { + destinationString = destination.String() + } else if !destination.IsIPv6() { + destinationString = d.udpAddr4 } else { - return d.udpListener.ListenPacket(ctx, N.NetworkUDP, d.udpAddr6) + destinationString = d.udpAddr6 } + return d.udpListener.ListenPacket(ctx, N.NetworkUDP, destinationString) }