Merge remote-tracking branch 'cros/upstream' into 'cros/master'
diff --git a/src/libmbim-glib/mbim-cid.c b/src/libmbim-glib/mbim-cid.c
index 23e97b7..8b47c5e 100644
--- a/src/libmbim-glib/mbim-cid.c
+++ b/src/libmbim-glib/mbim-cid.c
@@ -308,10 +308,12 @@
/* CID = 0 is never a valid command */
g_return_val_if_fail (cid > 0, NULL);
/* Known service required */
- g_return_val_if_fail (service > MBIM_SERVICE_INVALID, NULL);
+ g_return_val_if_fail (service >= MBIM_SERVICE_INVALID, NULL);
g_return_val_if_fail (service < MBIM_SERVICE_LAST, NULL);
switch (service) {
+ case MBIM_SERVICE_INVALID:
+ return "invalid";
case MBIM_SERVICE_BASIC_CONNECT:
return mbim_cid_basic_connect_get_string (cid);
case MBIM_SERVICE_SMS:
@@ -336,6 +338,6 @@
return mbim_cid_qmi_get_string (cid);
default:
g_assert_not_reached ();
- return FALSE;
+ return NULL;
}
}
diff --git a/src/libmbim-glib/mbim-device.c b/src/libmbim-glib/mbim-device.c
index 961e79e..013fd8a 100644
--- a/src/libmbim-glib/mbim-device.c
+++ b/src/libmbim-glib/mbim-device.c
@@ -1546,6 +1546,8 @@
if (!self->priv->iochannel && !self->priv->socket_connection && !self->priv->socket_client)
return TRUE;
+ g_debug ("[%s] channel destroyed", self->priv->path_display);
+
if (self->priv->iochannel) {
g_io_channel_shutdown (self->priv->iochannel, TRUE, &inner_error);
g_io_channel_unref (self->priv->iochannel);
@@ -1642,6 +1644,8 @@
g_simple_async_result_take_error (ctx->result, error);
else if (!mbim_message_response_get_result (response, MBIM_MESSAGE_TYPE_CLOSE_DONE, &error))
g_simple_async_result_take_error (ctx->result, error);
+ else if (!destroy_iochannel (self, &error))
+ g_simple_async_result_take_error (ctx->result, error);
else
g_simple_async_result_set_op_res_gboolean (ctx->result, TRUE);