aboutsummaryrefslogtreecommitdiff
path: root/src/table.rs
diff options
context:
space:
mode:
authorSimon THOBY <git@nightmared.fr>2022-11-13 18:32:22 +0100
committerSimon THOBY <git@nightmared.fr>2022-11-13 18:32:22 +0100
commit22edb0197854bf4f504e833e69b0e545d382f065 (patch)
treef7af8b1f7375de41c2e528ba8ae0a97bd3186d5c /src/table.rs
parentf8effdd348e38f51f6ec7b24c4c27e6602538445 (diff)
wip: exprs
Diffstat (limited to 'src/table.rs')
-rw-r--r--src/table.rs14
1 files changed, 12 insertions, 2 deletions
diff --git a/src/table.rs b/src/table.rs
index 768eedd..5074ac9 100644
--- a/src/table.rs
+++ b/src/table.rs
@@ -7,7 +7,7 @@ use crate::nlmsg::{
use crate::parser::{parse_object, DecodeError, InnerFormat};
use crate::sys::{
self, NFNL_SUBSYS_NFTABLES, NFTA_OBJ_TABLE, NFTA_TABLE_FLAGS, NFTA_TABLE_NAME,
- NFT_MSG_DELTABLE, NFT_MSG_GETTABLE, NFT_MSG_NEWTABLE, NLM_F_ACK,
+ NFT_MSG_DELTABLE, NFT_MSG_GETTABLE, NFT_MSG_NEWTABLE, NLM_F_ACK, NLM_F_CREATE,
};
use crate::{impl_attr_getters_and_setters, MsgType, ProtocolFamily};
@@ -72,7 +72,17 @@ impl NfNetlinkObject for Table {
MsgType::Add => NFT_MSG_NEWTABLE,
MsgType::Del => NFT_MSG_DELTABLE,
} as u16;
- writer.write_header(raw_msg_type, self.family, NLM_F_ACK as u16, seq, None);
+ writer.write_header(
+ raw_msg_type,
+ self.family,
+ (if let MsgType::Add = msg_type {
+ NLM_F_CREATE
+ } else {
+ 0
+ } | NLM_F_ACK) as u16,
+ seq,
+ None,
+ );
self.inner.serialize(writer);
writer.finalize_writing_object();
}