@@ -17,10 +17,19 @@ import (
1717 "golang.org/x/net/proxy"
1818)
1919
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+
2025type ContextDialer struct {
2126 dialer proxy.Dialer
2227}
2328
29+ func (c * ContextDialer ) Dial (network , addr string ) (net.Conn , error ) {
30+ return c .dialer .Dial (network , addr )
31+ }
32+
2433func (c * ContextDialer ) DialContext (ctx context.Context , network , addr string ) (net.Conn , error ) {
2534 connChan := make (chan net.Conn , 1 )
2635 errChan := make (chan error , 1 )
@@ -72,11 +81,11 @@ type Proxy struct {
7281 Command string
7382
7483 // Forwarder set Dialer.
75- Forwarder proxy. Dialer
84+ Forwarder ProxyDialer
7685}
7786
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 ) {
8089 var proxyDialer proxy.Dialer
8190 switch p .Type {
8291 case "http" , "https" :
@@ -92,7 +101,7 @@ func (p *Proxy) CreateProxyDialer() (proxyContextDialer proxy.ContextDialer, err
92101 return
93102}
94103
95- // CreateHttpProxy return proxy.Dialer as http proxy.
104+ // CreateHttpProxy return ProxyDialer as http proxy.
96105func (p * Proxy ) CreateHttpProxyDialer () (proxyDialer proxy.Dialer , err error ) {
97106 // Regist dialer
98107 proxy .RegisterDialerType ("http" , newHttpProxy )
@@ -119,7 +128,7 @@ func (p *Proxy) CreateHttpProxyDialer() (proxyDialer proxy.Dialer, err error) {
119128 return
120129}
121130
122- // CreateSocks5Proxy return proxy.Dialer as Socks5 proxy.
131+ // CreateSocks5Proxy return ProxyDialer as Socks5 proxy.
123132func (p * Proxy ) CreateSocks5ProxyDialer () (proxyDialer proxy.Dialer , err error ) {
124133 var proxyAuth * proxy.Auth
125134
@@ -128,7 +137,7 @@ func (p *Proxy) CreateSocks5ProxyDialer() (proxyDialer proxy.Dialer, err error)
128137 proxyAuth .Password = p .Password
129138 }
130139
131- var forwarder proxy. Dialer
140+ var forwarder ProxyDialer
132141 forwarder = proxy .Direct
133142 if p .Forwarder != nil {
134143 forwarder = p .Forwarder
0 commit comments