From 414f0a83700e362fa40e46718a193d903e92fbc4 Mon Sep 17 00:00:00 2001 From: Jukka Rissanen Date: Thu, 5 Jan 2012 13:38:15 +0200 Subject: [PATCH] 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. --- src/ipconfig.c | 6 +++--- src/network.c | 4 +++- 2 files changed, 6 insertions(+), 4 deletions(-) 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; -- 2.7.4