projects
/
project
/
netifd.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
move route interface assignment to the vlist update
[project/netifd.git]
/
interface.c
diff --git
a/interface.c
b/interface.c
index
0aa5c5a
..
10a9174
100644
(file)
--- a/
interface.c
+++ b/
interface.c
@@
-142,7
+142,10
@@
mark_interface_down(struct interface *iface)
{
if (iface->state == IFS_UP)
interface_event(iface, IFEV_DOWN);
{
if (iface->state == IFS_UP)
interface_event(iface, IFEV_DOWN);
+ interface_ip_set_enabled(&iface->config_ip, false);
+ interface_ip_flush(&iface->proto_ip);
interface_flush_state(iface);
interface_flush_state(iface);
+ system_flush_routes();
iface->state = IFS_DOWN;
}
iface->state = IFS_DOWN;
}
@@
-158,8
+161,6
@@
__interface_set_down(struct interface *iface, bool force)
if (iface->state == IFS_UP)
interface_event(iface, IFEV_DOWN);
iface->state = IFS_TEARDOWN;
if (iface->state == IFS_UP)
interface_event(iface, IFEV_DOWN);
iface->state = IFS_TEARDOWN;
- interface_ip_flush(&iface->config_ip);
- interface_ip_flush(&iface->proto_ip);
interface_proto_event(iface->proto, PROTO_CMD_TEARDOWN, force);
if (force)
interface_flush_state(iface);
interface_proto_event(iface->proto, PROTO_CMD_TEARDOWN, force);
if (force)
interface_flush_state(iface);
@@
-310,8
+311,6
@@
interface_proto_cb(struct interface_proto_state *state, enum interface_proto_eve
return;
netifd_log_message(L_NOTICE, "Interface '%s' is now down\n", iface->name);
return;
netifd_log_message(L_NOTICE, "Interface '%s' is now down\n", iface->name);
- interface_ip_set_enabled(&iface->config_ip, false);
- system_flush_routes();
mark_interface_down(iface);
interface_handle_config_change(iface);
break;
mark_interface_down(iface);
interface_handle_config_change(iface);
break;
@@
-320,8
+319,7
@@
interface_proto_cb(struct interface_proto_state *state, enum interface_proto_eve
return;
netifd_log_message(L_NOTICE, "Interface '%s' has lost the connection\n", iface->name);
return;
netifd_log_message(L_NOTICE, "Interface '%s' has lost the connection\n", iface->name);
- if (iface->state == IFS_UP)
- interface_event(iface, IFEV_DOWN);
+ mark_interface_down(iface);
iface->state = IFS_SETUP;
break;
}
iface->state = IFS_SETUP;
break;
}
@@
-549,15
+547,7
@@
interface_update_start(struct interface *iface)
void
interface_update_complete(struct interface *iface)
{
void
interface_update_complete(struct interface *iface)
{
- struct device_route *route;
-
interface_ip_update_complete(&iface->proto_ip);
interface_ip_update_complete(&iface->proto_ip);
- vlist_for_each_element(&iface->config_ip.route, route, node) {
- if (iface->l3_dev.dev) {
- system_add_route(iface->l3_dev.dev, route);
- route->enabled = true;
- }
- }
}
static void
}
static void