From 4bafcc7ab8b4b8d3e79b90ebf4aa63e86bf79cc3 Mon Sep 17 00:00:00 2001 From: Josh Rickmar Date: Mon, 10 Jun 2024 14:14:12 +0000 Subject: [PATCH] don't serve the session if all local peers are cancelled --- mixing/mixclient/client.go | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/mixing/mixclient/client.go b/mixing/mixclient/client.go index a499d99b6..0b8bf9855 100644 --- a/mixing/mixclient/client.go +++ b/mixing/mixclient/client.go @@ -927,7 +927,7 @@ func (c *Client) pairSession(ctx context.Context, ps *pairedSessions, prs []*wir d.epoch = epoch d.start(epoch) for { - var localPeerCount int + var localPeerCount, localUncancelledCount int if rerun == nil { sid := mixing.SortPRsForSession(prs, unixEpoch) @@ -963,6 +963,9 @@ func (c *Client) pairSession(ctx context.Context, ps *pairedSessions, prs []*wir p := ps.localPeers[pr.Identity] if p != nil { localPeerCount++ + if p.ctx.Err() == nil { + localUncancelledCount++ + } } else { p = newRemotePeer(pr) } @@ -979,8 +982,8 @@ func (c *Client) pairSession(ctx context.Context, ps *pairedSessions, prs []*wir sesLog.logf("created session for pairid=%x from %d total %d local PRs %s", ps.pairing, len(prHashes), localPeerCount, prHashes) - if localPeerCount == 0 { - sesLog.logf("no more local peers") + if localUncancelledCount == 0 { + sesLog.logf("no more active local peers") return }