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:
@@ -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
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user