From 84bf6246af06ec9339ee293faa16797bbee58ceb Mon Sep 17 00:00:00 2001 From: lafleur Date: Sun, 7 Nov 2021 14:40:30 +0100 Subject: wipe rustables-sys away --- src/expr/masquerade.rs | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 src/expr/masquerade.rs (limited to 'src/expr/masquerade.rs') diff --git a/src/expr/masquerade.rs b/src/expr/masquerade.rs new file mode 100644 index 0000000..c1a06de --- /dev/null +++ b/src/expr/masquerade.rs @@ -0,0 +1,24 @@ +use super::{DeserializationError, Expression, Rule}; +use crate::sys; +use std::os::raw::c_char; + +/// Sets the source IP to that of the output interface. +#[derive(Debug, PartialEq)] +pub struct Masquerade; + +impl Expression for Masquerade { + fn get_raw_name() -> *const sys::libc::c_char { + b"masq\0" as *const _ as *const c_char + } + + fn from_expr(_expr: *const sys::nftnl_expr) -> Result + where + Self: Sized, + { + Ok(Masquerade) + } + + fn to_expr(&self, _rule: &Rule) -> *mut sys::nftnl_expr { + try_alloc!(unsafe { sys::nftnl_expr_alloc(Self::get_raw_name()) }) + } +} -- cgit v1.2.3