|
|
@@ -4,7 +4,6 @@ import (
|
|
|
"crypto/cipher"
|
|
|
"io"
|
|
|
|
|
|
- "v2ray.com/core/common"
|
|
|
"v2ray.com/core/common/buf"
|
|
|
)
|
|
|
|
|
|
@@ -55,9 +54,22 @@ func (w *CryptionWriter) Write(data []byte) (int, error) {
|
|
|
func (w *CryptionWriter) WriteMultiBuffer(mb buf.MultiBuffer) error {
|
|
|
defer mb.Release()
|
|
|
|
|
|
+ size := mb.Len()
|
|
|
+ if size == 0 {
|
|
|
+ return nil
|
|
|
+ }
|
|
|
+
|
|
|
bs := mb.ToNetBuffers()
|
|
|
for _, b := range bs {
|
|
|
w.stream.XORKeyStream(b, b)
|
|
|
}
|
|
|
- return common.Error2(bs.WriteTo(w.writer))
|
|
|
+
|
|
|
+ for size > 0 {
|
|
|
+ n, err := bs.WriteTo(w.writer)
|
|
|
+ if err != nil {
|
|
|
+ return err
|
|
|
+ }
|
|
|
+ size -= int32(n)
|
|
|
+ }
|
|
|
+ return nil
|
|
|
}
|