From 4ce12109008528bcf03dba0901bf65082da52261 Mon Sep 17 00:00:00 2001 From: Oriol Capsada Date: Tue, 11 Jul 2017 22:44:16 +0200 Subject: [PATCH] cplc: use route names to set proxy_route modparam - Changed proxy_route modparam type to string. The route to be executed needs to be defined by name as the current id definition led to some unpredictable behavior. (cherry picked from commit 027871f7a91cf288d36029a4f339801e8b620d10) --- src/modules/cplc/cplc.c | 11 ++++++++++- src/modules/cplc/doc/cplc_admin.xml | 6 +++--- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/src/modules/cplc/cplc.c b/src/modules/cplc/cplc.c index 5a2b8972dca..cb47ffc4e05 100644 --- a/src/modules/cplc/cplc.c +++ b/src/modules/cplc/cplc.c @@ -62,6 +62,7 @@ static str db_table = str_init("cpl"); /* database table */ static char *dtd_file = 0; /* name of the DTD file for CPL parser */ static char *lookup_domain = 0; static str timer_avp = STR_NULL; /* name of variable timer AVP */ +static str proxy_route = STR_NULL; struct cpl_enviroment cpl_env = { @@ -132,7 +133,7 @@ static param_export_t params[] = { {"db_table", PARAM_STR, &db_table }, {"cpl_dtd_file", PARAM_STRING, &dtd_file }, {"proxy_recurse", INT_PARAM, &cpl_env.proxy_recurse }, - {"proxy_route", INT_PARAM, &cpl_env.proxy_route }, + {"proxy_route", PARAM_STR, &proxy_route }, {"log_dir", PARAM_STRING, &cpl_env.log_dir }, {"case_sensitive", INT_PARAM, &cpl_env.case_sensitive }, {"realm_prefix", PARAM_STR, &cpl_env.realm_prefix }, @@ -232,6 +233,14 @@ static int cpl_init(void) goto error; } + if (proxy_route.len>0) { + cpl_env.proxy_route=route_lookup(&main_rt, proxy_route.s); + if (cpl_env.proxy_route==-1) { + LM_CRIT("route <%s> defined in proxy_route does not exist\n",proxy_route.s); + goto error; + } + } + /* fix the timer_avp name */ if (timer_avp.s && timer_avp.len > 0) { if (pv_parse_spec(&timer_avp, &avp_spec)==0 diff --git a/src/modules/cplc/doc/cplc_admin.xml b/src/modules/cplc/doc/cplc_admin.xml index ac832a1e5fa..9d7ed7749e0 100644 --- a/src/modules/cplc/doc/cplc_admin.xml +++ b/src/modules/cplc/doc/cplc_admin.xml @@ -280,7 +280,7 @@ modparam("cpl-c","proxy_recurse",2)
- <varname>proxy_route</varname> (int) + <varname>proxy_route</varname> (string) Before doing proxy (forward), a script route can be executed. All modifications made by that route will be reflected only for @@ -288,14 +288,14 @@ modparam("cpl-c","proxy_recurse",2) - Default value of this parameter is 0 (none). + Default value of this parameter is NULL (none). Set <varname>proxy_route</varname> parameter ... -modparam("cpl-c","proxy_route",1) +modparam("cpl-c","proxy_route","1") ...