mirror of
https://github.com/XTLS/Xray-core.git
synced 2025-04-13 17:14:11 +00:00
Glue mux meta with data in one frame for Datagram
This commit is contained in:
parent
e4a5344189
commit
a749050d91
@ -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}))
|
||||
}
|
||||
|
||||
|
@ -78,9 +78,17 @@ 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)
|
||||
for _, b := range data {
|
||||
if frame.Len() + b.Len() < buf.Size {
|
||||
frame.Write(b.Bytes())
|
||||
b.Release()
|
||||
b = nil
|
||||
} else {
|
||||
break;
|
||||
}
|
||||
}
|
||||
mb2 = append(mb2, data...)
|
||||
return writer.WriteMultiBuffer(mb2)
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user