From ecfd550a958a0bee74eeb24d5b16f093af22e41e Mon Sep 17 00:00:00 2001 From: 9seconds Date: Fri, 5 Mar 2021 18:26:13 +0300 Subject: [PATCH] Change signature of socks5 dialer --- mtglib/network/interfaces.go | 1 + mtglib/network/socks5.go | 10 ++-------- mtglib/network/socks5_test.go | 6 ++++-- 3 files changed, 7 insertions(+), 10 deletions(-) diff --git a/mtglib/network/interfaces.go b/mtglib/network/interfaces.go index 4c7f972..2f450ae 100644 --- a/mtglib/network/interfaces.go +++ b/mtglib/network/interfaces.go @@ -6,5 +6,6 @@ import ( ) type Dialer interface { + Dial(network, address string) (net.Conn, error) DialContext(ctx context.Context, network, address string) (net.Conn, error) } diff --git a/mtglib/network/socks5.go b/mtglib/network/socks5.go index 8ed895c..af4df25 100644 --- a/mtglib/network/socks5.go +++ b/mtglib/network/socks5.go @@ -3,18 +3,12 @@ package network import ( "fmt" "net/url" - "time" "golang.org/x/net/proxy" ) -func NewSocks5Dialer(proxyURL *url.URL, timeout time.Duration, bufferSize int) (Dialer, error) { - dialer, err := NewDefaultDialer(timeout, bufferSize) - if err != nil { - return nil, fmt.Errorf("cannot initialize base dialer: %w", err) - } - - rv, err := proxy.FromURL(proxyURL, dialer.(*defaultDialer)) +func NewSocks5Dialer(proxyURL *url.URL, base Dialer) (Dialer, error) { + rv, err := proxy.FromURL(proxyURL, base) if err != nil { return nil, fmt.Errorf("cannot initialize socks5 proxy dialer: %w", err) } diff --git a/mtglib/network/socks5_test.go b/mtglib/network/socks5_test.go index 9f5e285..0b1ec34 100644 --- a/mtglib/network/socks5_test.go +++ b/mtglib/network/socks5_test.go @@ -14,6 +14,7 @@ import ( type Socks5TestSuite struct { HTTPServerTestSuite + baseDialer network.Dialer socksListener net.Listener socksProxy *socks5.Server } @@ -29,6 +30,7 @@ func (suite *Socks5TestSuite) SetupSuite() { suite.socksProxy, _ = socks5.New(&socksConf) suite.socksListener, _ = net.Listen("tcp", "127.0.0.1:0") + suite.baseDialer, _ = network.NewDefaultDialer(0, 0) go suite.socksProxy.Serve(suite.socksListener) } @@ -45,7 +47,7 @@ func (suite *Socks5TestSuite) TestRequestFailed() { User: url.UserPassword("user2", "password"), Host: suite.socksListener.Addr().String(), } - dialer, _ := network.NewSocks5Dialer(proxyURL, 0, 0) + dialer, _ := network.NewSocks5Dialer(proxyURL, suite.baseDialer) httpClient := http.Client{ Transport: &http.Transport{ @@ -64,7 +66,7 @@ func (suite *Socks5TestSuite) TestRequestOk() { User: url.UserPassword("user", "password"), Host: suite.socksListener.Addr().String(), } - dialer, _ := network.NewSocks5Dialer(proxyURL, 0, 0) + dialer, _ := network.NewSocks5Dialer(proxyURL, suite.baseDialer) httpClient := http.Client{ Transport: &http.Transport{