From 793ce45db0787ae97e8705e56f2f4706cc0e3705 Mon Sep 17 00:00:00 2001 From: wwqgtxx Date: Mon, 21 Apr 2025 22:58:08 +0800 Subject: [PATCH] chore: update quic-go to 0.51.0 --- adapter/outbound/hysteria.go | 11 ++++++----- adapter/outbound/hysteria2.go | 6 +++--- adapter/outbound/tuic.go | 5 +++-- component/tls/utls.go | 2 ++ dns/doh.go | 16 +++++++++------- dns/doq.go | 5 +++-- go.mod | 5 ++--- go.sum | 10 ++++------ listener/sing_hysteria2/server.go | 3 ++- listener/tuic/server.go | 3 ++- transport/hysteria/core/client.go | 6 +++--- transport/hysteria/transport/client.go | 8 ++++---- transport/tuic/server.go | 4 ++-- transport/tuic/v4/client.go | 4 ++-- transport/tuic/v5/client.go | 4 ++-- 15 files changed, 49 insertions(+), 43 deletions(-) diff --git a/adapter/outbound/hysteria.go b/adapter/outbound/hysteria.go index f475680be..56db76017 100644 --- a/adapter/outbound/hysteria.go +++ b/adapter/outbound/hysteria.go @@ -10,13 +10,10 @@ import ( "strconv" "time" - "github.com/metacubex/quic-go" - "github.com/metacubex/quic-go/congestion" - M "github.com/sagernet/sing/common/metadata" - "github.com/metacubex/mihomo/component/ca" "github.com/metacubex/mihomo/component/dialer" "github.com/metacubex/mihomo/component/proxydialer" + tlsC "github.com/metacubex/mihomo/component/tls" C "github.com/metacubex/mihomo/constant" "github.com/metacubex/mihomo/log" hyCongestion "github.com/metacubex/mihomo/transport/hysteria/congestion" @@ -25,6 +22,10 @@ import ( "github.com/metacubex/mihomo/transport/hysteria/pmtud_fix" "github.com/metacubex/mihomo/transport/hysteria/transport" "github.com/metacubex/mihomo/transport/hysteria/utils" + + "github.com/metacubex/quic-go" + "github.com/metacubex/quic-go/congestion" + M "github.com/sagernet/sing/common/metadata" ) const ( @@ -214,7 +215,7 @@ func NewHysteria(option HysteriaOption) (*Hysteria, error) { down = uint64(option.DownSpeed * mbpsToBps) } client, err := core.NewClient( - addr, ports, option.Protocol, auth, tlsConfig, quicConfig, clientTransport, up, down, func(refBPS uint64) congestion.CongestionControl { + addr, ports, option.Protocol, auth, tlsC.UConfig(tlsConfig), quicConfig, clientTransport, up, down, func(refBPS uint64) congestion.CongestionControl { return hyCongestion.NewBrutalSender(congestion.ByteCount(refBPS)) }, obfuscator, hopInterval, option.FastOpen, ) diff --git a/adapter/outbound/hysteria2.go b/adapter/outbound/hysteria2.go index 9f4f17188..c1d356333 100644 --- a/adapter/outbound/hysteria2.go +++ b/adapter/outbound/hysteria2.go @@ -14,14 +14,14 @@ import ( "github.com/metacubex/mihomo/component/ca" "github.com/metacubex/mihomo/component/dialer" "github.com/metacubex/mihomo/component/proxydialer" + tlsC "github.com/metacubex/mihomo/component/tls" C "github.com/metacubex/mihomo/constant" "github.com/metacubex/mihomo/log" tuicCommon "github.com/metacubex/mihomo/transport/tuic/common" - "github.com/metacubex/sing-quic/hysteria2" - "github.com/metacubex/quic-go" "github.com/metacubex/randv2" + "github.com/metacubex/sing-quic/hysteria2" M "github.com/sagernet/sing/common/metadata" ) @@ -165,7 +165,7 @@ func NewHysteria2(option Hysteria2Option) (*Hysteria2, error) { ReceiveBPS: StringToBps(option.Down), SalamanderPassword: salamanderPassword, Password: option.Password, - TLSConfig: tlsConfig, + TLSConfig: tlsC.UConfig(tlsConfig), QUICConfig: quicConfig, UDPDisabled: false, CWND: option.CWND, diff --git a/adapter/outbound/tuic.go b/adapter/outbound/tuic.go index 6616c652b..92b8e7789 100644 --- a/adapter/outbound/tuic.go +++ b/adapter/outbound/tuic.go @@ -14,6 +14,7 @@ import ( "github.com/metacubex/mihomo/component/dialer" "github.com/metacubex/mihomo/component/proxydialer" "github.com/metacubex/mihomo/component/resolver" + tlsC "github.com/metacubex/mihomo/component/tls" C "github.com/metacubex/mihomo/constant" "github.com/metacubex/mihomo/transport/tuic" @@ -284,7 +285,7 @@ func NewTuic(option TuicOption) (*Tuic, error) { if len(option.Token) > 0 { tkn := tuic.GenTKN(option.Token) clientOption := &tuic.ClientOptionV4{ - TlsConfig: tlsConfig, + TlsConfig: tlsC.UConfig(tlsConfig), QuicConfig: quicConfig, Token: tkn, UdpRelayMode: udpRelayMode, @@ -304,7 +305,7 @@ func NewTuic(option TuicOption) (*Tuic, error) { maxUdpRelayPacketSize = tuic.MaxFragSizeV5 } clientOption := &tuic.ClientOptionV5{ - TlsConfig: tlsConfig, + TlsConfig: tlsC.UConfig(tlsConfig), QuicConfig: quicConfig, Uuid: uuid.FromStringOrNil(option.UUID), Password: option.Password, diff --git a/component/tls/utls.go b/component/tls/utls.go index b38849e51..7b67fef10 100644 --- a/component/tls/utls.go +++ b/component/tls/utls.go @@ -104,6 +104,8 @@ func UCertificates(it tls.Certificate) utls.Certificate { } } +type Config = utls.Config + func UConfig(config *tls.Config) *utls.Config { return &utls.Config{ Rand: config.Rand, diff --git a/dns/doh.go b/dns/doh.go index 50c721093..c6f7c67b5 100644 --- a/dns/doh.go +++ b/dns/doh.go @@ -17,8 +17,10 @@ import ( "time" "github.com/metacubex/mihomo/component/ca" + tlsC "github.com/metacubex/mihomo/component/tls" C "github.com/metacubex/mihomo/constant" "github.com/metacubex/mihomo/log" + "github.com/metacubex/quic-go" "github.com/metacubex/quic-go/http3" D "github.com/miekg/dns" @@ -550,23 +552,23 @@ func (doh *dnsOverHTTPS) createTransportH3( Dial: func( ctx context.Context, - // Ignore the address and always connect to the one that we got - // from the bootstrapper. + // Ignore the address and always connect to the one that we got + // from the bootstrapper. _ string, - tlsCfg *tls.Config, + tlsCfg *tlsC.Config, cfg *quic.Config, ) (c quic.EarlyConnection, err error) { return doh.dialQuic(ctx, addr, tlsCfg, cfg) }, DisableCompression: true, - TLSClientConfig: tlsConfig, + TLSClientConfig: tlsC.UConfig(tlsConfig), QUICConfig: doh.getQUICConfig(), } return &http3Transport{baseTransport: rt}, nil } -func (doh *dnsOverHTTPS) dialQuic(ctx context.Context, addr string, tlsCfg *tls.Config, cfg *quic.Config) (quic.EarlyConnection, error) { +func (doh *dnsOverHTTPS) dialQuic(ctx context.Context, addr string, tlsCfg *tlsC.Config, cfg *quic.Config) (quic.EarlyConnection, error) { ip, port, err := net.SplitHostPort(addr) if err != nil { return nil, err @@ -635,7 +637,7 @@ func (doh *dnsOverHTTPS) probeH3( // Run probeQUIC and probeTLS in parallel and see which one is faster. chQuic := make(chan error, 1) chTLS := make(chan error, 1) - go doh.probeQUIC(ctx, addr, probeTLSCfg, chQuic) + go doh.probeQUIC(ctx, addr, tlsC.UConfig(probeTLSCfg), chQuic) go doh.probeTLS(ctx, probeTLSCfg, chTLS) select { @@ -660,7 +662,7 @@ func (doh *dnsOverHTTPS) probeH3( // probeQUIC attempts to establish a QUIC connection to the specified address. // We run probeQUIC and probeTLS in parallel and see which one is faster. -func (doh *dnsOverHTTPS) probeQUIC(ctx context.Context, addr string, tlsConfig *tls.Config, ch chan error) { +func (doh *dnsOverHTTPS) probeQUIC(ctx context.Context, addr string, tlsConfig *tlsC.Config, ch chan error) { startTime := time.Now() conn, err := doh.dialQuic(ctx, addr, tlsConfig, doh.getQUICConfig()) if err != nil { diff --git a/dns/doq.go b/dns/doq.go index 29fdd0066..af0a0d460 100644 --- a/dns/doq.go +++ b/dns/doq.go @@ -13,10 +13,11 @@ import ( "time" "github.com/metacubex/mihomo/component/ca" + tlsC "github.com/metacubex/mihomo/component/tls" C "github.com/metacubex/mihomo/constant" "github.com/metacubex/mihomo/log" - "github.com/metacubex/quic-go" + "github.com/metacubex/quic-go" D "github.com/miekg/dns" ) @@ -338,7 +339,7 @@ func (doq *dnsOverQUIC) openConnection(ctx context.Context) (conn quic.Connectio transport := quic.Transport{Conn: udp} transport.SetCreatedConn(true) // auto close conn transport.SetSingleUse(true) // auto close transport - conn, err = transport.Dial(ctx, &udpAddr, tlsConfig, doq.getQUICConfig()) + conn, err = transport.Dial(ctx, &udpAddr, tlsC.UConfig(tlsConfig), doq.getQUICConfig()) if err != nil { return nil, fmt.Errorf("opening quic connection to %s: %w", doq.addr, err) } diff --git a/go.mod b/go.mod index 1af1accd9..37b00911d 100644 --- a/go.mod +++ b/go.mod @@ -22,9 +22,9 @@ require ( github.com/metacubex/bbolt v0.0.0-20240822011022-aed6d4850399 github.com/metacubex/chacha v0.1.2 github.com/metacubex/gopacket v1.1.20-0.20230608035415-7e2f98a3e759 - github.com/metacubex/quic-go v0.49.1-0.20250212162123-c135a4412996 + github.com/metacubex/quic-go v0.51.1-0.20250421134811-7b4054ad1c06 github.com/metacubex/randv2 v0.2.0 - github.com/metacubex/sing-quic v0.0.0-20250404030904-b2cc8aab562c + github.com/metacubex/sing-quic v0.0.0-20250421142834-9de457d11557 github.com/metacubex/sing-shadowsocks v0.2.8 github.com/metacubex/sing-shadowsocks2 v0.2.2 github.com/metacubex/sing-shadowtls v0.0.0-20250412122235-0e9005731a63 @@ -97,7 +97,6 @@ require ( github.com/pmezard/go-difflib v1.0.0 // indirect github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c // indirect github.com/quic-go/qpack v0.4.0 // indirect - github.com/quic-go/qtls-go1-20 v0.4.1 // indirect github.com/sagernet/nftables v0.3.0-beta.4 // indirect github.com/sina-ghaderi/poly1305 v0.0.0-20220724002748-c5926b03988b // indirect github.com/sina-ghaderi/rabaead v0.0.0-20220730151906-ab6e06b96e8c // indirect diff --git a/go.sum b/go.sum index 4b7965733..236503ac9 100644 --- a/go.sum +++ b/go.sum @@ -107,14 +107,14 @@ github.com/metacubex/gopacket v1.1.20-0.20230608035415-7e2f98a3e759 h1:cjd4biTvO github.com/metacubex/gopacket v1.1.20-0.20230608035415-7e2f98a3e759/go.mod h1:UHOv2xu+RIgLwpXca7TLrXleEd4oR3sPatW6IF8wU88= github.com/metacubex/gvisor v0.0.0-20250324165734-5857f47bd43b h1:RUh4OdVPz/jDrM9MQ2ySuqu2aeBqcA8rtfWUYLZ8RtI= github.com/metacubex/gvisor v0.0.0-20250324165734-5857f47bd43b/go.mod h1:8LpS0IJW1VmWzUm3ylb0e2SK5QDm5lO/2qwWLZgRpBU= -github.com/metacubex/quic-go v0.49.1-0.20250212162123-c135a4412996 h1:B+AP/Pj2/jBDS/kCYjz/x+0BCOKfd2VODYevyeIt+Ds= -github.com/metacubex/quic-go v0.49.1-0.20250212162123-c135a4412996/go.mod h1:ExVjGyEwTUjCFqx+5uxgV7MOoA3fZI+th4D40H35xmY= +github.com/metacubex/quic-go v0.51.1-0.20250421134811-7b4054ad1c06 h1:nE/3zXp8plwp4UYJpEoGnFfDORWRtNs8GNfNlO6vb6U= +github.com/metacubex/quic-go v0.51.1-0.20250421134811-7b4054ad1c06/go.mod h1:9R1NOzCgTcWsdWvOMlmtMuF0uKzuOpsfvEf7U3I8zM0= github.com/metacubex/randv2 v0.2.0 h1:uP38uBvV2SxYfLj53kuvAjbND4RUDfFJjwr4UigMiLs= github.com/metacubex/randv2 v0.2.0/go.mod h1:kFi2SzrQ5WuneuoLLCMkABtiBu6VRrMrWFqSPyj2cxY= github.com/metacubex/sing v0.0.0-20250228041610-d94509dc612a h1:xjPXdDTlIKq4U/KnKpoCtkxD03T8GimtQrvHy/3dN00= github.com/metacubex/sing v0.0.0-20250228041610-d94509dc612a/go.mod h1:ARkL0gM13/Iv5VCZmci/NuoOlePoIsW0m7BWfln/Hak= -github.com/metacubex/sing-quic v0.0.0-20250404030904-b2cc8aab562c h1:OB3WmMA8YPJjE36RjD9X8xlrWGJ4orxbf2R/KAE28b0= -github.com/metacubex/sing-quic v0.0.0-20250404030904-b2cc8aab562c/go.mod h1:g7Mxj7b7zm7YVqD975mk/hSmrb0A0G4bVvIMr2MMzn8= +github.com/metacubex/sing-quic v0.0.0-20250421142834-9de457d11557 h1:wm37PzL7BrtLW1sQWoVBw18w3bfleBUWwFb9Up19HAY= +github.com/metacubex/sing-quic v0.0.0-20250421142834-9de457d11557/go.mod h1:GUYUT+3v6Re4XZeSzwu7UcSf8S9jOQaw8YEsY5ehNTI= github.com/metacubex/sing-shadowsocks v0.2.8 h1:wIhlaigswzjPw4hej75sEvWte3QR0+AJRafgwBHO5B4= github.com/metacubex/sing-shadowsocks v0.2.8/go.mod h1:X3x88XtJpBxG0W0/ECOJL6Ib0SJ3xdniAkU/6/RMWU0= github.com/metacubex/sing-shadowsocks2 v0.2.2 h1:eaf42uVx4Lr21S6MDYs0ZdTvGA0GEhDpb9no4+gdXPo= @@ -162,8 +162,6 @@ github.com/puzpuzpuz/xsync/v3 v3.5.1 h1:GJYJZwO6IdxN/IKbneznS6yPkVC+c3zyY/j19c++ github.com/puzpuzpuz/xsync/v3 v3.5.1/go.mod h1:VjzYrABPabuM4KyBh1Ftq6u8nhwY5tBPKP9jpmh0nnA= github.com/quic-go/qpack v0.4.0 h1:Cr9BXA1sQS2SmDUWjSofMPNKmvF6IiIfDRmgU0w1ZCo= github.com/quic-go/qpack v0.4.0/go.mod h1:UZVnYIfi5GRk+zI9UMaCPsmZ2xKJP7XBUvVyT1Knj9A= -github.com/quic-go/qtls-go1-20 v0.4.1 h1:D33340mCNDAIKBqXuAvexTNMUByrYmFYVfKfDN5nfFs= -github.com/quic-go/qtls-go1-20 v0.4.1/go.mod h1:X9Nh97ZL80Z+bX/gUXMbipO6OxdiDi58b/fMC9mAL+k= github.com/sagernet/cors v1.2.1 h1:Cv5Z8y9YSD6Gm+qSpNrL3LO4lD3eQVvbFYJSG7JCMHQ= github.com/sagernet/cors v1.2.1/go.mod h1:O64VyOjjhrkLmQIjF4KGRrJO/5dVXFdpEmCW/eISRAI= github.com/sagernet/fswatch v0.1.1 h1:YqID+93B7VRfqIH3PArW/XpJv5H4OLEVWDfProGoRQs= diff --git a/listener/sing_hysteria2/server.go b/listener/sing_hysteria2/server.go index a415256f9..dd51896bd 100644 --- a/listener/sing_hysteria2/server.go +++ b/listener/sing_hysteria2/server.go @@ -15,6 +15,7 @@ import ( "github.com/metacubex/mihomo/adapter/outbound" CN "github.com/metacubex/mihomo/common/net" "github.com/metacubex/mihomo/common/sockopt" + tlsC "github.com/metacubex/mihomo/component/tls" C "github.com/metacubex/mihomo/constant" LC "github.com/metacubex/mihomo/listener/config" "github.com/metacubex/mihomo/listener/sing" @@ -124,7 +125,7 @@ func New(config LC.Hysteria2Server, tunnel C.Tunnel, additions ...inbound.Additi SendBPS: outbound.StringToBps(config.Up), ReceiveBPS: outbound.StringToBps(config.Down), SalamanderPassword: salamanderPassword, - TLSConfig: tlsConfig, + TLSConfig: tlsC.UConfig(tlsConfig), QUICConfig: quicConfig, IgnoreClientBandwidth: config.IgnoreClientBandwidth, Handler: h, diff --git a/listener/tuic/server.go b/listener/tuic/server.go index ea4aed8f4..7d54b9053 100644 --- a/listener/tuic/server.go +++ b/listener/tuic/server.go @@ -9,6 +9,7 @@ import ( "github.com/metacubex/mihomo/adapter/inbound" CN "github.com/metacubex/mihomo/common/net" "github.com/metacubex/mihomo/common/sockopt" + tlsC "github.com/metacubex/mihomo/component/tls" C "github.com/metacubex/mihomo/constant" LC "github.com/metacubex/mihomo/listener/config" "github.com/metacubex/mihomo/listener/sing" @@ -123,7 +124,7 @@ func New(config LC.TuicServer, tunnel C.Tunnel, additions ...inbound.Addition) ( option := &tuic.ServerOption{ HandleTcpFn: handleTcpFn, HandleUdpFn: handleUdpFn, - TlsConfig: tlsConfig, + TlsConfig: tlsC.UConfig(tlsConfig), QuicConfig: quicConfig, CongestionController: config.CongestionController, AuthenticationTimeout: time.Duration(config.AuthenticationTimeout) * time.Millisecond, diff --git a/transport/hysteria/core/client.go b/transport/hysteria/core/client.go index 782948c01..03acb943e 100644 --- a/transport/hysteria/core/client.go +++ b/transport/hysteria/core/client.go @@ -3,7 +3,6 @@ package core import ( "bytes" "context" - "crypto/tls" "errors" "fmt" "net" @@ -11,6 +10,7 @@ import ( "sync" "time" + tlsC "github.com/metacubex/mihomo/component/tls" "github.com/metacubex/mihomo/transport/hysteria/obfs" "github.com/metacubex/mihomo/transport/hysteria/pmtud_fix" "github.com/metacubex/mihomo/transport/hysteria/transport" @@ -38,7 +38,7 @@ type Client struct { congestionFactory CongestionFactory obfuscator obfs.Obfuscator - tlsConfig *tls.Config + tlsConfig *tlsC.Config quicConfig *quic.Config quicSession quic.Connection @@ -52,7 +52,7 @@ type Client struct { fastOpen bool } -func NewClient(serverAddr string, serverPorts string, protocol string, auth []byte, tlsConfig *tls.Config, quicConfig *quic.Config, +func NewClient(serverAddr string, serverPorts string, protocol string, auth []byte, tlsConfig *tlsC.Config, quicConfig *quic.Config, transport *transport.ClientTransport, sendBPS uint64, recvBPS uint64, congestionFactory CongestionFactory, obfuscator obfs.Obfuscator, hopInterval time.Duration, fastOpen bool) (*Client, error) { quicConfig.DisablePathMTUDiscovery = quicConfig.DisablePathMTUDiscovery || pmtud_fix.DisablePathMTUDiscovery diff --git a/transport/hysteria/transport/client.go b/transport/hysteria/transport/client.go index 91876ea9f..7fcc08e12 100644 --- a/transport/hysteria/transport/client.go +++ b/transport/hysteria/transport/client.go @@ -1,18 +1,18 @@ package transport import ( - "crypto/tls" "fmt" "net" "time" - "github.com/metacubex/quic-go" - + tlsC "github.com/metacubex/mihomo/component/tls" "github.com/metacubex/mihomo/transport/hysteria/conns/faketcp" "github.com/metacubex/mihomo/transport/hysteria/conns/udp" "github.com/metacubex/mihomo/transport/hysteria/conns/wechat" obfsPkg "github.com/metacubex/mihomo/transport/hysteria/obfs" "github.com/metacubex/mihomo/transport/hysteria/utils" + + "github.com/metacubex/quic-go" ) type ClientTransport struct{} @@ -62,7 +62,7 @@ func (ct *ClientTransport) quicPacketConn(proto string, rAddr net.Addr, serverPo } } -func (ct *ClientTransport) QUICDial(proto string, server string, serverPorts string, tlsConfig *tls.Config, quicConfig *quic.Config, obfs obfsPkg.Obfuscator, hopInterval time.Duration, dialer utils.PacketDialer) (quic.Connection, error) { +func (ct *ClientTransport) QUICDial(proto string, server string, serverPorts string, tlsConfig *tlsC.Config, quicConfig *quic.Config, obfs obfsPkg.Obfuscator, hopInterval time.Duration, dialer utils.PacketDialer) (quic.Connection, error) { serverUDPAddr, err := dialer.RemoteAddr(server) if err != nil { return nil, err diff --git a/transport/tuic/server.go b/transport/tuic/server.go index 354533aa1..d31a8625d 100644 --- a/transport/tuic/server.go +++ b/transport/tuic/server.go @@ -3,13 +3,13 @@ package tuic import ( "bufio" "context" - "crypto/tls" "net" "time" "github.com/metacubex/mihomo/adapter/inbound" N "github.com/metacubex/mihomo/common/net" "github.com/metacubex/mihomo/common/utils" + tlsC "github.com/metacubex/mihomo/component/tls" C "github.com/metacubex/mihomo/constant" "github.com/metacubex/mihomo/transport/socks5" "github.com/metacubex/mihomo/transport/tuic/common" @@ -24,7 +24,7 @@ type ServerOption struct { HandleTcpFn func(conn net.Conn, addr socks5.Addr, additions ...inbound.Addition) error HandleUdpFn func(addr socks5.Addr, packet C.UDPPacket, additions ...inbound.Addition) error - TlsConfig *tls.Config + TlsConfig *tlsC.Config QuicConfig *quic.Config Tokens [][32]byte // V4 special Users map[[16]byte]string // V5 special diff --git a/transport/tuic/v4/client.go b/transport/tuic/v4/client.go index 62b419b7a..b5b329174 100644 --- a/transport/tuic/v4/client.go +++ b/transport/tuic/v4/client.go @@ -4,7 +4,6 @@ import ( "bufio" "bytes" "context" - "crypto/tls" "errors" "net" "runtime" @@ -15,6 +14,7 @@ import ( atomic2 "github.com/metacubex/mihomo/common/atomic" N "github.com/metacubex/mihomo/common/net" "github.com/metacubex/mihomo/common/pool" + tlsC "github.com/metacubex/mihomo/component/tls" C "github.com/metacubex/mihomo/constant" "github.com/metacubex/mihomo/log" "github.com/metacubex/mihomo/transport/tuic/common" @@ -25,7 +25,7 @@ import ( ) type ClientOption struct { - TlsConfig *tls.Config + TlsConfig *tlsC.Config QuicConfig *quic.Config Token [32]byte UdpRelayMode common.UdpRelayMode diff --git a/transport/tuic/v5/client.go b/transport/tuic/v5/client.go index a3c13d2b2..d8660cad9 100644 --- a/transport/tuic/v5/client.go +++ b/transport/tuic/v5/client.go @@ -4,7 +4,6 @@ import ( "bufio" "bytes" "context" - "crypto/tls" "errors" "net" "runtime" @@ -15,6 +14,7 @@ import ( atomic2 "github.com/metacubex/mihomo/common/atomic" N "github.com/metacubex/mihomo/common/net" "github.com/metacubex/mihomo/common/pool" + tlsC "github.com/metacubex/mihomo/component/tls" C "github.com/metacubex/mihomo/constant" "github.com/metacubex/mihomo/log" "github.com/metacubex/mihomo/transport/tuic/common" @@ -25,7 +25,7 @@ import ( ) type ClientOption struct { - TlsConfig *tls.Config + TlsConfig *tlsC.Config QuicConfig *quic.Config Uuid [16]byte Password string