Hi Henning,
because of the fact, that the problem only appears, if the
pua_dialoginfo module is enabled, I think the problem is located
somewhere in the code tm hooks, dialog hooks or pua/pua_dialoginfo
itself...
I have attached the debug output of pua_dialoginfo which shows only, if
the module is enabled... may it is useful in any way...
Regards
Jasmin
> On Friday 04 June 2010, Jasmin Schnatterbeck wrote:
> > onreply_avp_mode does not seem to be available in kamailio 3.0.2 (at
> > least not in the module doc)
> > I think this parameter is for avps in reply_route? or does it work for
> > branch_route also?
>
> Hi Jasmin,
>
> ah, sorry. Its not available or necessary anymore in 3.0. In 1.5 it also
> affected the branch_route, i think, but for the newer version this behaviour
> is now the default. Then in your case its probably another problem..
>
> Cheers,
>
> Henning
Hello
I am using kamailio 1.5.0.2.
I have developed one custom function in module, and also create one custom
structure to store database recordset.
What I would like to do is...
1] I have structure say struct record and it has variable
struct record {
int id;
char name;
db_res_t *res;
};
2] Execute one query and store result into "db_res" variable of db_res_t
datatype;
3] Now I would like to preserve 'n in future i will use this recordset.. so
how can i store this "db_res" variable into structure variable.
I have tried using below syntax...
struct record rec[2];
db_res = get_record( "pass_any_query" );
rec[0].res = db_res;
But when I used this rec[0].res in future it gives garbage value.
Any Idea...???
--
Regards,
Chandrakant Solanki
THIS IS AN AUTOMATED MESSAGE, DO NOT REPLY.
The following task has a new comment added:
FS#73 - SDP parsing when dealing with multi-part bodies
User who did this - Ovidiu Sas (osas)
----------
The nathelper module is using now the core SDP parser.
Please test this on the trunk and report any issues.
Regards,
Ovidiu Sas
----------
More information can be found at the following URL:
http://sip-router.org/tracker/index.php?do=details&task_id=73#comment106
You are receiving this message because you have requested it from the Flyspray bugtracking system. If you did not expect this message or don't want to receive mails in future, you can change your notification settings at the URL shown above.
Module: sip-router
Branch: master
Commit: 377e5afba8907b0ea84147459c881f6e5af11b0c
URL: http://git.sip-router.org/cgi-bin/gitweb.cgi/sip-router/?a=commit;h=377e5af…
Author: Ovidiu Sas <osas(a)voipembedded.com>
Committer: Ovidiu Sas <osas(a)voipembedded.com>
Date: Thu Aug 5 18:40:53 2010 -0400
nathelper(k): Core SDP parser integrated into nathelper
The nathelper (k version) is using the core SDP parser to
extract the IP and port from the received message.
---
modules_k/nathelper/nathelper.c | 372 ++++++++++-----------------------------
1 files changed, 96 insertions(+), 276 deletions(-)
Diff: http://git.sip-router.org/cgi-bin/gitweb.cgi/sip-router/?a=commitdiff;h=377…
Module: sip-router
Branch: andrei/rve_f_params
Commit: d709a720cdbc578eb27184061708f730d2552b6f
URL: http://git.sip-router.org/cgi-bin/gitweb.cgi/sip-router/?a=commit;h=d709a72…
Author: Andrei Pelinescu-Onciul <andrei(a)iptel.org>
Committer: Andrei Pelinescu-Onciul <andrei(a)iptel.org>
Date: Thu Aug 5 23:13:12 2010 +0200
core: automatically fill known fixup_free functions
When a module is loaded, for each fixup with a missing fixup_free
function fill the fixup_free function if known.
This way if a module uses one of the known standard fixups, the
core will fill the corresponding free fixup function even if it's
missing in the original module or the module uses a ser style
interface (that does not have a way to define free fixups).
---
sr_module.c | 3 +++
1 files changed, 3 insertions(+), 0 deletions(-)
diff --git a/sr_module.c b/sr_module.c
index 2628226..04fb080 100644
--- a/sr_module.c
+++ b/sr_module.c
@@ -203,6 +203,9 @@ static sr31_cmd_export_t* sr_cmd_exports_convert(unsigned ver,
/* 3.1+ specific stuff */
ret[i].fixup_flags = 0;
ret[i].module_exports = mod;
+ /* fill known free fixups */
+ if (ret[i].fixup && ret[i].free_fixup == 0)
+ ret[i].free_fixup = get_fixup_free(ret[i].fixup);
}
return ret;
error:
Module: sip-router
Branch: andrei/rve_f_params
Commit: 6a40b4bdc0c9a481276cfdbfde3a70f833b85836
URL: http://git.sip-router.org/cgi-bin/gitweb.cgi/sip-router/?a=commit;h=6a40b4b…
Author: Andrei Pelinescu-Onciul <andrei(a)iptel.org>
Committer: Andrei Pelinescu-Onciul <andrei(a)iptel.org>
Date: Thu Aug 5 22:47:29 2010 +0200
core: added generic fparam fixup_free functions
Added generic fparam fixup_free functions that can be used to
clean up after a fparam fixup:
void fparam_free_restore(void** param);
int fixup_free_fparam_all(void** param, int param_no);
int fixup_free_fparam_1(void** param, int param_no);
int fixup_free_fparam_2(void** param, int param_no);
They will free anything that was allocated by the fixup and
restore the parameter pointer to the saved original value.
---
mod_fix.c | 1 +
sr_module.c | 67 +++++++++++++++++++++++++++++++++++++++++++++++++++++++---
sr_module.h | 9 ++++++++
3 files changed, 73 insertions(+), 4 deletions(-)
diff --git a/mod_fix.c b/mod_fix.c
index 2e5f076..69974b0 100644
--- a/mod_fix.c
+++ b/mod_fix.c
@@ -34,6 +34,7 @@
#include "mod_fix.h"
#include "mem/mem.h"
+#include "trim.h"
diff --git a/sr_module.c b/sr_module.c
index b729102..d552318 100644
--- a/sr_module.c
+++ b/sr_module.c
@@ -1169,6 +1169,7 @@ error:
/** fparam_t free function.
* Frees the "content" of a fparam, but not the fparam itself.
+ * Note: it doesn't free fp->orig!
* Assumes pkg_malloc'ed content.
* @param fp - fparam to be freed
*
@@ -1220,10 +1221,25 @@ void fparam_free_contents(fparam_t* fp)
}
break;
}
- if (fp->orig){
- pkg_free(fp->orig);
- fp->orig=0;
- }
+}
+
+
+
+/** generic free fixup type function for a fixed fparam.
+ * It will free whatever was allocated during the initial fparam fixup
+ * and restore the original param value.
+ */
+void fparam_free_restore(void** param)
+{
+ fparam_t *fp;
+ void *orig;
+
+ fp = *param;
+ orig = fp->orig;
+ fp->orig = 0;
+ fparam_free_contents(fp);
+ pkg_free(fp);
+ *param = orig;
}
@@ -1574,6 +1590,49 @@ int get_regex_fparam(regex_t *dst, struct sip_msg* msg, fparam_t* param)
+/** generic free fixup function for "pure" fparam type fixups.
+ * @param param - double pointer to param, as for normal fixup functions.
+ * @param param_no - parameter number, ignored.
+ * @return 0 on success (always).
+ */
+int fixup_free_fparam_all(void** param, int param_no)
+{
+ fparam_free_restore(param);
+ return 0;
+}
+
+
+
+/** generic free fixup function for "pure" first parameter fparam type fixups.
+ * @param param - double pointer to param, as for normal fixup functions.
+ * @param param_no - parameter number: the function will work only for
+ * param_no == 1 (first parameter).
+ * @return 0 on success (always).
+ */
+int fixup_free_fparam_1(void** param, int param_no)
+{
+ if (param_no == 1)
+ fparam_free_restore(param);
+ return 0;
+}
+
+
+
+/** generic free fixup function for "pure" 2nd parameter fparam type fixups.
+ * @param param - double pointer to param, as for normal fixup functions.
+ * @param param_no - parameter number: the function will work only for
+ * param_no == 2 (2nd parameter).
+ * @return 0 on success (always).
+ */
+int fixup_free_fparam_2(void** param, int param_no)
+{
+ if (param_no == 2)
+ fparam_free_restore(param);
+ return 0;
+}
+
+
+
/** returns true if a fixup is a fparam_t* one.
* Used to automatically detect fparam fixups that can be used with non
* contant RVEs.
diff --git a/sr_module.h b/sr_module.h
index 8048b6c..17606ab 100644
--- a/sr_module.h
+++ b/sr_module.h
@@ -591,4 +591,13 @@ int get_regex_fparam(regex_t *dst, struct sip_msg* msg, fparam_t* param);
int is_fparam_rve_fixup(fixup_function f);
+
+/** generic free fixup type function for a fixed fparam.
+ * It will free whatever was allocated during the initial fparam fixup
+ * and restore the original param value.
+ */
+void fparam_free_restore(void** param);
+int fixup_free_fparam_all(void** param, int param_no);
+int fixup_free_fparam_1(void** param, int param_no);
+int fixup_free_fparam_2(void** param, int param_no);
#endif /* sr_module_h */
Module: sip-router
Branch: andrei/rve_f_params
Commit: b4f455f834e621c58c0750660b9e63ccbb01f695
URL: http://git.sip-router.org/cgi-bin/gitweb.cgi/sip-router/?a=commit;h=b4f455f…
Author: Andrei Pelinescu-Onciul <andrei(a)iptel.org>
Committer: Andrei Pelinescu-Onciul <andrei(a)iptel.org>
Date: Thu Aug 5 22:38:24 2010 +0200
core: pvapi: added pv_spec_free_contents()
Added pv_spec_free_contents() that behaves like pv_spec_free(),
but frees only the contents of the pv_spec and not the pv_spec
itself (good for cleaning up pv_specs that are part of other
structures).
---
pvapi.c | 16 +++++++++++++---
pvar.h | 1 +
2 files changed, 14 insertions(+), 3 deletions(-)
diff --git a/pvapi.c b/pvapi.c
index 72024cd..7610534 100644
--- a/pvapi.c
+++ b/pvapi.c
@@ -1075,15 +1075,25 @@ error:
return NULL;
}
+
+
+/** frees only the contests of a pv_spec_t. */
+void pv_spec_free_contents(pv_spec_t *spec)
+{
+ /* TODO: free name if it is PV */
+ if(spec->trans)
+ tr_free((trans_t*)spec->trans);
+}
+
+
+
/**
*
*/
void pv_spec_free(pv_spec_t *spec)
{
if(spec==0) return;
- /* TODO: free name if it is PV */
- if(spec->trans)
- tr_free((trans_t*)spec->trans);
+ pv_spec_free_contents(spec);
pkg_free(spec);
}
diff --git a/pvar.h b/pvar.h
index 19b9310..b1a5cfa 100644
--- a/pvar.h
+++ b/pvar.h
@@ -175,6 +175,7 @@ int pv_printf(struct sip_msg* msg, pv_elem_p list, char *buf, int *len);
int pv_elem_free_all(pv_elem_p log);
void pv_value_destroy(pv_value_t *val);
void pv_spec_free(pv_spec_t *spec);
+void pv_spec_free_contents(pv_spec_t* spec);
int pv_spec_dbg(pv_spec_p sp);
int pv_get_spec_index(struct sip_msg* msg, pv_param_p ip, int *idx, int *flags);
int pv_get_avp_name(struct sip_msg* msg, pv_param_p ip, int_str *avp_name,