summaryrefslogtreecommitdiffstats
path: root/proto/ospf/neighbor.c
diff options
context:
space:
mode:
authorOndrej Filip <feela@network.cz>2000-05-17 01:59:38 +0200
committerOndrej Filip <feela@network.cz>2000-05-17 01:59:38 +0200
commit18a0c0bb763d918f3a06bfeb2be2b1051a7f4629 (patch)
tree985893b7945b24a57682f585bd6cfa4efd8161c7 /proto/ospf/neighbor.c
parent8fb0c2c298fbfa133cf783a1547bc3b1c84fe466 (diff)
downloadbird-18a0c0bb763d918f3a06bfeb2be2b1051a7f4629.tar
bird-18a0c0bb763d918f3a06bfeb2be2b1051a7f4629.zip
Downing of interface should work.
Diffstat (limited to 'proto/ospf/neighbor.c')
-rw-r--r--proto/ospf/neighbor.c14
1 files changed, 12 insertions, 2 deletions
diff --git a/proto/ospf/neighbor.c b/proto/ospf/neighbor.c
index 1e9ebee..199d613 100644
--- a/proto/ospf/neighbor.c
+++ b/proto/ospf/neighbor.c
@@ -434,6 +434,17 @@ neighbor_timer_hook(timer *timer)
p=(struct proto *)(ifa->proto);
debug("%s: Inactivity timer fired on interface %s for neighbor %I.\n",
p->name, ifa->iface->name, n->rid);
+ ospf_neigh_remove(n);
+}
+
+void
+ospf_neigh_remove(struct ospf_neighbor *n)
+{
+ struct ospf_iface *ifa;
+ struct proto *p;
+
+ ifa=n->ifa;
+ p=(struct proto *)(ifa->proto);
neigh_chstate(n, NEIGHBOR_DOWN);
tm_stop(n->inactim);
rfree(n->inactim);
@@ -467,5 +478,4 @@ neighbor_timer_hook(timer *timer)
rem_node(NODE n);
mb_free(n);
debug("%s: Deleting neigbor.\n", p->name);
-}
-
+}