diff options
author | Claudio Jeker <claudio@cvs.openbsd.org> | 2007-01-29 13:04:14 +0000 |
---|---|---|
committer | Claudio Jeker <claudio@cvs.openbsd.org> | 2007-01-29 13:04:14 +0000 |
commit | 632325e947189bafd423a159cc999fe483a56706 (patch) | |
tree | 826d078d8858d56c17308080a7c7db315b708fe4 /usr.sbin/ospfd/rde_spf.c | |
parent | fcf9ed3f0ab339227a713314227f6add0093423c (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.c | 6 |
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) |