aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAleksander Morgado <aleksander@lanedo.com>2011-11-25 15:26:42 +0100
committerAleksander Morgado <aleksander@lanedo.com>2012-03-15 14:14:28 +0100
commit22bdfdbf8b06a98d3b0ebdbb65c480de4eabd8d2 (patch)
tree3bcd0e3da504446c353e0a2d2798a1204998856a
parentb0a9c6a7efcc31f74ff6d1bae5b55734068b3f35 (diff)
broadband-modem: disable the Modem iface when disabling the modem
-rw-r--r--src/mm-broadband-modem.c47
1 files changed, 33 insertions, 14 deletions
diff --git a/src/mm-broadband-modem.c b/src/mm-broadband-modem.c
index bbe1b028..a5d293dd 100644
--- a/src/mm-broadband-modem.c
+++ b/src/mm-broadband-modem.c
@@ -1134,6 +1134,35 @@ enable (MMBaseModem *self,
/*****************************************************************************/
+static gboolean
+disable_finish (MMBaseModem *self,
+ GAsyncResult *res,
+ GError **error)
+{
+ if (g_simple_async_result_propagate_error (G_SIMPLE_ASYNC_RESULT (res), error))
+ return FALSE;
+
+ return TRUE;
+}
+
+static void
+iface_modem_disable_ready (MMBroadbandModem *self,
+ GAsyncResult *result,
+ GAsyncResult *disable_result)
+{
+ GError *error = NULL;
+
+ if (!mm_iface_modem_disable_finish (MM_IFACE_MODEM (self),
+ result,
+ &error))
+ g_simple_async_result_take_error (G_SIMPLE_ASYNC_RESULT (disable_result), error);
+ else
+ g_simple_async_result_set_op_res_gboolean (G_SIMPLE_ASYNC_RESULT (disable_result), TRUE);
+
+ g_simple_async_result_complete (G_SIMPLE_ASYNC_RESULT (disable_result));
+ g_object_unref (disable_result);
+}
+
static void
disable (MMBaseModem *self,
GCancellable *cancellable,
@@ -1147,20 +1176,10 @@ disable (MMBaseModem *self,
user_data,
disable);
- g_simple_async_result_set_op_res_gboolean (G_SIMPLE_ASYNC_RESULT (res), TRUE);
- g_simple_async_result_complete_in_idle (G_SIMPLE_ASYNC_RESULT (res));
- g_object_unref (res);
-}
-
-static gboolean
-disable_finish (MMBaseModem *self,
- GAsyncResult *res,
- GError **error)
-{
- if (g_simple_async_result_propagate_error (G_SIMPLE_ASYNC_RESULT (res), error))
- return FALSE;
-
- return TRUE;
+ /* Disable the Modem interface */
+ mm_iface_modem_disable (MM_IFACE_MODEM (self),
+ (GAsyncReadyCallback)iface_modem_disable_ready,
+ res);
}
/*****************************************************************************/