Changeset 4407


Ignore:
Timestamp:
Feb 27, 2013 3:02:03 PM (12 years ago)
Author:
riza
Message:

Re #1620: backported to 1.x

Location:
pjproject/branches/1.x
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • pjproject/branches/1.x

  • pjproject/branches/1.x/pjnath/include/pjnath/stun_session.h

    r3553 r4407  
    683683 * @param sess      The STUN session instance. 
    684684 * @param tdata     The request message previously sent. 
     685 * @param mod_count Boolean flag to indicate whether transmission count 
     686 *                  needs to be incremented. 
    685687 * 
    686688 * @return          PJ_SUCCESS on success, or the appropriate error. 
     
    690692 */ 
    691693PJ_DECL(pj_status_t) pj_stun_session_retransmit_req(pj_stun_session *sess, 
    692                                                     pj_stun_tx_data *tdata); 
     694                                                    pj_stun_tx_data *tdata, 
     695                                                    pj_bool_t mod_count); 
    693696 
    694697 
  • pjproject/branches/1.x/pjnath/include/pjnath/stun_transaction.h

    r3553 r4407  
    235235 * 
    236236 * @param tsx           The STUN client transaction instance. 
     237 * @param mod_count     Boolean flag to indicate whether transmission count 
     238 *                      needs to be incremented. 
    237239 * 
    238240 * @return              PJ_SUCCESS on success, or PJNATH_ESTUNDESTROYED  
     
    241243 *                      as returned by \a on_send_msg() callback. 
    242244 */ 
    243 PJ_DECL(pj_status_t) pj_stun_client_tsx_retransmit(pj_stun_client_tsx *tsx); 
     245PJ_DECL(pj_status_t) pj_stun_client_tsx_retransmit(pj_stun_client_tsx *tsx, 
     246                                                   pj_bool_t mod_count); 
    244247 
    245248 
  • pjproject/branches/1.x/pjnath/src/pjnath/ice_session.c

    r3951 r4407  
    27102710            LOG5((ice->obj_name, "Triggered check for check %d not performed " 
    27112711                  "because it's in progress. Retransmitting", i)); 
    2712             pj_stun_session_retransmit_req(comp->stun_sess, c->tdata); 
     2712            pj_stun_session_retransmit_req(comp->stun_sess, c->tdata, PJ_FALSE); 
    27132713 
    27142714        } else if (c->state == PJ_ICE_SESS_CHECK_STATE_SUCCEEDED) { 
  • pjproject/branches/1.x/pjnath/src/pjnath/stun_session.c

    r3876 r4407  
    10531053 */ 
    10541054PJ_DEF(pj_status_t) pj_stun_session_retransmit_req(pj_stun_session *sess, 
    1055                                                    pj_stun_tx_data *tdata) 
     1055                                                   pj_stun_tx_data *tdata, 
     1056                                                   pj_bool_t mod_count) 
    10561057{ 
    10571058    pj_status_t status; 
     
    10641065    pj_lock_acquire(sess->lock); 
    10651066 
    1066     status = pj_stun_client_tsx_retransmit(tdata->client_tsx); 
     1067    status = pj_stun_client_tsx_retransmit(tdata->client_tsx, mod_count); 
    10671068 
    10681069    pj_lock_release(sess->lock); 
  • pjproject/branches/1.x/pjnath/src/pjnath/stun_transaction.c

    r3553 r4407  
    181181 * Transmit message. 
    182182 */ 
    183 static pj_status_t tsx_transmit_msg(pj_stun_client_tsx *tsx) 
     183static pj_status_t tsx_transmit_msg(pj_stun_client_tsx *tsx, 
     184                                    pj_bool_t mod_count) 
    184185{ 
    185186    pj_status_t status; 
     
    188189                     !tsx->require_retransmit, PJ_EBUSY); 
    189190 
    190     if (tsx->require_retransmit) { 
     191    if (tsx->require_retransmit && mod_count) { 
    191192        /* Calculate retransmit/timeout delay */ 
    192193        if (tsx->transmit_count == 0) { 
     
    222223 
    223224 
    224     tsx->transmit_count++; 
     225    if (mod_count) 
     226        tsx->transmit_count++; 
    225227 
    226228    PJ_LOG(5,(tsx->obj_name, "STUN sending message (transmit count=%d)", 
     
    233235        /* We've been destroyed, don't access the object. */ 
    234236    } else if (status != PJ_SUCCESS) { 
    235         if (tsx->retransmit_timer.id != 0) { 
     237        if (tsx->retransmit_timer.id != 0 && mod_count) { 
    236238            pj_timer_heap_cancel(tsx->timer_heap,  
    237239                                 &tsx->retransmit_timer); 
     
    295297 
    296298    /* Send the message */ 
    297     status = tsx_transmit_msg(tsx); 
     299    status = tsx_transmit_msg(tsx, PJ_TRUE); 
    298300    if (status != PJ_SUCCESS) { 
    299301        if (tsx->retransmit_timer.id != 0) { 
     
    333335 
    334336    tsx->retransmit_timer.id = 0; 
    335     status = tsx_transmit_msg(tsx); 
     337    status = tsx_transmit_msg(tsx, PJ_TRUE); 
    336338    if (status == PJNATH_ESTUNDESTROYED) { 
    337339        /* We've been destroyed, don't try to access the object */ 
     
    351353 * Request to retransmit the request. 
    352354 */ 
    353 PJ_DEF(pj_status_t) pj_stun_client_tsx_retransmit(pj_stun_client_tsx *tsx) 
     355PJ_DEF(pj_status_t) pj_stun_client_tsx_retransmit(pj_stun_client_tsx *tsx, 
     356                                                  pj_bool_t mod_count) 
    354357{ 
    355358    if (tsx->destroy_timer.id != 0) { 
     
    362365    } 
    363366 
    364     return tsx_transmit_msg(tsx); 
     367    return tsx_transmit_msg(tsx, mod_count); 
    365368} 
    366369 
Note: See TracChangeset for help on using the changeset viewer.