From 7c7ef8d40e3af35444d522debc95451c04666615 Mon Sep 17 00:00:00 2001 From: Matthew Holt Date: Fri, 29 Nov 2019 11:23:49 -0700 Subject: http: Shorten regexp matcher placeholders; allow "=/" for simple matcher --- modules/caddyhttp/matchers.go | 10 +++++----- modules/caddyhttp/matchers_test.go | 8 ++++---- 2 files changed, 9 insertions(+), 9 deletions(-) (limited to 'modules/caddyhttp') diff --git a/modules/caddyhttp/matchers.go b/modules/caddyhttp/matchers.go index 5ea606d3..c0e3872 100644 --- a/modules/caddyhttp/matchers.go +++ b/modules/caddyhttp/matchers.go @@ -216,7 +216,7 @@ func (MatchPathRE) CaddyModule() caddy.ModuleInfo { // Match returns true if r matches m. func (m MatchPathRE) Match(r *http.Request) bool { repl := r.Context().Value(caddy.ReplacerCtxKey).(caddy.Replacer) - return m.MatchRegexp.Match(r.URL.Path, repl, "path_regexp") + return m.MatchRegexp.Match(r.URL.Path, repl) } // CaddyModule returns the Caddy module information. @@ -363,7 +363,7 @@ func (m *MatchHeaderRE) UnmarshalCaddyfile(d *caddyfile.Dispenser) error { func (m MatchHeaderRE) Match(r *http.Request) bool { for field, rm := range m { repl := r.Context().Value(caddy.ReplacerCtxKey).(caddy.Replacer) - match := rm.Match(r.Header.Get(field), repl, "header_regexp") + match := rm.Match(r.Header.Get(field), repl) if !match { return false } @@ -638,7 +638,7 @@ func (mre *MatchRegexp) Validate() error { // (namespace). Capture groups stored to repl will take on // the name "http.matchers..." where // is the name or number of the capture group. -func (mre *MatchRegexp) Match(input string, repl caddy.Replacer, scope string) bool { +func (mre *MatchRegexp) Match(input string, repl caddy.Replacer) bool { matches := mre.compiled.FindStringSubmatch(input) if matches == nil { return false @@ -646,14 +646,14 @@ func (mre *MatchRegexp) Match(input string, repl caddy.Replacer, scope string) b // save all capture groups, first by index for i, match := range matches { - key := fmt.Sprintf("http.matchers.%s.%s.%d", scope, mre.Name, i) + key := fmt.Sprintf("http.regexp.%s.%d", mre.Name, i) repl.Set(key, match) } // then by name for i, name := range mre.compiled.SubexpNames() { if i != 0 && name != "" { - key := fmt.Sprintf("http.matchers.%s.%s.%s", scope, mre.Name, name) + key := fmt.Sprintf("http.regexp.%s.%s", mre.Name, name) repl.Set(key, matches[i]) } } diff --git a/modules/caddyhttp/matchers_test.go b/modules/caddyhttp/matchers_test.go index 321d3ce..9fa7d8e 100644 --- a/modules/caddyhttp/matchers_test.go +++ b/modules/caddyhttp/matchers_test.go @@ -324,10 +324,10 @@ func TestPathREMatcher(t *testing.T) { } for key, expectVal := range tc.expectRepl { - placeholder := fmt.Sprintf("{http.matchers.path_regexp.%s}", key) + placeholder := fmt.Sprintf("{http.regexp.%s}", key) actualVal := repl.ReplaceAll(placeholder, "") if actualVal != expectVal { - t.Errorf("Test %d [%v]: Expected placeholder {http.matchers.path_regexp.%s} to be '%s' but got '%s'", + t.Errorf("Test %d [%v]: Expected placeholder {http.regexp.%s} to be '%s' but got '%s'", i, tc.match.Pattern, key, expectVal, actualVal) continue } @@ -442,10 +442,10 @@ func TestHeaderREMatcher(t *testing.T) { } for key, expectVal := range tc.expectRepl { - placeholder := fmt.Sprintf("{http.matchers.header_regexp.%s}", key) + placeholder := fmt.Sprintf("{http.regexp.%s}", key) actualVal := repl.ReplaceAll(placeholder, "") if actualVal != expectVal { - t.Errorf("Test %d [%v]: Expected placeholder {http.matchers.header_regexp.%s} to be '%s' but got '%s'", + t.Errorf("Test %d [%v]: Expected placeholder {http.regexp.%s} to be '%s' but got '%s'", i, tc.match, key, expectVal, actualVal) continue } -- cgit v1.2.3