diff options
author | Simon THOBY <git@nightmared.fr> | 2021-10-21 22:37:23 +0200 |
---|---|---|
committer | Simon THOBY <git@nightmared.fr> | 2021-11-02 22:17:44 +0100 |
commit | 4dc522ae121ef9c8379b9efe248d0dc9625812cb (patch) | |
tree | 24d7df36d4be647f7abbc386d112fd972614858d /rustables/src/expr/payload.rs | |
parent | 180c4d5c8ff86836e0f440d7d0540c02c168c4bf (diff) |
Extend the `Expression` trait to allow for "deserialization"
Diffstat (limited to 'rustables/src/expr/payload.rs')
-rw-r--r-- | rustables/src/expr/payload.rs | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/rustables/src/expr/payload.rs b/rustables/src/expr/payload.rs index 2da4e1f..de77e0c 100644 --- a/rustables/src/expr/payload.rs +++ b/rustables/src/expr/payload.rs @@ -46,11 +46,13 @@ impl HeaderField for Payload { } impl Expression for Payload { + fn get_raw_name() -> *const libc::c_char { + b"payload\0" as *const _ as *const c_char + } + fn to_expr(&self, _rule: &Rule) -> *mut sys::nftnl_expr { unsafe { - let expr = try_alloc!(sys::nftnl_expr_alloc( - b"payload\0" as *const _ as *const c_char - )); + let expr = try_alloc!(sys::nftnl_expr_alloc(Self::get_raw_name())); sys::nftnl_expr_set_u32(expr, sys::NFTNL_EXPR_PAYLOAD_BASE as u16, self.base()); sys::nftnl_expr_set_u32(expr, sys::NFTNL_EXPR_PAYLOAD_OFFSET as u16, self.offset()); |