diff options
author | Ondrej Zajicek <santiago@crfreenet.org> | 2010-11-11 12:24:27 +0100 |
---|---|---|
committer | Ondrej Zajicek <santiago@crfreenet.org> | 2010-11-11 12:24:27 +0100 |
commit | fe181e7c63843ad65401cc1e400ae1ac3187122f (patch) | |
tree | df37b8d76084521bb33e749a70ea85f04f19e16d /nest/iface.c | |
parent | f25cb0ef9f6341648513e793a3162b32fc250d2b (diff) |
Adds support for iface link check to static protocol.
Diffstat (limited to 'nest/iface.c')
-rw-r--r-- | nest/iface.c | 6 |
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); } |