mirror of
https://github.com/EasyTier/EasyTier.git
synced 2026-10-29 16:05:35 +00:00
Dropping a data-plane TCP stream removed its socket without sending FIN, leaving peer reads and exit-node forwarding tasks waiting indefinitely. Transfer released smoltcp sockets, flow registrations, and stack leases to the existing reactor. Preserve FIN retransmissions and TIME-WAIT after application handles close, drain unread peer data, and reclaim sockets on completion, an absolute close deadline, or reactor shutdown. Reuse session resource closure to cancel pending reads and writes. Keep the Go host on the existing resource-close ABI and refresh its embedded WASI guest, protobuf bindings, and matching provenance together. Cover blocked writes, expired deadlines, lost FIN and ACK packets, close deadlines, reactor shutdown, and final flow and stack lease release. Validate with 77 Rust tests, the Go suite, fmt, and strict workspace clippy. Co-authored-by: KKRainbow <5665404+KKRainbow@users.noreply.github.com>