mirror of
https://github.com/TecharoHQ/anubis.git
synced 2026-04-05 16:28:17 +00:00
36 lines
503 B
Go
36 lines
503 B
Go
package checker
|
|
|
|
import (
|
|
"fmt"
|
|
"net/http"
|
|
"strings"
|
|
|
|
"github.com/TecharoHQ/anubis/internal"
|
|
)
|
|
|
|
type Any []Interface
|
|
|
|
func (a Any) Check(r *http.Request) (bool, error) {
|
|
for _, c := range a {
|
|
match, err := c.Check(r)
|
|
if err != nil {
|
|
return match, err
|
|
}
|
|
if match {
|
|
return true, err // match
|
|
}
|
|
}
|
|
|
|
return false, nil // no match
|
|
}
|
|
|
|
func (a Any) Hash() string {
|
|
var sb strings.Builder
|
|
|
|
for _, c := range a {
|
|
fmt.Fprintln(&sb, c.Hash())
|
|
}
|
|
|
|
return internal.FastHash(sb.String())
|
|
}
|