diff options
author | Aleksander Morgado <aleksander@lanedo.com> | 2012-12-27 09:37:00 +0100 |
---|---|---|
committer | Aleksander Morgado <aleksander@lanedo.com> | 2012-12-27 09:37:00 +0100 |
commit | e4df2ffa18a3f6b87bf0b61c3271e1f5aa0c7cf7 (patch) | |
tree | e4e76aa327f2586b3e11cf87c44cbdfb4fe188e2 | |
parent | 32ebe5b6cae3c0a1d3a3e450e6d9dd74b8f86b34 (diff) |
qmi-port: ignore errors when opening device and device ends up openzte-qmi
If we try to open the QMI device and we fail in one of the internal steps
afterwards (e.g. set data format), just log it and ignore it for now.
-rw-r--r-- | src/mm-qmi-port.c | 19 |
1 files changed, 15 insertions, 4 deletions
diff --git a/src/mm-qmi-port.c b/src/mm-qmi-port.c index a26fdaba..e9da58da 100644 --- a/src/mm-qmi-port.c +++ b/src/mm-qmi-port.c @@ -200,11 +200,22 @@ qmi_device_open_ready (QmiDevice *qmi_device, ctx->self->priv->opening = FALSE; if (!qmi_device_open_finish (qmi_device, res, &error)) { - g_clear_object (&ctx->self->priv->qmi_device); - g_simple_async_result_take_error (ctx->result, error); - } else - g_simple_async_result_set_op_res_gboolean (ctx->result, TRUE); + /* Error may have been in the setup steps after really opening the + * device (e.g. during data format setting). In this case, just log + * the error and keep on */ + if (!qmi_device_is_open (ctx->self->priv->qmi_device)) { + g_clear_object (&ctx->self->priv->qmi_device); + g_simple_async_result_take_error (ctx->result, error); + port_open_context_complete_and_free (ctx); + return; + } + + /* Not critical */ + mm_warn ("Error setting up open port: '%s'", error->message); + g_error_free (error); + } + g_simple_async_result_set_op_res_gboolean (ctx->result, TRUE); port_open_context_complete_and_free (ctx); } |