lib: Allow optional whitespace in ranges

Makes ranges where both endpoints are negative
somewhat more readable. Also validate ranges.

Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
This commit is contained in:
Quentin Young 2016-08-04 16:39:15 +00:00
parent 5a8bbed0b1
commit ef955a80a6
2 changed files with 6 additions and 2 deletions

View File

@ -11,7 +11,7 @@ IPV6 X:X::X:X
IPV6_PREFIX X:X::X:X\/M
VARIABLE [A-Z][-_a-zA-Z:0-9]+
NUMBER [-|+]?[0-9]{1,20}
RANGE \({NUMBER}\-{NUMBER}\)
RANGE \({NUMBER}[ ]?\-[ ]?{NUMBER}\)
/* yytext shall be a pointer */
%pointer

View File

@ -206,7 +206,11 @@ placeholder_token:
// get the numbers out
$$->min = strtoimax( yylval.string+1, &yylval.string, 10 );
$$->max = strtoimax( yylval.string+1, &yylval.string, 10 );
strsep (&yylval.string, "-");
$$->max = strtoimax( yylval.string, &yylval.string, 10 );
// validate range
if ($$->min >= $$->max) yyerror("Invalid range.");
free ($1);
}