diff --git a/drivers/atmodem/gprs.c b/drivers/atmodem/gprs.c index 5f1d6100..65a8b7b9 100644 --- a/drivers/atmodem/gprs.c +++ b/drivers/atmodem/gprs.c @@ -318,11 +318,12 @@ static void at_cgreg_test_cb(gboolean ok, GAtResult *result, g_at_result_iter_init(&iter, result); +retry: if (!g_at_result_iter_next(&iter, "+CGREG:")) goto error; if (!g_at_result_iter_open_list(&iter)) - goto error; + goto retry; while (g_at_result_iter_next_range(&iter, &range[0], &range[1])) { if (1 >= range[0] && 1 <= range[1]) diff --git a/drivers/atmodem/network-registration.c b/drivers/atmodem/network-registration.c index 770c1666..a42ae504 100644 --- a/drivers/atmodem/network-registration.c +++ b/drivers/atmodem/network-registration.c @@ -1556,11 +1556,12 @@ static void at_creg_test_cb(gboolean ok, GAtResult *result, gpointer user_data) g_at_result_iter_init(&iter, result); +retry: if (!g_at_result_iter_next(&iter, "+CREG:")) goto error; if (!g_at_result_iter_open_list(&iter)) - goto error; + goto retry; while (g_at_result_iter_next_range(&iter, &range[0], &range[1])) { if (1 >= range[0] && 1 <= range[1])