mirror of https://github.com/ospab/ostp.git
Two UoT (UDP-over-TCP) correctness issues: - The accepted UoT stream never had TCP_NODELAY set (the client sets it on its end, the server didn't). Nagle's algorithm then batched server->client writes and interacted with the client's delayed ACKs, adding tens-to- hundreds of ms of stall per burst — throttling the download direction badly for streaming/video. Every TCP-tunnel proxy disables Nagle; now the server matches the client. - handle_tcp_connection join!ed the reader and writer tasks, so a half-open connection (client's read side gone, no outbound data pending) parked the writer on rx.recv() forever, leaking the task and a stale tcp_map entry. Rewrote it with select! so either half closing cancels the other and the tcp_map entry is always removed. Added duplex-stream tests covering inbound reassembly across segment boundaries, outbound framing, and teardown-on-close. |
||
|---|---|---|
| .. | ||
| src | ||
| Cargo.toml | ||