summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNanang Izzuddin <nanang@teluu.com>2014-09-02 03:21:38 +0000
committerNanang Izzuddin <nanang@teluu.com>2014-09-02 03:21:38 +0000
commit070a42485a8a26f3423152fd1ca147da564d7f8f (patch)
treea91a246309f35f763a0ce05d2d91e02f1f07145f
parent7a4a7426329488bdf6002f9020f4eb1bdd7da56e (diff)
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
-rw-r--r--pjsip/src/pjsip/sip_dialog.c5
1 files changed, 5 insertions, 0 deletions
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.
*/