From 79c60fd0ad7f0c923be47fbc3bfd5f0e46af2c40 Mon Sep 17 00:00:00 2001 From: Steven Dake Date: Tue, 1 Jun 2010 20:35:53 +0000 Subject: [PATCH] Totem spec is clear: reject retransmitted tokens if token.aru = aru in token on last rotation ... do some logic Here is how the current code works: last_aru = instance->my_last_aru; instance->my_last_aru = token->aru; reject retransmitted tokens if token.aru = aru in token on last rotation ... do some logic The issue is last_aru will be set to token->aru when a token retransmission occurs before a new token arrives. This results in the "do some logic" part happening more often then it should. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2917 fd59a12c-fef9-0310-b244-a6a79926bd2f --- exec/totemsrp.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/exec/totemsrp.c b/exec/totemsrp.c index 6dfd42d3..e6b08356 100644 --- a/exec/totemsrp.c +++ b/exec/totemsrp.c @@ -3425,9 +3425,6 @@ static int message_handler_orf_token ( */ case MEMB_STATE_RECOVERY: - last_aru = instance->my_last_aru; - instance->my_last_aru = token->aru; - /* * Discard tokens from another configuration */ @@ -3468,6 +3465,8 @@ static int message_handler_orf_token ( return (0); /* discard token */ } + last_aru = instance->my_last_aru; + instance->my_last_aru = token->aru; transmits_allowed = fcc_calculate (instance, token); mcasted_retransmit = orf_token_rtr (instance, token, &transmits_allowed);