diff --git a/common/crypto/auth.go b/common/crypto/auth.go index 2cf0eb15e..1f3a68f17 100644 --- a/common/crypto/auth.go +++ b/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) }