diff options
author | Claudio Jeker <claudio@cvs.openbsd.org> | 2009-10-12 13:14:48 +0000 |
---|---|---|
committer | Claudio Jeker <claudio@cvs.openbsd.org> | 2009-10-12 13:14:48 +0000 |
commit | 52aa3c051b78872d677711e555fb5bbd0fe45cce (patch) | |
tree | e443c7fa86b775546d35a2a35bffb102f0b76411 | |
parent | d9e0270e34344e93c34b8209ccd8720f0daa2d5f (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.c | 11 |
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 */ |