diff options
author | Dan Williams <dcbw@redhat.com> | 2010-03-16 13:17:14 -0700 |
---|---|---|
committer | Dan Williams <dcbw@redhat.com> | 2010-03-16 13:17:14 -0700 |
commit | 6744e08104708ccc97fbab787629685f0d28689e (patch) | |
tree | 49ee55d1330afedcdf331190b261ddf340872514 /plugins/mm-modem-option.c | |
parent | b002e54cf4c6edf1858eb82de7cf41a5c9a9d29b (diff) |
gsm: simplify finding the right serial port for commands
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); } |