[sr-dev] git:4.2:496771dd: tm: check all the outgoing branches when appending a new branch

Federico Cabiddu federico.cabiddu at gmail.com
Fri Sep 4 15:14:39 CEST 2015


Module: kamailio
Branch: 4.2
Commit: 496771dd79b7318764a9cf2dc669ec4d8dc11ae9
URL: https://github.com/kamailio/kamailio/commit/496771dd79b7318764a9cf2dc669ec4d8dc11ae9

Author: Federico Cabiddu <federico.cabiddu at gmail.com>
Committer: Federico Cabiddu <federico.cabiddu at gmail.com>
Date: 2015-09-04T15:14:30+02:00

tm: check all the outgoing branches when appending a new branch

(cherry picked from commit 27bed654dcc4e9dd543a7f2f92e2174478bf7f26)

---

Modified: modules/tm/t_append_branches.c

---

Diff:  https://github.com/kamailio/kamailio/commit/496771dd79b7318764a9cf2dc669ec4d8dc11ae9.diff
Patch: https://github.com/kamailio/kamailio/commit/496771dd79b7318764a9cf2dc669ec4d8dc11ae9.patch

---

diff --git a/modules/tm/t_append_branches.c b/modules/tm/t_append_branches.c
index 37f8025..f16c672 100644
--- a/modules/tm/t_append_branches.c
+++ b/modules/tm/t_append_branches.c
@@ -109,8 +109,6 @@ int t_append_branches(void) {
 		set_branch_route(t->on_branch_delayed);
 	}
 
-	outgoings = t->nr_of_outgoings;
-
 	/* not really sure that the following is needed */
 
 	set_branch_iterator(nr_branches-1);
@@ -119,7 +117,7 @@ int t_append_branches(void) {
 										&bflags, &si, &ruid, &instance, &location_ua))) {
 		LM_DBG("Current uri %.*s\n",current_uri.len, current_uri.s);
 
-		for (i=0; i<=nr_branches; i++) {
+		for (i=0; i<outgoings; i++) {
 			if (t->uac[i].ruid.len == ruid.len
 					&& !memcmp(t->uac[i].ruid.s, ruid.s, ruid.len)) {
 				LM_DBG("branch already added [%.*s]\n", ruid.len, ruid.s);
@@ -136,6 +134,8 @@ int t_append_branches(void) {
 					&path, 0, si, orig_msg->fwd_send_flags,
 					orig_msg->rcv.proto, (dst_uri.len)?-1:UAC_SKIP_BR_DST_F, &instance,
 					&ruid, &location_ua);
+		
+		LM_DBG("added branch [%.*s] with ruid [%.*s]\n", current_uri.len, current_uri.s, ruid.len, ruid.s);
 
 		/* test if cancel was received meanwhile */
 		if (t->flags & T_CANCELED) goto canceled;




More information about the sr-dev mailing list