summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorClaudio Jeker <claudio@cvs.openbsd.org>2006-12-12 10:26:48 +0000
committerClaudio Jeker <claudio@cvs.openbsd.org>2006-12-12 10:26:48 +0000
commitb13a9e99dbc21610a77a6f617153e96ad3ee41e5 (patch)
treed98753911672d58127b2ab315cdc2a4057f48116
parente2fd5f0218b82d1a430b0389a32ff36ab5b6f660 (diff)
In path_remove() remove only local prefixes from the pftable.
OK henning@
-rw-r--r--usr.sbin/bgpd/rde_rib.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/usr.sbin/bgpd/rde_rib.c b/usr.sbin/bgpd/rde_rib.c
index 9e6202f4369..f8c1cded341 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.88 2006/06/01 22:29:47 claudio Exp $ */
+/* $OpenBSD: rde_rib.c,v 1.89 2006/12/12 10:26:47 claudio Exp $ */
/*
* Copyright (c) 2003, 2004 Claudio Jeker <claudio@openbsd.org>
@@ -227,8 +227,9 @@ path_remove(struct rde_aspath *asp)
while ((p = LIST_FIRST(&asp->prefix_h)) != NULL) {
/* Commit is done in peer_down() */
pt_getaddr(p->prefix, &addr);
- rde_send_pftable(p->aspath->pftableid,
- &addr, p->prefix->prefixlen, 1);
+ if (p->flags & F_LOCAL)
+ rde_send_pftable(p->aspath->pftableid, &addr,
+ p->prefix->prefixlen, 1);
prefix_destroy(p);
}