Skip to content

Commit 98d04a8

Browse files
committed
introduce force-resolve:// dialer
1 parent 0108057 commit 98d04a8

File tree

2 files changed

+15
-3
lines changed

2 files changed

+15
-3
lines changed

dialer/dialer.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,9 @@ func init() {
2424
xproxy.RegisterDialerType("cached", GetCachedDialer)
2525
xproxy.RegisterDialerType("socks5s", SOCKS5SDialerFromURL)
2626
xproxy.RegisterDialerType("socks5hs", SOCKS5SDialerFromURL)
27+
xproxy.RegisterDialerType("force-resolve", func(_ *url.URL, d xproxy.Dialer) (xproxy.Dialer, error) {
28+
return NeverRequireHostname(MaybeWrapWithContextDialer(d)), nil
29+
})
2730
}
2831

2932
type LegacyDialer interface {

dialer/protect.go

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,12 +10,21 @@ type HostnameWanter interface {
1010
}
1111

1212
type WrappedHostnameDialer struct {
13-
Dialer Dialer
13+
Dialer Dialer
14+
WantsHostnameValue bool
1415
}
1516

1617
func AlwaysRequireHostname(d Dialer) Dialer {
1718
return WrappedHostnameDialer{
18-
Dialer: d,
19+
Dialer: d,
20+
WantsHostnameValue: true,
21+
}
22+
}
23+
24+
func NeverRequireHostname(d Dialer) Dialer {
25+
return WrappedHostnameDialer{
26+
Dialer: d,
27+
WantsHostnameValue: false,
1928
}
2029
}
2130

@@ -28,7 +37,7 @@ func (w WrappedHostnameDialer) Dial(network, address string) (net.Conn, error) {
2837
}
2938

3039
func (w WrappedHostnameDialer) WantsHostname(_ context.Context, _, _ string) bool {
31-
return true
40+
return w.WantsHostnameValue
3241
}
3342

3443
var _ Dialer = WrappedHostnameDialer{}

0 commit comments

Comments
 (0)