From 6d1c62bbf036e7a6c471a1bf0ca6fae27ffa48bd Mon Sep 17 00:00:00 2001 From: wwqgtxx Date: Wed, 8 May 2024 09:27:13 +0800 Subject: [PATCH] fix: shadowsocks uot not work with dialer-proxy --- adapter/outbound/shadowsocks.go | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/adapter/outbound/shadowsocks.go b/adapter/outbound/shadowsocks.go index 98932f0c41..714c4a7d68 100644 --- a/adapter/outbound/shadowsocks.go +++ b/adapter/outbound/shadowsocks.go @@ -166,18 +166,18 @@ func (ss *ShadowSocks) ListenPacketContext(ctx context.Context, metadata *C.Meta // ListenPacketWithDialer implements C.ProxyAdapter func (ss *ShadowSocks) ListenPacketWithDialer(ctx context.Context, dialer C.Dialer, metadata *C.Metadata) (_ C.PacketConn, err error) { - if len(ss.option.DialerProxy) > 0 { - dialer, err = proxydialer.NewByName(ss.option.DialerProxy, dialer) + if ss.option.UDPOverTCP { + tcpConn, err := ss.DialContextWithDialer(ctx, dialer, metadata) if err != nil { return nil, err } + return ss.ListenPacketOnStreamConn(ctx, tcpConn, metadata) } - if ss.option.UDPOverTCP { - tcpConn, err := ss.DialContextWithDialer(ctx, dialer, metadata) + if len(ss.option.DialerProxy) > 0 { + dialer, err = proxydialer.NewByName(ss.option.DialerProxy, dialer) if err != nil { return nil, err } - return ss.ListenPacketOnStreamConn(ctx, tcpConn, metadata) } addr, err := resolveUDPAddrWithPrefer(ctx, "udp", ss.addr, ss.prefer) if err != nil {