[sr-dev] git:master:836d122a: pv_headers: use tm.t_find API

Victor Seva linuxmaniac at torreviejawireless.org
Mon Aug 29 11:43:44 CEST 2022


Module: kamailio
Branch: master
Commit: 836d122af8575c66651232f3ad25bad085bfb972
URL: https://github.com/kamailio/kamailio/commit/836d122af8575c66651232f3ad25bad085bfb972

Author: Victor Seva <linuxmaniac at torreviejawireless.org>
Committer: Victor Seva <linuxmaniac at torreviejawireless.org>
Date: 2022-08-28T22:59:44+02:00

pv_headers: use tm.t_find API

---

Modified: src/modules/pv_headers/pv_headers.c

---

Diff:  https://github.com/kamailio/kamailio/commit/836d122af8575c66651232f3ad25bad085bfb972.diff
Patch: https://github.com/kamailio/kamailio/commit/836d122af8575c66651232f3ad25bad085bfb972.patch

---

diff --git a/src/modules/pv_headers/pv_headers.c b/src/modules/pv_headers/pv_headers.c
index e555e0265bb..7da426c184f 100644
--- a/src/modules/pv_headers/pv_headers.c
+++ b/src/modules/pv_headers/pv_headers.c
@@ -526,6 +526,7 @@ int handle_msg_branch_cb(struct sip_msg *msg, unsigned int flags, void *cb)
 
 int handle_msg_reply_cb(struct sip_msg *msg, unsigned int flags, void *cb)
 {
+	int vref = 0;
 	tm_cell_t *t = NULL;
 	sr_xavp_t **backup_xavis = NULL;
 	sr_xavp_t **list = NULL;
@@ -534,18 +535,12 @@ int handle_msg_reply_cb(struct sip_msg *msg, unsigned int flags, void *cb)
 		return 1;
 	LM_DBG("msg:%p previous branch:%d\n", msg, _branch);
 
-	if(tmb.t_check(msg, &_branch) == -1) {
-		LM_ERR("failed find UAC branch\n");
-	} else {
-		t = tmb.t_gett();
-		if(t == NULL || t == T_UNDEFINED) {
-			LM_DBG("cannot lookup the transaction\n");
-		} else {
-			LM_DBG("T:%p t_check-branch:%d xavi_list:%p branches:%d\n", t,
-					_branch, &t->xavis_list, t->nr_of_outgoings);
-			list = &t->xavis_list;
-			backup_xavis = xavi_set_list(&t->xavis_list);
-		}
+	t = tmb.t_find(msg, &_branch, &vref);
+	if(t != NULL && t != T_UNDEFINED) {
+		LM_DBG("T:%p t_check-branch:%d xavi_list:%p branches:%d\n", t,
+				_branch, &t->xavis_list, t->nr_of_outgoings);
+		list = &t->xavis_list;
+		backup_xavis = xavi_set_list(&t->xavis_list);
 	}
 
 	pvh_get_branch_index(msg, &_branch);
@@ -560,7 +555,7 @@ int handle_msg_reply_cb(struct sip_msg *msg, unsigned int flags, void *cb)
 		xavi_set_list(backup_xavis);
 		LM_DBG("restored backup_xavis:%p\n", *backup_xavis);
 	}
-	if(t) {
+	if(t && vref) {
 		tmb.unref_cell(t);
 		LM_DBG("T:%p unref\n", t);
 	}




More information about the sr-dev mailing list