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.c24
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);
}