aboutsummaryrefslogtreecommitdiffstats
path: root/epan/dfilter
diff options
context:
space:
mode:
Diffstat (limited to 'epan/dfilter')
-rw-r--r--epan/dfilter/scanner.l12
1 files changed, 9 insertions, 3 deletions
diff --git a/epan/dfilter/scanner.l b/epan/dfilter/scanner.l
index c8838a7219..cd63e08e7e 100644
--- a/epan/dfilter/scanner.l
+++ b/epan/dfilter/scanner.l
@@ -378,8 +378,12 @@ v6-cidr-prefix \/[[:digit:]]{1,3}
return set_lval_str(TOKEN_UNPARSED, yytext);
}
-[[:xdigit:]]+:[[:xdigit:]:]* {
+:?[[:xdigit:]]+:[[:xdigit:]:]* {
/* Bytes. */
+ if (yytext[0] == ':') {
+ /* Skip leading colon. */
+ return set_lval_str(TOKEN_LITERAL, yytext + 1);
+ }
return set_lval_str(TOKEN_UNPARSED, yytext);
}
@@ -392,8 +396,10 @@ v6-cidr-prefix \/[[:digit:]]{1,3}
/* Identifier or literal or unparsed. */
if (yytext[0] == '.')
return set_lval_str(TOKEN_IDENTIFIER, yytext);
- if (yytext[0] == ':')
- return set_lval_str(TOKEN_LITERAL, yytext);
+ if (yytext[0] == ':') {
+ /* Skip leading colon. */
+ return set_lval_str(TOKEN_LITERAL, yytext + 1);
+ }
return set_lval_str(TOKEN_UNPARSED, yytext);
}