Skip to content
Snippets Groups Projects
Commit 9224b9c3 authored by Adrien Béraud's avatar Adrien Béraud
Browse files

sip: properly read STUN address

Issue: #45416
parent f97af644
No related branches found
No related tags found
No related merge requests found
...@@ -436,11 +436,10 @@ SipTransport::findLocalAddressFromSTUN(pjsip_transport *transport, ...@@ -436,11 +436,10 @@ SipTransport::findLocalAddressFromSTUN(pjsip_transport *transport,
// Update address and port with active transport // Update address and port with active transport
RETURN_IF_NULL(transport, "Transport is NULL in findLocalAddress, using local address %s:%d", addr.c_str(), port); RETURN_IF_NULL(transport, "Transport is NULL in findLocalAddress, using local address %s:%d", addr.c_str(), port);
pj_sockaddr_in mapped_addr; pj_sockaddr mapped_addr;
pj_sock_t sipSocket = pjsip_udp_transport_get_socket(transport); pj_sock_t sipSocket = pjsip_udp_transport_get_socket(transport);
const pjstun_setting stunOpt = {PJ_TRUE, *stunServerName, stunPort, *stunServerName, stunPort}; const pjstun_setting stunOpt = {PJ_TRUE, *stunServerName, stunPort, *stunServerName, stunPort};
const pj_status_t stunStatus = pjstun_get_mapped_addr2(&cp_.factory, const pj_status_t stunStatus = pjstun_get_mapped_addr2(&cp_.factory, &stunOpt, 1, &sipSocket, &mapped_addr.ipv4);
&stunOpt, 1, &sipSocket, &mapped_addr);
switch (stunStatus) { switch (stunStatus) {
case PJLIB_UTIL_ESTUNNOTRESPOND: case PJLIB_UTIL_ESTUNNOTRESPOND:
...@@ -449,14 +448,15 @@ SipTransport::findLocalAddressFromSTUN(pjsip_transport *transport, ...@@ -449,14 +448,15 @@ SipTransport::findLocalAddressFromSTUN(pjsip_transport *transport,
case PJLIB_UTIL_ESTUNSYMMETRIC: case PJLIB_UTIL_ESTUNSYMMETRIC:
ERROR("Different mapped addresses are returned by servers."); ERROR("Different mapped addresses are returned by servers.");
return; return;
case PJ_SUCCESS:
port = pj_sockaddr_get_port(&mapped_addr);
addr = ip_utils::addrToStr(mapped_addr);
default: default:
break; break;
} }
port = pj_sockaddr_get_port(&mapped_addr); WARN("Using address %s provided by STUN server %.*s",
ip_utils::addrToStr(mapped_addr, true, true).c_str(), stunServerName->slen, stunServerName->ptr);
WARN("Using address %s:%d provided by STUN server %.*s",
addr.c_str(), port, stunServerName->slen, stunServerName->ptr);
} }
#undef RETURN_IF_NULL #undef RETURN_IF_NULL
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment