[sr-dev] git:master:5e701d6a: core: cfg parser - resolve conflict between proto:host and event route name

Daniel-Constantin Mierla miconda at gmail.com
Mon Jan 5 18:53:19 CET 2015


Module: kamailio
Branch: master
Commit: 5e701d6a0826611dc980db2f434bee49e0fdcf88
URL: https://github.com/kamailio/kamailio/commit/5e701d6a0826611dc980db2f434bee49e0fdcf88

Author: Daniel-Constantin Mierla <miconda at gmail.com>
Committer: Daniel-Constantin Mierla <miconda at gmail.com>
Date: 2015-01-05T18:50:40+01:00

core: cfg parser - resolve conflict between proto:host and event route name

- there was a conflict on same kind of id:id format
- event route name is expected now only after an event_route

---

Modified: cfg.lex

---

Diff:  https://github.com/kamailio/kamailio/commit/5e701d6a0826611dc980db2f434bee49e0fdcf88.diff
Patch: https://github.com/kamailio/kamailio/commit/5e701d6a0826611dc980db2f434bee49e0fdcf88.patch

---

diff --git a/cfg.lex b/cfg.lex
index 472dfd0..3eb79dc 100644
--- a/cfg.lex
+++ b/cfg.lex
@@ -117,6 +117,7 @@
 	#define IFDEF_EOL_S             14
 	#define IFDEF_SKIP_S            15
 	#define DEFINE_DATA_S           16
+	#define EVRT_NAME_S             17
 
 	#define STR_BUF_ALLOC_UNIT	128
 	struct str_buf{
@@ -181,7 +182,7 @@
 
 /* start conditions */
 %x STRING1 STRING2 STR_BETWEEN COMMENT COMMENT_LN ATTR SELECT AVP_PVAR PVAR_P 
-%x PVARID INCLF IMPTF
+%x PVARID INCLF IMPTF EVRTNAME
 %x LINECOMMENT DEFINE_ID DEFINE_EOL DEFINE_DATA IFDEF_ID IFDEF_EOL IFDEF_SKIP
 
 /* config script types : #!SER  or #!KAMAILIO or #!MAX_COMPAT */
@@ -619,7 +620,19 @@ IMPORTFILE      "import_file"
 <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; }
+							yylval.strval=yytext;
+							state=EVRT_NAME_S; BEGIN(EVRTNAME);
+							return ROUTE_EVENT; }
+<EVRTNAME>{LBRACK}          { count(); return LBRACK; }
+<EVRTNAME>{EAT_ABLE}|{CR}				{ count(); };
+<EVRTNAME>{EVENT_RT_NAME}	{ count();
+								addstr(&s_buf, yytext, yyleng);
+								yylval.strval=s_buf.s;
+								memset(&s_buf, 0, sizeof(s_buf));
+								return EVENT_RT_NAME; }
+<EVRTNAME>{RBRACK}          { count();
+								state=INITIAL_S; BEGIN(INITIAL);
+								return RBRACK; }
 <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; }
@@ -1150,11 +1163,6 @@ IMPORTFILE      "import_file"
 <INITIAL>{DOT}		{ count(); return DOT; }
 <INITIAL>\\{CR}		{count(); } /* eat the escaped CR */
 <INITIAL>{CR}		{ count();/* return CR;*/ }
-<INITIAL>{EVENT_RT_NAME}	{ count();
-								addstr(&s_buf, yytext, yyleng);
-								yylval.strval=s_buf.s;
-								memset(&s_buf, 0, sizeof(s_buf));
-								return EVENT_RT_NAME; }
 
 
 <INITIAL,SELECT>{QUOTES} { count(); old_initial = YY_START; 




More information about the sr-dev mailing list