Module: kamailio
Branch: master
Commit: 531627c8c8f07e38577478b88689a24542a50d38
URL: 
https://github.com/kamailio/kamailio/commit/531627c8c8f07e38577478b88689a24542a50d38

Author: Daniel-Constantin Mierla <[email protected]>
Committer: GitHub <[email protected]>
Date: 2017-04-18T18:48:01+02:00

Merge pull request #1063 from grumvalski/t_continue_crash

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

---

Modified: src/modules/tm/t_reply.c

---

Diff:  
https://github.com/kamailio/kamailio/commit/531627c8c8f07e38577478b88689a24542a50d38.diff
Patch: 
https://github.com/kamailio/kamailio/commit/531627c8c8f07e38577478b88689a24542a50d38.patch

---

diff --git a/src/modules/tm/t_reply.c b/src/modules/tm/t_reply.c
index 6163240..38f5d03 100644
--- a/src/modules/tm/t_reply.c
+++ b/src/modules/tm/t_reply.c
@@ -1279,7 +1279,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;
                }
 
 
@@ -1362,8 +1365,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


_______________________________________________
Kamailio (SER) - Development Mailing List
[email protected]
https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-dev

Reply via email to