durable_rules 0.34.53 → 0.34.54
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/src/rules/events.c +6 -2
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 06aca017b6ef6c5368d78a1ffacc5a79af6f0a7d
|
4
|
+
data.tar.gz: 88fc00734924f677ca7ea05fa1c1906e04bdd773
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: df6e4423db1c3a5fe1b6b059d9f58896cf0398bee3376c4a9a0317e0e8890e0e2302ea572117f7b8b27027cde58d4a3a723b90bf2bdc682ce17418d17bc12b3d
|
7
|
+
data.tar.gz: 209c2fda5a36962ace358c796cc600297a1785980ffad6f7f77980d443c3ba052441b730fe59567205a133a0957cf367d0051b6ae00e04dc12be9b2097dd8132
|
data/src/rules/events.c
CHANGED
@@ -989,6 +989,7 @@ static unsigned int isArrayMatch(ruleset *tree,
|
|
989
989
|
char exists = 0;
|
990
990
|
for(unsigned int propertyIndex = 0; propertyIndex < jo.propertiesLength; ++propertyIndex) {
|
991
991
|
if (listNode->value.a.hash == jo.properties[propertyIndex].hash) {
|
992
|
+
// filter out not exists (OP_NEX)
|
992
993
|
exists = 1;
|
993
994
|
break;
|
994
995
|
}
|
@@ -1052,8 +1053,8 @@ static unsigned int isArrayMatch(ruleset *tree,
|
|
1052
1053
|
}
|
1053
1054
|
}
|
1054
1055
|
|
1055
|
-
// no next offset means we found a valid path
|
1056
|
-
if (!currentAlpha->nextOffset) {
|
1056
|
+
// no next offset and no nextListOffest means we found a valid path
|
1057
|
+
if (!currentAlpha->nextOffset && !currentAlpha->nextListOffset) {
|
1057
1058
|
*propertyMatch = 1;
|
1058
1059
|
break;
|
1059
1060
|
}
|
@@ -1094,6 +1095,7 @@ static unsigned int handleAlpha(ruleset *tree,
|
|
1094
1095
|
while (top) {
|
1095
1096
|
--top;
|
1096
1097
|
currentAlpha = stack[top];
|
1098
|
+
// add all disjunctive nodes to stack
|
1097
1099
|
if (currentAlpha->nextListOffset) {
|
1098
1100
|
unsigned int *nextList = &tree->nextPool[currentAlpha->nextListOffset];
|
1099
1101
|
for (entry = 0; nextList[entry] != 0; ++entry) {
|
@@ -1101,6 +1103,7 @@ static unsigned int handleAlpha(ruleset *tree,
|
|
1101
1103
|
char exists = 0;
|
1102
1104
|
for(unsigned int propertyIndex = 0; propertyIndex < jo->propertiesLength; ++propertyIndex) {
|
1103
1105
|
if (listNode->value.a.hash == jo->properties[propertyIndex].hash) {
|
1106
|
+
// filter out not exists (OP_NEX)
|
1104
1107
|
exists = 1;
|
1105
1108
|
break;
|
1106
1109
|
}
|
@@ -1117,6 +1120,7 @@ static unsigned int handleAlpha(ruleset *tree,
|
|
1117
1120
|
}
|
1118
1121
|
}
|
1119
1122
|
|
1123
|
+
// calculate conjunctive nodes
|
1120
1124
|
if (currentAlpha->nextOffset) {
|
1121
1125
|
unsigned int *nextHashset = &tree->nextPool[currentAlpha->nextOffset];
|
1122
1126
|
for(unsigned int propertyIndex = 0; propertyIndex < jo->propertiesLength; ++propertyIndex) {
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: durable_rules
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.34.
|
4
|
+
version: 0.34.54
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jesus Ruiz
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-
|
11
|
+
date: 2018-10-01 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rake
|