diff options
author | Aleksander Morgado <aleksander@lanedo.com> | 2012-02-01 18:12:44 +0100 |
---|---|---|
committer | Aleksander Morgado <aleksander@lanedo.com> | 2012-03-15 14:14:59 +0100 |
commit | cd5e9c27a37ae2994dfab344ff83912c66cc4c12 (patch) | |
tree | 2a7c74d02f92be4fc0ec1a2d586a4ecaa41a1eeb /src/mm-base-modem.c | |
parent | 47a990390175747b2d213681eda4f41a6edb7a7b (diff) |
broadband-modem: if locked, don't try to initialize remaining interfaces
Whenever we get unlocked, the modem initialization sequence will be run again.
Diffstat (limited to 'src/mm-base-modem.c')
-rw-r--r-- | src/mm-base-modem.c | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/src/mm-base-modem.c b/src/mm-base-modem.c index d3be6056..9ded0445 100644 --- a/src/mm-base-modem.c +++ b/src/mm-base-modem.c @@ -151,8 +151,18 @@ initialize_ready (MMBaseModem *self, GError *error = NULL; if (!MM_BASE_MODEM_GET_CLASS (self)->initialize_finish (self, res, &error)) { - mm_warn ("couldn't initialize the modem: '%s'", error->message); - mm_base_modem_set_valid (self, FALSE); + /* Wrong state is returned when modem is found locked */ + if (g_error_matches (error, + MM_CORE_ERROR, + MM_CORE_ERROR_WRONG_STATE)) { + mm_dbg ("Couldn't finish initialization in the current state: '%s'", + error->message); + mm_base_modem_set_valid (self, TRUE); + } else { + mm_warn ("couldn't initialize the modem: '%s'", error->message); + mm_base_modem_set_valid (self, FALSE); + } + g_error_free (error); return; } |