[sr-dev] git:master:0ee3dc5e: modules/tm: restore code to set blind uac branch last_reply > 200

jaybeepee jason.penton at gmail.com
Fri Mar 20 12:29:42 CET 2015


Module: kamailio
Branch: master
Commit: 0ee3dc5e3edc49cf62f97ddd87a40b12c59b73ff
URL: https://github.com/kamailio/kamailio/commit/0ee3dc5e3edc49cf62f97ddd87a40b12c59b73ff

Author: jaybeepee <jason.penton at gmail.com>
Committer: jaybeepee <jason.penton at gmail.com>
Date: 2015-03-20T13:29:34+02:00

modules/tm: restore code to set blind uac branch last_reply > 200

---

Modified: modules/tm/t_suspend.c

---

Diff:  https://github.com/kamailio/kamailio/commit/0ee3dc5e3edc49cf62f97ddd87a40b12c59b73ff.diff
Patch: https://github.com/kamailio/kamailio/commit/0ee3dc5e3edc49cf62f97ddd87a40b12c59b73ff.patch

---

diff --git a/modules/tm/t_suspend.c b/modules/tm/t_suspend.c
index 4abfe72..cc4dd61 100644
--- a/modules/tm/t_suspend.c
+++ b/modules/tm/t_suspend.c
@@ -215,10 +215,15 @@ int t_continue(unsigned int hash_index, unsigned int label,
 				return 1;
 			}
 
-			/*we really don't need this next line anymore otherwise we will 
-			never be able to forward replies after a (t_relay) on this branch.
-			We want to try and treat this branch as 'normal' (as if it were a normal req, not async)' */
-			//t->uac[branch].last_received=500;
+			/* Set last_received to something >= 200,
++                       * the actual value does not matter, the branch
++                       * will never be picked up for response forwarding.
++                       * If last_received is lower than 200,
++                       * then the branch may tried to be cancelled later,
++                       * for example when t_reply() is called from
++                       * a failure route => deadlock, because both
++                       * of them need the reply lock to be held. */
+			t->uac[branch].last_received=500;
 			uac = &t->uac[branch];
 		}
 		/* else




More information about the sr-dev mailing list