durable_rules 0.34.53 → 0.34.54
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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
|