aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/mm-iface-modem-time.c7
-rw-r--r--src/mm-iface-modem-time.h4
2 files changed, 8 insertions, 3 deletions
diff --git a/src/mm-iface-modem-time.c b/src/mm-iface-modem-time.c
index a7763fff..2e200f59 100644
--- a/src/mm-iface-modem-time.c
+++ b/src/mm-iface-modem-time.c
@@ -137,8 +137,11 @@ load_network_timezone_ready (MMIfaceModemTime *self,
/* Retry? */
ctx->network_timezone_poll_retries--;
- /* Fatal if no more retries */
- if (ctx->network_timezone_poll_retries == 0) {
+ /* Fatal if no more retries, or if specific error is not RETRY */
+ if (ctx->network_timezone_poll_retries == 0 ||
+ !g_error_matches (error,
+ MM_CORE_ERROR,
+ MM_CORE_ERROR_RETRY)) {
g_simple_async_result_take_error (ctx->result, error);
update_network_timezone_context_complete_and_free (ctx);
return;
diff --git a/src/mm-iface-modem-time.h b/src/mm-iface-modem-time.h
index 013d5ab9..b47732ef 100644
--- a/src/mm-iface-modem-time.h
+++ b/src/mm-iface-modem-time.h
@@ -39,7 +39,9 @@ struct _MMIfaceModemTime {
GAsyncResult *res,
GError **error);
- /* Loading of the network timezone property */
+ /* Loading of the network timezone property. This method may return
+ * MM_CORE_ERROR_RETRY if the timezone cannot yet be loaded, so that
+ * the interface retries later. */
void (* load_network_timezone) (MMIfaceModemTime *self,
GAsyncReadyCallback callback,
gpointer user_data);