mirror of
https://git.netfilter.org/libnftnl
synced 2026-01-26 10:34:27 +00:00
src: get rid of aliases and compat
This machinery was introduced to avoid sudden compilation breakage of old nftables releases. With the upcoming release of 0.7 (and 0.6 which is now 6 months old) this is not required anymore. Moreover, users gain nothing from older releases since they are half-boiled and buggy. So let's get rid of aliases now. Bump LIBVERSION and update map file. Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
This commit is contained in:
parent
15615aa6ce
commit
907a9f8e5a
@ -18,7 +18,7 @@
|
||||
# set age to 0.
|
||||
# </snippet>
|
||||
#
|
||||
LIBVERSION=6:0:2
|
||||
LIBVERSION=7:0:0
|
||||
|
||||
AM_CPPFLAGS = ${regular_CPPFLAGS} -I${top_srcdir}/include ${LIBMNL_CFLAGS} ${LIBMXML_CFLAGS}
|
||||
AM_CFLAGS = ${regular_CFLAGS} ${GCC_FVISIBILITY_HIDDEN}
|
||||
|
||||
@ -72,7 +72,7 @@ RECURSIVE = YES
|
||||
EXCLUDE =
|
||||
EXCLUDE_SYMLINKS = NO
|
||||
EXCLUDE_PATTERNS = */.git/* .*.d
|
||||
EXCLUDE_SYMBOLS = EXPORT_SYMBOL EXPORT_SYMBOL_ALIAS nft_table
|
||||
EXCLUDE_SYMBOLS = EXPORT_SYMBOL
|
||||
EXAMPLE_PATH =
|
||||
EXAMPLE_PATTERNS =
|
||||
EXAMPLE_RECURSIVE = NO
|
||||
|
||||
@ -15,20 +15,4 @@ uint32_t nftnl_batch_buffer_len(struct nftnl_batch *batch);
|
||||
int nftnl_batch_iovec_len(struct nftnl_batch *batch);
|
||||
void nftnl_batch_iovec(struct nftnl_batch *batch, struct iovec *iov, uint32_t iovlen);
|
||||
|
||||
/*
|
||||
* Compat
|
||||
*/
|
||||
|
||||
struct nft_batch;
|
||||
|
||||
struct nft_batch *nft_batch_alloc(uint32_t pg_size, uint32_t pg_overrun_size);
|
||||
int nft_batch_update(struct nft_batch *batch);
|
||||
void nft_batch_free(struct nft_batch *batch);
|
||||
|
||||
void *nft_batch_buffer(struct nft_batch *batch);
|
||||
uint32_t nft_batch_buffer_len(struct nft_batch *batch);
|
||||
|
||||
int nft_batch_iovec_len(struct nft_batch *batch);
|
||||
void nft_batch_iovec(struct nft_batch *batch, struct iovec *iov, uint32_t iovlen);
|
||||
|
||||
#endif
|
||||
|
||||
@ -85,83 +85,6 @@ struct nftnl_chain_list_iter *nftnl_chain_list_iter_create(const struct nftnl_ch
|
||||
struct nftnl_chain *nftnl_chain_list_iter_next(struct nftnl_chain_list_iter *iter);
|
||||
void nftnl_chain_list_iter_destroy(struct nftnl_chain_list_iter *iter);
|
||||
|
||||
/*
|
||||
* Compat
|
||||
*/
|
||||
|
||||
struct nft_chain;
|
||||
|
||||
struct nft_chain *nft_chain_alloc(void);
|
||||
void nft_chain_free(struct nft_chain *);
|
||||
|
||||
enum {
|
||||
NFT_CHAIN_ATTR_NAME = 0,
|
||||
NFT_CHAIN_ATTR_FAMILY,
|
||||
NFT_CHAIN_ATTR_TABLE,
|
||||
NFT_CHAIN_ATTR_HOOKNUM,
|
||||
NFT_CHAIN_ATTR_PRIO = 4,
|
||||
NFT_CHAIN_ATTR_POLICY,
|
||||
NFT_CHAIN_ATTR_USE,
|
||||
NFT_CHAIN_ATTR_BYTES,
|
||||
NFT_CHAIN_ATTR_PACKETS = 8,
|
||||
NFT_CHAIN_ATTR_HANDLE,
|
||||
NFT_CHAIN_ATTR_TYPE,
|
||||
NFT_CHAIN_ATTR_DEV,
|
||||
__NFT_CHAIN_ATTR_MAX
|
||||
};
|
||||
#define NFT_CHAIN_ATTR_MAX (__NFT_CHAIN_ATTR_MAX - 1)
|
||||
|
||||
bool nft_chain_attr_is_set(const struct nft_chain *c, uint16_t attr);
|
||||
void nft_chain_attr_unset(struct nft_chain *c, uint16_t attr);
|
||||
void nft_chain_attr_set(struct nft_chain *t, uint16_t attr, const void *data);
|
||||
void nft_chain_attr_set_data(struct nft_chain *t, uint16_t attr,
|
||||
const void *data, uint32_t data_len);
|
||||
void nft_chain_attr_set_u8(struct nft_chain *t, uint16_t attr, uint8_t data);
|
||||
void nft_chain_attr_set_u32(struct nft_chain *t, uint16_t attr, uint32_t data);
|
||||
void nft_chain_attr_set_s32(struct nft_chain *t, uint16_t attr, int32_t data);
|
||||
void nft_chain_attr_set_u64(struct nft_chain *t, uint16_t attr, uint64_t data);
|
||||
void nft_chain_attr_set_str(struct nft_chain *t, uint16_t attr, const char *str);
|
||||
|
||||
const void *nft_chain_attr_get(struct nft_chain *c, uint16_t attr);
|
||||
const void *nft_chain_attr_get_data(struct nft_chain *c, uint16_t attr,
|
||||
uint32_t *data_len);
|
||||
const char *nft_chain_attr_get_str(struct nft_chain *c, uint16_t attr);
|
||||
uint8_t nft_chain_attr_get_u8(struct nft_chain *c, uint16_t attr);
|
||||
uint32_t nft_chain_attr_get_u32(struct nft_chain *c, uint16_t attr);
|
||||
int32_t nft_chain_attr_get_s32(struct nft_chain *c, uint16_t attr);
|
||||
uint64_t nft_chain_attr_get_u64(struct nft_chain *c, uint16_t attr);
|
||||
|
||||
struct nlmsghdr;
|
||||
|
||||
void nft_chain_nlmsg_build_payload(struct nlmsghdr *nlh, const struct nft_chain *t);
|
||||
|
||||
int nft_chain_parse(struct nft_chain *c, enum nft_parse_type type,
|
||||
const char *data, struct nft_parse_err *err);
|
||||
int nft_chain_parse_file(struct nft_chain *c, enum nft_parse_type type,
|
||||
FILE *fp, struct nft_parse_err *err);
|
||||
int nft_chain_snprintf(char *buf, size_t size, struct nft_chain *t, uint32_t type, uint32_t flags);
|
||||
int nft_chain_fprintf(FILE *fp, struct nft_chain *c, uint32_t type, uint32_t flags);
|
||||
|
||||
#define nft_chain_nlmsg_build_hdr nft_nlmsg_build_hdr
|
||||
int nft_chain_nlmsg_parse(const struct nlmsghdr *nlh, struct nft_chain *t);
|
||||
|
||||
struct nft_chain_list;
|
||||
|
||||
struct nft_chain_list *nft_chain_list_alloc(void);
|
||||
void nft_chain_list_free(struct nft_chain_list *list);
|
||||
int nft_chain_list_is_empty(struct nft_chain_list *list);
|
||||
int nft_chain_list_foreach(struct nft_chain_list *chain_list, int (*cb)(struct nft_chain *t, void *data), void *data);
|
||||
|
||||
void nft_chain_list_add(struct nft_chain *r, struct nft_chain_list *list);
|
||||
void nft_chain_list_add_tail(struct nft_chain *r, struct nft_chain_list *list);
|
||||
void nft_chain_list_del(struct nft_chain *c);
|
||||
|
||||
struct nft_chain_list_iter;
|
||||
|
||||
struct nft_chain_list_iter *nft_chain_list_iter_create(const struct nft_chain_list *l);
|
||||
struct nft_chain *nft_chain_list_iter_next(struct nft_chain_list_iter *iter);
|
||||
void nft_chain_list_iter_destroy(struct nft_chain_list_iter *iter);
|
||||
|
||||
#ifdef __cplusplus
|
||||
} /* extern "C" */
|
||||
#endif
|
||||
|
||||
@ -52,57 +52,4 @@ int nftnl_batch_is_supported(void);
|
||||
void nftnl_batch_begin(char *buf, uint32_t seq);
|
||||
void nftnl_batch_end(char *buf, uint32_t seq);
|
||||
|
||||
/*
|
||||
* Compat
|
||||
*/
|
||||
|
||||
enum {
|
||||
NFT_PARSE_EBADINPUT = 0,
|
||||
NFT_PARSE_EMISSINGNODE,
|
||||
NFT_PARSE_EBADTYPE,
|
||||
NFT_PARSE_EOPNOTSUPP,
|
||||
};
|
||||
|
||||
enum nft_output_type {
|
||||
NFT_OUTPUT_DEFAULT = 0,
|
||||
NFT_OUTPUT_XML,
|
||||
NFT_OUTPUT_JSON,
|
||||
};
|
||||
|
||||
enum nft_output_flags {
|
||||
NFT_OF_EVENT_NEW = (1 << 0),
|
||||
NFT_OF_EVENT_DEL = (1 << 1),
|
||||
NFT_OF_EVENT_ANY = (NFT_OF_EVENT_NEW | NFT_OF_EVENT_DEL),
|
||||
};
|
||||
|
||||
enum nft_cmd_type {
|
||||
NFT_CMD_UNSPEC = 0,
|
||||
NFT_CMD_ADD,
|
||||
NFT_CMD_INSERT,
|
||||
NFT_CMD_DELETE,
|
||||
NFT_CMD_REPLACE,
|
||||
NFT_CMD_FLUSH,
|
||||
NFT_CMD_MAX,
|
||||
};
|
||||
|
||||
enum nft_parse_type {
|
||||
NFT_PARSE_NONE = 0,
|
||||
NFT_PARSE_XML,
|
||||
NFT_PARSE_JSON,
|
||||
NFT_PARSE_MAX,
|
||||
};
|
||||
|
||||
struct nft_parse_err;
|
||||
|
||||
struct nlmsghdr *nft_nlmsg_build_hdr(char *buf, uint16_t cmd, uint16_t family,
|
||||
uint16_t type, uint32_t seq);
|
||||
|
||||
struct nft_parse_err *nft_parse_err_alloc(void);
|
||||
void nft_parse_err_free(struct nft_parse_err *);
|
||||
int nft_parse_perror(const char *str, struct nft_parse_err *err);
|
||||
|
||||
int nft_batch_is_supported(void);
|
||||
void nft_batch_begin(char *buf, uint32_t seq);
|
||||
void nft_batch_end(char *buf, uint32_t seq);
|
||||
|
||||
#endif
|
||||
|
||||
@ -243,182 +243,6 @@ enum {
|
||||
NFTNL_EXPR_OBJREF_SET_ID,
|
||||
};
|
||||
|
||||
/*
|
||||
* Compat
|
||||
*/
|
||||
|
||||
struct nft_rule_expr;
|
||||
|
||||
enum {
|
||||
NFT_RULE_EXPR_ATTR_NAME = 0,
|
||||
NFT_RULE_EXPR_ATTR_BASE,
|
||||
};
|
||||
|
||||
struct nft_rule_expr *nft_rule_expr_alloc(const char *name);
|
||||
void nft_rule_expr_free(struct nft_rule_expr *expr);
|
||||
|
||||
bool nft_rule_expr_is_set(const struct nft_rule_expr *expr, uint16_t type);
|
||||
void nft_rule_expr_set(struct nft_rule_expr *expr, uint16_t type, const void *data, uint32_t data_len);
|
||||
#define nft_rule_expr_set_data nft_rule_expr_set
|
||||
void nft_rule_expr_set_u8(struct nft_rule_expr *expr, uint16_t type, uint8_t data);
|
||||
void nft_rule_expr_set_u16(struct nft_rule_expr *expr, uint16_t type, uint16_t data);
|
||||
void nft_rule_expr_set_u32(struct nft_rule_expr *expr, uint16_t type, uint32_t data);
|
||||
void nft_rule_expr_set_u64(struct nft_rule_expr *expr, uint16_t type, uint64_t data);
|
||||
void nft_rule_expr_set_str(struct nft_rule_expr *expr, uint16_t type, const char *str);
|
||||
|
||||
const void *nft_rule_expr_get(const struct nft_rule_expr *expr, uint16_t type, uint32_t *data_len);
|
||||
#define nft_rule_expr_get_data nft_rule_expr_get
|
||||
uint8_t nft_rule_expr_get_u8(const struct nft_rule_expr *expr, uint16_t type);
|
||||
uint16_t nft_rule_expr_get_u16(const struct nft_rule_expr *expr, uint16_t type);
|
||||
uint32_t nft_rule_expr_get_u32(const struct nft_rule_expr *expr, uint16_t type);
|
||||
uint64_t nft_rule_expr_get_u64(const struct nft_rule_expr *expr, uint16_t type);
|
||||
const char *nft_rule_expr_get_str(const struct nft_rule_expr *expr, uint16_t type);
|
||||
|
||||
int nft_rule_expr_snprintf(char *buf, size_t buflen, struct nft_rule_expr *expr, uint32_t type, uint32_t flags);
|
||||
|
||||
enum {
|
||||
NFT_EXPR_PAYLOAD_DREG = NFT_RULE_EXPR_ATTR_BASE,
|
||||
NFT_EXPR_PAYLOAD_BASE,
|
||||
NFT_EXPR_PAYLOAD_OFFSET,
|
||||
NFT_EXPR_PAYLOAD_LEN,
|
||||
NFT_EXPR_PAYLOAD_SREG,
|
||||
NFT_EXPR_PAYLOAD_CSUM_TYPE,
|
||||
NFT_EXPR_PAYLOAD_CSUM_OFFSET,
|
||||
};
|
||||
|
||||
enum {
|
||||
NFT_EXPR_META_KEY = NFT_RULE_EXPR_ATTR_BASE,
|
||||
NFT_EXPR_META_DREG,
|
||||
NFT_EXPR_META_SREG,
|
||||
};
|
||||
|
||||
enum {
|
||||
NFT_EXPR_RT_KEY = NFT_RULE_EXPR_ATTR_BASE,
|
||||
NFT_EXPR_RT_DREG,
|
||||
};
|
||||
|
||||
enum {
|
||||
NFT_EXPR_CMP_SREG = NFT_RULE_EXPR_ATTR_BASE,
|
||||
NFT_EXPR_CMP_OP,
|
||||
NFT_EXPR_CMP_DATA,
|
||||
};
|
||||
|
||||
enum {
|
||||
NFT_EXPR_IMM_DREG = NFT_RULE_EXPR_ATTR_BASE,
|
||||
NFT_EXPR_IMM_DATA,
|
||||
NFT_EXPR_IMM_VERDICT,
|
||||
NFT_EXPR_IMM_CHAIN,
|
||||
};
|
||||
|
||||
enum {
|
||||
NFT_EXPR_CTR_PACKETS = NFT_RULE_EXPR_ATTR_BASE,
|
||||
NFT_EXPR_CTR_BYTES,
|
||||
};
|
||||
|
||||
enum {
|
||||
NFT_EXPR_BITWISE_SREG = NFT_RULE_EXPR_ATTR_BASE,
|
||||
NFT_EXPR_BITWISE_DREG,
|
||||
NFT_EXPR_BITWISE_LEN,
|
||||
NFT_EXPR_BITWISE_MASK,
|
||||
NFT_EXPR_BITWISE_XOR,
|
||||
};
|
||||
|
||||
enum {
|
||||
NFT_EXPR_TG_NAME = NFT_RULE_EXPR_ATTR_BASE,
|
||||
NFT_EXPR_TG_REV,
|
||||
NFT_EXPR_TG_INFO,
|
||||
};
|
||||
|
||||
enum {
|
||||
NFT_EXPR_MT_NAME = NFT_RULE_EXPR_ATTR_BASE,
|
||||
NFT_EXPR_MT_REV,
|
||||
NFT_EXPR_MT_INFO,
|
||||
};
|
||||
|
||||
enum {
|
||||
NFT_EXPR_NAT_TYPE = NFT_RULE_EXPR_ATTR_BASE,
|
||||
NFT_EXPR_NAT_FAMILY,
|
||||
NFT_EXPR_NAT_REG_ADDR_MIN,
|
||||
NFT_EXPR_NAT_REG_ADDR_MAX,
|
||||
NFT_EXPR_NAT_REG_PROTO_MIN,
|
||||
NFT_EXPR_NAT_REG_PROTO_MAX,
|
||||
NFT_EXPR_NAT_FLAGS,
|
||||
};
|
||||
|
||||
enum {
|
||||
NFT_EXPR_LOOKUP_SREG = NFT_RULE_EXPR_ATTR_BASE,
|
||||
NFT_EXPR_LOOKUP_DREG,
|
||||
NFT_EXPR_LOOKUP_SET,
|
||||
NFT_EXPR_LOOKUP_SET_ID,
|
||||
};
|
||||
|
||||
enum {
|
||||
NFT_EXPR_DYNSET_SREG_KEY = NFT_RULE_EXPR_ATTR_BASE,
|
||||
NFT_EXPR_DYNSET_SREG_DATA,
|
||||
NFT_EXPR_DYNSET_OP,
|
||||
NFT_EXPR_DYNSET_TIMEOUT,
|
||||
NFT_EXPR_DYNSET_SET_NAME,
|
||||
NFT_EXPR_DYNSET_SET_ID,
|
||||
NFT_EXPR_DYNSET_EXPR,
|
||||
};
|
||||
|
||||
enum {
|
||||
NFT_EXPR_LOG_PREFIX = NFT_RULE_EXPR_ATTR_BASE,
|
||||
NFT_EXPR_LOG_GROUP,
|
||||
NFT_EXPR_LOG_SNAPLEN,
|
||||
NFT_EXPR_LOG_QTHRESHOLD,
|
||||
NFT_EXPR_LOG_LEVEL,
|
||||
NFT_EXPR_LOG_FLAGS,
|
||||
};
|
||||
|
||||
enum {
|
||||
NFT_EXPR_EXTHDR_DREG = NFT_RULE_EXPR_ATTR_BASE,
|
||||
NFT_EXPR_EXTHDR_TYPE,
|
||||
NFT_EXPR_EXTHDR_OFFSET,
|
||||
NFT_EXPR_EXTHDR_LEN,
|
||||
};
|
||||
|
||||
enum {
|
||||
NFT_EXPR_CT_DREG = NFT_RULE_EXPR_ATTR_BASE,
|
||||
NFT_EXPR_CT_KEY,
|
||||
NFT_EXPR_CT_DIR,
|
||||
NFT_EXPR_CT_SREG,
|
||||
};
|
||||
|
||||
enum {
|
||||
NFT_EXPR_BYTEORDER_DREG = NFT_RULE_EXPR_ATTR_BASE,
|
||||
NFT_EXPR_BYTEORDER_SREG,
|
||||
NFT_EXPR_BYTEORDER_OP,
|
||||
NFT_EXPR_BYTEORDER_LEN,
|
||||
NFT_EXPR_BYTEORDER_SIZE,
|
||||
};
|
||||
|
||||
enum {
|
||||
NFT_EXPR_LIMIT_RATE = NFT_RULE_EXPR_ATTR_BASE,
|
||||
NFT_EXPR_LIMIT_UNIT,
|
||||
};
|
||||
|
||||
enum {
|
||||
NFT_EXPR_REJECT_TYPE = NFT_RULE_EXPR_ATTR_BASE,
|
||||
NFT_EXPR_REJECT_CODE,
|
||||
};
|
||||
|
||||
enum {
|
||||
NFT_EXPR_QUEUE_NUM = NFT_RULE_EXPR_ATTR_BASE,
|
||||
NFT_EXPR_QUEUE_TOTAL,
|
||||
NFT_EXPR_QUEUE_FLAGS,
|
||||
};
|
||||
|
||||
enum {
|
||||
NFT_EXPR_MASQ_FLAGS = NFT_RULE_EXPR_ATTR_BASE,
|
||||
};
|
||||
|
||||
enum {
|
||||
NFT_EXPR_REDIR_REG_PROTO_MIN = NFT_RULE_EXPR_ATTR_BASE,
|
||||
NFT_EXPR_REDIR_REG_PROTO_MAX,
|
||||
NFT_EXPR_REDIR_FLAGS,
|
||||
};
|
||||
|
||||
#ifdef __cplusplus
|
||||
} /* extern "C" */
|
||||
#endif
|
||||
|
||||
@ -44,42 +44,6 @@ int nftnl_gen_fprintf(FILE *fp, const struct nftnl_gen *gen, uint32_t type, uint
|
||||
#define nftnl_gen_nlmsg_build_hdr nftnl_nlmsg_build_hdr
|
||||
int nftnl_gen_nlmsg_parse(const struct nlmsghdr *nlh, struct nftnl_gen *gen);
|
||||
|
||||
/*
|
||||
* Compat
|
||||
*/
|
||||
|
||||
struct nft_gen;
|
||||
|
||||
struct nft_gen *nft_gen_alloc(void);
|
||||
void nft_gen_free(struct nft_gen *);
|
||||
|
||||
enum {
|
||||
NFT_GEN_ID = 0,
|
||||
__NFT_GEN_MAX
|
||||
};
|
||||
#define NFT_GEN_MAX (__NFT_GEN_MAX - 1)
|
||||
|
||||
bool nft_gen_attr_is_set(const struct nft_gen *gen, uint16_t attr);
|
||||
void nft_gen_attr_unset(struct nft_gen *gen, uint16_t attr);
|
||||
void nft_gen_attr_set(struct nft_gen *gen, uint16_t attr, const void *data);
|
||||
void nft_gen_attr_set_data(struct nft_gen *gen, uint16_t attr,
|
||||
const void *data, uint32_t data_len);
|
||||
const void *nft_gen_attr_get(struct nft_gen *gen, uint16_t attr);
|
||||
const void *nft_gen_attr_get_data(struct nft_gen *gen, uint16_t attr,
|
||||
uint32_t *data_len);
|
||||
|
||||
void nft_gen_attr_set_u32(struct nft_gen *gen, uint16_t attr, uint32_t data);
|
||||
uint32_t nft_gen_attr_get_u32(struct nft_gen *gen, uint16_t attr);
|
||||
|
||||
struct nlmsghdr;
|
||||
int nft_gen_nlmsg_parse(const struct nlmsghdr *nlh, struct nft_gen *gen);
|
||||
|
||||
int nft_gen_snprintf(char *buf, size_t size, struct nft_gen *gen, uint32_t type, uint32_t flags);
|
||||
int nft_gen_fprintf(FILE *fp, struct nft_gen *gen, uint32_t type, uint32_t flags);
|
||||
|
||||
#define nft_gen_nlmsg_build_hdr nft_nlmsg_build_hdr
|
||||
int nft_gen_nlmsg_parse(const struct nlmsghdr *nlh, struct nft_gen *gen);
|
||||
|
||||
#ifdef __cplusplus
|
||||
} /* extern "C" */
|
||||
#endif
|
||||
|
||||
@ -93,89 +93,6 @@ struct nftnl_rule *nftnl_rule_list_iter_cur(struct nftnl_rule_list_iter *iter);
|
||||
struct nftnl_rule *nftnl_rule_list_iter_next(struct nftnl_rule_list_iter *iter);
|
||||
void nftnl_rule_list_iter_destroy(const struct nftnl_rule_list_iter *iter);
|
||||
|
||||
/*
|
||||
* Compat
|
||||
*/
|
||||
|
||||
struct nft_rule;
|
||||
struct nft_rule_expr;
|
||||
|
||||
struct nft_rule *nft_rule_alloc(void);
|
||||
void nft_rule_free(struct nft_rule *);
|
||||
|
||||
enum {
|
||||
NFT_RULE_ATTR_FAMILY = 0,
|
||||
NFT_RULE_ATTR_TABLE,
|
||||
NFT_RULE_ATTR_CHAIN,
|
||||
NFT_RULE_ATTR_HANDLE,
|
||||
NFT_RULE_ATTR_COMPAT_PROTO,
|
||||
NFT_RULE_ATTR_COMPAT_FLAGS,
|
||||
NFT_RULE_ATTR_POSITION,
|
||||
NFT_RULE_ATTR_USERDATA,
|
||||
__NFT_RULE_ATTR_MAX
|
||||
};
|
||||
#define NFT_RULE_ATTR_MAX (__NFT_RULE_ATTR_MAX - 1)
|
||||
|
||||
void nft_rule_attr_unset(struct nft_rule *r, uint16_t attr);
|
||||
bool nft_rule_attr_is_set(const struct nft_rule *r, uint16_t attr);
|
||||
void nft_rule_attr_set(struct nft_rule *r, uint16_t attr, const void *data);
|
||||
void nft_rule_attr_set_data(struct nft_rule *r, uint16_t attr,
|
||||
const void *data, uint32_t data_len);
|
||||
void nft_rule_attr_set_u32(struct nft_rule *r, uint16_t attr, uint32_t val);
|
||||
void nft_rule_attr_set_u64(struct nft_rule *r, uint16_t attr, uint64_t val);
|
||||
void nft_rule_attr_set_str(struct nft_rule *r, uint16_t attr, const char *str);
|
||||
|
||||
const void *nft_rule_attr_get(const struct nft_rule *r, uint16_t attr);
|
||||
const void *nft_rule_attr_get_data(const struct nft_rule *r, uint16_t attr,
|
||||
uint32_t *data_len);
|
||||
const char *nft_rule_attr_get_str(const struct nft_rule *r, uint16_t attr);
|
||||
uint8_t nft_rule_attr_get_u8(const struct nft_rule *r, uint16_t attr);
|
||||
uint32_t nft_rule_attr_get_u32(const struct nft_rule *r, uint16_t attr);
|
||||
uint64_t nft_rule_attr_get_u64(const struct nft_rule *r, uint16_t attr);
|
||||
|
||||
void nft_rule_add_expr(struct nft_rule *r, struct nft_rule_expr *expr);
|
||||
|
||||
struct nlmsghdr;
|
||||
|
||||
void nft_rule_nlmsg_build_payload(struct nlmsghdr *nlh, struct nft_rule *t);
|
||||
|
||||
int nft_rule_parse(struct nft_rule *r, enum nft_parse_type type,
|
||||
const char *data, struct nft_parse_err *err);
|
||||
int nft_rule_parse_file(struct nft_rule *r, enum nft_parse_type type,
|
||||
FILE *fp, struct nft_parse_err *err);
|
||||
int nft_rule_snprintf(char *buf, size_t size, struct nft_rule *t, uint32_t type, uint32_t flags);
|
||||
int nft_rule_fprintf(FILE *fp, struct nft_rule *r, uint32_t type, uint32_t flags);
|
||||
|
||||
#define nft_rule_nlmsg_build_hdr nft_nlmsg_build_hdr
|
||||
int nft_rule_nlmsg_parse(const struct nlmsghdr *nlh, struct nft_rule *t);
|
||||
|
||||
int nft_rule_expr_foreach(struct nft_rule *r,
|
||||
int (*cb)(struct nft_rule_expr *e, void *data),
|
||||
void *data);
|
||||
|
||||
struct nft_rule_expr_iter;
|
||||
|
||||
struct nft_rule_expr_iter *nft_rule_expr_iter_create(const struct nft_rule *r);
|
||||
struct nft_rule_expr *nft_rule_expr_iter_next(struct nft_rule_expr_iter *iter);
|
||||
void nft_rule_expr_iter_destroy(struct nft_rule_expr_iter *iter);
|
||||
|
||||
struct nft_rule_list;
|
||||
|
||||
struct nft_rule_list *nft_rule_list_alloc(void);
|
||||
void nft_rule_list_free(struct nft_rule_list *list);
|
||||
int nft_rule_list_is_empty(struct nft_rule_list *list);
|
||||
void nft_rule_list_add(struct nft_rule *r, struct nft_rule_list *list);
|
||||
void nft_rule_list_add_tail(struct nft_rule *r, struct nft_rule_list *list);
|
||||
void nft_rule_list_del(struct nft_rule *r);
|
||||
int nft_rule_list_foreach(struct nft_rule_list *rule_list, int (*cb)(struct nft_rule *t, void *data), void *data);
|
||||
|
||||
struct nft_rule_list_iter;
|
||||
|
||||
struct nft_rule_list_iter *nft_rule_list_iter_create(const struct nft_rule_list *l);
|
||||
struct nft_rule *nft_rule_list_iter_cur(struct nft_rule_list_iter *iter);
|
||||
struct nft_rule *nft_rule_list_iter_next(struct nft_rule_list_iter *iter);
|
||||
void nft_rule_list_iter_destroy(struct nft_rule_list_iter *iter);
|
||||
|
||||
#ifdef __cplusplus
|
||||
} /* extern "C" */
|
||||
#endif
|
||||
|
||||
@ -70,67 +70,6 @@ int nftnl_ruleset_parse_file(struct nftnl_ruleset *rs, enum nftnl_parse_type typ
|
||||
int nftnl_ruleset_snprintf(char *buf, size_t size, const struct nftnl_ruleset *rs, uint32_t type, uint32_t flags);
|
||||
int nftnl_ruleset_fprintf(FILE *fp, const struct nftnl_ruleset *rs, uint32_t type, uint32_t flags);
|
||||
|
||||
/*
|
||||
* Compat
|
||||
*/
|
||||
|
||||
struct nft_ruleset;
|
||||
|
||||
struct nft_ruleset *nft_ruleset_alloc(void);
|
||||
void nft_ruleset_free(struct nft_ruleset *r);
|
||||
|
||||
enum {
|
||||
NFT_RULESET_ATTR_TABLELIST = 0,
|
||||
NFT_RULESET_ATTR_CHAINLIST,
|
||||
NFT_RULESET_ATTR_SETLIST,
|
||||
NFT_RULESET_ATTR_RULELIST,
|
||||
};
|
||||
|
||||
enum nft_ruleset_type {
|
||||
NFT_RULESET_UNSPEC = 0,
|
||||
NFT_RULESET_RULESET,
|
||||
NFT_RULESET_TABLE,
|
||||
NFT_RULESET_CHAIN,
|
||||
NFT_RULESET_RULE,
|
||||
NFT_RULESET_SET,
|
||||
NFT_RULESET_SET_ELEMS,
|
||||
};
|
||||
|
||||
bool nft_ruleset_attr_is_set(const struct nft_ruleset *r, uint16_t attr);
|
||||
void nft_ruleset_attr_unset(struct nft_ruleset *r, uint16_t attr);
|
||||
void nft_ruleset_attr_set(struct nft_ruleset *r, uint16_t attr, void *data);
|
||||
void *nft_ruleset_attr_get(const struct nft_ruleset *r, uint16_t attr);
|
||||
|
||||
enum {
|
||||
NFT_RULESET_CTX_CMD = 0,
|
||||
NFT_RULESET_CTX_TYPE,
|
||||
NFT_RULESET_CTX_TABLE,
|
||||
NFT_RULESET_CTX_CHAIN,
|
||||
NFT_RULESET_CTX_RULE,
|
||||
NFT_RULESET_CTX_SET,
|
||||
NFT_RULESET_CTX_DATA,
|
||||
};
|
||||
|
||||
struct nft_parse_ctx;
|
||||
void nft_ruleset_ctx_free(const struct nft_parse_ctx *ctx);
|
||||
bool nft_ruleset_ctx_is_set(const struct nft_parse_ctx *ctx, uint16_t attr);
|
||||
void *nft_ruleset_ctx_get(const struct nft_parse_ctx *ctx, uint16_t attr);
|
||||
uint32_t nft_ruleset_ctx_get_u32(const struct nft_parse_ctx *ctx,
|
||||
uint16_t attr);
|
||||
|
||||
int nft_ruleset_parse_file_cb(enum nft_parse_type type, FILE *fp,
|
||||
struct nft_parse_err *err, void *data,
|
||||
int (*cb)(const struct nft_parse_ctx *ctx));
|
||||
int nft_ruleset_parse_buffer_cb(enum nft_parse_type type, const char *buffer,
|
||||
struct nft_parse_err *err, void *data,
|
||||
int (*cb)(const struct nft_parse_ctx *ctx));
|
||||
int nft_ruleset_parse(struct nft_ruleset *rs, enum nft_parse_type type,
|
||||
const char *data, struct nft_parse_err *err);
|
||||
int nft_ruleset_parse_file(struct nft_ruleset *rs, enum nft_parse_type type,
|
||||
FILE *fp, struct nft_parse_err *err);
|
||||
int nft_ruleset_snprintf(char *buf, size_t size, const struct nft_ruleset *rs, uint32_t type, uint32_t flags);
|
||||
int nft_ruleset_fprintf(FILE *fp, const struct nft_ruleset *rs, uint32_t type, uint32_t flags);
|
||||
|
||||
#ifdef __cplusplus
|
||||
} /* extern "C" */
|
||||
#endif
|
||||
|
||||
@ -143,140 +143,4 @@ void nftnl_set_elems_iter_destroy(struct nftnl_set_elems_iter *iter);
|
||||
int nftnl_set_elems_nlmsg_build_payload_iter(struct nlmsghdr *nlh,
|
||||
struct nftnl_set_elems_iter *iter);
|
||||
|
||||
/*
|
||||
* Compat
|
||||
*/
|
||||
|
||||
enum {
|
||||
NFT_SET_ATTR_TABLE,
|
||||
NFT_SET_ATTR_NAME,
|
||||
NFT_SET_ATTR_FLAGS,
|
||||
NFT_SET_ATTR_KEY_TYPE,
|
||||
NFT_SET_ATTR_KEY_LEN,
|
||||
NFT_SET_ATTR_DATA_TYPE,
|
||||
NFT_SET_ATTR_DATA_LEN,
|
||||
NFT_SET_ATTR_FAMILY,
|
||||
NFT_SET_ATTR_ID,
|
||||
NFT_SET_ATTR_POLICY,
|
||||
NFT_SET_ATTR_DESC_SIZE,
|
||||
NFT_SET_ATTR_TIMEOUT,
|
||||
NFT_SET_ATTR_GC_INTERVAL,
|
||||
__NFT_SET_ATTR_MAX
|
||||
};
|
||||
#define NFT_SET_ATTR_MAX (__NFT_SET_ATTR_MAX - 1)
|
||||
|
||||
struct nft_set;
|
||||
|
||||
struct nft_set *nft_set_alloc(void);
|
||||
void nft_set_free(struct nft_set *s);
|
||||
|
||||
struct nft_set *nft_set_clone(const struct nft_set *set);
|
||||
|
||||
bool nft_set_attr_is_set(const struct nft_set *s, uint16_t attr);
|
||||
void nft_set_attr_unset(struct nft_set *s, uint16_t attr);
|
||||
void nft_set_attr_set(struct nft_set *s, uint16_t attr, const void *data);
|
||||
void nft_set_attr_set_data(struct nft_set *s, uint16_t attr, const void *data,
|
||||
uint32_t data_len);
|
||||
void nft_set_attr_set_u32(struct nft_set *s, uint16_t attr, uint32_t val);
|
||||
void nft_set_attr_set_u64(struct nft_set *s, uint16_t attr, uint64_t val);
|
||||
void nft_set_attr_set_str(struct nft_set *s, uint16_t attr, const char *str);
|
||||
|
||||
const void *nft_set_attr_get(struct nft_set *s, uint16_t attr);
|
||||
const void *nft_set_attr_get_data(struct nft_set *s, uint16_t attr,
|
||||
uint32_t *data_len);
|
||||
const char *nft_set_attr_get_str(struct nft_set *s, uint16_t attr);
|
||||
uint32_t nft_set_attr_get_u32(struct nft_set *s, uint16_t attr);
|
||||
uint64_t nft_set_attr_get_u64(struct nft_set *s, uint16_t attr);
|
||||
|
||||
struct nlmsghdr;
|
||||
|
||||
#define nft_set_nlmsg_build_hdr nft_nlmsg_build_hdr
|
||||
void nft_set_nlmsg_build_payload(struct nlmsghdr *nlh, struct nft_set *s);
|
||||
int nft_set_nlmsg_parse(const struct nlmsghdr *nlh, struct nft_set *s);
|
||||
int nft_set_elems_nlmsg_parse(const struct nlmsghdr *nlh, struct nft_set *s);
|
||||
|
||||
int nft_set_snprintf(char *buf, size_t size, struct nft_set *s, uint32_t type, uint32_t flags);
|
||||
int nft_set_fprintf(FILE *fp, struct nft_set *s, uint32_t type, uint32_t flags);
|
||||
|
||||
struct nft_set_list;
|
||||
|
||||
struct nft_set_list *nft_set_list_alloc(void);
|
||||
void nft_set_list_free(struct nft_set_list *list);
|
||||
int nft_set_list_is_empty(struct nft_set_list *list);
|
||||
void nft_set_list_add(struct nft_set *s, struct nft_set_list *list);
|
||||
void nft_set_list_add_tail(struct nft_set *s, struct nft_set_list *list);
|
||||
void nft_set_list_del(struct nft_set *s);
|
||||
int nft_set_list_foreach(struct nft_set_list *set_list, int (*cb)(struct nft_set *t, void *data), void *data);
|
||||
|
||||
struct nft_set_list_iter;
|
||||
struct nft_set_list_iter *nft_set_list_iter_create(const struct nft_set_list *l);
|
||||
struct nft_set *nft_set_list_iter_cur(const struct nft_set_list_iter *iter);
|
||||
struct nft_set *nft_set_list_iter_next(struct nft_set_list_iter *iter);
|
||||
void nft_set_list_iter_destroy(struct nft_set_list_iter *iter);
|
||||
|
||||
int nft_set_parse(struct nft_set *s, enum nft_parse_type type,
|
||||
const char *data, struct nft_parse_err *err);
|
||||
int nft_set_parse_file(struct nft_set *s, enum nft_parse_type type,
|
||||
FILE *fp, struct nft_parse_err *err);
|
||||
|
||||
/*
|
||||
* Set elements
|
||||
*/
|
||||
|
||||
enum {
|
||||
NFT_SET_ELEM_ATTR_FLAGS,
|
||||
NFT_SET_ELEM_ATTR_KEY,
|
||||
NFT_SET_ELEM_ATTR_VERDICT,
|
||||
NFT_SET_ELEM_ATTR_CHAIN,
|
||||
NFT_SET_ELEM_ATTR_DATA,
|
||||
NFT_SET_ELEM_ATTR_TIMEOUT,
|
||||
NFT_SET_ELEM_ATTR_EXPIRATION,
|
||||
NFT_SET_ELEM_ATTR_USERDATA,
|
||||
NFT_SET_ELEM_ATTR_EXPR,
|
||||
};
|
||||
|
||||
struct nft_set_elem;
|
||||
|
||||
struct nft_set_elem *nft_set_elem_alloc(void);
|
||||
void nft_set_elem_free(struct nft_set_elem *s);
|
||||
|
||||
struct nft_set_elem *nft_set_elem_clone(struct nft_set_elem *elem);
|
||||
|
||||
void nft_set_elem_add(struct nft_set *s, struct nft_set_elem *elem);
|
||||
|
||||
void nft_set_elem_attr_unset(struct nft_set_elem *s, uint16_t attr);
|
||||
void nft_set_elem_attr_set(struct nft_set_elem *s, uint16_t attr, const void *data, uint32_t data_len);
|
||||
void nft_set_elem_attr_set_u32(struct nft_set_elem *s, uint16_t attr, uint32_t val);
|
||||
void nft_set_elem_attr_set_u64(struct nft_set_elem *s, uint16_t attr, uint64_t val);
|
||||
void nft_set_elem_attr_set_str(struct nft_set_elem *s, uint16_t attr, const char *str);
|
||||
|
||||
const void *nft_set_elem_attr_get(struct nft_set_elem *s, uint16_t attr, uint32_t *data_len);
|
||||
const char *nft_set_elem_attr_get_str(struct nft_set_elem *s, uint16_t attr);
|
||||
uint32_t nft_set_elem_attr_get_u32(struct nft_set_elem *s, uint16_t attr);
|
||||
uint64_t nft_set_elem_attr_get_u64(struct nft_set_elem *s, uint16_t attr);
|
||||
|
||||
bool nft_set_elem_attr_is_set(const struct nft_set_elem *s, uint16_t attr);
|
||||
|
||||
#define nft_set_elem_nlmsg_build_hdr nft_nlmsg_build_hdr
|
||||
void nft_set_elems_nlmsg_build_payload(struct nlmsghdr *nlh, struct nft_set *s);
|
||||
void nft_set_elem_nlmsg_build_payload(struct nlmsghdr *nlh, struct nft_set_elem *e);
|
||||
|
||||
int nft_set_elem_parse(struct nft_set_elem *e, enum nft_parse_type type,
|
||||
const char *data, struct nft_parse_err *err);
|
||||
int nft_set_elem_parse_file(struct nft_set_elem *e, enum nft_parse_type type,
|
||||
FILE *fp, struct nft_parse_err *err);
|
||||
int nft_set_elem_snprintf(char *buf, size_t size, struct nft_set_elem *s, uint32_t type, uint32_t flags);
|
||||
int nft_set_elem_fprintf(FILE *fp, struct nft_set_elem *se, uint32_t type, uint32_t flags);
|
||||
|
||||
int nft_set_elem_foreach(struct nft_set *s, int (*cb)(struct nft_set_elem *e, void *data), void *data);
|
||||
|
||||
struct nft_set_elems_iter;
|
||||
struct nft_set_elems_iter *nft_set_elems_iter_create(const struct nft_set *s);
|
||||
struct nft_set_elem *nft_set_elems_iter_cur(const struct nft_set_elems_iter *iter);
|
||||
struct nft_set_elem *nft_set_elems_iter_next(struct nft_set_elems_iter *iter);
|
||||
void nft_set_elems_iter_destroy(struct nft_set_elems_iter *iter);
|
||||
|
||||
int nft_set_elems_nlmsg_build_payload_iter(struct nlmsghdr *nlh,
|
||||
struct nft_set_elems_iter *iter);
|
||||
|
||||
#endif /* _LIBNFTNL_SET_H_ */
|
||||
|
||||
@ -73,71 +73,6 @@ struct nftnl_table_list_iter *nftnl_table_list_iter_create(const struct nftnl_ta
|
||||
struct nftnl_table *nftnl_table_list_iter_next(struct nftnl_table_list_iter *iter);
|
||||
void nftnl_table_list_iter_destroy(const struct nftnl_table_list_iter *iter);
|
||||
|
||||
/*
|
||||
* Compat
|
||||
*/
|
||||
|
||||
struct nft_table;
|
||||
|
||||
struct nft_table *nft_table_alloc(void);
|
||||
void nft_table_free(struct nft_table *);
|
||||
|
||||
enum {
|
||||
NFT_TABLE_ATTR_NAME = 0,
|
||||
NFT_TABLE_ATTR_FAMILY,
|
||||
NFT_TABLE_ATTR_FLAGS,
|
||||
NFT_TABLE_ATTR_USE,
|
||||
__NFT_TABLE_ATTR_MAX
|
||||
};
|
||||
#define NFT_TABLE_ATTR_MAX (__NFT_TABLE_ATTR_MAX - 1)
|
||||
|
||||
bool nft_table_attr_is_set(const struct nft_table *t, uint16_t attr);
|
||||
void nft_table_attr_unset(struct nft_table *t, uint16_t attr);
|
||||
void nft_table_attr_set(struct nft_table *t, uint16_t attr, const void *data);
|
||||
void nft_table_attr_set_data(struct nft_table *t, uint16_t attr,
|
||||
const void *data, uint32_t data_len);
|
||||
const void *nft_table_attr_get(struct nft_table *t, uint16_t attr);
|
||||
const void *nft_table_attr_get_data(struct nft_table *t, uint16_t attr,
|
||||
uint32_t *data_len);
|
||||
|
||||
void nft_table_attr_set_u8(struct nft_table *t, uint16_t attr, uint8_t data);
|
||||
void nft_table_attr_set_u32(struct nft_table *t, uint16_t attr, uint32_t data);
|
||||
void nft_table_attr_set_str(struct nft_table *t, uint16_t attr, const char *str);
|
||||
uint8_t nft_table_attr_get_u8(struct nft_table *t, uint16_t attr);
|
||||
uint32_t nft_table_attr_get_u32(struct nft_table *t, uint16_t attr);
|
||||
const char *nft_table_attr_get_str(struct nft_table *t, uint16_t attr);
|
||||
|
||||
struct nlmsghdr;
|
||||
|
||||
void nft_table_nlmsg_build_payload(struct nlmsghdr *nlh, const struct nft_table *t);
|
||||
|
||||
int nft_table_parse(struct nft_table *t, enum nft_parse_type type,
|
||||
const char *data, struct nft_parse_err *err);
|
||||
int nft_table_parse_file(struct nft_table *t, enum nft_parse_type type,
|
||||
FILE *fp, struct nft_parse_err *err);
|
||||
int nft_table_snprintf(char *buf, size_t size, struct nft_table *t, uint32_t type, uint32_t flags);
|
||||
int nft_table_fprintf(FILE *fp, struct nft_table *t, uint32_t type, uint32_t flags);
|
||||
|
||||
#define nft_table_nlmsg_build_hdr nft_nlmsg_build_hdr
|
||||
int nft_table_nlmsg_parse(const struct nlmsghdr *nlh, struct nft_table *t);
|
||||
|
||||
struct nft_table_list;
|
||||
|
||||
struct nft_table_list *nft_table_list_alloc(void);
|
||||
void nft_table_list_free(struct nft_table_list *list);
|
||||
int nft_table_list_is_empty(struct nft_table_list *list);
|
||||
int nft_table_list_foreach(struct nft_table_list *table_list, int (*cb)(struct nft_table *t, void *data), void *data);
|
||||
|
||||
void nft_table_list_add(struct nft_table *r, struct nft_table_list *list);
|
||||
void nft_table_list_add_tail(struct nft_table *r, struct nft_table_list *list);
|
||||
void nft_table_list_del(struct nft_table *r);
|
||||
|
||||
struct nft_table_list_iter;
|
||||
|
||||
struct nft_table_list_iter *nft_table_list_iter_create(const struct nft_table_list *l);
|
||||
struct nft_table *nft_table_list_iter_next(struct nft_table_list_iter *iter);
|
||||
void nft_table_list_iter_destroy(struct nft_table_list_iter *iter);
|
||||
|
||||
#ifdef __cplusplus
|
||||
} /* extern "C" */
|
||||
#endif
|
||||
|
||||
@ -11,10 +11,8 @@
|
||||
#ifdef HAVE_VISIBILITY_HIDDEN
|
||||
# define __visible __attribute__((visibility("default")))
|
||||
# define EXPORT_SYMBOL(x) typeof(x) (x) __visible;
|
||||
# define EXPORT_SYMBOL_ALIAS(x, y) typeof(x) (x) __visible; __typeof (y) y __attribute ((alias (#x), visibility ("default")))
|
||||
#else
|
||||
# define EXPORT_SYMBOL
|
||||
# define EXPORT_SYMBOL_ALIAS
|
||||
#endif
|
||||
|
||||
#define __noreturn __attribute__((__noreturn__))
|
||||
|
||||
14
src/batch.c
14
src/batch.c
@ -80,7 +80,7 @@ err1:
|
||||
free(batch);
|
||||
return NULL;
|
||||
}
|
||||
EXPORT_SYMBOL_ALIAS(nftnl_batch_alloc, nft_batch_alloc);
|
||||
EXPORT_SYMBOL(nftnl_batch_alloc);
|
||||
|
||||
void nftnl_batch_free(struct nftnl_batch *batch)
|
||||
{
|
||||
@ -94,7 +94,7 @@ void nftnl_batch_free(struct nftnl_batch *batch)
|
||||
|
||||
free(batch);
|
||||
}
|
||||
EXPORT_SYMBOL_ALIAS(nftnl_batch_free, nft_batch_free);
|
||||
EXPORT_SYMBOL(nftnl_batch_free);
|
||||
|
||||
int nftnl_batch_update(struct nftnl_batch *batch)
|
||||
{
|
||||
@ -119,19 +119,19 @@ int nftnl_batch_update(struct nftnl_batch *batch)
|
||||
err1:
|
||||
return -1;
|
||||
}
|
||||
EXPORT_SYMBOL_ALIAS(nftnl_batch_update, nft_batch_update);
|
||||
EXPORT_SYMBOL(nftnl_batch_update);
|
||||
|
||||
void *nftnl_batch_buffer(struct nftnl_batch *batch)
|
||||
{
|
||||
return mnl_nlmsg_batch_current(batch->current_page->batch);
|
||||
}
|
||||
EXPORT_SYMBOL_ALIAS(nftnl_batch_buffer, nft_batch_buffer);
|
||||
EXPORT_SYMBOL(nftnl_batch_buffer);
|
||||
|
||||
uint32_t nftnl_batch_buffer_len(struct nftnl_batch *batch)
|
||||
{
|
||||
return mnl_nlmsg_batch_size(batch->current_page->batch);
|
||||
}
|
||||
EXPORT_SYMBOL_ALIAS(nftnl_batch_buffer_len, nft_batch_buffer_len);
|
||||
EXPORT_SYMBOL(nftnl_batch_buffer_len);
|
||||
|
||||
int nftnl_batch_iovec_len(struct nftnl_batch *batch)
|
||||
{
|
||||
@ -143,7 +143,7 @@ int nftnl_batch_iovec_len(struct nftnl_batch *batch)
|
||||
|
||||
return num_pages;
|
||||
}
|
||||
EXPORT_SYMBOL_ALIAS(nftnl_batch_iovec_len, nft_batch_iovec_len);
|
||||
EXPORT_SYMBOL(nftnl_batch_iovec_len);
|
||||
|
||||
void nftnl_batch_iovec(struct nftnl_batch *batch, struct iovec *iov,
|
||||
uint32_t iovlen)
|
||||
@ -160,4 +160,4 @@ void nftnl_batch_iovec(struct nftnl_batch *batch, struct iovec *iov,
|
||||
i++;
|
||||
}
|
||||
}
|
||||
EXPORT_SYMBOL_ALIAS(nftnl_batch_iovec, nft_batch_iovec);
|
||||
EXPORT_SYMBOL(nftnl_batch_iovec);
|
||||
|
||||
68
src/chain.c
68
src/chain.c
@ -91,7 +91,7 @@ struct nftnl_chain *nftnl_chain_alloc(void)
|
||||
{
|
||||
return calloc(1, sizeof(struct nftnl_chain));
|
||||
}
|
||||
EXPORT_SYMBOL_ALIAS(nftnl_chain_alloc, nft_chain_alloc);
|
||||
EXPORT_SYMBOL(nftnl_chain_alloc);
|
||||
|
||||
void nftnl_chain_free(const struct nftnl_chain *c)
|
||||
{
|
||||
@ -105,13 +105,13 @@ void nftnl_chain_free(const struct nftnl_chain *c)
|
||||
xfree(c->dev);
|
||||
xfree(c);
|
||||
}
|
||||
EXPORT_SYMBOL_ALIAS(nftnl_chain_free, nft_chain_free);
|
||||
EXPORT_SYMBOL(nftnl_chain_free);
|
||||
|
||||
bool nftnl_chain_is_set(const struct nftnl_chain *c, uint16_t attr)
|
||||
{
|
||||
return c->flags & (1 << attr);
|
||||
}
|
||||
EXPORT_SYMBOL_ALIAS(nftnl_chain_is_set, nft_chain_attr_is_set);
|
||||
EXPORT_SYMBOL(nftnl_chain_is_set);
|
||||
|
||||
void nftnl_chain_unset(struct nftnl_chain *c, uint16_t attr)
|
||||
{
|
||||
@ -147,7 +147,7 @@ void nftnl_chain_unset(struct nftnl_chain *c, uint16_t attr)
|
||||
|
||||
c->flags &= ~(1 << attr);
|
||||
}
|
||||
EXPORT_SYMBOL_ALIAS(nftnl_chain_unset, nft_chain_attr_unset);
|
||||
EXPORT_SYMBOL(nftnl_chain_unset);
|
||||
|
||||
static uint32_t nftnl_chain_validate[NFTNL_CHAIN_MAX + 1] = {
|
||||
[NFTNL_CHAIN_HOOKNUM] = sizeof(uint32_t),
|
||||
@ -226,43 +226,43 @@ int nftnl_chain_set_data(struct nftnl_chain *c, uint16_t attr,
|
||||
c->flags |= (1 << attr);
|
||||
return 0;
|
||||
}
|
||||
EXPORT_SYMBOL_ALIAS(nftnl_chain_set_data, nft_chain_attr_set_data);
|
||||
EXPORT_SYMBOL(nftnl_chain_set_data);
|
||||
|
||||
void nftnl_chain_set(struct nftnl_chain *c, uint16_t attr, const void *data)
|
||||
{
|
||||
nftnl_chain_set_data(c, attr, data, nftnl_chain_validate[attr]);
|
||||
}
|
||||
EXPORT_SYMBOL_ALIAS(nftnl_chain_set, nft_chain_attr_set);
|
||||
EXPORT_SYMBOL(nftnl_chain_set);
|
||||
|
||||
void nftnl_chain_set_u32(struct nftnl_chain *c, uint16_t attr, uint32_t data)
|
||||
{
|
||||
nftnl_chain_set_data(c, attr, &data, sizeof(uint32_t));
|
||||
}
|
||||
EXPORT_SYMBOL_ALIAS(nftnl_chain_set_u32, nft_chain_attr_set_u32);
|
||||
EXPORT_SYMBOL(nftnl_chain_set_u32);
|
||||
|
||||
void nftnl_chain_set_s32(struct nftnl_chain *c, uint16_t attr, int32_t data)
|
||||
{
|
||||
nftnl_chain_set_data(c, attr, &data, sizeof(int32_t));
|
||||
}
|
||||
EXPORT_SYMBOL_ALIAS(nftnl_chain_set_s32, nft_chain_attr_set_s32);
|
||||
EXPORT_SYMBOL(nftnl_chain_set_s32);
|
||||
|
||||
void nftnl_chain_set_u64(struct nftnl_chain *c, uint16_t attr, uint64_t data)
|
||||
{
|
||||
nftnl_chain_set_data(c, attr, &data, sizeof(uint64_t));
|
||||
}
|
||||
EXPORT_SYMBOL_ALIAS(nftnl_chain_set_u64, nft_chain_attr_set_u64);
|
||||
EXPORT_SYMBOL(nftnl_chain_set_u64);
|
||||
|
||||
void nftnl_chain_set_u8(struct nftnl_chain *c, uint16_t attr, uint8_t data)
|
||||
{
|
||||
nftnl_chain_set_data(c, attr, &data, sizeof(uint8_t));
|
||||
}
|
||||
EXPORT_SYMBOL_ALIAS(nftnl_chain_set_u8, nft_chain_attr_set_u8);
|
||||
EXPORT_SYMBOL(nftnl_chain_set_u8);
|
||||
|
||||
int nftnl_chain_set_str(struct nftnl_chain *c, uint16_t attr, const char *str)
|
||||
{
|
||||
return nftnl_chain_set_data(c, attr, str, strlen(str) + 1);
|
||||
}
|
||||
EXPORT_SYMBOL_ALIAS(nftnl_chain_set_str, nft_chain_attr_set_str);
|
||||
EXPORT_SYMBOL(nftnl_chain_set_str);
|
||||
|
||||
const void *nftnl_chain_get_data(const struct nftnl_chain *c, uint16_t attr,
|
||||
uint32_t *data_len)
|
||||
@ -310,20 +310,20 @@ const void *nftnl_chain_get_data(const struct nftnl_chain *c, uint16_t attr,
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
EXPORT_SYMBOL_ALIAS(nftnl_chain_get_data, nft_chain_attr_get_data);
|
||||
EXPORT_SYMBOL(nftnl_chain_get_data);
|
||||
|
||||
const void *nftnl_chain_get(const struct nftnl_chain *c, uint16_t attr)
|
||||
{
|
||||
uint32_t data_len;
|
||||
return nftnl_chain_get_data(c, attr, &data_len);
|
||||
}
|
||||
EXPORT_SYMBOL_ALIAS(nftnl_chain_get, nft_chain_attr_get);
|
||||
EXPORT_SYMBOL(nftnl_chain_get);
|
||||
|
||||
const char *nftnl_chain_get_str(const struct nftnl_chain *c, uint16_t attr)
|
||||
{
|
||||
return nftnl_chain_get(c, attr);
|
||||
}
|
||||
EXPORT_SYMBOL_ALIAS(nftnl_chain_get_str, nft_chain_attr_get_str);
|
||||
EXPORT_SYMBOL(nftnl_chain_get_str);
|
||||
|
||||
uint32_t nftnl_chain_get_u32(const struct nftnl_chain *c, uint16_t attr)
|
||||
{
|
||||
@ -334,7 +334,7 @@ uint32_t nftnl_chain_get_u32(const struct nftnl_chain *c, uint16_t attr)
|
||||
|
||||
return val ? *val : 0;
|
||||
}
|
||||
EXPORT_SYMBOL_ALIAS(nftnl_chain_get_u32, nft_chain_attr_get_u32);
|
||||
EXPORT_SYMBOL(nftnl_chain_get_u32);
|
||||
|
||||
int32_t nftnl_chain_get_s32(const struct nftnl_chain *c, uint16_t attr)
|
||||
{
|
||||
@ -345,7 +345,7 @@ int32_t nftnl_chain_get_s32(const struct nftnl_chain *c, uint16_t attr)
|
||||
|
||||
return val ? *val : 0;
|
||||
}
|
||||
EXPORT_SYMBOL_ALIAS(nftnl_chain_get_s32, nft_chain_attr_get_s32);
|
||||
EXPORT_SYMBOL(nftnl_chain_get_s32);
|
||||
|
||||
uint64_t nftnl_chain_get_u64(const struct nftnl_chain *c, uint16_t attr)
|
||||
{
|
||||
@ -356,7 +356,7 @@ uint64_t nftnl_chain_get_u64(const struct nftnl_chain *c, uint16_t attr)
|
||||
|
||||
return val ? *val : 0;
|
||||
}
|
||||
EXPORT_SYMBOL_ALIAS(nftnl_chain_get_u64, nft_chain_attr_get_u64);
|
||||
EXPORT_SYMBOL(nftnl_chain_get_u64);
|
||||
|
||||
uint8_t nftnl_chain_get_u8(const struct nftnl_chain *c, uint16_t attr)
|
||||
{
|
||||
@ -367,7 +367,7 @@ uint8_t nftnl_chain_get_u8(const struct nftnl_chain *c, uint16_t attr)
|
||||
|
||||
return val ? *val : 0;
|
||||
}
|
||||
EXPORT_SYMBOL_ALIAS(nftnl_chain_get_u8, nft_chain_attr_get_u8);
|
||||
EXPORT_SYMBOL(nftnl_chain_get_u8);
|
||||
|
||||
void nftnl_chain_nlmsg_build_payload(struct nlmsghdr *nlh, const struct nftnl_chain *c)
|
||||
{
|
||||
@ -404,7 +404,7 @@ void nftnl_chain_nlmsg_build_payload(struct nlmsghdr *nlh, const struct nftnl_ch
|
||||
if (c->flags & (1 << NFTNL_CHAIN_TYPE))
|
||||
mnl_attr_put_strz(nlh, NFTA_CHAIN_TYPE, c->type);
|
||||
}
|
||||
EXPORT_SYMBOL_ALIAS(nftnl_chain_nlmsg_build_payload, nft_chain_nlmsg_build_payload);
|
||||
EXPORT_SYMBOL(nftnl_chain_nlmsg_build_payload);
|
||||
|
||||
static int nftnl_chain_parse_attr_cb(const struct nlattr *attr, void *data)
|
||||
{
|
||||
@ -590,7 +590,7 @@ int nftnl_chain_nlmsg_parse(const struct nlmsghdr *nlh, struct nftnl_chain *c)
|
||||
|
||||
return ret;
|
||||
}
|
||||
EXPORT_SYMBOL_ALIAS(nftnl_chain_nlmsg_parse, nft_chain_nlmsg_parse);
|
||||
EXPORT_SYMBOL(nftnl_chain_nlmsg_parse);
|
||||
|
||||
static inline int nftnl_str2hooknum(int family, const char *hook)
|
||||
{
|
||||
@ -737,14 +737,14 @@ int nftnl_chain_parse(struct nftnl_chain *c, enum nftnl_parse_type type,
|
||||
{
|
||||
return nftnl_chain_do_parse(c, type, data, err, NFTNL_PARSE_BUFFER);
|
||||
}
|
||||
EXPORT_SYMBOL_ALIAS(nftnl_chain_parse, nft_chain_parse);
|
||||
EXPORT_SYMBOL(nftnl_chain_parse);
|
||||
|
||||
int nftnl_chain_parse_file(struct nftnl_chain *c, enum nftnl_parse_type type,
|
||||
FILE *fp, struct nftnl_parse_err *err)
|
||||
{
|
||||
return nftnl_chain_do_parse(c, type, fp, err, NFTNL_PARSE_FILE);
|
||||
}
|
||||
EXPORT_SYMBOL_ALIAS(nftnl_chain_parse_file, nft_chain_parse_file);
|
||||
EXPORT_SYMBOL(nftnl_chain_parse_file);
|
||||
|
||||
static int nftnl_chain_export(char *buf, size_t size,
|
||||
const struct nftnl_chain *c, int type)
|
||||
@ -847,7 +847,7 @@ int nftnl_chain_snprintf(char *buf, size_t size, const struct nftnl_chain *c,
|
||||
return nftnl_chain_cmd_snprintf(buf, size, c, nftnl_flag2cmd(flags), type,
|
||||
flags);
|
||||
}
|
||||
EXPORT_SYMBOL_ALIAS(nftnl_chain_snprintf, nft_chain_snprintf);
|
||||
EXPORT_SYMBOL(nftnl_chain_snprintf);
|
||||
|
||||
static int nftnl_chain_do_snprintf(char *buf, size_t size, const void *c,
|
||||
uint32_t cmd, uint32_t type, uint32_t flags)
|
||||
@ -861,7 +861,7 @@ int nftnl_chain_fprintf(FILE *fp, const struct nftnl_chain *c, uint32_t type,
|
||||
return nftnl_fprintf(fp, c, NFTNL_CMD_UNSPEC, type, flags,
|
||||
nftnl_chain_do_snprintf);
|
||||
}
|
||||
EXPORT_SYMBOL_ALIAS(nftnl_chain_fprintf, nft_chain_fprintf);
|
||||
EXPORT_SYMBOL(nftnl_chain_fprintf);
|
||||
|
||||
struct nftnl_chain_list {
|
||||
struct list_head list;
|
||||
@ -879,7 +879,7 @@ struct nftnl_chain_list *nftnl_chain_list_alloc(void)
|
||||
|
||||
return list;
|
||||
}
|
||||
EXPORT_SYMBOL_ALIAS(nftnl_chain_list_alloc, nft_chain_list_alloc);
|
||||
EXPORT_SYMBOL(nftnl_chain_list_alloc);
|
||||
|
||||
void nftnl_chain_list_free(struct nftnl_chain_list *list)
|
||||
{
|
||||
@ -891,31 +891,31 @@ void nftnl_chain_list_free(struct nftnl_chain_list *list)
|
||||
}
|
||||
xfree(list);
|
||||
}
|
||||
EXPORT_SYMBOL_ALIAS(nftnl_chain_list_free, nft_chain_list_free);
|
||||
EXPORT_SYMBOL(nftnl_chain_list_free);
|
||||
|
||||
int nftnl_chain_list_is_empty(const struct nftnl_chain_list *list)
|
||||
{
|
||||
return list_empty(&list->list);
|
||||
}
|
||||
EXPORT_SYMBOL_ALIAS(nftnl_chain_list_is_empty, nft_chain_list_is_empty);
|
||||
EXPORT_SYMBOL(nftnl_chain_list_is_empty);
|
||||
|
||||
void nftnl_chain_list_add(struct nftnl_chain *r, struct nftnl_chain_list *list)
|
||||
{
|
||||
list_add(&r->head, &list->list);
|
||||
}
|
||||
EXPORT_SYMBOL_ALIAS(nftnl_chain_list_add, nft_chain_list_add);
|
||||
EXPORT_SYMBOL(nftnl_chain_list_add);
|
||||
|
||||
void nftnl_chain_list_add_tail(struct nftnl_chain *r, struct nftnl_chain_list *list)
|
||||
{
|
||||
list_add_tail(&r->head, &list->list);
|
||||
}
|
||||
EXPORT_SYMBOL_ALIAS(nftnl_chain_list_add_tail, nft_chain_list_add_tail);
|
||||
EXPORT_SYMBOL(nftnl_chain_list_add_tail);
|
||||
|
||||
void nftnl_chain_list_del(struct nftnl_chain *r)
|
||||
{
|
||||
list_del(&r->head);
|
||||
}
|
||||
EXPORT_SYMBOL_ALIAS(nftnl_chain_list_del, nft_chain_list_del);
|
||||
EXPORT_SYMBOL(nftnl_chain_list_del);
|
||||
|
||||
int nftnl_chain_list_foreach(struct nftnl_chain_list *chain_list,
|
||||
int (*cb)(struct nftnl_chain *r, void *data),
|
||||
@ -931,7 +931,7 @@ int nftnl_chain_list_foreach(struct nftnl_chain_list *chain_list,
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
EXPORT_SYMBOL_ALIAS(nftnl_chain_list_foreach, nft_chain_list_foreach);
|
||||
EXPORT_SYMBOL(nftnl_chain_list_foreach);
|
||||
|
||||
struct nftnl_chain_list_iter {
|
||||
const struct nftnl_chain_list *list;
|
||||
@ -955,7 +955,7 @@ nftnl_chain_list_iter_create(const struct nftnl_chain_list *l)
|
||||
|
||||
return iter;
|
||||
}
|
||||
EXPORT_SYMBOL_ALIAS(nftnl_chain_list_iter_create, nft_chain_list_iter_create);
|
||||
EXPORT_SYMBOL(nftnl_chain_list_iter_create);
|
||||
|
||||
struct nftnl_chain *nftnl_chain_list_iter_next(struct nftnl_chain_list_iter *iter)
|
||||
{
|
||||
@ -971,10 +971,10 @@ struct nftnl_chain *nftnl_chain_list_iter_next(struct nftnl_chain_list_iter *ite
|
||||
|
||||
return r;
|
||||
}
|
||||
EXPORT_SYMBOL_ALIAS(nftnl_chain_list_iter_next, nft_chain_list_iter_next);
|
||||
EXPORT_SYMBOL(nftnl_chain_list_iter_next);
|
||||
|
||||
void nftnl_chain_list_iter_destroy(struct nftnl_chain_list_iter *iter)
|
||||
{
|
||||
xfree(iter);
|
||||
}
|
||||
EXPORT_SYMBOL_ALIAS(nftnl_chain_list_iter_destroy, nft_chain_list_iter_destroy);
|
||||
EXPORT_SYMBOL(nftnl_chain_list_iter_destroy);
|
||||
|
||||
14
src/common.c
14
src/common.c
@ -40,7 +40,7 @@ struct nlmsghdr *nftnl_nlmsg_build_hdr(char *buf, uint16_t cmd, uint16_t family,
|
||||
|
||||
return nlh;
|
||||
}
|
||||
EXPORT_SYMBOL_ALIAS(nftnl_nlmsg_build_hdr, nft_nlmsg_build_hdr);
|
||||
EXPORT_SYMBOL(nftnl_nlmsg_build_hdr);
|
||||
|
||||
struct nftnl_parse_err *nftnl_parse_err_alloc(void)
|
||||
{
|
||||
@ -54,13 +54,13 @@ struct nftnl_parse_err *nftnl_parse_err_alloc(void)
|
||||
|
||||
return err;
|
||||
}
|
||||
EXPORT_SYMBOL_ALIAS(nftnl_parse_err_alloc, nft_parse_err_alloc);
|
||||
EXPORT_SYMBOL(nftnl_parse_err_alloc);
|
||||
|
||||
void nftnl_parse_err_free(struct nftnl_parse_err *err)
|
||||
{
|
||||
xfree(err);
|
||||
}
|
||||
EXPORT_SYMBOL_ALIAS(nftnl_parse_err_free, nft_parse_err_free);
|
||||
EXPORT_SYMBOL(nftnl_parse_err_free);
|
||||
|
||||
int nftnl_parse_perror(const char *msg, struct nftnl_parse_err *err)
|
||||
{
|
||||
@ -80,7 +80,7 @@ int nftnl_parse_perror(const char *msg, struct nftnl_parse_err *err)
|
||||
return fprintf(stderr, "%s: Undefined error\n", msg);
|
||||
}
|
||||
}
|
||||
EXPORT_SYMBOL_ALIAS(nftnl_parse_perror, nft_parse_perror);
|
||||
EXPORT_SYMBOL(nftnl_parse_perror);
|
||||
|
||||
int nftnl_cmd_header_snprintf(char *buf, size_t size, uint32_t cmd, uint32_t type,
|
||||
uint32_t flags)
|
||||
@ -176,13 +176,13 @@ void nftnl_batch_begin(char *buf, uint32_t seq)
|
||||
{
|
||||
nftnl_batch_build_hdr(buf, NFNL_MSG_BATCH_BEGIN, seq);
|
||||
}
|
||||
EXPORT_SYMBOL_ALIAS(nftnl_batch_begin, nft_batch_begin);
|
||||
EXPORT_SYMBOL(nftnl_batch_begin);
|
||||
|
||||
void nftnl_batch_end(char *buf, uint32_t seq)
|
||||
{
|
||||
nftnl_batch_build_hdr(buf, NFNL_MSG_BATCH_END, seq);
|
||||
}
|
||||
EXPORT_SYMBOL_ALIAS(nftnl_batch_end, nft_batch_end);
|
||||
EXPORT_SYMBOL(nftnl_batch_end);
|
||||
|
||||
int nftnl_batch_is_supported(void)
|
||||
{
|
||||
@ -241,4 +241,4 @@ err:
|
||||
mnl_nlmsg_batch_stop(b);
|
||||
return -1;
|
||||
}
|
||||
EXPORT_SYMBOL_ALIAS(nftnl_batch_is_supported, nft_batch_is_supported);
|
||||
EXPORT_SYMBOL(nftnl_batch_is_supported);
|
||||
|
||||
32
src/expr.c
32
src/expr.c
@ -43,7 +43,7 @@ struct nftnl_expr *nftnl_expr_alloc(const char *name)
|
||||
|
||||
return expr;
|
||||
}
|
||||
EXPORT_SYMBOL_ALIAS(nftnl_expr_alloc, nft_rule_expr_alloc);
|
||||
EXPORT_SYMBOL(nftnl_expr_alloc);
|
||||
|
||||
void nftnl_expr_free(const struct nftnl_expr *expr)
|
||||
{
|
||||
@ -52,13 +52,13 @@ void nftnl_expr_free(const struct nftnl_expr *expr)
|
||||
|
||||
xfree(expr);
|
||||
}
|
||||
EXPORT_SYMBOL_ALIAS(nftnl_expr_free, nft_rule_expr_free);
|
||||
EXPORT_SYMBOL(nftnl_expr_free);
|
||||
|
||||
bool nftnl_expr_is_set(const struct nftnl_expr *expr, uint16_t type)
|
||||
{
|
||||
return expr->flags & (1 << type);
|
||||
}
|
||||
EXPORT_SYMBOL_ALIAS(nftnl_expr_is_set, nft_rule_expr_is_set);
|
||||
EXPORT_SYMBOL(nftnl_expr_is_set);
|
||||
|
||||
int nftnl_expr_set(struct nftnl_expr *expr, uint16_t type,
|
||||
const void *data, uint32_t data_len)
|
||||
@ -73,41 +73,41 @@ int nftnl_expr_set(struct nftnl_expr *expr, uint16_t type,
|
||||
expr->flags |= (1 << type);
|
||||
return 0;
|
||||
}
|
||||
EXPORT_SYMBOL_ALIAS(nftnl_expr_set, nft_rule_expr_set);
|
||||
EXPORT_SYMBOL(nftnl_expr_set);
|
||||
|
||||
void
|
||||
nftnl_expr_set_u8(struct nftnl_expr *expr, uint16_t type, uint8_t data)
|
||||
{
|
||||
nftnl_expr_set(expr, type, &data, sizeof(uint8_t));
|
||||
}
|
||||
EXPORT_SYMBOL_ALIAS(nftnl_expr_set_u8, nft_rule_expr_set_u8);
|
||||
EXPORT_SYMBOL(nftnl_expr_set_u8);
|
||||
|
||||
void
|
||||
nftnl_expr_set_u16(struct nftnl_expr *expr, uint16_t type, uint16_t data)
|
||||
{
|
||||
nftnl_expr_set(expr, type, &data, sizeof(uint16_t));
|
||||
}
|
||||
EXPORT_SYMBOL_ALIAS(nftnl_expr_set_u16, nft_rule_expr_set_u16);
|
||||
EXPORT_SYMBOL(nftnl_expr_set_u16);
|
||||
|
||||
void
|
||||
nftnl_expr_set_u32(struct nftnl_expr *expr, uint16_t type, uint32_t data)
|
||||
{
|
||||
nftnl_expr_set(expr, type, &data, sizeof(uint32_t));
|
||||
}
|
||||
EXPORT_SYMBOL_ALIAS(nftnl_expr_set_u32, nft_rule_expr_set_u32);
|
||||
EXPORT_SYMBOL(nftnl_expr_set_u32);
|
||||
|
||||
void
|
||||
nftnl_expr_set_u64(struct nftnl_expr *expr, uint16_t type, uint64_t data)
|
||||
{
|
||||
nftnl_expr_set(expr, type, &data, sizeof(uint64_t));
|
||||
}
|
||||
EXPORT_SYMBOL_ALIAS(nftnl_expr_set_u64, nft_rule_expr_set_u64);
|
||||
EXPORT_SYMBOL(nftnl_expr_set_u64);
|
||||
|
||||
int nftnl_expr_set_str(struct nftnl_expr *expr, uint16_t type, const char *str)
|
||||
{
|
||||
return nftnl_expr_set(expr, type, str, strlen(str) + 1);
|
||||
}
|
||||
EXPORT_SYMBOL_ALIAS(nftnl_expr_set_str, nft_rule_expr_set_str);
|
||||
EXPORT_SYMBOL(nftnl_expr_set_str);
|
||||
|
||||
const void *nftnl_expr_get(const struct nftnl_expr *expr,
|
||||
uint16_t type, uint32_t *data_len)
|
||||
@ -129,7 +129,7 @@ const void *nftnl_expr_get(const struct nftnl_expr *expr,
|
||||
|
||||
return ret;
|
||||
}
|
||||
EXPORT_SYMBOL_ALIAS(nftnl_expr_get, nft_rule_expr_get);
|
||||
EXPORT_SYMBOL(nftnl_expr_get);
|
||||
|
||||
uint8_t nftnl_expr_get_u8(const struct nftnl_expr *expr, uint16_t type)
|
||||
{
|
||||
@ -145,7 +145,7 @@ uint8_t nftnl_expr_get_u8(const struct nftnl_expr *expr, uint16_t type)
|
||||
|
||||
return *((uint8_t *)data);
|
||||
}
|
||||
EXPORT_SYMBOL_ALIAS(nftnl_expr_get_u8, nft_rule_expr_get_u8);
|
||||
EXPORT_SYMBOL(nftnl_expr_get_u8);
|
||||
|
||||
uint16_t nftnl_expr_get_u16(const struct nftnl_expr *expr, uint16_t type)
|
||||
{
|
||||
@ -161,7 +161,7 @@ uint16_t nftnl_expr_get_u16(const struct nftnl_expr *expr, uint16_t type)
|
||||
|
||||
return *((uint16_t *)data);
|
||||
}
|
||||
EXPORT_SYMBOL_ALIAS(nftnl_expr_get_u16, nft_rule_expr_get_u16);
|
||||
EXPORT_SYMBOL(nftnl_expr_get_u16);
|
||||
|
||||
uint32_t nftnl_expr_get_u32(const struct nftnl_expr *expr, uint16_t type)
|
||||
{
|
||||
@ -177,7 +177,7 @@ uint32_t nftnl_expr_get_u32(const struct nftnl_expr *expr, uint16_t type)
|
||||
|
||||
return *((uint32_t *)data);
|
||||
}
|
||||
EXPORT_SYMBOL_ALIAS(nftnl_expr_get_u32, nft_rule_expr_get_u32);
|
||||
EXPORT_SYMBOL(nftnl_expr_get_u32);
|
||||
|
||||
uint64_t nftnl_expr_get_u64(const struct nftnl_expr *expr, uint16_t type)
|
||||
{
|
||||
@ -193,7 +193,7 @@ uint64_t nftnl_expr_get_u64(const struct nftnl_expr *expr, uint16_t type)
|
||||
|
||||
return *((uint64_t *)data);
|
||||
}
|
||||
EXPORT_SYMBOL_ALIAS(nftnl_expr_get_u64, nft_rule_expr_get_u64);
|
||||
EXPORT_SYMBOL(nftnl_expr_get_u64);
|
||||
|
||||
const char *nftnl_expr_get_str(const struct nftnl_expr *expr, uint16_t type)
|
||||
{
|
||||
@ -201,7 +201,7 @@ const char *nftnl_expr_get_str(const struct nftnl_expr *expr, uint16_t type)
|
||||
|
||||
return (const char *)nftnl_expr_get(expr, type, &data_len);
|
||||
}
|
||||
EXPORT_SYMBOL_ALIAS(nftnl_expr_get_str, nft_rule_expr_get_str);
|
||||
EXPORT_SYMBOL(nftnl_expr_get_str);
|
||||
|
||||
bool nftnl_expr_cmp(const struct nftnl_expr *e1, const struct nftnl_expr *e2)
|
||||
{
|
||||
@ -289,4 +289,4 @@ int nftnl_expr_snprintf(char *buf, size_t size, const struct nftnl_expr *expr,
|
||||
|
||||
return offset;
|
||||
}
|
||||
EXPORT_SYMBOL_ALIAS(nftnl_expr_snprintf, nft_rule_expr_snprintf);
|
||||
EXPORT_SYMBOL(nftnl_expr_snprintf);
|
||||
|
||||
26
src/gen.c
26
src/gen.c
@ -33,19 +33,19 @@ struct nftnl_gen *nftnl_gen_alloc(void)
|
||||
{
|
||||
return calloc(1, sizeof(struct nftnl_gen));
|
||||
}
|
||||
EXPORT_SYMBOL_ALIAS(nftnl_gen_alloc, nft_gen_alloc);
|
||||
EXPORT_SYMBOL(nftnl_gen_alloc);
|
||||
|
||||
void nftnl_gen_free(const struct nftnl_gen *gen)
|
||||
{
|
||||
xfree(gen);
|
||||
}
|
||||
EXPORT_SYMBOL_ALIAS(nftnl_gen_free, nft_gen_free);
|
||||
EXPORT_SYMBOL(nftnl_gen_free);
|
||||
|
||||
bool nftnl_gen_is_set(const struct nftnl_gen *gen, uint16_t attr)
|
||||
{
|
||||
return gen->flags & (1 << attr);
|
||||
}
|
||||
EXPORT_SYMBOL_ALIAS(nftnl_gen_is_set, nft_gen_attr_is_set);
|
||||
EXPORT_SYMBOL(nftnl_gen_is_set);
|
||||
|
||||
void nftnl_gen_unset(struct nftnl_gen *gen, uint16_t attr)
|
||||
{
|
||||
@ -58,7 +58,7 @@ void nftnl_gen_unset(struct nftnl_gen *gen, uint16_t attr)
|
||||
}
|
||||
gen->flags &= ~(1 << attr);
|
||||
}
|
||||
EXPORT_SYMBOL_ALIAS(nftnl_gen_unset, nft_gen_attr_unset);
|
||||
EXPORT_SYMBOL(nftnl_gen_unset);
|
||||
|
||||
static uint32_t nftnl_gen_validate[NFTNL_GEN_MAX + 1] = {
|
||||
[NFTNL_GEN_ID] = sizeof(uint32_t),
|
||||
@ -78,19 +78,19 @@ int nftnl_gen_set_data(struct nftnl_gen *gen, uint16_t attr,
|
||||
gen->flags |= (1 << attr);
|
||||
return 0;
|
||||
}
|
||||
EXPORT_SYMBOL_ALIAS(nftnl_gen_set_data, nft_gen_attr_set_data);
|
||||
EXPORT_SYMBOL(nftnl_gen_set_data);
|
||||
|
||||
int nftnl_gen_set(struct nftnl_gen *gen, uint16_t attr, const void *data)
|
||||
{
|
||||
return nftnl_gen_set_data(gen, attr, data, nftnl_gen_validate[attr]);
|
||||
}
|
||||
EXPORT_SYMBOL_ALIAS(nftnl_gen_set, nft_gen_attr_set);
|
||||
EXPORT_SYMBOL(nftnl_gen_set);
|
||||
|
||||
void nftnl_gen_set_u32(struct nftnl_gen *gen, uint16_t attr, uint32_t val)
|
||||
{
|
||||
nftnl_gen_set_data(gen, attr, &val, sizeof(uint32_t));
|
||||
}
|
||||
EXPORT_SYMBOL_ALIAS(nftnl_gen_set_u32, nft_gen_attr_set_u32);
|
||||
EXPORT_SYMBOL(nftnl_gen_set_u32);
|
||||
|
||||
const void *nftnl_gen_get_data(const struct nftnl_gen *gen, uint16_t attr,
|
||||
uint32_t *data_len)
|
||||
@ -105,21 +105,21 @@ const void *nftnl_gen_get_data(const struct nftnl_gen *gen, uint16_t attr,
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
EXPORT_SYMBOL_ALIAS(nftnl_gen_get_data, nft_gen_attr_get_data);
|
||||
EXPORT_SYMBOL(nftnl_gen_get_data);
|
||||
|
||||
const void *nftnl_gen_get(const struct nftnl_gen *gen, uint16_t attr)
|
||||
{
|
||||
uint32_t data_len;
|
||||
return nftnl_gen_get_data(gen, attr, &data_len);
|
||||
}
|
||||
EXPORT_SYMBOL_ALIAS(nftnl_gen_get, nft_gen_attr_get);
|
||||
EXPORT_SYMBOL(nftnl_gen_get);
|
||||
|
||||
uint32_t nftnl_gen_get_u32(const struct nftnl_gen *gen, uint16_t attr)
|
||||
{
|
||||
const void *ret = nftnl_gen_get(gen, attr);
|
||||
return ret == NULL ? 0 : *((uint32_t *)ret);
|
||||
}
|
||||
EXPORT_SYMBOL_ALIAS(nftnl_gen_get_u32, nft_gen_attr_get_u32);
|
||||
EXPORT_SYMBOL(nftnl_gen_get_u32);
|
||||
|
||||
static int nftnl_gen_parse_attr_cb(const struct nlattr *attr, void *data)
|
||||
{
|
||||
@ -154,7 +154,7 @@ int nftnl_gen_nlmsg_parse(const struct nlmsghdr *nlh, struct nftnl_gen *gen)
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
EXPORT_SYMBOL_ALIAS(nftnl_gen_nlmsg_parse, nft_gen_nlmsg_parse);
|
||||
EXPORT_SYMBOL(nftnl_gen_nlmsg_parse);
|
||||
|
||||
static int nftnl_gen_snprintf_default(char *buf, size_t size,
|
||||
const struct nftnl_gen *gen)
|
||||
@ -192,7 +192,7 @@ int nftnl_gen_snprintf(char *buf, size_t size, const struct nftnl_gen *gen,
|
||||
return nftnl_gen_cmd_snprintf(buf, size, gen, nftnl_flag2cmd(flags), type,
|
||||
flags);
|
||||
}
|
||||
EXPORT_SYMBOL_ALIAS(nftnl_gen_snprintf, nft_gen_snprintf);
|
||||
EXPORT_SYMBOL(nftnl_gen_snprintf);
|
||||
|
||||
static int nftnl_gen_do_snprintf(char *buf, size_t size, const void *gen,
|
||||
uint32_t cmd, uint32_t type, uint32_t flags)
|
||||
@ -206,4 +206,4 @@ int nftnl_gen_fprintf(FILE *fp, const struct nftnl_gen *gen, uint32_t type,
|
||||
return nftnl_fprintf(fp, gen, NFTNL_CMD_UNSPEC, type, flags,
|
||||
nftnl_gen_do_snprintf);
|
||||
}
|
||||
EXPORT_SYMBOL_ALIAS(nftnl_gen_fprintf, nft_gen_fprintf);
|
||||
EXPORT_SYMBOL(nftnl_gen_fprintf);
|
||||
|
||||
385
src/libnftnl.map
385
src/libnftnl.map
@ -1,205 +1,5 @@
|
||||
LIBNFTNL_4 {
|
||||
LIBNFTNL_5 {
|
||||
global:
|
||||
nft_table_alloc;
|
||||
nft_table_free;
|
||||
nft_table_attr_is_set;
|
||||
nft_table_attr_unset;
|
||||
nft_table_attr_set;
|
||||
nft_table_attr_get;
|
||||
nft_table_attr_set_u8;
|
||||
nft_table_attr_set_u32;
|
||||
nft_table_attr_set_str;
|
||||
nft_table_attr_get_u8;
|
||||
nft_table_attr_get_u32;
|
||||
nft_table_attr_get_str;
|
||||
nft_table_parse;
|
||||
nft_table_parse_file;
|
||||
nft_table_snprintf;
|
||||
nft_table_fprintf;
|
||||
nft_table_nlmsg_build_payload;
|
||||
nft_table_nlmsg_parse;
|
||||
nft_table_list_alloc;
|
||||
nft_table_list_free;
|
||||
nft_table_list_is_empty;
|
||||
nft_table_list_foreach;
|
||||
nft_table_list_add;
|
||||
nft_table_list_add_tail;
|
||||
nft_table_list_del;
|
||||
nft_table_list_iter_create;
|
||||
nft_table_list_iter_next;
|
||||
nft_table_list_iter_destroy;
|
||||
|
||||
nft_chain_alloc;
|
||||
nft_chain_free;
|
||||
nft_chain_attr_is_set;
|
||||
nft_chain_attr_unset;
|
||||
nft_chain_attr_set;
|
||||
nft_chain_attr_set_u8;
|
||||
nft_chain_attr_set_u32;
|
||||
nft_chain_attr_set_s32;
|
||||
nft_chain_attr_set_u64;
|
||||
nft_chain_attr_set_str;
|
||||
nft_chain_attr_get;
|
||||
nft_chain_attr_get_u8;
|
||||
nft_chain_attr_get_u32;
|
||||
nft_chain_attr_get_s32;
|
||||
nft_chain_attr_get_u64;
|
||||
nft_chain_attr_get_str;
|
||||
nft_chain_parse;
|
||||
nft_chain_parse_file;
|
||||
nft_chain_snprintf;
|
||||
nft_chain_fprintf;
|
||||
nft_chain_nlmsg_build_payload;
|
||||
nft_chain_nlmsg_parse;
|
||||
nft_chain_list_alloc;
|
||||
nft_chain_list_free;
|
||||
nft_chain_list_is_empty;
|
||||
nft_chain_list_add;
|
||||
nft_chain_list_add_tail;
|
||||
nft_chain_list_del;
|
||||
nft_chain_list_foreach;
|
||||
nft_chain_list_iter_create;
|
||||
nft_chain_list_iter_next;
|
||||
nft_chain_list_iter_destroy;
|
||||
|
||||
nft_rule_alloc;
|
||||
nft_rule_free;
|
||||
nft_rule_attr_is_set;
|
||||
nft_rule_attr_unset;
|
||||
nft_rule_attr_set;
|
||||
nft_rule_attr_set_u32;
|
||||
nft_rule_attr_set_u64;
|
||||
nft_rule_attr_set_str;
|
||||
nft_rule_attr_get;
|
||||
nft_rule_attr_get_u8;
|
||||
nft_rule_attr_get_u32;
|
||||
nft_rule_attr_get_u64;
|
||||
nft_rule_attr_get_str;
|
||||
nft_rule_parse;
|
||||
nft_rule_parse_file;
|
||||
nft_rule_snprintf;
|
||||
nft_rule_fprintf;
|
||||
nft_rule_nlmsg_build_payload;
|
||||
nft_rule_nlmsg_parse;
|
||||
nft_rule_add_expr;
|
||||
|
||||
nft_rule_expr_foreach;
|
||||
nft_rule_expr_iter_create;
|
||||
nft_rule_expr_iter_next;
|
||||
nft_rule_expr_iter_destroy;
|
||||
|
||||
nft_rule_expr_alloc;
|
||||
nft_rule_expr_is_set;
|
||||
nft_rule_expr_set;
|
||||
nft_rule_expr_set_u8;
|
||||
nft_rule_expr_set_u16;
|
||||
nft_rule_expr_set_u32;
|
||||
nft_rule_expr_set_u64;
|
||||
nft_rule_expr_set_str;
|
||||
nft_rule_expr_get;
|
||||
nft_rule_expr_get_u8;
|
||||
nft_rule_expr_get_u16;
|
||||
nft_rule_expr_get_u32;
|
||||
nft_rule_expr_get_u64;
|
||||
nft_rule_expr_get_str;
|
||||
nft_rule_expr_snprintf;
|
||||
nft_rule_expr_free;
|
||||
|
||||
nft_rule_list_alloc;
|
||||
nft_rule_list_free;
|
||||
nft_rule_list_is_empty;
|
||||
nft_rule_list_add;
|
||||
nft_rule_list_add_tail;
|
||||
nft_rule_list_del;
|
||||
nft_rule_list_foreach;
|
||||
nft_rule_list_iter_create;
|
||||
nft_rule_list_iter_cur;
|
||||
nft_rule_list_iter_next;
|
||||
nft_rule_list_iter_destroy;
|
||||
|
||||
nft_set_alloc;
|
||||
nft_set_free;
|
||||
nft_set_attr_unset;
|
||||
nft_set_attr_is_set;
|
||||
nft_set_attr_set;
|
||||
nft_set_attr_set_u32;
|
||||
nft_set_attr_set_u64;
|
||||
nft_set_attr_set_str;
|
||||
nft_set_attr_get;
|
||||
nft_set_attr_get_str;
|
||||
nft_set_attr_get_u32;
|
||||
nft_set_attr_get_u64;
|
||||
nft_set_nlmsg_build_payload;
|
||||
nft_set_nlmsg_parse;
|
||||
nft_set_parse;
|
||||
nft_set_parse_file;
|
||||
nft_set_snprintf;
|
||||
nft_set_fprintf;
|
||||
|
||||
nft_set_list_alloc;
|
||||
nft_set_list_free;
|
||||
nft_set_list_add;
|
||||
nft_set_list_add_tail;
|
||||
nft_set_list_del;
|
||||
nft_set_list_is_empty;
|
||||
nft_set_list_foreach;
|
||||
|
||||
nft_set_list_iter_create;
|
||||
nft_set_list_iter_cur;
|
||||
nft_set_list_iter_next;
|
||||
nft_set_list_iter_destroy;
|
||||
|
||||
nft_set_elem_alloc;
|
||||
nft_set_elem_free;
|
||||
nft_set_elem_add;
|
||||
nft_set_elem_foreach;
|
||||
nft_set_elem_attr_is_set;
|
||||
nft_set_elem_attr_unset;
|
||||
nft_set_elem_attr_set;
|
||||
nft_set_elem_attr_set_u32;
|
||||
nft_set_elem_attr_set_u64;
|
||||
nft_set_elem_attr_set_str;
|
||||
nft_set_elem_attr_get;
|
||||
nft_set_elem_attr_get_str;
|
||||
nft_set_elem_attr_get_u32;
|
||||
nft_set_elem_attr_get_u64;
|
||||
nft_set_elem_nlmsg_build_payload;
|
||||
nft_set_elem_parse;
|
||||
nft_set_elem_parse_file;
|
||||
nft_set_elem_snprintf;
|
||||
nft_set_elem_fprinf;
|
||||
|
||||
nft_set_elems_nlmsg_build_payload;
|
||||
nft_set_elems_nlmsg_parse;
|
||||
|
||||
nft_set_elems_foreach;
|
||||
|
||||
nft_set_elems_iter_create;
|
||||
nft_set_elems_iter_cur;
|
||||
nft_set_elems_iter_next;
|
||||
nft_set_elems_iter_destroy;
|
||||
|
||||
nft_ruleset_alloc;
|
||||
nft_ruleset_free;
|
||||
nft_ruleset_attr_is_set;
|
||||
nft_ruleset_attr_unset;
|
||||
nft_ruleset_attr_set;
|
||||
nft_ruleset_attr_get;
|
||||
nft_ruleset_parse;
|
||||
nft_ruleset_parse_file;
|
||||
nft_ruleset_snprintf;
|
||||
nft_ruleset_fprintf;
|
||||
|
||||
nft_nlmsg_build_hdr;
|
||||
|
||||
nft_parse_err_alloc;
|
||||
nft_parse_err_free;
|
||||
nft_parse_perror;
|
||||
|
||||
#
|
||||
# aliases
|
||||
#
|
||||
|
||||
nftnl_table_alloc;
|
||||
nftnl_table_free;
|
||||
nftnl_table_is_set;
|
||||
@ -396,20 +196,6 @@ global:
|
||||
nftnl_parse_err_free;
|
||||
nftnl_parse_perror;
|
||||
|
||||
|
||||
nft_table_attr_set_data;
|
||||
nft_table_attr_get_data;
|
||||
nft_chain_attr_set_data;
|
||||
nft_chain_attr_get_data;
|
||||
nft_rule_attr_set_data;
|
||||
nft_rule_attr_get_data;
|
||||
nft_set_attr_set_data;
|
||||
nft_set_attr_get_data;
|
||||
|
||||
#
|
||||
# aliases
|
||||
#
|
||||
|
||||
nftnl_table_set_data;
|
||||
nftnl_table_get_data;
|
||||
nftnl_chain_set_data;
|
||||
@ -419,29 +205,6 @@ global:
|
||||
nftnl_set_set_data;
|
||||
nftnl_set_get_data;
|
||||
|
||||
nft_set_elems_nlmsg_build_payload_iter;
|
||||
nft_batch_is_supported;
|
||||
nft_batch_begin;
|
||||
nft_batch_end;
|
||||
|
||||
nft_gen_alloc;
|
||||
nft_gen_free;
|
||||
nft_gen_attr_is_set;
|
||||
nft_gen_attr_unset;
|
||||
nft_gen_attr_set_data;
|
||||
nft_gen_attr_set;
|
||||
nft_gen_attr_set_u32;
|
||||
nft_gen_attr_get_data;
|
||||
nft_gen_attr_get;
|
||||
nft_gen_attr_get_u32;
|
||||
nft_gen_nlmsg_parse;
|
||||
nft_gen_snprintf;
|
||||
nft_gen_fprintf;
|
||||
|
||||
#
|
||||
# aliases
|
||||
#
|
||||
|
||||
nftnl_set_elems_nlmsg_build_payload_iter;
|
||||
nftnl_batch_is_supported;
|
||||
nftnl_batch_begin;
|
||||
@ -461,26 +224,6 @@ global:
|
||||
nftnl_gen_snprintf;
|
||||
nftnl_gen_fprintf;
|
||||
|
||||
|
||||
nft_ruleset_ctx_is_set;
|
||||
nft_ruleset_ctx_get;
|
||||
nft_ruleset_ctx_get_u32;
|
||||
nft_ruleset_parse_file_cb;
|
||||
nft_ruleset_parse_buffer_cb;
|
||||
nft_ruleset_ctx_free;
|
||||
|
||||
nft_batch_alloc;
|
||||
nft_batch_update;
|
||||
nft_batch_free;
|
||||
nft_batch_buffer;
|
||||
nft_batch_buffer_len;
|
||||
nft_batch_iovec_len;
|
||||
nft_batch_iovec;
|
||||
|
||||
#
|
||||
# aliases
|
||||
#
|
||||
|
||||
nftnl_ruleset_ctx_is_set;
|
||||
nftnl_ruleset_ctx_get;
|
||||
nftnl_ruleset_ctx_get_u32;
|
||||
@ -496,71 +239,65 @@ global:
|
||||
nftnl_batch_iovec_len;
|
||||
nftnl_batch_iovec;
|
||||
|
||||
nftnl_trace_alloc;
|
||||
nftnl_trace_free;
|
||||
|
||||
nftnl_trace_is_set;
|
||||
|
||||
nftnl_trace_get_u16;
|
||||
nftnl_trace_get_u32;
|
||||
nftnl_trace_get_u64;
|
||||
nftnl_trace_get_str;
|
||||
nftnl_trace_get_data;
|
||||
|
||||
nftnl_trace_nlmsg_parse;
|
||||
|
||||
nftnl_udata_buf_alloc;
|
||||
nftnl_udata_buf_free;
|
||||
nftnl_udata_buf_len;
|
||||
nftnl_udata_buf_data;
|
||||
nftnl_udata_buf_put;
|
||||
nftnl_udata_start;
|
||||
nftnl_udata_end;
|
||||
nftnl_udata_put;
|
||||
nftnl_udata_put_strz;
|
||||
nftnl_udata_type;
|
||||
nftnl_udata_len;
|
||||
nftnl_udata_get;
|
||||
nftnl_udata_next;
|
||||
nftnl_udata_parse;
|
||||
|
||||
nftnl_rule_cmp;
|
||||
nftnl_expr_cmp;
|
||||
|
||||
nftnl_obj_alloc;
|
||||
nftnl_obj_free;
|
||||
nftnl_obj_is_set;
|
||||
nftnl_obj_unset;
|
||||
nftnl_obj_set;
|
||||
nftnl_obj_get;
|
||||
nftnl_obj_set_u32;
|
||||
nftnl_obj_set_u64;
|
||||
nftnl_obj_set_str;
|
||||
nftnl_obj_get_u32;
|
||||
nftnl_obj_get_str;
|
||||
nftnl_obj_get_u64;
|
||||
nftnl_obj_parse;
|
||||
nftnl_obj_parse_file;
|
||||
nftnl_obj_snprintf;
|
||||
nftnl_obj_fprintf;
|
||||
nftnl_obj_nlmsg_build_payload;
|
||||
nftnl_obj_nlmsg_parse;
|
||||
nftnl_obj_list_alloc;
|
||||
nftnl_obj_list_free;
|
||||
nftnl_obj_list_is_empty;
|
||||
nftnl_obj_list_foreach;
|
||||
nftnl_obj_list_add;
|
||||
nftnl_obj_list_add_tail;
|
||||
nftnl_obj_list_del;
|
||||
nftnl_obj_list_iter_create;
|
||||
nftnl_obj_list_iter_next;
|
||||
nftnl_obj_list_iter_destroy;
|
||||
|
||||
local: *;
|
||||
};
|
||||
|
||||
LIBNFTNL_4.1 {
|
||||
nftnl_trace_alloc;
|
||||
nftnl_trace_free;
|
||||
|
||||
nftnl_trace_is_set;
|
||||
|
||||
nftnl_trace_get_u16;
|
||||
nftnl_trace_get_u32;
|
||||
nftnl_trace_get_u64;
|
||||
nftnl_trace_get_str;
|
||||
nftnl_trace_get_data;
|
||||
|
||||
nftnl_trace_nlmsg_parse;
|
||||
|
||||
nftnl_udata_buf_alloc;
|
||||
nftnl_udata_buf_free;
|
||||
nftnl_udata_buf_len;
|
||||
nftnl_udata_buf_data;
|
||||
nftnl_udata_buf_put;
|
||||
nftnl_udata_start;
|
||||
nftnl_udata_end;
|
||||
nftnl_udata_put;
|
||||
nftnl_udata_put_strz;
|
||||
nftnl_udata_type;
|
||||
nftnl_udata_len;
|
||||
nftnl_udata_get;
|
||||
nftnl_udata_next;
|
||||
nftnl_udata_parse;
|
||||
} LIBNFTNL_4;
|
||||
|
||||
LIBNFTNL_4.2 {
|
||||
nftnl_rule_cmp;
|
||||
nftnl_expr_cmp;
|
||||
} LIBNFTNL_4.1;
|
||||
|
||||
LIBNFTNL_4.3 {
|
||||
nftnl_obj_alloc;
|
||||
nftnl_obj_free;
|
||||
nftnl_obj_is_set;
|
||||
nftnl_obj_unset;
|
||||
nftnl_obj_set;
|
||||
nftnl_obj_get;
|
||||
nftnl_obj_set_u32;
|
||||
nftnl_obj_set_u64;
|
||||
nftnl_obj_set_str;
|
||||
nftnl_obj_get_u32;
|
||||
nftnl_obj_get_str;
|
||||
nftnl_obj_get_u64;
|
||||
nftnl_obj_parse;
|
||||
nftnl_obj_parse_file;
|
||||
nftnl_obj_snprintf;
|
||||
nftnl_obj_fprintf;
|
||||
nftnl_obj_nlmsg_build_payload;
|
||||
nftnl_obj_nlmsg_parse;
|
||||
nftnl_obj_list_alloc;
|
||||
nftnl_obj_list_free;
|
||||
nftnl_obj_list_is_empty;
|
||||
nftnl_obj_list_foreach;
|
||||
nftnl_obj_list_add;
|
||||
nftnl_obj_list_add_tail;
|
||||
nftnl_obj_list_del;
|
||||
nftnl_obj_list_iter_create;
|
||||
nftnl_obj_list_iter_next;
|
||||
nftnl_obj_list_iter_destroy;
|
||||
} LIBNFTNL_4.2;
|
||||
|
||||
@ -419,14 +419,14 @@ static int nftnl_obj_cmd_snprintf(char *buf, size_t size,
|
||||
SNPRINTF_BUFFER_SIZE(ret, size, len, offset);
|
||||
|
||||
switch (type) {
|
||||
case NFT_OUTPUT_DEFAULT:
|
||||
case NFTNL_OUTPUT_DEFAULT:
|
||||
ret = nftnl_obj_snprintf_dflt(buf + offset, len, obj, type,
|
||||
flags);
|
||||
break;
|
||||
case NFT_OUTPUT_JSON:
|
||||
case NFTNL_OUTPUT_JSON:
|
||||
ret = nftnl_obj_export(buf + offset, len, obj, type, flags);
|
||||
break;
|
||||
case NFT_OUTPUT_XML:
|
||||
case NFTNL_OUTPUT_XML:
|
||||
default:
|
||||
return -1;
|
||||
}
|
||||
@ -455,7 +455,7 @@ static int nftnl_obj_do_snprintf(char *buf, size_t size, const void *obj,
|
||||
int nftnl_obj_fprintf(FILE *fp, const struct nftnl_obj *obj, uint32_t type,
|
||||
uint32_t flags)
|
||||
{
|
||||
return nftnl_fprintf(fp, obj, NFT_CMD_UNSPEC, type, flags,
|
||||
return nftnl_fprintf(fp, obj, NFTNL_CMD_UNSPEC, type, flags,
|
||||
nftnl_obj_do_snprintf);
|
||||
}
|
||||
EXPORT_SYMBOL(nftnl_obj_fprintf);
|
||||
|
||||
74
src/rule.c
74
src/rule.c
@ -62,7 +62,7 @@ struct nftnl_rule *nftnl_rule_alloc(void)
|
||||
|
||||
return r;
|
||||
}
|
||||
EXPORT_SYMBOL_ALIAS(nftnl_rule_alloc, nft_rule_alloc);
|
||||
EXPORT_SYMBOL(nftnl_rule_alloc);
|
||||
|
||||
void nftnl_rule_free(const struct nftnl_rule *r)
|
||||
{
|
||||
@ -80,13 +80,13 @@ void nftnl_rule_free(const struct nftnl_rule *r)
|
||||
|
||||
xfree(r);
|
||||
}
|
||||
EXPORT_SYMBOL_ALIAS(nftnl_rule_free, nft_rule_free);
|
||||
EXPORT_SYMBOL(nftnl_rule_free);
|
||||
|
||||
bool nftnl_rule_is_set(const struct nftnl_rule *r, uint16_t attr)
|
||||
{
|
||||
return r->flags & (1 << attr);
|
||||
}
|
||||
EXPORT_SYMBOL_ALIAS(nftnl_rule_is_set, nft_rule_attr_is_set);
|
||||
EXPORT_SYMBOL(nftnl_rule_is_set);
|
||||
|
||||
void nftnl_rule_unset(struct nftnl_rule *r, uint16_t attr)
|
||||
{
|
||||
@ -113,7 +113,7 @@ void nftnl_rule_unset(struct nftnl_rule *r, uint16_t attr)
|
||||
|
||||
r->flags &= ~(1 << attr);
|
||||
}
|
||||
EXPORT_SYMBOL_ALIAS(nftnl_rule_unset, nft_rule_attr_unset);
|
||||
EXPORT_SYMBOL(nftnl_rule_unset);
|
||||
|
||||
static uint32_t nftnl_rule_validate[NFTNL_RULE_MAX + 1] = {
|
||||
[NFTNL_RULE_HANDLE] = sizeof(uint64_t),
|
||||
@ -176,31 +176,31 @@ int nftnl_rule_set_data(struct nftnl_rule *r, uint16_t attr,
|
||||
r->flags |= (1 << attr);
|
||||
return 0;
|
||||
}
|
||||
EXPORT_SYMBOL_ALIAS(nftnl_rule_set_data, nft_rule_attr_set_data);
|
||||
EXPORT_SYMBOL(nftnl_rule_set_data);
|
||||
|
||||
int nftnl_rule_set(struct nftnl_rule *r, uint16_t attr, const void *data)
|
||||
{
|
||||
return nftnl_rule_set_data(r, attr, data, nftnl_rule_validate[attr]);
|
||||
}
|
||||
EXPORT_SYMBOL_ALIAS(nftnl_rule_set, nft_rule_attr_set);
|
||||
EXPORT_SYMBOL(nftnl_rule_set);
|
||||
|
||||
void nftnl_rule_set_u32(struct nftnl_rule *r, uint16_t attr, uint32_t val)
|
||||
{
|
||||
nftnl_rule_set_data(r, attr, &val, sizeof(uint32_t));
|
||||
}
|
||||
EXPORT_SYMBOL_ALIAS(nftnl_rule_set_u32, nft_rule_attr_set_u32);
|
||||
EXPORT_SYMBOL(nftnl_rule_set_u32);
|
||||
|
||||
void nftnl_rule_set_u64(struct nftnl_rule *r, uint16_t attr, uint64_t val)
|
||||
{
|
||||
nftnl_rule_set_data(r, attr, &val, sizeof(uint64_t));
|
||||
}
|
||||
EXPORT_SYMBOL_ALIAS(nftnl_rule_set_u64, nft_rule_attr_set_u64);
|
||||
EXPORT_SYMBOL(nftnl_rule_set_u64);
|
||||
|
||||
int nftnl_rule_set_str(struct nftnl_rule *r, uint16_t attr, const char *str)
|
||||
{
|
||||
return nftnl_rule_set_data(r, attr, str, strlen(str) + 1);
|
||||
}
|
||||
EXPORT_SYMBOL_ALIAS(nftnl_rule_set_str, nft_rule_attr_set_str);
|
||||
EXPORT_SYMBOL(nftnl_rule_set_str);
|
||||
|
||||
const void *nftnl_rule_get_data(const struct nftnl_rule *r, uint16_t attr,
|
||||
uint32_t *data_len)
|
||||
@ -236,20 +236,20 @@ const void *nftnl_rule_get_data(const struct nftnl_rule *r, uint16_t attr,
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
EXPORT_SYMBOL_ALIAS(nftnl_rule_get_data, nft_rule_attr_get_data);
|
||||
EXPORT_SYMBOL(nftnl_rule_get_data);
|
||||
|
||||
const void *nftnl_rule_get(const struct nftnl_rule *r, uint16_t attr)
|
||||
{
|
||||
uint32_t data_len;
|
||||
return nftnl_rule_get_data(r, attr, &data_len);
|
||||
}
|
||||
EXPORT_SYMBOL_ALIAS(nftnl_rule_get, nft_rule_attr_get);
|
||||
EXPORT_SYMBOL(nftnl_rule_get);
|
||||
|
||||
const char *nftnl_rule_get_str(const struct nftnl_rule *r, uint16_t attr)
|
||||
{
|
||||
return nftnl_rule_get(r, attr);
|
||||
}
|
||||
EXPORT_SYMBOL_ALIAS(nftnl_rule_get_str, nft_rule_attr_get_str);
|
||||
EXPORT_SYMBOL(nftnl_rule_get_str);
|
||||
|
||||
uint32_t nftnl_rule_get_u32(const struct nftnl_rule *r, uint16_t attr)
|
||||
{
|
||||
@ -260,7 +260,7 @@ uint32_t nftnl_rule_get_u32(const struct nftnl_rule *r, uint16_t attr)
|
||||
|
||||
return val ? *val : 0;
|
||||
}
|
||||
EXPORT_SYMBOL_ALIAS(nftnl_rule_get_u32, nft_rule_attr_get_u32);
|
||||
EXPORT_SYMBOL(nftnl_rule_get_u32);
|
||||
|
||||
uint64_t nftnl_rule_get_u64(const struct nftnl_rule *r, uint16_t attr)
|
||||
{
|
||||
@ -271,7 +271,7 @@ uint64_t nftnl_rule_get_u64(const struct nftnl_rule *r, uint16_t attr)
|
||||
|
||||
return val ? *val : 0;
|
||||
}
|
||||
EXPORT_SYMBOL_ALIAS(nftnl_rule_get_u64, nft_rule_attr_get_u64);
|
||||
EXPORT_SYMBOL(nftnl_rule_get_u64);
|
||||
|
||||
uint8_t nftnl_rule_get_u8(const struct nftnl_rule *r, uint16_t attr)
|
||||
{
|
||||
@ -282,7 +282,7 @@ uint8_t nftnl_rule_get_u8(const struct nftnl_rule *r, uint16_t attr)
|
||||
|
||||
return val ? *val : 0;
|
||||
}
|
||||
EXPORT_SYMBOL_ALIAS(nftnl_rule_get_u8, nft_rule_attr_get_u8);
|
||||
EXPORT_SYMBOL(nftnl_rule_get_u8);
|
||||
|
||||
void nftnl_rule_nlmsg_build_payload(struct nlmsghdr *nlh, struct nftnl_rule *r)
|
||||
{
|
||||
@ -323,13 +323,13 @@ void nftnl_rule_nlmsg_build_payload(struct nlmsghdr *nlh, struct nftnl_rule *r)
|
||||
mnl_attr_nest_end(nlh, nest);
|
||||
}
|
||||
}
|
||||
EXPORT_SYMBOL_ALIAS(nftnl_rule_nlmsg_build_payload, nft_rule_nlmsg_build_payload);
|
||||
EXPORT_SYMBOL(nftnl_rule_nlmsg_build_payload);
|
||||
|
||||
void nftnl_rule_add_expr(struct nftnl_rule *r, struct nftnl_expr *expr)
|
||||
{
|
||||
list_add_tail(&expr->head, &r->expr_list);
|
||||
}
|
||||
EXPORT_SYMBOL_ALIAS(nftnl_rule_add_expr, nft_rule_add_expr);
|
||||
EXPORT_SYMBOL(nftnl_rule_add_expr);
|
||||
|
||||
static int nftnl_rule_parse_attr_cb(const struct nlattr *attr, void *data)
|
||||
{
|
||||
@ -490,7 +490,7 @@ int nftnl_rule_nlmsg_parse(const struct nlmsghdr *nlh, struct nftnl_rule *r)
|
||||
|
||||
return 0;
|
||||
}
|
||||
EXPORT_SYMBOL_ALIAS(nftnl_rule_nlmsg_parse, nft_rule_nlmsg_parse);
|
||||
EXPORT_SYMBOL(nftnl_rule_nlmsg_parse);
|
||||
|
||||
#ifdef JSON_PARSING
|
||||
int nftnl_jansson_parse_rule(struct nftnl_rule *r, json_t *tree,
|
||||
@ -636,14 +636,14 @@ int nftnl_rule_parse(struct nftnl_rule *r, enum nftnl_parse_type type,
|
||||
{
|
||||
return nftnl_rule_do_parse(r, type, data, err, NFTNL_PARSE_BUFFER);
|
||||
}
|
||||
EXPORT_SYMBOL_ALIAS(nftnl_rule_parse, nft_rule_parse);
|
||||
EXPORT_SYMBOL(nftnl_rule_parse);
|
||||
|
||||
int nftnl_rule_parse_file(struct nftnl_rule *r, enum nftnl_parse_type type,
|
||||
FILE *fp, struct nftnl_parse_err *err)
|
||||
{
|
||||
return nftnl_rule_do_parse(r, type, fp, err, NFTNL_PARSE_FILE);
|
||||
}
|
||||
EXPORT_SYMBOL_ALIAS(nftnl_rule_parse_file, nft_rule_parse_file);
|
||||
EXPORT_SYMBOL(nftnl_rule_parse_file);
|
||||
|
||||
static int nftnl_rule_snprintf_json(char *buf, size_t size,
|
||||
const struct nftnl_rule *r,
|
||||
@ -835,7 +835,7 @@ int nftnl_rule_snprintf(char *buf, size_t size, const struct nftnl_rule *r,
|
||||
return nftnl_rule_cmd_snprintf(buf, size, r, nftnl_flag2cmd(flags), type,
|
||||
flags);
|
||||
}
|
||||
EXPORT_SYMBOL_ALIAS(nftnl_rule_snprintf, nft_rule_snprintf);
|
||||
EXPORT_SYMBOL(nftnl_rule_snprintf);
|
||||
|
||||
static int nftnl_rule_do_snprintf(char *buf, size_t size, const void *r,
|
||||
uint32_t cmd, uint32_t type, uint32_t flags)
|
||||
@ -849,7 +849,7 @@ int nftnl_rule_fprintf(FILE *fp, const struct nftnl_rule *r, uint32_t type,
|
||||
return nftnl_fprintf(fp, r, NFTNL_CMD_UNSPEC, type, flags,
|
||||
nftnl_rule_do_snprintf);
|
||||
}
|
||||
EXPORT_SYMBOL_ALIAS(nftnl_rule_fprintf, nft_rule_fprintf);
|
||||
EXPORT_SYMBOL(nftnl_rule_fprintf);
|
||||
|
||||
int nftnl_expr_foreach(struct nftnl_rule *r,
|
||||
int (*cb)(struct nftnl_expr *e, void *data),
|
||||
@ -865,7 +865,7 @@ int nftnl_expr_foreach(struct nftnl_rule *r,
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
EXPORT_SYMBOL_ALIAS(nftnl_expr_foreach, nft_rule_expr_foreach);
|
||||
EXPORT_SYMBOL(nftnl_expr_foreach);
|
||||
|
||||
struct nftnl_expr_iter {
|
||||
const struct nftnl_rule *r;
|
||||
@ -895,7 +895,7 @@ struct nftnl_expr_iter *nftnl_expr_iter_create(const struct nftnl_rule *r)
|
||||
|
||||
return iter;
|
||||
}
|
||||
EXPORT_SYMBOL_ALIAS(nftnl_expr_iter_create, nft_rule_expr_iter_create);
|
||||
EXPORT_SYMBOL(nftnl_expr_iter_create);
|
||||
|
||||
struct nftnl_expr *nftnl_expr_iter_next(struct nftnl_expr_iter *iter)
|
||||
{
|
||||
@ -911,13 +911,13 @@ struct nftnl_expr *nftnl_expr_iter_next(struct nftnl_expr_iter *iter)
|
||||
|
||||
return expr;
|
||||
}
|
||||
EXPORT_SYMBOL_ALIAS(nftnl_expr_iter_next, nft_rule_expr_iter_next);
|
||||
EXPORT_SYMBOL(nftnl_expr_iter_next);
|
||||
|
||||
void nftnl_expr_iter_destroy(struct nftnl_expr_iter *iter)
|
||||
{
|
||||
xfree(iter);
|
||||
}
|
||||
EXPORT_SYMBOL_ALIAS(nftnl_expr_iter_destroy, nft_rule_expr_iter_destroy);
|
||||
EXPORT_SYMBOL(nftnl_expr_iter_destroy);
|
||||
|
||||
bool nftnl_rule_cmp(const struct nftnl_rule *r1, const struct nftnl_rule *r2)
|
||||
{
|
||||
@ -966,7 +966,7 @@ struct nftnl_rule_list *nftnl_rule_list_alloc(void)
|
||||
|
||||
return list;
|
||||
}
|
||||
EXPORT_SYMBOL_ALIAS(nftnl_rule_list_alloc, nft_rule_list_alloc);
|
||||
EXPORT_SYMBOL(nftnl_rule_list_alloc);
|
||||
|
||||
void nftnl_rule_list_free(struct nftnl_rule_list *list)
|
||||
{
|
||||
@ -978,31 +978,31 @@ void nftnl_rule_list_free(struct nftnl_rule_list *list)
|
||||
}
|
||||
xfree(list);
|
||||
}
|
||||
EXPORT_SYMBOL_ALIAS(nftnl_rule_list_free, nft_rule_list_free);
|
||||
EXPORT_SYMBOL(nftnl_rule_list_free);
|
||||
|
||||
int nftnl_rule_list_is_empty(const struct nftnl_rule_list *list)
|
||||
{
|
||||
return list_empty(&list->list);
|
||||
}
|
||||
EXPORT_SYMBOL_ALIAS(nftnl_rule_list_is_empty, nft_rule_list_is_empty);
|
||||
EXPORT_SYMBOL(nftnl_rule_list_is_empty);
|
||||
|
||||
void nftnl_rule_list_add(struct nftnl_rule *r, struct nftnl_rule_list *list)
|
||||
{
|
||||
list_add(&r->head, &list->list);
|
||||
}
|
||||
EXPORT_SYMBOL_ALIAS(nftnl_rule_list_add, nft_rule_list_add);
|
||||
EXPORT_SYMBOL(nftnl_rule_list_add);
|
||||
|
||||
void nftnl_rule_list_add_tail(struct nftnl_rule *r, struct nftnl_rule_list *list)
|
||||
{
|
||||
list_add_tail(&r->head, &list->list);
|
||||
}
|
||||
EXPORT_SYMBOL_ALIAS(nftnl_rule_list_add_tail, nft_rule_list_add_tail);
|
||||
EXPORT_SYMBOL(nftnl_rule_list_add_tail);
|
||||
|
||||
void nftnl_rule_list_del(struct nftnl_rule *r)
|
||||
{
|
||||
list_del(&r->head);
|
||||
}
|
||||
EXPORT_SYMBOL_ALIAS(nftnl_rule_list_del, nft_rule_list_del);
|
||||
EXPORT_SYMBOL(nftnl_rule_list_del);
|
||||
|
||||
int nftnl_rule_list_foreach(struct nftnl_rule_list *rule_list,
|
||||
int (*cb)(struct nftnl_rule *r, void *data),
|
||||
@ -1018,7 +1018,7 @@ int nftnl_rule_list_foreach(struct nftnl_rule_list *rule_list,
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
EXPORT_SYMBOL_ALIAS(nftnl_rule_list_foreach, nft_rule_list_foreach);
|
||||
EXPORT_SYMBOL(nftnl_rule_list_foreach);
|
||||
|
||||
struct nftnl_rule_list_iter {
|
||||
const struct nftnl_rule_list *list;
|
||||
@ -1042,13 +1042,13 @@ nftnl_rule_list_iter_create(const struct nftnl_rule_list *l)
|
||||
|
||||
return iter;
|
||||
}
|
||||
EXPORT_SYMBOL_ALIAS(nftnl_rule_list_iter_create, nft_rule_list_iter_create);
|
||||
EXPORT_SYMBOL(nftnl_rule_list_iter_create);
|
||||
|
||||
struct nftnl_rule *nftnl_rule_list_iter_cur(struct nftnl_rule_list_iter *iter)
|
||||
{
|
||||
return iter->cur;
|
||||
}
|
||||
EXPORT_SYMBOL_ALIAS(nftnl_rule_list_iter_cur, nft_rule_list_iter_cur);
|
||||
EXPORT_SYMBOL(nftnl_rule_list_iter_cur);
|
||||
|
||||
struct nftnl_rule *nftnl_rule_list_iter_next(struct nftnl_rule_list_iter *iter)
|
||||
{
|
||||
@ -1064,10 +1064,10 @@ struct nftnl_rule *nftnl_rule_list_iter_next(struct nftnl_rule_list_iter *iter)
|
||||
|
||||
return r;
|
||||
}
|
||||
EXPORT_SYMBOL_ALIAS(nftnl_rule_list_iter_next, nft_rule_list_iter_next);
|
||||
EXPORT_SYMBOL(nftnl_rule_list_iter_next);
|
||||
|
||||
void nftnl_rule_list_iter_destroy(const struct nftnl_rule_list_iter *iter)
|
||||
{
|
||||
xfree(iter);
|
||||
}
|
||||
EXPORT_SYMBOL_ALIAS(nftnl_rule_list_iter_destroy, nft_rule_list_iter_destroy);
|
||||
EXPORT_SYMBOL(nftnl_rule_list_iter_destroy);
|
||||
|
||||
@ -59,7 +59,7 @@ struct nftnl_ruleset *nftnl_ruleset_alloc(void)
|
||||
{
|
||||
return calloc(1, sizeof(struct nftnl_ruleset));
|
||||
}
|
||||
EXPORT_SYMBOL_ALIAS(nftnl_ruleset_alloc, nft_ruleset_alloc);
|
||||
EXPORT_SYMBOL(nftnl_ruleset_alloc);
|
||||
|
||||
void nftnl_ruleset_free(const struct nftnl_ruleset *r)
|
||||
{
|
||||
@ -73,13 +73,13 @@ void nftnl_ruleset_free(const struct nftnl_ruleset *r)
|
||||
nftnl_rule_list_free(r->rule_list);
|
||||
xfree(r);
|
||||
}
|
||||
EXPORT_SYMBOL_ALIAS(nftnl_ruleset_free, nft_ruleset_free);
|
||||
EXPORT_SYMBOL(nftnl_ruleset_free);
|
||||
|
||||
bool nftnl_ruleset_is_set(const struct nftnl_ruleset *r, uint16_t attr)
|
||||
{
|
||||
return r->flags & (1 << attr);
|
||||
}
|
||||
EXPORT_SYMBOL_ALIAS(nftnl_ruleset_is_set, nft_ruleset_attr_is_set);
|
||||
EXPORT_SYMBOL(nftnl_ruleset_is_set);
|
||||
|
||||
void nftnl_ruleset_unset(struct nftnl_ruleset *r, uint16_t attr)
|
||||
{
|
||||
@ -102,7 +102,7 @@ void nftnl_ruleset_unset(struct nftnl_ruleset *r, uint16_t attr)
|
||||
}
|
||||
r->flags &= ~(1 << attr);
|
||||
}
|
||||
EXPORT_SYMBOL_ALIAS(nftnl_ruleset_unset, nft_ruleset_attr_unset);
|
||||
EXPORT_SYMBOL(nftnl_ruleset_unset);
|
||||
|
||||
void nftnl_ruleset_set(struct nftnl_ruleset *r, uint16_t attr, void *data)
|
||||
{
|
||||
@ -128,7 +128,7 @@ void nftnl_ruleset_set(struct nftnl_ruleset *r, uint16_t attr, void *data)
|
||||
}
|
||||
r->flags |= (1 << attr);
|
||||
}
|
||||
EXPORT_SYMBOL_ALIAS(nftnl_ruleset_set, nft_ruleset_attr_set);
|
||||
EXPORT_SYMBOL(nftnl_ruleset_set);
|
||||
|
||||
void *nftnl_ruleset_get(const struct nftnl_ruleset *r, uint16_t attr)
|
||||
{
|
||||
@ -148,7 +148,7 @@ void *nftnl_ruleset_get(const struct nftnl_ruleset *r, uint16_t attr)
|
||||
return NULL;
|
||||
}
|
||||
}
|
||||
EXPORT_SYMBOL_ALIAS(nftnl_ruleset_get, nft_ruleset_attr_get);
|
||||
EXPORT_SYMBOL(nftnl_ruleset_get);
|
||||
|
||||
void nftnl_ruleset_ctx_free(const struct nftnl_parse_ctx *ctx)
|
||||
{
|
||||
@ -171,13 +171,13 @@ void nftnl_ruleset_ctx_free(const struct nftnl_parse_ctx *ctx)
|
||||
break;
|
||||
}
|
||||
}
|
||||
EXPORT_SYMBOL_ALIAS(nftnl_ruleset_ctx_free, nft_ruleset_ctx_free);
|
||||
EXPORT_SYMBOL(nftnl_ruleset_ctx_free);
|
||||
|
||||
bool nftnl_ruleset_ctx_is_set(const struct nftnl_parse_ctx *ctx, uint16_t attr)
|
||||
{
|
||||
return ctx->flags & (1 << attr);
|
||||
}
|
||||
EXPORT_SYMBOL_ALIAS(nftnl_ruleset_ctx_is_set, nft_ruleset_ctx_is_set);
|
||||
EXPORT_SYMBOL(nftnl_ruleset_ctx_is_set);
|
||||
|
||||
void *nftnl_ruleset_ctx_get(const struct nftnl_parse_ctx *ctx, uint16_t attr)
|
||||
{
|
||||
@ -203,14 +203,14 @@ void *nftnl_ruleset_ctx_get(const struct nftnl_parse_ctx *ctx, uint16_t attr)
|
||||
return NULL;
|
||||
}
|
||||
}
|
||||
EXPORT_SYMBOL_ALIAS(nftnl_ruleset_ctx_get, nft_ruleset_ctx_get);
|
||||
EXPORT_SYMBOL(nftnl_ruleset_ctx_get);
|
||||
|
||||
uint32_t nftnl_ruleset_ctx_get_u32(const struct nftnl_parse_ctx *ctx, uint16_t attr)
|
||||
{
|
||||
const void *ret = nftnl_ruleset_ctx_get(ctx, attr);
|
||||
return ret == NULL ? 0 : *((uint32_t *)ret);
|
||||
}
|
||||
EXPORT_SYMBOL_ALIAS(nftnl_ruleset_ctx_get_u32, nft_ruleset_ctx_get_u32);
|
||||
EXPORT_SYMBOL(nftnl_ruleset_ctx_get_u32);
|
||||
|
||||
#if defined(JSON_PARSING)
|
||||
static void nftnl_ruleset_ctx_set(struct nftnl_parse_ctx *ctx, uint16_t attr,
|
||||
@ -599,7 +599,7 @@ int nftnl_ruleset_parse_file_cb(enum nftnl_parse_type type, FILE *fp,
|
||||
{
|
||||
return nftnl_ruleset_do_parse(type, fp, err, NFTNL_PARSE_FILE, data, cb);
|
||||
}
|
||||
EXPORT_SYMBOL_ALIAS(nftnl_ruleset_parse_file_cb, nft_ruleset_parse_file_cb);
|
||||
EXPORT_SYMBOL(nftnl_ruleset_parse_file_cb);
|
||||
|
||||
int nftnl_ruleset_parse_buffer_cb(enum nftnl_parse_type type, const char *buffer,
|
||||
struct nftnl_parse_err *err, void *data,
|
||||
@ -608,7 +608,7 @@ int nftnl_ruleset_parse_buffer_cb(enum nftnl_parse_type type, const char *buffer
|
||||
return nftnl_ruleset_do_parse(type, buffer, err, NFTNL_PARSE_BUFFER, data,
|
||||
cb);
|
||||
}
|
||||
EXPORT_SYMBOL_ALIAS(nftnl_ruleset_parse_buffer_cb, nft_ruleset_parse_buffer_cb);
|
||||
EXPORT_SYMBOL(nftnl_ruleset_parse_buffer_cb);
|
||||
|
||||
static int nftnl_ruleset_cb(const struct nftnl_parse_ctx *ctx)
|
||||
{
|
||||
@ -676,14 +676,14 @@ int nftnl_ruleset_parse(struct nftnl_ruleset *r, enum nftnl_parse_type type,
|
||||
{
|
||||
return nftnl_ruleset_parse_buffer_cb(type, data, err, r, nftnl_ruleset_cb);
|
||||
}
|
||||
EXPORT_SYMBOL_ALIAS(nftnl_ruleset_parse, nft_ruleset_parse);
|
||||
EXPORT_SYMBOL(nftnl_ruleset_parse);
|
||||
|
||||
int nftnl_ruleset_parse_file(struct nftnl_ruleset *rs, enum nftnl_parse_type type,
|
||||
FILE *fp, struct nftnl_parse_err *err)
|
||||
{
|
||||
return nftnl_ruleset_parse_file_cb(type, fp, err, rs, nftnl_ruleset_cb);
|
||||
}
|
||||
EXPORT_SYMBOL_ALIAS(nftnl_ruleset_parse_file, nft_ruleset_parse_file);
|
||||
EXPORT_SYMBOL(nftnl_ruleset_parse_file);
|
||||
|
||||
static const char *nftnl_ruleset_o_opentag(uint32_t type)
|
||||
{
|
||||
@ -943,7 +943,7 @@ int nftnl_ruleset_snprintf(char *buf, size_t size, const struct nftnl_ruleset *r
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
EXPORT_SYMBOL_ALIAS(nftnl_ruleset_snprintf, nft_ruleset_snprintf);
|
||||
EXPORT_SYMBOL(nftnl_ruleset_snprintf);
|
||||
|
||||
static int nftnl_ruleset_fprintf_tables(FILE *fp, const struct nftnl_ruleset *rs,
|
||||
uint32_t type, uint32_t flags)
|
||||
@ -1163,4 +1163,4 @@ int nftnl_ruleset_fprintf(FILE *fp, const struct nftnl_ruleset *rs, uint32_t typ
|
||||
return nftnl_ruleset_cmd_fprintf(fp, rs, nftnl_flag2cmd(flags), type,
|
||||
flags);
|
||||
}
|
||||
EXPORT_SYMBOL_ALIAS(nftnl_ruleset_fprintf, nft_ruleset_fprintf);
|
||||
EXPORT_SYMBOL(nftnl_ruleset_fprintf);
|
||||
|
||||
64
src/set.c
64
src/set.c
@ -38,7 +38,7 @@ struct nftnl_set *nftnl_set_alloc(void)
|
||||
INIT_LIST_HEAD(&s->element_list);
|
||||
return s;
|
||||
}
|
||||
EXPORT_SYMBOL_ALIAS(nftnl_set_alloc, nft_set_alloc);
|
||||
EXPORT_SYMBOL(nftnl_set_alloc);
|
||||
|
||||
void nftnl_set_free(const struct nftnl_set *s)
|
||||
{
|
||||
@ -55,13 +55,13 @@ void nftnl_set_free(const struct nftnl_set *s)
|
||||
}
|
||||
xfree(s);
|
||||
}
|
||||
EXPORT_SYMBOL_ALIAS(nftnl_set_free, nft_set_free);
|
||||
EXPORT_SYMBOL(nftnl_set_free);
|
||||
|
||||
bool nftnl_set_is_set(const struct nftnl_set *s, uint16_t attr)
|
||||
{
|
||||
return s->flags & (1 << attr);
|
||||
}
|
||||
EXPORT_SYMBOL_ALIAS(nftnl_set_is_set, nft_set_attr_is_set);
|
||||
EXPORT_SYMBOL(nftnl_set_is_set);
|
||||
|
||||
void nftnl_set_unset(struct nftnl_set *s, uint16_t attr)
|
||||
{
|
||||
@ -97,7 +97,7 @@ void nftnl_set_unset(struct nftnl_set *s, uint16_t attr)
|
||||
|
||||
s->flags &= ~(1 << attr);
|
||||
}
|
||||
EXPORT_SYMBOL_ALIAS(nftnl_set_unset, nft_set_attr_unset);
|
||||
EXPORT_SYMBOL(nftnl_set_unset);
|
||||
|
||||
static uint32_t nftnl_set_validate[NFTNL_SET_MAX + 1] = {
|
||||
[NFTNL_SET_FLAGS] = sizeof(uint32_t),
|
||||
@ -186,31 +186,31 @@ int nftnl_set_set_data(struct nftnl_set *s, uint16_t attr, const void *data,
|
||||
s->flags |= (1 << attr);
|
||||
return 0;
|
||||
}
|
||||
EXPORT_SYMBOL_ALIAS(nftnl_set_set_data, nft_set_attr_set_data);
|
||||
EXPORT_SYMBOL(nftnl_set_set_data);
|
||||
|
||||
int nftnl_set_set(struct nftnl_set *s, uint16_t attr, const void *data)
|
||||
{
|
||||
return nftnl_set_set_data(s, attr, data, nftnl_set_validate[attr]);
|
||||
}
|
||||
EXPORT_SYMBOL_ALIAS(nftnl_set_set, nft_set_attr_set);
|
||||
EXPORT_SYMBOL(nftnl_set_set);
|
||||
|
||||
void nftnl_set_set_u32(struct nftnl_set *s, uint16_t attr, uint32_t val)
|
||||
{
|
||||
nftnl_set_set(s, attr, &val);
|
||||
}
|
||||
EXPORT_SYMBOL_ALIAS(nftnl_set_set_u32, nft_set_attr_set_u32);
|
||||
EXPORT_SYMBOL(nftnl_set_set_u32);
|
||||
|
||||
void nftnl_set_set_u64(struct nftnl_set *s, uint16_t attr, uint64_t val)
|
||||
{
|
||||
nftnl_set_set(s, attr, &val);
|
||||
}
|
||||
EXPORT_SYMBOL_ALIAS(nftnl_set_set_u64, nft_set_attr_set_u64);
|
||||
EXPORT_SYMBOL(nftnl_set_set_u64);
|
||||
|
||||
int nftnl_set_set_str(struct nftnl_set *s, uint16_t attr, const char *str)
|
||||
{
|
||||
return nftnl_set_set_data(s, attr, str, strlen(str) + 1);
|
||||
}
|
||||
EXPORT_SYMBOL_ALIAS(nftnl_set_set_str, nft_set_attr_set_str);
|
||||
EXPORT_SYMBOL(nftnl_set_set_str);
|
||||
|
||||
const void *nftnl_set_get_data(const struct nftnl_set *s, uint16_t attr,
|
||||
uint32_t *data_len)
|
||||
@ -267,20 +267,20 @@ const void *nftnl_set_get_data(const struct nftnl_set *s, uint16_t attr,
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
EXPORT_SYMBOL_ALIAS(nftnl_set_get_data, nft_set_attr_get_data);
|
||||
EXPORT_SYMBOL(nftnl_set_get_data);
|
||||
|
||||
const void *nftnl_set_get(const struct nftnl_set *s, uint16_t attr)
|
||||
{
|
||||
uint32_t data_len;
|
||||
return nftnl_set_get_data(s, attr, &data_len);
|
||||
}
|
||||
EXPORT_SYMBOL_ALIAS(nftnl_set_get, nft_set_attr_get);
|
||||
EXPORT_SYMBOL(nftnl_set_get);
|
||||
|
||||
const char *nftnl_set_get_str(const struct nftnl_set *s, uint16_t attr)
|
||||
{
|
||||
return nftnl_set_get(s, attr);
|
||||
}
|
||||
EXPORT_SYMBOL_ALIAS(nftnl_set_get_str, nft_set_attr_get_str);
|
||||
EXPORT_SYMBOL(nftnl_set_get_str);
|
||||
|
||||
uint32_t nftnl_set_get_u32(const struct nftnl_set *s, uint16_t attr)
|
||||
{
|
||||
@ -291,7 +291,7 @@ uint32_t nftnl_set_get_u32(const struct nftnl_set *s, uint16_t attr)
|
||||
|
||||
return val ? *val : 0;
|
||||
}
|
||||
EXPORT_SYMBOL_ALIAS(nftnl_set_get_u32, nft_set_attr_get_u32);
|
||||
EXPORT_SYMBOL(nftnl_set_get_u32);
|
||||
|
||||
uint64_t nftnl_set_get_u64(const struct nftnl_set *s, uint16_t attr)
|
||||
{
|
||||
@ -302,7 +302,7 @@ uint64_t nftnl_set_get_u64(const struct nftnl_set *s, uint16_t attr)
|
||||
|
||||
return val ? *val : 0;
|
||||
}
|
||||
EXPORT_SYMBOL_ALIAS(nftnl_set_get_u64, nft_set_attr_get_u64);
|
||||
EXPORT_SYMBOL(nftnl_set_get_u64);
|
||||
|
||||
struct nftnl_set *nftnl_set_clone(const struct nftnl_set *set)
|
||||
{
|
||||
@ -383,7 +383,7 @@ void nftnl_set_nlmsg_build_payload(struct nlmsghdr *nlh, struct nftnl_set *s)
|
||||
if (s->flags & (1 << NFTNL_SET_USERDATA))
|
||||
mnl_attr_put(nlh, NFTA_SET_USERDATA, s->user.len, s->user.data);
|
||||
}
|
||||
EXPORT_SYMBOL_ALIAS(nftnl_set_nlmsg_build_payload, nft_set_nlmsg_build_payload);
|
||||
EXPORT_SYMBOL(nftnl_set_nlmsg_build_payload);
|
||||
|
||||
static int nftnl_set_parse_attr_cb(const struct nlattr *attr, void *data)
|
||||
{
|
||||
@ -546,7 +546,7 @@ int nftnl_set_nlmsg_parse(const struct nlmsghdr *nlh, struct nftnl_set *s)
|
||||
|
||||
return 0;
|
||||
}
|
||||
EXPORT_SYMBOL_ALIAS(nftnl_set_nlmsg_parse, nft_set_nlmsg_parse);
|
||||
EXPORT_SYMBOL(nftnl_set_nlmsg_parse);
|
||||
|
||||
#ifdef JSON_PARSING
|
||||
static int nftnl_jansson_parse_set_info(struct nftnl_set *s, json_t *tree,
|
||||
@ -723,14 +723,14 @@ int nftnl_set_parse(struct nftnl_set *s, enum nftnl_parse_type type,
|
||||
{
|
||||
return nftnl_set_do_parse(s, type, data, err, NFTNL_PARSE_BUFFER);
|
||||
}
|
||||
EXPORT_SYMBOL_ALIAS(nftnl_set_parse, nft_set_parse);
|
||||
EXPORT_SYMBOL(nftnl_set_parse);
|
||||
|
||||
int nftnl_set_parse_file(struct nftnl_set *s, enum nftnl_parse_type type,
|
||||
FILE *fp, struct nftnl_parse_err *err)
|
||||
{
|
||||
return nftnl_set_do_parse(s, type, fp, err, NFTNL_PARSE_FILE);
|
||||
}
|
||||
EXPORT_SYMBOL_ALIAS(nftnl_set_parse_file, nft_set_parse_file);
|
||||
EXPORT_SYMBOL(nftnl_set_parse_file);
|
||||
|
||||
static int nftnl_set_snprintf_json(char *buf, size_t size,
|
||||
const struct nftnl_set *s,
|
||||
@ -924,7 +924,7 @@ int nftnl_set_snprintf(char *buf, size_t size, const struct nftnl_set *s,
|
||||
return nftnl_set_cmd_snprintf(buf, size, s, nftnl_flag2cmd(flags), type,
|
||||
flags);
|
||||
}
|
||||
EXPORT_SYMBOL_ALIAS(nftnl_set_snprintf, nft_set_snprintf);
|
||||
EXPORT_SYMBOL(nftnl_set_snprintf);
|
||||
|
||||
static int nftnl_set_do_snprintf(char *buf, size_t size, const void *s,
|
||||
uint32_t cmd, uint32_t type, uint32_t flags)
|
||||
@ -938,13 +938,13 @@ int nftnl_set_fprintf(FILE *fp, const struct nftnl_set *s, uint32_t type,
|
||||
return nftnl_fprintf(fp, s, NFTNL_CMD_UNSPEC, type, flags,
|
||||
nftnl_set_do_snprintf);
|
||||
}
|
||||
EXPORT_SYMBOL_ALIAS(nftnl_set_fprintf, nft_set_fprintf);
|
||||
EXPORT_SYMBOL(nftnl_set_fprintf);
|
||||
|
||||
void nftnl_set_elem_add(struct nftnl_set *s, struct nftnl_set_elem *elem)
|
||||
{
|
||||
list_add_tail(&elem->head, &s->element_list);
|
||||
}
|
||||
EXPORT_SYMBOL_ALIAS(nftnl_set_elem_add, nft_set_elem_add);
|
||||
EXPORT_SYMBOL(nftnl_set_elem_add);
|
||||
|
||||
struct nftnl_set_list {
|
||||
struct list_head list;
|
||||
@ -962,7 +962,7 @@ struct nftnl_set_list *nftnl_set_list_alloc(void)
|
||||
|
||||
return list;
|
||||
}
|
||||
EXPORT_SYMBOL_ALIAS(nftnl_set_list_alloc, nft_set_list_alloc);
|
||||
EXPORT_SYMBOL(nftnl_set_list_alloc);
|
||||
|
||||
void nftnl_set_list_free(struct nftnl_set_list *list)
|
||||
{
|
||||
@ -974,31 +974,31 @@ void nftnl_set_list_free(struct nftnl_set_list *list)
|
||||
}
|
||||
xfree(list);
|
||||
}
|
||||
EXPORT_SYMBOL_ALIAS(nftnl_set_list_free, nft_set_list_free);
|
||||
EXPORT_SYMBOL(nftnl_set_list_free);
|
||||
|
||||
int nftnl_set_list_is_empty(const struct nftnl_set_list *list)
|
||||
{
|
||||
return list_empty(&list->list);
|
||||
}
|
||||
EXPORT_SYMBOL_ALIAS(nftnl_set_list_is_empty, nft_set_list_is_empty);
|
||||
EXPORT_SYMBOL(nftnl_set_list_is_empty);
|
||||
|
||||
void nftnl_set_list_add(struct nftnl_set *s, struct nftnl_set_list *list)
|
||||
{
|
||||
list_add(&s->head, &list->list);
|
||||
}
|
||||
EXPORT_SYMBOL_ALIAS(nftnl_set_list_add, nft_set_list_add);
|
||||
EXPORT_SYMBOL(nftnl_set_list_add);
|
||||
|
||||
void nftnl_set_list_add_tail(struct nftnl_set *s, struct nftnl_set_list *list)
|
||||
{
|
||||
list_add_tail(&s->head, &list->list);
|
||||
}
|
||||
EXPORT_SYMBOL_ALIAS(nftnl_set_list_add_tail, nft_set_list_add_tail);
|
||||
EXPORT_SYMBOL(nftnl_set_list_add_tail);
|
||||
|
||||
void nftnl_set_list_del(struct nftnl_set *s)
|
||||
{
|
||||
list_del(&s->head);
|
||||
}
|
||||
EXPORT_SYMBOL_ALIAS(nftnl_set_list_del, nft_set_list_del);
|
||||
EXPORT_SYMBOL(nftnl_set_list_del);
|
||||
|
||||
int nftnl_set_list_foreach(struct nftnl_set_list *set_list,
|
||||
int (*cb)(struct nftnl_set *t, void *data), void *data)
|
||||
@ -1013,7 +1013,7 @@ int nftnl_set_list_foreach(struct nftnl_set_list *set_list,
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
EXPORT_SYMBOL_ALIAS(nftnl_set_list_foreach, nft_set_list_foreach);
|
||||
EXPORT_SYMBOL(nftnl_set_list_foreach);
|
||||
|
||||
struct nftnl_set_list_iter {
|
||||
const struct nftnl_set_list *list;
|
||||
@ -1037,14 +1037,14 @@ nftnl_set_list_iter_create(const struct nftnl_set_list *l)
|
||||
|
||||
return iter;
|
||||
}
|
||||
EXPORT_SYMBOL_ALIAS(nftnl_set_list_iter_create, nft_set_list_iter_create);
|
||||
EXPORT_SYMBOL(nftnl_set_list_iter_create);
|
||||
|
||||
struct nftnl_set *
|
||||
nftnl_set_list_iter_cur(const struct nftnl_set_list_iter *iter)
|
||||
{
|
||||
return iter->cur;
|
||||
}
|
||||
EXPORT_SYMBOL_ALIAS(nftnl_set_list_iter_cur, nft_set_list_iter_cur);
|
||||
EXPORT_SYMBOL(nftnl_set_list_iter_cur);
|
||||
|
||||
struct nftnl_set *nftnl_set_list_iter_next(struct nftnl_set_list_iter *iter)
|
||||
{
|
||||
@ -1060,13 +1060,13 @@ struct nftnl_set *nftnl_set_list_iter_next(struct nftnl_set_list_iter *iter)
|
||||
|
||||
return s;
|
||||
}
|
||||
EXPORT_SYMBOL_ALIAS(nftnl_set_list_iter_next, nft_set_list_iter_next);
|
||||
EXPORT_SYMBOL(nftnl_set_list_iter_next);
|
||||
|
||||
void nftnl_set_list_iter_destroy(const struct nftnl_set_list_iter *iter)
|
||||
{
|
||||
xfree(iter);
|
||||
}
|
||||
EXPORT_SYMBOL_ALIAS(nftnl_set_list_iter_destroy, nft_set_list_iter_destroy);
|
||||
EXPORT_SYMBOL(nftnl_set_list_iter_destroy);
|
||||
|
||||
static struct nftnl_set *nftnl_set_lookup(const char *this_set_name,
|
||||
struct nftnl_set_list *set_list)
|
||||
|
||||
@ -37,7 +37,7 @@ struct nftnl_set_elem *nftnl_set_elem_alloc(void)
|
||||
|
||||
return s;
|
||||
}
|
||||
EXPORT_SYMBOL_ALIAS(nftnl_set_elem_alloc, nft_set_elem_alloc);
|
||||
EXPORT_SYMBOL(nftnl_set_elem_alloc);
|
||||
|
||||
void nftnl_set_elem_free(struct nftnl_set_elem *s)
|
||||
{
|
||||
@ -55,13 +55,13 @@ void nftnl_set_elem_free(struct nftnl_set_elem *s)
|
||||
|
||||
xfree(s);
|
||||
}
|
||||
EXPORT_SYMBOL_ALIAS(nftnl_set_elem_free, nft_set_elem_free);
|
||||
EXPORT_SYMBOL(nftnl_set_elem_free);
|
||||
|
||||
bool nftnl_set_elem_is_set(const struct nftnl_set_elem *s, uint16_t attr)
|
||||
{
|
||||
return s->flags & (1 << attr);
|
||||
}
|
||||
EXPORT_SYMBOL_ALIAS(nftnl_set_elem_is_set, nft_set_elem_attr_is_set);
|
||||
EXPORT_SYMBOL(nftnl_set_elem_is_set);
|
||||
|
||||
void nftnl_set_elem_unset(struct nftnl_set_elem *s, uint16_t attr)
|
||||
{
|
||||
@ -94,7 +94,7 @@ void nftnl_set_elem_unset(struct nftnl_set_elem *s, uint16_t attr)
|
||||
|
||||
s->flags &= ~(1 << attr);
|
||||
}
|
||||
EXPORT_SYMBOL_ALIAS(nftnl_set_elem_unset, nft_set_elem_attr_unset);
|
||||
EXPORT_SYMBOL(nftnl_set_elem_unset);
|
||||
|
||||
int nftnl_set_elem_set(struct nftnl_set_elem *s, uint16_t attr,
|
||||
const void *data, uint32_t data_len)
|
||||
@ -147,25 +147,25 @@ int nftnl_set_elem_set(struct nftnl_set_elem *s, uint16_t attr,
|
||||
s->flags |= (1 << attr);
|
||||
return -1;
|
||||
}
|
||||
EXPORT_SYMBOL_ALIAS(nftnl_set_elem_set, nft_set_elem_attr_set);
|
||||
EXPORT_SYMBOL(nftnl_set_elem_set);
|
||||
|
||||
void nftnl_set_elem_set_u32(struct nftnl_set_elem *s, uint16_t attr, uint32_t val)
|
||||
{
|
||||
nftnl_set_elem_set(s, attr, &val, sizeof(uint32_t));
|
||||
}
|
||||
EXPORT_SYMBOL_ALIAS(nftnl_set_elem_set_u32, nft_set_elem_attr_set_u32);
|
||||
EXPORT_SYMBOL(nftnl_set_elem_set_u32);
|
||||
|
||||
void nftnl_set_elem_set_u64(struct nftnl_set_elem *s, uint16_t attr, uint64_t val)
|
||||
{
|
||||
nftnl_set_elem_set(s, attr, &val, sizeof(uint64_t));
|
||||
}
|
||||
EXPORT_SYMBOL_ALIAS(nftnl_set_elem_set_u64, nft_set_elem_attr_set_u64);
|
||||
EXPORT_SYMBOL(nftnl_set_elem_set_u64);
|
||||
|
||||
int nftnl_set_elem_set_str(struct nftnl_set_elem *s, uint16_t attr, const char *str)
|
||||
{
|
||||
return nftnl_set_elem_set(s, attr, str, strlen(str) + 1);
|
||||
}
|
||||
EXPORT_SYMBOL_ALIAS(nftnl_set_elem_set_str, nft_set_elem_attr_set_str);
|
||||
EXPORT_SYMBOL(nftnl_set_elem_set_str);
|
||||
|
||||
const void *nftnl_set_elem_get(struct nftnl_set_elem *s, uint16_t attr, uint32_t *data_len)
|
||||
{
|
||||
@ -205,7 +205,7 @@ const void *nftnl_set_elem_get(struct nftnl_set_elem *s, uint16_t attr, uint32_t
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
EXPORT_SYMBOL_ALIAS(nftnl_set_elem_get, nft_set_elem_attr_get);
|
||||
EXPORT_SYMBOL(nftnl_set_elem_get);
|
||||
|
||||
const char *nftnl_set_elem_get_str(struct nftnl_set_elem *s, uint16_t attr)
|
||||
{
|
||||
@ -213,7 +213,7 @@ const char *nftnl_set_elem_get_str(struct nftnl_set_elem *s, uint16_t attr)
|
||||
|
||||
return nftnl_set_elem_get(s, attr, &size);
|
||||
}
|
||||
EXPORT_SYMBOL_ALIAS(nftnl_set_elem_get_str, nft_set_elem_attr_get_str);
|
||||
EXPORT_SYMBOL(nftnl_set_elem_get_str);
|
||||
|
||||
uint32_t nftnl_set_elem_get_u32(struct nftnl_set_elem *s, uint16_t attr)
|
||||
{
|
||||
@ -221,7 +221,7 @@ uint32_t nftnl_set_elem_get_u32(struct nftnl_set_elem *s, uint16_t attr)
|
||||
uint32_t val = *((uint32_t *)nftnl_set_elem_get(s, attr, &size));
|
||||
return val;
|
||||
}
|
||||
EXPORT_SYMBOL_ALIAS(nftnl_set_elem_get_u32, nft_set_elem_attr_get_u32);
|
||||
EXPORT_SYMBOL(nftnl_set_elem_get_u32);
|
||||
|
||||
uint64_t nftnl_set_elem_get_u64(struct nftnl_set_elem *s, uint16_t attr)
|
||||
{
|
||||
@ -229,7 +229,7 @@ uint64_t nftnl_set_elem_get_u64(struct nftnl_set_elem *s, uint16_t attr)
|
||||
uint64_t val = *((uint64_t *)nftnl_set_elem_get(s, attr, &size));
|
||||
return val;
|
||||
}
|
||||
EXPORT_SYMBOL_ALIAS(nftnl_set_elem_get_u64, nft_set_elem_attr_get_u64);
|
||||
EXPORT_SYMBOL(nftnl_set_elem_get_u64);
|
||||
|
||||
struct nftnl_set_elem *nftnl_set_elem_clone(struct nftnl_set_elem *elem)
|
||||
{
|
||||
@ -332,7 +332,7 @@ void nftnl_set_elems_nlmsg_build_payload(struct nlmsghdr *nlh, struct nftnl_set
|
||||
|
||||
mnl_attr_nest_end(nlh, nest1);
|
||||
}
|
||||
EXPORT_SYMBOL_ALIAS(nftnl_set_elems_nlmsg_build_payload, nft_set_elems_nlmsg_build_payload);
|
||||
EXPORT_SYMBOL(nftnl_set_elems_nlmsg_build_payload);
|
||||
|
||||
static int nftnl_set_elem_parse_attr_cb(const struct nlattr *attr, void *data)
|
||||
{
|
||||
@ -546,7 +546,7 @@ int nftnl_set_elems_nlmsg_parse(const struct nlmsghdr *nlh, struct nftnl_set *s)
|
||||
|
||||
return 0;
|
||||
}
|
||||
EXPORT_SYMBOL_ALIAS(nftnl_set_elems_nlmsg_parse, nft_set_elems_nlmsg_parse);
|
||||
EXPORT_SYMBOL(nftnl_set_elems_nlmsg_parse);
|
||||
|
||||
static int nftnl_set_elem_json_parse(struct nftnl_set_elem *e, const void *json,
|
||||
struct nftnl_parse_err *err,
|
||||
@ -592,14 +592,14 @@ int nftnl_set_elem_parse(struct nftnl_set_elem *e, enum nftnl_parse_type type,
|
||||
{
|
||||
return nftnl_set_elem_do_parse(e, type, data, err, NFTNL_PARSE_BUFFER);
|
||||
}
|
||||
EXPORT_SYMBOL_ALIAS(nftnl_set_elem_parse, nft_set_elem_parse);
|
||||
EXPORT_SYMBOL(nftnl_set_elem_parse);
|
||||
|
||||
int nftnl_set_elem_parse_file(struct nftnl_set_elem *e, enum nftnl_parse_type type,
|
||||
FILE *fp, struct nftnl_parse_err *err)
|
||||
{
|
||||
return nftnl_set_elem_do_parse(e, type, fp, err, NFTNL_PARSE_FILE);
|
||||
}
|
||||
EXPORT_SYMBOL_ALIAS(nftnl_set_elem_parse_file, nft_set_elem_parse_file);
|
||||
EXPORT_SYMBOL(nftnl_set_elem_parse_file);
|
||||
|
||||
static int nftnl_set_elem_snprintf_json(char *buf, size_t size,
|
||||
const struct nftnl_set_elem *e,
|
||||
@ -726,7 +726,7 @@ int nftnl_set_elem_snprintf(char *buf, size_t size,
|
||||
return nftnl_set_elem_cmd_snprintf(buf, size, e, nftnl_flag2cmd(flags),
|
||||
type, flags);
|
||||
}
|
||||
EXPORT_SYMBOL_ALIAS(nftnl_set_elem_snprintf, nft_set_elem_snprintf);
|
||||
EXPORT_SYMBOL(nftnl_set_elem_snprintf);
|
||||
|
||||
static int nftnl_set_elem_do_snprintf(char *buf, size_t size, const void *e,
|
||||
uint32_t cmd, uint32_t type,
|
||||
@ -741,7 +741,7 @@ int nftnl_set_elem_fprintf(FILE *fp, struct nftnl_set_elem *se, uint32_t type,
|
||||
return nftnl_fprintf(fp, se, NFTNL_CMD_UNSPEC, type, flags,
|
||||
nftnl_set_elem_do_snprintf);
|
||||
}
|
||||
EXPORT_SYMBOL_ALIAS(nftnl_set_elem_fprintf, nft_set_elem_fprintf);
|
||||
EXPORT_SYMBOL(nftnl_set_elem_fprintf);
|
||||
|
||||
int nftnl_set_elem_foreach(struct nftnl_set *s,
|
||||
int (*cb)(struct nftnl_set_elem *e, void *data),
|
||||
@ -757,7 +757,7 @@ int nftnl_set_elem_foreach(struct nftnl_set *s,
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
EXPORT_SYMBOL_ALIAS(nftnl_set_elem_foreach, nft_set_elem_foreach);
|
||||
EXPORT_SYMBOL(nftnl_set_elem_foreach);
|
||||
|
||||
struct nftnl_set_elems_iter {
|
||||
const struct nftnl_set *set;
|
||||
@ -784,14 +784,14 @@ nftnl_set_elems_iter_create(const struct nftnl_set *s)
|
||||
|
||||
return iter;
|
||||
}
|
||||
EXPORT_SYMBOL_ALIAS(nftnl_set_elems_iter_create, nft_set_elems_iter_create);
|
||||
EXPORT_SYMBOL(nftnl_set_elems_iter_create);
|
||||
|
||||
struct nftnl_set_elem *
|
||||
nftnl_set_elems_iter_cur(const struct nftnl_set_elems_iter *iter)
|
||||
{
|
||||
return iter->cur;
|
||||
}
|
||||
EXPORT_SYMBOL_ALIAS(nftnl_set_elems_iter_cur, nft_set_elems_iter_cur);
|
||||
EXPORT_SYMBOL(nftnl_set_elems_iter_cur);
|
||||
|
||||
struct nftnl_set_elem *nftnl_set_elems_iter_next(struct nftnl_set_elems_iter *iter)
|
||||
{
|
||||
@ -806,13 +806,13 @@ struct nftnl_set_elem *nftnl_set_elems_iter_next(struct nftnl_set_elems_iter *it
|
||||
|
||||
return s;
|
||||
}
|
||||
EXPORT_SYMBOL_ALIAS(nftnl_set_elems_iter_next, nft_set_elems_iter_next);
|
||||
EXPORT_SYMBOL(nftnl_set_elems_iter_next);
|
||||
|
||||
void nftnl_set_elems_iter_destroy(struct nftnl_set_elems_iter *iter)
|
||||
{
|
||||
xfree(iter);
|
||||
}
|
||||
EXPORT_SYMBOL_ALIAS(nftnl_set_elems_iter_destroy, nft_set_elems_iter_destroy);
|
||||
EXPORT_SYMBOL(nftnl_set_elems_iter_destroy);
|
||||
|
||||
static bool nftnl_attr_nest_overflow(struct nlmsghdr *nlh,
|
||||
const struct nlattr *from,
|
||||
@ -861,4 +861,4 @@ int nftnl_set_elems_nlmsg_build_payload_iter(struct nlmsghdr *nlh,
|
||||
|
||||
return ret;
|
||||
}
|
||||
EXPORT_SYMBOL_ALIAS(nftnl_set_elems_nlmsg_build_payload_iter, nft_set_elems_nlmsg_build_payload_iter);
|
||||
EXPORT_SYMBOL(nftnl_set_elems_nlmsg_build_payload_iter);
|
||||
|
||||
60
src/table.c
60
src/table.c
@ -40,7 +40,7 @@ struct nftnl_table *nftnl_table_alloc(void)
|
||||
{
|
||||
return calloc(1, sizeof(struct nftnl_table));
|
||||
}
|
||||
EXPORT_SYMBOL_ALIAS(nftnl_table_alloc, nft_table_alloc);
|
||||
EXPORT_SYMBOL(nftnl_table_alloc);
|
||||
|
||||
void nftnl_table_free(const struct nftnl_table *t)
|
||||
{
|
||||
@ -49,13 +49,13 @@ void nftnl_table_free(const struct nftnl_table *t)
|
||||
|
||||
xfree(t);
|
||||
}
|
||||
EXPORT_SYMBOL_ALIAS(nftnl_table_free, nft_table_free);
|
||||
EXPORT_SYMBOL(nftnl_table_free);
|
||||
|
||||
bool nftnl_table_is_set(const struct nftnl_table *t, uint16_t attr)
|
||||
{
|
||||
return t->flags & (1 << attr);
|
||||
}
|
||||
EXPORT_SYMBOL_ALIAS(nftnl_table_is_set, nft_table_attr_is_set);
|
||||
EXPORT_SYMBOL(nftnl_table_is_set);
|
||||
|
||||
void nftnl_table_unset(struct nftnl_table *t, uint16_t attr)
|
||||
{
|
||||
@ -74,7 +74,7 @@ void nftnl_table_unset(struct nftnl_table *t, uint16_t attr)
|
||||
}
|
||||
t->flags &= ~(1 << attr);
|
||||
}
|
||||
EXPORT_SYMBOL_ALIAS(nftnl_table_unset, nft_table_attr_unset);
|
||||
EXPORT_SYMBOL(nftnl_table_unset);
|
||||
|
||||
static uint32_t nftnl_table_validate[NFTNL_TABLE_MAX + 1] = {
|
||||
[NFTNL_TABLE_FLAGS] = sizeof(uint32_t),
|
||||
@ -109,31 +109,31 @@ int nftnl_table_set_data(struct nftnl_table *t, uint16_t attr,
|
||||
t->flags |= (1 << attr);
|
||||
return 0;
|
||||
}
|
||||
EXPORT_SYMBOL_ALIAS(nftnl_table_set_data, nft_table_attr_set_data);
|
||||
EXPORT_SYMBOL(nftnl_table_set_data);
|
||||
|
||||
void nftnl_table_set(struct nftnl_table *t, uint16_t attr, const void *data)
|
||||
{
|
||||
nftnl_table_set_data(t, attr, data, nftnl_table_validate[attr]);
|
||||
}
|
||||
EXPORT_SYMBOL_ALIAS(nftnl_table_set, nft_table_attr_set);
|
||||
EXPORT_SYMBOL(nftnl_table_set);
|
||||
|
||||
void nftnl_table_set_u32(struct nftnl_table *t, uint16_t attr, uint32_t val)
|
||||
{
|
||||
nftnl_table_set_data(t, attr, &val, sizeof(uint32_t));
|
||||
}
|
||||
EXPORT_SYMBOL_ALIAS(nftnl_table_set_u32, nft_table_attr_set_u32);
|
||||
EXPORT_SYMBOL(nftnl_table_set_u32);
|
||||
|
||||
void nftnl_table_set_u8(struct nftnl_table *t, uint16_t attr, uint8_t val)
|
||||
{
|
||||
nftnl_table_set_data(t, attr, &val, sizeof(uint8_t));
|
||||
}
|
||||
EXPORT_SYMBOL_ALIAS(nftnl_table_set_u8, nft_table_attr_set_u8);
|
||||
EXPORT_SYMBOL(nftnl_table_set_u8);
|
||||
|
||||
int nftnl_table_set_str(struct nftnl_table *t, uint16_t attr, const char *str)
|
||||
{
|
||||
return nftnl_table_set_data(t, attr, str, strlen(str) + 1);
|
||||
}
|
||||
EXPORT_SYMBOL_ALIAS(nftnl_table_set_str, nft_table_attr_set_str);
|
||||
EXPORT_SYMBOL(nftnl_table_set_str);
|
||||
|
||||
const void *nftnl_table_get_data(const struct nftnl_table *t, uint16_t attr,
|
||||
uint32_t *data_len)
|
||||
@ -157,34 +157,34 @@ const void *nftnl_table_get_data(const struct nftnl_table *t, uint16_t attr,
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
EXPORT_SYMBOL_ALIAS(nftnl_table_get_data, nft_table_attr_get_data);
|
||||
EXPORT_SYMBOL(nftnl_table_get_data);
|
||||
|
||||
const void *nftnl_table_get(const struct nftnl_table *t, uint16_t attr)
|
||||
{
|
||||
uint32_t data_len;
|
||||
return nftnl_table_get_data(t, attr, &data_len);
|
||||
}
|
||||
EXPORT_SYMBOL_ALIAS(nftnl_table_get, nft_table_attr_get);
|
||||
EXPORT_SYMBOL(nftnl_table_get);
|
||||
|
||||
uint32_t nftnl_table_get_u32(const struct nftnl_table *t, uint16_t attr)
|
||||
{
|
||||
const void *ret = nftnl_table_get(t, attr);
|
||||
return ret == NULL ? 0 : *((uint32_t *)ret);
|
||||
}
|
||||
EXPORT_SYMBOL_ALIAS(nftnl_table_get_u32, nft_table_attr_get_u32);
|
||||
EXPORT_SYMBOL(nftnl_table_get_u32);
|
||||
|
||||
uint8_t nftnl_table_get_u8(const struct nftnl_table *t, uint16_t attr)
|
||||
{
|
||||
const void *ret = nftnl_table_get(t, attr);
|
||||
return ret == NULL ? 0 : *((uint8_t *)ret);
|
||||
}
|
||||
EXPORT_SYMBOL_ALIAS(nftnl_table_get_u8, nft_table_attr_get_u8);
|
||||
EXPORT_SYMBOL(nftnl_table_get_u8);
|
||||
|
||||
const char *nftnl_table_get_str(const struct nftnl_table *t, uint16_t attr)
|
||||
{
|
||||
return nftnl_table_get(t, attr);
|
||||
}
|
||||
EXPORT_SYMBOL_ALIAS(nftnl_table_get_str, nft_table_attr_get_str);
|
||||
EXPORT_SYMBOL(nftnl_table_get_str);
|
||||
|
||||
void nftnl_table_nlmsg_build_payload(struct nlmsghdr *nlh, const struct nftnl_table *t)
|
||||
{
|
||||
@ -193,7 +193,7 @@ void nftnl_table_nlmsg_build_payload(struct nlmsghdr *nlh, const struct nftnl_ta
|
||||
if (t->flags & (1 << NFTNL_TABLE_FLAGS))
|
||||
mnl_attr_put_u32(nlh, NFTA_TABLE_FLAGS, htonl(t->table_flags));
|
||||
}
|
||||
EXPORT_SYMBOL_ALIAS(nftnl_table_nlmsg_build_payload, nft_table_nlmsg_build_payload);
|
||||
EXPORT_SYMBOL(nftnl_table_nlmsg_build_payload);
|
||||
|
||||
static int nftnl_table_parse_attr_cb(const struct nlattr *attr, void *data)
|
||||
{
|
||||
@ -249,7 +249,7 @@ int nftnl_table_nlmsg_parse(const struct nlmsghdr *nlh, struct nftnl_table *t)
|
||||
|
||||
return 0;
|
||||
}
|
||||
EXPORT_SYMBOL_ALIAS(nftnl_table_nlmsg_parse, nft_table_nlmsg_parse);
|
||||
EXPORT_SYMBOL(nftnl_table_nlmsg_parse);
|
||||
|
||||
#ifdef JSON_PARSING
|
||||
int nftnl_jansson_parse_table(struct nftnl_table *t, json_t *tree,
|
||||
@ -335,14 +335,14 @@ int nftnl_table_parse(struct nftnl_table *t, enum nftnl_parse_type type,
|
||||
{
|
||||
return nftnl_table_do_parse(t, type, data, err, NFTNL_PARSE_BUFFER);
|
||||
}
|
||||
EXPORT_SYMBOL_ALIAS(nftnl_table_parse, nft_table_parse);
|
||||
EXPORT_SYMBOL(nftnl_table_parse);
|
||||
|
||||
int nftnl_table_parse_file(struct nftnl_table *t, enum nftnl_parse_type type,
|
||||
FILE *fp, struct nftnl_parse_err *err)
|
||||
{
|
||||
return nftnl_table_do_parse(t, type, fp, err, NFTNL_PARSE_FILE);
|
||||
}
|
||||
EXPORT_SYMBOL_ALIAS(nftnl_table_parse_file, nft_table_parse_file);
|
||||
EXPORT_SYMBOL(nftnl_table_parse_file);
|
||||
|
||||
static int nftnl_table_export(char *buf, size_t size,
|
||||
const struct nftnl_table *t, int type)
|
||||
@ -406,7 +406,7 @@ int nftnl_table_snprintf(char *buf, size_t size, const struct nftnl_table *t,
|
||||
return nftnl_table_cmd_snprintf(buf, size, t, nftnl_flag2cmd(flags), type,
|
||||
flags);
|
||||
}
|
||||
EXPORT_SYMBOL_ALIAS(nftnl_table_snprintf, nft_table_snprintf);
|
||||
EXPORT_SYMBOL(nftnl_table_snprintf);
|
||||
|
||||
static int nftnl_table_do_snprintf(char *buf, size_t size, const void *t,
|
||||
uint32_t cmd, uint32_t type, uint32_t flags)
|
||||
@ -420,7 +420,7 @@ int nftnl_table_fprintf(FILE *fp, const struct nftnl_table *t, uint32_t type,
|
||||
return nftnl_fprintf(fp, t, NFTNL_CMD_UNSPEC, type, flags,
|
||||
nftnl_table_do_snprintf);
|
||||
}
|
||||
EXPORT_SYMBOL_ALIAS(nftnl_table_fprintf, nft_table_fprintf);
|
||||
EXPORT_SYMBOL(nftnl_table_fprintf);
|
||||
|
||||
struct nftnl_table_list {
|
||||
struct list_head list;
|
||||
@ -438,7 +438,7 @@ struct nftnl_table_list *nftnl_table_list_alloc(void)
|
||||
|
||||
return list;
|
||||
}
|
||||
EXPORT_SYMBOL_ALIAS(nftnl_table_list_alloc, nft_table_list_alloc);
|
||||
EXPORT_SYMBOL(nftnl_table_list_alloc);
|
||||
|
||||
void nftnl_table_list_free(struct nftnl_table_list *list)
|
||||
{
|
||||
@ -450,31 +450,31 @@ void nftnl_table_list_free(struct nftnl_table_list *list)
|
||||
}
|
||||
xfree(list);
|
||||
}
|
||||
EXPORT_SYMBOL_ALIAS(nftnl_table_list_free, nft_table_list_free);
|
||||
EXPORT_SYMBOL(nftnl_table_list_free);
|
||||
|
||||
int nftnl_table_list_is_empty(const struct nftnl_table_list *list)
|
||||
{
|
||||
return list_empty(&list->list);
|
||||
}
|
||||
EXPORT_SYMBOL_ALIAS(nftnl_table_list_is_empty, nft_table_list_is_empty);
|
||||
EXPORT_SYMBOL(nftnl_table_list_is_empty);
|
||||
|
||||
void nftnl_table_list_add(struct nftnl_table *r, struct nftnl_table_list *list)
|
||||
{
|
||||
list_add(&r->head, &list->list);
|
||||
}
|
||||
EXPORT_SYMBOL_ALIAS(nftnl_table_list_add, nft_table_list_add);
|
||||
EXPORT_SYMBOL(nftnl_table_list_add);
|
||||
|
||||
void nftnl_table_list_add_tail(struct nftnl_table *r, struct nftnl_table_list *list)
|
||||
{
|
||||
list_add_tail(&r->head, &list->list);
|
||||
}
|
||||
EXPORT_SYMBOL_ALIAS(nftnl_table_list_add_tail, nft_table_list_add_tail);
|
||||
EXPORT_SYMBOL(nftnl_table_list_add_tail);
|
||||
|
||||
void nftnl_table_list_del(struct nftnl_table *t)
|
||||
{
|
||||
list_del(&t->head);
|
||||
}
|
||||
EXPORT_SYMBOL_ALIAS(nftnl_table_list_del, nft_table_list_del);
|
||||
EXPORT_SYMBOL(nftnl_table_list_del);
|
||||
|
||||
int nftnl_table_list_foreach(struct nftnl_table_list *table_list,
|
||||
int (*cb)(struct nftnl_table *t, void *data),
|
||||
@ -490,7 +490,7 @@ int nftnl_table_list_foreach(struct nftnl_table_list *table_list,
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
EXPORT_SYMBOL_ALIAS(nftnl_table_list_foreach, nft_table_list_foreach);
|
||||
EXPORT_SYMBOL(nftnl_table_list_foreach);
|
||||
|
||||
struct nftnl_table_list_iter {
|
||||
const struct nftnl_table_list *list;
|
||||
@ -514,7 +514,7 @@ nftnl_table_list_iter_create(const struct nftnl_table_list *l)
|
||||
|
||||
return iter;
|
||||
}
|
||||
EXPORT_SYMBOL_ALIAS(nftnl_table_list_iter_create, nft_table_list_iter_create);
|
||||
EXPORT_SYMBOL(nftnl_table_list_iter_create);
|
||||
|
||||
struct nftnl_table *nftnl_table_list_iter_next(struct nftnl_table_list_iter *iter)
|
||||
{
|
||||
@ -530,10 +530,10 @@ struct nftnl_table *nftnl_table_list_iter_next(struct nftnl_table_list_iter *ite
|
||||
|
||||
return r;
|
||||
}
|
||||
EXPORT_SYMBOL_ALIAS(nftnl_table_list_iter_next, nft_table_list_iter_next);
|
||||
EXPORT_SYMBOL(nftnl_table_list_iter_next);
|
||||
|
||||
void nftnl_table_list_iter_destroy(const struct nftnl_table_list_iter *iter)
|
||||
{
|
||||
xfree(iter);
|
||||
}
|
||||
EXPORT_SYMBOL_ALIAS(nftnl_table_list_iter_destroy, nft_table_list_iter_destroy);
|
||||
EXPORT_SYMBOL(nftnl_table_list_iter_destroy);
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user