diff --git a/internal/net/gphttp/middleware/cloudflare_real_ip.go b/internal/net/gphttp/middleware/cloudflare_real_ip.go index 4fdcf2e..19314d6 100644 --- a/internal/net/gphttp/middleware/cloudflare_real_ip.go +++ b/internal/net/gphttp/middleware/cloudflare_real_ip.go @@ -17,8 +17,7 @@ import ( ) type cloudflareRealIP struct { - realIP realIP - Recursive bool + realIP realIP } const ( @@ -47,7 +46,7 @@ var CloudflareRealIP = NewMiddleware[cloudflareRealIP]() func (cri *cloudflareRealIP) setup() { cri.realIP.RealIPOpts = RealIPOpts{ Header: "CF-Connecting-IP", - Recursive: cri.Recursive, + Recursive: true, } } diff --git a/internal/net/gphttp/middleware/middlewares.go b/internal/net/gphttp/middleware/middlewares.go index 184de94..a59cda2 100644 --- a/internal/net/gphttp/middleware/middlewares.go +++ b/internal/net/gphttp/middleware/middlewares.go @@ -35,8 +35,8 @@ var allMiddlewares = map[string]*Middleware{ } var ( - ErrUnknownMiddleware = gperr.New("unknown middleware") - ErrDuplicatedMiddleware = gperr.New("duplicated middleware") + ErrUnknownMiddleware = gperr.New("unknown middleware") + ErrMiddlewareAlreadyExists = gperr.New("middleware with the same name already exists") ) func Get(name string) (*Middleware, Error) { @@ -69,7 +69,7 @@ func LoadComposeFiles() { for name, m := range mws { name = strutils.ToLowerNoSnake(name) if _, ok := allMiddlewares[name]; ok { - errs.Add(ErrDuplicatedMiddleware.Subject(name)) + errs.Add(ErrMiddlewareAlreadyExists.Subject(name)) continue } allMiddlewares[name] = m diff --git a/internal/route/provider/docker.go b/internal/route/provider/docker.go index 0483bbb..67c995a 100755 --- a/internal/route/provider/docker.go +++ b/internal/route/provider/docker.go @@ -80,8 +80,11 @@ func (p *DockerProvider) loadRoutesImpl() (route.Routes, gperr.Error) { errs.Add(err.Subject(container.ContainerName)) } for k, v := range newEntries { - if routes.Contains(k) { - errs.Addf("duplicated alias %s", k) + if conflict, ok := routes[k]; ok { + errs.Add(gperr.Multiline(). + Addf("route with alias %s already exists", k). + Addf("container %s", container.ContainerName). + Addf("conflicting container %s", conflict.Container.ContainerName)) } else { routes[k] = v }