chore: wireguard using internal dialer

This commit is contained in:
wwqgtxx
2023-03-07 09:30:51 +08:00
parent 545a79d406
commit 9cc7fdaca9
3 changed files with 57 additions and 23 deletions

View File

@@ -1,6 +1,9 @@
package dialer
import (
"context"
"net"
"github.com/Dreamacro/clash/component/resolver"
"go.uber.org/atomic"
@@ -12,6 +15,10 @@ var (
DefaultRoutingMark = atomic.NewInt32(0)
)
type NetDialer interface {
DialContext(ctx context.Context, network, address string) (net.Conn, error)
}
type option struct {
interfaceName string
addrReuse bool
@@ -20,6 +27,7 @@ type option struct {
prefer int
tfo bool
resolver resolver.Resolver
netDialer NetDialer
}
type Option func(opt *option)
@@ -76,6 +84,12 @@ func WithTFO(tfo bool) Option {
}
}
func WithNetDialer(netDialer NetDialer) Option {
return func(opt *option) {
opt.netDialer = netDialer
}
}
func WithOption(o option) Option {
return func(opt *option) {
*opt = o