Use ristretto instead of bigcache

This commit is contained in:
9seconds
2019-11-11 14:59:09 +03:00
parent 22905b2a25
commit 34ad883559
9 changed files with 55 additions and 72 deletions
+21 -9
View File
@@ -1,26 +1,38 @@
package antireplay
import "github.com/allegro/bigcache"
import "github.com/dgraph-io/ristretto"
var (
prefixObfuscated2 = []byte{0x00}
prefixTLS = []byte{0x01}
)
type cache struct {
obfuscated2 *bigcache.BigCache
tls *bigcache.BigCache
data *ristretto.Cache
}
func (c *cache) AddObfuscated2(data []byte) {
c.obfuscated2.Set(string(data), nil) // nolint: errcheck
c.data.Set(keyObfuscated2(data), nil, int64(len(data)))
}
func (c *cache) AddTLS(data []byte) {
c.tls.Set(string(data), nil) // nolint: errcheck
c.data.Set(keyTLS(data), nil, int64(len(data)))
}
func (c *cache) HasObfuscated2(data []byte) bool {
_, err := c.obfuscated2.Get(string(data))
return err == nil
_, ok := c.data.Get(keyObfuscated2(data))
return ok
}
func (c *cache) HasTLS(data []byte) bool {
_, err := c.tls.Get(string(data))
return err == nil
_, ok := c.data.Get(keyTLS(data))
return ok
}
func keyObfuscated2(data []byte) string {
return string(append(prefixObfuscated2, data...))
}
func keyTLS(data []byte) string {
return string(append(prefixTLS, data...))
}