diff options
author | Pablo Neira Ayuso <pablo@netfilter.org> | 2016-11-27 23:34:53 +0100 |
---|---|---|
committer | Pablo Neira Ayuso <pablo@netfilter.org> | 2017-01-03 14:21:53 +0100 |
commit | 4d38878b39be44ea3d6a146a7dd678c269a9804a (patch) | |
tree | 9eb1a2feeb21d5772c965dd49088a330e19db294 /include | |
parent | 4756d92e517ae1f7d662c0ed083b54d8dc822e4a (diff) |
src: add/create/delete stateful objects
This patch allows you to add and to delete objects, eg.
# nft add quota filter test 1234567 bytes
# nft list quotas
table ip filter {
quota test {
1234567 bytes
}
}
# nft delete quota filter test
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
Diffstat (limited to 'include')
-rw-r--r-- | include/mnl.h | 5 | ||||
-rw-r--r-- | include/netlink.h | 5 | ||||
-rw-r--r-- | include/rule.h | 3 |
3 files changed, 12 insertions, 1 deletions
diff --git a/include/mnl.h b/include/mnl.h index ad036aef..d178bd27 100644 --- a/include/mnl.h +++ b/include/mnl.h @@ -88,6 +88,11 @@ int mnl_nft_setelem_get(struct mnl_socket *nf_sock, struct nftnl_set *nls); struct nftnl_obj_list *mnl_nft_obj_dump(struct mnl_socket *nf_sock, int family, const char *table); +int mnl_nft_obj_batch_add(struct nftnl_obj *nln, unsigned int flags, + uint32_t seqnum); +int mnl_nft_obj_batch_del(struct nftnl_obj *nln, unsigned int flags, + uint32_t seqnum); + struct nftnl_ruleset *mnl_nft_ruleset_dump(struct mnl_socket *nf_sock, uint32_t family); int mnl_nft_event_listener(struct mnl_socket *nf_sock, diff --git a/include/netlink.h b/include/netlink.h index ce577871..841211c4 100644 --- a/include/netlink.h +++ b/include/netlink.h @@ -171,12 +171,17 @@ extern int netlink_flush_setelems(struct netlink_ctx *ctx, const struct handle * extern int netlink_list_objs(struct netlink_ctx *ctx, const struct handle *h, const struct location *loc); +extern int netlink_add_obj(struct netlink_ctx *ctx, const struct handle *h, + struct obj *obj, bool excl); +extern int netlink_delete_obj(struct netlink_ctx *ctx, const struct handle *h, + struct location *loc, enum stmt_types type); extern void netlink_dump_table(const struct nftnl_table *nlt); extern void netlink_dump_chain(const struct nftnl_chain *nlc); extern void netlink_dump_rule(const struct nftnl_rule *nlr); extern void netlink_dump_expr(const struct nftnl_expr *nle); extern void netlink_dump_set(const struct nftnl_set *nls); +extern void netlink_dump_obj(struct nftnl_obj *nlo); extern int netlink_batch_send(struct list_head *err_list); diff --git a/include/rule.h b/include/rule.h index e0f89139..88acbcc7 100644 --- a/include/rule.h +++ b/include/rule.h @@ -282,7 +282,7 @@ struct obj *obj_alloc(const struct location *loc); void obj_free(struct obj *obj); void obj_add_hash(struct obj *obj, struct table *table); void obj_print(const struct obj *n); -const char *obj_type_name(enum stmt_types type); +const char *obj_type_name(uint32_t type); /** * enum cmd_ops - command operations @@ -415,6 +415,7 @@ struct cmd { struct table *table; struct monitor *monitor; struct export *export; + struct obj *object; }; const void *arg; }; |