aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAleksander Morgado <aleksander@aleksander.es>2019-09-13 18:25:32 +0200
committerAleksander Morgado <aleksander@gnu.org>2019-09-15 07:17:52 +0000
commitf2f42e193e478cc2e83336ad7b535a3793712d0f (patch)
treece388b970bea9cea4cc4ee838d4a7db126c15b06
parent137ece0f2fd1a9592c5dd79812588037723e7fa3 (diff)
iface-modem: report last attempt to load_unlock_required implementations
The load_unlock_required() step will be automatically retried by the generic interface logic unless some specific errors happen (e.g. it won't be retried if a SIM missing error is received). This patch allows telling the implementation of the method whether this time being run is the last one before reporting a hard error or not.
-rw-r--r--src/mm-broadband-modem-mbim.c1
-rw-r--r--src/mm-broadband-modem-qmi.c1
-rw-r--r--src/mm-broadband-modem.c1
-rw-r--r--src/mm-iface-modem.c1
-rw-r--r--src/mm-iface-modem.h1
5 files changed, 5 insertions, 0 deletions
diff --git a/src/mm-broadband-modem-mbim.c b/src/mm-broadband-modem-mbim.c
index 68313094..dd32ec5d 100644
--- a/src/mm-broadband-modem-mbim.c
+++ b/src/mm-broadband-modem-mbim.c
@@ -1074,6 +1074,7 @@ wait_for_sim_ready (GTask *task)
static void
modem_load_unlock_required (MMIfaceModem *self,
+ gboolean last_attempt,
GAsyncReadyCallback callback,
gpointer user_data)
{
diff --git a/src/mm-broadband-modem-qmi.c b/src/mm-broadband-modem-qmi.c
index 7356a5e8..084fca52 100644
--- a/src/mm-broadband-modem-qmi.c
+++ b/src/mm-broadband-modem-qmi.c
@@ -1101,6 +1101,7 @@ load_unlock_required_context_step (GTask *task)
static void
modem_load_unlock_required (MMIfaceModem *self,
+ gboolean last_attempt,
GAsyncReadyCallback callback,
gpointer user_data)
{
diff --git a/src/mm-broadband-modem.c b/src/mm-broadband-modem.c
index 553b8315..0557cdf0 100644
--- a/src/mm-broadband-modem.c
+++ b/src/mm-broadband-modem.c
@@ -1320,6 +1320,7 @@ cpin_query_ready (MMIfaceModem *self,
static void
modem_load_unlock_required (MMIfaceModem *self,
+ gboolean last_attempt,
GAsyncReadyCallback callback,
gpointer user_data)
{
diff --git a/src/mm-iface-modem.c b/src/mm-iface-modem.c
index 128fe4c4..c2845241 100644
--- a/src/mm-iface-modem.c
+++ b/src/mm-iface-modem.c
@@ -372,6 +372,7 @@ internal_load_unlock_required_context_step (GTask *task)
g_assert (ctx->pin_check_timeout_id == 0);
MM_IFACE_MODEM_GET_INTERFACE (self)->load_unlock_required (
self,
+ (ctx->retries == MAX_RETRIES), /* last_attempt? */
(GAsyncReadyCallback)load_unlock_required_ready,
task);
}
diff --git a/src/mm-iface-modem.h b/src/mm-iface-modem.h
index 51cb02bd..9df39030 100644
--- a/src/mm-iface-modem.h
+++ b/src/mm-iface-modem.h
@@ -120,6 +120,7 @@ struct _MMIfaceModem {
/* Loading of the UnlockRequired property */
void (*load_unlock_required) (MMIfaceModem *self,
+ gboolean last_attempt,
GAsyncReadyCallback callback,
gpointer user_data);
MMModemLock (*load_unlock_required_finish) (MMIfaceModem *self,