diff options
Diffstat (limited to 'src/set_elem.c')
-rw-r--r-- | src/set_elem.c | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/src/set_elem.c b/src/set_elem.c index edcc4a2..12eadce 100644 --- a/src/set_elem.c +++ b/src/set_elem.c @@ -700,11 +700,9 @@ int nftnl_set_elem_parse_file(struct nftnl_set_elem *e, enum nftnl_parse_type ty } int nftnl_set_elem_snprintf_default(char *buf, size_t remain, - const struct nftnl_set_elem *e, - enum nft_data_types dtype) + const struct nftnl_set_elem *e) { - int dregtype = (dtype == NFT_DATA_VERDICT) ? DATA_VERDICT : DATA_VALUE; - int ret, offset = 0, i; + int ret, dregtype = DATA_VALUE, offset = 0, i; ret = snprintf(buf, remain, "element "); SNPRINTF_BUFFER_SIZE(ret, remain, offset); @@ -725,6 +723,9 @@ int nftnl_set_elem_snprintf_default(char *buf, size_t remain, ret = snprintf(buf + offset, remain, " : "); SNPRINTF_BUFFER_SIZE(ret, remain, offset); + if (e->flags & (1 << NFTNL_SET_ELEM_VERDICT)) + dregtype = DATA_VERDICT; + ret = nftnl_data_reg_snprintf(buf + offset, remain, &e->data, DATA_F_NOPFX, dregtype); SNPRINTF_BUFFER_SIZE(ret, remain, offset); @@ -761,9 +762,9 @@ static int nftnl_set_elem_cmd_snprintf(char *buf, size_t remain, if (type != NFTNL_OUTPUT_DEFAULT) return -1; - ret = nftnl_set_elem_snprintf_default(buf + offset, remain, e, - NFT_DATA_VALUE); + ret = nftnl_set_elem_snprintf_default(buf + offset, remain, e); SNPRINTF_BUFFER_SIZE(ret, remain, offset); + return offset; } |