Module: kamailio Branch: master Commit: 45948fc933f99e6a960b835069b7e29d1ea788be URL: https://github.com/kamailio/kamailio/commit/45948fc933f99e6a960b835069b7e29d...
Author: Daniel-Constantin Mierla miconda@gmail.com Committer: Daniel-Constantin Mierla miconda@gmail.com Date: 2017-07-20T09:31:49+02:00
tm: proper location of last rr for strict routing on local requests
---
Modified: src/modules/tm/t_fwd.c Modified: src/modules/tm/t_msgbuilder.c
---
Diff: https://github.com/kamailio/kamailio/commit/45948fc933f99e6a960b835069b7e29d... Patch: https://github.com/kamailio/kamailio/commit/45948fc933f99e6a960b835069b7e29d...
---
diff --git a/src/modules/tm/t_fwd.c b/src/modules/tm/t_fwd.c index ac55e3a4f8..df9eef4f49 100644 --- a/src/modules/tm/t_fwd.c +++ b/src/modules/tm/t_fwd.c @@ -1190,7 +1190,7 @@ static struct cancel_reason* cancel_reason_pack(short cause, void* data, } else if (cause == CANCEL_REAS_PACKED_HDRS && !(t->flags & T_NO_E2E_CANCEL_REASON) && data) { txt = (str*) data; - reason_len = txt?txt->len:0; + reason_len = txt->len; } else if (unlikely(cause < CANCEL_REAS_MIN)) { LM_CRIT("unhandled reason cause %d\n", cause); goto error; diff --git a/src/modules/tm/t_msgbuilder.c b/src/modules/tm/t_msgbuilder.c index 3d634540e6..3bd76b32fe 100644 --- a/src/modules/tm/t_msgbuilder.c +++ b/src/modules/tm/t_msgbuilder.c @@ -1004,7 +1004,7 @@ static int eval_uac_routing(sip_msg_t *rpl, const struct retr_buf *inv_rb, /* find ptr to last route body that contains the (possibly) old * remote target */ - for (t = rtset, prev_t = t; t->next; prev_t = t, t = t->next) + for (t = rtset, prev_t = NULL; t->next; prev_t = t, t = t->next) ; if ((t->ptr->len == contact->len) && (memcmp(t->ptr->nameaddr.name.s, contact->s, @@ -1022,7 +1022,7 @@ static int eval_uac_routing(sip_msg_t *rpl, const struct retr_buf *inv_rb, if (! (t = pkg_malloc(chklen))) { ERR("out of pkg memory (%d required)\n", (int)chklen); /* last element was freed, unlink it */ - if(prev_t == rtset) { + if(prev_t == NULL) { /* there is only one elem in route set: the remote target */ rtset = NULL; } else { @@ -1036,7 +1036,7 @@ static int eval_uac_routing(sip_msg_t *rpl, const struct retr_buf *inv_rb, ((rr_t *)&t[1])->nameaddr.name = *contact; ((rr_t *)&t[1])->len = contact->len; /* chain the new route elem in set */ - if (prev_t == rtset) + if (prev_t == NULL) /* there is only one elem in route set: the remote target */ rtset = t; else