Compare commits

...

1 Commits

Author SHA1 Message Date
风扇滑翔翼
5129c1e4ff XHTTP: Fix packet up writer 2025-08-13 14:09:11 +00:00
2 changed files with 12 additions and 5 deletions

View File

@@ -13,6 +13,8 @@ const (
Size = 8192 Size = 8192
) )
var ErrBufferFull = errors.New("buffer is full")
var zero = [Size * 10]byte{0} var zero = [Size * 10]byte{0}
var pool = bytespool.GetPool(Size) var pool = bytespool.GetPool(Size)
@@ -258,13 +260,16 @@ func (b *Buffer) IsFull() bool {
func (b *Buffer) Write(data []byte) (int, error) { func (b *Buffer) Write(data []byte) (int, error) {
nBytes := copy(b.v[b.end:], data) nBytes := copy(b.v[b.end:], data)
b.end += int32(nBytes) b.end += int32(nBytes)
if nBytes < len(data) {
return nBytes, ErrBufferFull
}
return nBytes, nil return nBytes, nil
} }
// WriteByte writes a single byte into the buffer. // WriteByte writes a single byte into the buffer.
func (b *Buffer) WriteByte(v byte) error { func (b *Buffer) WriteByte(v byte) error {
if b.IsFull() { if b.IsFull() {
return errors.New("buffer full") return ErrBufferFull
} }
b.v[b.end] = v b.v[b.end] = v
b.end++ b.end++

View File

@@ -489,15 +489,17 @@ func (w uploadWriter) Write(b []byte) (int, error) {
} }
*/ */
buffer := buf.New() buffer := buf.MultiBufferContainer{}
n, err := buffer.Write(b) n, err := buffer.Write(b)
if err != nil { if err != nil {
return 0, err return 0, err
} }
err = w.WriteMultiBuffer([]*buf.Buffer{buffer}) for _, buff := range buffer.MultiBuffer {
if err != nil { err := w.WriteMultiBuffer(buf.MultiBuffer{buff})
return 0, err if err != nil {
return 0, err
}
} }
return n, nil return n, nil
} }