summaryrefslogtreecommitdiff
path: root/src/pkg/net/tcpsock.go
diff options
context:
space:
mode:
Diffstat (limited to 'src/pkg/net/tcpsock.go')
-rw-r--r--src/pkg/net/tcpsock.go12
1 files changed, 10 insertions, 2 deletions
diff --git a/src/pkg/net/tcpsock.go b/src/pkg/net/tcpsock.go
index 47fbf2919..d5158b22d 100644
--- a/src/pkg/net/tcpsock.go
+++ b/src/pkg/net/tcpsock.go
@@ -10,6 +10,7 @@ package net
type TCPAddr struct {
IP IP
Port int
+ Zone string // IPv6 scoped addressing zone
}
// Network returns the address's network name, "tcp".
@@ -28,9 +29,16 @@ func (a *TCPAddr) String() string {
// "tcp4" or "tcp6". A literal IPv6 host address must be
// enclosed in square brackets, as in "[::]:80".
func ResolveTCPAddr(net, addr string) (*TCPAddr, error) {
- ip, port, err := hostPortToIP(net, addr)
+ switch net {
+ case "tcp", "tcp4", "tcp6":
+ case "": // a hint wildcard for Go 1.0 undocumented behavior
+ net = "tcp"
+ default:
+ return nil, UnknownNetworkError(net)
+ }
+ a, err := resolveInternetAddr(net, addr, noDeadline)
if err != nil {
return nil, err
}
- return &TCPAddr{ip, port}, nil
+ return a.(*TCPAddr), nil
}