mirror of
https://github.com/v2fly/v2ray-core.git
synced 2026-05-10 06:29:08 -04:00
Protect from DoS attack
This commit is contained in:
@@ -17,6 +17,20 @@ func ReadFrom(reader io.Reader, buffer *alloc.Buffer) (*alloc.Buffer, error) {
|
||||
return buffer, err
|
||||
}
|
||||
|
||||
// ReadAllBytes reads all bytes required from reader, if no error happens.
|
||||
func ReadAllBytes(reader io.Reader, buffer []byte) (int, error) {
|
||||
bytesRead := 0
|
||||
bytesAsked := len(buffer)
|
||||
for bytesRead < bytesAsked {
|
||||
nBytes, err := reader.Read(buffer[bytesRead:])
|
||||
bytesRead += nBytes
|
||||
if err != nil {
|
||||
return bytesRead, err
|
||||
}
|
||||
}
|
||||
return bytesRead, nil
|
||||
}
|
||||
|
||||
// ReaderToChan dumps all content from a given reader to a chan by constantly reading it until EOF.
|
||||
func ReaderToChan(stream chan<- *alloc.Buffer, reader io.Reader) error {
|
||||
allocate := alloc.NewBuffer
|
||||
|
||||
Reference in New Issue
Block a user