Module: sip-router
Branch: master
Commit: 60372d613544af1f8f06122eb77fa2a9636a6c3a
URL:
http://git.sip-router.org/cgi-bin/gitweb.cgi/sip-router/?a=commit;h=60372d6…
Author: Daniel-Constantin Mierla <miconda(a)gmail.com>
Committer: Daniel-Constantin Mierla <miconda(a)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;
}