We previously `join`ed on piping data from both sides, meaning that the future didn't complete until **both** sides had disconnected. Even if the client disconnected, it was possible the server never knew, and we "leaked" this future. To fix this, the `join` is replaced with a `Duplex` future, which pipes from both ends into the other, while also detecting when one side shuts down. When a side does shutdown, a write shutdown is forwarded to the other side, to allow draining to occur for deployments that half-close sockets. Closes #434 |
||
---|---|---|
.github | ||
proxy | ||
CONTRIBUTING.md | ||
Cargo.lock | ||
Cargo.toml | ||
DCO | ||
LICENSE |