aboutsummaryrefslogtreecommitdiff
path: root/rustables/src/set.rs
diff options
context:
space:
mode:
Diffstat (limited to 'rustables/src/set.rs')
-rw-r--r--rustables/src/set.rs12
1 files changed, 9 insertions, 3 deletions
diff --git a/rustables/src/set.rs b/rustables/src/set.rs
index 820e368..c099088 100644
--- a/rustables/src/set.rs
+++ b/rustables/src/set.rs
@@ -42,7 +42,9 @@ impl<'a, K> Set<'a, K> {
let set = try_alloc!(sys::nftnl_set_alloc());
sys::nftnl_set_set_u32(set, sys::NFTNL_SET_FAMILY as u16, family as u32);
- sys::nftnl_set_set_str(set, sys::NFTNL_SET_TABLE as u16, table.get_name().as_ptr());
+ if let Some(table_name) = table.get_name() {
+ sys::nftnl_set_set_str(set, sys::NFTNL_SET_TABLE as u16, table_name.as_ptr());
+ }
sys::nftnl_set_set_str(set, sys::NFTNL_SET_NAME as u16, name.as_ptr());
sys::nftnl_set_set_u32(set, sys::NFTNL_SET_ID as u16, id);
@@ -130,10 +132,14 @@ impl<'a, K> Set<'a, K> {
}
}
- pub fn get_name(&self) -> &CStr {
+ pub fn get_name(&self) -> Option<&CStr> {
unsafe {
let ptr = sys::nftnl_set_get_str(self.set, sys::NFTNL_SET_NAME as u16);
- CStr::from_ptr(ptr)
+ if !ptr.is_null() {
+ Some(CStr::from_ptr(ptr))
+ } else {
+ None
+ }
}
}