123456789101112131415161718192021222324252627 |
- package challenge
- import (
- "net/url"
- "strings"
- )
- // FROM: https://golang.org/src/net/http/http.go
- // Given a string of the form "host", "host:port", or "[ipv6::address]:port",
- // return true if the string includes a port.
- func hasPort(s string) bool { return strings.LastIndex(s, ":") > strings.LastIndex(s, "]") }
- // FROM: http://golang.org/src/net/http/transport.go
- var portMap = map[string]string{
- "http": "80",
- "https": "443",
- }
- // canonicalAddr returns url.Host but always with a ":port" suffix
- // FROM: http://golang.org/src/net/http/transport.go
- func canonicalAddr(url *url.URL) string {
- addr := url.Host
- if !hasPort(addr) {
- return addr + ":" + portMap[url.Scheme]
- }
- return addr
- }
|