(defaultAllow bool, rules []Rule)
| 18 | } |
| 19 | |
| 20 | func NewPolicy(defaultAllow bool, rules []Rule) (*Policy, error) { |
| 21 | for _, rule := range rules { |
| 22 | if err := rule.Validate(); err != nil { |
| 23 | return nil, err |
| 24 | } |
| 25 | } |
| 26 | |
| 27 | policy := Policy{ |
| 28 | defaultAllow: defaultAllow, |
| 29 | rules: rules, |
| 30 | } |
| 31 | |
| 32 | return &policy, nil |
| 33 | } |
| 34 | |
| 35 | func NewRuleByCIDR(prefix *string, ports []int, allow bool) (Rule, error) { |
| 36 | if prefix == nil || len(*prefix) == 0 { |