diff options
author | zuul <zuul@gerrit.asterisk.org> | 2017-03-14 21:22:26 -0500 |
---|---|---|
committer | Gerrit Code Review <gerrit2@gerrit.digium.api> | 2017-03-14 21:22:26 -0500 |
commit | c15232993247fe59a53a9a3f96c1d3e67298e47f (patch) | |
tree | 799a5eef59b5f51f4d024bde795831b5cd5b2ca1 /third-party/pjproject | |
parent | 2b611a8d932a30a95675ac63bfd7c8ea2d3d8ad7 (diff) | |
parent | 4e3b0cedba16db80cd9910e64db0763258a0ed5f (diff) |
Merge "res_pjsip_transport_websocket: Add support for IPv6."
Diffstat (limited to 'third-party/pjproject')
-rw-r--r-- | third-party/pjproject/patches/0014-Add-pjsip-transport-register-type-ipv6.patch | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/third-party/pjproject/patches/0014-Add-pjsip-transport-register-type-ipv6.patch b/third-party/pjproject/patches/0014-Add-pjsip-transport-register-type-ipv6.patch new file mode 100644 index 000000000..796473a3c --- /dev/null +++ b/third-party/pjproject/patches/0014-Add-pjsip-transport-register-type-ipv6.patch @@ -0,0 +1,62 @@ +From daeb0956524606b597704a90b54d81340e10b3e4 Mon Sep 17 00:00:00 2001 +From: Joshua Colp <jcolp@digium.com> +Date: Tue, 7 Mar 2017 12:32:49 +0000 +Subject: [PATCH] Add support for registering IPv6 transport type. + +This change allows an IPv6 transport type to be registered +and used. The IPv4 transport is found (if available) and the +IPv4 flag added to its type to match how the finding of +IPv6 transport types works. +--- + pjsip/src/pjsip/sip_transport.c | 15 +++++++++++++-- + 1 file changed, 13 insertions(+), 2 deletions(-) + +diff --git a/pjsip/src/pjsip/sip_transport.c b/pjsip/src/pjsip/sip_transport.c +index 7df6138..ce72814 100644 +--- a/pjsip/src/pjsip/sip_transport.c ++++ b/pjsip/src/pjsip/sip_transport.c +@@ -236,6 +236,7 @@ PJ_DEF(pj_status_t) pjsip_transport_register_type( unsigned tp_flag, + int *p_tp_type) + { + unsigned i; ++ pjsip_transport_type_e parent = 0; + + PJ_ASSERT_RETURN(tp_flag && tp_name && def_port, PJ_EINVAL); + PJ_ASSERT_RETURN(pj_ansi_strlen(tp_name) < +@@ -243,6 +244,11 @@ PJ_DEF(pj_status_t) pjsip_transport_register_type( unsigned tp_flag, + PJ_ENAMETOOLONG); + + for (i=1; i<PJ_ARRAY_SIZE(transport_names); ++i) { ++ if (tp_flag & PJSIP_TRANSPORT_IPV6 && ++ pj_stricmp2(&transport_names[i].name, tp_name) == 0) ++ { ++ parent = transport_names[i].type; ++ } + if (transport_names[i].type == 0) + break; + } +@@ -250,14 +256,19 @@ PJ_DEF(pj_status_t) pjsip_transport_register_type( unsigned tp_flag, + if (i == PJ_ARRAY_SIZE(transport_names)) + return PJ_ETOOMANY; + +- transport_names[i].type = (pjsip_transport_type_e)i; ++ if (tp_flag & PJSIP_TRANSPORT_IPV6 && parent) { ++ transport_names[i].type = parent | PJSIP_TRANSPORT_IPV6; ++ } else { ++ transport_names[i].type = (pjsip_transport_type_e)i; ++ } ++ + transport_names[i].port = (pj_uint16_t)def_port; + pj_ansi_strcpy(transport_names[i].name_buf, tp_name); + transport_names[i].name = pj_str(transport_names[i].name_buf); + transport_names[i].flag = tp_flag; + + if (p_tp_type) +- *p_tp_type = i; ++ *p_tp_type = transport_names[i].type; + + return PJ_SUCCESS; + } +-- +2.7.4 + |