fix bug where seller would not broadcast last message to bidders

now the seller correctly computes the outcome _after_ broadcasting the last
message to the bidders in private outcome auctions.
This commit is contained in:
Markus Teich 2016-09-23 17:26:21 +02:00
parent e08789c727
commit 5a9e4cca40

View File

@ -330,12 +330,6 @@ advance_round (struct BRANDT_Auction *ad,
if (!gcry_mpi_test_bit (ad->round_progress, i)) if (!gcry_mpi_test_bit (ad->round_progress, i))
return; return;
if (msg_decrypt == ad->cur_round)
{
report_outcome (ad, atype, outcome);
return;
}
if (ad->seller_mode && msg_decrypt == ad->cur_round && !ad->outcome_public) if (ad->seller_mode && msg_decrypt == ad->cur_round && !ad->outcome_public)
{ {
/* all bidders msg_decrypt received, broadcast combined msg_decrypt */ /* all bidders msg_decrypt received, broadcast combined msg_decrypt */
@ -347,8 +341,10 @@ advance_round (struct BRANDT_Auction *ad,
return; return;
} }
ad->bcast (ad->closure, buf, buflen); ad->bcast (ad->closure, buf, buflen);
}
/* now we are done as seller and can determine the outcome */ if (msg_decrypt == ad->cur_round)
{
report_outcome (ad, atype, outcome); report_outcome (ad, atype, outcome);
return; return;
} }