Module: kamailio Branch: master Commit: 352830ca7c39032dfaecbcb1a6b1bb0865ee55d3 URL: https://github.com/kamailio/kamailio/commit/352830ca7c39032dfaecbcb1a6b1bb08...
Author: Daniel-Constantin Mierla miconda@gmail.com Committer: GitHub noreply@github.com Date: 2020-10-23T10:35:44+02:00
Merge pull request #2515 from gaaf/fixes/tm-pick-branch
tm: Fix faked_reply_prio by passing correct reply to get_prio
---
Modified: src/modules/tm/t_reply.c
---
Diff: https://github.com/kamailio/kamailio/commit/352830ca7c39032dfaecbcb1a6b1bb08... Patch: https://github.com/kamailio/kamailio/commit/352830ca7c39032dfaecbcb1a6b1bb08...
---
diff --git a/src/modules/tm/t_reply.c b/src/modules/tm/t_reply.c index 328c6743d4..2324e29e59 100644 --- a/src/modules/tm/t_reply.c +++ b/src/modules/tm/t_reply.c @@ -1249,17 +1249,19 @@ inline static short int get_prio(unsigned int resp, struct sip_msg *rpl) int t_pick_branch(int inc_branch, int inc_code, struct cell *t, int *res_code) { int best_b, best_s, b; - sip_msg_t *rpl; + sip_msg_t *rpl, *best_rpl;
best_b=-1; best_s=0; + best_rpl=NULL; for ( b=0; b<t->nr_of_outgoings ; b++ ) { rpl = t->uac[b].reply;
/* "fake" for the currently processed branch */ if (b==inc_branch) { - if (get_prio(inc_code, rpl)<get_prio(best_s, rpl)) { + if (get_prio(inc_code, rpl)<get_prio(best_s, best_rpl)) { best_b=b; best_s=inc_code; + best_rpl=rpl; } continue; } @@ -1275,9 +1277,10 @@ int t_pick_branch(int inc_branch, int inc_code, struct cell *t, int *res_code) return -2; /* if reply is null => t_send_branch "faked" reply, skip over it */ if ( rpl && - get_prio(t->uac[b].last_received, rpl)<get_prio(best_s, rpl) ) { + get_prio(t->uac[b].last_received, rpl)<get_prio(best_s, best_rpl) ) { best_b =b; best_s = t->uac[b].last_received; + best_rpl=rpl; } } /* find lowest branch */