From 2c48bc68e2b334415da6cf7035a123628d7b05a7 Mon Sep 17 00:00:00 2001 From: Donat Zenichev Date: Wed, 26 Jun 2024 17:04:01 +0200 Subject: [PATCH] MT#60403 sdp_parse: add actual parsing of bandwidth (b=) Set real values instead of just: -1, 0 or 1. This affects: AS (per media) and RR, RS (per media/sdp session). Change-Id: I9cf565548726c96c2ce74c86c1cbfe7920d8d943 --- daemon/sdp.c | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/daemon/sdp.c b/daemon/sdp.c index 0ca5605fa..98069ab05 100644 --- a/daemon/sdp.c +++ b/daemon/sdp.c @@ -1368,14 +1368,15 @@ new_session: if (line_end - value < 4) break; /* AS only supported per media */ - if (media && !memcmp(value, "AS:", 3)) - *(&media->as) = (line_end - value == 4 && value[3] == '0') ? 0 : 1; - else if (!memcmp(value, "RR:", 3)) - *(media ? &media->rr : &session->rr) = - (line_end - value == 4 && value[3] == '0') ? 0 : 1; - else if (!memcmp(value, "RS:", 3)) - *(media ? &media->rs : &session->rs) = - (line_end - value == 4 && value[3] == '0') ? 0 : 1; + if (media && !memcmp(value, "AS:", 3)) { + *(&media->as) = strtol((value + 3), NULL, 10); + } + else if (!memcmp(value, "RR:", 3)) { + *(media ? &media->rr : &session->rr) = strtol((value + 3), NULL, 10); + } + else if (!memcmp(value, "RS:", 3)) { + *(media ? &media->rs : &session->rs) = strtol((value + 3), NULL, 10); + } break; case 'k':