diff options
Diffstat (limited to 'plugins/mm-modem-mbm.c')
-rw-r--r-- | plugins/mm-modem-mbm.c | 29 |
1 files changed, 17 insertions, 12 deletions
diff --git a/plugins/mm-modem-mbm.c b/plugins/mm-modem-mbm.c index 49442224..13c5b9ba 100644 --- a/plugins/mm-modem-mbm.c +++ b/plugins/mm-modem-mbm.c @@ -111,13 +111,9 @@ register_done (gpointer user_data) MMModemMbm *self = MM_MODEM_MBM (reg_data->modem); MMModemMbmPrivate *priv = MM_MODEM_MBM_GET_PRIVATE (self); MMModemGsmNetwork *parent_modem_iface; - MMAtSerialPort *primary; priv->reg_id = 0; - primary = mm_generic_gsm_get_at_port (MM_GENERIC_GSM (self), MM_PORT_TYPE_PRIMARY); - g_assert (primary); - parent_modem_iface = g_type_interface_peek_parent (MM_MODEM_GSM_NETWORK_GET_INTERFACE (self)); parent_modem_iface->do_register (MM_MODEM_GSM_NETWORK (self), reg_data->network_id, @@ -189,14 +185,18 @@ set_allowed_mode (MMGenericGsm *gsm, { MMCallbackInfo *info; char *command; - MMAtSerialPort *primary; + MMAtSerialPort *port; info = mm_callback_info_new (MM_MODEM (gsm), callback, user_data); - primary = mm_generic_gsm_get_at_port (gsm, MM_PORT_TYPE_PRIMARY); - g_assert (primary); + + port = mm_generic_gsm_get_best_at_port (gsm, &info->error); + if (!port) { + mm_callback_info_schedule (info); + return; + } command = g_strdup_printf ("+CFUN=%d", mbm_parse_allowed_mode (mode)); - mm_at_serial_port_queue_command (primary, command, 3, mbm_set_allowed_mode_done, info); + mm_at_serial_port_queue_command (port, command, 3, mbm_set_allowed_mode_done, info); g_free (command); } @@ -280,12 +280,17 @@ 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, "CFUN?", 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, "CFUN?", 3, get_allowed_mode_done, info); } /*****************************************************************************/ |