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.

rwc.go 792B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. package mtproto
  2. import (
  3. "bytes"
  4. "io"
  5. )
  6. type BytesRWC interface {
  7. Write(*bytes.Buffer) (int, error)
  8. Read([]byte) (int, error)
  9. Close() error
  10. }
  11. type StartBytesRWC struct {
  12. conn BytesRWC
  13. }
  14. func (s *StartBytesRWC) Write(p []byte) (int, error) {
  15. buf := GetBuffer()
  16. buf.Write(p)
  17. defer ReturnBuffer(buf)
  18. return s.conn.Write(buf)
  19. }
  20. func (s *StartBytesRWC) Read(p []byte) (int, error) {
  21. return s.conn.Read(p)
  22. }
  23. func (s *StartBytesRWC) Close() error {
  24. return s.conn.Close()
  25. }
  26. type FinishBytesRWC struct {
  27. conn io.ReadWriteCloser
  28. }
  29. func (f *FinishBytesRWC) Write(buf *bytes.Buffer) (int, error) {
  30. return f.conn.Write(buf.Bytes())
  31. }
  32. func (f *FinishBytesRWC) Read(p []byte) (int, error) {
  33. return f.conn.Read(p)
  34. }
  35. func (f *FinishBytesRWC) Close() error {
  36. return f.conn.Close()
  37. }