From: Benjamin Cama Date: Sun, 24 Jul 2011 00:26:32 +0000 (+0200) Subject: Stop BGP session even when we are master X-Git-Tag: debian/2.2.1-1fdn1~1^2~6 X-Git-Url: http://git.sameswireless.fr/l2tpns.git/commitdiff_plain/d48de5fdddaa8d2a44c15df74d1016ac692b9f2e?hp=625794576e0206fe7a553c4def60277d895943dd Stop BGP session even when we are master Probably a bug; introduced by a patch that made only slaves stop their BGP session. Signed-off-by: Benjamin Cama --- diff --git a/l2tpns.c b/l2tpns.c index 7f94d24..9947bd5 100644 --- a/l2tpns.c +++ b/l2tpns.c @@ -3395,35 +3395,36 @@ static int still_busy(void) static clockt last_talked = 0; static clockt start_busy_wait = 0; - if (!config->cluster_iam_master) - { #ifdef BGP - static time_t stopped_bgp = 0; - if (bgp_configured) + static time_t stopped_bgp = 0; + if (bgp_configured) + { + if (!stopped_bgp) { - if (!stopped_bgp) - { - LOG(1, 0, 0, "Shutting down in %d seconds, stopping BGP...\n", QUIT_DELAY); + LOG(1, 0, 0, "Shutting down in %d seconds, stopping BGP...\n", QUIT_DELAY); - for (i = 0; i < BGP_NUM_PEERS; i++) - if (bgp_peers[i].state == Established) - bgp_stop(&bgp_peers[i]); + for (i = 0; i < BGP_NUM_PEERS; i++) + if (bgp_peers[i].state == Established) + bgp_stop(&bgp_peers[i]); - stopped_bgp = time_now; + stopped_bgp = time_now; + if (!config->cluster_iam_master) + { // we don't want to become master cluster_send_ping(0); return 1; } - - if (time_now < (stopped_bgp + QUIT_DELAY)) - return 1; } + + if (!config->cluster_iam_master && time_now < (stopped_bgp + QUIT_DELAY)) + return 1; + } #endif /* BGP */ + if (!config->cluster_iam_master) return 0; - } if (main_quit == QUIT_SHUTDOWN) {