diff --git a/caddyconfig/httpcaddyfile/httptype.go b/caddyconfig/httpcaddyfile/httptype.go index ce719dd33..32791e90a 100644 --- a/caddyconfig/httpcaddyfile/httptype.go +++ b/caddyconfig/httpcaddyfile/httptype.go @@ -183,7 +183,7 @@ func (st ServerType) Setup(originalServerBlocks []caddyfile.ServerBlock, if clVals, ok := sblock.pile["tls.certificate_loader"]; ok { for _, clVal := range clVals { loader := clVal.Value.(caddytls.CertificateLoader) - loaderName := caddy.GetModuleName(loader) + loaderName := caddy.GetModuleID(loader) tlsApp.Certificates[loaderName] = caddyconfig.JSON(loader, &warnings) } } diff --git a/modules.go b/modules.go index ad03adf7b..3ca53841b 100644 --- a/modules.go +++ b/modules.go @@ -126,6 +126,17 @@ func GetModuleName(instance interface{}) string { return name } +// GetModuleID returns a module's ID (the last element of its name) +// from an instance of its value. If the value is not a module, +// an empty string will be returned. +func GetModuleID(instance interface{}) string { + var name string + if mod, ok := instance.(Module); ok { + name = mod.CaddyModule().ID() + } + return name +} + // GetModules returns all modules in the given scope/namespace. // For example, a scope of "foo" returns modules named "foo.bar", // "foo.loo", but not "bar", "foo.bar.loo", etc. An empty scope