summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/atmodem/atutil.c19
1 files changed, 17 insertions, 2 deletions
diff --git a/drivers/atmodem/atutil.c b/drivers/atmodem/atutil.c
index b6f0d92a..427b0987 100644
--- a/drivers/atmodem/atutil.c
+++ b/drivers/atmodem/atutil.c
@@ -240,8 +240,23 @@ gboolean at_util_parse_reg(GAtResult *result, const char *prefix,
g_at_result_iter_next_number(&iter, &m);
/* Sometimes we get an unsolicited CREG/CGREG here, skip it */
- if (g_at_result_iter_next_number(&iter, &s) == FALSE)
- continue;
+ switch (vendor) {
+ case OFONO_VENDOR_HUAWEI:
+ case OFONO_VENDOR_NOVATEL:
+ r = g_at_result_iter_next_unquoted_string(&iter, &str);
+
+ if (r == FALSE || strlen(str) != 1)
+ continue;
+
+ s = strtol(str, NULL, 10);
+
+ break;
+ default:
+ if (g_at_result_iter_next_number(&iter, &s) == FALSE)
+ continue;
+
+ break;
+ }
/* Some firmware will report bogus lac/ci when unregistered */
if (s != 1 && s != 5)