1
0
mirror of https://github.com/v2fly/v2ray-core.git synced 2026-04-14 01:29:17 -04:00

refactor multibuffer

This commit is contained in:
Darien Raymond
2018-11-18 19:36:36 +01:00
parent 0f324a613e
commit 842a089dad
19 changed files with 147 additions and 161 deletions

View File

@@ -92,8 +92,7 @@ func (v *ChunkReader) ReadMultiBuffer() (buf.MultiBuffer, error) {
return nil, newError("invalid auth")
}
var mb buf.MultiBuffer
common.Must2(mb.Write(payload))
mb := buf.MergeBytes(nil, payload)
return mb, nil
}
@@ -117,7 +116,7 @@ func (w *ChunkWriter) WriteMultiBuffer(mb buf.MultiBuffer) error {
defer buf.ReleaseMulti(mb)
for {
payloadLen, _ := mb.Read(w.buffer[2+AuthSize:])
mb, payloadLen, _ := buf.SplitBytes(mb, w.buffer[2+AuthSize:])
binary.BigEndian.PutUint16(w.buffer, uint16(payloadLen))
w.auth.Authenticate(w.buffer[2+AuthSize:2+AuthSize+payloadLen], w.buffer[2:])
if err := buf.WriteAllBytes(w.writer, w.buffer[:2+AuthSize+payloadLen]); err != nil {