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

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111
  1. package wrappers
  2. import (
  3. "io"
  4. "net"
  5. "go.uber.org/zap"
  6. )
  7. // Wrap is a base interface for all wrappers in this package.
  8. type Wrap interface {
  9. Logger() *zap.SugaredLogger
  10. LocalAddr() *net.TCPAddr
  11. RemoteAddr() *net.TCPAddr
  12. }
  13. // Writer is a base interface for writers of this package.
  14. type Writer interface {
  15. io.Writer
  16. Wrap
  17. }
  18. // Closer is a base interface for wrappers of this package which can
  19. // close connections.
  20. type Closer interface {
  21. io.Closer
  22. Wrap
  23. }
  24. // WriteCloser is a base interface for wrappers of this package which
  25. // can write to and close connections.
  26. type WriteCloser interface {
  27. io.Closer
  28. Writer
  29. }
  30. // StreamReader is a base interface for wrappers which can read from the
  31. // stream.
  32. type StreamReader interface {
  33. io.Reader
  34. Wrap
  35. }
  36. // StreamReadCloser is a base interface for wrappers which can read from
  37. // and close the connections.
  38. type StreamReadCloser interface {
  39. io.Closer
  40. StreamReader
  41. }
  42. // StreamReadWriter is a base interface for wrappers which can read from
  43. // and write to the connections.
  44. type StreamReadWriter interface {
  45. io.Writer
  46. StreamReader
  47. }
  48. // StreamWriteCloser is a base interface for wrappers which can write to
  49. // and close the connections.
  50. type StreamWriteCloser interface {
  51. io.WriteCloser
  52. Wrap
  53. }
  54. // StreamReadWriteCloser is a base interface for stream processors.
  55. type StreamReadWriteCloser interface {
  56. io.Closer
  57. StreamReadWriter
  58. }
  59. // PacketReader is a base interface for wrappers which reads 'packets'.
  60. // packets are atoms so you either get a packet or you get an error You
  61. // cannot resume reading from packet.
  62. type PacketReader interface {
  63. Read() ([]byte, error)
  64. Wrap
  65. }
  66. // PacketWriter is a base interface for wrappers which can write packets.
  67. type PacketWriter interface {
  68. io.Writer
  69. Wrap
  70. }
  71. // PacketReadWriter is a base interface for wrappers which can read from
  72. // and write packets.
  73. type PacketReadWriter interface {
  74. io.Writer
  75. PacketReader
  76. }
  77. // PacketReadCloser is a base interface for wrappers which can read
  78. // packets and close the connection.
  79. type PacketReadCloser interface {
  80. io.Closer
  81. PacketReader
  82. }
  83. // PacketWriteCloser is a base interface for wrappers which can write
  84. // packets and close the connection.
  85. type PacketWriteCloser interface {
  86. io.Writer
  87. io.Closer
  88. Wrap
  89. }
  90. // PacketReadWriteCloser is a base interface for packet processors.
  91. type PacketReadWriteCloser interface {
  92. io.Closer
  93. PacketReadWriter
  94. }