[MM] [PATCH v2] modem-helpers: handle the case when operator name is Unknown

2012-09-20 Thread Ben Chan
Some modems report Unknown as the operator name when failed to obtain
the actual value:

-- 'AT+COPS=3,0;+COPS?CR'
-- 'CRLF+COPS: 0,0,Unknown,0CRLFCRLFOKCRLF'

This patch prevents Unknown from being treated as a valid operator name.
---
 src/mm-modem-helpers.c |   10 +-
 1 files changed, 9 insertions(+), 1 deletions(-)

diff --git a/src/mm-modem-helpers.c b/src/mm-modem-helpers.c
index db0bfbd..6692b6f 100644
--- a/src/mm-modem-helpers.c
+++ b/src/mm-modem-helpers.c
@@ -1468,7 +1468,15 @@ mm_3gpp_parse_operator (const gchar *reply,
  */
 if (!g_utf8_validate (operator, -1, NULL)) {
 g_free (operator);
-operator = NULL;
+return NULL;
+}
+
+/* Some modems (Novatel LTE) return the operator name as Unknown when
+ * it fails to obtain the operator name. Return NULL in such case.
+ */
+if (g_ascii_strcasecmp (operator, unknown) == 0) {
+g_free (operator);
+return NULL;
 }
 }
 
-- 
1.7.7.3

___
networkmanager-list mailing list
networkmanager-list@gnome.org
https://mail.gnome.org/mailman/listinfo/networkmanager-list


Re: [MM] [PATCH v2] modem-helpers: handle the case when operator name is Unknown

2012-09-20 Thread Dan Williams
On Thu, 2012-09-20 at 08:41 -0700, Ben Chan wrote:
 Some modems report Unknown as the operator name when failed to obtain
 the actual value:
 
 -- 'AT+COPS=3,0;+COPS?CR'
 -- 'CRLF+COPS: 0,0,Unknown,0CRLFCRLFOKCRLF'
 
 This patch prevents Unknown from being treated as a valid operator name.

Pushed to master, thanks!

Dan

 ---
  src/mm-modem-helpers.c |   10 +-
  1 files changed, 9 insertions(+), 1 deletions(-)
 
 diff --git a/src/mm-modem-helpers.c b/src/mm-modem-helpers.c
 index db0bfbd..6692b6f 100644
 --- a/src/mm-modem-helpers.c
 +++ b/src/mm-modem-helpers.c
 @@ -1468,7 +1468,15 @@ mm_3gpp_parse_operator (const gchar *reply,
   */
  if (!g_utf8_validate (operator, -1, NULL)) {
  g_free (operator);
 -operator = NULL;
 +return NULL;
 +}
 +
 +/* Some modems (Novatel LTE) return the operator name as Unknown 
 when
 + * it fails to obtain the operator name. Return NULL in such case.
 + */
 +if (g_ascii_strcasecmp (operator, unknown) == 0) {
 +g_free (operator);
 +return NULL;
  }
  }
  


___
networkmanager-list mailing list
networkmanager-list@gnome.org
https://mail.gnome.org/mailman/listinfo/networkmanager-list