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 символов.

wrappers.go 1.6KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115
  1. package conntypes
  2. import (
  3. "io"
  4. "net"
  5. "time"
  6. "go.uber.org/zap"
  7. )
  8. // Wrap is a base interface for all wrappers in this package.
  9. type Wrap interface {
  10. Conn() net.Conn
  11. Logger() *zap.SugaredLogger
  12. LocalAddr() *net.TCPAddr
  13. RemoteAddr() *net.TCPAddr
  14. }
  15. type BaseReaderWithTimeout interface {
  16. ReadTimeout([]byte, time.Duration) (int, error)
  17. }
  18. type BaseWriterWithTimeout interface {
  19. WriteTimeout([]byte, time.Duration) (int, error)
  20. }
  21. type BasePacketReader interface {
  22. Read() (Packet, error)
  23. }
  24. type BasePacketWriter interface {
  25. Write(Packet) error
  26. }
  27. type StreamReader interface {
  28. Wrap
  29. io.Reader
  30. BaseReaderWithTimeout
  31. }
  32. type StreamWriter interface {
  33. Wrap
  34. io.Writer
  35. BaseWriterWithTimeout
  36. }
  37. type StreamCloser interface {
  38. Wrap
  39. io.Closer
  40. }
  41. type StreamReadCloser interface {
  42. Wrap
  43. io.ReadCloser
  44. BaseReaderWithTimeout
  45. }
  46. type StreamWriteCloser interface {
  47. Wrap
  48. io.WriteCloser
  49. BaseWriterWithTimeout
  50. }
  51. type StreamReadWriter interface {
  52. Wrap
  53. io.ReadWriter
  54. BaseReaderWithTimeout
  55. }
  56. type StreamReadWriteCloser interface {
  57. Wrap
  58. io.ReadWriteCloser
  59. BaseReaderWithTimeout
  60. BaseWriterWithTimeout
  61. }
  62. type PacketReader interface {
  63. Wrap
  64. BasePacketReader
  65. }
  66. type PacketWriter interface {
  67. Wrap
  68. BasePacketWriter
  69. }
  70. type PacketCloser interface {
  71. Wrap
  72. io.Closer
  73. }
  74. type PacketReadCloser interface {
  75. Wrap
  76. BasePacketReader
  77. io.Closer
  78. }
  79. type PacketWriteCloser interface {
  80. Wrap
  81. BasePacketWriter
  82. io.Closer
  83. }
  84. type PacketReadWriter interface {
  85. Wrap
  86. BasePacketWriter
  87. BasePacketReader
  88. }
  89. type PacketReadWriteCloser interface {
  90. Wrap
  91. BasePacketWriter
  92. BasePacketReader
  93. io.Closer
  94. }