diff options
author | 2018-10-29 09:22:48 +0000 | |
---|---|---|
committer | 2018-10-29 09:22:48 +0000 | |
commit | a3dc2c03f174d6fd038d1b986129db03c81fd7b2 (patch) | |
tree | 4bd056c43f48cde14ad9f65889a44f965999662f | |
parent | Revert previous (for now). (diff) | |
download | wireguard-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.c | 14 |
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); |