Просмотр исходного кода

Change signature of socks5 dialer

tags/v2.0.0-rc1
9seconds 5 лет назад
Родитель
Сommit
ecfd550a95
3 измененных файлов: 7 добавлений и 10 удалений
  1. 1
    0
      mtglib/network/interfaces.go
  2. 2
    8
      mtglib/network/socks5.go
  3. 4
    2
      mtglib/network/socks5_test.go

+ 1
- 0
mtglib/network/interfaces.go Просмотреть файл

@@ -6,5 +6,6 @@ import (
6 6
 )
7 7
 
8 8
 type Dialer interface {
9
+	Dial(network, address string) (net.Conn, error)
9 10
 	DialContext(ctx context.Context, network, address string) (net.Conn, error)
10 11
 }

+ 2
- 8
mtglib/network/socks5.go Просмотреть файл

@@ -3,18 +3,12 @@ package network
3 3
 import (
4 4
 	"fmt"
5 5
 	"net/url"
6
-	"time"
7 6
 
8 7
 	"golang.org/x/net/proxy"
9 8
 )
10 9
 
11
-func NewSocks5Dialer(proxyURL *url.URL, timeout time.Duration, bufferSize int) (Dialer, error) {
12
-	dialer, err := NewDefaultDialer(timeout, bufferSize)
13
-	if err != nil {
14
-		return nil, fmt.Errorf("cannot initialize base dialer: %w", err)
15
-	}
16
-
17
-	rv, err := proxy.FromURL(proxyURL, dialer.(*defaultDialer))
10
+func NewSocks5Dialer(proxyURL *url.URL, base Dialer) (Dialer, error) {
11
+	rv, err := proxy.FromURL(proxyURL, base)
18 12
 	if err != nil {
19 13
 		return nil, fmt.Errorf("cannot initialize socks5 proxy dialer: %w", err)
20 14
 	}

+ 4
- 2
mtglib/network/socks5_test.go Просмотреть файл

@@ -14,6 +14,7 @@ import (
14 14
 type Socks5TestSuite struct {
15 15
 	HTTPServerTestSuite
16 16
 
17
+	baseDialer    network.Dialer
17 18
 	socksListener net.Listener
18 19
 	socksProxy    *socks5.Server
19 20
 }
@@ -29,6 +30,7 @@ func (suite *Socks5TestSuite) SetupSuite() {
29 30
 
30 31
 	suite.socksProxy, _ = socks5.New(&socksConf)
31 32
 	suite.socksListener, _ = net.Listen("tcp", "127.0.0.1:0")
33
+    suite.baseDialer, _ = network.NewDefaultDialer(0, 0)
32 34
 
33 35
 	go suite.socksProxy.Serve(suite.socksListener)
34 36
 }
@@ -45,7 +47,7 @@ func (suite *Socks5TestSuite) TestRequestFailed() {
45 47
 		User:   url.UserPassword("user2", "password"),
46 48
 		Host:   suite.socksListener.Addr().String(),
47 49
 	}
48
-	dialer, _ := network.NewSocks5Dialer(proxyURL, 0, 0)
50
+	dialer, _ := network.NewSocks5Dialer(proxyURL, suite.baseDialer)
49 51
 
50 52
 	httpClient := http.Client{
51 53
 		Transport: &http.Transport{
@@ -64,7 +66,7 @@ func (suite *Socks5TestSuite) TestRequestOk() {
64 66
 		User:   url.UserPassword("user", "password"),
65 67
 		Host:   suite.socksListener.Addr().String(),
66 68
 	}
67
-	dialer, _ := network.NewSocks5Dialer(proxyURL, 0, 0)
69
+	dialer, _ := network.NewSocks5Dialer(proxyURL, suite.baseDialer)
68 70
 
69 71
 	httpClient := http.Client{
70 72
 		Transport: &http.Transport{

Загрузка…
Отмена
Сохранить