wasmer_wasix/journal/effector/syscalls/
sock_shutdown.rs1use std::net::Shutdown;
2
3use super::*;
4
5impl JournalEffector {
6 pub fn save_sock_shutdown(
7 ctx: &mut FunctionEnvMut<'_, WasiEnv>,
8 fd: Fd,
9 shutdown: Shutdown,
10 ) -> anyhow::Result<()> {
11 Self::save_event(
12 ctx,
13 JournalEntry::SocketShutdownV1 {
14 fd,
15 how: shutdown.into(),
16 },
17 )
18 }
19
20 pub fn apply_sock_shutdown(
21 ctx: &mut FunctionEnvMut<'_, WasiEnv>,
22 fd: Fd,
23 shutdown: Shutdown,
24 ) -> anyhow::Result<()> {
25 crate::syscalls::sock_shutdown_internal(ctx, fd, shutdown)
26 .map(|r| r.map_err(|err| err.to_string()))
27 .unwrap_or_else(|err| Err(err.to_string()))
28 .map_err(|err| {
29 anyhow::format_err!(
30 "journal restore error: failed to shutdown socket (fd={fd}, how={shutdown:?}) - {err}"
31 )
32 })?;
33 Ok(())
34 }
35}