diff options
author | Pablo Neira Ayuso <pablo@netfilter.org> | 2018-10-23 18:24:31 +0200 |
---|---|---|
committer | Pablo Neira Ayuso <pablo@netfilter.org> | 2018-10-23 18:26:05 +0200 |
commit | f1c2ace2631fa691b81a181bbbf2a3b29b0e69f6 (patch) | |
tree | 50c444c0643c68233a6bc3732f44d1b98e7d4cdb /src/mnl.c | |
parent | b83dd8ff56ff9f3170ebec52aeebb7a3a62c9dc7 (diff) |
src: move socket open and reopen to mnl.c
These functions are part of the mnl backend, move them there. Remove
netlink_close_sock(), use direct call to mnl_socket_close().
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
Diffstat (limited to 'src/mnl.c')
-rw-r--r-- | src/mnl.c | 22 |
1 files changed, 22 insertions, 0 deletions
@@ -28,10 +28,32 @@ #include <string.h> #include <sys/socket.h> #include <arpa/inet.h> +#include <fcntl.h> #include <errno.h> #include <utils.h> #include <nftables.h> +struct mnl_socket *nft_mnl_socket_open(void) +{ + struct mnl_socket *nf_sock; + + nf_sock = mnl_socket_open(NETLINK_NETFILTER); + if (!nf_sock) + netlink_init_error(); + + if (fcntl(mnl_socket_get_fd(nf_sock), F_SETFL, O_NONBLOCK)) + netlink_init_error(); + + return nf_sock; +} + +struct mnl_socket *nft_mnl_socket_reopen(struct mnl_socket *nf_sock) +{ + mnl_socket_close(nf_sock); + + return nft_mnl_socket_open(); +} + uint32_t mnl_seqnum_alloc(unsigned int *seqnum) { return (*seqnum)++; |