Fix #95
This commit is contained in:
@ -44,18 +44,20 @@ func (p *Packet) Pack(w io.Writer, threshold int) error {
|
|||||||
panic(err)
|
panic(err)
|
||||||
}
|
}
|
||||||
if threshold > 0 { //是否启用了压缩
|
if threshold > 0 { //是否启用了压缩
|
||||||
Len := content.Len()
|
rawLen := content.Len()
|
||||||
var VarLen bytes.Buffer
|
uncompressedLen := VarInt(rawLen)
|
||||||
if _, err := VarInt(Len).WriteTo(&VarLen); err != nil {
|
if rawLen > threshold { //是否需要压缩
|
||||||
panic(err)
|
compress(&content)
|
||||||
|
} else {
|
||||||
|
uncompressedLen = 0
|
||||||
}
|
}
|
||||||
if _, err := VarInt(VarLen.Len() + Len).WriteTo(w); err != nil {
|
|
||||||
|
uncompressedLenLen, _ := uncompressedLen.WriteTo(io.Discard)
|
||||||
|
if _, err := VarInt(uncompressedLenLen + int64(rawLen)).WriteTo(w); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if Len > threshold { //是否需要压缩
|
|
||||||
compress(&content)
|
if _, err := uncompressedLen.WriteTo(w); err != nil {
|
||||||
}
|
|
||||||
if _, err := VarLen.WriteTo(w); err != nil {
|
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if _, err := content.WriteTo(w); err != nil {
|
if _, err := content.WriteTo(w); err != nil {
|
||||||
|
Reference in New Issue
Block a user