mirror of
https://github.com/EasyTier/EasyTier.git
synced 2026-09-04 10:05:42 +00:00
* feat(wasi): expose protobuf RPC request ABI Add an instance-scoped asynchronous RPC session backed by the shared operation broker. Reuse the existing dispatcher and management handlers. WASI hosts can call PeerManageRpc and ConnectorManageRpc with the same protobuf payloads as easytier-cli. Export ABI version, submit, take, and free functions. Bind selectors to the WASM instance handle and keep method errors in RpcResponse. Enable management RPC explicitly in the Go-host WASM build. * fix(gateway): serialize UDP client eviction Serialize UDP client admission across forwarding rules so only one eviction can claim and wait for a released semaphore permit. Retry when cleanup concurrently removes the selected client. Add a multithreaded regression test for the permit handoff while the evicted client is still referenced. * fix(gateway): publish UDP client admission atomically Hold the admission guard through client and response-task publication so a concurrent eviction cannot leave an orphan task holding the slot permit. Open the data-plane flow before entering the critical section and extend the multithreaded regression test across the publication window.
18 lines
631 B
Rust
18 lines
631 B
Rust
//! Host capability seams.
|
|
//!
|
|
//! This module is the single home of every Host capability seam (see
|
|
//! CONTEXT.md, "Host capability"): DNS resolution, connector environment
|
|
//! facts, packet egress, and host-backed sockets. The socket-flavoured seams
|
|
//! — the host operation runtime and identifiers, the TCP stream and UDP
|
|
//! socket bridges, socket factories, and TCP listeners — live in [`socket`].
|
|
//! Concrete WASI adapters for these seams live in [`crate::wasi`].
|
|
|
|
pub mod dns;
|
|
pub mod environment;
|
|
#[cfg(feature = "management")]
|
|
pub mod management;
|
|
pub mod packet;
|
|
pub mod socket;
|
|
#[cfg(test)]
|
|
pub(crate) mod testkit;
|