Ignore:
Timestamp:
May 3, 2007 1:31:21 PM (17 years ago)
Author:
bennylp
Message:

Implemented ticket #246, #247, #261, #268, #250 for Symbian

File:
1 edited

Legend:

Unmodified
Added
Removed
  • pjproject/trunk/pjsip/src/pjsip/sip_transaction.c

    r1241 r1246  
    142142                                               (64*PJSIP_T1_TIMEOUT)%1000 }; 
    143143 
    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 
    150146 
    151147 
     
    911907 
    912908    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; 
    915910    tsx->retransmit_timer.user_data = tsx; 
    916911    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; 
    919913    tsx->timeout_timer.user_data = tsx; 
    920914    tsx->timeout_timer.cb = &tsx_timer_callback; 
     
    950944    } 
    951945    /* Cancel timeout timer. */ 
    952     if (tsx->timeout_timer._timer_id != -1) { 
     946    if (tsx->timeout_timer.id != 0) { 
    953947        pjsip_endpt_cancel_timer(tsx->endpt, &tsx->timeout_timer); 
    954         tsx->timeout_timer._timer_id = -1; 
     948        tsx->timeout_timer.id = 0; 
    955949    } 
    956950    /* Cancel retransmission timer. */ 
    957     if (tsx->retransmit_timer._timer_id != -1) { 
     951    if (tsx->retransmit_timer.id != 0) { 
    958952        pjsip_endpt_cancel_timer(tsx->endpt, &tsx->retransmit_timer); 
    959         tsx->retransmit_timer._timer_id = -1; 
     953        tsx->retransmit_timer.id = 0; 
    960954    } 
    961955 
     
    1002996    PJ_UNUSED_ARG(theap); 
    1003997 
     998    entry->id = 0; 
     999     
    10041000    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); 
    10131005 
    10141006    /* Dispatch event to transaction. */ 
     
    10821074        } else { 
    10831075            /* Cancel timeout timer. */ 
    1084             if (tsx->timeout_timer._timer_id != -1) { 
     1076            if (tsx->timeout_timer.id != 0) { 
    10851077                pjsip_endpt_cancel_timer(tsx->endpt, &tsx->timeout_timer); 
    1086                 tsx->timeout_timer._timer_id = -1; 
     1078                tsx->timeout_timer.id = 0; 
    10871079            } 
    10881080 
     1081            tsx->timeout_timer.id = TIMER_ACTIVE; 
    10891082            pjsip_endpt_schedule_timer( tsx->endpt, &tsx->timeout_timer,  
    10901083                                        &timeout); 
     
    18221815    timeout.sec = msec_time / 1000; 
    18231816    timeout.msec = msec_time % 1000; 
     1817    tsx->retransmit_timer.id = TIMER_ACTIVE; 
    18241818    pjsip_endpt_schedule_timer( tsx->endpt, &tsx->retransmit_timer,  
    18251819                                &timeout); 
     
    19131907         * timeout. 
    19141908         */ 
     1909        tsx->timeout_timer.id = TIMER_ACTIVE; 
    19151910        pjsip_endpt_schedule_timer( tsx->endpt, &tsx->timeout_timer,  
    19161911                                    &timeout_timer_val); 
     
    19241919                tsx->transport_flag |= TSX_HAS_PENDING_RESCHED; 
    19251920            } else { 
     1921                tsx->retransmit_timer.id = TIMER_ACTIVE; 
    19261922                pjsip_endpt_schedule_timer(tsx->endpt, &tsx->retransmit_timer, 
    19271923                                           &t1_timer_val); 
     
    19641960 
    19651961        /* Cancel retransmission timer. */ 
    1966         if (tsx->retransmit_timer._timer_id != -1) { 
     1962        if (tsx->retransmit_timer.id != 0) { 
    19671963            pjsip_endpt_cancel_timer(tsx->endpt, &tsx->retransmit_timer); 
    1968             tsx->retransmit_timer._timer_id = -1; 
     1964            tsx->retransmit_timer.id = 0; 
    19691965        } 
    19701966        tsx->transport_flag &= ~(TSX_HAS_PENDING_RESCHED); 
     
    19971993         */ 
    19981994        if (code >= 200) { 
    1999             if (tsx->retransmit_timer._timer_id != -1) { 
     1995            if (tsx->retransmit_timer.id != 0) { 
    20001996                pjsip_endpt_cancel_timer(tsx->endpt, &tsx->retransmit_timer); 
    2001                 tsx->retransmit_timer._timer_id = -1; 
     1997                tsx->retransmit_timer.id = 0; 
    20021998            } 
    20031999 
    2004             if (tsx->timeout_timer._timer_id != -1) { 
     2000            if (tsx->timeout_timer.id != 0) { 
    20052001                pjsip_endpt_cancel_timer(tsx->endpt, &tsx->timeout_timer); 
    2006                 tsx->timeout_timer._timer_id = -1; 
     2002                tsx->timeout_timer.id = 0; 
    20072003            } 
    20082004 
     
    20112007             * retransmit timer will be rescheduled at T2. 
    20122008             */ 
    2013             if (tsx->retransmit_timer._timer_id != -1) { 
     2009            if (tsx->retransmit_timer.id != 0) { 
    20142010                pjsip_endpt_cancel_timer(tsx->endpt, &tsx->retransmit_timer); 
    2015                 tsx->retransmit_timer._timer_id = -1; 
     2011                tsx->retransmit_timer.id = 0; 
    20162012            } 
    20172013 
     
    20292025            } else { 
    20302026                if (!tsx->is_reliable) { 
     2027                    tsx->retransmit_timer.id = TIMER_ACTIVE; 
    20312028                    pjsip_endpt_schedule_timer(tsx->endpt,  
    20322029                                               &tsx->retransmit_timer, 
     
    22022199                        tsx->transport_flag |= TSX_HAS_PENDING_RESCHED; 
    22032200                    } else { 
     2201                        tsx->retransmit_timer.id = TIMER_ACTIVE; 
    22042202                        pjsip_endpt_schedule_timer( tsx->endpt,  
    22052203                                                    &tsx->retransmit_timer, 
     
    22402238                } 
    22412239 
     2240                tsx->timeout_timer.id = TIMER_ACTIVE; 
    22422241                pjsip_endpt_schedule_timer( tsx->endpt, &tsx->timeout_timer,  
    22432242                                            &timeout); 
     
    22652264            if (tsx->method.id == PJSIP_INVITE_METHOD) { 
    22662265                /* Start timer H for INVITE */ 
     2266                tsx->timeout_timer.id = TIMER_ACTIVE; 
    22672267                pjsip_endpt_schedule_timer(tsx->endpt,&tsx->timeout_timer, 
    22682268                                           &timeout_timer_val); 
    22692269            } else if (!tsx->is_reliable) { 
    22702270                /* Start timer J on 64*T1 seconds for non-INVITE */ 
     2271                tsx->timeout_timer.id = TIMER_ACTIVE; 
    22712272                pjsip_endpt_schedule_timer(tsx->endpt,&tsx->timeout_timer, 
    22722273                                           &timeout_timer_val); 
     
    22742275                /* Start timer J on zero seconds for non-INVITE */ 
    22752276                pj_time_val zero_time = { 0, 0 }; 
     2277                tsx->timeout_timer.id = TIMER_ACTIVE; 
    22762278                pjsip_endpt_schedule_timer(tsx->endpt,&tsx->timeout_timer, 
    22772279                                           &zero_time); 
     
    22902292                        tsx->transport_flag |= TSX_HAS_PENDING_RESCHED; 
    22912293                    } else { 
     2294                        tsx->retransmit_timer.id = TIMER_ACTIVE; 
    22922295                        pjsip_endpt_schedule_timer(tsx->endpt,  
    22932296                                                   &tsx->retransmit_timer,  
     
    24272430                timeout.sec = timeout.msec = 0; 
    24282431            } 
     2432            tsx->timeout_timer.id = TIMER_ACTIVE; 
    24292433            pjsip_endpt_schedule_timer( tsx->endpt, &tsx->timeout_timer,  
    24302434                                        &timeout); 
    24312435 
    24322436            /* Cancel retransmission timer */ 
    2433             if (tsx->retransmit_timer._timer_id != -1) { 
     2437            if (tsx->retransmit_timer.id != 0) { 
    24342438                pjsip_endpt_cancel_timer(tsx->endpt, &tsx->retransmit_timer); 
    2435                 tsx->retransmit_timer._timer_id = -1; 
     2439                tsx->retransmit_timer.id = 0; 
    24362440            } 
    24372441 
     
    24942498            timeout.sec = timeout.msec = 0; 
    24952499        } 
     2500        tsx->timeout->timer.id = TSX_TIMER_TIMEOUT; 
    24962501        pjsip_endpt_schedule_timer( tsx->endpt, &tsx->timeout_timer, &timeout); 
    24972502 
     
    25622567            timeout.sec = timeout.msec = 0; 
    25632568        } 
     2569        tsx->timeout_timer.id = TIMER_ACTIVE; 
    25642570        pjsip_endpt_schedule_timer( tsx->endpt, &tsx->timeout_timer, &timeout); 
    25652571 
     
    26022608 
    26032609            /* Cease retransmission. */ 
    2604             if (tsx->retransmit_timer._timer_id != -1) { 
     2610            if (tsx->retransmit_timer.id != 0) { 
    26052611                pjsip_endpt_cancel_timer(tsx->endpt, &tsx->retransmit_timer); 
    2606                 tsx->retransmit_timer._timer_id = -1; 
     2612                tsx->retransmit_timer.id = 0; 
    26072613            } 
    26082614            tsx->transport_flag &= ~(TSX_HAS_PENDING_RESCHED); 
     
    26102616            /* Start timer I in T4 interval (transaction termination). */ 
    26112617            pjsip_endpt_cancel_timer( tsx->endpt, &tsx->timeout_timer ); 
     2618            tsx->timeout_timer.id = TIMER_ACTIVE; 
    26122619            pjsip_endpt_schedule_timer( tsx->endpt, &tsx->timeout_timer,  
    26132620                                        &t4_timer_val); 
Note: See TracChangeset for help on using the changeset viewer.