X-Git-Url: http://git.openwrt.org/?a=blobdiff_plain;f=interface-ip.c;h=26a28654bcecac86a839e69a17c09c3b2588965b;hb=e7dbda3d64e98276570cba3b0c0f94461f77d645;hp=eb585f566dad962e4348d65d2fd2dff7931a58ad;hpb=2bd3327f35266dc284ab309ea5ed2008d8b40374;p=project%2Fnetifd.git diff --git a/interface-ip.c b/interface-ip.c index eb585f5..26a2865 100644 --- a/interface-ip.c +++ b/interface-ip.c @@ -1264,6 +1264,9 @@ void interface_ip_set_enabled(struct interface_ip_settings *ip, bool enabled) vlist_for_each_element(&ip->addr, addr, node) { bool v6 = ((addr->flags & DEVADDR_FAMILY) == DEVADDR_INET6) ? true : false; + if (addr->flags & DEVADDR_EXTERNAL) + continue; + if (addr->enabled == enabled) continue; @@ -1289,6 +1292,9 @@ void interface_ip_set_enabled(struct interface_ip_settings *ip, bool enabled) vlist_for_each_element(&ip->route, route, node) { bool _enabled = enabled; + if (route->flags & DEVADDR_EXTERNAL) + continue; + if (!enable_route(ip, route)) _enabled = false;