Signed-off-by: Hans Dedecker <dedeckeh@gmail.com>
struct device_addr *addr;
struct device_route *route;
struct device *dev;
struct device_addr *addr;
struct device_route *route;
struct device *dev;
+ struct interface *iface;
- dev = ip->iface->l3_dev.dev;
+ iface = ip->iface;
+ dev = iface->l3_dev.dev;
if (addr->enabled == enabled)
continue;
if (addr->enabled == enabled)
continue;
system_add_address(dev, addr);
system_add_address(dev, addr);
+ if ((addr->flags & DEVADDR_OFFLINK) || iface->metric)
+ interface_handle_subnet_route(iface, addr, true);
+ } else {
+ interface_handle_subnet_route(iface, addr, false);
system_del_address(dev, addr);
system_del_address(dev, addr);
addr->enabled = enabled;
}
addr->enabled = enabled;
}