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.

sockopts.go 645B

123456789101112131415161718192021222324252627
  1. package network
  2. import (
  3. "fmt"
  4. "net"
  5. )
  6. func setCommonSocketOptions(conn *net.TCPConn) error {
  7. if err := conn.SetKeepAlivePeriod(DefaultTCPKeepAlivePeriod); err != nil {
  8. return fmt.Errorf("cannot set time period of TCP keepalive probes: %w", err)
  9. }
  10. if err := conn.SetLinger(tcpLingerTimeout); err != nil {
  11. return fmt.Errorf("cannot set TCP linger timeout: %w", err)
  12. }
  13. rawConn, err := conn.SyscallConn()
  14. if err != nil {
  15. return fmt.Errorf("cannot get underlying raw connection: %w", err)
  16. }
  17. if err := setSocketReuseAddrPort(rawConn); err != nil {
  18. return fmt.Errorf("cannot setup SO_REUSEADDR/PORT: %w", err)
  19. }
  20. return nil
  21. }