1
Fork 0

feat: implement TcpStream shutdown for wasm32-wasi

Signed-off-by: Harald Hoyer <harald@profian.com>
This commit is contained in:
Harald Hoyer 2022-11-24 09:38:14 +01:00
parent 008bc1d587
commit e598af6f27

View file

@ -119,8 +119,14 @@ impl TcpStream {
unsupported()
}
pub fn shutdown(&self, _: Shutdown) -> io::Result<()> {
unsupported()
pub fn shutdown(&self, how: Shutdown) -> io::Result<()> {
let wasi_how = match how {
Shutdown::Read => wasi::SDFLAGS_RD,
Shutdown::Write => wasi::SDFLAGS_WR,
Shutdown::Both => wasi::SDFLAGS_RD | wasi::SDFLAGS_WR,
};
unsafe { wasi::sock_shutdown(self.socket().as_raw_fd() as _, wasi_how).map_err(err2io) }
}
pub fn duplicate(&self) -> io::Result<TcpStream> {