Small rule compiler fix with tag defaults.

This commit is contained in:
Adam Ierymenko 2017-03-28 21:50:44 -07:00
parent 855361b5b8
commit b959148447
2 changed files with 4 additions and 7 deletions

View File

@ -1,6 +1,6 @@
{
"name": "zerotier-rule-compiler",
"version": "1.2.0-1",
"version": "1.2.2-1",
"description": "ZeroTier Rule Script Compiler",
"main": "cli.js",
"scripts": {

View File

@ -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]||null;
dfl = tag[++k][0]||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) {
if (dfl !== null) {
let dfl2 = enums[dfl];
if (typeof dfl2 === 'number') {
dfl = dfl2;
@ -815,10 +815,7 @@ function compile(src,rules,caps,tags)
if (typeof dfl2 === 'number') {
dfl = dfl2;
} else {
dfl = _parseNum(dfl)||0;
if (dfl < 0)
dfl = 0;
else dfl &= 0xffffffff;
dfl = Math.abs(_parseNum(dfl)||0) & 0xffffffff;
}
}
}