From 0758d102627744847d0bd2e4744d27695edb9a14 Mon Sep 17 00:00:00 2001 From: Arturo Borrero Date: Thu, 22 Sep 2016 16:58:13 +0200 Subject: src: remove libmxml support This patch removes the libmxml integration in libnftnl, since we have JSON in place and there is no need to support two at the same time. The JSON support is much better, for example libjansson has a better parsing error reporting. Moreover, libmxml 2.10 breaks the integration with libnftnl somehow, as reported in Debian bug #83870 [0]. Also, the XML support inside libnftnl has never been in good shape, with several tiny inconsitencies. [0] https://bugs.debian.org/838370 Signed-off-by: Arturo Borrero Gonzalez Signed-off-by: Pablo Neira Ayuso --- src/expr/bitwise.c | 42 -------------- src/expr/byteorder.c | 43 -------------- src/expr/cmp.c | 36 ------------ src/expr/counter.c | 23 -------- src/expr/ct.c | 48 ---------------- src/expr/data_reg.c | 156 +-------------------------------------------------- src/expr/dup.c | 21 ------- src/expr/dynset.c | 38 ------------- src/expr/exthdr.c | 40 ------------- src/expr/fwd.c | 18 ------ src/expr/hash.c | 44 --------------- src/expr/immediate.c | 39 ------------- src/expr/limit.c | 33 ----------- src/expr/log.c | 45 --------------- src/expr/lookup.c | 34 ----------- src/expr/masq.c | 27 --------- src/expr/match.c | 21 ------- src/expr/meta.c | 33 ----------- src/expr/nat.c | 55 ------------------ src/expr/numgen.c | 35 ------------ src/expr/payload.c | 40 ------------- src/expr/queue.c | 36 ------------ src/expr/quota.c | 22 -------- src/expr/redir.c | 27 --------- src/expr/reject.c | 24 -------- src/expr/target.c | 22 -------- 26 files changed, 2 insertions(+), 1000 deletions(-) (limited to 'src/expr') diff --git a/src/expr/bitwise.c b/src/expr/bitwise.c index 9cc9347..0febc9d 100644 --- a/src/expr/bitwise.c +++ b/src/expr/bitwise.c @@ -209,47 +209,6 @@ nftnl_expr_bitwise_json_parse(struct nftnl_expr *e, json_t *root, #endif } -static int -nftnl_expr_bitwise_xml_parse(struct nftnl_expr *e, mxml_node_t *tree, - struct nftnl_parse_err *err) -{ -#ifdef XML_PARSING - struct nftnl_expr_bitwise *bitwise = nftnl_expr_data(e); - uint32_t sreg, dreg, len; - - if (nftnl_mxml_reg_parse(tree, "sreg", &sreg, MXML_DESCEND_FIRST, - NFTNL_XML_MAND, err) == 0) - nftnl_expr_set_u32(e, NFTNL_EXPR_BITWISE_SREG, sreg); - - if (nftnl_mxml_reg_parse(tree, "dreg", &dreg, MXML_DESCEND_FIRST, - NFTNL_XML_MAND, err) == 0) - nftnl_expr_set_u32(e, NFTNL_EXPR_BITWISE_DREG, dreg); - - if (nftnl_mxml_num_parse(tree, "len", MXML_DESCEND_FIRST, BASE_DEC, - &len, NFTNL_TYPE_U32, NFTNL_XML_MAND, err) == 0) - nftnl_expr_set_u32(e, NFTNL_EXPR_BITWISE_LEN, len); - - if (nftnl_mxml_data_reg_parse(tree, "mask", &bitwise->mask, NFTNL_XML_MAND, - err) == DATA_VALUE) - e->flags |= (1 << NFTNL_EXPR_BITWISE_MASK); - - if (nftnl_mxml_data_reg_parse(tree, "xor", &bitwise->xor, NFTNL_XML_MAND, - err) == DATA_VALUE) - e->flags |= (1 << NFTNL_EXPR_BITWISE_XOR); - - /* Additional validation: mask and xor must use the same number of - * data registers. - */ - if (bitwise->mask.len != bitwise->xor.len) - return -1; - - return 0; -#else - errno = EOPNOTSUPP; - return -1; -#endif -} - static int nftnl_expr_bitwise_export(char *buf, size_t size, const struct nftnl_expr *e, int type) { @@ -341,6 +300,5 @@ struct expr_ops expr_ops_bitwise = { .parse = nftnl_expr_bitwise_parse, .build = nftnl_expr_bitwise_build, .snprintf = nftnl_expr_bitwise_snprintf, - .xml_parse = nftnl_expr_bitwise_xml_parse, .json_parse = nftnl_expr_bitwise_json_parse, }; diff --git a/src/expr/byteorder.c b/src/expr/byteorder.c index a7914ef..5f8e585 100644 --- a/src/expr/byteorder.c +++ b/src/expr/byteorder.c @@ -234,48 +234,6 @@ nftnl_expr_byteorder_json_parse(struct nftnl_expr *e, json_t *root, #endif } -static int -nftnl_expr_byteorder_xml_parse(struct nftnl_expr *e, mxml_node_t *tree, - struct nftnl_parse_err *err) -{ -#ifdef XML_PARSING - const char *op; - int32_t ntoh; - uint32_t sreg, dreg, len, size; - - if (nftnl_mxml_reg_parse(tree, "sreg", &sreg, MXML_DESCEND_FIRST, - NFTNL_XML_MAND, err) == 0) - nftnl_expr_set_u32(e, NFTNL_EXPR_BYTEORDER_SREG, sreg); - - if (nftnl_mxml_reg_parse(tree, "dreg", &dreg, MXML_DESCEND, NFTNL_XML_MAND, - err) == 0) - nftnl_expr_set_u32(e, NFTNL_EXPR_BYTEORDER_DREG, dreg); - - op = nftnl_mxml_str_parse(tree, "op", MXML_DESCEND_FIRST, NFTNL_XML_MAND, - err); - if (op != NULL) { - ntoh = nftnl_str2ntoh(op); - if (ntoh < 0) - return -1; - - nftnl_expr_set_u32(e, NFTNL_EXPR_BYTEORDER_OP, ntoh); - } - - if (nftnl_mxml_num_parse(tree, "len", MXML_DESCEND_FIRST, BASE_DEC, - &len, NFTNL_TYPE_U32, NFTNL_XML_MAND, err) == 0) - nftnl_expr_set_u32(e, NFTNL_EXPR_BYTEORDER_LEN, len); - - if (nftnl_mxml_num_parse(tree, "size", MXML_DESCEND_FIRST, BASE_DEC, - &size, NFTNL_TYPE_U32, NFTNL_XML_MAND, err) == 0) - nftnl_expr_set_u32(e, NFTNL_EXPR_BYTEORDER_SIZE, size); - - return 0; -#else - errno = EOPNOTSUPP; - return -1; -#endif -} - static int nftnl_expr_byteorder_export(char *buf, size_t size, const struct nftnl_expr *e, int type) { @@ -357,6 +315,5 @@ struct expr_ops expr_ops_byteorder = { .parse = nftnl_expr_byteorder_parse, .build = nftnl_expr_byteorder_build, .snprintf = nftnl_expr_byteorder_snprintf, - .xml_parse = nftnl_expr_byteorder_xml_parse, .json_parse = nftnl_expr_byteorder_json_parse, }; diff --git a/src/expr/cmp.c b/src/expr/cmp.c index a46c15a..e7ed0db 100644 --- a/src/expr/cmp.c +++ b/src/expr/cmp.c @@ -209,41 +209,6 @@ static int nftnl_expr_cmp_json_parse(struct nftnl_expr *e, json_t *root, #endif } -static int nftnl_expr_cmp_xml_parse(struct nftnl_expr *e, mxml_node_t *tree, - struct nftnl_parse_err *err) -{ -#ifdef XML_PARSING - struct nftnl_expr_cmp *cmp = nftnl_expr_data(e); - const char *op; - int32_t op_value; - uint32_t sreg; - - if (nftnl_mxml_reg_parse(tree, "sreg", &sreg, MXML_DESCEND_FIRST, - NFTNL_XML_MAND, err) == 0) - nftnl_expr_set_u32(e, NFTNL_EXPR_CMP_SREG, sreg); - - op = nftnl_mxml_str_parse(tree, "op", MXML_DESCEND_FIRST, NFTNL_XML_MAND, - err); - if (op != NULL) { - op_value = nftnl_str2cmp(op); - if (op_value < 0) - return -1; - - nftnl_expr_set_u32(e, NFTNL_EXPR_CMP_OP, op_value); - } - - if (nftnl_mxml_data_reg_parse(tree, "data", - &cmp->data, NFTNL_XML_MAND, - err) == DATA_VALUE) - e->flags |= (1 << NFTNL_EXPR_CMP_DATA); - - return 0; -#else - errno = EOPNOTSUPP; - return -1; -#endif -} - static int nftnl_expr_cmp_export(char *buf, size_t size, const struct nftnl_expr *e, int type) { @@ -320,6 +285,5 @@ struct expr_ops expr_ops_cmp = { .parse = nftnl_expr_cmp_parse, .build = nftnl_expr_cmp_build, .snprintf = nftnl_expr_cmp_snprintf, - .xml_parse = nftnl_expr_cmp_xml_parse, .json_parse = nftnl_expr_cmp_json_parse, }; diff --git a/src/expr/counter.c b/src/expr/counter.c index 4488afc..21901e8 100644 --- a/src/expr/counter.c +++ b/src/expr/counter.c @@ -137,28 +137,6 @@ nftnl_expr_counter_json_parse(struct nftnl_expr *e, json_t *root, #endif } -static int -nftnl_expr_counter_xml_parse(struct nftnl_expr *e, mxml_node_t *tree, - struct nftnl_parse_err *err) -{ -#ifdef XML_PARSING - uint64_t pkts, bytes; - - if (nftnl_mxml_num_parse(tree, "pkts", MXML_DESCEND_FIRST, BASE_DEC, - &pkts, NFTNL_TYPE_U64, NFTNL_XML_MAND, err) == 0) - nftnl_expr_set_u64(e, NFTNL_EXPR_CTR_PACKETS, pkts); - - if (nftnl_mxml_num_parse(tree, "bytes", MXML_DESCEND_FIRST, BASE_DEC, - &bytes, NFTNL_TYPE_U64, NFTNL_XML_MAND, err) == 0) - nftnl_expr_set_u64(e, NFTNL_EXPR_CTR_BYTES, bytes); - - return 0; -#else - errno = EOPNOTSUPP; - return -1; -#endif -} - static int nftnl_expr_counter_export(char *buf, size_t size, const struct nftnl_expr *e, int type) { @@ -223,6 +201,5 @@ struct expr_ops expr_ops_counter = { .parse = nftnl_expr_counter_parse, .build = nftnl_expr_counter_build, .snprintf = nftnl_expr_counter_snprintf, - .xml_parse = nftnl_expr_counter_xml_parse, .json_parse = nftnl_expr_counter_json_parse, }; diff --git a/src/expr/ct.c b/src/expr/ct.c index 0137891..e680738 100644 --- a/src/expr/ct.c +++ b/src/expr/ct.c @@ -263,53 +263,6 @@ err: } -static int nftnl_expr_ct_xml_parse(struct nftnl_expr *e, mxml_node_t *tree, - struct nftnl_parse_err *err) -{ -#ifdef XML_PARSING - const char *key_str, *dir_str; - int key; - uint8_t dir; - uint32_t dreg, sreg; - - if (nftnl_mxml_reg_parse(tree, "dreg", &dreg, MXML_DESCEND_FIRST, - NFTNL_XML_OPT, err) == 0) - nftnl_expr_set_u32(e, NFTNL_EXPR_CT_DREG, dreg); - - if (nftnl_mxml_reg_parse(tree, "sreg", &sreg, MXML_DESCEND_FIRST, - NFTNL_XML_OPT, err) == 0) - nftnl_expr_set_u32(e, NFTNL_EXPR_CT_SREG, sreg); - - key_str = nftnl_mxml_str_parse(tree, "key", MXML_DESCEND_FIRST, - NFTNL_XML_MAND, err); - if (key_str != NULL) { - key = str2ctkey(key_str); - if (key < 0) - return -1; - - nftnl_expr_set_u32(e, NFTNL_EXPR_CT_KEY, key); - } - dir_str = nftnl_mxml_str_parse(tree, "dir", MXML_DESCEND_FIRST, - NFTNL_XML_OPT, err); - if (dir_str != NULL) { - if (str2ctdir(dir_str, &dir) != 0) { - err->node_name = "dir"; - err->error = NFTNL_PARSE_EBADTYPE; - goto err; - } - nftnl_expr_set_u8(e, NFTNL_EXPR_CT_DIR, dir); - } - - return 0; -err: - errno = EINVAL; - return -1; -#else - errno = EOPNOTSUPP; - return -1; -#endif -} - static int nftnl_expr_ct_export(char *buf, size_t size, const struct nftnl_expr *e, int type) @@ -402,6 +355,5 @@ struct expr_ops expr_ops_ct = { .parse = nftnl_expr_ct_parse, .build = nftnl_expr_ct_build, .snprintf = nftnl_expr_ct_snprintf, - .xml_parse = nftnl_expr_ct_xml_parse, .json_parse = nftnl_expr_ct_json_parse, }; diff --git a/src/expr/data_reg.c b/src/expr/data_reg.c index 395e9f6..0249258 100644 --- a/src/expr/data_reg.c +++ b/src/expr/data_reg.c @@ -96,94 +96,6 @@ int nftnl_data_reg_json_parse(union nftnl_data_reg *reg, json_t *data, } #endif -#ifdef XML_PARSING -static int nftnl_data_reg_verdict_xml_parse(union nftnl_data_reg *reg, - mxml_node_t *tree, - struct nftnl_parse_err *err) -{ - int verdict; - const char *verdict_str; - const char *chain; - - verdict_str = nftnl_mxml_str_parse(tree, "verdict", MXML_DESCEND_FIRST, - NFTNL_XML_MAND, err); - if (verdict_str == NULL) - return DATA_NONE; - - if (nftnl_str2verdict(verdict_str, &verdict) != 0) { - err->node_name = "verdict"; - err->error = NFTNL_PARSE_EBADTYPE; - errno = EINVAL; - return DATA_NONE; - } - - reg->verdict = (uint32_t)verdict; - - chain = nftnl_mxml_str_parse(tree, "chain", MXML_DESCEND_FIRST, - NFTNL_XML_OPT, err); - if (chain != NULL) { - if (reg->chain) - xfree(reg->chain); - - reg->chain = strdup(chain); - } - - return DATA_VERDICT; -} - -static int nftnl_data_reg_value_xml_parse(union nftnl_data_reg *reg, - mxml_node_t *tree, - struct nftnl_parse_err *err) -{ - int i; - char node_name[6]; - - if (nftnl_mxml_num_parse(tree, "len", MXML_DESCEND_FIRST, BASE_DEC, - ®->len, NFTNL_TYPE_U8, NFTNL_XML_MAND, err) != 0) - return DATA_NONE; - - for (i = 0; i < div_round_up(reg->len, sizeof(uint32_t)); i++) { - sprintf(node_name, "data%d", i); - - if (nftnl_mxml_num_parse(tree, node_name, MXML_DESCEND_FIRST, - BASE_HEX, ®->val[i], NFTNL_TYPE_U32, - NFTNL_XML_MAND, err) != 0) - return DATA_NONE; - } - - return DATA_VALUE; -} - -int nftnl_data_reg_xml_parse(union nftnl_data_reg *reg, mxml_node_t *tree, - struct nftnl_parse_err *err) -{ - const char *type; - mxml_node_t *node; - - node = mxmlFindElement(tree, tree, "reg", "type", NULL, - MXML_DESCEND_FIRST); - if (node == NULL) - goto err; - - type = mxmlElementGetAttr(node, "type"); - - if (type == NULL) - goto err; - - if (strcmp(type, "value") == 0) - return nftnl_data_reg_value_xml_parse(reg, node, err); - else if (strcmp(type, "verdict") == 0) - return nftnl_data_reg_verdict_xml_parse(reg, node, err); - - return DATA_NONE; -err: - errno = EINVAL; - err->node_name = "reg"; - err->error = NFTNL_PARSE_EMISSINGNODE; - return DATA_NONE; -} -#endif - static int nftnl_data_reg_value_snprintf_json(char *buf, size_t size, const union nftnl_data_reg *reg, @@ -221,43 +133,6 @@ nftnl_data_reg_value_snprintf_json(char *buf, size_t size, return offset; } -static -int nftnl_data_reg_value_snprintf_xml(char *buf, size_t size, - const union nftnl_data_reg *reg, - uint32_t flags) -{ - int len = size, offset = 0, ret, i, j; - uint32_t be; - uint8_t *tmp; - - ret = snprintf(buf, len, ""); - SNPRINTF_BUFFER_SIZE(ret, size, len, offset); - - ret = snprintf(buf+offset, len, "%u", reg->len); - SNPRINTF_BUFFER_SIZE(ret, size, len, offset); - - for (i = 0; i < div_round_up(reg->len, sizeof(uint32_t)); i++) { - ret = snprintf(buf+offset, len, "0x", i); - SNPRINTF_BUFFER_SIZE(ret, size, len, offset); - - be = htonl(reg->val[i]); - tmp = (uint8_t *)&be; - - for (j = 0; j < sizeof(uint32_t); j++) { - ret = snprintf(buf+offset, len, "%.02x", tmp[j]); - SNPRINTF_BUFFER_SIZE(ret, size, len, offset); - } - - ret = snprintf(buf+offset, len, "", i); - SNPRINTF_BUFFER_SIZE(ret, size, len, offset); - } - - ret = snprintf(buf+offset, len, ""); - SNPRINTF_BUFFER_SIZE(ret, size, len, offset); - - return offset; -} - static int nftnl_data_reg_value_snprintf_default(char *buf, size_t size, const union nftnl_data_reg *reg, @@ -291,29 +166,6 @@ nftnl_data_reg_verdict_snprintf_def(char *buf, size_t size, return offset; } -static int -nftnl_data_reg_verdict_snprintf_xml(char *buf, size_t size, - const union nftnl_data_reg *reg, - uint32_t flags) -{ - int len = size, offset = 0, ret = 0; - - ret = snprintf(buf, size, "" - "%s", nftnl_verdict2str(reg->verdict)); - SNPRINTF_BUFFER_SIZE(ret, size, len, offset); - - if (reg->chain != NULL) { - ret = snprintf(buf+offset, len, "%s", - reg->chain); - SNPRINTF_BUFFER_SIZE(ret, size, len, offset); - } - - ret = snprintf(buf+offset, len, ""); - SNPRINTF_BUFFER_SIZE(ret, size, len, offset); - - return offset; -} - static int nftnl_data_reg_verdict_snprintf_json(char *buf, size_t size, const union nftnl_data_reg *reg, @@ -348,12 +200,10 @@ int nftnl_data_reg_snprintf(char *buf, size_t size, case NFTNL_OUTPUT_DEFAULT: return nftnl_data_reg_value_snprintf_default(buf, size, reg, flags); - case NFTNL_OUTPUT_XML: - return nftnl_data_reg_value_snprintf_xml(buf, size, - reg, flags); case NFTNL_OUTPUT_JSON: return nftnl_data_reg_value_snprintf_json(buf, size, reg, flags); + case NFTNL_OUTPUT_XML: default: break; } @@ -363,12 +213,10 @@ int nftnl_data_reg_snprintf(char *buf, size_t size, case NFTNL_OUTPUT_DEFAULT: return nftnl_data_reg_verdict_snprintf_def(buf, size, reg, flags); - case NFTNL_OUTPUT_XML: - return nftnl_data_reg_verdict_snprintf_xml(buf, size, - reg, flags); case NFTNL_OUTPUT_JSON: return nftnl_data_reg_verdict_snprintf_json(buf, size, reg, flags); + case NFTNL_OUTPUT_XML: default: break; } diff --git a/src/expr/dup.c b/src/expr/dup.c index ac1923c..9aa332b 100644 --- a/src/expr/dup.c +++ b/src/expr/dup.c @@ -133,26 +133,6 @@ static int nftnl_expr_dup_json_parse(struct nftnl_expr *e, json_t *root, #endif } -static int nftnl_expr_dup_xml_parse(struct nftnl_expr *e, mxml_node_t *tree, - struct nftnl_parse_err *err) -{ -#ifdef XML_PARSING - uint32_t sreg_addr, sreg_dev; - - if (nftnl_mxml_reg_parse(tree, "sreg_addr", &sreg_addr, MXML_DESCEND_FIRST, - NFTNL_XML_OPT, err) == 0) - nftnl_expr_set_u32(e, NFTNL_EXPR_DUP_SREG_ADDR, sreg_addr); - if (nftnl_mxml_reg_parse(tree, "sreg_dev", &sreg_dev, MXML_DESCEND_FIRST, - NFTNL_XML_OPT, err) == 0) - nftnl_expr_set_u32(e, NFTNL_EXPR_DUP_SREG_DEV, sreg_dev); - - return 0; -#else - errno = EOPNOTSUPP; - return -1; -#endif -} - static int nftnl_expr_dup_export(char *buf, size_t size, const struct nftnl_expr *e, int type) { @@ -227,6 +207,5 @@ struct expr_ops expr_ops_dup = { .parse = nftnl_expr_dup_parse, .build = nftnl_expr_dup_build, .snprintf = nftnl_expr_dup_snprintf, - .xml_parse = nftnl_expr_dup_xml_parse, .json_parse = nftnl_expr_dup_json_parse, }; diff --git a/src/expr/dynset.c b/src/expr/dynset.c index ea59145..20a5004 100644 --- a/src/expr/dynset.c +++ b/src/expr/dynset.c @@ -241,43 +241,6 @@ nftnl_expr_dynset_json_parse(struct nftnl_expr *e, json_t *root, #endif } -static int -nftnl_expr_dynset_xml_parse(struct nftnl_expr *e, mxml_node_t *tree, - struct nftnl_parse_err *err) -{ -#ifdef XML_PARSING - const char *set_name; - uint32_t uval32; - uint64_t uval64; - - set_name = nftnl_mxml_str_parse(tree, "set", MXML_DESCEND_FIRST, - NFTNL_XML_MAND, err); - if (set_name != NULL) - nftnl_expr_set_str(e, NFTNL_EXPR_DYNSET_SET_NAME, set_name); - - if (nftnl_mxml_reg_parse(tree, "sreg_key", &uval32, MXML_DESCEND, - NFTNL_XML_MAND, err) == 0) - nftnl_expr_set_u32(e, NFTNL_EXPR_DYNSET_SREG_KEY, uval32); - - if (nftnl_mxml_reg_parse(tree, "sreg_data", &uval32, MXML_DESCEND, - NFTNL_XML_MAND, err) == 0) - nftnl_expr_set_u32(e, NFTNL_EXPR_DYNSET_SREG_DATA, uval32); - - if (nftnl_mxml_num_parse(tree, "op", MXML_DESCEND_FIRST, BASE_DEC, - &uval32, NFTNL_TYPE_U32, NFTNL_XML_MAND, err) == 0) - nftnl_expr_set_u32(e, NFTNL_EXPR_DYNSET_OP, uval32); - - if (nftnl_mxml_num_parse(tree, "timeout", MXML_DESCEND_FIRST, BASE_DEC, - &uval64, NFTNL_TYPE_U64, NFTNL_XML_MAND, err) == 0) - nftnl_expr_set_u64(e, NFTNL_EXPR_DYNSET_TIMEOUT, uval64); - - return 0; -#else - errno = EOPNOTSUPP; - return -1; -#endif -} - static int nftnl_expr_dynset_export(char *buf, size_t size, const struct nftnl_expr *e, int type) @@ -406,6 +369,5 @@ struct expr_ops expr_ops_dynset = { .parse = nftnl_expr_dynset_parse, .build = nftnl_expr_dynset_build, .snprintf = nftnl_expr_dynset_snprintf, - .xml_parse = nftnl_expr_dynset_xml_parse, .json_parse = nftnl_expr_dynset_json_parse, }; diff --git a/src/expr/exthdr.c b/src/expr/exthdr.c index deb0d7c..b164e3f 100644 --- a/src/expr/exthdr.c +++ b/src/expr/exthdr.c @@ -221,45 +221,6 @@ nftnl_expr_exthdr_json_parse(struct nftnl_expr *e, json_t *root, #endif } -static int -nftnl_expr_exthdr_xml_parse(struct nftnl_expr *e, mxml_node_t *tree, - struct nftnl_parse_err *err) -{ -#ifdef XML_PARSING - const char *exthdr_type; - int type; - uint32_t dreg, len, offset; - - if (nftnl_mxml_reg_parse(tree, "dreg", &dreg, MXML_DESCEND_FIRST, - NFTNL_XML_MAND, err) == 0) - nftnl_expr_set_u32(e, NFTNL_EXPR_EXTHDR_DREG, dreg); - - exthdr_type = nftnl_mxml_str_parse(tree, "exthdr_type", - MXML_DESCEND_FIRST, NFTNL_XML_MAND, err); - if (exthdr_type != NULL) { - type = str2exthdr_type(exthdr_type); - if (type < 0) - return -1; - nftnl_expr_set_u8(e, NFTNL_EXPR_EXTHDR_TYPE, type); - } - - /* Get and set */ - if (nftnl_mxml_num_parse(tree, "offset", MXML_DESCEND_FIRST, BASE_DEC, - &offset, NFTNL_TYPE_U32, NFTNL_XML_MAND, err) == 0) - nftnl_expr_set_u32(e, NFTNL_EXPR_EXTHDR_OFFSET, offset); - - /* Get and set */ - if (nftnl_mxml_num_parse(tree, "len", MXML_DESCEND_FIRST, BASE_DEC, - &len, NFTNL_TYPE_U32, NFTNL_XML_MAND, err) == 0) - nftnl_expr_set_u32(e, NFTNL_EXPR_EXTHDR_LEN, len); - - return 0; -#else - errno = EOPNOTSUPP; - return -1; -#endif -} - static int nftnl_expr_exthdr_export(char *buf, size_t len, const struct nftnl_expr *e, int type) { @@ -333,6 +294,5 @@ struct expr_ops expr_ops_exthdr = { .parse = nftnl_expr_exthdr_parse, .build = nftnl_expr_exthdr_build, .snprintf = nftnl_expr_exthdr_snprintf, - .xml_parse = nftnl_expr_exthdr_xml_parse, .json_parse = nftnl_expr_exthdr_json_parse, }; diff --git a/src/expr/fwd.c b/src/expr/fwd.c index 9c5520c..c30d494 100644 --- a/src/expr/fwd.c +++ b/src/expr/fwd.c @@ -116,23 +116,6 @@ static int nftnl_expr_fwd_json_parse(struct nftnl_expr *e, json_t *root, #endif } -static int nftnl_expr_fwd_xml_parse(struct nftnl_expr *e, mxml_node_t *tree, - struct nftnl_parse_err *err) -{ -#ifdef XML_PARSING - uint32_t sreg_dev; - - if (nftnl_mxml_reg_parse(tree, "sreg_dev", &sreg_dev, MXML_DESCEND_FIRST, - NFTNL_XML_OPT, err) == 0) - nftnl_expr_set_u32(e, NFTNL_EXPR_FWD_SREG_DEV, sreg_dev); - - return 0; -#else - errno = EOPNOTSUPP; - return -1; -#endif -} - static int nftnl_expr_fwd_export(char *buf, size_t size, const struct nftnl_expr *e, int type) { @@ -198,6 +181,5 @@ struct expr_ops expr_ops_fwd = { .parse = nftnl_expr_fwd_parse, .build = nftnl_expr_fwd_build, .snprintf = nftnl_expr_fwd_snprintf, - .xml_parse = nftnl_expr_fwd_xml_parse, .json_parse = nftnl_expr_fwd_json_parse, }; diff --git a/src/expr/hash.c b/src/expr/hash.c index 371e766..08f09f5 100644 --- a/src/expr/hash.c +++ b/src/expr/hash.c @@ -207,49 +207,6 @@ static int nftnl_expr_hash_json_parse(struct nftnl_expr *e, json_t *root, #endif } - -static int nftnl_expr_hash_xml_parse(struct nftnl_expr *e, - mxml_node_t *tree, - struct nftnl_parse_err *err) -{ -#ifdef XML_PARSING - uint32_t sreg, dreg, len, modulus, seed, offset; - - if (nftnl_mxml_reg_parse(tree, "sreg", &sreg, MXML_DESCEND_FIRST, - NFTNL_XML_MAND, err) == 0) - nftnl_expr_set_u32(e, NFTNL_EXPR_HASH_SREG, sreg); - - if (nftnl_mxml_reg_parse(tree, "dreg", &dreg, MXML_DESCEND_FIRST, - NFTNL_XML_MAND, err) == 0) - nftnl_expr_set_u32(e, NFTNL_EXPR_HASH_DREG, dreg); - - if (nftnl_mxml_num_parse(tree, "len", MXML_DESCEND_FIRST, BASE_DEC, - &len, NFTNL_TYPE_U32, NFTNL_XML_MAND, - err) == 0) - nftnl_expr_set_u32(e, NFTNL_EXPR_HASH_LEN, len); - - if (nftnl_mxml_num_parse(tree, "modulus", MXML_DESCEND_FIRST, BASE_DEC, - &modulus, NFTNL_TYPE_U32, NFTNL_XML_MAND, - err) == 0) - nftnl_expr_set_u32(e, NFTNL_EXPR_HASH_MODULUS, modulus); - - if (nftnl_mxml_num_parse(tree, "seed", MXML_DESCEND_FIRST, BASE_DEC, - &seed, NFTNL_TYPE_U32, NFTNL_XML_MAND, - err) == 0) - nftnl_expr_set_u32(e, NFTNL_EXPR_HASH_SEED, seed); - - if (nftnl_mxml_num_parse(tree, "offset", MXML_DESCEND_FIRST, BASE_DEC, - &offset, NFTNL_TYPE_U32, NFTNL_XML_MAND, - err) == 0) - nftnl_expr_set_u32(e, NFTNL_EXPR_HASH_OFFSET, offset); - - return 0; -#else - errno = EOPNOTSUPP; - return -1; -#endif -} - static int nftnl_expr_hash_snprintf_default(char *buf, size_t size, const struct nftnl_expr *e) @@ -338,6 +295,5 @@ struct expr_ops expr_ops_hash = { .parse = nftnl_expr_hash_parse, .build = nftnl_expr_hash_build, .snprintf = nftnl_expr_hash_snprintf, - .xml_parse = nftnl_expr_hash_xml_parse, .json_parse = nftnl_expr_hash_json_parse, }; diff --git a/src/expr/immediate.c b/src/expr/immediate.c index 2fdae9c..0b188cc 100644 --- a/src/expr/immediate.c +++ b/src/expr/immediate.c @@ -209,44 +209,6 @@ nftnl_expr_immediate_json_parse(struct nftnl_expr *e, json_t *root, #endif } -static int -nftnl_expr_immediate_xml_parse(struct nftnl_expr *e, mxml_node_t *tree, - struct nftnl_parse_err *err) -{ -#ifdef XML_PARSING - struct nftnl_expr_immediate *imm = nftnl_expr_data(e); - int datareg_type; - uint32_t reg; - - if (nftnl_mxml_reg_parse(tree, "dreg", ®, MXML_DESCEND_FIRST, - NFTNL_XML_MAND, err) == 0) - nftnl_expr_set_u32(e, NFTNL_EXPR_IMM_DREG, reg); - - datareg_type = nftnl_mxml_data_reg_parse(tree, "data", - &imm->data, NFTNL_XML_MAND, err); - if (datareg_type >= 0) { - switch (datareg_type) { - case DATA_VALUE: - e->flags |= (1 << NFTNL_EXPR_IMM_DATA); - break; - case DATA_VERDICT: - e->flags |= (1 << NFTNL_EXPR_IMM_VERDICT); - break; - case DATA_CHAIN: - e->flags |= (1 << NFTNL_EXPR_IMM_CHAIN); - break; - default: - return -1; - } - } - - return 0; -#else - errno = EOPNOTSUPP; - return -1; -#endif -} - static int nftnl_expr_immediate_export(char *buf, size_t size, const struct nftnl_expr *e, int type) @@ -355,6 +317,5 @@ struct expr_ops expr_ops_immediate = { .parse = nftnl_expr_immediate_parse, .build = nftnl_expr_immediate_build, .snprintf = nftnl_expr_immediate_snprintf, - .xml_parse = nftnl_expr_immediate_xml_parse, .json_parse = nftnl_expr_immediate_json_parse, }; diff --git a/src/expr/limit.c b/src/expr/limit.c index 9f19d53..856ab18 100644 --- a/src/expr/limit.c +++ b/src/expr/limit.c @@ -186,38 +186,6 @@ static int nftnl_expr_limit_json_parse(struct nftnl_expr *e, json_t *root, #endif } -static int nftnl_expr_limit_xml_parse(struct nftnl_expr *e, - mxml_node_t *tree, - struct nftnl_parse_err *err) -{ -#ifdef XML_PARSING - uint64_t rate, unit; - uint32_t burst, type, flags; - - if (nftnl_mxml_num_parse(tree, "rate", MXML_DESCEND_FIRST, BASE_DEC, - &rate, NFTNL_TYPE_U64, NFTNL_XML_MAND, err) == 0) - nftnl_expr_set_u64(e, NFTNL_EXPR_LIMIT_RATE, rate); - - if (nftnl_mxml_num_parse(tree, "unit", MXML_DESCEND_FIRST, BASE_DEC, - &unit, NFTNL_TYPE_U64, NFTNL_XML_MAND, err) == 0) - nftnl_expr_set_u64(e, NFTNL_EXPR_LIMIT_UNIT, unit); - if (nftnl_mxml_num_parse(tree, "burst", MXML_DESCEND_FIRST, BASE_DEC, - &burst, NFTNL_TYPE_U32, NFTNL_XML_MAND, err) == 0) - nftnl_expr_set_u32(e, NFTNL_EXPR_LIMIT_BURST, burst); - if (nftnl_mxml_num_parse(tree, "type", MXML_DESCEND_FIRST, BASE_DEC, - &type, NFTNL_TYPE_U32, NFTNL_XML_MAND, err) == 0) - nftnl_expr_set_u32(e, NFTNL_EXPR_LIMIT_TYPE, type); - if (nftnl_mxml_num_parse(tree, "flags", MXML_DESCEND_FIRST, BASE_DEC, - &flags, NFTNL_TYPE_U32, NFTNL_XML_MAND, err) == 0) - nftnl_expr_set_u32(e, NFTNL_EXPR_LIMIT_FLAGS, flags); - - return 0; -#else - errno = EOPNOTSUPP; - return -1; -#endif -} - static const char *get_unit(uint64_t u) { switch (u) { @@ -318,6 +286,5 @@ struct expr_ops expr_ops_limit = { .parse = nftnl_expr_limit_parse, .build = nftnl_expr_limit_build, .snprintf = nftnl_expr_limit_snprintf, - .xml_parse = nftnl_expr_limit_xml_parse, .json_parse = nftnl_expr_limit_json_parse, }; diff --git a/src/expr/log.c b/src/expr/log.c index d1e7b8d..57490d9 100644 --- a/src/expr/log.c +++ b/src/expr/log.c @@ -224,50 +224,6 @@ static int nftnl_expr_log_json_parse(struct nftnl_expr *e, json_t *root, #endif } -static int nftnl_expr_log_xml_parse(struct nftnl_expr *e, - mxml_node_t *tree, - struct nftnl_parse_err *err) -{ -#ifdef XML_PARSING - const char *prefix; - uint32_t snaplen, level, flags; - uint16_t group, qthreshold; - - prefix = nftnl_mxml_str_parse(tree, "prefix", MXML_DESCEND_FIRST, - NFTNL_XML_MAND, err); - if (prefix != NULL) - nftnl_expr_set_str(e, NFTNL_EXPR_LOG_PREFIX, prefix); - - if (nftnl_mxml_num_parse(tree, "group", MXML_DESCEND_FIRST, BASE_DEC, - &group, NFTNL_TYPE_U16, NFTNL_XML_MAND, err) == 0) - nftnl_expr_set_u16(e, NFTNL_EXPR_LOG_GROUP, group); - - if (nftnl_mxml_num_parse(tree, "snaplen", MXML_DESCEND_FIRST, BASE_DEC, - &snaplen, NFTNL_TYPE_U32, NFTNL_XML_MAND, err) == 0) - nftnl_expr_set_u32(e, NFTNL_EXPR_LOG_SNAPLEN, snaplen); - - if (nftnl_mxml_num_parse(tree, "qthreshold", MXML_DESCEND_FIRST, BASE_DEC, - &qthreshold, NFTNL_TYPE_U16, NFTNL_XML_MAND, - err) == 0) - nftnl_expr_set_u16(e, NFTNL_EXPR_LOG_QTHRESHOLD, qthreshold); - - if (nftnl_mxml_num_parse(tree, "level", MXML_DESCEND_FIRST, BASE_DEC, - &level, NFTNL_TYPE_U16, NFTNL_XML_MAND, - err) == 0) - nftnl_expr_set_u32(e, NFTNL_EXPR_LOG_LEVEL, level); - - if (nftnl_mxml_num_parse(tree, "flags", MXML_DESCEND_FIRST, BASE_DEC, - &flags, NFTNL_TYPE_U16, NFTNL_XML_MAND, - err) == 0) - nftnl_expr_set_u32(e, NFTNL_EXPR_LOG_FLAGS, flags); - - return 0; -#else - errno = EOPNOTSUPP; - return -1; -#endif -} - static int nftnl_expr_log_snprintf_default(char *buf, size_t size, const struct nftnl_expr *e) { @@ -370,6 +326,5 @@ struct expr_ops expr_ops_log = { .parse = nftnl_expr_log_parse, .build = nftnl_expr_log_build, .snprintf = nftnl_expr_log_snprintf, - .xml_parse = nftnl_expr_log_xml_parse, .json_parse = nftnl_expr_log_json_parse, }; diff --git a/src/expr/lookup.c b/src/expr/lookup.c index 1377c0c..861815f 100644 --- a/src/expr/lookup.c +++ b/src/expr/lookup.c @@ -196,39 +196,6 @@ nftnl_expr_lookup_json_parse(struct nftnl_expr *e, json_t *root, #endif } -static int -nftnl_expr_lookup_xml_parse(struct nftnl_expr *e, mxml_node_t *tree, - struct nftnl_parse_err *err) -{ -#ifdef XML_PARSING - const char *set_name; - uint32_t sreg, dreg, flags; - - set_name = nftnl_mxml_str_parse(tree, "set", MXML_DESCEND_FIRST, - NFTNL_XML_MAND, err); - if (set_name != NULL) - nftnl_expr_set_str(e, NFTNL_EXPR_LOOKUP_SET, set_name); - - if (nftnl_mxml_reg_parse(tree, "sreg", &sreg, MXML_DESCEND, NFTNL_XML_MAND, - err) == 0) - nftnl_expr_set_u32(e, NFTNL_EXPR_LOOKUP_SREG, sreg); - - if (nftnl_mxml_reg_parse(tree, "dreg", &dreg, MXML_DESCEND, NFTNL_XML_OPT, - err) == 0) - nftnl_expr_set_u32(e, NFTNL_EXPR_LOOKUP_DREG, dreg); - - if (nftnl_mxml_num_parse(tree, "flags", MXML_DESCEND_FIRST, BASE_DEC, - &flags, NFTNL_TYPE_U32, - NFTNL_XML_MAND, err) == 0) - nftnl_expr_set_u32(e, NFTNL_EXPR_LOOKUP_FLAGS, flags); - - return 0; -#else - errno = EOPNOTSUPP; - return -1; -#endif -} - static int nftnl_expr_lookup_export(char *buf, size_t size, const struct nftnl_expr *e, int type) @@ -327,6 +294,5 @@ struct expr_ops expr_ops_lookup = { .parse = nftnl_expr_lookup_parse, .build = nftnl_expr_lookup_build, .snprintf = nftnl_expr_lookup_snprintf, - .xml_parse = nftnl_expr_lookup_xml_parse, .json_parse = nftnl_expr_lookup_json_parse, }; diff --git a/src/expr/masq.c b/src/expr/masq.c index 77506fe..32b5ad9 100644 --- a/src/expr/masq.c +++ b/src/expr/masq.c @@ -155,32 +155,6 @@ nftnl_expr_masq_json_parse(struct nftnl_expr *e, json_t *root, #endif } -static int -nftnl_expr_masq_xml_parse(struct nftnl_expr *e, mxml_node_t *tree, - struct nftnl_parse_err *err) -{ -#ifdef XML_PARSING - uint32_t flags; - uint32_t reg_proto_min, reg_proto_max; - - if (nftnl_mxml_num_parse(tree, "flags", MXML_DESCEND_FIRST, BASE_DEC, - &flags, NFTNL_TYPE_U32, NFTNL_XML_MAND, err) == 0) - nftnl_expr_set_u32(e, NFTNL_EXPR_MASQ_FLAGS, flags); - if (nftnl_mxml_reg_parse(tree, "sreg_proto_min", ®_proto_min, - MXML_DESCEND, NFTNL_XML_MAND, err) == 0) - nftnl_expr_set_u32(e, NFTNL_EXPR_MASQ_REG_PROTO_MIN, - reg_proto_min); - if (nftnl_mxml_reg_parse(tree, "sreg_proto_max", ®_proto_max, - MXML_DESCEND, NFTNL_XML_MAND, err) == 0) - nftnl_expr_set_u32(e, NFTNL_EXPR_MASQ_REG_PROTO_MAX, - reg_proto_max); - - return 0; -#else - errno = EOPNOTSUPP; - return -1; -#endif -} static int nftnl_expr_masq_export(char *buf, size_t size, const struct nftnl_expr *e, int type) { @@ -255,6 +229,5 @@ struct expr_ops expr_ops_masq = { .parse = nftnl_expr_masq_parse, .build = nftnl_expr_masq_build, .snprintf = nftnl_expr_masq_snprintf, - .xml_parse = nftnl_expr_masq_xml_parse, .json_parse = nftnl_expr_masq_json_parse, }; diff --git a/src/expr/match.c b/src/expr/match.c index c48518e..dd09e1e 100644 --- a/src/expr/match.c +++ b/src/expr/match.c @@ -182,26 +182,6 @@ static int nftnl_expr_match_json_parse(struct nftnl_expr *e, json_t *root, } -static int nftnl_expr_match_xml_parse(struct nftnl_expr *e, mxml_node_t *tree, - struct nftnl_parse_err *err) -{ -#ifdef XML_PARSING - const char *name; - - name = nftnl_mxml_str_parse(tree, "name", MXML_DESCEND_FIRST, - NFTNL_XML_MAND, err); - if (name != NULL) - nftnl_expr_set_str(e, NFTNL_EXPR_MT_NAME, name); - - /* mt->info is ignored until other solution is reached */ - - return 0; -#else - errno = EOPNOTSUPP; - return -1; -#endif -} - static int nftnl_expr_match_export(char *buf, size_t size, const struct nftnl_expr *e, int type) { @@ -270,6 +250,5 @@ struct expr_ops expr_ops_match = { .parse = nftnl_expr_match_parse, .build = nftnl_expr_match_build, .snprintf = nftnl_expr_match_snprintf, - .xml_parse = nftnl_expr_match_xml_parse, .json_parse = nftnl_expr_match_json_parse, }; diff --git a/src/expr/meta.c b/src/expr/meta.c index 6abf6c4..2c75841 100644 --- a/src/expr/meta.c +++ b/src/expr/meta.c @@ -215,38 +215,6 @@ static int nftnl_expr_meta_json_parse(struct nftnl_expr *e, json_t *root, #endif } - -static int nftnl_expr_meta_xml_parse(struct nftnl_expr *e, mxml_node_t *tree, - struct nftnl_parse_err *err) -{ -#ifdef XML_PARSING - const char *key_str; - int key; - uint32_t dreg, sreg; - - key_str = nftnl_mxml_str_parse(tree, "key", MXML_DESCEND_FIRST, - NFTNL_XML_MAND, err); - if (key_str != NULL) { - key = str2meta_key(key_str); - if (key >= 0) - nftnl_expr_set_u32(e, NFTNL_EXPR_META_KEY, key); - } - - if (nftnl_mxml_reg_parse(tree, "dreg", &dreg, MXML_DESCEND_FIRST, - NFTNL_XML_OPT, err) == 0) - nftnl_expr_set_u32(e, NFTNL_EXPR_META_DREG, dreg); - - if (nftnl_mxml_reg_parse(tree, "sreg", &sreg, MXML_DESCEND_FIRST, - NFTNL_XML_OPT, err) == 0) - nftnl_expr_set_u32(e, NFTNL_EXPR_META_SREG, sreg); - - return 0; -#else - errno = EOPNOTSUPP; - return -1; -#endif -} - static int nftnl_expr_meta_snprintf_default(char *buf, size_t len, const struct nftnl_expr *e) @@ -323,6 +291,5 @@ struct expr_ops expr_ops_meta = { .parse = nftnl_expr_meta_parse, .build = nftnl_expr_meta_build, .snprintf = nftnl_expr_meta_snprintf, - .xml_parse = nftnl_expr_meta_xml_parse, .json_parse = nftnl_expr_meta_json_parse, }; diff --git a/src/expr/nat.c b/src/expr/nat.c index 485a623..29bc3a2 100644 --- a/src/expr/nat.c +++ b/src/expr/nat.c @@ -275,60 +275,6 @@ static int nftnl_expr_nat_json_parse(struct nftnl_expr *e, json_t *root, #endif } -static int nftnl_expr_nat_xml_parse(struct nftnl_expr *e, mxml_node_t *tree, - struct nftnl_parse_err *err) -{ -#ifdef XML_PARSING - const char *nat_type; - uint32_t family, nat_type_value, flags; - uint32_t reg_addr_min, reg_addr_max; - uint32_t reg_proto_min, reg_proto_max; - - nat_type = nftnl_mxml_str_parse(tree, "nat_type", MXML_DESCEND_FIRST, - NFTNL_XML_MAND, err); - if (nat_type == NULL) - return -1; - - nat_type_value = nftnl_str2nat(nat_type); - if (nat_type_value < 0) - return -1; - nftnl_expr_set_u32(e, NFTNL_EXPR_NAT_TYPE, nat_type_value); - - family = nftnl_mxml_family_parse(tree, "family", MXML_DESCEND_FIRST, - NFTNL_XML_MAND, err); - if (family < 0) { - mxmlDelete(tree); - return -1; - } - nftnl_expr_set_u32(e, NFTNL_EXPR_NAT_FAMILY, family); - - if (nftnl_mxml_reg_parse(tree, "sreg_addr_min", ®_addr_min, - MXML_DESCEND, NFTNL_XML_MAND, err) == 0) - nftnl_expr_set_u32(e, NFTNL_EXPR_NAT_REG_ADDR_MIN, reg_addr_min); - - if (nftnl_mxml_reg_parse(tree, "sreg_addr_max", ®_addr_max, - MXML_DESCEND, NFTNL_XML_MAND, err) == 0) - nftnl_expr_set_u32(e, NFTNL_EXPR_NAT_REG_ADDR_MAX, reg_addr_max); - - if (nftnl_mxml_reg_parse(tree, "sreg_proto_min", ®_proto_min, - MXML_DESCEND, NFTNL_XML_MAND, err) == 0) - nftnl_expr_set_u32(e, NFTNL_EXPR_NAT_REG_PROTO_MIN, reg_proto_min); - - if (nftnl_mxml_reg_parse(tree, "sreg_proto_max", ®_proto_max, - MXML_DESCEND, NFTNL_XML_MAND, err) == 0) - nftnl_expr_set_u32(e, NFTNL_EXPR_NAT_REG_PROTO_MAX, reg_proto_max); - - if (nftnl_mxml_num_parse(tree, "flags", MXML_DESCEND, BASE_DEC, &flags, - NFTNL_TYPE_U32, NFTNL_XML_MAND, err) == 0) - nftnl_expr_set_u32(e, NFTNL_EXPR_NAT_FLAGS, flags); - - return 0; -#else - errno = EOPNOTSUPP; - return -1; -#endif -} - static int nftnl_expr_nat_export(char *buf, size_t size, const struct nftnl_expr *e, int type) { @@ -438,6 +384,5 @@ struct expr_ops expr_ops_nat = { .parse = nftnl_expr_nat_parse, .build = nftnl_expr_nat_build, .snprintf = nftnl_expr_nat_snprintf, - .xml_parse = nftnl_expr_nat_xml_parse, .json_parse = nftnl_expr_nat_json_parse, }; diff --git a/src/expr/numgen.c b/src/expr/numgen.c index 8b667c2..f5ca3fd 100644 --- a/src/expr/numgen.c +++ b/src/expr/numgen.c @@ -171,40 +171,6 @@ static int nftnl_expr_ng_json_parse(struct nftnl_expr *e, json_t *root, #endif } - -static int nftnl_expr_ng_xml_parse(struct nftnl_expr *e, - mxml_node_t *tree, - struct nftnl_parse_err *err) -{ -#ifdef XML_PARSING - uint32_t dreg, modulus, type, offset; - - if (nftnl_mxml_reg_parse(tree, "dreg", &dreg, MXML_DESCEND_FIRST, - NFTNL_XML_MAND, err) == 0) - nftnl_expr_set_u32(e, NFTNL_EXPR_NG_DREG, dreg); - - if (nftnl_mxml_num_parse(tree, "modulus", MXML_DESCEND_FIRST, BASE_DEC, - &modulus, NFTNL_TYPE_U32, NFTNL_XML_MAND, - err) == 0) - nftnl_expr_set_u32(e, NFTNL_EXPR_NG_MODULUS, modulus); - - if (nftnl_mxml_num_parse(tree, "type", MXML_DESCEND_FIRST, BASE_DEC, - &type, NFTNL_TYPE_U32, NFTNL_XML_MAND, - err) == 0) - nftnl_expr_set_u32(e, NFTNL_EXPR_NG_TYPE, type); - - if (nftnl_mxml_num_parse(tree, "offset", MXML_DESCEND_FIRST, BASE_DEC, - &offset, NFTNL_TYPE_U32, NFTNL_XML_MAND, - err) == 0) - nftnl_expr_set_u32(e, NFTNL_EXPR_NG_OFFSET, offset); - - return 0; -#else - errno = EOPNOTSUPP; - return -1; -#endif -} - static int nftnl_expr_ng_snprintf_default(char *buf, size_t size, const struct nftnl_expr *e) @@ -294,6 +260,5 @@ struct expr_ops expr_ops_ng = { .parse = nftnl_expr_ng_parse, .build = nftnl_expr_ng_build, .snprintf = nftnl_expr_ng_snprintf, - .xml_parse = nftnl_expr_ng_xml_parse, .json_parse = nftnl_expr_ng_json_parse, }; diff --git a/src/expr/payload.c b/src/expr/payload.c index c9ab5d4..17dd4cd 100644 --- a/src/expr/payload.c +++ b/src/expr/payload.c @@ -251,45 +251,6 @@ nftnl_expr_payload_json_parse(struct nftnl_expr *e, json_t *root, #endif } -static int -nftnl_expr_payload_xml_parse(struct nftnl_expr *e, mxml_node_t *tree, - struct nftnl_parse_err *err) -{ -#ifdef XML_PARSING - const char *base_str; - int32_t base; - uint32_t dreg, offset, len; - - if (nftnl_mxml_reg_parse(tree, "dreg", &dreg, MXML_DESCEND_FIRST, - NFTNL_XML_MAND, err) == 0) - nftnl_expr_set_u32(e, NFTNL_EXPR_PAYLOAD_DREG, dreg); - - base_str = nftnl_mxml_str_parse(tree, "base", MXML_DESCEND_FIRST, - NFTNL_XML_MAND, err); - if (base_str != NULL) { - base = nftnl_str2base(base_str); - if (base < 0) - return -1; - - nftnl_expr_set_u32(e, NFTNL_EXPR_PAYLOAD_BASE, base); - } - - if (nftnl_mxml_num_parse(tree, "offset", MXML_DESCEND_FIRST, BASE_DEC, - &offset, NFTNL_TYPE_U32, NFTNL_XML_MAND, err) == 0) - nftnl_expr_set_u32(e, NFTNL_EXPR_PAYLOAD_OFFSET, offset); - - - if (nftnl_mxml_num_parse(tree, "len", MXML_DESCEND_FIRST, BASE_DEC, - &len, NFTNL_TYPE_U32, NFTNL_XML_MAND, err) == 0) - nftnl_expr_set_u32(e, NFTNL_EXPR_PAYLOAD_LEN, len); - - return 0; -#else - errno = EOPNOTSUPP; - return -1; -#endif -} - static int nftnl_expr_payload_export(char *buf, size_t size, uint32_t flags, const struct nftnl_expr *e, int type) { @@ -370,6 +331,5 @@ struct expr_ops expr_ops_payload = { .parse = nftnl_expr_payload_parse, .build = nftnl_expr_payload_build, .snprintf = nftnl_expr_payload_snprintf, - .xml_parse = nftnl_expr_payload_xml_parse, .json_parse = nftnl_expr_payload_json_parse, }; diff --git a/src/expr/queue.c b/src/expr/queue.c index 316a9ed..8a9deda 100644 --- a/src/expr/queue.c +++ b/src/expr/queue.c @@ -172,41 +172,6 @@ nftnl_expr_queue_json_parse(struct nftnl_expr *e, json_t *root, #endif } -static int -nftnl_expr_queue_xml_parse(struct nftnl_expr *e, mxml_node_t *tree, - struct nftnl_parse_err *err) -{ -#ifdef XML_PARSING - uint16_t queue_num, queue_total, flags; - uint32_t sreg_qnum; - - if (nftnl_mxml_num_parse(tree, "num", MXML_DESCEND_FIRST, BASE_DEC, - &queue_num, NFTNL_TYPE_U16, NFTNL_XML_MAND, - err) == 0) - nftnl_expr_set_u16(e, NFTNL_EXPR_QUEUE_NUM, queue_num); - - if (nftnl_mxml_num_parse(tree, "total", MXML_DESCEND_FIRST, BASE_DEC, - &queue_total, NFTNL_TYPE_U16, - NFTNL_XML_MAND, err) == 0) - nftnl_expr_set_u16(e, NFTNL_EXPR_QUEUE_TOTAL, queue_total); - - if (nftnl_mxml_num_parse(tree, "flags", MXML_DESCEND_FIRST, BASE_DEC, - &flags, NFTNL_TYPE_U16, - NFTNL_XML_MAND, err) == 0) - nftnl_expr_set_u16(e, NFTNL_EXPR_QUEUE_FLAGS, flags); - - if (nftnl_mxml_num_parse(tree, "sreg_qnum", MXML_DESCEND_FIRST, BASE_DEC, - &sreg_qnum, NFTNL_TYPE_U32, - NFTNL_XML_MAND, err) == 0) - nftnl_expr_set_u32(e, NFTNL_EXPR_QUEUE_SREG_QNUM, sreg_qnum); - - return 0; -#else - errno = EOPNOTSUPP; - return -1; -#endif -} - static int nftnl_expr_queue_snprintf_default(char *buf, size_t len, const struct nftnl_expr *e) { @@ -312,6 +277,5 @@ struct expr_ops expr_ops_queue = { .parse = nftnl_expr_queue_parse, .build = nftnl_expr_queue_build, .snprintf = nftnl_expr_queue_snprintf, - .xml_parse = nftnl_expr_queue_xml_parse, .json_parse = nftnl_expr_queue_json_parse, }; diff --git a/src/expr/quota.c b/src/expr/quota.c index 47db62f..7740b24 100644 --- a/src/expr/quota.c +++ b/src/expr/quota.c @@ -136,27 +136,6 @@ nftnl_expr_quota_json_parse(struct nftnl_expr *e, json_t *root, #endif } -static int nftnl_expr_quota_xml_parse(struct nftnl_expr *e, mxml_node_t *tree, - struct nftnl_parse_err *err) -{ -#ifdef XML_PARSING - uint64_t bytes; - uint32_t flags; - - if (nftnl_mxml_num_parse(tree, "bytes", MXML_DESCEND_FIRST, BASE_DEC, - &bytes, NFTNL_TYPE_U64, NFTNL_XML_MAND, err) == 0) - nftnl_expr_set_u64(e, NFTNL_EXPR_QUOTA_BYTES, bytes); - if (nftnl_mxml_num_parse(tree, "flags", MXML_DESCEND_FIRST, BASE_DEC, - &flags, NFTNL_TYPE_U32, NFTNL_XML_MAND, err) == 0) - nftnl_expr_set_u32(e, NFTNL_EXPR_QUOTA_FLAGS, flags); - - return 0; -#else - errno = EOPNOTSUPP; - return -1; -#endif -} - static int nftnl_expr_quota_export(char *buf, size_t size, const struct nftnl_expr *e, int type) { @@ -205,6 +184,5 @@ struct expr_ops expr_ops_quota = { .parse = nftnl_expr_quota_parse, .build = nftnl_expr_quota_build, .snprintf = nftnl_expr_quota_snprintf, - .xml_parse = nftnl_expr_quota_xml_parse, .json_parse = nftnl_expr_quota_json_parse, }; diff --git a/src/expr/redir.c b/src/expr/redir.c index d9dba00..d5bc179 100644 --- a/src/expr/redir.c +++ b/src/expr/redir.c @@ -157,32 +157,6 @@ nftnl_expr_redir_json_parse(struct nftnl_expr *e, json_t *root, #endif } -static int -nftnl_expr_redir_xml_parse(struct nftnl_expr *e, mxml_node_t *tree, - struct nftnl_parse_err *err) -{ -#ifdef XML_PARSING - uint32_t reg, flags; - - if (nftnl_mxml_reg_parse(tree, "sreg_proto_min", ®, - MXML_DESCEND, NFTNL_XML_OPT, err) == 0) - nftnl_expr_set_u32(e, NFTNL_EXPR_REDIR_REG_PROTO_MIN, reg); - - if (nftnl_mxml_reg_parse(tree, "sreg_proto_max", ®, - MXML_DESCEND, NFTNL_XML_OPT, err) == 0) - nftnl_expr_set_u32(e, NFTNL_EXPR_REDIR_REG_PROTO_MAX, reg); - - if (nftnl_mxml_num_parse(tree, "flags", MXML_DESCEND_FIRST, BASE_DEC, - &flags, NFTNL_TYPE_U32, NFTNL_XML_OPT, err) == 0) - nftnl_expr_set_u32(e, NFTNL_EXPR_REDIR_FLAGS, flags); - - return 0; -#else - errno = EOPNOTSUPP; - return -1; -#endif -} - static int nftnl_expr_redir_export(char *buf, size_t size, const struct nftnl_expr *e, int type) { @@ -269,6 +243,5 @@ struct expr_ops expr_ops_redir = { .parse = nftnl_expr_redir_parse, .build = nftnl_expr_redir_build, .snprintf = nftnl_expr_redir_snprintf, - .xml_parse = nftnl_expr_redir_xml_parse, .json_parse = nftnl_expr_redir_json_parse, }; diff --git a/src/expr/reject.c b/src/expr/reject.c index 2906082..11d8b20 100644 --- a/src/expr/reject.c +++ b/src/expr/reject.c @@ -137,29 +137,6 @@ nftnl_expr_reject_json_parse(struct nftnl_expr *e, json_t *root, #endif } -static int -nftnl_expr_reject_xml_parse(struct nftnl_expr *e, mxml_node_t *tree, - struct nftnl_parse_err *err) -{ -#ifdef XML_PARSING - uint32_t type; - uint8_t code; - - if (nftnl_mxml_num_parse(tree, "type", MXML_DESCEND_FIRST, BASE_DEC, - &type, NFTNL_TYPE_U32, NFTNL_XML_MAND, err) == 0) - nftnl_expr_set_u32(e, NFTNL_EXPR_REJECT_TYPE, type); - - if (nftnl_mxml_num_parse(tree, "code", MXML_DESCEND_FIRST, BASE_DEC, - &code, NFTNL_TYPE_U8, NFTNL_XML_MAND, err) == 0) - nftnl_expr_set_u8(e, NFTNL_EXPR_REJECT_CODE, code); - - return 0; -#else - errno = EOPNOTSUPP; - return -1; -#endif -} - static int nftnl_expr_reject_snprintf_default(char *buf, size_t len, const struct nftnl_expr *e) { @@ -224,6 +201,5 @@ struct expr_ops expr_ops_reject = { .parse = nftnl_expr_reject_parse, .build = nftnl_expr_reject_build, .snprintf = nftnl_expr_reject_snprintf, - .xml_parse = nftnl_expr_reject_xml_parse, .json_parse = nftnl_expr_reject_json_parse, }; diff --git a/src/expr/target.c b/src/expr/target.c index 5a3301c..ed4bf7d 100644 --- a/src/expr/target.c +++ b/src/expr/target.c @@ -182,27 +182,6 @@ nftnl_expr_target_json_parse(struct nftnl_expr *e, json_t *root, #endif } -static int -nftnl_expr_target_xml_parse(struct nftnl_expr *e, mxml_node_t *tree, - struct nftnl_parse_err *err) -{ -#ifdef XML_PARSING - const char *name; - - name = nftnl_mxml_str_parse(tree, "name", MXML_DESCEND_FIRST, - NFTNL_XML_MAND, err); - if (name != NULL) - nftnl_expr_set_str(e, NFTNL_EXPR_TG_NAME, name); - - /* tg->info is ignored until other solution is reached */ - - return 0; -#else - errno = EOPNOTSUPP; - return -1; -#endif -} - static int nftnl_rule_exp_target_export(char *buf, size_t size, const struct nftnl_expr *e, int type) { @@ -271,6 +250,5 @@ struct expr_ops expr_ops_target = { .parse = nftnl_expr_target_parse, .build = nftnl_expr_target_build, .snprintf = nftnl_expr_target_snprintf, - .xml_parse = nftnl_expr_target_xml_parse, .json_parse = nftnl_expr_target_json_parse, }; -- cgit v1.2.3