aboutsummaryrefslogtreecommitdiffstats
path: root/packages/meshbay-node/tests/test_link_preview_request.py
diff options
context:
space:
mode:
authorChristophe Besson <cbesson@gmail.com>2026-09-01 18:56:12 +0200
committerChristophe Besson <cbesson@gmail.com>2026-09-01 18:56:12 +0200
commitf8598f57222028ba5600c9be507394dbcbb6f459 (patch)
tree70ce3cd790b614b65f73aced545f84a79333310d /packages/meshbay-node/tests/test_link_preview_request.py
parent9f7698340e5148f8f247fe0d70a57f7f37f1f72d (diff)
downloadmeshbay-f8598f57222028ba5600c9be507394dbcbb6f459.tar.gz
fix(node): bring the QUIC chat and stream handlers to WebRTC parity
The unified handshake reached QUIC in Phase 11.5, but the chat and stream handlers did not get the authorization rules the WebRTC path gained at the same time: - _do_chat_message_sync took `sender_id` from the wire, so an authenticated peer could post as anyone (NS6 / M2a). It is now the authenticated session's id, always. - chat used a connection-global peer registry and read chat_store from the top-level context, so on a multi-group node a message from one group fanned out to peers of the others (M2b / H1). Both are now resolved per group via _peer_registry() / _group_ctx(), mirroring the WebRTC path. The QUIC peer set is kept separate from the WebRTC one in the same group context — the two session types have different _send signatures and no cross-transport fan-out is wired. - _do_stream_segment_sync ran `subprocess.run(timeout=30)` on the event loop with no concurrency cap, so one request stalled the whole node and any member could fork-bomb it with ffmpeg (M2c). Extraction now runs in a thread behind a small semaphore, spawned as a tracked task (cancelled on connection_lost). Also corrects the stale docstring claiming C6 is still open here — the GEK proof has been enforced on this transport since 11.5. No behaviour change for shipping clients: none speak QUIC, and the listener is off by default (previous commit). Third security review, finding M2. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_011pG75yGK3NthNfyjH74omG
Diffstat (limited to 'packages/meshbay-node/tests/test_link_preview_request.py')
0 files changed, 0 insertions, 0 deletions