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
Du kan inte välja fler än 25 ämnen Ämnen måste starta med en bokstav eller siffra, kan innehålla bindestreck ('-') och vara max 35 tecken långa.

cache.go 755B

1234567891011121314151617181920212223242526272829303132333435363738
  1. package antireplay
  2. import "github.com/dgraph-io/ristretto"
  3. var (
  4. prefixObfuscated2 = []byte{0x00}
  5. prefixTLS = []byte{0x01}
  6. )
  7. type cache struct {
  8. data *ristretto.Cache
  9. }
  10. func (c *cache) AddObfuscated2(data []byte) {
  11. c.data.Set(keyObfuscated2(data), nil, int64(len(data)))
  12. }
  13. func (c *cache) AddTLS(data []byte) {
  14. c.data.Set(keyTLS(data), nil, int64(len(data)))
  15. }
  16. func (c *cache) HasObfuscated2(data []byte) bool {
  17. _, ok := c.data.Get(keyObfuscated2(data))
  18. return ok
  19. }
  20. func (c *cache) HasTLS(data []byte) bool {
  21. _, ok := c.data.Get(keyTLS(data))
  22. return ok
  23. }
  24. func keyObfuscated2(data []byte) string {
  25. return string(append(prefixObfuscated2, data...))
  26. }
  27. func keyTLS(data []byte) string {
  28. return string(append(prefixTLS, data...))
  29. }