diff --git a/goutils b/goutils index 21e3d06e..66b3d4cb 160000 --- a/goutils +++ b/goutils @@ -1 +1 @@ -Subproject commit 21e3d06e6b8ec57581b8aa0fd44a76a588dce832 +Subproject commit 66b3d4cbebd19b4b5d4c593c7e5e7b62c9d6c9eb diff --git a/internal/api/v1/file/validate.go b/internal/api/v1/file/validate.go index 96889570..94e927c7 100644 --- a/internal/api/v1/file/validate.go +++ b/internal/api/v1/file/validate.go @@ -57,7 +57,7 @@ func validateFile(fileType FileType, content []byte) gperr.Error { return config.Validate(content) case FileTypeMiddleware: errs := gperr.NewBuilder("middleware errors") - middleware.BuildMiddlewaresFromYAML("", content, errs) + middleware.BuildMiddlewaresFromYAML("", content, &errs) return errs.Error() } return provider.Validate(content) diff --git a/internal/net/gphttp/middleware/cidr_whitelist_test.go b/internal/net/gphttp/middleware/cidr_whitelist_test.go index 9de55033..c7e45e8f 100644 --- a/internal/net/gphttp/middleware/cidr_whitelist_test.go +++ b/internal/net/gphttp/middleware/cidr_whitelist_test.go @@ -62,7 +62,7 @@ func TestCIDRWhitelistValidation(t *testing.T) { func TestCIDRWhitelist(t *testing.T) { errs := gperr.NewBuilder("") - mids := BuildMiddlewaresFromYAML("", testCIDRWhitelistCompose, errs) + mids := BuildMiddlewaresFromYAML("", testCIDRWhitelistCompose, &errs) expect.NoError(t, errs.Error()) deny = mids["deny@file"] accept = mids["accept@file"] diff --git a/internal/net/gphttp/middleware/middleware_builder_test.go b/internal/net/gphttp/middleware/middleware_builder_test.go index 2233fe3c..16a4e26a 100644 --- a/internal/net/gphttp/middleware/middleware_builder_test.go +++ b/internal/net/gphttp/middleware/middleware_builder_test.go @@ -14,7 +14,7 @@ var testMiddlewareCompose []byte func TestBuild(t *testing.T) { errs := gperr.NewBuilder("") - middlewares := BuildMiddlewaresFromYAML("", testMiddlewareCompose, errs) + middlewares := BuildMiddlewaresFromYAML("", testMiddlewareCompose, &errs) expect.NoError(t, errs.Error()) expect.Must(json.MarshalIndent(middlewares, "", " ")) // t.Log(string(data)) diff --git a/internal/net/gphttp/middleware/middlewares.go b/internal/net/gphttp/middleware/middlewares.go index 7360f7f7..571d5e1d 100644 --- a/internal/net/gphttp/middleware/middlewares.go +++ b/internal/net/gphttp/middleware/middlewares.go @@ -73,7 +73,7 @@ func LoadComposeFiles() { } for _, defFile := range middlewareDefs { voidErrs := gperr.NewBuilder("") // ignore these errors, will be added in next step - mws := BuildMiddlewaresFromComposeFile(defFile, voidErrs) + mws := BuildMiddlewaresFromComposeFile(defFile, &voidErrs) if len(mws) == 0 { continue } @@ -92,7 +92,7 @@ func LoadComposeFiles() { } // build again to resolve cross references for _, defFile := range middlewareDefs { - mws := BuildMiddlewaresFromComposeFile(defFile, errs) + mws := BuildMiddlewaresFromComposeFile(defFile, &errs) if len(mws) == 0 { continue } diff --git a/internal/route/provider/event_handler.go b/internal/route/provider/event_handler.go index eacd5670..23f45ab3 100644 --- a/internal/route/provider/event_handler.go +++ b/internal/route/provider/event_handler.go @@ -12,7 +12,7 @@ import ( type EventHandler struct { provider *Provider - errs *gperr.Builder + errs gperr.Builder } func (p *Provider) newEventHandler() *EventHandler { diff --git a/internal/route/route.go b/internal/route/route.go index 04ad1b8d..ee8c8bdd 100644 --- a/internal/route/route.go +++ b/internal/route/route.go @@ -219,19 +219,19 @@ func (r *Route) Validate() gperr.Error { switch r.Scheme { case route.SchemeFileServer: - r.ProxyURL = gperr.Collect(errs, nettypes.ParseURL, "file://"+r.Root) + r.ProxyURL = gperr.Collect(&errs, nettypes.ParseURL, "file://"+r.Root) r.Host = "" r.Port.Proxy = 0 case route.SchemeHTTP, route.SchemeHTTPS: if r.Port.Listening != 0 { errs.Addf("unexpected listening port for %s scheme", r.Scheme) } - r.ProxyURL = gperr.Collect(errs, nettypes.ParseURL, fmt.Sprintf("%s://%s:%d", r.Scheme, r.Host, r.Port.Proxy)) + r.ProxyURL = gperr.Collect(&errs, nettypes.ParseURL, fmt.Sprintf("%s://%s:%d", r.Scheme, r.Host, r.Port.Proxy)) case route.SchemeTCP, route.SchemeUDP: if !r.ShouldExclude() { - r.LisURL = gperr.Collect(errs, nettypes.ParseURL, fmt.Sprintf("%s://:%d", r.Scheme, r.Port.Listening)) + r.LisURL = gperr.Collect(&errs, nettypes.ParseURL, fmt.Sprintf("%s://:%d", r.Scheme, r.Port.Listening)) } - r.ProxyURL = gperr.Collect(errs, nettypes.ParseURL, fmt.Sprintf("%s://%s:%d", r.Scheme, r.Host, r.Port.Proxy)) + r.ProxyURL = gperr.Collect(&errs, nettypes.ParseURL, fmt.Sprintf("%s://%s:%d", r.Scheme, r.Host, r.Port.Proxy)) } if !r.UseHealthCheck() && (r.UseLoadBalance() || r.UseIdleWatcher()) { diff --git a/internal/types/docker.go b/internal/types/docker.go index a7bbc34c..89b32e11 100644 --- a/internal/types/docker.go +++ b/internal/types/docker.go @@ -54,21 +54,15 @@ type ( } // @name ContainerImage ContainerError struct { - errs *gperr.Builder + errs gperr.Builder } ) func (e *ContainerError) Add(err error) { - if e.errs == nil { - e.errs = gperr.NewBuilder() - } e.errs.Add(err) } func (e *ContainerError) Error() string { - if e.errs == nil { - return "" - } return e.errs.String() } @@ -77,6 +71,6 @@ func (e *ContainerError) Unwrap() error { } func (e *ContainerError) MarshalJSON() ([]byte, error) { - err := e.errs.Error().(interface{ Plain() []byte }) + err := e.errs.Error().(gperr.PlainError) return sonic.Marshal(string(err.Plain())) }