mirror of
https://git.proxmox.com/git/mirror_corosync
synced 2025-05-20 13:42:48 +00:00
More fixes for defect 204. From Mark Haverkamp:
|Looking at the totempg config change function, I think that leaving |members should have their assembly area reset. I assume that any data |that is there is now invalid, and we wouldn't want it hanging around if |they return. Also, I think that the wrong index was being used to |initialize the assembly area index. (Logical change 1.126) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@443 fd59a12c-fef9-0310-b244-a6a79926bd2f
This commit is contained in:
parent
16a9276d98
commit
e3741ea9f3
@ -178,6 +178,22 @@ static void totempg_confchg_fn (
|
||||
int j;
|
||||
int found;
|
||||
|
||||
/*
|
||||
* Clean out the assembly area for nodes that have left the
|
||||
* membership. If they return, we don't want any stale message
|
||||
* data that may be there.
|
||||
*/
|
||||
for (i = 0; i < left_list_entries; i++) {
|
||||
for (j = 0; j < assembly_list_entries; j++) {
|
||||
if (left_list[i].s_addr == assembly_list[j]->addr.s_addr) {
|
||||
assembly_list[j]->index = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Create a message assembly area for any new members.
|
||||
*/
|
||||
for (i = 0; i < member_list_entries; i++) {
|
||||
found = 0;
|
||||
for (j = 0; j < assembly_list_entries; j++) {
|
||||
@ -190,8 +206,9 @@ static void totempg_confchg_fn (
|
||||
assembly_list[assembly_list_entries] =
|
||||
malloc (sizeof (struct assembly));
|
||||
assert (assembly_list[assembly_list_entries]); // TODO
|
||||
assembly_list[assembly_list_entries]->addr.s_addr = member_list[i].s_addr;
|
||||
assembly_list[i]->index = 0;
|
||||
assembly_list[assembly_list_entries]->addr.s_addr =
|
||||
member_list[i].s_addr;
|
||||
assembly_list[assembly_list_entries]->index = 0;
|
||||
assembly_list_entries += 1;
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user