Skip to content

Commit

Permalink
core: add route name to action struct
Browse files Browse the repository at this point in the history
  • Loading branch information
linuxmaniac committed Jun 9, 2014
1 parent 459f86f commit c44685c
Show file tree
Hide file tree
Showing 3 changed files with 30 additions and 10 deletions.
29 changes: 21 additions & 8 deletions cfg.lex
Original file line number Diff line number Diff line change
Expand Up @@ -135,6 +135,9 @@
int startcolumn=1;
int startline=1;
char *finame = 0;
char *routename = 0;
char *default_routename = 0;

static int ign_lines=0;
static int ign_columns=0;
char* yy_number_str=0; /* str correspondent for the current NUMBER token */
Expand All @@ -155,6 +158,7 @@
int startcolumn;
int startline;
char *finame;
char *routename;
} include_stack[MAX_INCLUDE_DEPTH];
static int include_stack_ptr = 0;

Expand Down Expand Up @@ -596,16 +600,24 @@ IMPORTFILE "import_file"
<INITIAL>{ISAVPFLAGSET} { count(); yylval.strval=yytext; return ISAVPFLAGSET; }
<INITIAL>{AVPFLAGS_DECL} { count(); yylval.strval=yytext; return AVPFLAGS_DECL; }
<INITIAL>{MSGLEN} { count(); yylval.strval=yytext; return MSGLEN; }
<INITIAL>{ROUTE} { count(); yylval.strval=yytext; return ROUTE; }
<INITIAL>{ROUTE_REQUEST} { count(); yylval.strval=yytext; return ROUTE_REQUEST; }
<INITIAL>{ROUTE_ONREPLY} { count(); yylval.strval=yytext;
<INITIAL>{ROUTE} { count(); default_routename="DEFAULT_ROUTE";
yylval.strval=yytext; return ROUTE; }
<INITIAL>{ROUTE_REQUEST} { count(); default_routename="DEFAULT_ROUTE";
yylval.strval=yytext; return ROUTE_REQUEST; }
<INITIAL>{ROUTE_ONREPLY} { count(); default_routename="DEFAULT_ONREPLY";
yylval.strval=yytext;
return ROUTE_ONREPLY; }
<INITIAL>{ROUTE_REPLY} { count(); yylval.strval=yytext; return ROUTE_REPLY; }
<INITIAL>{ROUTE_FAILURE} { count(); yylval.strval=yytext;
<INITIAL>{ROUTE_REPLY} { count(); default_routename="DEFAULT_ONREPLY";
yylval.strval=yytext; return ROUTE_REPLY; }
<INITIAL>{ROUTE_FAILURE} { count(); default_routename="DEFAULT_FAILURE";
yylval.strval=yytext;
return ROUTE_FAILURE; }
<INITIAL>{ROUTE_BRANCH} { count(); yylval.strval=yytext; return ROUTE_BRANCH; }
<INITIAL>{ROUTE_SEND} { count(); yylval.strval=yytext; return ROUTE_SEND; }
<INITIAL>{ROUTE_EVENT} { count(); yylval.strval=yytext; return ROUTE_EVENT; }
<INITIAL>{ROUTE_BRANCH} { count(); default_routename="DEFAULT_BRANCH";
yylval.strval=yytext; return ROUTE_BRANCH; }
<INITIAL>{ROUTE_SEND} { count(); default_routename="DEFAULT_SEND";
yylval.strval=yytext; return ROUTE_SEND; }
<INITIAL>{ROUTE_EVENT} { count(); default_routename="DEFAULT_EVENT";
yylval.strval=yytext; return ROUTE_EVENT; }
<INITIAL>{EXEC} { count(); yylval.strval=yytext; return EXEC; }
<INITIAL>{SET_HOST} { count(); yylval.strval=yytext; return SET_HOST; }
<INITIAL>{SET_HOSTPORT} { count(); yylval.strval=yytext; return SET_HOSTPORT; }
Expand Down Expand Up @@ -1593,6 +1605,7 @@ static int sr_push_yy_state(char *fin, int mode)
include_stack[include_stack_ptr].startline = startline;
include_stack[include_stack_ptr].startcolumn = startcolumn;
include_stack[include_stack_ptr].finame = finame;
include_stack[include_stack_ptr].routename = routename;
include_stack_ptr++;

line=1;
Expand Down
9 changes: 7 additions & 2 deletions cfg.y
Original file line number Diff line number Diff line change
Expand Up @@ -256,12 +256,15 @@ extern int column;
extern int startcolumn;
extern int startline;
extern char *finame;
extern char *routename;
extern char *default_routename;

#define set_cfg_pos(x) \
do{\
if(x) {\
(x)->cline = line;\
(x)->cfile = (finame!=0)?finame:((cfg_file!=0)?cfg_file:"default");\
(x)->rname = (routename!=0)?routename:((default_routename!=0)?default_routename:"DEFAULT");\
}\
}while(0)

Expand Down Expand Up @@ -1743,9 +1746,10 @@ route_name: NUMBER {
memcpy($$, tmp, i_tmp);
$$[i_tmp]=0;
}
routename = tmp;
}
| ID { $$=$1; }
| STRING { $$=$1; }
| ID { routename = $1; $$=$1; }
| STRING { routename = $1; $$=$1; }
;


Expand Down Expand Up @@ -3372,6 +3376,7 @@ static void get_cpos(struct cfg_pos* pos)
if(finame==0)
finame = (cfg_file!=0)?cfg_file:"default";
pos->fname=finame;
pos->rname=(routename!=0)?routename:default_routename;
}


Expand Down
2 changes: 2 additions & 0 deletions route_struct.h
Original file line number Diff line number Diff line change
Expand Up @@ -156,6 +156,7 @@ struct cfg_pos{
unsigned short s_col;
unsigned short e_col;
char *fname;
char *rname;
};


Expand Down Expand Up @@ -202,6 +203,7 @@ typedef struct {
struct action{
int cline;
char *cfile;
char *rname;
enum action_type type; /* forward, drop, log, send ...*/
int count;
struct action* next;
Expand Down

0 comments on commit c44685c

Please sign in to comment.