diff options
author | Dan Williams <dcbw@redhat.com> | 2009-12-16 14:34:29 -0800 |
---|---|---|
committer | Dan Williams <dcbw@redhat.com> | 2009-12-16 14:34:29 -0800 |
commit | 3ad172d1504b20949049cf47783e1fe7287c9b95 (patch) | |
tree | 398012eccb47f48d99e4c524cfcfb61a2b59dfe8 /src | |
parent | 30a2a202073bb7c9ac56326fff01517850894774 (diff) |
cdma: fix quality parsing if modem doesn't prepend +CSQ:
Which some Huawei modems (EC168C) don't do.
Diffstat (limited to 'src')
-rw-r--r-- | src/mm-generic-cdma.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/src/mm-generic-cdma.c b/src/mm-generic-cdma.c index d535e28e..1d20760a 100644 --- a/src/mm-generic-cdma.c +++ b/src/mm-generic-cdma.c @@ -800,13 +800,14 @@ get_signal_quality_done (MMSerialPort *port, mm_serial_port_queue_command (port, "+CSQ?", 3, get_signal_quality_done, info); return; } - } else if (!strncmp (reply, "+CSQ: ", 6)) { - /* Got valid reply */ + } else { int quality, ber; - reply += 6; + /* Got valid reply */ + if (!strncmp (reply, "+CSQ: ", 6)) + reply += 6; - if (sscanf (reply, "%d,%d", &quality, &ber)) { + if (sscanf (reply, "%d, %d", &quality, &ber)) { /* 99 means unknown/no service */ if (quality == 99) { info->error = g_error_new_literal (MM_MOBILE_ERROR, |