diff options
Diffstat (limited to 'src/set.c')
-rw-r--r-- | src/set.c | 9 |
1 files changed, 8 insertions, 1 deletions
@@ -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); |