Commit 74f27d87 authored by Willem Thiart's avatar Willem Thiart
Browse files

last_log_term is based off log

parent 285fdffb
......@@ -473,7 +473,12 @@ int raft_send_requestvote(raft_server_t* me_, int node)
rv.term = me->current_term;
rv.last_log_idx = raft_get_current_idx(me_);
rv.last_log_term = raft_get_current_term(me_);
if (0 < rv.last_log_idx)
{
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_);
if (me->cb.send_requestvote)
me->cb.send_requestvote(me_, me->udata, node, &rv);
......
......@@ -1258,15 +1258,16 @@ void TestRaft_candidate_requestvote_includes_logidx(CuTest * tc)
ety.id = 101;
raft_append_entry(r, &ety);
ety.id = 102;
ety.term = 3;
raft_append_entry(r, &ety);
raft_send_requestvote(r, 1);
msg_requestvote_t* rv = sender_poll_msg_data(sender);
CuAssertTrue(tc, NULL != rv);
CuAssertTrue(tc, 3 == rv->last_log_idx);
CuAssertTrue(tc, 5 == rv->term);
CuAssertTrue(tc, 5 == rv->last_log_term);
CuAssertTrue(tc, 1 == rv->candidate_id);
CuAssertIntEquals(tc, 3, rv->last_log_idx);
CuAssertIntEquals(tc, 5, rv->term);
CuAssertIntEquals(tc, 3, rv->last_log_term);
CuAssertIntEquals(tc, 1, rv->candidate_id);
}
void TestRaft_candidate_recv_requestvote_response_becomes_follower_if_current_term_is_less_than_term(
......
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