Commit e85ba0d4 authored by Tw's avatar Tw

proxy: make value is optional when removing a header

fix issue #1234
Signed-off-by: default avatarTw <tw19881113@gmail.com>
parent b89cbe18
......@@ -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