Fix: Some modems report PDP_type in a list
authorDenis Kenzior <denis.kenzior@intel.com>
Fri, 23 Oct 2009 20:17:55 +0000 (15:17 -0500)
committerDenis Kenzior <denkenz@gmail.com>
Fri, 23 Oct 2009 22:05:57 +0000 (17:05 -0500)
drivers/atmodem/gprs.c

index d60fbca..27a3f56 100644 (file)
@@ -232,6 +232,8 @@ static void at_cgdcont_test_cb(gboolean ok, GAtResult *result,
        g_at_result_iter_init(&iter, result);
 
        while (!found && g_at_result_iter_next(&iter, "+CGDCONT:")) {
+               gboolean in_list = FALSE;
+
                if (!g_at_result_iter_open_list(&iter))
                        continue;
 
@@ -241,11 +243,17 @@ static void at_cgdcont_test_cb(gboolean ok, GAtResult *result,
                if (!g_at_result_iter_close_list(&iter))
                        continue;
 
+               if (g_at_result_iter_open_list(&iter))
+                       in_list = TRUE;
+
                if (!g_at_result_iter_next_string(&iter, &pdp_type))
                        continue;
 
+               if (in_list && !g_at_result_iter_close_list(&iter))
+                       continue;
+
                /* We look for IP PDPs */
-               if (!strcmp(pdp_type, "IP"))
+               if (g_str_equal(pdp_type, "IP"))
                        found = TRUE;
        }