From a55a7036cb8f53245c55fe343b056a673f219064 Mon Sep 17 00:00:00 2001 From: Richard Fuchs Date: Thu, 4 Nov 2021 14:39:49 -0400 Subject: [PATCH] TT#107565 fix SDP ordering issue of s= vs o= Change-Id: Id6ad795bf9304e66012958060104af00a4bc1c6b (cherry picked from commit 2c0e196be9f63c027b09b82884866843c3ed2e89) --- daemon/sdp.c | 13 +++++---- t/auto-daemon-tests.pl | 65 ++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 72 insertions(+), 6 deletions(-) diff --git a/daemon/sdp.c b/daemon/sdp.c index d4297cdb2..bfb100fa9 100644 --- a/daemon/sdp.c +++ b/daemon/sdp.c @@ -2494,6 +2494,13 @@ int sdp_replace(struct sdp_chopper *chop, GQueue *sessions, struct call_monologu monologue->sdp_version = ssl_random(); } + if (session->origin.parsed && flags->replace_origin && + flags->ice_option != ICE_FORCE_RELAY) { + err = "failed to replace network address"; + if (replace_network_address(chop, &session->origin.address, ps, flags, 0)) + goto error; + } + err = "error while processing s= line"; if (!monologue->sdp_session_name) monologue->sdp_session_name = call_strdup_len(monologue->call, session->session_name.s, @@ -2519,12 +2526,6 @@ int sdp_replace(struct sdp_chopper *chop, GQueue *sessions, struct call_monologu } } - if (session->origin.parsed && flags->replace_origin && - flags->ice_option != ICE_FORCE_RELAY) { - err = "failed to replace network address"; - if (replace_network_address(chop, &session->origin.address, ps, flags, 0)) - goto error; - } if (session->connection.parsed && sess_conn && flags->ice_option != ICE_FORCE_RELAY) { err = "failed to replace network address"; diff --git a/t/auto-daemon-tests.pl b/t/auto-daemon-tests.pl index df275d77c..53301f115 100755 --- a/t/auto-daemon-tests.pl +++ b/t/auto-daemon-tests.pl @@ -14793,5 +14793,70 @@ a=sendrecv a=rtcp:PORT SDP +new_call; + +offer('SDP replace everything', { replace => ['SDP version', 'origin', 'session-connection', 'username', 'session-name'] }, < ['SDP version', 'origin', 'session-connection', 'username', 'session-name'] }, < ['SDP version', 'origin', 'session-connection', 'username', 'session-name'] }, <