[PATCH] Fixed wrong MEM1 value passed to +CPMS

Carlo Lobrano c.lobrano at gmail.com
Thu Mar 23 16:32:55 UTC 2017


> So why is current_sms_mem1_storage UNKNOWN? At which point did it
> fail, if it did? Did it fail doing AT+CPMS?

Correct. AT+CPMS? returns with SIM Busy. It's something that will be better
addressed when "delay till #QSS: 3" will be implemented.

> I agree that we shouldn't call any CPMS command passing "unknown" as
> storage, but defaulting to "SM" isn't a good approach either. [...]
> If it is UNKNOWN because init_current_storages() failed, we should
> also error out when trying to set_default_storage()

I understand that. So, set_default_storage should return error directly
when it finds that mem1 is UNKNOWN. Is that right?

On Thu, 23 Mar 2017 at 17:16 Aleksander Morgado <aleksander at aleksander.es>
wrote:

> On Thu, Mar 23, 2017 at 2:29 PM, Carlo Lobrano <c.lobrano at gmail.com>
> wrote:
> > Let mem1_str defaulting to NULL when current_sms_mem1_storage is
> > MM_SMS_STORAGE_UNKNOWN
> >
> > modem_messaging_set_default_storage considers mem1 storage
> > string valid if *not NULL*, but, previously, when we could not get
> > current_sms_mem1_storage value right, mem1_str defaulted to "unknown"
> > and that string was used in +CPMS command, resulting in an ERROR.
> >
>
> The current_sms_mem1_storage shouldn't be UNKNOWN unless:
>   * init_current_storages() hasn't been run yet
>   * init_current_storages () failed.
>
> So why is current_sms_mem1_storage UNKNOWN? At which point did it
> fail, if it did? Did it fail doing AT+CPMS? in
> modem_messaging_init_current_storages()? Or is it that
> set_default_storage() was called before init_current_storages() was
> executed?
>
> I agree that we shouldn't call any CPMS command passing "unknown" as
> storage, but defaulting to "SM" isn't a good approach either. We
> actually test which are the supported storages at some point
> (modem_messaging_load_supported_storages()) to avoid assuming any of
> them is always available.
>
> If it is UNKNOWN because init_current_storages() failed, we should
> also error out when trying to set_default_storage()
>
> > ---
> >  src/mm-broadband-modem.c | 9 ++++++---
> >  1 file changed, 6 insertions(+), 3 deletions(-)
> >
> > diff --git a/src/mm-broadband-modem.c b/src/mm-broadband-modem.c
> > index 17b3253..776e6d1 100644
> > --- a/src/mm-broadband-modem.c
> > +++ b/src/mm-broadband-modem.c
> > @@ -5587,7 +5587,7 @@ modem_messaging_set_default_storage
> (MMIfaceModemMessaging *_self,
> >      MMBroadbandModem *self = MM_BROADBAND_MODEM (_self);
> >      gchar *cmd;
> >      GSimpleAsyncResult *result;
> > -    gchar *mem1_str;
> > +    gchar *mem1_str = NULL;
> >      gchar *mem_str;
> >
> >      result = g_simple_async_result_new (G_OBJECT (self),
> > @@ -5599,11 +5599,14 @@ modem_messaging_set_default_storage
> (MMIfaceModemMessaging *_self,
> >      self->priv->current_sms_mem2_storage = storage;
> >
> >      /* We provide the current sms storage for mem1 if not UNKNOWN */
> > -    mem1_str = g_ascii_strup (mm_sms_storage_get_string
> (self->priv->current_sms_mem1_storage), -1);
> > +    if (self->priv->current_sms_mem1_storage != MM_SMS_STORAGE_UNKNOWN)
> {
> > +        mem1_str = g_ascii_strup (mm_sms_storage_get_string
> (self->priv->current_sms_mem1_storage), -1);
> > +    }
> >
> >      mem_str = g_ascii_strup (mm_sms_storage_get_string (storage), -1);
> >      cmd = g_strdup_printf ("+CPMS=\"%s\",\"%s\",\"%s\"",
> > -                           mem1_str ? mem1_str : "",
> > +                           /* Empty value is not accepted and SM is the
> default one */
> > +                           mem1_str ? mem1_str : "SM",
> >                             mem_str,
> >                             mem_str);
> >      mm_base_modem_at_command (MM_BASE_MODEM (self),
> > --
> > 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
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/modemmanager-devel/attachments/20170323/200fd865/attachment-0001.html>


More information about the ModemManager-devel mailing list