[sr-dev] git:master:027871f7: cplc: use route names to set proxy_route modparam
Daniel-Constantin Mierla
miconda at gmail.com
Wed Jul 12 10:42:53 CEST 2017
Module: kamailio
Branch: master
Commit: 027871f7a91cf288d36029a4f339801e8b620d10
URL: https://github.com/kamailio/kamailio/commit/027871f7a91cf288d36029a4f339801e8b620d10
Author: Oriol Capsada <ocapsada at gmail.com>
Committer: Daniel-Constantin Mierla <miconda at gmail.com>
Date: 2017-07-12T10:42:48+02:00
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.
---
Modified: src/modules/cplc/cplc.c
Modified: src/modules/cplc/doc/cplc_admin.xml
---
Diff: https://github.com/kamailio/kamailio/commit/027871f7a91cf288d36029a4f339801e8b620d10.diff
Patch: https://github.com/kamailio/kamailio/commit/027871f7a91cf288d36029a4f339801e8b620d10.patch
---
diff --git a/src/modules/cplc/cplc.c b/src/modules/cplc/cplc.c
index 5a2b8972dc..cb47ffc4e0 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 ac832a1e5f..9d7ed7749e 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)
</example>
</section>
<section>
- <title><varname>proxy_route</varname> (int)</title>
+ <title><varname>proxy_route</varname> (string)</title>
<para>
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)
</para>
<para>
<emphasis>
- Default value of this parameter is 0 (none).
+ Default value of this parameter is NULL (none).
</emphasis>
</para>
<example>
<title>Set <varname>proxy_route</varname> parameter</title>
<programlisting format="linespecific">
...
-modparam("cpl-c","proxy_route",1)
+modparam("cpl-c","proxy_route","1")
...
</programlisting>
</example>
More information about the sr-dev
mailing list