summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorclaudio <claudio@openbsd.org>2009-10-12 13:14:47 +0000
committerclaudio <claudio@openbsd.org>2009-10-12 13:14:47 +0000
commita87f4f0eb0e0a7128bafed98bd9eaffa67aadd96 (patch)
treea057942e7433af634c5e8ff93dfef74989ba2cfb
parentUse relative cursor movement instead of absolute when possible and when (diff)
downloadwireguard-openbsd-a87f4f0eb0e0a7128bafed98bd9eaffa67aadd96.tar.xz
wireguard-openbsd-a87f4f0eb0e0a7128bafed98bd9eaffa67aadd96.zip
Send correct EOR updates. peer_send_eor() does not accept the AFI_ALL and
SAFI_ALL shortcuts. This should fix issues with Juniper boxes that started when I enabled more capabilities by default. Fix and report by rivo nurges (rix at estpak dot ee) Thanks.
-rw-r--r--usr.sbin/bgpd/rde.c11
1 files changed, 7 insertions, 4 deletions
diff --git a/usr.sbin/bgpd/rde.c b/usr.sbin/bgpd/rde.c
index 9bb5fde5fc3..cfe7ab54d0b 100644
--- a/usr.sbin/bgpd/rde.c
+++ b/usr.sbin/bgpd/rde.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: rde.c,v 1.268 2009/10/08 09:27:56 sthen Exp $ */
+/* $OpenBSD: rde.c,v 1.269 2009/10/12 13:14:47 claudio Exp $ */
/*
* Copyright (c) 2003, 2004 Henning Brauer <henning@openbsd.org>
@@ -2750,6 +2750,9 @@ peer_dump(u_int32_t id, u_int16_t afi, u_int8_t safi)
else
rib_dump(&ribs[peer->ribid], rde_up_dump_upcall,
peer, AF_INET);
+ if (peer->capa_received.restart &&
+ peer->capa_announced.restart)
+ peer_send_eor(peer, AFI_IPv4, SAFI_UNICAST);
}
if (afi == AFI_ALL || afi == AFI_IPv6)
if (safi == SAFI_ALL || safi == SAFI_UNICAST) {
@@ -2758,10 +2761,10 @@ peer_dump(u_int32_t id, u_int16_t afi, u_int8_t safi)
else
rib_dump(&ribs[peer->ribid], rde_up_dump_upcall,
peer, AF_INET6);
+ if (peer->capa_received.restart &&
+ peer->capa_announced.restart)
+ peer_send_eor(peer, AFI_IPv6, SAFI_UNICAST);
}
-
- if (peer->capa_received.restart && peer->capa_announced.restart)
- peer_send_eor(peer, afi, safi);
}
/* End-of-RIB marker, RFC 4724 */