summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorRajat Jain <[email protected]>2021-03-11 02:52:33 +0530
committerGitHub <[email protected]>2021-03-10 14:22:33 -0700
commit802f80c3821940825ec278e1d9c153a321e956a9 (patch)
tree2542c3f371623f0be26caf899de61814e36471a8
parent51f35ba03f78e691d0e141b24ff19f82bfb34b67 (diff)
downloadcaddy-802f80c3821940825ec278e1d9c153a321e956a9.tar.gz
caddy-802f80c3821940825ec278e1d9c153a321e956a9.zip
map: Accept regex substitution in outputs (#3991)
* Replace placeholders with regex groups * using Matcher methods * test added * linting fix * Revert "linting fix" This reverts commit cafd7296f43639bbcd2601bea79a47f60763a200. * Revert "test added" This reverts commit 3a76cc7b0bc5dcef15ca5c8ec22efcd4067d484c. * Revert "using Matcher methods" This reverts commit cc34337b8ebb61d40ec343cee0fc225a694d3db6. * tests added
-rw-r--r--caddytest/integration/map_test.go4
-rw-r--r--modules/caddyhttp/map/map.go1
2 files changed, 3 insertions, 2 deletions
diff --git a/caddytest/integration/map_test.go b/caddytest/integration/map_test.go
index aa535ecdb..7cd769e7f 100644
--- a/caddytest/integration/map_test.go
+++ b/caddytest/integration/map_test.go
@@ -19,7 +19,7 @@ func TestMap(t *testing.T) {
map {http.request.method} {dest-1} {dest-2} {
default unknown1 unknown2
- ~G.T get-called
+ ~G(.)(.) G${1}${2}-called
POST post-called foobar
}
@@ -30,7 +30,7 @@ func TestMap(t *testing.T) {
`, "caddyfile")
// act and assert
- tester.AssertGetResponse("http://localhost:9080/version", 200, "hello from localhost get-called unknown2")
+ tester.AssertGetResponse("http://localhost:9080/version", 200, "hello from localhost GET-called unknown2")
tester.AssertPostResponseBody("http://localhost:9080/version", []string{}, bytes.NewBuffer([]byte{}), 200, "hello from localhost post-called foobar")
}
diff --git a/modules/caddyhttp/map/map.go b/modules/caddyhttp/map/map.go
index e193f203e..a0e076875 100644
--- a/modules/caddyhttp/map/map.go
+++ b/modules/caddyhttp/map/map.go
@@ -136,6 +136,7 @@ func (h Handler) ServeHTTP(w http.ResponseWriter, r *http.Request, next caddyhtt
if output := m.Outputs[destIdx]; output == nil {
continue
} else {
+ output = m.re.ReplaceAllString(input, m.Outputs[destIdx].(string))
return output, true
}
}