wasmer_wasix/journal/effector/syscalls/
port_route_add.rs1use std::{net::IpAddr, time::Duration};
2use virtual_net::IpCidr;
3
4use super::*;
5
6impl JournalEffector {
7 pub fn save_port_route_add(
8 ctx: &mut FunctionEnvMut<'_, WasiEnv>,
9 cidr: IpCidr,
10 via_router: IpAddr,
11 preferred_until: Option<Duration>,
12 expires_at: Option<Duration>,
13 ) -> anyhow::Result<()> {
14 Self::save_event(
15 ctx,
16 JournalEntry::PortRouteAddV1 {
17 cidr,
18 via_router,
19 preferred_until,
20 expires_at,
21 },
22 )
23 }
24
25 pub fn apply_port_route_add(
26 ctx: &mut FunctionEnvMut<'_, WasiEnv>,
27 cidr: IpCidr,
28 via_router: IpAddr,
29 preferred_until: Option<Duration>,
30 expires_at: Option<Duration>,
31 ) -> anyhow::Result<()> {
32 crate::syscalls::port_route_add_internal(
33 ctx,
34 cidr,
35 via_router,
36 preferred_until,
37 expires_at,
38 )
39 .map(|r| r.map_err(|err| err.to_string()))
40 .unwrap_or_else(|err| Err(err.to_string()))
41 .map_err(|err| {
42 anyhow::format_err!(
43 "journal restore error: failed to add route (cidr={cidr:?}, via_router={via_router}, preferred_until={preferred_until:?}, expires_at={expires_at:?}) - {err}")
44 })?;
45 Ok(())
46 }
47}