Skip to content

Commit

Permalink
only check triggeredBlame for non-poly broadcasts
Browse files Browse the repository at this point in the history
  • Loading branch information
jrick committed Jun 19, 2024
1 parent e821a53 commit e76b56e
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 10 deletions.
4 changes: 2 additions & 2 deletions mixing/mixclient/blame.go
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@ func (c *Client) blame(ctx context.Context, sesRun *sessionRun) (err error) {
}
}()

err = c.sendLocalPeerMsgs(ctx, sesRun, func(p *peer) mixing.Message {
err = c.sendLocalPeerMsgs(ctx, sesRun, true, func(p *peer) mixing.Message {
// Send initial secrets messages from any peers who detected
// misbehavior.
if !p.triggeredBlame {
Expand All @@ -88,7 +88,7 @@ func (c *Client) blame(ctx context.Context, sesRun *sessionRun) (err error) {
}

// Send remaining secrets messages.
err = c.sendLocalPeerMsgs(ctx, sesRun, func(p *peer) mixing.Message {
err = c.sendLocalPeerMsgs(ctx, sesRun, true, func(p *peer) mixing.Message {
if p.triggeredBlame {
p.triggeredBlame = false
return nil
Expand Down
18 changes: 10 additions & 8 deletions mixing/mixclient/client.go
Original file line number Diff line number Diff line change
Expand Up @@ -438,7 +438,9 @@ type delayedMsg struct {
p *peer
}

func (c *Client) sendLocalPeerMsgs(ctx context.Context, s *sessionRun, m func(p *peer) mixing.Message) error {
func (c *Client) sendLocalPeerMsgs(ctx context.Context, s *sessionRun, mayTriggerBlame bool,
m func(p *peer) mixing.Message) error {

msgs := make([]delayedMsg, 0, len(s.peers))

now := time.Now()
Expand All @@ -447,7 +449,7 @@ func (c *Client) sendLocalPeerMsgs(ctx context.Context, s *sessionRun, m func(p
continue
}
msg := m(p)
if p.triggeredBlame {
if mayTriggerBlame && p.triggeredBlame {
msg = p.rs
}
msgs = append(msgs, delayedMsg{
Expand Down Expand Up @@ -1153,7 +1155,7 @@ func (c *Client) run(ctx context.Context, ps *pairedSessions, madePairing *bool)
if err != nil {
sesLog.logf("%v", err)
}
err = c.sendLocalPeerMsgs(ctx, sesRun, func(p *peer) mixing.Message {
err = c.sendLocalPeerMsgs(ctx, sesRun, true, func(p *peer) mixing.Message {
if p.ke == nil {
return nil
}
Expand Down Expand Up @@ -1368,7 +1370,7 @@ func (c *Client) run(ctx context.Context, ps *pairedSessions, madePairing *bool)
if err != nil {
sesLog.logf("%v", err)
}
err = c.sendLocalPeerMsgs(ctx, sesRun, func(p *peer) mixing.Message {
err = c.sendLocalPeerMsgs(ctx, sesRun, true, func(p *peer) mixing.Message {
if p.ct == nil {
return nil
}
Expand Down Expand Up @@ -1462,7 +1464,7 @@ func (c *Client) run(ctx context.Context, ps *pairedSessions, madePairing *bool)
sesLog.logf("blaming %x during run (wrong ciphertext count)", []identity(blamed))
return blamed
}
sendErr := c.sendLocalPeerMsgs(ctx, sesRun, func(p *peer) mixing.Message {
sendErr := c.sendLocalPeerMsgs(ctx, sesRun, true, func(p *peer) mixing.Message {
if p.sr == nil {
return nil
}
Expand Down Expand Up @@ -1549,7 +1551,7 @@ func (c *Client) run(ctx context.Context, ps *pairedSessions, madePairing *bool)
c.testHook(hookBeforePeerDCPublish, sesRun, p)
return nil
})
sendErr = c.sendLocalPeerMsgs(ctx, sesRun, func(p *peer) mixing.Message {
sendErr = c.sendLocalPeerMsgs(ctx, sesRun, true, func(p *peer) mixing.Message {
if p.dc == nil {
return nil
}
Expand Down Expand Up @@ -1636,7 +1638,7 @@ func (c *Client) run(ctx context.Context, ps *pairedSessions, madePairing *bool)
p.cm = cm
return nil
})
sendErr = c.sendLocalPeerMsgs(ctx, sesRun, func(p *peer) mixing.Message {
sendErr = c.sendLocalPeerMsgs(ctx, sesRun, true, func(p *peer) mixing.Message {
if p.cm == nil {
return nil
}
Expand Down Expand Up @@ -1759,7 +1761,7 @@ func (c *Client) roots(ctx context.Context, seenSRs []chainhash.Hash,
})
// Don't wait for these messages to send.
go func() {
err := c.sendLocalPeerMsgs(ctx, sesRun, func(p *peer) mixing.Message {
err := c.sendLocalPeerMsgs(ctx, sesRun, false, func(p *peer) mixing.Message {
return p.fp
})
if ctx.Err() == nil && err != nil {
Expand Down

0 comments on commit e76b56e

Please sign in to comment.