diff options
author | Benny Prijono <bennylp@teluu.com> | 2012-04-11 10:01:00 +0000 |
---|---|---|
committer | Benny Prijono <bennylp@teluu.com> | 2012-04-11 10:01:00 +0000 |
commit | 693ebfcee09d2af61bd8e9d8ee27c3b4439306fc (patch) | |
tree | 1423c99c0c6b890402117f15ac03e8b0649c5454 /pjsip/src/pjsip-ua | |
parent | 111443b10c8559698f38213a0150868890a2a02c (diff) |
Re #1474: merged r4031-r4037
git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@4038 74dad513-b988-da41-8d7b-12977e46ad98
Diffstat (limited to 'pjsip/src/pjsip-ua')
-rw-r--r-- | pjsip/src/pjsip-ua/sip_reg.c | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/pjsip/src/pjsip-ua/sip_reg.c b/pjsip/src/pjsip-ua/sip_reg.c index 750e22f7..c02c17bb 100644 --- a/pjsip/src/pjsip-ua/sip_reg.c +++ b/pjsip/src/pjsip-ua/sip_reg.c @@ -440,6 +440,17 @@ PJ_DEF(pj_status_t) pjsip_regc_set_transport( pjsip_regc *regc, return PJ_SUCCESS; } +/* Release transport */ +PJ_DEF(pj_status_t) pjsip_regc_release_transport(pjsip_regc *regc) +{ + PJ_ASSERT_RETURN(regc, PJ_EINVAL); + if (regc->last_transport) { + pjsip_transport_dec_ref(regc->last_transport); + regc->last_transport = NULL; + } + return PJ_SUCCESS; +} + PJ_DEF(pj_status_t) pjsip_regc_add_headers( pjsip_regc *regc, const pjsip_hdr *hdr_list) @@ -1269,7 +1280,9 @@ PJ_DEF(pj_status_t) pjsip_regc_send(pjsip_regc *regc, pjsip_tx_data *tdata) pj_lock_acquire(regc->lock); /* Get last transport used and add reference to it */ - if (tdata->tp_info.transport != regc->last_transport) { + if (tdata->tp_info.transport != regc->last_transport && + status==PJ_SUCCESS) + { if (regc->last_transport) { pjsip_transport_dec_ref(regc->last_transport); regc->last_transport = NULL; |