[sr-dev] git:4.4:3d166a44: tm: don't reset uac reply if in a continue route

Federico Cabiddu federico.cabiddu at gmail.com
Tue Apr 18 23:00:43 CEST 2017


Module: kamailio
Branch: 4.4
Commit: 3d166a443c2de24a6b742a1bb5f5dd7f2dfac98b
URL: https://github.com/kamailio/kamailio/commit/3d166a443c2de24a6b742a1bb5f5dd7f2dfac98b

Author: Federico Cabiddu <federico.cabiddu at gmail.com>
Committer: Federico Cabiddu <federico.cabiddu at gmail.com>
Date: 2017-04-18T23:00:03+02:00

tm: don't reset uac reply if in a continue route

(cherry picked from commit 152504f108d39ae33c845f7e74a889411868033d)

---

Modified: modules/tm/t_reply.c

---

Diff:  https://github.com/kamailio/kamailio/commit/3d166a443c2de24a6b742a1bb5f5dd7f2dfac98b.diff
Patch: https://github.com/kamailio/kamailio/commit/3d166a443c2de24a6b742a1bb5f5dd7f2dfac98b.patch

---

diff --git a/modules/tm/t_reply.c b/modules/tm/t_reply.c
index cf56de7..aa37f2a 100644
--- a/modules/tm/t_reply.c
+++ b/modules/tm/t_reply.c
@@ -1293,7 +1293,10 @@ static enum rps t_should_relay_response( struct cell *Trans , int new_code,
 			picked_branch = branch;
 			run_branch_failure_handlers( Trans, Trans->uac[branch].reply,
 									new_code, extra_flags);
-			Trans->uac[branch].reply = 0;
+			/* Don't do reset the reply if we are in a resume route, 
+			 *  we need to free it at the end of the continue processing */
+			if (!(Trans->flags&T_ASYNC_CONTINUE))
+				Trans->uac[branch].reply = 0;
 		}
 
 
@@ -1375,8 +1378,11 @@ static enum rps t_should_relay_response( struct cell *Trans , int new_code,
 
 		/* now reset it; after the failure logic, the reply may
 		 * not be stored any more and we don't want to keep into
-		 * transaction some broken reference */
-		Trans->uac[branch].reply = 0;
+		 * transaction some broken reference. Don't do it if we                     
+		 * are in a resume route, we need to free it at the end 
+		 * of the continue processing */
+		if (!(Trans->flags&T_ASYNC_CONTINUE))
+			Trans->uac[branch].reply = 0;
 
 		/* look if the callback perhaps replied transaction; it also
 		   covers the case in which a transaction is replied localy




More information about the sr-dev mailing list