From c29af68a2fdc1c72bff3c04830502a12c6b2f8b2 Mon Sep 17 00:00:00 2001 From: yuhan6665 <1588741+yuhan6665@users.noreply.github.com> Date: Sun, 6 Apr 2025 21:10:34 -0400 Subject: [PATCH] Glue mux meta with data in one frame for Datagram --- common/mux/server_test.go | 6 ++++-- common/mux/writer.go | 2 +- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/common/mux/server_test.go b/common/mux/server_test.go index 4158bf46..8649a067 100644 --- a/common/mux/server_test.go +++ b/common/mux/server_test.go @@ -90,7 +90,8 @@ func TestRegressionOutboundLeak(t *testing.T) { } { - b := buf.FromBytes([]byte("hello")) + b := buf.New() + b.Write([]byte("hello")) common.Must(muxClientDownlink.Writer.WriteMultiBuffer(buf.MultiBuffer{b})) } @@ -102,7 +103,8 @@ func TestRegressionOutboundLeak(t *testing.T) { } { - b := buf.FromBytes([]byte("world")) + b := buf.New() + b.Write([]byte("world")) common.Must(websiteUplink.Writer.WriteMultiBuffer(buf.MultiBuffer{b})) } diff --git a/common/mux/writer.go b/common/mux/writer.go index e9c113cb..01847000 100644 --- a/common/mux/writer.go +++ b/common/mux/writer.go @@ -78,10 +78,10 @@ func writeMetaWithFrame(writer buf.Writer, meta FrameMetadata, data buf.MultiBuf if _, err := serial.WriteUint16(frame, uint16(data.Len())); err != nil { return err } - mb2 := make(buf.MultiBuffer, 0, len(data)+1) mb2 = append(mb2, frame) mb2 = append(mb2, data...) + mb2 = buf.Compact(mb2) return writer.WriteMultiBuffer(mb2) }