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.

timeoutrwc.go 761B

1234567891011121314151617181920212223242526272829303132333435
  1. package proxy
  2. import (
  3. "io"
  4. "net"
  5. "time"
  6. )
  7. type TimeoutReadWriteCloser struct {
  8. conn net.Conn
  9. readTimeout time.Duration
  10. writeTimeout time.Duration
  11. }
  12. func (t *TimeoutReadWriteCloser) Read(p []byte) (int, error) {
  13. t.conn.SetReadDeadline(time.Now().Add(t.readTimeout))
  14. return t.conn.Read(p)
  15. }
  16. func (t *TimeoutReadWriteCloser) Write(p []byte) (int, error) {
  17. t.conn.SetWriteDeadline(time.Now().Add(t.writeTimeout))
  18. return t.conn.Write(p)
  19. }
  20. func (t *TimeoutReadWriteCloser) Close() error {
  21. return t.conn.Close()
  22. }
  23. func newTimeoutReadWriteCloser(conn net.Conn, readTimeout, writeTimeout time.Duration) io.ReadWriteCloser {
  24. return &TimeoutReadWriteCloser{
  25. conn: conn,
  26. readTimeout: readTimeout,
  27. writeTimeout: writeTimeout,
  28. }
  29. }