aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorDan Williams <dcbw@redhat.com>2013-01-08 14:26:31 -0600
committerDan Williams <dcbw@redhat.com>2013-01-14 13:50:26 -0600
commit01e8e0574f463dc03cccc4a6b8c9dacb754abae1 (patch)
tree11121328bbdef8ae52ed9145d1e6fa6cc6313e45 /src
parent48b36b1afae3a316be75c9c613e6f41be2ad64d2 (diff)
broadband-modem: more compatible CSQ parsing
Some devices (usually CDMA modems like the Sierra MC5725 and others) don't prefix their +CSQ replies with +CSQ. So don't require that. The scanf() should ensure the reply is valid even without the +CSQ.
Diffstat (limited to 'src')
-rw-r--r--src/mm-broadband-modem.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/src/mm-broadband-modem.c b/src/mm-broadband-modem.c
index c30a8c53..b6466339 100644
--- a/src/mm-broadband-modem.c
+++ b/src/mm-broadband-modem.c
@@ -1473,13 +1473,13 @@ signal_quality_csq_ready (MMBroadbandModem *self,
}
result_str = g_variant_get_string (result, NULL);
- if (result_str &&
- !strncmp (result_str, "+CSQ: ", 6)) {
+ if (result_str) {
/* Got valid reply */
int quality;
int ber;
- if (sscanf (result_str + 6, "%d, %d", &quality, &ber)) {
+ result_str = mm_strip_tag (result_str, "+CSQ:");
+ if (sscanf (result_str, "%d, %d", &quality, &ber)) {
/* 99 means unknown */
if (quality == 99) {
g_simple_async_result_take_error (