diff --git a/middleware/headers/headers.go b/middleware/headers/headers.go index ee2803dab..5ef8207cd 100644 --- a/middleware/headers/headers.go +++ b/middleware/headers/headers.go @@ -12,13 +12,13 @@ import ( // Headers is middleware that adds headers to the responses // for requests matching a certain path. type Headers struct { - Next http.HandlerFunc + Next middleware.HandlerFunc Rules []HeaderRule } -// ServeHTTP implements the http.Handler interface and serves the requests, +// ServeHTTP implements the middleware.Handler interface and serves requests, // adding headers to the response according to the configured rules. -func (h Headers) ServeHTTP(w http.ResponseWriter, r *http.Request) { +func (h Headers) ServeHTTP(w http.ResponseWriter, r *http.Request) (int, error) { for _, rule := range h.Rules { if middleware.Path(r.URL.Path).Matches(rule.Url) { for _, header := range rule.Headers { @@ -26,12 +26,12 @@ func (h Headers) ServeHTTP(w http.ResponseWriter, r *http.Request) { } } } - h.Next(w, r) + return h.Next(w, r) } type ( // HeaderRule groups a slice of HTTP headers by a URL pattern. - // TODO: use http.Header type instead?? + // TODO: use http.Header type instead? HeaderRule struct { Url string Headers []Header diff --git a/middleware/headers/new.go b/middleware/headers/new.go index 231a56f5f..cb727ef14 100644 --- a/middleware/headers/new.go +++ b/middleware/headers/new.go @@ -1,10 +1,6 @@ package headers -import ( - "net/http" - - "github.com/mholt/caddy/middleware" -) +import "github.com/mholt/caddy/middleware" // New constructs and configures a new headers middleware instance. func New(c middleware.Controller) (middleware.Middleware, error) { @@ -14,7 +10,7 @@ func New(c middleware.Controller) (middleware.Middleware, error) { return nil, err } - return func(next http.HandlerFunc) http.HandlerFunc { + return func(next middleware.HandlerFunc) middleware.HandlerFunc { return Headers{Next: next, Rules: rules}.ServeHTTP }, nil }