diff options
Diffstat (limited to 'interface-ip.c')
-rw-r--r-- | interface-ip.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/interface-ip.c b/interface-ip.c index 3771b5d..a6a7dca 100644 --- a/interface-ip.c +++ b/interface-ip.c @@ -457,6 +457,9 @@ interface_update_proto_addr(struct vlist_tree *tree, iface = ip->iface; dev = iface->l3_dev.dev; + if (!node_new || !node_old) + iface->updated |= IUF_ADDRESS; + if (node_new) { a_new = container_of(node_new, struct device_addr, node); @@ -559,6 +562,9 @@ interface_update_proto_route(struct vlist_tree *tree, iface = ip->iface; dev = iface->l3_dev.dev; + if (!node_new || !node_old) + iface->updated |= IUF_ROUTE; + route_old = container_of(node_old, struct device_route, node); route_new = container_of(node_new, struct device_route, node); @@ -829,6 +835,10 @@ interface_update_prefix(struct vlist_tree *tree, prefix_old = container_of(node_old, struct device_prefix, node); prefix_new = container_of(node_new, struct device_prefix, node); + struct interface_ip_settings *ip = container_of(tree, struct interface_ip_settings, prefix); + if (tree && (!node_new || !node_old)) + ip->iface->updated |= IUF_PREFIX; + struct device_route route; memset(&route, 0, sizeof(route)); route.flags = DEVADDR_INET6; |