The PJSIP header parsing function (pjsip_parse_hdr) can generate more
than one header instance from a single header field. These header
instances exist as a list attached to the returned header and must be
handled appropriately when they are added to a message or else only the
first header instance will be used. This changes the linked list
functions used in outbound proxy code to merge the lists properly.
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/12@406020
65c4cc65-6c06-0410-ace0-
fbb531ad65f3
pjsip_dlg_terminate(dlg);
return NULL;
}
- pj_list_push_back(&route_set, route);
+ pj_list_insert_nodes_before(&route_set, route);
pjsip_dlg_set_route_set(dlg, &route_set);
}
return -1;
}
- pjsip_msg_add_hdr(tdata->msg, (pjsip_hdr*)route);
+ pj_list_insert_nodes_before(&tdata->msg->hdr, (pjsip_hdr*)route);
return 0;
}
if (!(route = pjsip_parse_hdr(pjsip_regc_get_pool(registration->state->client_state->client), &ROUTE_HNAME, tmp.ptr, tmp.slen, NULL))) {
return -1;
}
- pj_list_push_back(&route_set, route);
+ pj_list_insert_nodes_before(&route_set, route);
pjsip_regc_set_route_set(registration->state->client_state->client, &route_set);
}