Commit e19a007b authored by Matt Holt's avatar Matt Holt Committed by GitHub

Merge pull request #1238 from tw4452852/1234

proxy: make sure value is optional when removing a header
parents b89cbe18 e85ba0d4
......@@ -131,6 +131,22 @@ func TestSetup(t *testing.T) {
"http://localhost:8005/a--b": {},
},
},
// test #12 test value is optional when remove upstream header
{
"proxy / localhost:1984 {\n header_upstream -server \n}",
false,
map[string]struct{}{
"http://localhost:1984": {},
},
},
// test #13 test value is optional when remove downstream header
{
"proxy / localhost:1984 {\n header_downstream -server \n}",
false,
map[string]struct{}{
"http://localhost:1984": {},
},
},
} {
c := caddy.NewTestController("http", test.input)
err := setup(c)
......
......@@ -305,13 +305,19 @@ func parseBlock(c *caddyfile.Dispenser, u *staticUpstream) error {
case "header_upstream":
var header, value string
if !c.Args(&header, &value) {
return c.ArgErr()
// When removing a header, the value can be optional.
if !strings.HasPrefix(header, "-") {
return c.ArgErr()
}
}
u.upstreamHeaders.Add(header, value)
case "header_downstream":
var header, value string
if !c.Args(&header, &value) {
return c.ArgErr()
// When removing a header, the value can be optional.
if !strings.HasPrefix(header, "-") {
return c.ArgErr()
}
}
u.downstreamHeaders.Add(header, value)
case "transparent":
......
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