---
 src/ipconfig.c |    9 +++++++++
 1 files changed, 9 insertions(+), 0 deletions(-)

diff --git a/src/ipconfig.c b/src/ipconfig.c
index 7a14c42..2c0ede6 100644
--- a/src/ipconfig.c
+++ b/src/ipconfig.c
@@ -616,6 +616,15 @@ void __connman_ipconfig_deladdr(int index, int family, 
const char *label,
        ipdevice->address_list = g_slist_remove(ipdevice->address_list,
                                                                ipaddress);
 
+       if (family == AF_INET6 && ipdevice->config_ipv6 &&
+               ipdevice->config_ipv6->system &&
+               ipdevice->config_ipv6->system->prefixlen ==
+                                               ipaddress->prefixlen &&
+               g_strcmp0(ipdevice->config_ipv6->system->local,
+                               ipaddress->local) == 0) {
+               connman_ipaddress_clear(ipdevice->config_ipv6->system);
+       }
+
        connman_ipaddress_free(ipaddress);
 
        connman_info("%s {del} address %s/%u label %s", ipdevice->ifname,
-- 
1.7.0.4

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

Reply via email to