- // digging through dialerConn to extract the *net.TCPConn
- func SetTCPOptions(conn net.Conn) error {
- switch conn := conn.(type) {
- case dialerConn:
- return SetTCPOptions(conn.Conn)
- case *net.TCPConn:
- var err error
- if err = conn.SetLinger(0); err != nil {
- return err
- }
- if err = conn.SetNoDelay(false); err != nil {
- return err
- }
- if err = conn.SetKeepAlivePeriod(60 * time.Second); err != nil {
- return err
- }
- if err = conn.SetKeepAlive(true); err != nil {
- return err
- }
- return nil
- default: