Refactor higher term handling (#149)
This PR refactors code regarding `term` handling inside
`raft_recv_appendentries()` and `raft_recv_snapshot()` without
introducing any logic changes.
- Deleted `raft_receive_term()` function:
This function sets the node as follower in certain cases. Although,
it misses the pre-candidate state.
We already set the node as follower inside `raft_accept_leader()`.
(With the correct check that also handles pre-candidate state).
- Moved `raft_reset_transfer_leader()` into `raft_accept_leader()`.
Leader transfer is completed when we accept a leader. So, it makes
sense to move it into `raft_accept_leader()`.
- Added some tests to verify node becomes follower even on a
pre-candidate state when a request is received with same or
higher term.
Please register or sign in to comment