diff options
author | Felix Fietkau <nbd@openwrt.org> | 2012-04-18 00:01:14 +0200 |
---|---|---|
committer | Felix Fietkau <nbd@openwrt.org> | 2012-04-18 00:01:14 +0200 |
commit | 10c15e535b04041795e3a85b2fb496bd6d856417 (patch) | |
tree | e0d3edc9d6394ffeab04d8b67b6e5ad828d654ef /interface.c | |
parent | bc214ca470015b12a4f905f57ba6f2352c60f5a5 (diff) | |
download | netifd-10c15e535b04041795e3a85b2fb496bd6d856417.tar.gz |
fix flushing routes/addresses on connection loss
Diffstat (limited to 'interface.c')
-rw-r--r-- | interface.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/interface.c b/interface.c index 6b95a6d..4605a66 100644 --- a/interface.c +++ b/interface.c @@ -311,8 +311,8 @@ interface_proto_cb(struct interface_proto_state *state, enum interface_proto_eve 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); + system_flush_routes(); interface_handle_config_change(iface); break; case IFPEV_LINK_LOST: @@ -322,6 +322,8 @@ interface_proto_cb(struct interface_proto_state *state, enum interface_proto_eve 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); + system_flush_routes(); iface->state = IFS_SETUP; break; } |