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()