summaryrefslogtreecommitdiff
path: root/parse.lex
diff options
context:
space:
mode:
authorTodd C. Miller <Todd.Miller@courtesan.com>2007-08-13 16:30:02 +0000
committerTodd C. Miller <Todd.Miller@courtesan.com>2007-08-13 16:30:02 +0000
commitf3490da0e48733bbc6b678ed942d2158f886f2cb (patch)
tree2dddc1ad2e77d4443ad617936b7824d066e5581e /parse.lex
parent66c57db39cf14d017e650cb18fd1451f2ee57025 (diff)
downloadsudo-f3490da0e48733bbc6b678ed942d2158f886f2cb.tar.gz
Add IPv6 support; adapted from patches by YOSHIFUJI Hideaki
Diffstat (limited to 'parse.lex')
-rw-r--r--parse.lex15
1 files changed, 15 insertions, 0 deletions
diff --git a/parse.lex b/parse.lex
index 928833905..fd7ab7bea 100644
--- a/parse.lex
+++ b/parse.lex
@@ -83,8 +83,11 @@ extern void yyerror __P((char *));
#endif
%}
+HEXDIGIT [0-9A-Fa-f]{1,4}
OCTET (1?[0-9]{1,2})|(2[0-4][0-9])|(25[0-5])
DOTTEDQUAD {OCTET}(\.{OCTET}){3}
+IPV6ADDR \:\:|({HEXDIGIT}\:){7}{HEXDIGIT}|({HEXDIGIT}\:){5}{HEXDIGIT}\:{DOTTEDQUAD}|({HEXDIGIT}\:){1,7}\:|({HEXDIGIT}\:){1,6}(\:{HEXDIGIT}){1}|({HEXDIGIT}\:){1,5}(\:{HEXDIGIT}){2}|({HEXDIGIT}\:){1,2}\:{DOTTEDQUAD}|({HEXDIGIT}\:){1,4}(\:{HEXDIGIT}){3}|({HEXDIGIT}\:){1,4}(\:{HEXDIGIT}){1}\:{DOTTEDQUAD}|({HEXDIGIT}\:){1,3}(\:{HEXDIGIT}){4}|({HEXDIGIT}\:){1,3}(\:{HEXDIGIT}){2}\:{DOTTEDQUAD}|({HEXDIGIT}\:){1,2}(\:{HEXDIGIT}){5}|({HEXDIGIT}\:){1,2}(\:{HEXDIGIT}){3}\:{DOTTEDQUAD}|({HEXDIGIT}\:){1}(\:{HEXDIGIT}){6}|({HEXDIGIT}\:){1}(\:{HEXDIGIT}){4}\:{DOTTEDQUAD}|\:(\:{HEXDIGIT}){1,7}|\:(\:{HEXDIGIT}){1,5}\:{DOTTEDQUAD}
+
HOSTNAME [[:alnum:]_-]+
WORD ([^#>@!=:,\(\) \t\n\\]|\\[^\n])+
ENVAR ([^#!=, \t\n\\]|\\[^\n])([^#=, \t\n\\]|\\[^\n])*
@@ -265,6 +268,18 @@ NOSETENV[[:blank:]]*: {
return(NTWKADDR);
}
+{IPV6ADDR}(\/{IPV6ADDR})? {
+ fill(yytext, yyleng);
+ LEXTRACE("NTWKADDR ");
+ return(NTWKADDR);
+ }
+
+{IPV6ADDR}\/([0-9]|[1-9][0-9]|1[01][0-9]|12[0-8]) {
+ fill(yytext, yyleng);
+ LEXTRACE("NTWKADDR ");
+ return(NTWKADDR);
+ }
+
<INITIAL>\( {
BEGIN GOTRUNAS;
LEXTRACE("RUNAS ");