Module: kamailio
Branch: master
Commit: 531627c8c8f07e38577478b88689a24542a50d38
URL: https://github.com/kamailio/kamailio/commit/531627c8c8f07e38577478b88689a24…
Author: Daniel-Constantin Mierla <miconda(a)gmail.com>
Committer: GitHub <noreply(a)github.com>
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/531627c8c8f07e38577478b88689a24…
Patch: https://github.com/kamailio/kamailio/commit/531627c8c8f07e38577478b88689a24…
---
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
Module: kamailio
Branch: master
Commit: 152504f108d39ae33c845f7e74a889411868033d
URL: https://github.com/kamailio/kamailio/commit/152504f108d39ae33c845f7e74a8894…
Author: grumvalski <federico.cabiddu(a)gmail.com>
Committer: grumvalski <federico.cabiddu(a)gmail.com>
Date: 2017-04-08T10:16:35+02:00
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/152504f108d39ae33c845f7e74a8894…
Patch: https://github.com/kamailio/kamailio/commit/152504f108d39ae33c845f7e74a8894…
---
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