node: normalize HTTP vhost host matching

This commit is contained in:
Andrii Furmanets 2026-04-09 17:11:25 +03:00
parent 58557cb463
commit 36e666bf14
2 changed files with 4 additions and 0 deletions

View file

@ -463,6 +463,7 @@ func (h *virtualHostHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
// Either invalid (too many colons) or no port specified
host = r.Host
}
host = strings.ToLower(host)
if ipAddr := net.ParseIP(host); ipAddr != nil {
// It's an IP address, we can serve that
h.next.ServeHTTP(w, r)

View file

@ -60,6 +60,9 @@ func TestVhosts(t *testing.T) {
resp := rpcRequest(t, url, testMethod, "host", "test")
assert.Equal(t, resp.StatusCode, http.StatusOK)
respUpper := rpcRequest(t, url, testMethod, "host", "TeSt:1234")
assert.Equal(t, respUpper.StatusCode, http.StatusOK)
resp2 := rpcRequest(t, url, testMethod, "host", "bad")
assert.Equal(t, resp2.StatusCode, http.StatusForbidden)
}