Commit 883d0d24 authored by Willem Thiart's avatar Willem Thiart
Browse files

Fixes #40

raft_send_requestvote and raft_send_appendentries now return proper
error codes.
parent 3e011ae2
...@@ -86,7 +86,7 @@ int raft_send_requestvote(raft_server_t* me, raft_node_t* node); ...@@ -86,7 +86,7 @@ int raft_send_requestvote(raft_server_t* me, raft_node_t* node);
int raft_send_appendentries(raft_server_t* me, raft_node_t* node); int raft_send_appendentries(raft_server_t* me, raft_node_t* node);
void raft_send_appendentries_all(raft_server_t* me_); int raft_send_appendentries_all(raft_server_t* me_);
/** /**
* Apply entry at lastApplied + 1. Entry becomes 'committed'. * Apply entry at lastApplied + 1. Entry becomes 'committed'.
......
...@@ -680,8 +680,7 @@ int raft_send_requestvote(raft_server_t* me_, raft_node_t* node) ...@@ -680,8 +680,7 @@ int raft_send_requestvote(raft_server_t* me_, raft_node_t* node)
rv.last_log_term = raft_get_last_log_term(me_); rv.last_log_term = raft_get_last_log_term(me_);
rv.candidate_id = raft_get_nodeid(me_); rv.candidate_id = raft_get_nodeid(me_);
assert(me->cb.send_requestvote); assert(me->cb.send_requestvote);
me->cb.send_requestvote(me_, me->udata, node, &rv); return me->cb.send_requestvote(me_, me->udata, node, &rv);
return 0;
} }
int raft_append_entry(raft_server_t* me_, raft_entry_t* ety) int raft_append_entry(raft_server_t* me_, raft_entry_t* ety)
...@@ -774,20 +773,26 @@ int raft_send_appendentries(raft_server_t* me_, raft_node_t* node) ...@@ -774,20 +773,26 @@ int raft_send_appendentries(raft_server_t* me_, raft_node_t* node)
ae.prev_log_term); ae.prev_log_term);
assert(me->cb.send_appendentries); assert(me->cb.send_appendentries);
me->cb.send_appendentries(me_, me->udata, node, &ae); return me->cb.send_appendentries(me_, me->udata, node, &ae);
return 0;
} }
void raft_send_appendentries_all(raft_server_t* me_) int raft_send_appendentries_all(raft_server_t* me_)
{ {
raft_server_private_t* me = (raft_server_private_t*)me_; raft_server_private_t* me = (raft_server_private_t*)me_;
int i; int i, e;
me->timeout_elapsed = 0; me->timeout_elapsed = 0;
for (i = 0; i < me->num_nodes; i++) for (i = 0; i < me->num_nodes; i++)
{
if (me->node != me->nodes[i]) if (me->node != me->nodes[i])
raft_send_appendentries(me_, me->nodes[i]); {
e = raft_send_appendentries(me_, me->nodes[i]);
if (0 != e)
return e;
}
}
return 0;
} }
raft_node_t* raft_add_node(raft_server_t* me_, void* udata, int id, int is_self) raft_node_t* raft_add_node(raft_server_t* me_, void* udata, int id, int is_self)
......
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