Changeset 1246 for pjproject/trunk/pjsip/src/pjsip/sip_transaction.c
- Timestamp:
- May 3, 2007 1:31:21 PM (17 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
pjproject/trunk/pjsip/src/pjsip/sip_transaction.c
r1241 r1246 142 142 (64*PJSIP_T1_TIMEOUT)%1000 }; 143 143 144 /* Internal timer IDs */ 145 enum Transaction_Timer_Id 146 { 147 TSX_TIMER_RETRANSMISSION, 148 TSX_TIMER_TIMEOUT, 149 }; 144 #define TIMER_INACTIVE 0 145 #define TIMER_ACTIVE 1 150 146 151 147 … … 911 907 912 908 tsx->handle_200resp = 1; 913 tsx->retransmit_timer.id = TSX_TIMER_RETRANSMISSION; 914 tsx->retransmit_timer._timer_id = -1; 909 tsx->retransmit_timer.id = 0; 915 910 tsx->retransmit_timer.user_data = tsx; 916 911 tsx->retransmit_timer.cb = &tsx_timer_callback; 917 tsx->timeout_timer.id = TSX_TIMER_TIMEOUT; 918 tsx->timeout_timer._timer_id = -1; 912 tsx->timeout_timer.id = 0; 919 913 tsx->timeout_timer.user_data = tsx; 920 914 tsx->timeout_timer.cb = &tsx_timer_callback; … … 950 944 } 951 945 /* Cancel timeout timer. */ 952 if (tsx->timeout_timer. _timer_id != -1) {946 if (tsx->timeout_timer.id != 0) { 953 947 pjsip_endpt_cancel_timer(tsx->endpt, &tsx->timeout_timer); 954 tsx->timeout_timer. _timer_id = -1;948 tsx->timeout_timer.id = 0; 955 949 } 956 950 /* Cancel retransmission timer. */ 957 if (tsx->retransmit_timer. _timer_id != -1) {951 if (tsx->retransmit_timer.id != 0) { 958 952 pjsip_endpt_cancel_timer(tsx->endpt, &tsx->retransmit_timer); 959 tsx->retransmit_timer. _timer_id = -1;953 tsx->retransmit_timer.id = 0; 960 954 } 961 955 … … 1002 996 PJ_UNUSED_ARG(theap); 1003 997 998 entry->id = 0; 999 1004 1000 PJ_LOG(5,(tsx->obj_name, "%s timer event", 1005 (entry->id==TSX_TIMER_RETRANSMISSION ? "Retransmit":"Timeout"))); 1006 1007 1008 if (entry->id == TSX_TIMER_RETRANSMISSION) { 1009 PJSIP_EVENT_INIT_TIMER(event, &tsx->retransmit_timer); 1010 } else { 1011 PJSIP_EVENT_INIT_TIMER(event, &tsx->timeout_timer); 1012 } 1001 (entry==&tsx->retransmit_timer ? "Retransmit":"Timeout"))); 1002 1003 1004 PJSIP_EVENT_INIT_TIMER(event, entry); 1013 1005 1014 1006 /* Dispatch event to transaction. */ … … 1082 1074 } else { 1083 1075 /* Cancel timeout timer. */ 1084 if (tsx->timeout_timer. _timer_id != -1) {1076 if (tsx->timeout_timer.id != 0) { 1085 1077 pjsip_endpt_cancel_timer(tsx->endpt, &tsx->timeout_timer); 1086 tsx->timeout_timer. _timer_id = -1;1078 tsx->timeout_timer.id = 0; 1087 1079 } 1088 1080 1081 tsx->timeout_timer.id = TIMER_ACTIVE; 1089 1082 pjsip_endpt_schedule_timer( tsx->endpt, &tsx->timeout_timer, 1090 1083 &timeout); … … 1822 1815 timeout.sec = msec_time / 1000; 1823 1816 timeout.msec = msec_time % 1000; 1817 tsx->retransmit_timer.id = TIMER_ACTIVE; 1824 1818 pjsip_endpt_schedule_timer( tsx->endpt, &tsx->retransmit_timer, 1825 1819 &timeout); … … 1913 1907 * timeout. 1914 1908 */ 1909 tsx->timeout_timer.id = TIMER_ACTIVE; 1915 1910 pjsip_endpt_schedule_timer( tsx->endpt, &tsx->timeout_timer, 1916 1911 &timeout_timer_val); … … 1924 1919 tsx->transport_flag |= TSX_HAS_PENDING_RESCHED; 1925 1920 } else { 1921 tsx->retransmit_timer.id = TIMER_ACTIVE; 1926 1922 pjsip_endpt_schedule_timer(tsx->endpt, &tsx->retransmit_timer, 1927 1923 &t1_timer_val); … … 1964 1960 1965 1961 /* Cancel retransmission timer. */ 1966 if (tsx->retransmit_timer. _timer_id != -1) {1962 if (tsx->retransmit_timer.id != 0) { 1967 1963 pjsip_endpt_cancel_timer(tsx->endpt, &tsx->retransmit_timer); 1968 tsx->retransmit_timer. _timer_id = -1;1964 tsx->retransmit_timer.id = 0; 1969 1965 } 1970 1966 tsx->transport_flag &= ~(TSX_HAS_PENDING_RESCHED); … … 1997 1993 */ 1998 1994 if (code >= 200) { 1999 if (tsx->retransmit_timer. _timer_id != -1) {1995 if (tsx->retransmit_timer.id != 0) { 2000 1996 pjsip_endpt_cancel_timer(tsx->endpt, &tsx->retransmit_timer); 2001 tsx->retransmit_timer. _timer_id = -1;1997 tsx->retransmit_timer.id = 0; 2002 1998 } 2003 1999 2004 if (tsx->timeout_timer. _timer_id != -1) {2000 if (tsx->timeout_timer.id != 0) { 2005 2001 pjsip_endpt_cancel_timer(tsx->endpt, &tsx->timeout_timer); 2006 tsx->timeout_timer. _timer_id = -1;2002 tsx->timeout_timer.id = 0; 2007 2003 } 2008 2004 … … 2011 2007 * retransmit timer will be rescheduled at T2. 2012 2008 */ 2013 if (tsx->retransmit_timer. _timer_id != -1) {2009 if (tsx->retransmit_timer.id != 0) { 2014 2010 pjsip_endpt_cancel_timer(tsx->endpt, &tsx->retransmit_timer); 2015 tsx->retransmit_timer. _timer_id = -1;2011 tsx->retransmit_timer.id = 0; 2016 2012 } 2017 2013 … … 2029 2025 } else { 2030 2026 if (!tsx->is_reliable) { 2027 tsx->retransmit_timer.id = TIMER_ACTIVE; 2031 2028 pjsip_endpt_schedule_timer(tsx->endpt, 2032 2029 &tsx->retransmit_timer, … … 2202 2199 tsx->transport_flag |= TSX_HAS_PENDING_RESCHED; 2203 2200 } else { 2201 tsx->retransmit_timer.id = TIMER_ACTIVE; 2204 2202 pjsip_endpt_schedule_timer( tsx->endpt, 2205 2203 &tsx->retransmit_timer, … … 2240 2238 } 2241 2239 2240 tsx->timeout_timer.id = TIMER_ACTIVE; 2242 2241 pjsip_endpt_schedule_timer( tsx->endpt, &tsx->timeout_timer, 2243 2242 &timeout); … … 2265 2264 if (tsx->method.id == PJSIP_INVITE_METHOD) { 2266 2265 /* Start timer H for INVITE */ 2266 tsx->timeout_timer.id = TIMER_ACTIVE; 2267 2267 pjsip_endpt_schedule_timer(tsx->endpt,&tsx->timeout_timer, 2268 2268 &timeout_timer_val); 2269 2269 } else if (!tsx->is_reliable) { 2270 2270 /* Start timer J on 64*T1 seconds for non-INVITE */ 2271 tsx->timeout_timer.id = TIMER_ACTIVE; 2271 2272 pjsip_endpt_schedule_timer(tsx->endpt,&tsx->timeout_timer, 2272 2273 &timeout_timer_val); … … 2274 2275 /* Start timer J on zero seconds for non-INVITE */ 2275 2276 pj_time_val zero_time = { 0, 0 }; 2277 tsx->timeout_timer.id = TIMER_ACTIVE; 2276 2278 pjsip_endpt_schedule_timer(tsx->endpt,&tsx->timeout_timer, 2277 2279 &zero_time); … … 2290 2292 tsx->transport_flag |= TSX_HAS_PENDING_RESCHED; 2291 2293 } else { 2294 tsx->retransmit_timer.id = TIMER_ACTIVE; 2292 2295 pjsip_endpt_schedule_timer(tsx->endpt, 2293 2296 &tsx->retransmit_timer, … … 2427 2430 timeout.sec = timeout.msec = 0; 2428 2431 } 2432 tsx->timeout_timer.id = TIMER_ACTIVE; 2429 2433 pjsip_endpt_schedule_timer( tsx->endpt, &tsx->timeout_timer, 2430 2434 &timeout); 2431 2435 2432 2436 /* Cancel retransmission timer */ 2433 if (tsx->retransmit_timer. _timer_id != -1) {2437 if (tsx->retransmit_timer.id != 0) { 2434 2438 pjsip_endpt_cancel_timer(tsx->endpt, &tsx->retransmit_timer); 2435 tsx->retransmit_timer. _timer_id = -1;2439 tsx->retransmit_timer.id = 0; 2436 2440 } 2437 2441 … … 2494 2498 timeout.sec = timeout.msec = 0; 2495 2499 } 2500 tsx->timeout->timer.id = TSX_TIMER_TIMEOUT; 2496 2501 pjsip_endpt_schedule_timer( tsx->endpt, &tsx->timeout_timer, &timeout); 2497 2502 … … 2562 2567 timeout.sec = timeout.msec = 0; 2563 2568 } 2569 tsx->timeout_timer.id = TIMER_ACTIVE; 2564 2570 pjsip_endpt_schedule_timer( tsx->endpt, &tsx->timeout_timer, &timeout); 2565 2571 … … 2602 2608 2603 2609 /* Cease retransmission. */ 2604 if (tsx->retransmit_timer. _timer_id != -1) {2610 if (tsx->retransmit_timer.id != 0) { 2605 2611 pjsip_endpt_cancel_timer(tsx->endpt, &tsx->retransmit_timer); 2606 tsx->retransmit_timer. _timer_id = -1;2612 tsx->retransmit_timer.id = 0; 2607 2613 } 2608 2614 tsx->transport_flag &= ~(TSX_HAS_PENDING_RESCHED); … … 2610 2616 /* Start timer I in T4 interval (transaction termination). */ 2611 2617 pjsip_endpt_cancel_timer( tsx->endpt, &tsx->timeout_timer ); 2618 tsx->timeout_timer.id = TIMER_ACTIVE; 2612 2619 pjsip_endpt_schedule_timer( tsx->endpt, &tsx->timeout_timer, 2613 2620 &t4_timer_val);
Note: See TracChangeset
for help on using the changeset viewer.