diff options
author | Riza Sulistyo <riza@teluu.com> | 2014-10-16 10:39:35 +0000 |
---|---|---|
committer | Riza Sulistyo <riza@teluu.com> | 2014-10-16 10:39:35 +0000 |
commit | 3e7d2fbe0b45b43a30e5c107208550cb20ebd736 (patch) | |
tree | 181b679f0afe3e0800e732a5b565b88f7a389778 /pjsip | |
parent | 4d7eca4fa844d0263ba4a689352e77d407f56a2c (diff) |
Misc (re #1782): Fixed unregistration sent twice when calling pjsua_acc_modify with reg_uri is blank.
git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@4947 74dad513-b988-da41-8d7b-12977e46ad98
Diffstat (limited to 'pjsip')
-rw-r--r-- | pjsip/src/pjsua-lib/pjsua_acc.c | 15 |
1 files changed, 7 insertions, 8 deletions
diff --git a/pjsip/src/pjsua-lib/pjsua_acc.c b/pjsip/src/pjsua-lib/pjsua_acc.c index 0cb4801c..ac4cb303 100644 --- a/pjsip/src/pjsua-lib/pjsua_acc.c +++ b/pjsip/src/pjsua-lib/pjsua_acc.c @@ -1249,12 +1249,7 @@ PJ_DEF(pj_status_t) pjsua_acc_modify( pjsua_acc_id acc_id, pj_strdup_with_null(acc->pool, &acc->cfg.reg_uri, &cfg->reg_uri); if (reg_sip_uri) acc->srv_port = reg_sip_uri->port; - } else { - /* Unregister if registration was set */ - if (acc->cfg.reg_uri.slen) - pjsua_acc_set_registration(acc->index, PJ_FALSE); - pj_bzero(&acc->cfg.reg_uri, sizeof(acc->cfg.reg_uri)); - } + } update_reg = PJ_TRUE; unreg_first = PJ_TRUE; } @@ -1338,14 +1333,18 @@ PJ_DEF(pj_status_t) pjsua_acc_modify( pjsua_acc_id acc_id, /* Unregister first */ if (unreg_first) { - if (acc->cfg.reg_uri.slen) - pjsua_acc_set_registration(acc->index, PJ_FALSE); + pjsua_acc_set_registration(acc->index, PJ_FALSE); if (acc->regc != NULL) { pjsip_regc_destroy(acc->regc); acc->regc = NULL; acc->contact.slen = 0; acc->reg_mapped_addr.slen = 0; } + + if (!cfg->reg_uri.slen) { + /* Reg URI still needed, delay unset after sending unregister. */ + pj_bzero(&acc->cfg.reg_uri, sizeof(acc->cfg.reg_uri)); + } } /* Update registration */ |