Ignore:
Timestamp:
Feb 19, 2014 4:11:43 AM (10 years ago)
Author:
bennylp
Message:

Fixed #1738: Infinite loop when re-INVITE is received while adding new media

File:
1 edited

Legend:

Unmodified
Added
Removed
  • pjproject/trunk/pjsip/src/pjsua-lib/pjsua_call.c

    r4728 r4750  
    3434 */ 
    3535#define LOCK_CODEC_MAX_RETRY         5 
    36  
    3736 
    3837/* 
     
    23932392        goto on_return; 
    23942393 
     2394    if (pjsua_call_media_is_changing(call)) { 
     2395        PJ_LOG(1,(THIS_FILE, "Unable to reinvite" ERR_MEDIA_CHANGING)); 
     2396        status = PJ_EINVALIDOP; 
     2397        goto on_return; 
     2398    } 
     2399 
    23952400    if (call->inv->state != PJSIP_INV_STATE_CONFIRMED) { 
    23962401        PJ_LOG(3,(THIS_FILE, "Can not re-INVITE call that is not confirmed")); 
     
    24992504    if (status != PJ_SUCCESS) 
    25002505        goto on_return; 
     2506 
     2507    if (pjsua_call_media_is_changing(call)) { 
     2508        PJ_LOG(1,(THIS_FILE, "Unable to send UPDATE" ERR_MEDIA_CHANGING)); 
     2509        status = PJ_EINVALIDOP; 
     2510        goto on_return; 
     2511    } 
    25012512 
    25022513    status = apply_call_setting(call, opt, NULL); 
     
    38793890    PJ_LOG(4,(THIS_FILE, "Call %d: received updated media offer", 
    38803891              call->index)); 
     3892 
    38813893    pj_log_push_indent(); 
     3894 
     3895    if (pjsua_call_media_is_changing(call)) { 
     3896        PJ_LOG(1,(THIS_FILE, "Unable to process offer" ERR_MEDIA_CHANGING)); 
     3897        goto on_return; 
     3898    } 
    38823899 
    38833900    if (pjsua_var.ua_cfg.cb.on_call_rx_offer) { 
     
    39703987 
    39713988    call = (pjsua_call*) inv->dlg->mod_data[pjsua_var.mod.id]; 
     3989    if (pjsua_call_media_is_changing(call)) { 
     3990        *offer = NULL; 
     3991        PJ_LOG(1,(THIS_FILE, "Unable to create offer" ERR_MEDIA_CHANGING)); 
     3992        goto on_return; 
     3993    } 
    39723994 
    39733995    /* See if we've put call on hold. */ 
Note: See TracChangeset for help on using the changeset viewer.