Skip to content

Commit

Permalink
always attempt any sends from non-blaming peers before switching to b…
Browse files Browse the repository at this point in the history
…laming
  • Loading branch information
jrick committed Jun 19, 2024
1 parent ff453ac commit 71fb3fa
Showing 1 changed file with 18 additions and 24 deletions.
42 changes: 18 additions & 24 deletions mixing/mixclient/client.go
Original file line number Diff line number Diff line change
Expand Up @@ -1422,7 +1422,7 @@ func (c *Client) run(ctx context.Context, ps *pairedSessions, madePairing *bool)
ctIds := make([]identity, 0, len(cts))
for _, ct := range cts {
if len(ct.Ciphertexts) != len(prs) {
// Everyone sees this, can blame now.
// Everyone sees this, can rerun without full blame now.
blamedMapMu.Lock()
blamedMap[ct.Identity] = struct{}{}
blamedMapMu.Unlock()
Expand Down Expand Up @@ -1456,27 +1456,25 @@ func (c *Client) run(ctx context.Context, ps *pairedSessions, madePairing *bool)
c.testHook(hookBeforePeerSRPublish, sesRun, p)
return nil
})
if err != nil {
sesLog.logf("%v", err)
}
if len(blamedMap) > 0 {
for id := range blamedMap {
blamed = append(blamed, id)
}
sesLog.logf("blaming %x during run (wrong ciphertext count)", []identity(blamed))
return blamed
}
if err != nil {
return err
}
err = c.sendLocalPeerMsgs(ctx, sesRun, func(p *peer) mixing.Message {
sendErr := c.sendLocalPeerMsgs(ctx, sesRun, func(p *peer) mixing.Message {
if p.sr == nil {
return nil
}
return p.sr
})
if sendErr != nil {
sesLog.logf("%v", sendErr)
}
if err != nil {
sesLog.logf("%v", err)
return err
}

// Receive all slot reservation messages
Expand Down Expand Up @@ -1552,21 +1550,19 @@ func (c *Client) run(ctx context.Context, ps *pairedSessions, madePairing *bool)
c.testHook(hookBeforePeerDCPublish, sesRun, p)
return nil
})
if errors.Is(err, errTriggeredBlame) {
return err
}
if err != nil {
sesLog.logf("DC-net error: %v", err)
}
err = c.sendLocalPeerMsgs(ctx, sesRun, func(p *peer) mixing.Message {
sendErr = c.sendLocalPeerMsgs(ctx, sesRun, func(p *peer) mixing.Message {
if p.dc == nil {
return nil
}
return p.dc
})
if err != nil {
if sendErr != nil {
sesLog.logf("%v", err)
}
if err != nil {
sesLog.logf("DC-net error: %v", err)
return err
}

// Receive all DC messages
rcv.SRs = nil
Expand Down Expand Up @@ -1641,20 +1637,18 @@ func (c *Client) run(ctx context.Context, ps *pairedSessions, madePairing *bool)
p.cm = cm
return nil
})
if errors.Is(err, errTriggeredBlame) {
return err
}
if err != nil {
sesLog.logf("Confirm error: %v", err)
}
err = c.sendLocalPeerMsgs(ctx, sesRun, func(p *peer) mixing.Message {
sendErr = c.sendLocalPeerMsgs(ctx, sesRun, func(p *peer) mixing.Message {
if p.cm == nil {
return nil
}
return p.cm
})
if sendErr != nil {
sesLog.logf("%v", sendErr)
}
if err != nil {
sesLog.logf("%v", err)
sesLog.logf("Confirm error: %v", err)
return err
}

// Receive all CM messages
Expand Down

0 comments on commit 71fb3fa

Please sign in to comment.