From 070a42485a8a26f3423152fd1ca147da564d7f8f Mon Sep 17 00:00:00 2001 From: Nanang Izzuddin Date: Tue, 2 Sep 2014 03:21:38 +0000 Subject: Fix #1781: Don't update dialog route set from UPDATE response. git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@4911 74dad513-b988-da41-8d7b-12977e46ad98 --- pjsip/src/pjsip/sip_dialog.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/pjsip/src/pjsip/sip_dialog.c b/pjsip/src/pjsip/sip_dialog.c index f0a5f815..3ca4a1b6 100644 --- a/pjsip/src/pjsip/sip_dialog.c +++ b/pjsip/src/pjsip/sip_dialog.c @@ -1689,6 +1689,7 @@ static void dlg_update_routeset(pjsip_dialog *dlg, const pjsip_rx_data *rdata) const pjsip_hdr *hdr, *end_hdr; //pj_int32_t msg_cseq; const pjsip_msg *msg; + const pjsip_method update = { PJSIP_OTHER_METHOD, {"UPDATE", 6}}; msg = rdata->msg_info.msg; //msg_cseq = rdata->msg_info.cseq->cseq; @@ -1697,6 +1698,10 @@ static void dlg_update_routeset(pjsip_dialog *dlg, const pjsip_rx_data *rdata) if (dlg->route_set_frozen) return; + /* Ignore if the message is an UPDATE response (see ticket #1781) */ + if (pjsip_method_cmp(&rdata->msg_info.cseq->method, &update) == 0) + return; + /* Only update route set if this message belongs to the same * transaction as the initial transaction that establishes dialog. */ -- cgit v1.2.3