From 23482da259e34631545426c02392ec705a412d04 Mon Sep 17 00:00:00 2001 From: yusing Date: Tue, 22 Apr 2025 07:18:51 +0800 Subject: [PATCH] fix(route): panic on middleware error --- internal/route/route.go | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/internal/route/route.go b/internal/route/route.go index 43cfa9d..449bc53 100644 --- a/internal/route/route.go +++ b/internal/route/route.go @@ -118,18 +118,24 @@ func (r *Route) Validate() (err gperr.Error) { return errs.Error() } + var impl types.Route switch r.Scheme { case types.SchemeFileServer: - r.impl, err = NewFileServer(r) + impl, err = NewFileServer(r) case types.SchemeHTTP, types.SchemeHTTPS: - r.impl, err = NewReverseProxyRoute(r) + impl, err = NewReverseProxyRoute(r) case types.SchemeTCP, types.SchemeUDP: - r.impl, err = NewStreamRoute(r) + impl, err = NewStreamRoute(r) default: panic(fmt.Errorf("unexpected scheme %s for alias %s", r.Scheme, r.Alias)) } - return err + if err != nil { + return err + } + + r.impl = impl + return nil } func (r *Route) Start(parent task.Parent) (err gperr.Error) {