aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/mm-broadband-modem.c24
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);