Skip to content

Commit dc42337

Browse files
committed
move to newNetDialerFunc
1 parent 29bba1a commit dc42337

File tree

2 files changed

+21
-13
lines changed

2 files changed

+21
-13
lines changed

client.go

Lines changed: 1 addition & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -246,19 +246,7 @@ func (d *Dialer) DialContext(ctx context.Context, urlStr string, requestHeader h
246246
defer cancel()
247247
}
248248

249-
var netDial netDialerFunc
250-
switch {
251-
case u.Scheme == "https" && d.NetDialTLSContext != nil:
252-
netDial = d.NetDialTLSContext
253-
case d.NetDialContext != nil:
254-
netDial = d.NetDialContext
255-
case d.NetDial != nil:
256-
netDial = func(ctx context.Context, net, addr string) (net.Conn, error) {
257-
return d.NetDial(net, addr)
258-
}
259-
default:
260-
netDial = (&net.Dialer{}).DialContext
261-
}
249+
netDial := newNetDialerFunc(u.Scheme, d.NetDial, d.NetDialContext, d.NetDialTLSContext)
262250

263251
// If needed, wrap the dial function to connect through a proxy.
264252
if d.Proxy != nil {

proxy.go

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,26 @@ import (
1616
"strings"
1717
)
1818

19+
func newNetDialerFunc(
20+
scheme string,
21+
netDial func(network, addr string) (net.Conn, error),
22+
netDialContext func(ctx context.Context, network, addr string) (net.Conn, error),
23+
netDialTLSContext func(ctx context.Context, network, addr string) (net.Conn, error),
24+
) netDialerFunc {
25+
switch {
26+
case scheme == "https" && netDialTLSContext != nil:
27+
return netDialTLSContext
28+
case netDialContext != nil:
29+
return netDialContext
30+
case netDial != nil:
31+
return func(ctx context.Context, net, addr string) (net.Conn, error) {
32+
return netDial(net, addr)
33+
}
34+
default:
35+
return (&net.Dialer{}).DialContext
36+
}
37+
}
38+
1939
type netDialerFunc func(ctx context.Context, network, addr string) (net.Conn, error)
2040

2141
func (fn netDialerFunc) Dial(network, addr string) (net.Conn, error) {

0 commit comments

Comments
 (0)