code: func (cl *Client) establishOutgoingConnEx(t *Torrent, addr IpPort, ctx context.Context, obfuscatedHeader bool) (c *connection, err error) {
  	dr := cl.dialFirst(ctx, addr.String())
  	nc := dr.Conn
  	if nc == nil {
  		return
  	}
  	defer func() {
  		if c == nil || err != nil {
  			nc.Close()
  		}
  	}()
  	return cl.handshakesConnection(ctx, nc, t, obfuscatedHeader, addr, dr.Network)
  }
docs: // Returns nil connection and nil error if no connection could be established
  // for valid reasons.