Commit da97ac7c authored by Harrison Heck's avatar Harrison Heck

Strip [] from IPv6 addresses for FastCGI.

Fixes #845.
parent 374d0a3f
...@@ -183,6 +183,10 @@ func (h Handler) buildEnv(r *http.Request, rule Rule, fpath string) (map[string] ...@@ -183,6 +183,10 @@ func (h Handler) buildEnv(r *http.Request, rule Rule, fpath string) (map[string]
ip = r.RemoteAddr ip = r.RemoteAddr
} }
// Remove [] from IPv6 addresses
ip = strings.Replace(ip, "[", "", 1)
ip = strings.Replace(ip, "]", "", 1)
// Split path in preparation for env variables. // Split path in preparation for env variables.
// Previous rule.canSplit checks ensure this can never be -1. // Previous rule.canSplit checks ensure this can never be -1.
splitPos := rule.splitPos(fpath) splitPos := rule.splitPos(fpath)
......
...@@ -137,7 +137,7 @@ func TestBuildEnv(t *testing.T) { ...@@ -137,7 +137,7 @@ func TestBuildEnv(t *testing.T) {
fpath := "/fgci_test.php" fpath := "/fgci_test.php"
var envExpected = map[string]string{ var envExpected = map[string]string{
"REMOTE_ADDR": "[2b02:1810:4f2d:9400:70ab:f822:be8a:9093]", "REMOTE_ADDR": "2b02:1810:4f2d:9400:70ab:f822:be8a:9093",
"REMOTE_PORT": "51688", "REMOTE_PORT": "51688",
"SERVER_PROTOCOL": "HTTP/1.1", "SERVER_PROTOCOL": "HTTP/1.1",
"QUERY_STRING": "test=blabla", "QUERY_STRING": "test=blabla",
...@@ -150,7 +150,7 @@ func TestBuildEnv(t *testing.T) { ...@@ -150,7 +150,7 @@ func TestBuildEnv(t *testing.T) {
// 2. Test for shorthand notation of IPv6 address // 2. Test for shorthand notation of IPv6 address
r.RemoteAddr = "[::1]:51688" r.RemoteAddr = "[::1]:51688"
envExpected["REMOTE_ADDR"] = "[::1]" envExpected["REMOTE_ADDR"] = "::1"
testBuildEnv(&r, rule, fpath, envExpected) testBuildEnv(&r, rule, fpath, envExpected)
// 3. Test for IPv4 address // 3. Test for IPv4 address
......
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