diff options
author | Benny Prijono <bennylp@teluu.com> | 2006-01-08 23:56:17 +0000 |
---|---|---|
committer | Benny Prijono <bennylp@teluu.com> | 2006-01-08 23:56:17 +0000 |
commit | f7bc85f6f5064c4dabaf5ef090d634234641eef2 (patch) | |
tree | 5cd48c4ef02e3bfa6fb9c8d3faff689423c4a95c | |
parent | b95857c3a6bf6408455bfc0e9d8d6430248fd841 (diff) |
Transaction only decrements tx_data in send_msg() if return status is PJ_SUCCESS
git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@115 74dad513-b988-da41-8d7b-12977e46ad98
-rw-r--r-- | pjsip/include/pjsip/sip_transaction.h | 9 | ||||
-rw-r--r-- | pjsip/src/pjsip/sip_transaction.c | 4 |
2 files changed, 8 insertions, 5 deletions
diff --git a/pjsip/include/pjsip/sip_transaction.h b/pjsip/include/pjsip/sip_transaction.h index 4a7305ec..065b71c2 100644 --- a/pjsip/include/pjsip/sip_transaction.h +++ b/pjsip/include/pjsip/sip_transaction.h @@ -190,11 +190,12 @@ PJ_DECL(pj_status_t) pjsip_tsx_create_uas( pjsip_module *tsx_user, /** * Transmit message in tdata with this transaction. It is possible to - * pass NULL in tdata for UAC transaction, which in this case the last message - * or the request message which was specified in #pjsip_tsx_create_uac() - * will be sent. + * pass NULL in tdata for UAC transaction, which in this case the last + * message transmitted, or the request message which was specified when + * calling #pjsip_tsx_create_uac(), will be sent. * - * This function decrements the reference counter of the transmit buffer. + * This function decrements the reference counter of the transmit buffer + * only when it returns PJ_SUCCESS; * * @param tsx The transaction. * @param tdata The outgoing message. If NULL is specified, then the diff --git a/pjsip/src/pjsip/sip_transaction.c b/pjsip/src/pjsip/sip_transaction.c index d9824562..dd6c7641 100644 --- a/pjsip/src/pjsip/sip_transaction.c +++ b/pjsip/src/pjsip/sip_transaction.c @@ -1226,7 +1226,9 @@ PJ_DEF(pj_status_t) pjsip_tsx_send_msg( pjsip_transaction *tsx, /* Will always decrement tdata reference counter * (consistent with other send functions. */ - pjsip_tx_data_dec_ref(tdata); + if (status == PJ_SUCCESS) { + pjsip_tx_data_dec_ref(tdata); + } return status; } |