@@ -2,7 +2,7 @@ package parser
2
2
3
3
import (
4
4
"fmt"
5
- "net"
5
+ "net/netip "
6
6
7
7
"github.com/expr-lang/expr"
8
8
"github.com/expr-lang/expr/vm"
@@ -15,9 +15,9 @@ import (
15
15
type Whitelist struct {
16
16
Reason string `yaml:"reason,omitempty"`
17
17
Ips []string `yaml:"ip,omitempty"`
18
- B_Ips []net. IP
18
+ B_Ips []netip. Addr
19
19
Cidrs []string `yaml:"cidr,omitempty"`
20
- B_Cidrs []* net. IPNet
20
+ B_Cidrs []netip. Prefix
21
21
Exprs []string `yaml:"expression,omitempty"`
22
22
B_Exprs []* ExprWhitelist
23
23
}
@@ -50,7 +50,7 @@ func (n *Node) CheckIPsWL(p *types.Event) bool {
50
50
break
51
51
}
52
52
for _ , v := range n .Whitelist .B_Ips {
53
- if v . Equal ( src ) {
53
+ if v == src {
54
54
n .Logger .Debugf ("Event from [%s] is whitelisted by IP (%s), reason [%s]" , src , v , n .Whitelist .Reason )
55
55
isWhitelisted = true
56
56
break
@@ -110,14 +110,17 @@ func (n *Node) CheckExprWL(cachedExprEnv map[string]interface{}, p *types.Event)
110
110
111
111
func (n * Node ) CompileWLs () (bool , error ) {
112
112
for _ , v := range n .Whitelist .Ips {
113
- n .Whitelist .B_Ips = append (n .Whitelist .B_Ips , net .ParseIP (v ))
114
- n .Logger .Debugf ("adding ip %s to whitelists" , net .ParseIP (v ))
113
+ if addr , err := netip .ParseAddr (v ); err == nil {
114
+ n .Whitelist .B_Ips = append (n .Whitelist .B_Ips , addr )
115
+ n .Logger .Debugf ("adding ip %s to whitelists" , addr )
116
+ }
117
+ // XXX: handle error?
115
118
}
116
119
117
120
for _ , v := range n .Whitelist .Cidrs {
118
- _ , tnet , err := net . ParseCIDR (v )
121
+ tnet , err := netip . ParsePrefix (v )
119
122
if err != nil {
120
- return false , fmt .Errorf ("unable to parse cidr whitelist '%s' : %v" , v , err )
123
+ return false , fmt .Errorf ("parsing whitelist: %w" , err )
121
124
}
122
125
n .Whitelist .B_Cidrs = append (n .Whitelist .B_Cidrs , tnet )
123
126
n .Logger .Debugf ("adding cidr %s to whitelists" , tnet )
0 commit comments