Fix critical issues in proxy URL handling.

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
This commit is contained in:
三千 2025-02-09 22:14:13 +08:00 committed by GitHub
parent c7aea91c43
commit fb71729fa6
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -9,16 +9,22 @@ import (
"golang.org/x/net/proxy" "golang.org/x/net/proxy"
) )
func newProxyDial(prxoyUrls string) proxy.Dialer { func newProxyDial(proxyUrls string) proxy.Dialer {
var proxyDialer proxy.Dialer = proxy.Direct var proxyDialer proxy.Dialer = proxy.Direct
for _, prxoyUrl := range strings.Split(prxoyUrls, ",") { for _, proxyUrl := range strings.Split(proxyUrls, ",") {
urlInfo, err := url.Parse(prxoyUrl) urlInfo, err := url.Parse(proxyUrl)
if err != nil { if err != nil {
return proxyDialer continue
}
if urlInfo.Scheme != "socks5" {
continue
} }
var auth *proxy.Auth = nil var auth *proxy.Auth = nil
if urlInfo.User != nil { if urlInfo.User != nil {
pwd, _ := urlInfo.User.Password() pwd, ok := urlInfo.User.Password()
if !ok {
continue
}
auth = &proxy.Auth{ auth = &proxy.Auth{
User: urlInfo.User.Username(), User: urlInfo.User.Username(),
Password: pwd, Password: pwd,