Module: sip-router Branch: 4.0 Commit: 211348ae0fa62282fb437fc97beeab6b10a1dbed URL: http://git.sip-router.org/cgi-bin/gitweb.cgi/sip-router/?a=commit;h=211348ae...
Author: Daniel-Constantin Mierla miconda@gmail.com Committer: Daniel-Constantin Mierla miconda@gmail.com Date: Sun Nov 24 16:06:41 2013 +0100
tmx: backup and restore existing T and branch pointers for t_cancel_callid()
- reported and initial patch by Guillaume Bour
(cherry picked from commit 60372d613544af1f8f06122eb77fa2a9636a6c3a) (cherry picked from commit f7ed69d75746dc55e5a48a7a18602124e73cd3cd)
---
modules/tmx/tmx_mod.c | 5 +++++ 1 files changed, 5 insertions(+), 0 deletions(-)
diff --git a/modules/tmx/tmx_mod.c b/modules/tmx/tmx_mod.c index c559f40..8837a58 100644 --- a/modules/tmx/tmx_mod.c +++ b/modules/tmx/tmx_mod.c @@ -331,6 +331,8 @@ static int fixup_cancel_callid(void** param, int param_no) static int t_cancel_callid(struct sip_msg* msg, char *cid, char *cseq, char *flag) { struct cell *trans; + struct cell *bkt; + int bkb; struct cancel_info cancel_data; str cseq_s; str callid_s; @@ -356,6 +358,8 @@ static int t_cancel_callid(struct sip_msg* msg, char *cid, char *cseq, char *fla return -1; }
+ bkt = _tmx_tmb.t_gett(); + bkb = _tmx_tmb.t_gett_branch(); if( _tmx_tmb.t_lookup_callid(&trans, callid_s, cseq_s) < 0 ) { DBG("Lookup failed - no transaction\n"); return -1; @@ -370,6 +374,7 @@ static int t_cancel_callid(struct sip_msg* msg, char *cid, char *cseq, char *fla _tmx_tmb.cancel_uacs(trans, &cancel_data, 0);
//_tmx_tmb.unref_cell(trans); + _tmx_tmb.t_sett(bkt, bkb);
return 1; }