feat(client): add relay CLI for Windows binary

lanparty-client-win now has a real command-line surface for the relay-facing
client session. It accepts the relay address, expected TLS server name, pinned
DER relay certificate, room code, virtual TAP MAC, and advertised datagram
budget, then connects through lanparty-client-core as role = client.

The binary reports the assigned peer id, room id, and effective TAP MTU from the
welcome response, then waits for Ctrl-C. TAP adapter binding and Windows route
pinning remain future slices, but the executable now exercises the real relay
control-plane path instead of the starter placeholder.

Test Plan:
- cargo fmt --check
- cargo test --workspace
- cargo clippy --workspace --all-targets -- -D warnings

Refs: PLAN.md Windows client relay connection
This commit is contained in:
2026-05-21 18:21:00 +02:00
parent 914bd48346
commit 93f0a17f79
4 changed files with 114 additions and 2 deletions
+16
View File
@@ -93,3 +93,19 @@ The gateway connects to the relay as `role = gateway`, completes the
control-stream hello/welcome handshake, opens an AF_PACKET socket on the LAN
interface, and bridges Ethernet frames between the relay and wired LAN until
shutdown.
## Windows Client
```bash
cargo run -p lanparty-client-win -- \
--relay 203.0.113.10:443 \
--server-name lanparty-relay.local \
--relay-ca-cert relay-cert.der \
--room ROOM1 \
--virtual-mac 02:00:00:00:00:51
```
The Windows client binary currently connects to the relay as `role = client`
with the configured virtual MAC, completes the control-stream hello/welcome
handshake, and then waits for shutdown. TAP adapter binding and route pinning
are not wired yet.