1
0
mirror of https://github.com/fumiama/WireGold.git synced 2026-06-21 02:40:24 +08:00

optimize(link): pack zstd en/decoding

This commit is contained in:
源文雨
2025-02-25 23:53:25 +09:00
parent 597fa8d048
commit fa7b9d4f0a
8 changed files with 58 additions and 34 deletions

View File

@@ -1,7 +1,6 @@
package link
import (
"bytes"
crand "crypto/rand"
"encoding/binary"
"encoding/hex"
@@ -11,7 +10,6 @@ import (
"math/rand"
"runtime"
"github.com/klauspost/compress/zstd"
"github.com/sirupsen/logrus"
"github.com/fumiama/WireGold/config"
@@ -100,16 +98,12 @@ func (l *Link) encrypt(p *head.Packet, sndcnt uint16, teatype uint8) {
}
data := p.Body()
if l.usezstd {
w := helper.SelectWriter()
enc, _ := zstd.NewWriter(w, zstd.WithEncoderLevel(zstd.SpeedFastest))
_, _ = io.Copy(enc, bytes.NewReader(data))
enc.Close()
data = w.TransBytes().Bytes()
data = encodezstd(data).Trans().Bytes()
if config.ShowDebugLog {
logrus.Debugln("[send] data len after zstd:", len(data))
}
}
p.SetBody(l.Encode(teatype, sndcnt&0x07ff, data).Trans().Bytes())
p.SetBody(l.encode(teatype, sndcnt&0x07ff, data).Trans().Bytes())
if config.ShowDebugLog {
logrus.Debugln("[send] data len after xchacha20:", p.BodyLen(), "addt:", sndcnt)
}