X-Git-Url: http://git.openwrt.org/?p=project%2Fnetifd.git;a=blobdiff_plain;f=interface.c;h=a5675f7a77a35cc90d441fd755a0b028294219ab;hp=acfe8b156457d60c1c788899d5a728e4ef9bdd06;hb=a7d0fa57b4bbc3c61a94dfe4d47490b296e12b6c;hpb=f505119b07b89ad23f4264e77b0bf0f0c0400399 diff --git a/interface.c b/interface.c index acfe8b1..a5675f7 100644 --- a/interface.c +++ b/interface.c @@ -185,6 +185,13 @@ interface_proto_cb(struct interface_proto_state *state, enum interface_proto_eve mark_interface_down(iface); break; + case IFPEV_LINK_LOST: + if (iface->state != IFS_UP) + return; + + iface->state = IFS_SETUP; + interface_event(iface, IFEV_DOWN); + break; } } @@ -219,7 +226,7 @@ interface_alloc(const char *name, struct blob_attr *attr) iface = calloc(1, sizeof(*iface)); iface->main_dev.cb = interface_cb; - iface->l3_iface = &iface->main_dev; + iface->l3_dev = &iface->main_dev; strncpy(iface->name, name, sizeof(iface->name) - 1); list_add_tail(&iface->list, &interfaces); INIT_LIST_HEAD(&iface->errors);