net: use windows ConnectEx to dial (when possible)
Update #2631.
Update #3097.
R=golang-dev, bradfitz
CC=golang-dev
https://golang.org/cl/7061060
diff --git a/src/pkg/net/fd_unix.go b/src/pkg/net/fd_unix.go
index 6d8af0a..cfe6df2 100644
--- a/src/pkg/net/fd_unix.go
+++ b/src/pkg/net/fd_unix.go
@@ -288,6 +288,15 @@
return pollservers[k]
}
+func dialTimeout(net, addr string, timeout time.Duration) (Conn, error) {
+ deadline := time.Now().Add(timeout)
+ _, addri, err := resolveNetAddr("dial", net, addr, deadline)
+ if err != nil {
+ return nil, err
+ }
+ return dialAddr(net, addr, addri, deadline)
+}
+
func newFD(fd, family, sotype int, net string) (*netFD, error) {
if err := syscall.SetNonblock(fd, true); err != nil {
return nil, err