A service that has been provisioned via other means than NFC is marked
immutable and no further modifications are allowed except those
specified in __connman_service_load_modifiable().

Setting a service to immutable needs to happen after all necessary
configuration is done as generic configuration functions which also
check the immutable status are used.
---
 src/config.c | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

diff --git a/src/config.c b/src/config.c
index 9d1759f..93a788a 100644
--- a/src/config.c
+++ b/src/config.c
@@ -1263,9 +1263,6 @@ static int try_provision_service(struct 
connman_config_service *config,
                g_slist_prepend(config->service_identifiers,
                                g_strdup(service_id));
 
-       if (!config->virtual)
-               __connman_service_set_immutable(service, true);
-
        __connman_service_set_favorite_delayed(service, true, true);
 
        __connman_service_set_config(service, config->config_ident,
@@ -1314,6 +1311,8 @@ static int try_provision_service(struct 
connman_config_service *config,
                return 0;
        }
 
+       __connman_service_set_immutable(service, true);
+
        if (type == CONNMAN_SERVICE_TYPE_ETHERNET ||
                        type == CONNMAN_SERVICE_TYPE_GADGET) {
                __connman_service_connect(service,
-- 
1.9.1

_______________________________________________
connman mailing list
connman@connman.net
https://lists.connman.net/mailman/listinfo/connman

Reply via email to