diff options
author | Benny Prijono <bennylp@teluu.com> | 2009-10-09 12:11:07 +0000 |
---|---|---|
committer | Benny Prijono <bennylp@teluu.com> | 2009-10-09 12:11:07 +0000 |
commit | 01b60a5f21381167b24400afea23a2126d3e01ef (patch) | |
tree | f536e783ece55dfec29b4bae92b696c50cf2b2c7 /pjsip/include/pjsip/sip_transport.h | |
parent | dd24667ae19923f1d5ca50628dd164be96a08d61 (diff) |
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.
git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@2932 74dad513-b988-da41-8d7b-12977e46ad98
Diffstat (limited to 'pjsip/include/pjsip/sip_transport.h')
-rw-r--r-- | pjsip/include/pjsip/sip_transport.h | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/pjsip/include/pjsip/sip_transport.h b/pjsip/include/pjsip/sip_transport.h index 275196bf..0e461638 100644 --- a/pjsip/include/pjsip/sip_transport.h +++ b/pjsip/include/pjsip/sip_transport.h @@ -27,6 +27,7 @@ #include <pjsip/sip_msg.h> #include <pjsip/sip_parser.h> +#include <pjsip/sip_resolve.h> #include <pj/sock.h> #include <pj/list.h> #include <pj/ioqueue.h> @@ -522,6 +523,26 @@ struct pjsip_tx_data /** Callback to be called when this tx_data has been transmitted. */ void (*cb)(void*, pjsip_tx_data*, pj_ssize_t); + /** Destination information, to be used to determine the network address + * of the message. For a request, this information is initialized when + * the request is sent with #pjsip_endpt_send_request_stateless() and + * network address is resolved. For CANCEL request, this information + * will be copied from the original INVITE to make sure that the CANCEL + * request goes to the same physical network address as the INVITE + * request. + */ + struct + { + /** Server addresses resolved. + */ + pjsip_server_addresses addr; + + /** Current server address being tried. + */ + unsigned cur_addr; + + } dest_info; + /** Transport information, only valid during on_tx_request() and * on_tx_response() callback. */ |