wasmer_wasix/journal/effector/syscalls/
sock_open.rs

1use wasmer_wasix_types::wasi::{Addressfamily, SockProto, Socktype};
2
3use super::*;
4
5impl JournalEffector {
6    pub fn save_sock_open(
7        ctx: &mut FunctionEnvMut<'_, WasiEnv>,
8        af: Addressfamily,
9        ty: Socktype,
10        pt: SockProto,
11        fd: Fd,
12    ) -> anyhow::Result<()> {
13        Self::save_event(ctx, JournalEntry::SocketOpenV1 { af, ty, pt, fd })
14    }
15
16    pub fn apply_sock_open(
17        ctx: &mut FunctionEnvMut<'_, WasiEnv>,
18        af: Addressfamily,
19        ty: Socktype,
20        pt: SockProto,
21        fd: Fd,
22    ) -> anyhow::Result<()> {
23        crate::syscalls::sock_open_internal(ctx, af, ty, pt, Some(fd))
24            .map_err(|err| {
25                anyhow::format_err!(
26                    "journal restore error: failed to open socket (af={af:?}, ty={ty:?}, pt={pt:?}) - {err}")
27            })?
28            .map_err(|err| {
29                anyhow::format_err!(
30                    "journal restore error: failed to open socket (af={af:?}, ty={ty:?}, pt={pt:?}) - {err}")
31            })?;
32        Ok(())
33    }
34}