mirror of
https://github.com/openwrt/packages.git
synced 2025-12-21 19:14:30 +04:00
The following commits were added shortly after the release of Modemmanager version '1.24.0'. Patch: 0002-modem-helpers-cinterion-allow-spaces-in-SXRAT-test-r.patch Backport:6b6997362bIssue: https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/issues/974 Patch: 0003-modem-helpers-fix-checking-of-CDMA-EVDO-access-techn.patch Backport:9e205f4784Issue: no Patch: 0004-iface-modem-voice-recheck-call-state-polling-when-ca.patch Backport:92e666e1c9Issue: no Signed-off-by: Florian Eckert <fe@dev.tdt.de>
74 lines
2.8 KiB
Diff
74 lines
2.8 KiB
Diff
From 9e205f47847ab9ef5887b79c077ef8468d769af0 Mon Sep 17 00:00:00 2001
|
|
From: Dan Williams <dan@ioncontrol.co>
|
|
Date: Sat, 12 Apr 2025 23:17:45 -0500
|
|
Subject: [PATCH] modem-helpers: fix checking of CDMA/EVDO access technology
|
|
|
|
Missing ! for strncmp() meant the test was backwards and would
|
|
erroneously report 1xRTT and EVDOr0 when those access technologies
|
|
were not in use.
|
|
|
|
Signed-off-by: Dan Williams <dan@ioncontrol.co>
|
|
---
|
|
src/mm-modem-helpers.c | 6 +++---
|
|
src/tests/test-modem-helpers.c | 25 +++++++++++++++++++++++++
|
|
2 files changed, 28 insertions(+), 3 deletions(-)
|
|
|
|
--- a/src/mm-modem-helpers.c
|
|
+++ b/src/mm-modem-helpers.c
|
|
@@ -4160,11 +4160,11 @@ mm_string_to_access_tech (const gchar *s
|
|
* are included in other strings too.
|
|
*/
|
|
len = strlen (string);
|
|
- if (strncmp (string, "EVDO", 4) && (len >= 4 && !isalnum (string[4])))
|
|
+ if (!strncmp (string, "EVDO", 4) && (len >= 4 && !isalnum (string[4])))
|
|
act |= MM_MODEM_ACCESS_TECHNOLOGY_EVDO0;
|
|
- if (strncmp (string, "CDMA", 4) && (len >= 4 && !isalnum (string[4])))
|
|
+ if (!strncmp (string, "CDMA", 4) && (len >= 4 && !isalnum (string[4])))
|
|
act |= MM_MODEM_ACCESS_TECHNOLOGY_1XRTT;
|
|
- if (strncmp (string, "CDMA-EVDO", 9) && (len >= 9 && !isalnum (string[9])))
|
|
+ if (!strncmp (string, "CDMA-EVDO", 9) && (len >= 9 && !isalnum (string[9])))
|
|
act |= MM_MODEM_ACCESS_TECHNOLOGY_1XRTT | MM_MODEM_ACCESS_TECHNOLOGY_EVDO0;
|
|
|
|
return act;
|
|
--- a/src/tests/test-modem-helpers.c
|
|
+++ b/src/tests/test-modem-helpers.c
|
|
@@ -4866,6 +4866,29 @@ test_mnc_length (void)
|
|
|
|
/*****************************************************************************/
|
|
|
|
+typedef struct {
|
|
+ const gchar *str;
|
|
+ const MMModemAccessTechnology act;
|
|
+} TestActData;
|
|
+
|
|
+static const TestActData test_act_data[] = {
|
|
+ { "EDGE", MM_MODEM_ACCESS_TECHNOLOGY_EDGE },
|
|
+ /* Ensure WCDMA does not get counted as 3GPP2 CDMA */
|
|
+ { "WCDMA", MM_MODEM_ACCESS_TECHNOLOGY_UMTS },
|
|
+ { "CDMA-EVDO", MM_MODEM_ACCESS_TECHNOLOGY_1XRTT | MM_MODEM_ACCESS_TECHNOLOGY_EVDO0 },
|
|
+};
|
|
+
|
|
+static void
|
|
+test_string_to_access_tech (void)
|
|
+{
|
|
+ guint i;
|
|
+
|
|
+ for (i = 0; i < G_N_ELEMENTS (test_act_data); i++)
|
|
+ g_assert_cmpint (mm_string_to_access_tech (test_act_data[i].str), ==, test_act_data[i].act);
|
|
+}
|
|
+
|
|
+/*****************************************************************************/
|
|
+
|
|
#define TESTCASE(t, d) g_test_create_case (#t, 0, d, NULL, (GTestFixtureFunc) t, NULL)
|
|
|
|
int main (int argc, char **argv)
|
|
@@ -5111,6 +5134,8 @@ int main (int argc, char **argv)
|
|
g_test_suite_add (suite, TESTCASE (test_spn_to_utf8, NULL));
|
|
g_test_suite_add (suite, TESTCASE (test_mnc_length, NULL));
|
|
|
|
+ g_test_suite_add (suite, TESTCASE (test_string_to_access_tech, NULL));
|
|
+
|
|
result = g_test_run ();
|
|
|
|
reg_test_data_free (reg_data);
|