diff options
author | Aleksander Morgado <aleksander@lanedo.com> | 2012-01-05 16:29:31 +0100 |
---|---|---|
committer | Aleksander Morgado <aleksander@lanedo.com> | 2012-03-15 14:14:45 +0100 |
commit | 9b860021a0fa9a0f3a9a513ced53b4d34f853b31 (patch) | |
tree | 852a2eed27430d8e2e774867ee7d0bafb6174212 | |
parent | 9f8e81277fc5441f0c49f92c13ef4e2c59ec05d0 (diff) |
broadband-modem: set NO_NETWORK error if we couldn't get SID from CDMA1x SS checks
-rw-r--r-- | src/mm-broadband-modem.c | 23 |
1 files changed, 19 insertions, 4 deletions
diff --git a/src/mm-broadband-modem.c b/src/mm-broadband-modem.c index e93ff9b6..e1180b50 100644 --- a/src/mm-broadband-modem.c +++ b/src/mm-broadband-modem.c @@ -2995,6 +2995,16 @@ cdma1x_serving_system_context_complete_and_free (Cdma1xServingSystemContext *ctx g_free (ctx); } +static GError * +cdma1x_serving_system_no_service_error (void) +{ + /* NOTE: update get_cdma1x_serving_system_ready() in mm-iface-modem-cdma.c + * if this error changes */ + return g_error_new_literal (MM_MOBILE_EQUIPMENT_ERROR, + MM_MOBILE_EQUIPMENT_ERROR_NO_NETWORK, + "No CDMA service"); +} + static gboolean get_cdma1x_serving_system_finish (MMIfaceModemCdma *self, GAsyncResult *res, @@ -3123,12 +3133,17 @@ get_cdma1x_serving_system_at_ready (MMIfaceModemCdma *self, sid = MM_MODEM_CDMA_SID_UNKNOWN; /* 99999 means unknown/no service */ + if (sid == MM_MODEM_CDMA_SID_UNKNOWN) { + g_simple_async_result_take_error (ctx->result, + cdma1x_serving_system_no_service_error ()); + cdma1x_serving_system_context_complete_and_free (ctx); + return; + } + results = g_new0 (Cdma1xServingSystemResults, 1); results->sid = sid; - if (sid != MM_MODEM_CDMA_SID_UNKNOWN) { - results->band = band; - results->class = class; - } + results->band = band; + results->class = class; g_simple_async_result_set_op_res_gpointer (ctx->result, results, (GDestroyNotify)g_free); cdma1x_serving_system_context_complete_and_free (ctx); |