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 cced765..2443735 100644
--- a/src/ipconfig.c
+++ b/src/ipconfig.c
@@ -1464,8 +1464,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:
@@ -1494,8 +1494,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:
@@ -1522,8 +1522,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 b14d8bb..ee2bab1 100644
--- a/src/network.c
+++ b/src/network.c
@@ -1474,8 +1474,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;
-- 
1.7.1

_______________________________________________
connman mailing list
connman@connman.net
http://lists.connman.net/listinfo/connman

Reply via email to