1
0
mirror of https://github.com/v2fly/v2ray-core.git synced 2024-06-28 10:15:23 +00:00

check errors

This commit is contained in:
Darien Raymond 2018-07-29 13:19:03 +02:00
parent 18f3fb5196
commit 47f1399995
No known key found for this signature in database
GPG Key ID: 7251FFA14BB18169
3 changed files with 18 additions and 13 deletions

View File

@ -118,7 +118,7 @@ func (mb *MultiBuffer) ReadFrom(reader io.Reader) (int64, error) {
// Read implements io.Reader. // Read implements io.Reader.
func (mb *MultiBuffer) Read(b []byte) (int, error) { func (mb *MultiBuffer) Read(b []byte) (int, error) {
if mb.Len() == 0 { if mb.IsEmpty() {
return 0, io.EOF return 0, io.EOF
} }
endIndex := len(*mb) endIndex := len(*mb)

View File

@ -97,8 +97,9 @@ func (r *BufferedReader) ReadByte() (byte, error) {
// Read implements io.Reader. It reads from internal buffer first (if available) and then reads from the underlying reader. // Read implements io.Reader. It reads from internal buffer first (if available) and then reads from the underlying reader.
func (r *BufferedReader) Read(b []byte) (int, error) { func (r *BufferedReader) Read(b []byte) (int, error) {
if r.Buffer != nil { if !r.Buffer.IsEmpty() {
nBytes, _ := r.Buffer.Read(b) nBytes, err := r.Buffer.Read(b)
common.Must(err)
if r.Buffer.IsEmpty() { if r.Buffer.IsEmpty() {
r.Buffer.Release() r.Buffer.Release()
r.Buffer = nil r.Buffer = nil
@ -113,19 +114,21 @@ func (r *BufferedReader) Read(b []byte) (int, error) {
} }
mb, err := r.Reader.ReadMultiBuffer() mb, err := r.Reader.ReadMultiBuffer()
if mb != nil { if err != nil {
nBytes, _ := mb.Read(b) return 0, err
if !mb.IsEmpty() {
r.Buffer = mb
}
return nBytes, err
} }
return 0, err
nBytes, err := mb.Read(b)
common.Must(err)
if !mb.IsEmpty() {
r.Buffer = mb
}
return nBytes, err
} }
// ReadMultiBuffer implements Reader. // ReadMultiBuffer implements Reader.
func (r *BufferedReader) ReadMultiBuffer() (MultiBuffer, error) { func (r *BufferedReader) ReadMultiBuffer() (MultiBuffer, error) {
if r.Buffer != nil { if !r.Buffer.IsEmpty() {
mb := r.Buffer mb := r.Buffer
r.Buffer = nil r.Buffer = nil
return mb, nil return mb, nil
@ -136,7 +139,7 @@ func (r *BufferedReader) ReadMultiBuffer() (MultiBuffer, error) {
// ReadAtMost returns a MultiBuffer with at most size. // ReadAtMost returns a MultiBuffer with at most size.
func (r *BufferedReader) ReadAtMost(size int32) (MultiBuffer, error) { func (r *BufferedReader) ReadAtMost(size int32) (MultiBuffer, error) {
if r.Buffer == nil { if r.Buffer.IsEmpty() {
mb, err := r.Reader.ReadMultiBuffer() mb, err := r.Reader.ReadMultiBuffer()
if mb.IsEmpty() && err != nil { if mb.IsEmpty() && err != nil {
return nil, err return nil, err

View File

@ -3,6 +3,7 @@ package kcp
import ( import (
"sync" "sync"
"v2ray.com/core/common"
"v2ray.com/core/common/buf" "v2ray.com/core/common/buf"
) )
@ -204,7 +205,8 @@ func (w *ReceivingWorker) ReadMultiBuffer() buf.MultiBuffer {
func (w *ReceivingWorker) Read(b []byte) int { func (w *ReceivingWorker) Read(b []byte) int {
mb := w.ReadMultiBuffer() mb := w.ReadMultiBuffer()
nBytes, _ := mb.Read(b) nBytes, err := mb.Read(b)
common.Must(err)
if !mb.IsEmpty() { if !mb.IsEmpty() {
w.leftOver = mb w.leftOver = mb
} }