summaryrefslogtreecommitdiff
path: root/src/config.c
diff options
context:
space:
mode:
authorSeonah Moon <seonah1.moon@samsung.com>2017-03-14 19:31:33 +0900
committerSeonah Moon <seonah1.moon@samsung.com>2017-03-14 20:09:50 +0900
commit793489d779f0727f9f59d02df75c0e69d07f4fc0 (patch)
treea2c4fd40e50ba6483eaa3ec91f1ceaa3db580197 /src/config.c
parent6613191eff5291c5992ee403557ef04caf9e650e (diff)
downloadconnman-793489d779f0727f9f59d02df75c0e69d07f4fc0.tar.gz
connman-793489d779f0727f9f59d02df75c0e69d07f4fc0.tar.bz2
connman-793489d779f0727f9f59d02df75c0e69d07f4fc0.zip
Change-Id: If16e739fde7e9d736c66015ab1efa982e49d3482 Signed-off-by: Seonah Moon <seonah1.moon@samsung.com>
Diffstat (limited to 'src/config.c')
-rwxr-xr-xsrc/config.c25
1 files changed, 25 insertions, 0 deletions
diff --git a/src/config.c b/src/config.c
index 3818fb84..25dd1748 100755
--- a/src/config.c
+++ b/src/config.c
@@ -1097,6 +1097,20 @@ static gboolean remove_virtual_config(gpointer user_data)
return FALSE;
}
+#if defined TIZEN_EXT
+static bool __check_address_type(int address_family, const char *address)
+{
+ unsigned char buf[sizeof(struct in6_addr)] = {0, };
+ int err = 0;
+
+ err = inet_pton(address_family, address, buf);
+ if(err > 0)
+ return TRUE;
+
+ return FALSE;
+}
+#endif
+
static int try_provision_service(struct connman_config_service *config,
struct connman_service *service)
{
@@ -1279,8 +1293,19 @@ static int try_provision_service(struct connman_config_service *config,
__connman_service_nameserver_clear(service);
for (i = 0; config->nameservers[i]; i++) {
+#if defined TIZEN_EXT
+ if (__check_address_type(AF_INET, config->nameservers[i]))
+ __connman_service_nameserver_append(service,
+ config->nameservers[i], false,
+ CONNMAN_IPCONFIG_TYPE_IPV4);
+ else if (__check_address_type(AF_INET6, config->nameservers[i]))
+ __connman_service_nameserver_append(service,
+ config->nameservers[i], false,
+ CONNMAN_IPCONFIG_TYPE_IPV6);
+#else
__connman_service_nameserver_append(service,
config->nameservers[i], false);
+#endif
}
}