Highly-opinionated (ex-bullshit-free) MTPROTO proxy for Telegram. If you use v1.0 or upgrade broke you proxy, please read the chapter Version 2
選択できるのは25トピックまでです。 トピックは、先頭が英数字で、英数字とダッシュ('-')を使用した35文字以内のものにしてください。

cache.go 549B

123456789101112131415161718192021222324252627282930
  1. package antireplay
  2. import (
  3. "github.com/allegro/bigcache"
  4. "github.com/9seconds/mtg/config"
  5. )
  6. var cache *bigcache.BigCache
  7. func Add(data []byte) {
  8. cache.Set(string(data), nil) // nolint: errcheck
  9. }
  10. func Has(data []byte) bool {
  11. _, err := cache.Get(string(data))
  12. return err == nil
  13. }
  14. func Init() error {
  15. c, err := bigcache.NewBigCache(bigcache.Config{
  16. Shards: 1024,
  17. LifeWindow: config.C.AntiReplay.EvictionTime,
  18. Hasher: hasher{},
  19. HardMaxCacheSize: config.C.AntiReplay.MaxSize,
  20. })
  21. cache = c
  22. return err
  23. }