Ignore:
Timestamp:
Oct 9, 2009 12:11:07 PM (10 years ago)
Author:
bennylp
Message:

Fixed ticket #917, #936, and #967:

  • #917: CANCEL may be sent to different servers than the INVITE when DNS SRV is used (thanks Alexei Kuznetsov for the report)
  • #936: CANCEL must be sent with TCP if the INVITE was sent with TCP because of 1300 bytes message size/MTU limit (thanks Johan Lantz for the report)
  • #967: Wrong Route header generation in CANCEL request with strict route

Save the server address(es) found by resolution process to tx_data, which is copied to CANCEL request. CANCEL request then uses this address rather than starting a fresh server resolution.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • pjproject/trunk/pjsip/include/pjsip/sip_transport.h

    r2724 r2932  
    2828#include <pjsip/sip_msg.h> 
    2929#include <pjsip/sip_parser.h> 
     30#include <pjsip/sip_resolve.h> 
    3031#include <pj/sock.h> 
    3132#include <pj/list.h> 
     
    522523    /** Callback to be called when this tx_data has been transmitted.   */ 
    523524    void               (*cb)(void*, pjsip_tx_data*, pj_ssize_t); 
     525 
     526    /** Destination information, to be used to determine the network address 
     527     *  of the message. For a request, this information is  initialized when 
     528     *  the request is sent with #pjsip_endpt_send_request_stateless() and 
     529     *  network address is resolved. For CANCEL request, this information 
     530     *  will be copied from the original INVITE to make sure that the CANCEL 
     531     *  request goes to the same physical network address as the INVITE 
     532     *  request. 
     533     */ 
     534    struct 
     535    { 
     536        /** Server addresses resolved.  
     537         */ 
     538        pjsip_server_addresses   addr; 
     539 
     540        /** Current server address being tried.  
     541         */ 
     542        unsigned cur_addr; 
     543 
     544    } dest_info; 
    524545 
    525546    /** Transport information, only valid during on_tx_request() and  
Note: See TracChangeset for help on using the changeset viewer.