summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniele Palmas <dnlplm@gmail.com>2016-10-10 14:42:45 +0200
committerAleksander Morgado <aleksander@aleksander.es>2016-10-11 10:20:01 +0200
commit06bd24e00c97a961490939c33f046cefef01332f (patch)
tree00da08e5673ffb7c6266c9599c59407257bd161b
parent44012f3efaed88a92a0d0dec5b1a1cf002ad21f4 (diff)
downloadModemManager-06bd24e00c97a961490939c33f046cefef01332f.tar.gz
telit: fix supported and current bands query with GE910
GE910 is a 2g only modem and when queried for bands it returns only a 2g set of bands: --> 'AT#BND=?<CR>' <-- '<CR><LF>#BND: (0-3)<CR><LF><CR><LF>OK<CR><LF>' Current regex fails, since it considers the 3g bands block mandatory. A similar problem happens for current bands. This patch modifies the regular expressions for properly supporting GE910 and updates tests. (cherry picked from commit 6f11ff10cd8da2d431eb9596185ccb577356c6ab)
-rw-r--r--plugins/telit/mm-modem-helpers-telit.c4
-rw-r--r--plugins/telit/tests/test-mm-modem-helpers-telit.c8
2 files changed, 10 insertions, 2 deletions
diff --git a/plugins/telit/mm-modem-helpers-telit.c b/plugins/telit/mm-modem-helpers-telit.c
index d71a712f4..665668f5f 100644
--- a/plugins/telit/mm-modem-helpers-telit.c
+++ b/plugins/telit/mm-modem-helpers-telit.c
@@ -162,9 +162,9 @@ mm_telit_parse_csim_response (const guint step,
return retries;
}
-#define SUPP_BAND_RESPONSE_REGEX "#BND:\\s*\\((?P<Bands2G>.*)\\),\\s*\\((?P<Bands3G>.*)\\)"
+#define SUPP_BAND_RESPONSE_REGEX "#BND:\\s*\\((?P<Bands2G>[0-9\\-,]*)\\)(,\\s*\\((?P<Bands3G>.*)\\))?"
#define SUPP_BAND_4G_MODEM_RESPONSE_REGEX "#BND:\\s*\\((?P<Bands2G>.*)\\),\\s*\\((?P<Bands3G>.*)\\),\\s*\\((?P<Bands4G>\\d+-\\d+)\\)"
-#define CURR_BAND_RESPONSE_REGEX "#BND:\\s*(?P<Bands2G>\\d+),\\s*(?P<Bands3G>\\d+)"
+#define CURR_BAND_RESPONSE_REGEX "#BND:\\s*(?P<Bands2G>\\d+)(,\\s*(?P<Bands3G>\\d+))?"
#define CURR_BAND_4G_MODEM_RESPONSE_REGEX "#BND:\\s*(?P<Bands2G>\\d+),\\s*(?P<Bands3G>\\d+),\\s*(?P<Bands4G>\\d+)"
/*****************************************************************************/
diff --git a/plugins/telit/tests/test-mm-modem-helpers-telit.c b/plugins/telit/tests/test-mm-modem-helpers-telit.c
index bfdde890f..03b1bc7ac 100644
--- a/plugins/telit/tests/test-mm-modem-helpers-telit.c
+++ b/plugins/telit/tests/test-mm-modem-helpers-telit.c
@@ -160,6 +160,10 @@ typedef struct {
} BNDResponseTest;
static BNDResponseTest supported_band_mapping_tests [] = {
+ { "#BND: (0-3)", TRUE, FALSE, FALSE, 4, { MM_MODEM_BAND_EGSM,
+ MM_MODEM_BAND_DCS,
+ MM_MODEM_BAND_PCS,
+ MM_MODEM_BAND_G850} },
{ "#BND: (0-3),(0,2,5,6)", TRUE, TRUE, FALSE, 7, { MM_MODEM_BAND_EGSM,
MM_MODEM_BAND_DCS,
MM_MODEM_BAND_PCS,
@@ -242,6 +246,10 @@ test_parse_supported_bands_response (void) {
static BNDResponseTest current_band_mapping_tests [] = {
+ { "#BND: 0", TRUE, FALSE, FALSE, 2, { MM_MODEM_BAND_EGSM,
+ MM_MODEM_BAND_DCS
+ }
+ },
{ "#BND: 0,5", TRUE, TRUE, FALSE, 3, { MM_MODEM_BAND_EGSM,
MM_MODEM_BAND_DCS,
MM_MODEM_BAND_U900