Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
ruanhaishen
Willemt Raft
Commits
4834b93f
Commit
4834b93f
authored
Jul 30, 2015
by
Willem Thiart
Browse files
Added leader check for recv_entry
parent
ff4295ea
Changes
3
Show whitespace changes
Inline
Side-by-side
include/raft.h
View file @
4834b93f
...
...
@@ -342,7 +342,7 @@ int raft_recv_requestvote_response(raft_server_t* me, int node,
* @param node Index of the node who sent us this message
* @param[out] r The resulting response
* @param e The entry message
* @return 0 on success */
* @return 0 on success
, -1 if the server is not the leader
*/
int
raft_recv_entry
(
raft_server_t
*
me
,
int
node
,
msg_entry_t
*
e
,
msg_entry_response_t
*
r
);
...
...
src/raft_server.c
View file @
4834b93f
...
...
@@ -412,6 +412,9 @@ int raft_recv_entry(raft_server_t* me_, int node, msg_entry_t* e,
raft_entry_t
ety
;
int
res
,
i
;
if
(
!
raft_is_leader
(
me_
))
return
-
1
;
__log
(
me_
,
"received entry from: %d"
,
node
);
ety
.
term
=
me
->
current_term
;
...
...
tests/test_server.c
View file @
4834b93f
...
...
@@ -1400,6 +1400,32 @@ void TestRaft_leader_responds_to_entry_msg_when_entry_is_committed(CuTest * tc)
CuAssertTrue
(
tc
,
1
==
cr
.
was_committed
);
}
void
TestRaft_non_leader_recv_entry_msg_fails
(
CuTest
*
tc
)
{
msg_entry_response_t
cr
;
raft_cbs_t
funcs
=
{
.
log
=
NULL
};
void
*
sender
=
sender_new
(
NULL
);
void
*
r
=
raft_new
();
raft_set_callbacks
(
r
,
&
funcs
,
sender
);
raft_add_peer
(
r
,
(
void
*
)
1
,
1
);
raft_add_peer
(
r
,
(
void
*
)
2
,
0
);
raft_set_state
(
r
,
RAFT_STATE_FOLLOWER
);
/* entry message */
msg_entry_t
ety
;
ety
.
id
=
1
;
ety
.
data
=
"entry"
;
ety
.
len
=
strlen
(
"entry"
);
/* receive entry */
int
e
=
raft_recv_entry
(
r
,
1
,
&
ety
,
&
cr
);
CuAssertTrue
(
tc
,
-
1
==
e
);
}
/* 5.3 */
void
TestRaft_leader_sends_appendentries_with_NextIdx_when_PrevIdx_gt_NextIdx
(
CuTest
*
tc
)
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment