]> Cypherpunks repositories - gostls13.git/commitdiff
net: avoid unnecessary conversion in address selection
authorMikio Hara <mikioh.mikioh@gmail.com>
Fri, 17 Jul 2015 01:16:45 +0000 (10:16 +0900)
committerMikio Hara <mikioh.mikioh@gmail.com>
Fri, 17 Jul 2015 08:33:03 +0000 (08:33 +0000)
Change-Id: I0d940810b493249bc092cd38bdb434f7fa67cafb
Reviewed-on: https://go-review.googlesource.com/12341
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
Run-TryBot: Mikio Hara <mikioh.mikioh@gmail.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>

src/net/addrselect.go

index 56a618aa2670f47863bbac44db865ad66c445c29..e7b2b48b46395d389b5a270fd24abddb61d56c4b 100644 (file)
@@ -40,13 +40,16 @@ func sortByRFC6724withSrcs(addrs []IPAddr, srcs []IP) {
 // number is irrelevant.
 func srcAddrs(addrs []IPAddr) []IP {
        srcs := make([]IP, len(addrs))
+       dst := UDPAddr{Port: 9}
        for i := range addrs {
-               conn, err := Dial("udp", JoinHostPort(addrs[i].IP.String(), "1234"))
+               dst.IP = addrs[i].IP
+               dst.Zone = addrs[i].Zone
+               c, err := DialUDP("udp", nil, &dst)
                if err == nil {
-                       if ua, ok := conn.LocalAddr().(*UDPAddr); ok {
-                               srcs[i] = ua.IP
+                       if src, ok := c.LocalAddr().(*UDPAddr); ok {
+                               srcs[i] = src.IP
                        }
-                       conn.Close()
+                       c.Close()
                }
        }
        return srcs