From: Pablo Neira Ayuso <pablo@netfilter.org>
To: Phil Sutter <phil@nwl.cc>
Cc: Eric Leblond <eric@regit.org>,
netfilter-devel@vger.kernel.org, Florian Westphal <fw@strlen.de>
Subject: Re: [nft PATCH 2/7] libnftables: Move library stuff out of main.c
Date: Fri, 20 Oct 2017 14:12:02 +0200 [thread overview]
Message-ID: <20171020121202.GB4068@salvia> (raw)
In-Reply-To: <20171019081847.16171-3-phil@nwl.cc>
On Thu, Oct 19, 2017 at 10:18:42AM +0200, Phil Sutter wrote:
> Signed-off-by: Phil Sutter <phil@nwl.cc>
> ---
> include/Makefile.am | 3 +-
> include/nftables.h | 65 +----------
> include/nftables/Makefile.am | 1 +
> include/nftables/nftables.h | 88 +++++++++++++++
> src/Makefile.am | 3 +-
> src/libnftables.c | 261 +++++++++++++++++++++++++++++++++++++++++++
> src/main.c | 253 +----------------------------------------
> 7 files changed, 356 insertions(+), 318 deletions(-)
> create mode 100644 include/nftables/Makefile.am
> create mode 100644 include/nftables/nftables.h
> create mode 100644 src/libnftables.c
>
> diff --git a/include/Makefile.am b/include/Makefile.am
> index 5dd73d81f427e..a74ffbfa8de0a 100644
> --- a/include/Makefile.am
> +++ b/include/Makefile.am
> @@ -1,4 +1,5 @@
> -SUBDIRS = linux
> +SUBDIRS = linux \
> + nftables
>
> noinst_HEADERS = cli.h \
> datatype.h \
> diff --git a/include/nftables.h b/include/nftables.h
> index 01d72a87212ea..a633e1a2cc2e2 100644
> --- a/include/nftables.h
> +++ b/include/nftables.h
> @@ -4,63 +4,7 @@
> #include <stdbool.h>
> #include <stdarg.h>
> #include <utils.h>
> -
> -enum numeric_level {
> - NUMERIC_NONE,
> - NUMERIC_ADDR,
> - NUMERIC_PORT,
> - NUMERIC_ALL,
> -};
> -
> -enum debug_level {
> - DEBUG_SCANNER = 0x1,
> - DEBUG_PARSER = 0x2,
> - DEBUG_EVALUATION = 0x4,
> - DEBUG_NETLINK = 0x8,
> - DEBUG_MNL = 0x10,
> - DEBUG_PROTO_CTX = 0x20,
> - DEBUG_SEGTREE = 0x40,
> -};
> -
> -#define INCLUDE_PATHS_MAX 16
> -
> -struct output_ctx {
> - unsigned int numeric;
> - unsigned int stateless;
> - unsigned int ip2name;
> - unsigned int handle;
> - unsigned int echo;
> - FILE *output_fp;
> -};
> -
> -struct nft_cache {
> - bool initialized;
> - struct list_head list;
> - uint32_t seqnum;
> -};
> -
> -struct mnl_socket;
> -
> -struct nft_ctx {
> - struct mnl_socket *nf_sock;
> - const char *include_paths[INCLUDE_PATHS_MAX];
> - unsigned int num_include_paths;
> - unsigned int parser_max_errors;
> - unsigned int debug_mask;
> - struct output_ctx output;
> - bool check;
> - struct nft_cache cache;
> - uint32_t flags;
> -};
> -
> -#define NFT_CTX_DEFAULT 0
> -
> -enum nftables_exit_codes {
> - NFT_EXIT_SUCCESS = 0,
> - NFT_EXIT_FAILURE = 1,
> - NFT_EXIT_NOMEM = 2,
> - NFT_EXIT_NONL = 3,
> -};
> +#include <nftables/nftables.h>
>
> struct input_descriptor;
> struct location {
> @@ -128,13 +72,6 @@ struct input_descriptor {
> off_t line_offset;
> };
>
> -struct parser_state;
> -struct mnl_socket;
> -
> -int nft_run(struct nft_ctx *nft, struct mnl_socket *nf_sock,
> - void *scanner, struct parser_state *state,
> - struct list_head *msgs);
> -
> void ct_label_table_init(void);
> void mark_table_init(void);
> void gmp_init(void);
> diff --git a/include/nftables/Makefile.am b/include/nftables/Makefile.am
> new file mode 100644
> index 0000000000000..9e31d519599c1
> --- /dev/null
> +++ b/include/nftables/Makefile.am
> @@ -0,0 +1 @@
> +noinst_HEADERS = nftables.h
> diff --git a/include/nftables/nftables.h b/include/nftables/nftables.h
> new file mode 100644
> index 0000000000000..052a77bfb5371
> --- /dev/null
> +++ b/include/nftables/nftables.h
Is this nftables/nftables.h file what we will expose later on as
header for this library?
If so... see below.
> @@ -0,0 +1,88 @@
> +/*
> + * Copyright (c) 2017 Eric Leblond <eric@regit.org>
> + *
> + * This program is free software; you can redistribute it and/or modify
> + * it under the terms of the GNU General Public License version 2 as
> + * published by the Free Software Foundation.
> + *
> + */
> +#ifndef LIB_NFTABLES_H
> +#define LIB_NFTABLES_H
> +
> +struct parser_state;
> +struct mnl_socket;
> +
> +struct nft_cache {
> + bool initialized;
> + struct list_head list;
> + uint32_t seqnum;
> +};
> +
> +#define INCLUDE_PATHS_MAX 16
> +
> +struct output_ctx {
> + unsigned int numeric;
> + unsigned int stateless;
> + unsigned int ip2name;
> + unsigned int handle;
> + unsigned int echo;
> + FILE *output_fp;
> +};
I think these structure should be just like:
struct output_ctx;
as a forward declaration. So we enforce users to use getters and
setters.
So we can just move easily in a follow up patch to expose the library
API to everyone, right?
Thanks.
next prev parent reply other threads:[~2017-10-20 12:12 UTC|newest]
Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-10-19 8:18 [nft PATCH 0/7] libnftables preparations Phil Sutter
2017-10-19 8:18 ` [nft PATCH 1/7] nft_ctx_free: Fix for wrong argument passed to cache_release Phil Sutter
2017-10-20 12:01 ` Pablo Neira Ayuso
2017-10-19 8:18 ` [nft PATCH 2/7] libnftables: Move library stuff out of main.c Phil Sutter
2017-10-20 12:12 ` Pablo Neira Ayuso [this message]
2017-10-20 17:02 ` Phil Sutter
2017-10-20 19:08 ` Pablo Neira Ayuso
2017-10-19 8:18 ` [nft PATCH 3/7] libnftables: Introduce nft_ctx_flush_cache() Phil Sutter
2017-10-20 12:13 ` Pablo Neira Ayuso
2017-10-20 17:05 ` Phil Sutter
2017-10-20 19:10 ` Pablo Neira Ayuso
2017-10-20 21:00 ` Phil Sutter
2017-10-19 8:18 ` [nft PATCH 4/7] cli: Use nft_run_cmd_from_buffer() Phil Sutter
2017-10-20 12:15 ` Pablo Neira Ayuso
2017-10-20 17:10 ` Phil Sutter
2017-10-20 19:18 ` Pablo Neira Ayuso
2017-10-20 21:05 ` Phil Sutter
2017-10-19 8:18 ` [nft PATCH 5/7] libnftables: Introduce nft_ctx_set_dry_run() Phil Sutter
2017-10-19 8:18 ` [nft PATCH 6/7] libnftables: Provide an API for include path handling Phil Sutter
2017-10-20 12:17 ` Pablo Neira Ayuso
2017-10-20 17:16 ` Phil Sutter
2017-10-20 19:16 ` Pablo Neira Ayuso
2017-10-20 21:12 ` Phil Sutter
2017-10-19 8:18 ` [nft PATCH 7/7] libnftables: Add remaining getters and setters Phil Sutter
2017-10-20 12:18 ` Pablo Neira Ayuso
2017-10-20 16:08 ` Phil Sutter
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20171020121202.GB4068@salvia \
--to=pablo@netfilter.org \
--cc=eric@regit.org \
--cc=fw@strlen.de \
--cc=netfilter-devel@vger.kernel.org \
--cc=phil@nwl.cc \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.