@@ -2,6 +2,7 @@
#define _NFTABLES_MNL_H_
#include <list.h>
+#include <netlink.h>
struct mnl_socket;
@@ -24,8 +25,7 @@ bool mnl_batch_ready(struct nftnl_batch *batch);
void mnl_batch_reset(struct nftnl_batch *batch);
uint32_t mnl_batch_begin(struct nftnl_batch *batch);
void mnl_batch_end(struct nftnl_batch *batch);
-int mnl_batch_talk(struct mnl_socket *nl, struct nftnl_batch *batch,
- struct list_head *err_list);
+int mnl_batch_talk(struct netlink_ctx *ctx, struct list_head *err_list);
int mnl_nft_rule_batch_add(struct nftnl_rule *nlr, struct nftnl_batch *batch,
unsigned int flags, uint32_t seqnum);
int mnl_nft_rule_batch_del(struct nftnl_rule *nlr, struct nftnl_batch *batch,
@@ -246,9 +246,9 @@ static ssize_t mnl_nft_socket_sendmsg(const struct mnl_socket *nl,
return sendmsg(mnl_socket_get_fd(nl), &msg, 0);
}
-int mnl_batch_talk(struct mnl_socket *nl, struct nftnl_batch *batch,
- struct list_head *err_list)
+int mnl_batch_talk(struct netlink_ctx *ctx, struct list_head *err_list)
{
+ struct mnl_socket *nl = ctx->nf_sock;
int ret, fd = mnl_socket_get_fd(nl), portid = mnl_socket_get_portid(nl);
char rcv_buf[MNL_SOCKET_BUFFER_SIZE];
fd_set readfds;
@@ -257,7 +257,7 @@ int mnl_batch_talk(struct mnl_socket *nl, struct nftnl_batch *batch,
.tv_usec = 0
};
- ret = mnl_nft_socket_sendmsg(nl, batch);
+ ret = mnl_nft_socket_sendmsg(nl, ctx->batch);
if (ret == -1)
return -1;
@@ -1903,7 +1903,7 @@ int netlink_reset_objs(struct netlink_ctx *ctx, const struct handle *h,
int netlink_batch_send(struct netlink_ctx *ctx, struct list_head *err_list)
{
- return mnl_batch_talk(ctx->nf_sock, ctx->batch, err_list);
+ return mnl_batch_talk(ctx, err_list);
}
int netlink_flush_ruleset(struct netlink_ctx *ctx, const struct handle *h,
The single caller of this function passes struct netlink_ctx fields as the first two parameters. This can be simplified by passing the context object itself and having mnl_batch_talk() access it's fields instead. Signed-off-by: Phil Sutter <phil@nwl.cc> --- include/mnl.h | 4 ++-- src/mnl.c | 6 +++--- src/netlink.c | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-)