summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorclaudio <claudio@openbsd.org>2018-10-29 09:22:48 +0000
committerclaudio <claudio@openbsd.org>2018-10-29 09:22:48 +0000
commita3dc2c03f174d6fd038d1b986129db03c81fd7b2 (patch)
tree4bd056c43f48cde14ad9f65889a44f965999662f
parentRevert previous (for now). (diff)
downloadwireguard-openbsd-a3dc2c03f174d6fd038d1b986129db03c81fd7b2.tar.xz
wireguard-openbsd-a3dc2c03f174d6fd038d1b986129db03c81fd7b2.zip
Fix route-collector mode by allowing the RDE to disable the decision process
on reload but after that not allowing it to be re-enabled. So now it is possible to enable route-collector mode again but it is still not possible to turn it of via reload. Problem reported by Aaron A. Glenn. OK benno@
-rw-r--r--usr.sbin/bgpd/rde.c14
1 files changed, 5 insertions, 9 deletions
diff --git a/usr.sbin/bgpd/rde.c b/usr.sbin/bgpd/rde.c
index 2e7a1c18050..098e8b48892 100644
--- a/usr.sbin/bgpd/rde.c
+++ b/usr.sbin/bgpd/rde.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: rde.c,v 1.441 2018/10/26 06:48:59 claudio Exp $ */
+/* $OpenBSD: rde.c,v 1.442 2018/10/29 09:22:48 claudio Exp $ */
/*
* Copyright (c) 2003, 2004 Henning Brauer <henning@openbsd.org>
@@ -2802,14 +2802,10 @@ rde_reload_done(void)
int reload = 0;
/* first merge the main config */
- if ((nconf->flags & BGPD_FLAG_NO_EVALUATE)
- != (conf->flags & BGPD_FLAG_NO_EVALUATE)) {
- log_warnx("change to/from route-collector "
- "mode ignored");
- if (conf->flags & BGPD_FLAG_NO_EVALUATE)
- nconf->flags |= BGPD_FLAG_NO_EVALUATE;
- else
- nconf->flags &= ~BGPD_FLAG_NO_EVALUATE;
+ if ((conf->flags & BGPD_FLAG_NO_EVALUATE) &&
+ (nconf->flags & BGPD_FLAG_NO_EVALUATE) == 0) {
+ log_warnx("disabling of route-collector mode ignored");
+ nconf->flags |= BGPD_FLAG_NO_EVALUATE;
}
SIMPLEQ_INIT(&prefixsets_old);