diff options
author | Liong Sauw Ming <ming@teluu.com> | 2012-07-16 02:45:09 +0000 |
---|---|---|
committer | Liong Sauw Ming <ming@teluu.com> | 2012-07-16 02:45:09 +0000 |
commit | f73554968e203926a07a4088cb8458531de2be6b (patch) | |
tree | 91a25dee4cf9a8725908f1c7c4bad1fe3250698d /pjsip | |
parent | 5990539175ac160c5e3d927e1eeecdf5747dc89f (diff) |
Fixed #1555 : Bug with via_rewrite feature when the account gets deleted
git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@4206 74dad513-b988-da41-8d7b-12977e46ad98
Diffstat (limited to 'pjsip')
-rw-r--r-- | pjsip/src/pjsip-simple/publishc.c | 7 | ||||
-rw-r--r-- | pjsip/src/pjsip-ua/sip_reg.c | 7 | ||||
-rw-r--r-- | pjsip/src/pjsip/sip_dialog.c | 7 |
3 files changed, 15 insertions, 6 deletions
diff --git a/pjsip/src/pjsip-simple/publishc.c b/pjsip/src/pjsip-simple/publishc.c index 6282923c..af8d0b3e 100644 --- a/pjsip/src/pjsip-simple/publishc.c +++ b/pjsip/src/pjsip-simple/publishc.c @@ -355,8 +355,11 @@ PJ_DEF(pj_status_t) pjsip_publishc_set_via_sent_by(pjsip_publishc *pubc, if (!via_addr) pj_bzero(&pubc->via_addr, sizeof(pubc->via_addr)); - else - pubc->via_addr = *via_addr; + else { + if (pj_strcmp(&pubc->via_addr.host, &via_addr->host)) + pj_strdup(pubc->pool, &pubc->via_addr.host, &via_addr->host); + pubc->via_addr.port = via_addr->port; + } pubc->via_tp = via_tp; return PJ_SUCCESS; diff --git a/pjsip/src/pjsip-ua/sip_reg.c b/pjsip/src/pjsip-ua/sip_reg.c index 2bbc81b9..14f1edcf 100644 --- a/pjsip/src/pjsip-ua/sip_reg.c +++ b/pjsip/src/pjsip-ua/sip_reg.c @@ -818,8 +818,11 @@ PJ_DEF(pj_status_t) pjsip_regc_set_via_sent_by( pjsip_regc *regc, if (!via_addr) pj_bzero(®c->via_addr, sizeof(regc->via_addr)); - else - regc->via_addr = *via_addr; + else { + if (pj_strcmp(®c->via_addr.host, &via_addr->host)) + pj_strdup(regc->pool, ®c->via_addr.host, &via_addr->host); + regc->via_addr.port = via_addr->port; + } regc->via_tp = via_tp; return PJ_SUCCESS; diff --git a/pjsip/src/pjsip/sip_dialog.c b/pjsip/src/pjsip/sip_dialog.c index 2e19bfc5..89986895 100644 --- a/pjsip/src/pjsip/sip_dialog.c +++ b/pjsip/src/pjsip/sip_dialog.c @@ -596,8 +596,11 @@ PJ_DEF(pj_status_t) pjsip_dlg_set_via_sent_by( pjsip_dialog *dlg, if (!via_addr) pj_bzero(&dlg->via_addr, sizeof(dlg->via_addr)); - else - dlg->via_addr = *via_addr; + else { + if (pj_strcmp(&dlg->via_addr.host, &via_addr->host)) + pj_strdup(dlg->pool, &dlg->via_addr.host, &via_addr->host); + dlg->via_addr.port = via_addr->port; + } dlg->via_tp = via_tp; return PJ_SUCCESS; |