aboutsummaryrefslogtreecommitdiffstats
path: root/epan/radius_dict.l
diff options
context:
space:
mode:
authorLuis Ontanon <luis.ontanon@gmail.com>2006-03-23 00:57:56 +0000
committerLuis Ontanon <luis.ontanon@gmail.com>2006-03-23 00:57:56 +0000
commitfdb5257f7cc8e19e6f8bcd35edee225cf44438a2 (patch)
treeb43dca973c69bf16489470ee83ad892c942402e0 /epan/radius_dict.l
parentfd0640e930a13bb7f7288e3d9d02b8c1a873d97d (diff)
Bug 796
the dictionary parser could not handle more than one attribute with parameters per file svn path=/trunk/; revision=17702
Diffstat (limited to 'epan/radius_dict.l')
-rw-r--r--epan/radius_dict.l10
1 files changed, 6 insertions, 4 deletions
diff --git a/epan/radius_dict.l b/epan/radius_dict.l
index d5233d072f..3170272bfe 100644
--- a/epan/radius_dict.l
+++ b/epan/radius_dict.l
@@ -8,7 +8,7 @@
%option outfile="radius_dict.c"
%{
- /* packet-radius.c
+ /* radius_dict.l
*
* RADIUS dictionary parser
*
@@ -129,9 +129,9 @@
<ATTR_W_ID>date { attr_type = radius_date; BEGIN ATTR_W_TYPE; }
<ATTR_W_ID>ifid { attr_type = radius_ifid; BEGIN ATTR_W_TYPE; }
<ATTR_W_ID>[0-9a-z_-]+ { attr_type = radius_octets; BEGIN ATTR_W_TYPE; }
-<ATTR_W_TYPE>has_tag[,]? { has_tag = TRUE; attr_vendor = NULL; BEGIN ATTR_W_VENDOR; }
-<ATTR_W_TYPE>encrypt=1[,]? { encrypted=TRUE; attr_vendor = NULL; BEGIN ATTR_W_VENDOR; }
-<ATTR_W_TYPE>[,0-9a-z_-]+=([^\n]+) { /* ignore other parameters */ attr_vendor = NULL; BEGIN ATTR_W_VENDOR; }
+<ATTR_W_TYPE>has_tag[,]? { has_tag = TRUE; }
+<ATTR_W_TYPE>encrypt=1[,]? { encrypted=TRUE; }
+<ATTR_W_TYPE>[0-9a-z_-]+=([^\n]*) ;
<ATTR_W_TYPE>[0-9a-z_-]+ {
attr_vendor = g_strdup(yytext);
add_attribute(attr_name,attr_id,attr_type,attr_vendor,encrypted,has_tag);
@@ -148,6 +148,8 @@
g_free(attr_id);
g_free(attr_name);
linenums[include_stack_ptr]++;
+ has_tag = FALSE;
+ encrypted=FALSE;
BEGIN OUT;
}
<ATTR_W_VENDOR>\n {