Browse Source

caddyhttp: Fix fallback for the error handler chain (#4131)

* caddyhttp: Fix fallback for the error handler chain

The fix I went with in the end (after realizing some mistaken assumptions in #4131) is to just make the routes fall back to errorEmptyHandler instead of the non-error empty handler, if Terminal is true, making the routes error-aware. Ultimately this was probably just an oversight when errors was implemented at some point in the early betas of v2.

See https://caddy.community/t/problem-with-basicauth-handle-errors/12243/9 for context.

* Revert "caddyhttp: Fix fallback for the error handler chain"

This reverts commit 95b6ac44a6122d3ca5513a13bbc723cd5f4785f8.

* caddyhttp: Fix via `routes.go`
master
Francis Lavoie 4 years ago
committed by GitHub
parent
commit
d4b2f1bcee
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 6
      modules/caddyhttp/routes.go

6
modules/caddyhttp/routes.go

@ -220,7 +220,11 @@ func wrapRoute(route Route) Middleware {
// make terminal routes terminate
if route.Terminal {
nextCopy = emptyHandler
if _, ok := req.Context().Value(ErrorCtxKey).(error); ok {
nextCopy = errorEmptyHandler
} else {
nextCopy = emptyHandler
}
}
// compile this route's handler stack

Loading…
Cancel
Save