a09852dada
The Windows client still needs a real Ethernet TAP boundary before it can pump
frames between the adapter and the relay session. Keep that OS-specific surface
separate from the QUIC client state by adding a `lanparty-client-tap` crate.
The new crate discovers TAP-Windows6 adapters through the Windows network
adapter registry class, validates `tap0901` component ids, constructs the
`\\.\Global\{NetCfgInstanceId}.tap` device path, opens the TAP device handle,
and exposes blocking Ethernet frame read/write helpers. It also wraps the
TAP-Windows IOCTLs for media status, driver MAC, and driver MTU.
This does not wire the TAP crate into `lanparty-client-win` yet and does not
attempt route protection. The value of this slice is the target-checkable OS
boundary that the next client pump can depend on.
Test Plan:
- cargo fmt --check
- cargo test --workspace
- cargo clippy --workspace --all-targets -- -D warnings
- Windows-target cargo check for lanparty-client-tap with clang-cl/lld-link
- Windows-target cargo clippy for lanparty-client-tap with -D warnings
- git diff --check
Refs: PLAN.md Windows TAP client
33 lines
809 B
TOML
33 lines
809 B
TOML
[workspace]
|
|
resolver = "3"
|
|
members = [
|
|
"crates/lanparty-client-core",
|
|
"crates/lanparty-client-tap",
|
|
"crates/lanparty-client-win",
|
|
"crates/lanparty-ctrl",
|
|
"crates/lanparty-gateway",
|
|
"crates/lanparty-obs",
|
|
"crates/lanparty-proto",
|
|
"crates/lanparty-relay",
|
|
]
|
|
|
|
[workspace.package]
|
|
version = "0.1.0"
|
|
edition = "2024"
|
|
|
|
[workspace.dependencies]
|
|
anyhow = "1"
|
|
bytes = "1"
|
|
clap = { version = "4.6.1", features = ["derive"] }
|
|
getrandom = "0.3.4"
|
|
libc = "0.2"
|
|
quinn = "0.11.9"
|
|
rcgen = "0.14.8"
|
|
rustls = { version = "0.23", default-features = false, features = ["ring", "std"] }
|
|
serde = { version = "1", features = ["derive"] }
|
|
serde_json = "1"
|
|
thiserror = "2"
|
|
tokio = { version = "1.52.3", features = ["macros", "net", "rt-multi-thread", "signal", "sync", "time"] }
|
|
tracing = "0.1"
|
|
windows-sys = "0.61.2"
|