projects
/
project
/
netifd.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
add support for externally managed ip addresses and routes
[project/netifd.git]
/
interface-ip.c
diff --git
a/interface-ip.c
b/interface-ip.c
index
e651d39
..
2e2e9d8
100644
(file)
--- a/
interface-ip.c
+++ b/
interface-ip.c
@@
-24,13
+24,15
@@
interface_update_proto_addr(struct vlist_tree *tree,
if (node_old) {
addr = container_of(node_old, struct device_addr, node);
if (node_old) {
addr = container_of(node_old, struct device_addr, node);
- system_del_address(dev, addr);
+ if (!(addr->flags & DEVADDR_EXTERNAL))
+ system_del_address(dev, addr);
free(addr);
}
if (node_new) {
addr = container_of(node_new, struct device_addr, node);
free(addr);
}
if (node_new) {
addr = container_of(node_new, struct device_addr, node);
- system_add_address(dev, addr);
+ if (!(addr->flags & DEVADDR_EXTERNAL))
+ system_add_address(dev, addr);
}
}
}
}
@@
-48,13
+50,15
@@
interface_update_proto_route(struct vlist_tree *tree,
if (node_old) {
route = container_of(node_old, struct device_route, node);
if (node_old) {
route = container_of(node_old, struct device_route, node);
- system_del_route(dev, route);
+ if (!(route->flags & DEVADDR_EXTERNAL))
+ system_del_route(dev, route);
free(route);
}
if (node_new) {
route = container_of(node_new, struct device_route, node);
free(route);
}
if (node_new) {
route = container_of(node_new, struct device_route, node);
- system_add_route(dev, route);
+ if (!(route->flags & DEVADDR_EXTERNAL))
+ system_add_route(dev, route);
}
}
}
}