peer->remote_table = peer->last_local_table = peer->stop_local_table = NULL;
peer->appctx = NULL;
+ /* reset teaching flags to 0 */
+ peer->flags &= PEER_TEACH_RESET;
+
/* Mark peer as released */
peer->flags &= PEER_STATE_RESET;
peer->flags |= PEER_F_ST_RELEASED;
/* Init confirm counter */
peer->confirm = 0;
+ /* reset teaching flags to 0 */
+ peer->flags &= PEER_TEACH_RESET;
+
peer->flags &= PEER_STATE_RESET;
peer->flags |= PEER_F_ST_ACCEPTED;
/* Init confirm counter */
peer->confirm = 0;
+ /* reset teaching flags to 0 */
+ peer->flags &= PEER_TEACH_RESET;
+
+ if (peer->local) {
+ /* flag to start to teach lesson */
+ peer->flags |= PEER_F_TEACH_PROCESS;
+
+ }
+
peer->flags &= PEER_STATE_RESET;
peer->flags |= PEER_F_ST_CONNECTED;
}
/* reschedule a resync */
peers->resync_timeout = tick_add(now_ms, MS_TO_TICKS(5000));
}
- peer->flags &= PEER_TEACH_RESET;
peer->flags &= PEER_LEARN_RESET;
}
if (peer->flags & PEER_F_ST_ACCEPTED) {
- peer->flags &= PEER_TEACH_RESET;
peer->flags &= PEER_LEARN_RESET;
/* if current peer is local */
peer->flags &= PEER_TEACH_RESET;
peer->flags &= PEER_LEARN_RESET;
- /* If current peer is local */
- if (peer->local) {
- /* flag to start to teach lesson */
- peer->flags |= PEER_F_TEACH_PROCESS;
- }
- else if ((peers->flags & PEERS_RESYNC_STATEMASK) == PEERS_RESYNC_FROMREMOTE &&
- !(peers->flags & PEERS_F_RESYNC_ASSIGN)) {
+ if (!peer->local &&
+ (peers->flags & PEERS_RESYNC_STATEMASK) == PEERS_RESYNC_FROMREMOTE &&
+ !(peers->flags & PEERS_F_RESYNC_ASSIGN)) {
/* If peer is remote and resync from remote is needed,
and no peer currently assigned */