Module Name: src
Committed By: rmind
Date: Sat May 31 22:37:05 UTC 2014
Modified Files:
src/usr.sbin/npf/npfctl: npf_scan.l
Log Message:
npfctl: allow group of zeroes in IPv6 address; noted by spz@.
To generate a diff of this commit:
cvs rdiff -u -r1.20 -r1.21 src/usr.sbin/npf/npfctl/npf_scan.l
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/usr.sbin/npf/npfctl/npf_scan.l
diff -u src/usr.sbin/npf/npfctl/npf_scan.l:1.20 src/usr.sbin/npf/npfctl/npf_scan.l:1.21
--- src/usr.sbin/npf/npfctl/npf_scan.l:1.20 Fri Mar 14 11:29:45 2014
+++ src/usr.sbin/npf/npfctl/npf_scan.l Sat May 31 22:37:05 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: npf_scan.l,v 1.20 2014/03/14 11:29:45 rmind Exp $ */
+/* $NetBSD: npf_scan.l,v 1.21 2014/05/31 22:37:05 rmind Exp $ */
/*-
* Copyright (c) 2011-2012 The NetBSD Foundation, Inc.
@@ -84,6 +84,7 @@ npfctl_parse_string(const char *str)
ID [a-zA-Z_][a-zA-Z_0-9]*
DID [a-zA-Z_][a-zA-Z_0-9-]*
NUMBER [0-9]+
+HEXDIG [0-9a-fA-F]+
%%
alg return ALG;
@@ -151,7 +152,7 @@ any return ANY;
"," return COMMA;
"=" return EQ;
-"0x"[0-9a-fA-F]+ {
+"0x"{HEXDIG} {
char *endp, *buf = ecalloc(1, yyleng + 1);
buf[yyleng] = 0;
yylval.num = strtoul(buf+2, &endp, 16);
@@ -166,7 +167,12 @@ any return ANY;
return FPNUM;
}
-[0-9a-fA-F]+":"[0-9a-fA-F:]* {
+{HEXDIG}":"[0-9a-fA-F:]* {
+ yylval.str = estrndup(yytext, yyleng);
+ return IPV6ADDR;
+ }
+
+"::"{HEXDIG}[0-9a-fA-F:]* {
yylval.str = estrndup(yytext, yyleng);
return IPV6ADDR;
}