ddidderr 06398fe298 fix(peer): reject transfer paths outside requested game
Inbound file-transfer requests carry both a game ID and a relative path. The
serve gate validated whether the requested game was currently servable, but it
did not require the path itself to be rooted under that same game. A
non-conforming peer could therefore register a guard for one game while asking
to read files from another game root.

Require normalized transfer paths to start with the requested game ID before the
file can be dispatched. This keeps the outbound transfer guard, serve policy,
and filesystem path aligned. Absolute, traversal, local-data, missing-sentinel,
active-operation, and wrong-version paths remain rejected by the existing gates.

Test Plan:
- just test
- just clippy
- git diff --check

Refs: Claude review finding #4
2026-05-30 16:36:59 +02:00
2025-08-27 21:21:01 +02:00
2026-05-17 07:54:12 +02:00
2026-05-18 16:19:27 +02:00
2026-05-18 16:19:27 +02:00

lanspread

Description

Peer-to-peer game library sharing for LAN parties.

  • Peers let users browse and download games from each other
  • they discover each other on the local network via mDNS
  • they exchange library metadata over QUIC

Ships as a Tauri desktop app.

Development

Prerequisites

# install Tauri CLI
cargo install tauri-cli

# install Deno with a package manager or from https://deno.land/

Build or Run

# build
just build

# run
just run

# test
just test

Scripted peer harness

crates/lanspread-peer-cli runs the peer runtime without the GUI and speaks JSONL on stdin/stdout. It is intended for automated multi-peer smoke tests.

just peer-cli-build
just peer-cli-image
just peer-cli-run alpha
S
Description
No description provided
Readme 153 MiB
Languages
Rust 64.6%
TypeScript 12.9%
Python 8.9%
CSS 7.6%
JavaScript 4.9%
Other 1%