Module: sip-router Branch: master Commit: 60372d613544af1f8f06122eb77fa2a9636a6c3a URL: http://git.sip-router.org/cgi-bin/gitweb.cgi/sip-router/?a=commit;h=60372d61...
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
---
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 53a466c..89f5e65 100644 --- a/modules/tmx/tmx_mod.c +++ b/modules/tmx/tmx_mod.c @@ -334,6 +334,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; @@ -359,6 +361,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; @@ -373,6 +377,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; }