[PATCH] iface-modem-3gpp: use mm_3gpp_parse_operator_id() instead of custom code
Aleksander Morgado
aleksander at aleksander.es
Fri Mar 17 22:07:09 UTC 2017
On Fri, Mar 17, 2017 at 10:11 PM, Dan Williams <dcbw at redhat.com> wrote:
> ---
> src/mm-iface-modem-3gpp.c | 43 ++++++++-----------------------------------
> 1 file changed, 8 insertions(+), 35 deletions(-)
>
LGTM
> diff --git a/src/mm-iface-modem-3gpp.c b/src/mm-iface-modem-3gpp.c
> index d38c4ca..8b93550 100644
> --- a/src/mm-iface-modem-3gpp.c
> +++ b/src/mm-iface-modem-3gpp.c
> @@ -859,34 +859,6 @@ load_operator_name_ready (MMIfaceModem3gpp *self,
> reload_current_registration_info_context_step (ctx);
> }
>
> -static gboolean
> -parse_mcc_mnc (const gchar *mccmnc,
> - guint *mcc_out,
> - guint *mnc_out)
> -{
> - guint mccmnc_len;
> - gchar mcc[4] = { 0, 0, 0, 0 };
> - gchar mnc[4] = { 0, 0, 0, 0 };
> -
> - mccmnc_len = (mccmnc ? strlen (mccmnc) : 0);
> - if (mccmnc_len != 5 &&
> - mccmnc_len != 6) {
> - mm_dbg ("Unexpected MCC/MNC string '%s'", mccmnc);
> - return FALSE;
> - }
> -
> - memcpy (mcc, mccmnc, 3);
> - /* Not all modems report 6-digit MNCs */
> - memcpy (mnc, mccmnc + 3, 2);
> - if (mccmnc_len == 6)
> - mnc[2] = mccmnc[5];
> -
> - *mcc_out = atoi (mcc);
> - *mnc_out = atoi (mnc);
> -
> - return TRUE;
> -}
> -
> static void
> load_operator_code_ready (MMIfaceModem3gpp *self,
> GAsyncResult *res,
> @@ -894,24 +866,25 @@ load_operator_code_ready (MMIfaceModem3gpp *self,
> {
> GError *error = NULL;
> gchar *str;
> + guint16 mcc = 0;
> + guint16 mnc = 0;
>
> str = MM_IFACE_MODEM_3GPP_GET_INTERFACE (self)->load_operator_code_finish (self, res, &error);
> if (error) {
> mm_warn ("Couldn't load Operator Code: '%s'", error->message);
> - g_error_free (error);
> + } else if (!mm_3gpp_parse_operator_id (str, &mcc, &mnc, &error)) {
> + mm_dbg ("Unexpected MCC/MNC string '%s': '%s'", str, error->message);
> + g_clear_pointer (&str, g_free);
> }
> + g_clear_error (&error);
>
> if (ctx->skeleton)
> mm_gdbus_modem3gpp_set_operator_code (ctx->skeleton, str);
>
> /* If we also implement the location interface, update the 3GPP location */
> - if (str && MM_IS_IFACE_MODEM_LOCATION (self)) {
> - guint mcc = 0;
> - guint mnc = 0;
> + if (mcc && MM_IS_IFACE_MODEM_LOCATION (self))
> + mm_iface_modem_location_3gpp_update_mcc_mnc (MM_IFACE_MODEM_LOCATION (self), mcc, mnc);
>
> - if (parse_mcc_mnc (str, &mcc, &mnc))
> - mm_iface_modem_location_3gpp_update_mcc_mnc (MM_IFACE_MODEM_LOCATION (self), mcc, mnc);
> - }
> g_free (str);
>
> ctx->operator_code_loaded = TRUE;
> --
> 2.9.3
> _______________________________________________
> ModemManager-devel mailing list
> ModemManager-devel at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/modemmanager-devel
--
Aleksander
https://aleksander.es
More information about the ModemManager-devel
mailing list