diff options
Diffstat (limited to 'plugins/mm-modem-option.c')
-rw-r--r-- | plugins/mm-modem-option.c | 24 |
1 files changed, 16 insertions, 8 deletions
diff --git a/plugins/mm-modem-option.c b/plugins/mm-modem-option.c index 42cd927c..6c9dfe1d 100644 --- a/plugins/mm-modem-option.c +++ b/plugins/mm-modem-option.c @@ -138,12 +138,16 @@ get_allowed_mode (MMGenericGsm *gsm, gpointer user_data) { MMCallbackInfo *info; - MMAtSerialPort *primary; + MMAtSerialPort *port; info = mm_callback_info_uint_new (MM_MODEM (gsm), callback, user_data); - primary = mm_generic_gsm_get_at_port (gsm, MM_PORT_TYPE_PRIMARY); - g_assert (primary); - mm_at_serial_port_queue_command (primary, "AT_OPSYS?", 3, get_allowed_mode_done, info); + + port = mm_generic_gsm_get_best_at_port (gsm, &info->error); + if (!port) { + mm_callback_info_schedule (info); + return; + } + mm_at_serial_port_queue_command (port, "AT_OPSYS?", 3, get_allowed_mode_done, info); } static void @@ -167,12 +171,18 @@ set_allowed_mode (MMGenericGsm *gsm, gpointer user_data) { MMCallbackInfo *info; - MMAtSerialPort *primary; + MMAtSerialPort *port; char *command; int i; info = mm_callback_info_new (MM_MODEM (gsm), callback, user_data); + port = mm_generic_gsm_get_best_at_port (gsm, &info->error); + if (!port) { + mm_callback_info_schedule (info); + return; + } + switch (mode) { case MM_MODEM_GSM_ALLOWED_MODE_2G_ONLY: i = 0; @@ -193,9 +203,7 @@ set_allowed_mode (MMGenericGsm *gsm, } command = g_strdup_printf ("AT_OPSYS=%d,2", i); - primary = mm_generic_gsm_get_at_port (gsm, MM_PORT_TYPE_PRIMARY); - g_assert (primary); - mm_at_serial_port_queue_command (primary, command, 3, set_allowed_mode_done, info); + mm_at_serial_port_queue_command (port, command, 3, set_allowed_mode_done, info); g_free (command); } |