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

interfaces.go 1.6KB

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