mirror of
https://github.com/bjdgyc/anylink.git
synced 2025-08-08 14:29:42 +08:00
新增压缩功能-LZS算法
This commit is contained in:
@@ -54,6 +54,9 @@ type ConnSession struct {
|
||||
PayloadOutDtls chan *Payload // Dtls的数据
|
||||
// dSess *DtlsSession
|
||||
dSess *atomic.Value
|
||||
// compress
|
||||
CstpPickCmp CmpEncoding
|
||||
DtlsPickCmp CmpEncoding
|
||||
}
|
||||
|
||||
type DtlsSession struct {
|
||||
@@ -359,6 +362,30 @@ func (cs *ConnSession) RateLimit(byt int, isUp bool) error {
|
||||
return cs.Limit.Wait(byt)
|
||||
}
|
||||
|
||||
func (cs *ConnSession) SetPickCmp(cate, encoding string) (string, bool) {
|
||||
var cmpName string
|
||||
if !base.Cfg.Compression {
|
||||
return cmpName, false
|
||||
}
|
||||
var cmp CmpEncoding
|
||||
switch {
|
||||
// case strings.Contains(encoding, "oc-lz4"):
|
||||
// cmpName = "oc-lz4"
|
||||
// cmp = Lz4Cmp{}
|
||||
case strings.Contains(encoding, "lzs"):
|
||||
cmpName = "lzs"
|
||||
cmp = LzsgoCmp{}
|
||||
default:
|
||||
return cmpName, false
|
||||
}
|
||||
if cate == "cstp" {
|
||||
cs.CstpPickCmp = cmp
|
||||
} else {
|
||||
cs.DtlsPickCmp = cmp
|
||||
}
|
||||
return cmpName, true
|
||||
}
|
||||
|
||||
func SToken2Sess(stoken string) *Session {
|
||||
stoken = strings.TrimSpace(stoken)
|
||||
sarr := strings.Split(stoken, "@")
|
||||
|
Reference in New Issue
Block a user