diff options
author | Benny Prijono <bennylp@teluu.com> | 2006-05-26 12:17:46 +0000 |
---|---|---|
committer | Benny Prijono <bennylp@teluu.com> | 2006-05-26 12:17:46 +0000 |
commit | c01fdece34cb0eac0c1fdbafb5c1cc242ec01933 (patch) | |
tree | e48d300bf63489fd01dd66db8b75b8b49681be6d /pjsip/src/pjsip-ua/sip_reg.c | |
parent | b2627727779145512c9c414cb532cb7e18133ddd (diff) |
First stage in pjsua library re-arrangements towards creating an easy to use high level API
git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@476 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 | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/pjsip/src/pjsip-ua/sip_reg.c b/pjsip/src/pjsip-ua/sip_reg.c index 84fb57dd..6272e34c 100644 --- a/pjsip/src/pjsip-ua/sip_reg.c +++ b/pjsip/src/pjsip-ua/sip_reg.c @@ -484,6 +484,7 @@ static void tsx_callback(void *token, pjsip_event *event) pjsip_transaction *tsx = event->body.tsx_state.tsx; /* Decrement pending transaction counter. */ + pj_assert(regc->pending_tsx > 0); --regc->pending_tsx; /* If registration data has been deleted by user then remove registration @@ -609,10 +610,13 @@ PJ_DEF(pj_status_t) pjsip_regc_send(pjsip_regc *regc, pjsip_tx_data *tdata) cseq_hdr = pjsip_msg_find_hdr(tdata->msg, PJSIP_H_CSEQ, NULL); cseq_hdr->cseq = cseq; - /* Send. */ + /* Increment pending transaction first, since transaction callback + * may be called even before send_request() returns! + */ + ++regc->pending_tsx; status = pjsip_endpt_send_request(regc->endpt, tdata, -1, regc, &tsx_callback); - if (status==PJ_SUCCESS) - ++regc->pending_tsx; + if (status!=PJ_SUCCESS) + --regc->pending_tsx; return status; } |