summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/config.c20
-rw-r--r--src/service.c7
2 files changed, 27 insertions, 0 deletions
diff --git a/src/config.c b/src/config.c
index 0126711c..11f0bd84 100644
--- a/src/config.c
+++ b/src/config.c
@@ -1285,6 +1285,12 @@ static int try_provision_service(struct connman_config_service *config,
return -ENOENT;
}
+#if defined TIZEN_EXT
+ struct connman_ipconfig *ip6config = __connman_service_get_ip6config(service);
+ enum connman_ipconfig_method ipv6_method = __connman_ipconfig_get_method(ip6config);
+ if (ipv6_method == CONNMAN_IPCONFIG_METHOD_MANUAL)
+ goto ipv6_out;
+#endif
if (!config->ipv6_address) {
connman_network_set_ipv6_method(network,
CONNMAN_IPCONFIG_METHOD_AUTO);
@@ -1321,6 +1327,9 @@ static int try_provision_service(struct connman_config_service *config,
connman_ipaddress_free(address);
}
+#if defined TIZEN_EXT
+ipv6_out:
+#endif
if (config->ipv6_privacy) {
struct connman_ipconfig *ipconfig;
@@ -1330,6 +1339,12 @@ static int try_provision_service(struct connman_config_service *config,
config->ipv6_privacy);
}
+#if defined TIZEN_EXT
+ struct connman_ipconfig *ip4config = __connman_service_get_ip4config(service);
+ enum connman_ipconfig_method ipv4_method = __connman_ipconfig_get_method(ip4config);
+ if (ipv4_method == CONNMAN_IPCONFIG_METHOD_MANUAL)
+ goto ipv4_out;
+#endif
if (!config->ipv4_address) {
connman_network_set_ipv4_method(network,
CONNMAN_IPCONFIG_METHOD_DHCP);
@@ -1366,6 +1381,9 @@ static int try_provision_service(struct connman_config_service *config,
connman_ipaddress_free(address);
}
+#if defined TIZEN_EXT
+ipv4_out:
+#endif
__connman_service_disconnect(service);
service_id = __connman_service_get_ident(service);
@@ -1432,7 +1450,9 @@ static int try_provision_service(struct connman_config_service *config,
return 0;
}
+#if !defined TIZEN_EXT
__connman_service_set_immutable(service, true);
+#endif
if (type == CONNMAN_SERVICE_TYPE_ETHERNET ||
type == CONNMAN_SERVICE_TYPE_GADGET) {
diff --git a/src/service.c b/src/service.c
index d6c03223..777db8f5 100644
--- a/src/service.c
+++ b/src/service.c
@@ -8607,8 +8607,15 @@ static int service_register(struct connman_service *service)
DBG("path %s", service->path);
+#if defined TIZEN_EXT
+ service_load(service);
+ int ret = __connman_config_provision_service(service);
+ if (ret < 0)
+ DBG("Failed to provision service");
+#else
if (__connman_config_provision_service(service) < 0)
service_load(service);
+#endif
g_dbus_register_interface(connection, service->path,
CONNMAN_SERVICE_INTERFACE,