Changeset 5931


Ignore:
Timestamp:
Jan 21, 2019 8:48:02 AM (6 years ago)
Author:
ming
Message:

Fixed #2175: Make sure that last ACK has been sent before retransmitting it.

Also update the doc that the callback can now be called more than once.

Location:
pjproject/trunk/pjsip
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • pjproject/trunk/pjsip/include/pjsip-ua/sip_inv.h

    r5812 r5931  
    260260     * Once it has sent the ACK request, the framework will keep  
    261261     * this ACK request in the cache. Subsequent receipt of 2xx response 
    262      * will not cause this callback to be called, and instead automatic 
    263      * retransmission of this ACK request from the cache will be done 
    264      * by the framework. 
     262     * will not cause this callback to be called (but see exception below), 
     263     * and instead automatic retransmission of this ACK request from 
     264     * the cache will be done by the framework. 
     265     * Exception: if app has created the ACK but has not sent it, 
     266     * while it receives a retransmission of 2xx response, this callback 
     267     * will be called again. 
    265268     * 
    266269     * This callback is optional. 
  • pjproject/trunk/pjsip/src/pjsip-ua/sip_inv.c

    r5922 r5931  
    453453              pjsip_rx_data_get_info(rdata))); 
    454454 
    455     /* Check if we have cached ACK request. Must not use the cached ACK 
    456      * if it's still marked as pending by transport (#1011) 
     455    /* Check if we have cached ACK request and if we have sent it. 
     456     * Must not use the cached ACK if it's still marked as pending 
     457     * by transport (#1011). 
    457458     */ 
    458459    if (inv->last_ack && rdata->msg_info.cseq->cseq == inv->last_ack_cseq && 
     460        inv->last_ack->tp_info.transport != NULL && 
    459461        !inv->last_ack->is_pending) 
    460462    { 
Note: See TracChangeset for help on using the changeset viewer.