From 8bdeb2d9bf417e858a48c6347740e407a3ab075f Mon Sep 17 00:00:00 2001 From: Richard Fuchs Date: Fri, 1 Nov 2019 14:21:26 -0400 Subject: [PATCH] TT#69701 fix incorrect address used for raddr/rport fixes #850 Change-Id: I36eb8c61e094cda335c14023374dab6d5f1ccfcd --- daemon/sdp.c | 8 +- t/auto-daemon-tests.pl | 231 ++++++++++++++++++++++++++++++++++++++++- 2 files changed, 234 insertions(+), 5 deletions(-) diff --git a/daemon/sdp.c b/daemon/sdp.c index 3ad9c1764..00fa92e98 100644 --- a/daemon/sdp.c +++ b/daemon/sdp.c @@ -1553,15 +1553,15 @@ static int insert_ice_address(struct sdp_chopper *chop, struct stream_fd *sfd) { return 0; } -static int insert_raddr_rport(struct sdp_chopper *chop, struct packet_stream *ps, const struct local_intf *ifa) { +static int insert_raddr_rport(struct sdp_chopper *chop, struct stream_fd *sfd) { char buf[64]; int len; chopper_append_c(chop, " raddr "); - call_stream_address46(buf, ps, SAF_ICE, &len, ifa, 0); + call_stream_address46(buf, sfd->stream, SAF_ICE, &len, sfd->local_intf, 0); chopper_append(chop, buf, len); chopper_append_c(chop, " rport "); - chopper_append_printf(chop, "%u", ps->selected_sfd->socket.local.port); + chopper_append_printf(chop, "%u", sfd->socket.local.port); return 0; } @@ -1820,7 +1820,7 @@ static void insert_candidate(struct sdp_chopper *chop, struct stream_fd *sfd, chopper_append_c(chop, ice_candidate_type_str(type)); /* raddr and rport are required for non-host candidates: rfc5245 section-15.1 */ if(type != ICT_HOST) - insert_raddr_rport(chop, ps, ifa); + insert_raddr_rport(chop, sfd); chopper_append_c(chop, "\r\n"); } diff --git a/t/auto-daemon-tests.pl b/t/auto-daemon-tests.pl index 25832b2ed..431f4c16a 100755 --- a/t/auto-daemon-tests.pl +++ b/t/auto-daemon-tests.pl @@ -191,7 +191,236 @@ sub rtpm { -my ($sock_a, $sock_b, $port_a, $port_b, $ssrc, $resp, $srtp_ctx_a, $srtp_ctx_b); +my ($sock_a, $sock_b, $port_a, $port_b, $ssrc, $resp, $srtp_ctx_a, $srtp_ctx_b, @ret1, @ret2); + + + + +# github issue 850 + +new_call; + +@ret1 = offer('gh 850', + { + ICE => 'force-relay', flags => [qw(SDES-off)], 'transport-protocol' => 'UDP/TLS/RTP/SAVPF', + 'rtcp-mux' => [qw(accept offer)], 'via-branch' => 'z9hG4bK9463.af303705.113', + }, < 'force-relay', flags => [qw(SDES-off)], 'transport-protocol' => 'UDP/TLS/RTP/SAVPF', + 'rtcp-mux' => [qw(accept offer)], 'via-branch' => 'z9hG4bK9463.af303705.113', + }, <