wasmer_wasix/journal/effector/syscalls/
sock_set_opt_time.rs

1use std::time::Duration;
2
3use crate::net::socket::TimeType;
4
5use super::*;
6
7impl JournalEffector {
8    pub fn save_sock_set_opt_time(
9        ctx: &mut FunctionEnvMut<'_, WasiEnv>,
10        fd: Fd,
11        ty: TimeType,
12        time: Option<Duration>,
13    ) -> anyhow::Result<()> {
14        Self::save_event(
15            ctx,
16            JournalEntry::SocketSetOptTimeV1 {
17                fd,
18                ty: ty.into(),
19                time,
20            },
21        )
22    }
23
24    pub fn apply_sock_set_opt_time(
25        ctx: &mut FunctionEnvMut<'_, WasiEnv>,
26        fd: Fd,
27        ty: TimeType,
28        time: Option<Duration>,
29    ) -> anyhow::Result<()> {
30        crate::syscalls::sock_set_opt_time_internal(ctx, fd, ty, time)
31            .map(|r| r.map_err(|err| err.to_string()))
32            .unwrap_or_else(|err| Err(err.to_string()))
33            .map_err(|err| {
34                anyhow::format_err!(
35                    "journal restore error: failed to set socket option (fd={fd}, opt={ty:?}, time={time:?}) - {err}"
36                )
37            })?;
38        Ok(())
39    }
40}