summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFrancis Lavoie <lavofr@gmail.com>2022-01-04 12:10:11 -0500
committerGitHub <noreply@github.com>2022-01-04 10:10:11 -0700
commite9dde230247ec5525d4c3803ff99c97e0dc8e348 (patch)
treec08a76dcd9efd6ce224250aa9c23a1a81b7fd079
parent3fe2c73dd04f7769a9d9673236cb94b79ac45659 (diff)
headers: Fix `+` in Caddyfile to properly append rather than set (#4506)
-rw-r--r--caddytest/integration/caddyfile_adapt/header.txt15
-rw-r--r--modules/caddyhttp/headers/caddyfile.go2
2 files changed, 16 insertions, 1 deletions
diff --git a/caddytest/integration/caddyfile_adapt/header.txt b/caddytest/integration/caddyfile_adapt/header.txt
index 223839e..34a044d 100644
--- a/caddytest/integration/caddyfile_adapt/header.txt
+++ b/caddytest/integration/caddyfile_adapt/header.txt
@@ -13,6 +13,10 @@
header @images {
Cache-Control "public, max-age=3600, stale-while-revalidate=86400"
}
+ header {
+ +Link "Foo"
+ +Link "Bar"
+ }
}
----------
{
@@ -121,6 +125,17 @@
]
}
}
+ },
+ {
+ "handler": "headers",
+ "response": {
+ "add": {
+ "Link": [
+ "Foo",
+ "Bar"
+ ]
+ }
+ }
}
]
}
diff --git a/modules/caddyhttp/headers/caddyfile.go b/modules/caddyhttp/headers/caddyfile.go
index c6ea2fb..eec1149 100644
--- a/modules/caddyhttp/headers/caddyfile.go
+++ b/modules/caddyhttp/headers/caddyfile.go
@@ -222,7 +222,7 @@ func applyHeaderOp(ops *HeaderOps, respHeaderOps *RespHeaderOps, field, value, r
if ops.Add == nil {
ops.Add = make(http.Header)
}
- ops.Add.Set(field[1:], value)
+ ops.Add.Add(field[1:], value)
case strings.HasPrefix(field, "-"): // delete
ops.Delete = append(ops.Delete, field[1:])