diff options
author | Claudio Jeker <claudio@cvs.openbsd.org> | 2009-06-29 14:13:49 +0000 |
---|---|---|
committer | Claudio Jeker <claudio@cvs.openbsd.org> | 2009-06-29 14:13:49 +0000 |
commit | 39530e19e67aab97f0ff8c02bed4cb7f5e283b27 (patch) | |
tree | c9de7fde073788f96b9579fe5680b47f8c8b0025 /usr.sbin/bgpd | |
parent | 37e56b6c697496cf0243fccf185fe1d0ea763f94 (diff) |
Protect the other rde_send_kroute() with a F_RIB_NOFIB check.
Diffstat (limited to 'usr.sbin/bgpd')
-rw-r--r-- | usr.sbin/bgpd/rde_rib.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/usr.sbin/bgpd/rde_rib.c b/usr.sbin/bgpd/rde_rib.c index dae2a0b546b..78dc203ec8d 100644 --- a/usr.sbin/bgpd/rde_rib.c +++ b/usr.sbin/bgpd/rde_rib.c @@ -1,4 +1,4 @@ -/* $OpenBSD: rde_rib.c,v 1.115 2009/06/07 00:30:23 claudio Exp $ */ +/* $OpenBSD: rde_rib.c,v 1.116 2009/06/29 14:13:48 claudio Exp $ */ /* * Copyright (c) 2003, 2004 Claudio Jeker <claudio@openbsd.org> @@ -839,7 +839,6 @@ prefix_bypeer(struct rib_entry *re, struct rde_peer *peer, u_int32_t flags) return (NULL); } -/* XXX this completely wrong somewhat */ void prefix_updateall(struct rde_aspath *asp, enum nexthop_state state, enum nexthop_state oldstate) @@ -860,7 +859,8 @@ prefix_updateall(struct rde_aspath *asp, enum nexthop_state state, * or other internal infos. This will not change * the routing decision so shortcut here. */ - if (p == p->rib->active) + if ((p->rib->flags & F_RIB_NOFIB) == 0 && + p == p->rib->active) rde_send_kroute(p, NULL); continue; } |