mirror of
https://github.com/v2fly/v2ray-core.git
synced 2025-12-29 21:45:21 -05:00
read size to multi buffer
This commit is contained in:
@@ -30,6 +30,26 @@ func ReadAllToMultiBuffer(reader io.Reader) (MultiBuffer, error) {
|
||||
}
|
||||
}
|
||||
|
||||
// ReadSizeToMultiBuffer reads specific number of bytes from reader into a MultiBuffer.
|
||||
func ReadSizeToMultiBuffer(reader io.Reader, size int32) (MultiBuffer, error) {
|
||||
mb := NewMultiBufferCap(32)
|
||||
|
||||
for size > 0 {
|
||||
bSize := size
|
||||
if bSize > Size {
|
||||
bSize = Size
|
||||
}
|
||||
b := NewSize(uint32(bSize))
|
||||
if err := b.Reset(ReadFullFrom(reader, int(bSize))); err != nil {
|
||||
mb.Release()
|
||||
return nil, err
|
||||
}
|
||||
size -= bSize
|
||||
mb.Append(b)
|
||||
}
|
||||
return mb, nil
|
||||
}
|
||||
|
||||
// ReadAllToBytes reads all content from the reader into a byte array, until EOF.
|
||||
func ReadAllToBytes(reader io.Reader) ([]byte, error) {
|
||||
mb, err := ReadAllToMultiBuffer(reader)
|
||||
|
||||
Reference in New Issue
Block a user