diff options
author | Denis Kenzior <denis.kenzior@intel.com> | 2009-10-23 15:17:55 -0500 |
---|---|---|
committer | Denis Kenzior <denkenz@gmail.com> | 2009-10-23 17:05:57 -0500 |
commit | ffd7c1920abb04e319f0146e1990d95d0109c9c4 (patch) | |
tree | e2ac8be35abb581b7b868ed1398231a001b99612 /drivers | |
parent | 5cfe54158223d88c3199c75ad0a81e70f0d61852 (diff) | |
download | ofono-ffd7c1920abb04e319f0146e1990d95d0109c9c4.tar.bz2 |
Fix: Some modems report PDP_type in a list
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/atmodem/gprs.c | 10 |
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; } |