aboutsummaryrefslogtreecommitdiffstats
path: root/packages/meshbay-node/src/meshbay_node/platform.py
diff options
context:
space:
mode:
authorChristophe Besson <cbesson@gmail.com>2026-09-26 02:44:52 +0200
committerChristophe Besson <cbesson@gmail.com>2026-09-26 02:44:52 +0200
commit4500fe3854fd3a499d1139bc89ccc488d104cc29 (patch)
tree98def256b30df2ac22a1ce7b88d12139e659f84d /packages/meshbay-node/src/meshbay_node/platform.py
parentbfd12aee8e3452f078ec20e3ee4d45c4fe9b4521 (diff)
downloadmeshbay-4500fe3854fd3a499d1139bc89ccc488d104cc29.tar.gz
fix(hub): the NAT-punch signal needs a shared active group, like the offer relay
POST /v1/nodes/{id}/incoming checked only the caller's own address, then revealed whether the node was connected (404 vs 504) and, with QUIC on, made it punch โ€” so any authenticated account could poll it for a node's liveness or make a stranger's node emit a UDP probe. The membership gate webrtc_offer did inline is now require_shared_active_group() in api/signaling.py, called by both routes; in notify_incoming it runs before anything depends on the node's connection state, so a non-member gets one uniform 403 whether the node is up or not. test_incoming_membership.py holds it (a non-member is refused with a membership 403 whether the node is connected or not; a member passes the gate); red before, green after. The offer relay is unchanged in behaviour (it now calls the shared helper); signaling/availability suites pass. Design ยง7.2 updated. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Diffstat (limited to 'packages/meshbay-node/src/meshbay_node/platform.py')
0 files changed, 0 insertions, 0 deletions