From d1109cee90696a16075297bfad124fe86e0289cb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=B8=96=E7=95=8C?= Date: Tue, 16 Sep 2025 00:58:54 +0800 Subject: [PATCH] Update quic-go to v0.54.0 --- cmd/sing-box/cmd_tools_fetch_http3.go | 2 +- dns/transport/quic/http3.go | 2 +- dns/transport/quic/quic.go | 8 ++++---- test/box_test.go | 2 +- transport/v2rayquic/client.go | 6 +++--- transport/v2rayquic/server.go | 2 +- transport/v2rayquic/stream.go | 4 ++-- 7 files changed, 13 insertions(+), 13 deletions(-) diff --git a/cmd/sing-box/cmd_tools_fetch_http3.go b/cmd/sing-box/cmd_tools_fetch_http3.go index b7a31a726..3caa1e88b 100644 --- a/cmd/sing-box/cmd_tools_fetch_http3.go +++ b/cmd/sing-box/cmd_tools_fetch_http3.go @@ -22,7 +22,7 @@ func initializeHTTP3Client(instance *box.Box) error { } http3Client = &http.Client{ Transport: &http3.Transport{ - Dial: func(ctx context.Context, addr string, tlsCfg *tls.Config, cfg *quic.Config) (quic.EarlyConnection, error) { + Dial: func(ctx context.Context, addr string, tlsCfg *tls.Config, cfg *quic.Config) (*quic.Conn, error) { destination := M.ParseSocksaddr(addr) udpConn, dErr := dialer.DialContext(ctx, N.NetworkUDP, destination) if dErr != nil { diff --git a/dns/transport/quic/http3.go b/dns/transport/quic/http3.go index e81e6d159..0459d685c 100644 --- a/dns/transport/quic/http3.go +++ b/dns/transport/quic/http3.go @@ -102,7 +102,7 @@ func NewHTTP3(ctx context.Context, logger log.ContextLogger, tag string, options destination: &destinationURL, headers: headers, transport: &http3.Transport{ - Dial: func(ctx context.Context, addr string, tlsCfg *tls.STDConfig, cfg *quic.Config) (quic.EarlyConnection, error) { + Dial: func(ctx context.Context, addr string, tlsCfg *tls.STDConfig, cfg *quic.Config) (*quic.Conn, error) { conn, dialErr := transportDialer.DialContext(ctx, N.NetworkUDP, serverAddr) if dialErr != nil { return nil, dialErr diff --git a/dns/transport/quic/quic.go b/dns/transport/quic/quic.go index 39bbab8e1..a54cddcb9 100644 --- a/dns/transport/quic/quic.go +++ b/dns/transport/quic/quic.go @@ -38,7 +38,7 @@ type Transport struct { serverAddr M.Socksaddr tlsConfig tls.Config access sync.Mutex - connection quic.EarlyConnection + connection *quic.Conn } func NewQUIC(ctx context.Context, logger log.ContextLogger, tag string, options option.RemoteTLSDNSServerOptions) (adapter.DNSTransport, error) { @@ -88,7 +88,7 @@ func (t *Transport) Close() error { func (t *Transport) Exchange(ctx context.Context, message *mDNS.Msg) (*mDNS.Msg, error) { var ( - conn quic.Connection + conn *quic.Conn err error response *mDNS.Msg ) @@ -110,7 +110,7 @@ func (t *Transport) Exchange(ctx context.Context, message *mDNS.Msg) (*mDNS.Msg, return nil, err } -func (t *Transport) openConnection() (quic.EarlyConnection, error) { +func (t *Transport) openConnection() (*quic.Conn, error) { connection := t.connection if connection != nil && !common.Done(connection.Context()) { return connection, nil @@ -139,7 +139,7 @@ func (t *Transport) openConnection() (quic.EarlyConnection, error) { return earlyConnection, nil } -func (t *Transport) exchange(ctx context.Context, message *mDNS.Msg, conn quic.Connection) (*mDNS.Msg, error) { +func (t *Transport) exchange(ctx context.Context, message *mDNS.Msg, conn *quic.Conn) (*mDNS.Msg, error) { stream, err := conn.OpenStreamSync(ctx) if err != nil { return nil, err diff --git a/test/box_test.go b/test/box_test.go index de2602e8a..152948d20 100644 --- a/test/box_test.go +++ b/test/box_test.go @@ -89,7 +89,7 @@ func testQUIC(t *testing.T, clientPort uint16) { dialer := socks.NewClient(N.SystemDialer, M.ParseSocksaddrHostPort("127.0.0.1", clientPort), socks.Version5, "", "") client := &http.Client{ Transport: &http3.RoundTripper{ - Dial: func(ctx context.Context, addr string, tlsCfg *tls.Config, cfg *quic.Config) (quic.EarlyConnection, error) { + Dial: func(ctx context.Context, addr string, tlsCfg *tls.Config, cfg *quic.Config) (*quic.Conn, error) { destination := M.ParseSocksaddr(addr) udpConn, err := dialer.DialContext(ctx, N.NetworkUDP, destination) if err != nil { diff --git a/transport/v2rayquic/client.go b/transport/v2rayquic/client.go index 803d58c5d..3e0d8b81d 100644 --- a/transport/v2rayquic/client.go +++ b/transport/v2rayquic/client.go @@ -29,7 +29,7 @@ type Client struct { tlsConfig tls.Config quicConfig *quic.Config connAccess sync.Mutex - conn common.TypedValue[quic.Connection] + conn common.TypedValue[*quic.Conn] rawConn net.Conn } @@ -49,7 +49,7 @@ func NewClient(ctx context.Context, dialer N.Dialer, serverAddr M.Socksaddr, opt }, nil } -func (c *Client) offer() (quic.Connection, error) { +func (c *Client) offer() (*quic.Conn, error) { conn := c.conn.Load() if conn != nil && !common.Done(conn.Context()) { return conn, nil @@ -67,7 +67,7 @@ func (c *Client) offer() (quic.Connection, error) { return conn, nil } -func (c *Client) offerNew() (quic.Connection, error) { +func (c *Client) offerNew() (*quic.Conn, error) { udpConn, err := c.dialer.DialContext(c.ctx, "udp", c.serverAddr) if err != nil { return nil, err diff --git a/transport/v2rayquic/server.go b/transport/v2rayquic/server.go index 4c4397e6b..bde6e87ad 100644 --- a/transport/v2rayquic/server.go +++ b/transport/v2rayquic/server.go @@ -84,7 +84,7 @@ func (s *Server) acceptLoop() { } } -func (s *Server) streamAcceptLoop(conn quic.Connection) error { +func (s *Server) streamAcceptLoop(conn *quic.Conn) error { for { stream, err := conn.AcceptStream(s.ctx) if err != nil { diff --git a/transport/v2rayquic/stream.go b/transport/v2rayquic/stream.go index d9c3bebac..9267b01e7 100644 --- a/transport/v2rayquic/stream.go +++ b/transport/v2rayquic/stream.go @@ -8,8 +8,8 @@ import ( ) type StreamWrapper struct { - Conn quic.Connection - quic.Stream + Conn *quic.Conn + *quic.Stream } func (s *StreamWrapper) Read(p []byte) (n int, err error) {