@@ -17,10 +17,19 @@ import (
17
17
"golang.org/x/net/proxy"
18
18
)
19
19
20
+ type ProxyDialer interface {
21
+ Dial (network , addr string ) (net.Conn , error )
22
+ DialContext (ctx context.Context , network , addr string ) (net.Conn , error )
23
+ }
24
+
20
25
type ContextDialer struct {
21
26
dialer proxy.Dialer
22
27
}
23
28
29
+ func (c * ContextDialer ) Dial (network , addr string ) (net.Conn , error ) {
30
+ return c .dialer .Dial (network , addr )
31
+ }
32
+
24
33
func (c * ContextDialer ) DialContext (ctx context.Context , network , addr string ) (net.Conn , error ) {
25
34
connChan := make (chan net.Conn , 1 )
26
35
errChan := make (chan error , 1 )
@@ -72,11 +81,11 @@ type Proxy struct {
72
81
Command string
73
82
74
83
// Forwarder set Dialer.
75
- Forwarder proxy. Dialer
84
+ Forwarder ProxyDialer
76
85
}
77
86
78
- // CreateProxyDialer retrun proxy.Dialer .
79
- func (p * Proxy ) CreateProxyDialer () (proxyContextDialer proxy. ContextDialer , err error ) {
87
+ // CreateProxyDialer retrun ProxyDialer .
88
+ func (p * Proxy ) CreateProxyDialer () (proxyContextDialer ProxyDialer , err error ) {
80
89
var proxyDialer proxy.Dialer
81
90
switch p .Type {
82
91
case "http" , "https" :
@@ -92,7 +101,7 @@ func (p *Proxy) CreateProxyDialer() (proxyContextDialer proxy.ContextDialer, err
92
101
return
93
102
}
94
103
95
- // CreateHttpProxy return proxy.Dialer as http proxy.
104
+ // CreateHttpProxy return ProxyDialer as http proxy.
96
105
func (p * Proxy ) CreateHttpProxyDialer () (proxyDialer proxy.Dialer , err error ) {
97
106
// Regist dialer
98
107
proxy .RegisterDialerType ("http" , newHttpProxy )
@@ -119,7 +128,7 @@ func (p *Proxy) CreateHttpProxyDialer() (proxyDialer proxy.Dialer, err error) {
119
128
return
120
129
}
121
130
122
- // CreateSocks5Proxy return proxy.Dialer as Socks5 proxy.
131
+ // CreateSocks5Proxy return ProxyDialer as Socks5 proxy.
123
132
func (p * Proxy ) CreateSocks5ProxyDialer () (proxyDialer proxy.Dialer , err error ) {
124
133
var proxyAuth * proxy.Auth
125
134
@@ -128,7 +137,7 @@ func (p *Proxy) CreateSocks5ProxyDialer() (proxyDialer proxy.Dialer, err error)
128
137
proxyAuth .Password = p .Password
129
138
}
130
139
131
- var forwarder proxy. Dialer
140
+ var forwarder ProxyDialer
132
141
forwarder = proxy .Direct
133
142
if p .Forwarder != nil {
134
143
forwarder = p .Forwarder
0 commit comments