aboutsummaryrefslogtreecommitdiff
path: root/src/mm-iface-modem-location.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/mm-iface-modem-location.c')
-rw-r--r--src/mm-iface-modem-location.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/mm-iface-modem-location.c b/src/mm-iface-modem-location.c
index 8fe374ef..8867a501 100644
--- a/src/mm-iface-modem-location.c
+++ b/src/mm-iface-modem-location.c
@@ -1746,6 +1746,7 @@ interface_initialization_step (GTask *task)
{
MMIfaceModemLocation *self;
InitializationContext *ctx;
+ MMModemLocationSource existing_capabilities;
/* Don't run new steps if we're cancelled */
if (g_task_return_error_if_cancelled (task)) {
@@ -1765,8 +1766,10 @@ interface_initialization_step (GTask *task)
/* Location capabilities value is meant to be loaded only once during
* the whole lifetime of the modem. Therefore, if we already have it
* loaded, don't try to load it again. */
- if (!mm_gdbus_modem_location_get_capabilities (ctx->skeleton) &&
- MM_IFACE_MODEM_LOCATION_GET_INTERFACE (self)->load_capabilities &&
+ existing_capabilities = mm_gdbus_modem_location_get_capabilities (ctx->skeleton);
+ if (existing_capabilities != MM_MODEM_LOCATION_SOURCE_NONE) {
+ ctx->capabilities = existing_capabilities;
+ } else if (MM_IFACE_MODEM_LOCATION_GET_INTERFACE (self)->load_capabilities &&
MM_IFACE_MODEM_LOCATION_GET_INTERFACE (self)->load_capabilities_finish) {
MM_IFACE_MODEM_LOCATION_GET_INTERFACE (self)->load_capabilities (
self,