diff --git a/transport/tuic/client.go b/transport/tuic/client.go index 4932dc9b5..af00da03a 100644 --- a/transport/tuic/client.go +++ b/transport/tuic/client.go @@ -12,6 +12,7 @@ import ( "sync/atomic" "time" + "github.com/Dreamacro/clash/common/buf" N "github.com/Dreamacro/clash/common/net" "github.com/Dreamacro/clash/common/pool" C "github.com/Dreamacro/clash/constant" @@ -338,6 +339,14 @@ func (conn *earlyConn) Read(b []byte) (n int, err error) { return conn.BufferedConn.Read(b) } +func (conn *earlyConn) ReadBuffer(buffer *buf.Buffer) (err error) { + err = conn.Response() + if err != nil { + return err + } + return conn.BufferedConn.ReadBuffer(buffer) +} + func (t *clientImpl) ListenPacketWithDialer(ctx context.Context, metadata *C.Metadata, dialer C.Dialer, dialFn DialFunc) (net.PacketConn, error) { quicConn, err := t.getQuicConn(ctx, dialer, dialFn) if err != nil {