switch (ev) {
case IFPEV_UP:
if (iface->state != IFS_SETUP) {
- interface_event(iface, IFEV_UPDATE);
+ if (iface->state == IFS_UP && iface->updated)
+ interface_event(iface, IFEV_UPDATE);
return;
}
}
void
-interface_update_start(struct interface *iface)
+interface_update_start(struct interface *iface, const bool keep_old)
{
iface->updated = 0;
- interface_ip_update_start(&iface->proto_ip);
+
+ if (!keep_old)
+ interface_ip_update_start(&iface->proto_ip);
}
void