From 69deed91df884161c0046d89b3bc311942a5a1ae Mon Sep 17 00:00:00 2001 From: nite Date: Thu, 12 Jun 2025 15:48:59 +1000 Subject: [PATCH] Refactor Shadowsocks and Socks parsers to simplify username and password extraction --- parser/shadowsocks.go | 18 ++---------------- parser/socks.go | 27 +++------------------------ 2 files changed, 5 insertions(+), 40 deletions(-) diff --git a/parser/shadowsocks.go b/parser/shadowsocks.go index 9e6b1f3..ba0adae 100644 --- a/parser/shadowsocks.go +++ b/parser/shadowsocks.go @@ -99,22 +99,8 @@ func (p *ShadowsocksParser) Parse(proxy string) (P.Proxy, error) { if err == nil { methodAndPass := strings.SplitN(decodedStr, ":", 2) if len(methodAndPass) == 2 { - method, err = url.QueryUnescape(methodAndPass[0]) - if err != nil { - return P.Proxy{}, &ParseError{ - Type: ErrInvalidStruct, - Message: "invalid method", - Raw: proxy, - } - } - password, err = url.QueryUnescape(methodAndPass[1]) - if err != nil { - return P.Proxy{}, &ParseError{ - Type: ErrInvalidStruct, - Message: "invalid password", - Raw: proxy, - } - } + method = methodAndPass[0] + password = methodAndPass[1] } else { method = decodedStr } diff --git a/parser/socks.go b/parser/socks.go index d0edfcb..23e5aea 100644 --- a/parser/socks.go +++ b/parser/socks.go @@ -78,31 +78,10 @@ func (p *SocksParser) Parse(proxy string) (P.Proxy, error) { if err == nil { usernameAndPassword := strings.SplitN(decodedStr, ":", 2) if len(usernameAndPassword) == 2 { - username, err = url.QueryUnescape(usernameAndPassword[0]) - if err != nil { - return P.Proxy{}, &ParseError{ - Type: ErrInvalidStruct, - Message: "invalid username", - Raw: proxy, - } - } - password, err = url.QueryUnescape(usernameAndPassword[1]) - if err != nil { - return P.Proxy{}, &ParseError{ - Type: ErrInvalidStruct, - Message: "invalid password", - Raw: proxy, - } - } + username = usernameAndPassword[0] + password = usernameAndPassword[1] } else { - username, err = url.QueryUnescape(decodedStr) - if err != nil { - return P.Proxy{}, &ParseError{ - Type: ErrInvalidStruct, - Message: "invalid username", - Raw: proxy, - } - } + username = decodedStr } } }