diff options
author | Aleksander Morgado <aleksander@aleksander.es> | 2017-03-25 21:39:45 +0100 |
---|---|---|
committer | Aleksander Morgado <aleksander@aleksander.es> | 2017-04-02 10:06:13 +0200 |
commit | fba49d8d005dd65affac56975bc7fd95250d530c (patch) | |
tree | 64c6dac6cbe0d74bc79da89a498e2d26360fd0f6 /src | |
parent | f824602bdd922cdc9e15aa83fda545534c0b0542 (diff) |
broadband-modem: normalize also operator code
The operator code (MCCMNC) may also be given encoded in the current
charset (e.g. UCS2).
Based on a patch from Colin Helliwell <colin.helliwell@ln-systems.com>
Diffstat (limited to 'src')
-rw-r--r-- | src/mm-broadband-modem.c | 6 | ||||
-rw-r--r-- | src/mm-modem-helpers.c | 4 | ||||
-rw-r--r-- | src/mm-modem-helpers.h | 4 | ||||
-rw-r--r-- | src/tests/test-modem-helpers.c | 7 |
4 files changed, 14 insertions, 7 deletions
diff --git a/src/mm-broadband-modem.c b/src/mm-broadband-modem.c index 39a9bf83..97a268a2 100644 --- a/src/mm-broadband-modem.c +++ b/src/mm-broadband-modem.c @@ -3472,7 +3472,9 @@ modem_3gpp_load_operator_code_finish (MMIfaceModem3gpp *self, error)) return NULL; - mm_dbg ("loaded Operator Code: %s", operator_code); + mm_3gpp_normalize_operator (&operator_code, MM_BROADBAND_MODEM (self)->priv->modem_current_charset); + if (operator_code) + mm_dbg ("loaded Operator Code: %s", operator_code); return operator_code; } @@ -3513,7 +3515,7 @@ modem_3gpp_load_operator_name_finish (MMIfaceModem3gpp *self, error)) return NULL; - mm_3gpp_normalize_operator_name (&operator_name, MM_BROADBAND_MODEM (self)->priv->modem_current_charset); + mm_3gpp_normalize_operator (&operator_name, MM_BROADBAND_MODEM (self)->priv->modem_current_charset); if (operator_name) mm_dbg ("loaded Operator Name: %s", operator_name); return operator_name; diff --git a/src/mm-modem-helpers.c b/src/mm-modem-helpers.c index 9266a5a0..b4556176 100644 --- a/src/mm-modem-helpers.c +++ b/src/mm-modem-helpers.c @@ -3123,8 +3123,8 @@ mm_string_to_access_tech (const gchar *string) /*************************************************************************/ void -mm_3gpp_normalize_operator_name (gchar **operator, - MMModemCharset cur_charset) +mm_3gpp_normalize_operator (gchar **operator, + MMModemCharset cur_charset) { g_assert (operator); diff --git a/src/mm-modem-helpers.h b/src/mm-modem-helpers.h index 33af48b6..a74924e3 100644 --- a/src/mm-modem-helpers.h +++ b/src/mm-modem-helpers.h @@ -294,8 +294,8 @@ gchar *mm_3gpp_facility_to_acronym (MMModem3gppFacility facility); MMModemAccessTechnology mm_string_to_access_tech (const gchar *string); -void mm_3gpp_normalize_operator_name (gchar **operator, - MMModemCharset cur_charset); +void mm_3gpp_normalize_operator (gchar **operator, + MMModemCharset cur_charset); gboolean mm_3gpp_parse_operator_id (const gchar *operator_id, guint16 *mcc, diff --git a/src/tests/test-modem-helpers.c b/src/tests/test-modem-helpers.c index 98f30f83..ae0eec99 100644 --- a/src/tests/test-modem-helpers.c +++ b/src/tests/test-modem-helpers.c @@ -876,13 +876,18 @@ typedef struct { static const NormalizeOperatorTest normalize_operator_tests[] = { /* charset unknown */ { "Verizon", MM_MODEM_CHARSET_UNKNOWN, "Verizon" }, + { "311480", MM_MODEM_CHARSET_UNKNOWN, "311480" }, /* charset configured as IRA (ASCII) */ { "Verizon", MM_MODEM_CHARSET_IRA, "Verizon" }, + { "311480", MM_MODEM_CHARSET_IRA, "311480" }, /* charset configured as GSM7 */ { "Verizon", MM_MODEM_CHARSET_GSM, "Verizon" }, + { "311480", MM_MODEM_CHARSET_GSM, "311480" }, /* charset configured as UCS2 */ { "0056006500720069007A006F006E", MM_MODEM_CHARSET_UCS2, "Verizon" }, + { "003300310031003400380030", MM_MODEM_CHARSET_UCS2, "311480" }, { "Verizon", MM_MODEM_CHARSET_UCS2, "Verizon" }, + { "311480", MM_MODEM_CHARSET_UCS2, "311480" }, }; static void @@ -891,7 +896,7 @@ common_test_normalize_operator (const NormalizeOperatorTest *t) gchar *str; str = g_strdup (t->input); - mm_3gpp_normalize_operator_name (&str, t->charset); + mm_3gpp_normalize_operator (&str, t->charset); if (!t->normalized) g_assert (!str); else |