summaryrefslogtreecommitdiff
path: root/pjsip
diff options
context:
space:
mode:
authorBenny Prijono <bennylp@teluu.com>2009-03-23 13:09:09 +0000
committerBenny Prijono <bennylp@teluu.com>2009-03-23 13:09:09 +0000
commitb0027a0c5dc7e25ca7ce1e69a2931f8663b62dd1 (patch)
treead5701b2ee530068251bf75654982e09788d59e1 /pjsip
parent7d11a01e1907b5e9bdc4e651f06329d98822235f (diff)
Ticket #719: backported from ticket #718
git-svn-id: http://svn.pjsip.org/repos/pjproject/branches/1.0@2534 74dad513-b988-da41-8d7b-12977e46ad98
Diffstat (limited to 'pjsip')
-rw-r--r--pjsip/src/pjsip/sip_transaction.c11
1 files changed, 6 insertions, 5 deletions
diff --git a/pjsip/src/pjsip/sip_transaction.c b/pjsip/src/pjsip/sip_transaction.c
index f99a1a44..5a6f7dc6 100644
--- a/pjsip/src/pjsip/sip_transaction.c
+++ b/pjsip/src/pjsip/sip_transaction.c
@@ -1376,6 +1376,9 @@ PJ_DEF(pj_status_t) pjsip_tsx_create_uas( pjsip_module *tsx_user,
pj_memcpy(&tsx->addr, &tsx->res_addr.addr, tsx->res_addr.addr_len);
tsx->addr_len = tsx->res_addr.addr_len;
tsx->is_reliable = PJSIP_TRANSPORT_IS_RELIABLE(tsx->transport);
+ } else {
+ tsx->is_reliable =
+ (tsx->res_addr.dst_host.flag & PJSIP_TRANSPORT_RELIABLE);
}
@@ -2315,7 +2318,7 @@ static pj_status_t tsx_on_state_proceeding_uas( pjsip_transaction *tsx,
*/
timeout = timeout_timer_val;
- } else if (PJSIP_TRANSPORT_IS_RELIABLE(tsx->transport)==0) {
+ } else if (!tsx->is_reliable) {
/* For non-INVITE, start timer J at 64*T1 for unreliable
* transport.
@@ -2655,9 +2658,7 @@ static pj_status_t tsx_on_state_proceeding_uac(pjsip_transaction *tsx,
/* Start Timer D with TD/T4 timer if unreliable transport is used. */
/* Note: tsx->transport may be NULL! */
- if ((tsx->transport && PJSIP_TRANSPORT_IS_RELIABLE(tsx->transport)==0)
- || ((tsx->transport_flag & PJSIP_TRANSPORT_RELIABLE) == 0))
- {
+ if (!tsx->is_reliable) {
if (tsx->method.id == PJSIP_INVITE_METHOD) {
timeout = td_timer_val;
} else {
@@ -2722,7 +2723,7 @@ static pj_status_t tsx_on_state_completed_uas( pjsip_transaction *tsx,
/* Timer I is T4 timer for unreliable transports, and
* zero seconds for reliable transports.
*/
- if (PJSIP_TRANSPORT_IS_RELIABLE(tsx->transport)==0) {
+ if (!tsx->is_reliable) {
timeout.sec = 0;
timeout.msec = 0;
} else {