mirror of https://github.com/v2ray/v2ray-core
dont write out empty payload
parent
b3b0649dd6
commit
2f6a0d539d
|
@ -86,6 +86,10 @@ func (w *BufferedWriter) WriteByte(c byte) error {
|
||||||
|
|
||||||
// Write implements io.Writer.
|
// Write implements io.Writer.
|
||||||
func (w *BufferedWriter) Write(b []byte) (int, error) {
|
func (w *BufferedWriter) Write(b []byte) (int, error) {
|
||||||
|
if len(b) == 0 {
|
||||||
|
return 0, nil
|
||||||
|
}
|
||||||
|
|
||||||
w.Lock()
|
w.Lock()
|
||||||
defer w.Unlock()
|
defer w.Unlock()
|
||||||
|
|
||||||
|
@ -119,6 +123,10 @@ func (w *BufferedWriter) Write(b []byte) (int, error) {
|
||||||
|
|
||||||
// WriteMultiBuffer implements Writer. It takes ownership of the given MultiBuffer.
|
// WriteMultiBuffer implements Writer. It takes ownership of the given MultiBuffer.
|
||||||
func (w *BufferedWriter) WriteMultiBuffer(b MultiBuffer) error {
|
func (w *BufferedWriter) WriteMultiBuffer(b MultiBuffer) error {
|
||||||
|
if b.IsEmpty() {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
w.Lock()
|
w.Lock()
|
||||||
defer w.Unlock()
|
defer w.Unlock()
|
||||||
|
|
||||||
|
@ -211,6 +219,10 @@ func (w *SequentialWriter) WriteMultiBuffer(mb MultiBuffer) error {
|
||||||
defer mb.Release()
|
defer mb.Release()
|
||||||
|
|
||||||
for _, b := range mb {
|
for _, b := range mb {
|
||||||
|
if b.IsEmpty() {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
|
||||||
if err := WriteAllBytes(w.Writer, b.Bytes()); err != nil {
|
if err := WriteAllBytes(w.Writer, b.Bytes()); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue