Commit 1bae36ef authored by Francis Lavoie's avatar Francis Lavoie Committed by Matt Holt

Fix 1592: Allow insecure CA URL on internal networks (#1607)

* Strip brackets in IsInternal if no port, allow loopback for CA URLs

* Fix a mistake

* Improve the trim

* Fix comment
parent 52fd4f89
...@@ -777,7 +777,10 @@ func IsInternal(addr string) bool { ...@@ -777,7 +777,10 @@ func IsInternal(addr string) bool {
host, _, err := net.SplitHostPort(addr) host, _, err := net.SplitHostPort(addr)
if err != nil { if err != nil {
host = addr // happens if the addr is just a hostname host = addr // happens if the addr is just a hostname, missing port
// if we encounter an error, the brackets need to be stripped
// because SplitHostPort didn't do it for us
host = strings.Trim(host, "[]")
} }
ip := net.ParseIP(host) ip := net.ParseIP(host)
if ip == nil { if ip == nil {
......
...@@ -94,6 +94,8 @@ func TestIsInternal(t *testing.T) { ...@@ -94,6 +94,8 @@ func TestIsInternal(t *testing.T) {
{"fbff:ffff:ffff:ffff:ffff:ffff:ffff:ffff", false}, {"fbff:ffff:ffff:ffff:ffff:ffff:ffff:ffff", false},
{"fc00::", true}, {"fc00::", true},
{"fc00::1", true}, {"fc00::1", true},
{"[fc00::1]", true},
{"[fc00::1]:8888", true},
{"fdff:ffff:ffff:ffff:ffff:ffff:ffff:fffe", true}, {"fdff:ffff:ffff:ffff:ffff:ffff:ffff:fffe", true},
{"fdff:ffff:ffff:ffff:ffff:ffff:ffff:ffff", true}, {"fdff:ffff:ffff:ffff:ffff:ffff:ffff:ffff", true},
{"fe00::", false}, {"fe00::", false},
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment