Ignore:
Timestamp:
Apr 20, 2007 3:01:50 AM (17 years ago)
Author:
bennylp
Message:

Fix for ticket #220: retransmit timer wasn't cleared when 2xx response for NIT is received, causing assertion failure

File:
1 edited

Legend:

Unmodified
Added
Removed
  • pjproject/branches/pjproject-0.5-stable/pjsip/src/pjsip/sip_transaction.c

    r1189 r1208  
    17951795    pj_assert((tsx->transport_flag & TSX_HAS_PENDING_TRANSPORT) == 0); 
    17961796 
    1797     pj_assert(tsx->status_code < 200); 
    1798  
    1799     if (tsx->status_code >= 100) 
     1797    if (tsx->role==PJSIP_ROLE_UAC && tsx->status_code >= 100) 
    18001798        msec_time = PJSIP_T2_TIMEOUT; 
    18011799    else 
     
    18031801 
    18041802    if (tsx->role == PJSIP_ROLE_UAC) { 
     1803        pj_assert(tsx->status_code < 200); 
    18051804        /* Retransmission for non-INVITE transaction caps-off at T2 */ 
    18061805        if (msec_time>PJSIP_T2_TIMEOUT && tsx->method.id!=PJSIP_INVITE_METHOD) 
     
    24222421                                        &timeout); 
    24232422 
     2423            /* Cancel retransmission timer */ 
     2424            if (tsx->retransmit_timer._timer_id != -1) { 
     2425                pjsip_endpt_cancel_timer(tsx->endpt, &tsx->retransmit_timer); 
     2426                tsx->retransmit_timer._timer_id = -1; 
     2427            } 
     2428 
    24242429            /* Move state to Completed, inform TU. */ 
    24252430            tsx_set_state( tsx, PJSIP_TSX_STATE_COMPLETED,  
Note: See TracChangeset for help on using the changeset viewer.