summaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorDenis Kenzior <denis.kenzior@intel.com>2009-10-23 15:17:55 -0500
committerDenis Kenzior <denkenz@gmail.com>2009-10-23 17:05:57 -0500
commitffd7c1920abb04e319f0146e1990d95d0109c9c4 (patch)
treee2ac8be35abb581b7b868ed1398231a001b99612 /drivers
parent5cfe54158223d88c3199c75ad0a81e70f0d61852 (diff)
downloadofono-ffd7c1920abb04e319f0146e1990d95d0109c9c4.tar.bz2
Fix: Some modems report PDP_type in a list
Diffstat (limited to 'drivers')
-rw-r--r--drivers/atmodem/gprs.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/drivers/atmodem/gprs.c b/drivers/atmodem/gprs.c
index d60fbca1..27a3f569 100644
--- a/drivers/atmodem/gprs.c
+++ b/drivers/atmodem/gprs.c
@@ -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;
}