feat(aa): add rule constructors from internal parser.

This commit is contained in:
Alexandre Pujol 2024-06-19 23:22:49 +01:00
parent ac9d6d859f
commit 163c5be61c
No known key found for this signature in database
GPG key ID: C5469996F0DF68EC
19 changed files with 456 additions and 75 deletions

View file

@ -6,6 +6,7 @@ package aa
import (
"fmt"
"slices"
)
const NETWORK Kind = "network"
@ -70,6 +71,28 @@ type Network struct {
Protocol string
}
func newNetwork(q Qualifier, rule rule) (Rule, error) {
nType, protocol, domain := "", "", ""
r := rule.GetSlice()
if len(r) > 0 {
domain = r[0]
}
if len(r) >= 2 {
if slices.Contains(requirements[NETWORK]["type"], r[1]) {
nType = r[1]
} else if slices.Contains(requirements[NETWORK]["protocol"], r[1]) {
protocol = r[1]
}
}
return &Network{
RuleBase: newBase(rule),
Qualifier: q,
Domain: domain,
Type: nType,
Protocol: protocol,
}, nil
}
func newNetworkFromLog(log map[string]string) Rule {
return &Network{
RuleBase: newBaseFromLog(log),