From d5341625561bf67c40241a4fb649b0a4991e71b2 Mon Sep 17 00:00:00 2001 From: Gregory Dosh <6432753+GregoryDosh@users.noreply.github.com> Date: Mon, 11 May 2020 15:17:59 -0500 Subject: [PATCH] caddyhttp: Match hostnames with wildcards to loggers (#3378) * adding wildcard matching of logger names * reordering precedence for more specific loggers to match first * removing dependence on certmagic and extra loop Co-authored-by: GregoryDosh --- modules/caddyhttp/server.go | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/modules/caddyhttp/server.go b/modules/caddyhttp/server.go index 55da2530..38555e74 100644 --- a/modules/caddyhttp/server.go +++ b/modules/caddyhttp/server.go @@ -456,6 +456,20 @@ func (slc ServerLogConfig) getLoggerName(host string) string { if loggerName, ok := slc.LoggerNames[host]; ok { return loggerName } + + // Try matching wildcard domains if other non-specific loggers exist + labels := strings.Split(host, ".") + for i := range labels { + if labels[i] == "" { + continue + } + labels[i] = "*" + wildcardHost := strings.Join(labels, ".") + if loggerName, ok := slc.LoggerNames[wildcardHost]; ok { + return loggerName + } + } + return slc.DefaultLoggerName }