• Ozan Tezcan's avatar
    Refactor higher term handling (#149) · 2ce5363f
    Ozan Tezcan authored
    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.
    2ce5363f
test_server.c 165 KB