Updated *ipnet filter

This commit is contained in:
Trial97
2020-08-11 17:23:07 +03:00
committed by Dan Christian Bogos
parent c4a9f8e6ce
commit dbe4720666
3 changed files with 33 additions and 15 deletions

View File

@@ -733,10 +733,10 @@ func testV1STSProcessStatWithThreshold(t *testing.T) {
QueueLength: 100,
TTL: time.Duration(1) * time.Second,
Metrics: []*engine.MetricWithFilters{
&engine.MetricWithFilters{
{
MetricID: utils.MetaTCD,
},
&engine.MetricWithFilters{
{
MetricID: utils.ConcatenatedKey(utils.MetaSum, "2"),
},
},

View File

@@ -579,16 +579,21 @@ func (fltr *FilterRule) passIPNet(dDP utils.DataProvider) (bool, error) {
}
return false, err
}
_, ip, err := net.ParseCIDR(strVal)
if err != nil {
return false, err
ip := net.ParseIP(strVal)
if ip == nil {
return false, nil
}
for _, val := range fltr.rsrValues {
sval, err := val.ParseDataProvider(dDP)
if err != nil {
continue
}
if ip.Contains(net.ParseIP(sval)) {
_, ipNet, err := net.ParseCIDR(sval)
if err != nil {
continue
}
if ipNet.Contains(ip) {
return true, nil
}
}

View File

@@ -1371,11 +1371,11 @@ func TestVerifyInlineFilterS(t *testing.T) {
func TestFilterPassIPNet(t *testing.T) {
cd := utils.MapStorage{
"IP": "192.0.2.1/24",
"WrongIP": "192.0.2.1",
"IP": "192.0.2.0",
"WrongIP": "192.0.3.",
}
rf := &FilterRule{Type: utils.MetaIPNet,
Element: "~IP", Values: []string{"192.0.2.0"}}
Element: "~IP", Values: []string{"192.0.2.1/24"}}
if err := rf.CompileValues(); err != nil {
t.Fatal(err)
}
@@ -1385,7 +1385,7 @@ func TestFilterPassIPNet(t *testing.T) {
t.Error("Not passes filter")
}
rf = &FilterRule{Type: utils.MetaIPNet,
Element: "~IP", Values: []string{"~IP2", "192.0.3.0"}}
Element: "~IP", Values: []string{"~IP2", "192.0.3.0/30"}}
if err := rf.CompileValues(); err != nil {
t.Fatal(err)
}
@@ -1396,7 +1396,7 @@ func TestFilterPassIPNet(t *testing.T) {
}
//not
rf = &FilterRule{Type: utils.MetaNotIPNet,
Element: "~IP", Values: []string{"192.0.2.0"}}
Element: "~IP", Values: []string{"192.0.2.0/24"}}
if err := rf.CompileValues(); err != nil {
t.Fatal(err)
}
@@ -1406,7 +1406,7 @@ func TestFilterPassIPNet(t *testing.T) {
t.Error("Filter passes")
}
rf = &FilterRule{Type: utils.MetaNotIPNet,
Element: "~IP", Values: []string{"192.0.3.0"}}
Element: "~IP", Values: []string{"192.0.3.0/24"}}
if err := rf.CompileValues(); err != nil {
t.Fatal(err)
}
@@ -1417,7 +1417,18 @@ func TestFilterPassIPNet(t *testing.T) {
}
rf = &FilterRule{Type: utils.MetaIPNet,
Element: "~IP2", Values: []string{"192.0.2.0"}}
Element: "~IP2", Values: []string{"192.0.2.0/24"}}
if err := rf.CompileValues(); err != nil {
t.Fatal(err)
}
if passes, err := rf.passIPNet(cd); err != nil {
t.Error(err)
} else if passes {
t.Error("Filter passes")
}
rf = &FilterRule{Type: utils.MetaIPNet,
Element: "~IP", Values: []string{"192.0.2.0"}}
if err := rf.CompileValues(); err != nil {
t.Fatal(err)
}
@@ -1432,11 +1443,13 @@ func TestFilterPassIPNet(t *testing.T) {
if err := rf.CompileValues(); err != nil {
t.Fatal(err)
}
if _, err := rf.passIPNet(cd); err == nil {
if passes, err := rf.passIPNet(cd); err != nil {
t.Error(err)
} else if passes {
t.Error("Filter passes")
}
rf = &FilterRule{Type: utils.MetaIPNet,
Element: "~IP{*duration}", Values: []string{"192.0.2.0"}}
Element: "~IP{*duration}", Values: []string{"192.0.2.0/24"}}
if err := rf.CompileValues(); err != nil {
t.Fatal(err)
}