]> Cypherpunks repositories - gostls13.git/commitdiff
net: don't return a nested error when happy eyeballs dialing
authorMikio Hara <mikioh.mikioh@gmail.com>
Thu, 19 Dec 2013 01:00:15 +0000 (10:00 +0900)
committerMikio Hara <mikioh.mikioh@gmail.com>
Thu, 19 Dec 2013 01:00:15 +0000 (10:00 +0900)
Also removes an unused variable.

Fixes #6795.

R=adg, dave, bradfitz, gobot
CC=golang-dev
https://golang.org/cl/29440043

src/pkg/net/dial.go

index 6304818bf14062c3bde0be0913d7a7bbbad4600a..70b66e70d1564f4ee2adb70c3df9a2c709a0d922 100644 (file)
@@ -172,7 +172,6 @@ func (d *Dialer) Dial(network, address string) (Conn, error) {
 func dialMulti(net, addr string, la Addr, ras addrList, deadline time.Time) (Conn, error) {
        type racer struct {
                Conn
-               Addr
                error
        }
        // Sig controls the flow of dial results on lane. It passes a
@@ -184,7 +183,7 @@ func dialMulti(net, addr string, la Addr, ras addrList, deadline time.Time) (Con
                go func(ra Addr) {
                        c, err := dialSingle(net, addr, la, ra, deadline)
                        if _, ok := <-sig; ok {
-                               lane <- racer{c, ra, err}
+                               lane <- racer{c, err}
                        } else if err == nil {
                                // We have to return the resources
                                // that belong to the other
@@ -195,7 +194,6 @@ func dialMulti(net, addr string, la Addr, ras addrList, deadline time.Time) (Con
                }(ra.toAddr())
        }
        defer close(sig)
-       var failAddr Addr
        lastErr := errTimeout
        nracers := len(ras)
        for nracers > 0 {
@@ -205,12 +203,11 @@ func dialMulti(net, addr string, la Addr, ras addrList, deadline time.Time) (Con
                        if racer.error == nil {
                                return racer.Conn, nil
                        }
-                       failAddr = racer.Addr
                        lastErr = racer.error
                        nracers--
                }
        }
-       return nil, &OpError{Op: "dial", Net: net, Addr: failAddr, Err: lastErr}
+       return nil, lastErr
 }
 
 // dialSingle attempts to establish and returns a single connection to