From: bodea Date: Mon, 5 Jul 2004 06:54:01 +0000 (+0000) Subject: roll in Michael's "limp along" fix for when a slave drops temporarily from the mcast... X-Git-Tag: release_2_0_1~11 X-Git-Url: http://git.sameswireless.fr/l2tpns.git/commitdiff_plain/52e205c75ebe889d97195f078063e2fadd611a95 roll in Michael's "limp along" fix for when a slave drops temporarily from the mcast group --- diff --git a/cluster.c b/cluster.c index 19666cd..a146e05 100644 --- a/cluster.c +++ b/cluster.c @@ -1,6 +1,6 @@ // L2TPNS Clustering Stuff -char const *cvs_id_cluster = "$Id: cluster.c,v 1.5 2004/07/02 07:30:43 bodea Exp $"; +char const *cvs_id_cluster = "$Id: cluster.c,v 1.6 2004/07/05 06:54:01 bodea Exp $"; #include #include @@ -438,6 +438,20 @@ void cluster_check_master(void) int last_free = 0; int had_peers = have_peers; clockt t = TIME; + static int probed = 0; + + // Is the master late? If so, try probing it... + if (TIME > (config->cluster_last_hb + config->cluster_hb_timeout/8 + 11)) { + if (!probed) { + if (config->cluster_master_address) { + peer_send_message(config->cluster_master_address, + C_LASTSEEN, config->cluster_seq_number, NULL, 0); + probed = 1; + } + } + } else { // We got a recent heartbeat; reset the probe flag. + probed = 0; + } if (TIME < (config->cluster_last_hb + config->cluster_hb_timeout) ) return; // Everything's ok. return.