Module: kamailio Branch: master Commit: 33b2e513aefe00bf166cdcae360e305615b223da URL: https://github.com/kamailio/kamailio/commit/33b2e513aefe00bf166cdcae360e3056...
Author: Daniel-Constantin Mierla miconda@gmail.com Committer: Daniel-Constantin Mierla miconda@gmail.com Date: 2024-01-23T21:05:41+01:00
tm: release transaction on kill if a final response was sent
- do not send another final response for error cases
---
Modified: src/modules/tm/t_funcs.c
---
Diff: https://github.com/kamailio/kamailio/commit/33b2e513aefe00bf166cdcae360e3056... Patch: https://github.com/kamailio/kamailio/commit/33b2e513aefe00bf166cdcae360e3056...
---
diff --git a/src/modules/tm/t_funcs.c b/src/modules/tm/t_funcs.c index b9f9949d0fb..5515a4aba6f 100644 --- a/src/modules/tm/t_funcs.c +++ b/src/modules/tm/t_funcs.c @@ -177,6 +177,11 @@ int kill_transaction(struct cell *trans, int error) int reply_ret; int ret;
+ if((trans->uas.request != NULL) + && (trans->uas.request->msg_flags & FL_FINAL_REPLY)) { + return t_release_transaction(trans); + } + /* we reply statefully and enter WAIT state since error might have occurred in middle of forking and we do not want to put the forking burden on upstream client; @@ -205,6 +210,11 @@ int kill_transaction_unsafe(struct cell *trans, int error) int reply_ret; int ret;
+ if((trans->uas.request != NULL) + && (trans->uas.request->msg_flags & FL_FINAL_REPLY)) { + return t_release_transaction(trans); + } + /* we reply statefully and enter WAIT state since error might have occurred in middle of forking and we do not want to put the forking burden on upstream client;