summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorClaudio Jeker <claudio@cvs.openbsd.org>2009-10-12 13:14:48 +0000
committerClaudio Jeker <claudio@cvs.openbsd.org>2009-10-12 13:14:48 +0000
commit52aa3c051b78872d677711e555fb5bbd0fe45cce (patch)
treee443c7fa86b775546d35a2a35bffb102f0b76411
parentd9e0270e34344e93c34b8209ccd8720f0daa2d5f (diff)
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 */