|
@@ -129,7 +129,7 @@
|
|
|
|
|
|
/* start conditions */
|
|
|
%x STRING1 STRING2 STR_BETWEEN COMMENT COMMENT_LN ATTR SELECT AVP_PVAR PVAR_P
|
|
|
-%x PVARID INCLF IMPTF EVRTNAME CFGPRINTMODE CFGPRINTLOADMOD DEFENV_ID
|
|
|
+%x PVARID INCLF IMPTF EVRTNAME CFGPRINTMODE CFGPRINTLOADMOD DEFENV_ID DEFENVS_ID
|
|
|
%x LINECOMMENT DEFINE_ID DEFINE_EOL DEFINE_DATA IFDEF_ID IFDEF_EOL IFDEF_SKIP
|
|
|
|
|
|
/* config script types : #!SER or #!KAMAILIO or #!MAX_COMPAT */
|
|
@@ -565,6 +565,7 @@ ENDIF endif
|
|
|
TRYDEF "trydefine"|"trydef"
|
|
|
REDEF "redefine"|"redef"
|
|
|
DEFENV defenv
|
|
|
+DEFENVS defenvs
|
|
|
|
|
|
/* else is already defined */
|
|
|
|
|
@@ -1449,7 +1450,28 @@ IMPORTFILE "import_file"
|
|
|
<DEFENV_ID>[^ \t\r\n]+ { /* get the define id of environment variable */
|
|
|
count();
|
|
|
ksr_cfg_print_part(yytext);
|
|
|
- if(pp_define_env(yytext, yyleng) < 0) {
|
|
|
+ if(pp_define_env(yytext, yyleng, KSR_PPDEF_NORMAL) < 0) {
|
|
|
+ LM_CRIT("error at %s line %d\n", (finame)?finame:"cfg", line);
|
|
|
+ ksr_exit(-1);
|
|
|
+ }
|
|
|
+ state = INITIAL;
|
|
|
+ ksr_cfg_print_initial_state();
|
|
|
+}
|
|
|
+
|
|
|
+<INITIAL,CFGPRINTMODE>{PREP_START}{DEFENVS} { count();
|
|
|
+ ksr_cfg_print_part(yytext);
|
|
|
+ state = DEFINE_S;
|
|
|
+ BEGIN(DEFENVS_ID);
|
|
|
+}
|
|
|
+
|
|
|
+<DEFENVS_ID>[ \t]* { /* eat the whitespace */
|
|
|
+ count();
|
|
|
+ ksr_cfg_print_part(yytext);
|
|
|
+ }
|
|
|
+<DEFENVS_ID>[^ \t\r\n]+ { /* get the define id of environment variable */
|
|
|
+ count();
|
|
|
+ ksr_cfg_print_part(yytext);
|
|
|
+ if(pp_define_env(yytext, yyleng, KSR_PPDEF_QUOTED) < 0) {
|
|
|
LM_CRIT("error at %s line %d\n", (finame)?finame:"cfg", line);
|
|
|
ksr_exit(-1);
|
|
|
}
|
|
@@ -2060,7 +2082,7 @@ int pp_define_set(int len, char *text, int mode)
|
|
|
return 0;
|
|
|
}
|
|
|
|
|
|
-int pp_define_env(const char *text, int len)
|
|
|
+int pp_define_env(const char *text, int len, int qmode)
|
|
|
{
|
|
|
char *r;
|
|
|
str defname;
|
|
@@ -2093,7 +2115,7 @@ int pp_define_env(const char *text, int len)
|
|
|
LM_ERR("cannot set define name [%s]\n", (char*)text);
|
|
|
return -1;
|
|
|
}
|
|
|
- if(pp_define_set(defvalue.len, defvalue.s, KSR_PPDEF_NORMAL)<0) {
|
|
|
+ if(pp_define_set(defvalue.len, defvalue.s, qmode)<0) {
|
|
|
LM_ERR("cannot set define value [%s]\n", (char*)text);
|
|
|
return -1;
|
|
|
}
|