summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/libmbim-glib/mbim-proxy.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/src/libmbim-glib/mbim-proxy.c b/src/libmbim-glib/mbim-proxy.c
index e1e0db1..fdbc7d9 100644
--- a/src/libmbim-glib/mbim-proxy.c
+++ b/src/libmbim-glib/mbim-proxy.c
@@ -542,6 +542,11 @@ internal_device_open_caps_query_ready (MbimDevice *device,
{
GError *error = NULL;
MbimMessage *response;
+ GList *l;
+
+ /* Always unblock all signals from all clients */
+ for (l = ctx->self->priv->clients; l; l = g_list_next (l))
+ g_signal_handlers_unblock_by_func (device, client_error_cb, l->data);
response = mbim_device_command_finish (device, res, &error);
if (!response || !mbim_message_response_get_result (response, MBIM_MESSAGE_TYPE_COMMAND_DONE, &error)) {
@@ -592,6 +597,13 @@ internal_device_open (MbimProxy *self,
* (loading caps in this case). */
if (mbim_device_is_open (device)) {
MbimMessage *message;
+ GList *l;
+
+ /* Avoid getting notified of errors in this internal check, as we're
+ * already going to check for the NotOpened error ourselves in the
+ * ready callback, and we'll reopen silently if we find this. */
+ for (l = self->priv->clients; l; l = g_list_next (l))
+ g_signal_handlers_block_by_func (device, client_error_cb, l->data);
g_debug ("checking device caps during client device open...");
message = mbim_message_device_caps_query_new (NULL);