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

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
 )
6
 )
7
 
7
 
8
 type Dialer interface {
8
 type Dialer interface {
9
+	Dial(network, address string) (net.Conn, error)
9
 	DialContext(ctx context.Context, network, address string) (net.Conn, error)
10
 	DialContext(ctx context.Context, network, address string) (net.Conn, error)
10
 }
11
 }

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

3
 import (
3
 import (
4
 	"fmt"
4
 	"fmt"
5
 	"net/url"
5
 	"net/url"
6
-	"time"
7
 
6
 
8
 	"golang.org/x/net/proxy"
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
 	if err != nil {
12
 	if err != nil {
19
 		return nil, fmt.Errorf("cannot initialize socks5 proxy dialer: %w", err)
13
 		return nil, fmt.Errorf("cannot initialize socks5 proxy dialer: %w", err)
20
 	}
14
 	}

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

14
 type Socks5TestSuite struct {
14
 type Socks5TestSuite struct {
15
 	HTTPServerTestSuite
15
 	HTTPServerTestSuite
16
 
16
 
17
+	baseDialer    network.Dialer
17
 	socksListener net.Listener
18
 	socksListener net.Listener
18
 	socksProxy    *socks5.Server
19
 	socksProxy    *socks5.Server
19
 }
20
 }
29
 
30
 
30
 	suite.socksProxy, _ = socks5.New(&socksConf)
31
 	suite.socksProxy, _ = socks5.New(&socksConf)
31
 	suite.socksListener, _ = net.Listen("tcp", "127.0.0.1:0")
32
 	suite.socksListener, _ = net.Listen("tcp", "127.0.0.1:0")
33
+    suite.baseDialer, _ = network.NewDefaultDialer(0, 0)
32
 
34
 
33
 	go suite.socksProxy.Serve(suite.socksListener)
35
 	go suite.socksProxy.Serve(suite.socksListener)
34
 }
36
 }
45
 		User:   url.UserPassword("user2", "password"),
47
 		User:   url.UserPassword("user2", "password"),
46
 		Host:   suite.socksListener.Addr().String(),
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
 	httpClient := http.Client{
52
 	httpClient := http.Client{
51
 		Transport: &http.Transport{
53
 		Transport: &http.Transport{
64
 		User:   url.UserPassword("user", "password"),
66
 		User:   url.UserPassword("user", "password"),
65
 		Host:   suite.socksListener.Addr().String(),
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
 	httpClient := http.Client{
71
 	httpClient := http.Client{
70
 		Transport: &http.Transport{
72
 		Transport: &http.Transport{

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