From 42acdad9e541192185fe2ce64e72430ab032ca16 Mon Sep 17 00:00:00 2001 From: Matthew Holt Date: Sun, 7 Jul 2019 14:12:22 -0600 Subject: [PATCH] Fix error handling with Validate when loading modules (fixes #2658) The return statement was improperly nested in context.go --- context.go | 2 +- modules/caddyhttp/caddyhttp.go | 10 +++++++--- modules/caddyhttp/fileserver/staticfiles.go | 8 ++++++-- 3 files changed, 14 insertions(+), 6 deletions(-) diff --git a/context.go b/context.go index ea4f8a32..17488e40 100644 --- a/context.go +++ b/context.go @@ -138,8 +138,8 @@ func (ctx Context) LoadModule(name string, rawMsg json.RawMessage) (interface{}, if err2 != nil { err = fmt.Errorf("%v; additionally, cleanup: %v", err, err2) } - return nil, fmt.Errorf("%s: invalid configuration: %v", mod.Name, err) } + return nil, fmt.Errorf("%s: invalid configuration: %v", mod.Name, err) } } diff --git a/modules/caddyhttp/caddyhttp.go b/modules/caddyhttp/caddyhttp.go index 7d30178e..3277e429 100644 --- a/modules/caddyhttp/caddyhttp.go +++ b/modules/caddyhttp/caddyhttp.go @@ -102,7 +102,7 @@ func (app *App) Validate() error { } for _, a := range expanded { if sn, ok := lnAddrs[netw+a]; ok { - return fmt.Errorf("listener address repeated: %s (already claimed by server '%s')", a, sn) + return fmt.Errorf("server %s: listener address repeated: %s (already claimed by server '%s')", srvName, a, sn) } lnAddrs[netw+a] = srvName } @@ -486,5 +486,9 @@ const ( DefaultHTTPSPort = 443 ) -// Interface guard -var _ caddy.App = (*App)(nil) +// Interface guards +var ( + _ caddy.App = (*App)(nil) + _ caddy.Provisioner = (*App)(nil) + _ caddy.Validator = (*App)(nil) +) diff --git a/modules/caddyhttp/fileserver/staticfiles.go b/modules/caddyhttp/fileserver/staticfiles.go index 67a337b1..0bb910d8 100644 --- a/modules/caddyhttp/fileserver/staticfiles.go +++ b/modules/caddyhttp/fileserver/staticfiles.go @@ -450,5 +450,9 @@ var defaultIndexNames = []string{"index.html"} const minBackoff, maxBackoff = 2, 5 -// Interface guard -var _ caddyhttp.Handler = (*FileServer)(nil) +// Interface guards +var ( + _ caddy.Provisioner = (*FileServer)(nil) + _ caddy.Validator = (*FileServer)(nil) + _ caddyhttp.Handler = (*FileServer)(nil) +)