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
b870595d
Commit
b870595d
authored
Oct 15, 2015
by
Willem Thiart
Browse files
Fix memory not being copied properly bug
parent
8fb1f6c0
Changes
2
Hide whitespace changes
Inline
Side-by-side
src/raft_log.c
View file @
b870595d
...
...
@@ -95,9 +95,9 @@ int log_append_entry(log_t* me_, raft_entry_t* c)
__ensurecapacity
(
me
);
memcpy
(
&
me
->
entries
[
me
->
back
],
c
,
sizeof
(
raft_entry_t
));
if
(
me
->
cb
&&
me
->
cb
->
log_offer
)
me
->
cb
->
log_offer
(
me
->
raft
,
raft_get_udata
(
me
->
raft
),
c
,
me
->
back
);
memcpy
(
&
me
->
entries
[
me
->
back
],
c
,
sizeof
(
raft_entry_t
));
me
->
count
++
;
me
->
back
++
;
return
0
;
...
...
tests/test_server.c
View file @
b870595d
...
...
@@ -138,6 +138,41 @@ void TestRaft_server_append_entry_means_entry_gets_current_term(CuTest* tc)
CuAssertTrue
(
tc
,
1
==
raft_get_current_idx
(
r
));
}
static
int
__raft_logentry_offer
(
raft_server_t
*
raft
,
void
*
udata
,
raft_entry_t
*
ety
,
int
ety_idx
)
{
ety
->
data
.
buf
=
udata
;
return
0
;
}
void
TestRaft_server_append_entry_is_retrievable
(
CuTest
*
tc
)
{
raft_cbs_t
funcs
=
{
.
log_offer
=
__raft_logentry_offer
,
};
char
*
data
=
"xxx"
;
void
*
r
=
raft_new
();
raft_set_state
(
r
,
RAFT_STATE_CANDIDATE
);
raft_set_callbacks
(
r
,
&
funcs
,
data
);
raft_set_current_term
(
r
,
5
);
raft_entry_t
ety
;
ety
.
term
=
1
;
ety
.
id
=
100
;
ety
.
data
.
len
=
4
;
ety
.
data
.
buf
=
(
unsigned
char
*
)
"aaa"
;
raft_append_entry
(
r
,
&
ety
);
raft_entry_t
*
kept
=
raft_get_entry_from_idx
(
r
,
1
);
CuAssertTrue
(
tc
,
kept
->
data
.
buf
==
data
);
}
#if 0
/* TODO: no support for duplicate detection yet */
void
...
...
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