summaryrefslogtreecommitdiff
path: root/nest/iface.c
diff options
context:
space:
mode:
authorOndrej Zajicek <santiago@crfreenet.org>2010-11-11 12:24:27 +0100
committerOndrej Zajicek <santiago@crfreenet.org>2010-11-11 12:24:27 +0100
commitfe181e7c63843ad65401cc1e400ae1ac3187122f (patch)
treedf37b8d76084521bb33e749a70ea85f04f19e16d /nest/iface.c
parentf25cb0ef9f6341648513e793a3162b32fc250d2b (diff)
Adds support for iface link check to static protocol.
Diffstat (limited to 'nest/iface.c')
-rw-r--r--nest/iface.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/nest/iface.c b/nest/iface.c
index 8e459363..c5236782 100644
--- a/nest/iface.c
+++ b/nest/iface.c
@@ -117,7 +117,7 @@ if_what_changed(struct iface *i, struct iface *j)
{
unsigned c;
- if (((i->flags ^ j->flags) & ~(IF_UP | IF_SHUTDOWN | IF_UPDATED | IF_ADMIN_UP | IF_TMP_DOWN | IF_JUST_CREATED))
+ if (((i->flags ^ j->flags) & ~(IF_UP | IF_SHUTDOWN | IF_UPDATED | IF_ADMIN_UP | IF_LINK_UP | IF_TMP_DOWN | IF_JUST_CREATED))
|| i->index != j->index)
return IF_CHANGE_TOO_MUCH;
c = 0;
@@ -213,6 +213,10 @@ if_notify_change(unsigned c, struct iface *i)
a->flags = (i->flags & ~IA_FLAGS) | (a->flags & IA_FLAGS);
ifa_notify_change(IF_CHANGE_UP, a);
}
+
+ if ((c & (IF_CHANGE_UP | IF_CHANGE_DOWN | IF_CHANGE_LINK)) == IF_CHANGE_LINK)
+ neigh_if_link(i);
+
if (c & IF_CHANGE_DOWN)
neigh_if_down(i);
}