feat(client): add scoped relay host route pin
Add the first route-table mutation API to `lanparty-client-route`. Given the pre-TAP best-route snapshot, the crate can now create a host route for the relay IP on that same interface and return an RAII guard that deletes the route when it is dropped. The route row is initialized with `InitializeIpForwardEntry`, uses a /32 or /128 destination prefix for the relay IP, preserves the pre-TAP interface index/LUID, and uses the remembered next hop or an on-link unspecified next hop when Windows reported no gateway. The guard tracks whether creation actually succeeded so pure row-construction tests and failed creates do not try to delete routes they did not install. This remains a crate-level boundary only. The Windows client still reports the pre-TAP route but does not yet hold a pin across TAP activation; that is the next integration slice. Test Plan: - cargo fmt --check - cargo test -p lanparty-client-route - cargo clippy -p lanparty-client-route --all-targets -- -D warnings - cargo check -p lanparty-client-route --target x86_64-pc-windows-msvc - cargo clippy -p lanparty-client-route --target x86_64-pc-windows-msvc --all-targets -- -D warnings - cargo test --workspace - cargo clippy --workspace --all-targets -- -D warnings - git diff --check Refs: PLAN.md Refs: https://learn.microsoft.com/en-us/windows-hardware/drivers/network/createipforwardentry2 Refs: https://learn.microsoft.com/en-us/windows-hardware/drivers/network/initializeipforwardentry
This commit is contained in:
@@ -55,6 +55,7 @@ Windows route-table boundary:
|
||||
|
||||
- read-only best-route lookup for a relay destination IP
|
||||
- selected source address, next hop, interface index/LUID, prefix, and metric
|
||||
- scoped host-route pinning for the relay IP on the pre-TAP interface
|
||||
- non-Windows builds return a clear unsupported-platform error
|
||||
|
||||
### `lanparty-client-tap`
|
||||
|
||||
Reference in New Issue
Block a user