From 892693f5f841801bb6252b4e224f50ec9a751bcc Mon Sep 17 00:00:00 2001 From: Ghislain MARY Date: Tue, 27 Sep 2016 16:52:14 +0200 Subject: [PATCH] Try to convert destination address to IPv4 in TURN send indications. --- src/voip/stun.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/voip/stun.c b/src/voip/stun.c index 7448b841..d16dd22e 100644 --- a/src/voip/stun.c +++ b/src/voip/stun.c @@ -1543,6 +1543,8 @@ static int ms_turn_rtp_endpoint_sendto(RtpTransport *rtptp, mblk_t *msg, int fla context->stats.nb_sent_channel_msg++; } else { /* Use a TURN send indication to encapsulate the data to be sent */ + struct sockaddr_storage realto; + socklen_t realtolen = sizeof(realto); MSStunAddress stun_addr; char *buf = NULL; size_t len; @@ -1550,7 +1552,8 @@ static int ms_turn_rtp_endpoint_sendto(RtpTransport *rtptp, mblk_t *msg, int fla uint16_t datalen; msgpullup(msg, -1); datalen = (uint16_t)(msg->b_wptr - msg->b_rptr); - ms_sockaddr_to_stun_address(to, &stun_addr); + bctbx_sockaddr_ipv6_to_ipv4(to, (struct sockaddr *)&realto, &realtolen); + ms_sockaddr_to_stun_address((struct sockaddr *)&realto, &stun_addr); stun_msg = ms_turn_send_indication_create(stun_addr); data = ms_malloc(datalen); memcpy(data, msg->b_rptr, datalen); -- 2.21.0