summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAdam Ierymenko <adam.ierymenko@gmail.com>2017-03-28 22:25:24 -0700
committerAdam Ierymenko <adam.ierymenko@gmail.com>2017-03-28 22:25:24 -0700
commit3f4f7145a3814bf5e3250208186d55a1def2b3f2 (patch)
tree1afa6a8704055765ac1b2e0ef6a8bc912440a8b3
parentb95914844753060005395d51a7d9886cba8d17ca (diff)
downloadinfinitytier-3f4f7145a3814bf5e3250208186d55a1def2b3f2.tar.gz
infinitytier-3f4f7145a3814bf5e3250208186d55a1def2b3f2.zip
Another rule compiler fix.
-rw-r--r--rule-compiler/cli.js3
-rw-r--r--rule-compiler/package.json2
-rw-r--r--rule-compiler/rule-compiler.js8
3 files changed, 8 insertions, 5 deletions
diff --git a/rule-compiler/cli.js b/rule-compiler/cli.js
index a0ff5197..75235ac8 100644
--- a/rule-compiler/cli.js
+++ b/rule-compiler/cli.js
@@ -26,9 +26,10 @@ if (err) {
let tagsArray = [];
for(let n in tags) {
let t = tags[n];
+ let dfl = t['default'];
tagsArray.push({
'id': t.id,
- 'default': t['default']||null
+ 'default': (((dfl)||(dfl === 0)) ? dfl : null)
});
}
diff --git a/rule-compiler/package.json b/rule-compiler/package.json
index 1def45a5..1db006b3 100644
--- a/rule-compiler/package.json
+++ b/rule-compiler/package.json
@@ -1,6 +1,6 @@
{
"name": "zerotier-rule-compiler",
- "version": "1.2.2-1",
+ "version": "1.2.2-2",
"description": "ZeroTier Rule Script Compiler",
"main": "cli.js",
"scripts": {
diff --git a/rule-compiler/rule-compiler.js b/rule-compiler/rule-compiler.js
index 89936213..bd84824e 100644
--- a/rule-compiler/rule-compiler.js
+++ b/rule-compiler/rule-compiler.js
@@ -762,7 +762,7 @@ function compile(src,rules,caps,tags)
return [ tag[k][1],tag[k][2],'Duplicate tag default directive.' ];
if ((k + 1) >= tag.length)
return [ tag[k][1],tag[k][2],'Missing value for default.' ];
- dfl = tag[++k][0]||0;
+ dfl = tag[++k][0];
} else if (tkeyword === 'flag') {
if ((k + 2) >= tag.length)
return [ tag[k][1],tag[k][2],'Missing tag flag name or bit index.' ];
@@ -806,7 +806,7 @@ function compile(src,rules,caps,tags)
if (id < 0)
return [ tag[0][1],tag[0][2],'Tag definition is missing a numeric ID.' ];
- if (dfl !== null) {
+ if (typeof dfl === 'string') {
let dfl2 = enums[dfl];
if (typeof dfl2 === 'number') {
dfl = dfl2;
@@ -815,9 +815,11 @@ function compile(src,rules,caps,tags)
if (typeof dfl2 === 'number') {
dfl = dfl2;
} else {
- dfl = Math.abs(_parseNum(dfl)||0) & 0xffffffff;
+ dfl = Math.abs(parseInt(dfl)||0) & 0xffffffff;
}
}
+ } else if (typeof dfl === 'number') {
+ dfl = Math.abs(dfl) & 0xffffffff;
}
tags[tagName] = {