mirror of
https://github.com/ScuroNeko/mtg.git
synced 2026-08-31 13:54:02 +03:00
FILE / ScuroNeko/mtg
antireplay/cache.go
Исходный файл и его история в репозитории.
35 lines
614 B
Go
35 lines
614 B
Go
package antireplay
|
|
|
|
import (
|
|
"errors"
|
|
"fmt"
|
|
|
|
"github.com/allegro/bigcache"
|
|
|
|
"github.com/9seconds/mtg/config"
|
|
)
|
|
|
|
var cache *bigcache.BigCache
|
|
|
|
func Add(data []byte) {
|
|
cache.Set(string(data), nil) // nolint: errcheck
|
|
}
|
|
|
|
func Has(data []byte) bool {
|
|
_, err := cache.Get(string(data))
|
|
return err == nil
|
|
}
|
|
|
|
func Init() error {
|
|
c, err := bigcache.NewBigCache(bigcache.Config{
|
|
Shards: 1024,
|
|
LifeWindow: config.C.AntiReplay.EvictionTime,
|
|
Hasher: hasher{},
|
|
HardMaxCacheSize: config.C.AntiReplay.MaxSize,
|
|
})
|
|
cache = c
|
|
err = fmt.Errorf("qqq: %w", errors.New("tt"))
|
|
|
|
return err
|
|
}
|