diff --git a/pkg/engine/chain_router.go b/pkg/engine/chain_router.go index 830919f..fe6c470 100644 --- a/pkg/engine/chain_router.go +++ b/pkg/engine/chain_router.go @@ -42,41 +42,36 @@ func (dr *defaultChainRouter) checkLocal(name chain.Name, rt RequestTarget, r re if dr.local == nil { return } - var ruleFounds []bool + + var hasAllow bool for _, target := range rt.Targets() { status, ruleFound, err = dr.matchLocalOverrides(name, target, r) if err != nil || ruleFound && status != chain.Allow { return } - ruleFounds = append(ruleFounds, ruleFound) + hasAllow = hasAllow || ruleFound } status = chain.NoRuleFound - for _, ruleFound = range ruleFounds { - if ruleFound { - status = chain.Allow - break - } + if hasAllow { + status = chain.Allow } return } func (dr *defaultChainRouter) checkMorph(name chain.Name, rt RequestTarget, r resource.Request) (status chain.Status, ruleFound bool, err error) { - var ruleFounds []bool + var hasAllow bool for _, target := range rt.Targets() { status, ruleFound, err = dr.matchMorphRuleChains(name, target, r) if err != nil || ruleFound && status != chain.Allow { return } - ruleFounds = append(ruleFounds, ruleFound) + hasAllow = hasAllow || ruleFound } status = chain.NoRuleFound - for _, ruleFound = range ruleFounds { - if ruleFound { - status = chain.Allow - break - } + if hasAllow { + status = chain.Allow } return }