From 7d4dc39dbbd71515a4336c02569420679e4caa20 Mon Sep 17 00:00:00 2001 From: Donat Zenichev Date: Tue, 13 Aug 2024 21:36:42 +0200 Subject: [PATCH] MT#60476 sdp_origin: always update origin from sdp Independently from the fact if a monologue already has the `->session_sdp_orig` object set, update it accordingly to the latest origin taken from the currently processed SDP. In this case such option flags as `replace_origin`, `replace_origin_full` or `force_inc_sdp_ver` are ignored, because their handling is covered using the `->session_last_sdp_orig` object. Change-Id: Ib845d185a03a2cb99ead5f6039342388c461cee2 --- daemon/call.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/daemon/call.c b/daemon/call.c index e2a319c12..debac5895 100644 --- a/daemon/call.c +++ b/daemon/call.c @@ -2639,8 +2639,12 @@ static void __call_monologue_init_from_flags(struct call_monologue *ml, struct c other_ml->session_last_sdp_orig = sdp_orig_dup(&flags->session_sdp_orig); /* origin (name, version etc.) */ - if (!ml->session_sdp_orig && flags->session_sdp_orig.parsed) + if (flags->session_sdp_orig.parsed) { + if (ml->session_sdp_orig) + sdp_orig_free(ml->session_sdp_orig); ml->session_sdp_orig = sdp_orig_dup(&flags->session_sdp_orig); + } + /* sdp session name */ if (flags->session_sdp_name.len && (!ml->sdp_session_name || /* if not set yet */