diff options
author | Matthew Holt <mholt@users.noreply.github.com> | 2019-06-21 14:36:26 -0600 |
---|---|---|
committer | Matthew Holt <mholt@users.noreply.github.com> | 2019-06-21 14:36:26 -0600 |
commit | d49f762f6d9cdc2e92e8de40f0b0e99a9d0c4fc9 (patch) | |
tree | a4003b5967027faaf0cbbb6fbd7b8407a14a508c /modules/caddyhttp/matchers.go | |
parent | 81a9e125b54b34d453c425dbd58a3270b9568dca (diff) |
Various bug fixes and minor improvements
- Fix static responder so it doesn't replace its own headers config,
and instead replaces the actual response header values
- caddyhttp.ResponseRecorder type optionally buffers response
- Add interface guards to ensure regexp matchers get provisioned
- Use default HTTP port if one is not explicitly set
- Encode middleware writes status code 200 if not written upstream
- Templates and markdown only try to execute on text responses
- Static file server sets Content-Type based on file extension only
(this whole thing -- MIME sniffing, etc -- needs more configurability)
Diffstat (limited to 'modules/caddyhttp/matchers.go')
-rw-r--r-- | modules/caddyhttp/matchers.go | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/modules/caddyhttp/matchers.go b/modules/caddyhttp/matchers.go index 2395e13..cb0820b 100644 --- a/modules/caddyhttp/matchers.go +++ b/modules/caddyhttp/matchers.go @@ -226,9 +226,9 @@ func (m MatchHeaderRE) Match(r *http.Request) bool { } // Provision compiles m's regular expressions. -func (m MatchHeaderRE) Provision() error { +func (m MatchHeaderRE) Provision(ctx caddy.Context) error { for _, rm := range m { - err := rm.Provision() + err := rm.Provision(ctx) if err != nil { return err } @@ -371,7 +371,7 @@ type MatchRegexp struct { } // Provision compiles the regular expression. -func (mre *MatchRegexp) Provision() error { +func (mre *MatchRegexp) Provision(caddy.Context) error { re, err := regexp.Compile(mre.Pattern) if err != nil { return fmt.Errorf("compiling matcher regexp %s: %v", mre.Pattern, err) @@ -479,14 +479,17 @@ var ( _ RequestMatcher = (*MatchHost)(nil) _ RequestMatcher = (*MatchPath)(nil) _ RequestMatcher = (*MatchPathRE)(nil) + _ caddy.Provisioner = (*MatchPathRE)(nil) _ RequestMatcher = (*MatchMethod)(nil) _ RequestMatcher = (*MatchQuery)(nil) _ RequestMatcher = (*MatchHeader)(nil) _ RequestMatcher = (*MatchHeaderRE)(nil) + _ caddy.Provisioner = (*MatchHeaderRE)(nil) _ RequestMatcher = (*MatchProtocol)(nil) _ RequestMatcher = (*MatchRemoteIP)(nil) _ caddy.Provisioner = (*MatchRemoteIP)(nil) _ RequestMatcher = (*MatchNegate)(nil) _ caddy.Provisioner = (*MatchNegate)(nil) _ RequestMatcher = (*MatchStarlarkExpr)(nil) + _ caddy.Provisioner = (*MatchRegexp)(nil) ) |