summaryrefslogtreecommitdiff
path: root/pjsip/src/pjsip-ua
diff options
context:
space:
mode:
Diffstat (limited to 'pjsip/src/pjsip-ua')
-rw-r--r--pjsip/src/pjsip-ua/sip_reg.c7
1 files changed, 5 insertions, 2 deletions
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(&regc->via_addr, sizeof(regc->via_addr));
- else
- regc->via_addr = *via_addr;
+ else {
+ if (pj_strcmp(&regc->via_addr.host, &via_addr->host))
+ pj_strdup(regc->pool, &regc->via_addr.host, &via_addr->host);
+ regc->via_addr.port = via_addr->port;
+ }
regc->via_tp = via_tp;
return PJ_SUCCESS;