github.com/spotmaxtech/k8s-apimachinery-v0260@v0.0.1/third_party/forked/golang/netutil/addr.go (about) 1 package netutil 2 3 import ( 4 "net/url" 5 "strings" 6 ) 7 8 // FROM: http://golang.org/src/net/http/client.go 9 // Given a string of the form "host", "host:port", or "[ipv6::address]:port", 10 // return true if the string includes a port. 11 func hasPort(s string) bool { return strings.LastIndex(s, ":") > strings.LastIndex(s, "]") } 12 13 // FROM: http://golang.org/src/net/http/transport.go 14 var portMap = map[string]string{ 15 "http": "80", 16 "https": "443", 17 "socks5": "1080", 18 } 19 20 // FROM: http://golang.org/src/net/http/transport.go 21 // canonicalAddr returns url.Host but always with a ":port" suffix 22 func CanonicalAddr(url *url.URL) string { 23 addr := url.Host 24 if !hasPort(addr) { 25 return addr + ":" + portMap[url.Scheme] 26 } 27 return addr 28 }