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.
Files changed (3) hide show
  1. checksums.yaml +4 -4
  2. data/src/rules/events.c +6 -2
  3. metadata +2 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: a01733997ce444fcb2910a67668c5e10b8893161
4
- data.tar.gz: 50ee1913a41d48dcd28d7315a32ef8dffa5fb075
3
+ metadata.gz: 06aca017b6ef6c5368d78a1ffacc5a79af6f0a7d
4
+ data.tar.gz: 88fc00734924f677ca7ea05fa1c1906e04bdd773
5
5
  SHA512:
6
- metadata.gz: '077958cc68110cfa8bf9e6354019281d112f0f1ee63b8cc295b95e85af9c9ed22dba29b8c80edb866be8c3d6f37c70bd1151257f7fe492fc49a6fdd930f31574'
7
- data.tar.gz: 87f14ddb90146ce93cfed1eaafce9bd720e650c1d121695a324010a7b3a08e28f1d1cfd843b527e0a49b96a39e6fa856d900f00aac6dbfb0803595e3d7fbb2fb
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.53
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-09-24 00:00:00.000000000 Z
11
+ date: 2018-10-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake