From 48c27f1c6d800d20e701b2bac738911bb80ab4c7 Mon Sep 17 00:00:00 2001 From: Trial97 Date: Tue, 4 May 2021 12:30:23 +0300 Subject: [PATCH] Updated *rsr filter --- engine/filters.go | 2 +- engine/filters_test.go | 21 +++++++++++++++++++++ 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/engine/filters.go b/engine/filters.go index be4e96178..e54afc29d 100644 --- a/engine/filters.go +++ b/engine/filters.go @@ -514,7 +514,7 @@ func (fltr *FilterRule) passRSR(dDP utils.DataProvider) (bool, error) { } return false, err } - match := fltr.rsrFilters.Pass(fld, true) + match := fltr.rsrFilters.Pass(fld, false) return match, nil } diff --git a/engine/filters_test.go b/engine/filters_test.go index 1650ab606..998d9c247 100644 --- a/engine/filters_test.go +++ b/engine/filters_test.go @@ -1086,3 +1086,24 @@ func TestAPIBan(t *testing.T) { t.Errorf("Expected error %s received: %v", expErr, err) } } + +func TestFilterPassRSRFieldsWithMultplieValues(t *testing.T) { + ev := utils.MapStorage{ + utils.MetaReq: utils.MapStorage{ + "23": "sip:11561561561561568@dan", + }, + } + cfg := config.NewDefaultCGRConfig() + dm := NewDataManager(NewInternalDB(nil, nil, true), cfg.CacheCfg(), nil) + flts := NewFilterS(cfg, nil, dm) + if passes, err := flts.Pass(context.Background(), "cgrate.org", []string{"*rsr:~*req.23:dan|1001"}, ev); err != nil { + t.Error(err) + } else if !passes { + t.Error("Not passing") + } + if passes, err := flts.Pass(context.Background(), "cgrate.org", []string{"*rsr:~*req.23:dan"}, ev); err != nil { + t.Error(err) + } else if !passes { + t.Error("Not passing") + } +}