@marcel91200 / caddy Mirror · read-only / commits / 320c5729
Fork 0

Fast and extensible multi-platform HTTP/1-2-3 web server with automatic HTTPS

Mirrored from https://github.com/Slazee/caddy.git

Synced Nov 11, 23:30 UTC

admin: Make sure that any admin routers are provisioned when local/re… (#6997)

* admin: Make sure that any admin routers are provisioned when local/remote admin servers are replaced at runtime. * admin: check for provisioning errors during admin server replacements

Jimmy Lipham committed May 6, 2025 at 16:28 UTC 320c57291dbe06e00e0759bdb5cbbf0d622e5968
1 file changed +14
admin.go
+14
@@ -424,6 +424,13 @@ func replaceLocalAdminServer(cfg *Config, ctx Context) error {
424
425 handler := cfg.Admin.newAdminHandler(addr, false, ctx)
426
427 + // run the provisioners for loaded modules to make sure local
428 + // state is properly re-initialized in the new admin server
429 + err = cfg.Admin.provisionAdminRouters(ctx)
430 + if err != nil {
431 + return err
432 + }
433 +
434 ln, err := addr.Listen(context.TODO(), 0, net.ListenConfig{})
435 if err != nil {
436 return err
@@ -545,6 +552,13 @@ func replaceRemoteAdminServer(ctx Context, cfg *Config) error {
552 // because we are using TLS authentication instead
553 handler := cfg.Admin.newAdminHandler(addr, true, ctx)
554
555 + // run the provisioners for loaded modules to make sure local
556 + // state is properly re-initialized in the new admin server
557 + err = cfg.Admin.provisionAdminRouters(ctx)
558 + if err != nil {
559 + return err
560 + }
561 +
562 // create client certificate pool for TLS mutual auth, and extract public keys
563 // so that we can enforce access controls at the application layer
564 clientCertPool := x509.NewCertPool()