aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAleksander Morgado <aleksander@lanedo.com>2012-01-05 16:29:31 +0100
committerAleksander Morgado <aleksander@lanedo.com>2012-03-15 14:14:45 +0100
commit9b860021a0fa9a0f3a9a513ced53b4d34f853b31 (patch)
tree852a2eed27430d8e2e774867ee7d0bafb6174212
parent9f8e81277fc5441f0c49f92c13ef4e2c59ec05d0 (diff)
broadband-modem: set NO_NETWORK error if we couldn't get SID from CDMA1x SS checks
-rw-r--r--src/mm-broadband-modem.c23
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);