diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/mm-broadband-modem.c | 24 |
1 files changed, 14 insertions, 10 deletions
diff --git a/src/mm-broadband-modem.c b/src/mm-broadband-modem.c index e88be07c..cba9e31a 100644 --- a/src/mm-broadband-modem.c +++ b/src/mm-broadband-modem.c @@ -1508,6 +1508,7 @@ csim_ready (MMBaseModem *self, LoadUnlockRetriesContext *ctx; const gchar *response; GError *error = NULL; + gint val; ctx = g_task_get_task_data (task); @@ -1516,19 +1517,22 @@ csim_ready (MMBaseModem *self, mm_dbg ("Couldn't load retry count for lock '%s': %s", mm_modem_lock_get_string (unlock_retries_map[ctx->i].lock), error->message); - g_error_free (error); - } else { - gint val; + goto next; + } - val = mm_parse_csim_response (response, &error); - if (val < 0) { - mm_warn ("Parse error in step %d: %s.", ctx->i, error->message); - mm_dbg ("Couldn't parse retry count value for lock '%s'", - mm_modem_lock_get_string (unlock_retries_map[ctx->i].lock)); - } else - mm_unlock_retries_set (ctx->retries, unlock_retries_map[ctx->i].lock, val); + val = mm_parse_csim_response (response, &error); + if (val < 0) { + mm_dbg ("Couldn't parse retry count value for lock '%s': %s", + mm_modem_lock_get_string (unlock_retries_map[ctx->i].lock), + error->message); + goto next; } + mm_unlock_retries_set (ctx->retries, unlock_retries_map[ctx->i].lock, val); + +next: + g_clear_error (&error); + /* Go to next lock value */ ctx->i++; load_unlock_retries_context_step (task); |