summaryrefslogtreecommitdiff
path: root/usr.sbin/ospfd/rde_spf.c
diff options
context:
space:
mode:
authorClaudio Jeker <claudio@cvs.openbsd.org>2007-01-29 13:04:14 +0000
committerClaudio Jeker <claudio@cvs.openbsd.org>2007-01-29 13:04:14 +0000
commit632325e947189bafd423a159cc999fe483a56706 (patch)
tree826d078d8858d56c17308080a7c7db315b708fe4 /usr.sbin/ospfd/rde_spf.c
parentfcf9ed3f0ab339227a713314227f6add0093423c (diff)
Do not link from the LS DB to outside structures that may vanish before
the actual LS DB entry is removed. In particular a neighbor may be removed at any time -- we were lucky because we kept down neighbors around for another 24h. Reload support unhided this problem again. Just copy the needed info into the vertex. Pointing to the area is save as the vertex is part of the area itself and removed when the area is removed. OK norby@
Diffstat (limited to 'usr.sbin/ospfd/rde_spf.c')
-rw-r--r--usr.sbin/ospfd/rde_spf.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/usr.sbin/ospfd/rde_spf.c b/usr.sbin/ospfd/rde_spf.c
index e5296e3f84d..14b71b4d7b6 100644
--- a/usr.sbin/ospfd/rde_spf.c
+++ b/usr.sbin/ospfd/rde_spf.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: rde_spf.c,v 1.56 2007/01/24 12:05:10 claudio Exp $ */
+/* $OpenBSD: rde_spf.c,v 1.57 2007/01/29 13:04:13 claudio Exp $ */
/*
* Copyright (c) 2005 Esben Norby <norby@openbsd.org>
@@ -222,7 +222,7 @@ rt_calc(struct vertex *v, struct area *area, struct ospfd_conf *conf)
return;
/* ignore self-originated stuff */
- if (v->nbr->self)
+ if (v->self)
return;
/* TODO type 3 area address range check */
@@ -276,7 +276,7 @@ asext_calc(struct vertex *v)
switch (v->type) {
case LSA_TYPE_EXTERNAL:
/* ignore self-originated stuff */
- if (v->nbr->self)
+ if (v->self)
return;
if ((r = rt_lookup(DT_RTR, htonl(v->adv_rtr))) == NULL)