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

12345678910111213141516171819202122232425262728293031323334353637383940
  1. package telegram
  2. import (
  3. "io"
  4. "net"
  5. "time"
  6. "github.com/juju/errors"
  7. "github.com/9seconds/mtg/config"
  8. )
  9. const (
  10. telegramDialTimeout = 10 * time.Second
  11. )
  12. type tgDialer struct {
  13. net.Dialer
  14. }
  15. func (t *tgDialer) dial(addr string) (net.Conn, error) {
  16. conn, err := t.Dialer.Dial("tcp", addr)
  17. if err != nil {
  18. return nil, errors.Annotate(err, "Cannot connect to Telegram")
  19. }
  20. if err = config.SetSocketOptions(conn); err != nil {
  21. return nil, errors.Annotate(err, "Cannot set socket options")
  22. }
  23. return conn, nil
  24. }
  25. func (t *tgDialer) dialRWC(addr string) (io.ReadWriteCloser, error) {
  26. conn, err := t.dial(addr)
  27. if err != nil {
  28. return nil, err
  29. }
  30. return conn, nil
  31. }