aboutsummaryrefslogtreecommitdiff
path: root/plugins/mm-modem-option.c
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/mm-modem-option.c')
-rw-r--r--plugins/mm-modem-option.c22
1 files changed, 15 insertions, 7 deletions
diff --git a/plugins/mm-modem-option.c b/plugins/mm-modem-option.c
index a45bc36e..f5bf4fc9 100644
--- a/plugins/mm-modem-option.c
+++ b/plugins/mm-modem-option.c
@@ -33,6 +33,18 @@ pin_check_done (MMModem *modem, GError *error, gpointer user_data)
mm_callback_info_schedule (info);
}
+static gboolean
+option_enabled (gpointer data)
+{
+ MMCallbackInfo *info = (MMCallbackInfo *) data;
+
+ /* Now check the PIN explicitly, option doesn't seem to report
+ that it needs it otherwise */
+ mm_generic_gsm_check_pin (MM_GENERIC_GSM (info->modem), pin_check_done, info);
+
+ return FALSE;
+}
+
static void
parent_enable_done (MMModem *modem, GError *error, gpointer user_data)
{
@@ -43,11 +55,7 @@ parent_enable_done (MMModem *modem, GError *error, gpointer user_data)
else if (GPOINTER_TO_INT (mm_callback_info_get_data (info, "option-enable"))) {
/* Option returns OK on +CFUN=1 right away but needs some time
to finish initialization */
- sleep (10);
-
- /* Now check the PIN explicitly, option doesn't seem to report
- that it needs it otherwise */
- mm_generic_gsm_check_pin (MM_GENERIC_GSM (modem), pin_check_done, info);
+ g_timeout_add_seconds (10, option_enabled, info);
return;
}
@@ -110,8 +118,8 @@ get_network_mode_done (MMSerial *serial,
}
if (!error && !parsed)
- info->error = g_error_new (MM_MODEM_ERROR, MM_MODEM_ERROR_GENERAL,
- "%s", "Could not parse network mode results");
+ info->error = g_error_new_literal (MM_MODEM_ERROR, MM_MODEM_ERROR_GENERAL,
+ "Could not parse network mode results");
mm_callback_info_schedule (info);
}