Преглед изворни кода

fix handling of empty buffer

Darien Raymond пре 7 година
родитељ
комит
4b45174650
1 измењених фајлова са 8 додато и 8 уклоњено
  1. 8 8
      common/crypto/auth.go

+ 8 - 8
common/crypto/auth.go

@@ -248,14 +248,6 @@ func (w *AuthenticationWriter) writeStream(mb buf.MultiBuffer) error {
 func (w *AuthenticationWriter) writePacket(mb buf.MultiBuffer) error {
 	defer mb.Release()
 
-	if mb.IsEmpty() {
-		b := buf.New()
-		defer b.Release()
-
-		eb, _ := w.seal(b)
-		return w.writer.WriteMultiBuffer(buf.NewMultiBufferValue(eb))
-	}
-
 	mb2Write := buf.NewMultiBufferCap(int32(len(mb)) + 1)
 
 	for !mb.IsEmpty() {
@@ -276,6 +268,14 @@ func (w *AuthenticationWriter) writePacket(mb buf.MultiBuffer) error {
 }
 
 func (w *AuthenticationWriter) WriteMultiBuffer(mb buf.MultiBuffer) error {
+	if mb.IsEmpty() {
+		b := buf.New()
+		defer b.Release()
+
+		eb, _ := w.seal(b)
+		return w.writer.WriteMultiBuffer(buf.NewMultiBufferValue(eb))
+	}
+
 	if w.transferType == protocol.TransferTypeStream {
 		return w.writeStream(mb)
 	}