From f40ea7eb40ad517f7268ba78ff1c4e3b9f62fbde Mon Sep 17 00:00:00 2001 From: kiyon Date: Sat, 6 Mar 2021 00:38:59 +0800 Subject: [PATCH] Improve socks proxy (#990) * Improve documentation about DelClientCookie which related with #951. * use proxy.FromURL to support auth --- fasthttpproxy/socks5.go | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/fasthttpproxy/socks5.go b/fasthttpproxy/socks5.go index 5752704..b3339a4 100644 --- a/fasthttpproxy/socks5.go +++ b/fasthttpproxy/socks5.go @@ -2,6 +2,7 @@ package fasthttpproxy import ( "net" + "net/url" "github.com/valyala/fasthttp" "golang.org/x/net/proxy" @@ -15,7 +16,14 @@ import ( // Dial: fasthttpproxy.FasthttpSocksDialer("localhost:9050"), // } func FasthttpSocksDialer(proxyAddr string) fasthttp.DialFunc { - dialer, err := proxy.SOCKS5("tcp", proxyAddr, nil, proxy.Direct) + var ( + u *url.URL + err error + dialer proxy.Dialer + ) + if u, err = url.Parse(proxyAddr); err == nil { + dialer, err = proxy.FromURL(u, proxy.Direct) + } // It would be nice if we could return the error here. But we can't // change our API so just keep returning it in the returned Dial function. // Besides the implementation of proxy.SOCKS5() at the time of writing this