[client] let engine context unblock WaitStreamConnected

WaitStreamConnected only watched the signal client's own context, which
derives from the parent engineCtx rather than the engine's run context.
A Start blocked here (signal stream not yet up) could therefore not be
released by Engine.Stop, since Stop only cancels the engine's run
context.

Pass a context into WaitStreamConnected and select on it too, and have
the engine pass e.ctx, so Stop cancelling e.ctx unblocks a parked Start.
Update the Client interface, the mock, and callers accordingly.
This commit is contained in:
Zoltán Papp
2026-06-16 13:11:46 +02:00
parent c370c72d93
commit 002e0b036f
5 changed files with 9 additions and 7 deletions
+3 -3
View File
@@ -65,7 +65,7 @@ var _ = Describe("GrpcClient", func() {
return
}
}()
clientA.WaitStreamConnected()
clientA.WaitStreamConnected(context.Background())
// connect PeerB to Signal
keyB, _ := wgtypes.GenerateKey()
@@ -91,7 +91,7 @@ var _ = Describe("GrpcClient", func() {
}
}()
clientB.WaitStreamConnected()
clientB.WaitStreamConnected(context.Background())
// PeerA initiates ping-pong
err := clientA.Send(&sigProto.Message{
@@ -129,7 +129,7 @@ var _ = Describe("GrpcClient", func() {
return
}
}()
client.WaitStreamConnected()
client.WaitStreamConnected(context.Background())
Expect(client).NotTo(BeNil())
})
})