From: Jukka Rissanen Date: Thu, 5 Jan 2012 11:38:15 +0000 (+0200) Subject: dhcpv6: Allow address setting in IPv6 auto mode. X-Git-Tag: 0.79~222 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=414f0a83700e362fa40e46718a193d903e92fbc4;hp=53f38ce0bc6505c8b8a7342b0243df442b7db5a4;p=platform%2Fupstream%2Fconnman.git dhcpv6: Allow address setting in IPv6 auto mode. The DHCPv6 is used when doing autoconfiguration so we must allow address setting/unsetting in auto mode. --- diff --git a/src/ipconfig.c b/src/ipconfig.c index 94c0c2d..ba76f76 100644 --- a/src/ipconfig.c +++ b/src/ipconfig.c @@ -1448,8 +1448,8 @@ int __connman_ipconfig_address_add(struct connman_ipconfig *ipconfig) switch (ipconfig->method) { case CONNMAN_IPCONFIG_METHOD_UNKNOWN: case CONNMAN_IPCONFIG_METHOD_OFF: - case CONNMAN_IPCONFIG_METHOD_AUTO: break; + case CONNMAN_IPCONFIG_METHOD_AUTO: case CONNMAN_IPCONFIG_METHOD_FIXED: case CONNMAN_IPCONFIG_METHOD_DHCP: case CONNMAN_IPCONFIG_METHOD_MANUAL: @@ -1478,8 +1478,8 @@ int __connman_ipconfig_address_remove(struct connman_ipconfig *ipconfig) switch (ipconfig->method) { case CONNMAN_IPCONFIG_METHOD_UNKNOWN: case CONNMAN_IPCONFIG_METHOD_OFF: - case CONNMAN_IPCONFIG_METHOD_AUTO: break; + case CONNMAN_IPCONFIG_METHOD_AUTO: case CONNMAN_IPCONFIG_METHOD_FIXED: case CONNMAN_IPCONFIG_METHOD_DHCP: case CONNMAN_IPCONFIG_METHOD_MANUAL: @@ -1506,8 +1506,8 @@ int __connman_ipconfig_address_unset(struct connman_ipconfig *ipconfig) switch (ipconfig->method) { case CONNMAN_IPCONFIG_METHOD_UNKNOWN: case CONNMAN_IPCONFIG_METHOD_OFF: - case CONNMAN_IPCONFIG_METHOD_AUTO: break; + case CONNMAN_IPCONFIG_METHOD_AUTO: case CONNMAN_IPCONFIG_METHOD_FIXED: case CONNMAN_IPCONFIG_METHOD_DHCP: case CONNMAN_IPCONFIG_METHOD_MANUAL: diff --git a/src/network.c b/src/network.c index 2637ba5..764fd96 100644 --- a/src/network.c +++ b/src/network.c @@ -1486,8 +1486,10 @@ int __connman_network_clear_ipconfig(struct connman_network *network, case CONNMAN_IPCONFIG_METHOD_UNKNOWN: case CONNMAN_IPCONFIG_METHOD_OFF: case CONNMAN_IPCONFIG_METHOD_FIXED: - case CONNMAN_IPCONFIG_METHOD_AUTO: return -EINVAL; + case CONNMAN_IPCONFIG_METHOD_AUTO: + release_dhcpv6(network); + break; case CONNMAN_IPCONFIG_METHOD_MANUAL: __connman_ipconfig_address_remove(ipconfig); break;