diff options
author | Benny Prijono <bennylp@teluu.com> | 2007-01-12 06:37:35 +0000 |
---|---|---|
committer | Benny Prijono <bennylp@teluu.com> | 2007-01-12 06:37:35 +0000 |
commit | 7567c6b90e8e0dd20204a579cd548ad7ae00febf (patch) | |
tree | faadb7133a618fe5b1551b3ea89717eec860bee3 /pjsip/src/pjsip-ua/sip_reg.c | |
parent | 5058236717c4a44f02a1507b2833e8cff8f54083 (diff) |
Workaround for ticket #50: added API to lock/bind transaction, dialog, and regc to a specific transport/listener
git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@879 74dad513-b988-da41-8d7b-12977e46ad98
Diffstat (limited to 'pjsip/src/pjsip-ua/sip_reg.c')
-rw-r--r-- | pjsip/src/pjsip-ua/sip_reg.c | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/pjsip/src/pjsip-ua/sip_reg.c b/pjsip/src/pjsip-ua/sip_reg.c index 5cba23ee..d6078c73 100644 --- a/pjsip/src/pjsip-ua/sip_reg.c +++ b/pjsip/src/pjsip-ua/sip_reg.c @@ -76,6 +76,9 @@ struct pjsip_regc pj_time_val last_reg; pj_time_val next_reg; pj_timer_entry timer; + + /* Transport selector */ + pjsip_tpselector tp_sel; }; @@ -124,6 +127,7 @@ PJ_DEF(pj_status_t) pjsip_regc_destroy(pjsip_regc *regc) regc->_delete_flag = 1; regc->cb = NULL; } else { + pjsip_tpselector_dec_ref(®c->tp_sel); pjsip_endpt_release_pool(regc->endpt, regc->pool); } @@ -310,6 +314,23 @@ PJ_DEF(pj_status_t) pjsip_regc_set_route_set( pjsip_regc *regc, return PJ_SUCCESS; } + +/* + * Bind client registration to a specific transport/listener. + */ +PJ_DEF(pj_status_t) pjsip_regc_set_transport( pjsip_regc *regc, + const pjsip_tpselector *sel) +{ + PJ_ASSERT_RETURN(regc && sel, PJ_EINVAL); + + pjsip_tpselector_dec_ref(®c->tp_sel); + pj_memcpy(®c->tp_sel, sel, sizeof(*sel)); + pjsip_tpselector_add_ref(®c->tp_sel); + + return PJ_SUCCESS; +} + + PJ_DEF(pj_status_t) pjsip_regc_add_headers( pjsip_regc *regc, const pjsip_hdr *hdr_list) { |