summaryrefslogtreecommitdiff
path: root/usr.sbin/bgpd/rde_update.c
diff options
context:
space:
mode:
authorClaudio Jeker <claudio@cvs.openbsd.org>2019-06-19 08:15:08 +0000
committerClaudio Jeker <claudio@cvs.openbsd.org>2019-06-19 08:15:08 +0000
commitb37882afda655b509ab4e2121223fc45e7238138 (patch)
tree1c1f7e88593bf0a3b55e8919b109ac57d4384b26 /usr.sbin/bgpd/rde_update.c
parent4f9699e34f75c806f91b46ee8d6ffcd9b8f7c8e8 (diff)
With the community rewrite the output code needs to also check the
communities member of struct prefix to decide if prefixes can be put together into the same update. This bug results in prefixes being sent out with the wrong comminities.
Diffstat (limited to 'usr.sbin/bgpd/rde_update.c')
-rw-r--r--usr.sbin/bgpd/rde_update.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/usr.sbin/bgpd/rde_update.c b/usr.sbin/bgpd/rde_update.c
index 6e18022cb82..eb9d8d9b2b2 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.116 2019/06/17 12:02:44 claudio Exp $ */
+/* $OpenBSD: rde_update.c,v 1.117 2019/06/19 08:15:07 claudio Exp $ */
/*
* Copyright (c) 2004 Claudio Jeker <claudio@openbsd.org>
@@ -605,8 +605,11 @@ up_dump_prefix(u_char *buf, int len, struct prefix_tree *prefix_head,
wpos += r;
/* make sure we only dump prefixes which belong together */
- if (np == NULL || np->aspath != p->aspath ||
- np->nexthop != p->nexthop || np->nhflags != p->nhflags ||
+ if (np == NULL ||
+ np->aspath != p->aspath ||
+ np->communities != p->communities ||
+ np->nexthop != p->nexthop ||
+ np->nhflags != p->nhflags ||
np->eor)
done = 1;