summaryrefslogtreecommitdiff
path: root/pjsip
diff options
context:
space:
mode:
authorBenny Prijono <bennylp@teluu.com>2006-01-08 23:56:17 +0000
committerBenny Prijono <bennylp@teluu.com>2006-01-08 23:56:17 +0000
commitf7bc85f6f5064c4dabaf5ef090d634234641eef2 (patch)
tree5cd48c4ef02e3bfa6fb9c8d3faff689423c4a95c /pjsip
parentb95857c3a6bf6408455bfc0e9d8d6430248fd841 (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
Diffstat (limited to 'pjsip')
-rw-r--r--pjsip/include/pjsip/sip_transaction.h9
-rw-r--r--pjsip/src/pjsip/sip_transaction.c4
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;
}