fix proxy rules behavior and implemented a few more rules and commands, dependencies upgrade

This commit is contained in:
yusing
2025-01-11 12:22:42 +08:00
parent f2df756c17
commit 0ce7f29976
20 changed files with 991 additions and 443 deletions

View File

@@ -0,0 +1,34 @@
package rules
import "net/http"
type (
CheckFunc func(cached Cache, r *http.Request) bool
Checker interface {
Check(cached Cache, r *http.Request) bool
}
CheckMatchSingle []Checker
CheckMatchAll []Checker
)
func (checker CheckFunc) Check(cached Cache, r *http.Request) bool {
return checker(cached, r)
}
func (checkers CheckMatchSingle) Check(cached Cache, r *http.Request) bool {
for _, check := range checkers {
if check.Check(cached, r) {
return true
}
}
return false
}
func (checkers CheckMatchAll) Check(cached Cache, r *http.Request) bool {
for _, check := range checkers {
if !check.Check(cached, r) {
return false
}
}
return true
}