Commit f08ef691 authored by Juan Batiz-Benet's avatar Juan Batiz-Benet

move fix to dialer.Dial

parent 95e03a33
......@@ -58,10 +58,23 @@ func Dial(network, laddr, raddr string) (net.Conn, error) {
d.D.LocalAddr = netladdr
}
return d.Dial(network, raddr)
}
// Dialer is used to specify the Dial options, much like net.Dialer.
// We simply wrap a net.Dialer.
type Dialer struct {
D net.Dialer
}
// Dial dials the given network and address. see net.Dialer.Dial
// Returns a net.Conn created from a file discriptor for a socket
// with SO_REUSEPORT and SO_REUSEADDR option set.
func (d *Dialer) Dial(network, address string) (net.Conn, error) {
// there's a rare case where dial returns successfully but for some reason the
// RemoteAddr is not yet set. We wait here a while until it is, and if too long
// passes, we fail.
c, err := dial(d.D, network, raddr)
c, err := dial(d.D, network, address)
if err != nil {
return nil, err
}
......@@ -76,16 +89,3 @@ func Dial(network, laddr, raddr string) (net.Conn, error) {
}
return c, nil
}
// Dialer is used to specify the Dial options, much like net.Dialer.
// We simply wrap a net.Dialer.
type Dialer struct {
D net.Dialer
}
// Dial dials the given network and address. see net.Dialer.Dial
// Returns a net.Conn created from a file discriptor for a socket
// with SO_REUSEPORT and SO_REUSEADDR option set.
func (d *Dialer) Dial(network, address string) (net.Conn, error) {
return dial(d.D, network, address)
}
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment