diff options
author | Seonah Moon <seonah1.moon@samsung.com> | 2017-02-20 19:36:21 +0900 |
---|---|---|
committer | Seonah Moon <seonah1.moon@samsung.com> | 2017-02-23 15:34:42 +0900 |
commit | 80b0b7544b4e77b68a4d724e6a3f45e7dd2c8f3f (patch) | |
tree | e207897dba68806072e4b8229eae46a490d44634 /src/ipconfig.c | |
parent | 21e92ee0e2531e80b5bda990a99bbe72abf31991 (diff) | |
download | connman-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-x | src/ipconfig.c | 29 |
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: |