diff options
author | Matt Jordan <mjordan@digium.com> | 2015-04-17 15:58:13 -0500 |
---|---|---|
committer | Gerrit Code Review <gerrit2@gerrit.digium.api> | 2015-04-17 15:58:13 -0500 |
commit | 8435a0cdff848f77ff55e709a393ea96635e5b19 (patch) | |
tree | 5d785a134dd42fe013f924a30ffc1be6189840d9 /res | |
parent | bb347fa594e195c79cbda45cb55fde3e72f90f9c (diff) | |
parent | aae45acbda1f6100cd9de816855166a32b991ce0 (diff) |
Merge "Detect potential forwarding loops based on count."
Diffstat (limited to 'res')
-rw-r--r-- | res/res_pjsip_diversion.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/res/res_pjsip_diversion.c b/res/res_pjsip_diversion.c index a4ac157e4..49f789212 100644 --- a/res/res_pjsip_diversion.c +++ b/res/res_pjsip_diversion.c @@ -248,6 +248,7 @@ static void add_diversion_header(pjsip_tx_data *tdata, struct ast_party_redirect pjsip_name_addr *name_addr; pjsip_sip_uri *uri; pjsip_param *param; + pjsip_fromto_hdr *old_hdr; struct ast_party_id *id = &data->from; pjsip_uri *base = PJSIP_MSG_FROM_HDR(tdata->msg)->uri; @@ -273,6 +274,10 @@ static void add_diversion_header(pjsip_tx_data *tdata, struct ast_party_redirect pj_list_insert_before(&hdr->other_param, param); hdr->uri = (pjsip_uri *) name_addr; + old_hdr = pjsip_msg_find_hdr_by_name(tdata->msg, &diversion_name, NULL); + if (old_hdr) { + pj_list_erase(old_hdr); + } pjsip_msg_add_hdr(tdata->msg, (pjsip_hdr *)hdr); } |