[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