From f387e3e27d3304333af11a2a66ee5cd773ad00bb Mon Sep 17 00:00:00 2001 From: Xiang Li Date: Thu, 19 Jun 2014 15:56:47 -0700 Subject: [PATCH] raft: add Entry.isConfig --- raft/log.go | 4 ++++ raft/raft.go | 4 ++-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/raft/log.go b/raft/log.go index b7a6b64fc..cf7e342f5 100644 --- a/raft/log.go +++ b/raft/log.go @@ -13,6 +13,10 @@ type Entry struct { Data []byte } +func (e *Entry) isConfig() bool { + return e.Type == AddNode || e.Type == RemoveNode +} + type log struct { ents []Entry committed int diff --git a/raft/raft.go b/raft/raft.go index 07d4632e2..0c6810f31 100644 --- a/raft/raft.go +++ b/raft/raft.go @@ -227,7 +227,7 @@ func (sm *stateMachine) becomeLeader() { sm.state = stateLeader for _, e := range sm.log.ents[sm.log.committed:] { - if e.Type == AddNode || e.Type == RemoveNode { + if e.isConfig() { sm.pendingConf = true } } @@ -270,7 +270,7 @@ func (sm *stateMachine) Step(m Message) (ok bool) { switch sm.lead { case sm.id: e := m.Entries[0] - if e.Type == AddNode || e.Type == RemoveNode { + if e.isConfig() { if sm.pendingConf { return false }