diff --git a/src/mm-modem-helpers.c b/src/mm-modem-helpers.c index 43d162ce..ed04a329 100644 --- a/src/mm-modem-helpers.c +++ b/src/mm-modem-helpers.c @@ -2755,7 +2755,7 @@ mm_3gpp_parse_cesq_response (const gchar *response, /* Response may be e.g.: * +CESQ: 99,99,255,255,20,80 */ - r = g_regex_new ("\\+CESQ: (\\d+),(\\d+),(\\d+),(\\d+),(\\d+),(\\d+)(?:\\r\\n)?", 0, 0, NULL); + r = g_regex_new ("\\+CESQ:\\s*(\\d+),(\\d+),(\\d+),(\\d+),(\\d+),(\\d+)(?:\\r\\n)?", 0, 0, NULL); g_assert (r != NULL); g_regex_match_full (r, response, strlen (response), 0, 0, &match_info, &inner_error); diff --git a/src/tests/test-modem-helpers.c b/src/tests/test-modem-helpers.c index f3cdb438..7684fce7 100644 --- a/src/tests/test-modem-helpers.c +++ b/src/tests/test-modem-helpers.c @@ -4171,6 +4171,13 @@ static const CesqResponseTest cesq_response_tests[] = { .gsm_info = TRUE, .rxlev = 10, .rssi = -101.0, .ber = 6, .umts_info = FALSE, .rscp_level = 255, .ecn0_level = 255, .lte_info = FALSE, .rsrq_level = 255, .rsrp_level = 255, + }, + { + /* No space after ':' */ + .str = "+CESQ:10,6,255,255,255,255", + .gsm_info = TRUE, .rxlev = 10, .rssi = -101.0, .ber = 6, + .umts_info = FALSE, .rscp_level = 255, .ecn0_level = 255, + .lte_info = FALSE, .rsrq_level = 255, .rsrp_level = 255, } };