1
0
mirror of https://github.com/v2fly/v2ray-core.git synced 2025-12-30 05:55:20 -05:00

write by slice when buffer is too large

This commit is contained in:
Darien Raymond
2017-04-19 10:14:52 +02:00
parent 5bfab82c41
commit 31a0951bd2
3 changed files with 32 additions and 5 deletions

View File

@@ -86,3 +86,18 @@ func (mb MultiBuffer) ToNetBuffers() net.Buffers {
}
return bs
}
func (mb *MultiBuffer) SliceBySize(size int) MultiBuffer {
slice := NewMultiBuffer()
sliceSize := 0
endIndex := len(*mb)
for i, b := range *mb {
if b.Len()+sliceSize > size {
endIndex = i
break
}
slice.Append(b)
}
*mb = (*mb)[endIndex:]
return slice
}