aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAleksander Morgado <aleksander@lanedo.com>2012-03-05 16:10:53 +0100
committerAleksander Morgado <aleksander@lanedo.com>2012-03-16 14:53:20 +0100
commit10669881a5520c253ab8ba6f05de4ff5afdc7a31 (patch)
treef0a8d883b4f280d752fe6ce1ad394b3910dcf8da
parent120ac6da39ef1d3abb57f77f1e77de10bf58f194 (diff)
iface-modem-time: only retry if MM_CORE_ERROR_RETRY was returned
We don't want to retry if the error is fatal in some other kind, e.g. a reply parsing error or something.
-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);