summaryrefslogtreecommitdiffstats
path: root/src/set.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/set.c')
-rw-r--r--src/set.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/src/set.c b/src/set.c
index 9454ace..ef2d11d 100644
--- a/src/set.c
+++ b/src/set.c
@@ -270,10 +270,17 @@ int nft_set_snprintf(char *buf, size_t size, struct nft_set *s,
int len = size, offset = 0;
struct nft_set_elem *elem;
- ret = snprintf(buf, size, "set=%s table=%s flags=%x\n",
+ ret = snprintf(buf, size, "set=%s table=%s flags=%x",
s->name, s->table, s->set_flags);
SNPRINTF_BUFFER_SIZE(ret, size, len, offset);
+ /* Empty set? Skip printinf of elements */
+ if (list_empty(&s->element_list))
+ return offset;
+
+ ret = snprintf(buf+offset, size, "\n");
+ SNPRINTF_BUFFER_SIZE(ret, size, len, offset);
+
list_for_each_entry(elem, &s->element_list, head) {
ret = snprintf(buf+offset, size, "\t");
SNPRINTF_BUFFER_SIZE(ret, size, len, offset);