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
Você não pode selecionar mais de 25 tópicos Os tópicos devem começar com uma letra ou um número, podem incluir traços ('-') e podem ter até 35 caracteres.

scout_conn_collected.go 859B

12345678910111213141516171819202122232425262728293031323334353637383940
  1. package doppel
  2. import "time"
  3. const (
  4. ScoutConnCollectedPreallocSize = 100
  5. )
  6. type ScoutConnResult struct {
  7. timestamp time.Time
  8. recordType byte
  9. payloadLen int
  10. }
  11. type ScoutConnCollected struct {
  12. data []ScoutConnResult
  13. writeIndex int // index at which client first wrote post-handshake data; -1 if not set
  14. }
  15. func (s *ScoutConnCollected) Add(record byte, payloadLen int) {
  16. s.data = append(s.data, ScoutConnResult{
  17. timestamp: time.Now(),
  18. recordType: record,
  19. payloadLen: payloadLen,
  20. })
  21. }
  22. // MarkWrite records the current data length as the handshake boundary.
  23. func (s *ScoutConnCollected) MarkWrite() {
  24. if s.writeIndex < 0 {
  25. s.writeIndex = len(s.data)
  26. }
  27. }
  28. func NewScoutConnCollected() *ScoutConnCollected {
  29. return &ScoutConnCollected{
  30. data: make([]ScoutConnResult, 0, ScoutConnCollectedPreallocSize),
  31. writeIndex: -1,
  32. }
  33. }