From fb71729fa60a1ecc817509e1ecfbe26f6d875fc5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=B8=89=E5=8D=83?= <821923589@qq.com> Date: Sun, 9 Feb 2025 22:14:13 +0800 Subject: [PATCH] Fix critical issues in proxy URL handling. Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> --- proxy/dial.go | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/proxy/dial.go b/proxy/dial.go index 9fd1b01..69d35ab 100644 --- a/proxy/dial.go +++ b/proxy/dial.go @@ -9,16 +9,22 @@ import ( "golang.org/x/net/proxy" ) -func newProxyDial(prxoyUrls string) proxy.Dialer { +func newProxyDial(proxyUrls string) proxy.Dialer { var proxyDialer proxy.Dialer = proxy.Direct - for _, prxoyUrl := range strings.Split(prxoyUrls, ",") { - urlInfo, err := url.Parse(prxoyUrl) + for _, proxyUrl := range strings.Split(proxyUrls, ",") { + urlInfo, err := url.Parse(proxyUrl) if err != nil { - return proxyDialer + continue + } + if urlInfo.Scheme != "socks5" { + continue } var auth *proxy.Auth = nil if urlInfo.User != nil { - pwd, _ := urlInfo.User.Password() + pwd, ok := urlInfo.User.Password() + if !ok { + continue + } auth = &proxy.Auth{ User: urlInfo.User.Username(), Password: pwd,