1
0
mirror of https://github.com/v2fly/v2ray-core.git synced 2025-12-31 22:45:39 -05:00
This commit is contained in:
Darien Raymond
2017-11-25 21:58:47 +01:00
parent 052d2d8278
commit 41961dbd60
2 changed files with 16 additions and 22 deletions

View File

@@ -58,21 +58,16 @@ var (
)
type BufferedReader struct {
stream Reader
legacyReader io.Reader
leftOver MultiBuffer
buffered bool
stream Reader
leftOver MultiBuffer
buffered bool
}
func NewBufferedReader(reader Reader) *BufferedReader {
r := &BufferedReader{
return &BufferedReader{
stream: reader,
buffered: true,
}
if lr, ok := reader.(io.Reader); ok {
r.legacyReader = lr
}
return r
}
func (r *BufferedReader) SetBuffered(f bool) {
@@ -99,8 +94,10 @@ func (r *BufferedReader) Read(b []byte) (int, error) {
return nBytes, nil
}
if !r.buffered && r.legacyReader != nil {
return r.legacyReader.Read(b)
if !r.buffered {
if reader, ok := r.stream.(io.Reader); ok {
return reader.Read(b)
}
}
mb, err := r.stream.ReadMultiBuffer()