Commit f2491580 authored by Matthew Holt's avatar Matthew Holt

httpserver: Fix address display and routing for IPv6 IPs/wildcards

parent 8369a121
...@@ -428,11 +428,12 @@ func (a Address) String() string { ...@@ -428,11 +428,12 @@ func (a Address) String() string {
if s != "" { if s != "" {
s += "://" s += "://"
} }
s += a.Host
if a.Port != "" && if a.Port != "" &&
((scheme == "https" && a.Port != DefaultHTTPSPort) || ((scheme == "https" && a.Port != DefaultHTTPSPort) ||
(scheme == "http" && a.Port != DefaultHTTPPort)) { (scheme == "http" && a.Port != DefaultHTTPPort)) {
s += ":" + a.Port s += net.JoinHostPort(a.Host, a.Port)
} else {
s += a.Host
} }
if a.Path != "" { if a.Path != "" {
s += a.Path s += a.Path
......
...@@ -32,7 +32,12 @@ type vhostTrie struct { ...@@ -32,7 +32,12 @@ type vhostTrie struct {
// newVHostTrie returns a new vhostTrie. // newVHostTrie returns a new vhostTrie.
func newVHostTrie() *vhostTrie { func newVHostTrie() *vhostTrie {
return &vhostTrie{edges: make(map[string]*vhostTrie), fallbackHosts: []string{"0.0.0.0", ""}} // TODO: fallbackHosts doesn't discriminate between network interfaces;
// i.e. if there is a host "0.0.0.0", it could match a request coming
// in to "[::1]" (and vice-versa) even though the IP versions differ.
// This might be OK, or maybe it's not desirable. The 'bind' directive
// can be used to restrict what interface a listener binds to.
return &vhostTrie{edges: make(map[string]*vhostTrie), fallbackHosts: []string{"0.0.0.0", "[::]", ""}}
} }
// Insert adds stack to t keyed by key. The key should be // Insert adds stack to t keyed by key. The key should be
......
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