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.
This commit is contained in:
Aleksander Morgado
2012-03-05 16:10:53 +01:00
parent 120ac6da39
commit 10669881a5
2 changed files with 8 additions and 3 deletions

View File

@@ -137,8 +137,11 @@ load_network_timezone_ready (MMIfaceModemTime *self,
/* Retry? */ /* Retry? */
ctx->network_timezone_poll_retries--; ctx->network_timezone_poll_retries--;
/* Fatal if no more retries */ /* Fatal if no more retries, or if specific error is not RETRY */
if (ctx->network_timezone_poll_retries == 0) { 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); g_simple_async_result_take_error (ctx->result, error);
update_network_timezone_context_complete_and_free (ctx); update_network_timezone_context_complete_and_free (ctx);
return; return;

View File

@@ -39,7 +39,9 @@ struct _MMIfaceModemTime {
GAsyncResult *res, GAsyncResult *res,
GError **error); 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, void (* load_network_timezone) (MMIfaceModemTime *self,
GAsyncReadyCallback callback, GAsyncReadyCallback callback,
gpointer user_data); gpointer user_data);