X-Git-Url: http://git.openwrt.org/?a=blobdiff_plain;f=interface.c;h=900a523dc4252280277ca1cf559b9111929e219b;hb=08d8f476b6aa0d701b20cda5f706db853ade1911;hp=593b0490c85d8cc30dd338979aaea6b560e50866;hpb=20a1bac4810e98a463380e5d0f1f77c72ac31941;p=project%2Fnetifd.git diff --git a/interface.c b/interface.c index 593b049..900a523 100644 --- a/interface.c +++ b/interface.c @@ -241,6 +241,7 @@ interface_event(struct interface *iface, enum interface_event ev) adev = iface->l3_dev.dev; /* fall through */ case IFEV_DOWN: + case IFEV_UP_FAILED: alias_notify_device(iface->name, adev); break; default: @@ -268,6 +269,8 @@ mark_interface_down(struct interface *iface) iface->state = IFS_DOWN; if (state == IFS_UP) interface_event(iface, IFEV_DOWN); + else + interface_event(iface, IFEV_UP_FAILED); interface_ip_set_enabled(&iface->config_ip, false); interface_ip_set_enabled(&iface->proto_ip, false); interface_ip_flush(&iface->proto_ip); @@ -557,6 +560,7 @@ interface_alias_cb(struct interface_user *dep, struct interface *iface, enum int interface_set_available(alias, true); break; case IFEV_DOWN: + case IFEV_UP_FAILED: interface_set_available(alias, false); interface_set_main_dev(alias, NULL); break;