diff options
author | Dan Williams <dcbw@redhat.com> | 2010-03-10 15:56:27 -0800 |
---|---|---|
committer | Dan Williams <dcbw@redhat.com> | 2010-03-10 15:56:27 -0800 |
commit | 8f50dd319189c0a9aef4d41957450096029f4b60 (patch) | |
tree | c39c3ae38bd209cb2162071e175afafb2638a82e /src | |
parent | c0c8954828788033ad43f07d7915101378ee2605 (diff) |
gsm: close open ports on Enable errors
Diffstat (limited to 'src')
-rw-r--r-- | src/mm-generic-gsm.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/src/mm-generic-gsm.c b/src/mm-generic-gsm.c index 3cc0f566..e9100b34 100644 --- a/src/mm-generic-gsm.c +++ b/src/mm-generic-gsm.c @@ -665,11 +665,18 @@ mm_generic_gsm_enable_complete (MMGenericGsm *self, g_return_if_fail (MM_IS_GENERIC_GSM (self)); g_return_if_fail (info != NULL); + priv = MM_GENERIC_GSM_GET_PRIVATE (self); + if (error) { mm_modem_set_state (MM_MODEM (self), MM_MODEM_STATE_DISABLED, MM_MODEM_STATE_REASON_NONE); + if (priv->primary && mm_serial_port_is_open (priv->primary)) + mm_serial_port_close (priv->primary); + if (priv->secondary && mm_serial_port_is_open (priv->secondary)) + mm_serial_port_close (priv->secondary); + info->error = g_error_copy (error); mm_callback_info_schedule (info); return; @@ -678,8 +685,6 @@ mm_generic_gsm_enable_complete (MMGenericGsm *self, mm_generic_gsm_update_enabled_state (self, FALSE, MM_MODEM_STATE_REASON_NONE); } - priv = MM_GENERIC_GSM_GET_PRIVATE (self); - /* Open the second port here if the modem has one. We'll use it for * signal strength and registration updates when the device is connected, * but also many devices will send unsolicited registration or other |