diff options
author | Aleksander Morgado <aleksander@aleksander.es> | 2019-11-27 08:56:14 +0100 |
---|---|---|
committer | Aleksander Morgado <aleksander@aleksander.es> | 2019-11-27 09:03:22 +0100 |
commit | 8f21f40674d7b33b58762fff2e7a8487d6b7efbd (patch) | |
tree | e78265901755afc153d4e96cdcc343652d9860b3 | |
parent | c523d5bdc31946f4106976c4f38f34b8f61690d7 (diff) |
broadband-modem-mbim: avoid LTE attach config/status if unsupported
If we know that the LTE attach status/configuration CIDs in the Basic
Connect Extensions service are unsupported, don't even try to use
them, so that we avoid timeouts in the requests.
-rw-r--r-- | src/mm-broadband-modem-mbim.c | 49 |
1 files changed, 37 insertions, 12 deletions
diff --git a/src/mm-broadband-modem-mbim.c b/src/mm-broadband-modem-mbim.c index 7e5f665e..7ac971e0 100644 --- a/src/mm-broadband-modem-mbim.c +++ b/src/mm-broadband-modem-mbim.c @@ -2449,19 +2449,27 @@ lte_attach_status_query_ready (MbimDevice *device, } static void -modem_3gpp_load_initial_eps_bearer (MMIfaceModem3gpp *self, +modem_3gpp_load_initial_eps_bearer (MMIfaceModem3gpp *_self, GAsyncReadyCallback callback, gpointer user_data) { - MbimDevice *device; - MbimMessage *message; - GTask *task; + MMBroadbandModemMbim *self = MM_BROADBAND_MODEM_MBIM (_self); + MbimDevice *device; + MbimMessage *message; + GTask *task; if (!peek_device (self, &device, callback, user_data)) return; task = g_task_new (self, NULL, callback, user_data); + if (!self->priv->is_lte_attach_status_supported) { + g_task_return_new_error (task, MM_CORE_ERROR, MM_CORE_ERROR_UNSUPPORTED, + "LTE attach status is unsupported"); + g_object_unref (task); + return; + } + message = mbim_message_ms_basic_connect_extensions_lte_attach_status_query_new (NULL); mbim_device_command (device, message, @@ -2569,19 +2577,27 @@ lte_attach_configuration_query_ready (MbimDevice *device, } static void -modem_3gpp_load_initial_eps_bearer_settings (MMIfaceModem3gpp *self, +modem_3gpp_load_initial_eps_bearer_settings (MMIfaceModem3gpp *_self, GAsyncReadyCallback callback, gpointer user_data) { - MbimDevice *device; - MbimMessage *message; - GTask *task; + MMBroadbandModemMbim *self = MM_BROADBAND_MODEM_MBIM (_self); + MbimDevice *device; + MbimMessage *message; + GTask *task; if (!peek_device (self, &device, callback, user_data)) return; task = g_task_new (self, NULL, callback, user_data); + if (!self->priv->is_lte_attach_status_supported) { + g_task_return_new_error (task, MM_CORE_ERROR, MM_CORE_ERROR_UNSUPPORTED, + "LTE attach configuration is unsupported"); + g_object_unref (task); + return; + } + message = mbim_message_ms_basic_connect_extensions_lte_attach_configuration_query_new (NULL); mbim_device_command (device, message, @@ -2731,19 +2747,28 @@ before_set_lte_attach_configuration_query_ready (MbimDevice *device, } static void -modem_3gpp_set_initial_eps_bearer_settings (MMIfaceModem3gpp *self, +modem_3gpp_set_initial_eps_bearer_settings (MMIfaceModem3gpp *_self, MMBearerProperties *config, GAsyncReadyCallback callback, gpointer user_data) { - GTask *task; - MbimDevice *device; - MbimMessage *message; + MMBroadbandModemMbim *self = MM_BROADBAND_MODEM_MBIM (_self); + GTask *task; + MbimDevice *device; + MbimMessage *message; if (!peek_device (self, &device, callback, user_data)) return; task = g_task_new (self, NULL, callback, user_data); + + if (!self->priv->is_lte_attach_status_supported) { + g_task_return_new_error (task, MM_CORE_ERROR, MM_CORE_ERROR_UNSUPPORTED, + "LTE attach configuration is unsupported"); + g_object_unref (task); + return; + } + g_task_set_task_data (task, g_object_ref (config), g_object_unref); message = mbim_message_ms_basic_connect_extensions_lte_attach_configuration_query_new (NULL); |