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

timeoutrwc.go 761B

12345678910111213141516171819202122232425262728293031323334
  1. package wrappers
  2. import (
  3. "net"
  4. "time"
  5. "github.com/9seconds/mtg/config"
  6. )
  7. type TimeoutReadWriteCloserWithAddr struct {
  8. conn net.Conn
  9. }
  10. func (t *TimeoutReadWriteCloserWithAddr) Read(p []byte) (int, error) {
  11. t.conn.SetReadDeadline(time.Now().Add(config.TimeoutRead))
  12. return t.conn.Read(p)
  13. }
  14. func (t *TimeoutReadWriteCloserWithAddr) Write(p []byte) (int, error) {
  15. t.conn.SetWriteDeadline(time.Now().Add(config.TimeoutWrite))
  16. return t.conn.Write(p)
  17. }
  18. func (t *TimeoutReadWriteCloserWithAddr) Close() error {
  19. return t.conn.Close()
  20. }
  21. func (t *TimeoutReadWriteCloserWithAddr) Addr() *net.TCPAddr {
  22. return t.conn.RemoteAddr().(*net.TCPAddr)
  23. }
  24. func NewTimeoutRWC(conn net.Conn) ReadWriteCloserWithAddr {
  25. return &TimeoutReadWriteCloserWithAddr{conn}
  26. }