diff options
author | Aleksander Morgado <aleksander@lanedo.com> | 2011-11-25 15:26:42 +0100 |
---|---|---|
committer | Aleksander Morgado <aleksander@lanedo.com> | 2012-03-15 14:14:28 +0100 |
commit | 22bdfdbf8b06a98d3b0ebdbb65c480de4eabd8d2 (patch) | |
tree | 3bcd0e3da504446c353e0a2d2798a1204998856a | |
parent | b0a9c6a7efcc31f74ff6d1bae5b55734068b3f35 (diff) |
broadband-modem: disable the Modem iface when disabling the modem
-rw-r--r-- | src/mm-broadband-modem.c | 47 |
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); } /*****************************************************************************/ |