diff options
Diffstat (limited to 'usr.sbin/bgpd/rde_update.c')
-rw-r--r-- | usr.sbin/bgpd/rde_update.c | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/usr.sbin/bgpd/rde_update.c b/usr.sbin/bgpd/rde_update.c index 1b0028154cf..167580656d4 100644 --- a/usr.sbin/bgpd/rde_update.c +++ b/usr.sbin/bgpd/rde_update.c @@ -1,4 +1,4 @@ -/* $OpenBSD: rde_update.c,v 1.30 2004/08/20 15:31:56 claudio Exp $ */ +/* $OpenBSD: rde_update.c,v 1.31 2004/09/28 12:09:31 claudio Exp $ */ /* * Copyright (c) 2004 Claudio Jeker <claudio@openbsd.org> @@ -334,6 +334,8 @@ up_generate_updates(struct rde_peer *peer, /* copy attributes for output filter */ fasp = path_copy(old->aspath); + /* default override not needed here as this is a withdraw */ + pt_getaddr(old->prefix, &addr); if (rde_filter(peer, fasp, &addr, old->prefix->prefixlen, DIR_OUT) == ACTION_DENY) { @@ -431,6 +433,13 @@ up_generate_updates(struct rde_peer *peer, /* copy attributes for output filter */ fasp = path_copy(new->aspath); + /* + * apply default outgoing overrides, + * acctually only prepend-self + */ + rde_apply_set(fasp, &peer->conf.attrset, new->prefix->af, + fasp->peer, DIR_DEFAULT_OUT); + pt_getaddr(new->prefix, &addr); if (rde_filter(peer, fasp, &addr, new->prefix->prefixlen, DIR_OUT) == ACTION_DENY) { |