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

Merge pull request #367 from saleacy/patch-1

fix: ensure network.Dial and MakeHTTPClient use socks5 proxy
tags/v2.2.1^2^2
Sergei Arkhipov 1 месяц назад
Родитель
Сommit
df7ddc3d6a
Аккаунт пользователя с таким Email не найден
1 измененных файлов: 15 добавлений и 0 удалений
  1. 15
    0
      network/v2/proxy_network.go

+ 15
- 0
network/v2/proxy_network.go Просмотреть файл

3
 import (
3
 import (
4
 	"context"
4
 	"context"
5
 	"fmt"
5
 	"fmt"
6
+	"net/http"
6
 	"net/url"
7
 	"net/url"
7
 
8
 
8
 	"github.com/9seconds/mtg/v2/essentials"
9
 	"github.com/9seconds/mtg/v2/essentials"
15
 	client proxy.ContextDialer
16
 	client proxy.ContextDialer
16
 }
17
 }
17
 
18
 
19
+func (p proxyNetwork) Dial(network, address string) (essentials.Conn, error) {
20
+	return p.DialContext(context.Background(), network, address)
21
+}
22
+
18
 func (p proxyNetwork) DialContext(ctx context.Context, network, address string) (essentials.Conn, error) {
23
 func (p proxyNetwork) DialContext(ctx context.Context, network, address string) (essentials.Conn, error) {
19
 	conn, err := p.client.DialContext(ctx, network, address)
24
 	conn, err := p.client.DialContext(ctx, network, address)
20
 	if err != nil {
25
 	if err != nil {
24
 	return essentials.WrapNetConn(conn), nil
29
 	return essentials.WrapNetConn(conn), nil
25
 }
30
 }
26
 
31
 
32
+func (p proxyNetwork) MakeHTTPClient(
33
+	dialFunc func(context.Context, string, string) (essentials.Conn, error),
34
+) *http.Client {
35
+	if dialFunc == nil {
36
+		dialFunc = p.DialContext
37
+	}
38
+
39
+	return p.Network.MakeHTTPClient(dialFunc)
40
+}
41
+
27
 func NewProxyNetwork(base mtglib.Network, proxyURL *url.URL) (*proxyNetwork, error) {
42
 func NewProxyNetwork(base mtglib.Network, proxyURL *url.URL) (*proxyNetwork, error) {
28
 	socks, err := proxy.FromURL(proxyURL, base.NativeDialer())
43
 	socks, err := proxy.FromURL(proxyURL, base.NativeDialer())
29
 	if err != nil {
44
 	if err != nil {

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