​> Maybe it wouldn't be a bad idea to keep track of which operations may
> fail due to SIM being busy, and perform automatic retry later if we
> get that specific error, something like that.

Hey,

I made a little proof of concept of this improvement. So far, it's
restricted to *loading unlock retries again once #QSS:3* is received, but I
can't get to have the retries values updated at a higher level. This is
likely due to *mm-iface-modem.c:load_unlock_retries_ready* callback not
being called I guess, but I'm not really sure my approach is totally
correct.

I do the following:

A. When mm_telit_parse_csim_response fails:
    1. The *GSimpleAsyncResult* instance is saved
    2. load_unlock_retries is marked to be called again later
B. When QSS: 3 arrives:
    1. a newly *LoadUnlockRetriesContext* is created using the saved
*GSimpleAsyncResult* (the idea is to re-use the original callback
reference, but not really sure it's correct).
    2. *load_unlock_retries_step* is called again with the above mentioned
LoadUnlockRetriesContext instance

Step 2 is done in a GSourceFunc called by the mainloop, using g_add_idle.

What I see is the load_unlock_retries_step logs, so this function is
actually called (as it looks to me) correctly, but the output of "mmcli -m
<ID>" still shows the same incomplete list of unlock retries as if the data
have not been updated.​
_______________________________________________
ModemManager-devel mailing list
ModemManager-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/modemmanager-devel

Reply via email to