mirror of https://github.com/caddyserver/caddy.git
http: Ensure primary routes always get compiled (fix #2972)
Including servers for HTTP->HTTPS redirects which do not get provisioned like the rest.
This commit is contained in:
parent
2eda21ec6d
commit
8be1f0ea66
|
@ -164,6 +164,7 @@ func (app *App) Provision(ctx caddy.Context) error {
|
||||||
srv.Listen[i] = lnOut
|
srv.Listen[i] = lnOut
|
||||||
}
|
}
|
||||||
|
|
||||||
|
primaryRoute := emptyHandler
|
||||||
if srv.Routes != nil {
|
if srv.Routes != nil {
|
||||||
err := srv.Routes.Provision(ctx)
|
err := srv.Routes.Provision(ctx)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -171,8 +172,9 @@ func (app *App) Provision(ctx caddy.Context) error {
|
||||||
}
|
}
|
||||||
// pre-compile the handler chain, and be sure to wrap it in our
|
// pre-compile the handler chain, and be sure to wrap it in our
|
||||||
// route handler so that important security checks are done, etc.
|
// route handler so that important security checks are done, etc.
|
||||||
srv.primaryHandlerChain = srv.wrapPrimaryRoute(srv.Routes.Compile())
|
srv.primaryHandlerChain = srv.Routes.Compile()
|
||||||
}
|
}
|
||||||
|
srv.primaryHandlerChain = srv.wrapPrimaryRoute(primaryRoute)
|
||||||
|
|
||||||
if srv.Errors != nil {
|
if srv.Errors != nil {
|
||||||
err := srv.Errors.Routes.Provision(ctx)
|
err := srv.Errors.Routes.Provision(ctx)
|
||||||
|
@ -504,7 +506,7 @@ func (app *App) automaticHTTPS() error {
|
||||||
// if there are HTTP->HTTPS redirects to add, do so now
|
// if there are HTTP->HTTPS redirects to add, do so now
|
||||||
if len(lnAddrRedirRoutes) > 0 {
|
if len(lnAddrRedirRoutes) > 0 {
|
||||||
var redirServerAddrs []string
|
var redirServerAddrs []string
|
||||||
var redirRoutes []Route
|
var redirRoutes RouteList
|
||||||
|
|
||||||
// for each redirect listener, see if there's already a
|
// for each redirect listener, see if there's already a
|
||||||
// server configured to listen on that exact address; if so,
|
// server configured to listen on that exact address; if so,
|
||||||
|
@ -539,11 +541,12 @@ func (app *App) automaticHTTPS() error {
|
||||||
// rest of the redirects
|
// rest of the redirects
|
||||||
if len(redirServerAddrs) > 0 {
|
if len(redirServerAddrs) > 0 {
|
||||||
app.Servers["remaining_auto_https_redirects"] = &Server{
|
app.Servers["remaining_auto_https_redirects"] = &Server{
|
||||||
Listen: redirServerAddrs,
|
Listen: redirServerAddrs,
|
||||||
Routes: redirRoutes,
|
Routes: redirRoutes,
|
||||||
tlsApp: tlsApp, // required to solve HTTP challenge
|
tlsApp: tlsApp, // required to solve HTTP challenge
|
||||||
logger: app.logger.Named("log"),
|
logger: app.logger.Named("log"),
|
||||||
errorLogger: app.logger.Named("log.error"),
|
errorLogger: app.logger.Named("log.error"),
|
||||||
|
primaryHandlerChain: redirRoutes.Compile(),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue