Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
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