aboutsummaryrefslogtreecommitdiff
path: root/src/mm-broadband-modem-qmi.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/mm-broadband-modem-qmi.c')
-rw-r--r--src/mm-broadband-modem-qmi.c27
1 files changed, 17 insertions, 10 deletions
diff --git a/src/mm-broadband-modem-qmi.c b/src/mm-broadband-modem-qmi.c
index 82d8a3c8..98e53bba 100644
--- a/src/mm-broadband-modem-qmi.c
+++ b/src/mm-broadband-modem-qmi.c
@@ -6584,16 +6584,6 @@ common_enable_disable_unsolicited_events_3gpp_profile_manager (MMBroadbandModemQ
QmiClient *client_pdc = NULL;
QmiClient *client_wds = NULL;
- if (!mm_shared_qmi_ensure_client (MM_SHARED_QMI (self),
- QMI_SERVICE_PDC, &client_pdc,
- callback, user_data))
- return;
-
- if (!mm_shared_qmi_ensure_client (MM_SHARED_QMI (self),
- QMI_SERVICE_WDS, &client_wds,
- callback, user_data))
- return;
-
task = g_task_new (self, NULL, callback, user_data);
if (enable == self->priv->profile_manager_unsolicited_events_enabled) {
@@ -6604,6 +6594,23 @@ common_enable_disable_unsolicited_events_3gpp_profile_manager (MMBroadbandModemQ
return;
}
+ client_pdc = mm_shared_qmi_peek_client (MM_SHARED_QMI (self),
+ QMI_SERVICE_PDC,
+ MM_PORT_QMI_FLAG_DEFAULT,
+ NULL);
+ client_wds = mm_shared_qmi_peek_client (MM_SHARED_QMI (self),
+ QMI_SERVICE_WDS,
+ MM_PORT_QMI_FLAG_DEFAULT,
+ NULL);
+
+ /* Fail if none of the clients can be allocated */
+ if (!client_pdc && !client_wds) {
+ g_task_return_new_error (task, MM_CORE_ERROR, MM_CORE_ERROR_FAILED,
+ "No support for profile refresh events");
+ g_object_unref (task);
+ return;
+ }
+
ctx = g_new0 (RegisterProfileRefreshContext, 1);
ctx->step = REGISTER_PROFILE_REFRESH_STEP_FIRST;
ctx->enable = enable;