summaryrefslogtreecommitdiff
path: root/src/ipconfig.c
diff options
context:
space:
mode:
authorSeonah Moon <seonah1.moon@samsung.com>2017-02-20 19:36:21 +0900
committerSeonah Moon <seonah1.moon@samsung.com>2017-02-23 15:34:42 +0900
commit80b0b7544b4e77b68a4d724e6a3f45e7dd2c8f3f (patch)
treee207897dba68806072e4b8229eae46a490d44634 /src/ipconfig.c
parent21e92ee0e2531e80b5bda990a99bbe72abf31991 (diff)
downloadconnman-80b0b7544b4e77b68a4d724e6a3f45e7dd2c8f3f.tar.gz
connman-80b0b7544b4e77b68a4d724e6a3f45e7dd2c8f3f.tar.bz2
connman-80b0b7544b4e77b68a4d724e6a3f45e7dd2c8f3f.zip
[connman] Merged IPv6 related code.
1. Added code to set IPv6 gateway addess. 2. Fix IPv6 issue in case of auto-configuration. Change-Id: Ie0e1d53dd269a09600d2f08e66d73cefd6dd3c29 Signed-off-by: Seonah Moon <seonah1.moon@samsung.com>
Diffstat (limited to 'src/ipconfig.c')
-rwxr-xr-xsrc/ipconfig.c29
1 files changed, 26 insertions, 3 deletions
diff --git a/src/ipconfig.c b/src/ipconfig.c
index 8987ab1a..27d98b29 100755
--- a/src/ipconfig.c
+++ b/src/ipconfig.c
@@ -410,7 +410,20 @@ static void free_ipdevice(gpointer data)
static void __connman_ipconfig_lower_up(struct connman_ipdevice *ipdevice)
{
DBG("ipconfig ipv4 %p ipv6 %p", ipdevice->config_ipv4,
- ipdevice->config_ipv6);
+ ipdevice->config_ipv6);
+#if defined TIZEN_EXT
+ if (ipdevice->config_ipv6 != NULL &&
+ ipdevice->config_ipv6->enabled == TRUE)
+ return;
+
+ char *ifname = connman_inet_ifname(ipdevice->index);
+
+ if (__connman_device_isfiltered(ifname) == FALSE) {
+ ipdevice->ipv6_enabled = get_ipv6_state(ifname);
+ set_ipv6_state(ifname, FALSE);
+ }
+ g_free(ifname);
+#endif
}
static void __connman_ipconfig_lower_down(struct connman_ipdevice *ipdevice)
@@ -1708,6 +1721,11 @@ int __connman_ipconfig_disable(struct connman_ipconfig *ipconfig)
if (ipdevice->config_ipv6 == ipconfig) {
ipconfig_list = g_list_remove(ipconfig_list, ipconfig);
+#if defined TIZEN_EXT
+ if (ipdevice->config_ipv6->method ==
+ CONNMAN_IPCONFIG_METHOD_AUTO)
+ disable_ipv6(ipdevice->config_ipv6);
+#endif
connman_ipaddress_clear(ipdevice->config_ipv6->system);
__connman_ipconfig_unref(ipdevice->config_ipv6);
ipdevice->config_ipv6 = NULL;
@@ -2123,7 +2141,10 @@ int __connman_ipconfig_set_config(struct connman_ipconfig *ipconfig,
case CONNMAN_IPCONFIG_METHOD_OFF:
ipconfig->method = method;
-
+#if defined TIZEN_EXT
+ if (ipconfig->type == CONNMAN_IPCONFIG_TYPE_IPV6)
+ disable_ipv6(ipconfig);
+#endif
break;
case CONNMAN_IPCONFIG_METHOD_AUTO:
@@ -2133,7 +2154,9 @@ int __connman_ipconfig_set_config(struct connman_ipconfig *ipconfig,
ipconfig->method = method;
if (privacy_string)
ipconfig->ipv6_privacy_config = privacy;
-
+#if defined TIZEN_EXT
+ enable_ipv6(ipconfig);
+#endif
break;
case CONNMAN_IPCONFIG_METHOD_MANUAL: