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.
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