Commit 9f7fa0a0 authored by Willem Thiart's avatar Willem Thiart
Browse files

Add raft_get_last_log_term

parent 661032df
...@@ -553,4 +553,8 @@ int raft_msg_entry_response_committed(raft_server_t* me_, ...@@ -553,4 +553,8 @@ int raft_msg_entry_response_committed(raft_server_t* me_,
* @return get state of type raft_state_e. */ * @return get state of type raft_state_e. */
int raft_get_state(raft_server_t* me_); int raft_get_state(raft_server_t* me_);
/** The the most recent log's term
* @return the last log term */
int raft_get_last_log_term(raft_server_t* me_);
#endif /* RAFT_H_ */ #endif /* RAFT_H_ */
...@@ -500,12 +500,7 @@ int raft_send_requestvote(raft_server_t* me_, int node) ...@@ -500,12 +500,7 @@ int raft_send_requestvote(raft_server_t* me_, int node)
rv.term = me->current_term; rv.term = me->current_term;
rv.last_log_idx = raft_get_current_idx(me_); rv.last_log_idx = raft_get_current_idx(me_);
if (0 < rv.last_log_idx) rv.last_log_term = raft_get_last_log_term(me_);
{
raft_entry_t* ety = raft_get_entry_from_idx(me_, rv.last_log_idx);
if (ety)
rv.last_log_term = ety->term;
}
rv.candidate_id = raft_get_nodeid(me_); rv.candidate_id = raft_get_nodeid(me_);
if (me->cb.send_requestvote) if (me->cb.send_requestvote)
me->cb.send_requestvote(me_, me->udata, node, &rv); me->cb.send_requestvote(me_, me->udata, node, &rv);
......
...@@ -161,3 +161,15 @@ int raft_is_candidate(raft_server_t* me_) ...@@ -161,3 +161,15 @@ int raft_is_candidate(raft_server_t* me_)
{ {
return raft_get_state(me_) == RAFT_STATE_CANDIDATE; return raft_get_state(me_) == RAFT_STATE_CANDIDATE;
} }
int raft_get_last_log_term(raft_server_t* me_)
{
int current_idx = raft_get_current_idx(me_);
if (0 < current_idx)
{
raft_entry_t* ety = raft_get_entry_from_idx(me_, current_idx);
if (ety)
return ety->term;
}
return 0;
}
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment