summaryrefslogtreecommitdiffstats
path: root/src/expr/cmp.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/expr/cmp.c')
-rw-r--r--src/expr/cmp.c27
1 files changed, 13 insertions, 14 deletions
diff --git a/src/expr/cmp.c b/src/expr/cmp.c
index 429f024..6b5a3a2 100644
--- a/src/expr/cmp.c
+++ b/src/expr/cmp.c
@@ -169,18 +169,17 @@ static char *expr_cmp_str[] = {
static int
nft_rule_expr_cmp_snprintf_xml(char *buf, size_t size, struct nft_expr_cmp *cmp)
{
- int len = size, offset = 0, ret, i;
+ int len = size, offset = 0, ret;
- ret = snprintf(buf, len, "\t\t<sreg>%u</sreg> <op>%s</op> <data>",
- cmp->sreg, expr_cmp_str[cmp->op]);
+ ret = snprintf(buf, len, "\t\t<sreg>%u</sreg> <op>%s</op> <cmpdata>",
+ cmp->sreg, expr_cmp_str[cmp->op]);
SNPRINTF_BUFFER_SIZE(ret, size, len, offset);
- for (i=0; i<cmp->data.len/sizeof(uint32_t); i++) {
- ret = snprintf(buf+offset, len, "%.8x ", cmp->data.val[i]);
- SNPRINTF_BUFFER_SIZE(ret, size, len, offset);
- }
+ ret = nft_data_reg_snprintf(buf+offset, len, &cmp->data,
+ NFT_RULE_O_XML, 0, DATA_VALUE);
+ SNPRINTF_BUFFER_SIZE(ret, size, len, offset);
- ret = snprintf(buf+offset, len, "</data> ");
+ ret = snprintf(buf+offset, len, "</cmpdata> ");
SNPRINTF_BUFFER_SIZE(ret, size, len, offset);
return offset;
@@ -190,16 +189,16 @@ static int
nft_rule_expr_cmp_snprintf_default(char *buf, size_t size,
struct nft_expr_cmp *cmp)
{
- int len = size, offset = 0, ret, i;
+ int len = size, offset = 0, ret;
ret = snprintf(buf, len, "sreg=%u op=%s data=",
- cmp->sreg, expr_cmp_str[cmp->op]);
+ cmp->sreg, expr_cmp_str[cmp->op]);
+ SNPRINTF_BUFFER_SIZE(ret, size, len, offset);
+
+ ret = nft_data_reg_snprintf(buf+offset, len, &cmp->data,
+ NFT_RULE_O_DEFAULT, 0, DATA_VALUE);
SNPRINTF_BUFFER_SIZE(ret, size, len, offset);
- for (i=0; i<cmp->data.len/sizeof(uint32_t); i++) {
- ret = snprintf(buf+offset, len, "%.8x ", cmp->data.val[i]);
- SNPRINTF_BUFFER_SIZE(ret, size, len, offset);
- }
return offset;
}