From 82f02ea2bfa012e412e2241e44c4d5a00932f336 Mon Sep 17 00:00:00 2001 From: yusing Date: Sun, 12 Oct 2025 22:21:01 +0800 Subject: [PATCH] fix(rules): nil panic when only having default rule --- internal/route/rules/rules.go | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/internal/route/rules/rules.go b/internal/route/rules/rules.go index 7cb9f360..8ebe6652 100644 --- a/internal/route/rules/rules.go +++ b/internal/route/rules/rules.go @@ -64,16 +64,15 @@ func (rules Rules) BuildHandler(up http.Handler) http.HandlerFunc { } nonDefaultRules := make(Rules, 0, len(rules)) - for i, rule := range rules { + for _, rule := range rules { if rule.Name == "default" { defaultRule = rule - nonDefaultRules = append(nonDefaultRules, rules[:i]...) - nonDefaultRules = append(nonDefaultRules, rules[i+1:]...) - break + } else { + nonDefaultRules = append(nonDefaultRules, rule) } } - if len(rules) == 0 { + if len(nonDefaultRules) == 0 { if defaultRule.Do.isBypass() { return up.ServeHTTP }