On Tue, Apr 10, 2018 at 07:00:21PM +0200, Phil Sutter wrote:
> Analogous to nft_ctx_set_output(), this allows to set a custom file
> pointer for writing error messages to.
> 
> Signed-off-by: Phil Sutter <p...@nwl.cc>
> ---
>  include/nftables.h          |  1 +
>  include/nftables/nftables.h |  2 ++
>  src/erec.c                  |  2 +-
>  src/libnftables.c           | 16 +++++++++++++---
>  4 files changed, 17 insertions(+), 4 deletions(-)
> 
> diff --git a/include/nftables.h b/include/nftables.h
> index 3d96f2e3f10f4..1b368971bee9a 100644
> --- a/include/nftables.h
> +++ b/include/nftables.h
> @@ -14,6 +14,7 @@ struct output_ctx {
>       unsigned int handle;
>       unsigned int echo;
>       FILE *output_fp;
> +     FILE *error_fp;
>  };
>  
>  struct nft_cache {
> diff --git a/include/nftables/nftables.h b/include/nftables/nftables.h
> index 8e59f2b2a59ab..1e9306822eb7e 100644
> --- a/include/nftables/nftables.h
> +++ b/include/nftables/nftables.h
> @@ -57,6 +57,8 @@ bool nft_ctx_output_get_echo(struct nft_ctx *ctx);
>  void nft_ctx_output_set_echo(struct nft_ctx *ctx, bool val);
>  
>  FILE *nft_ctx_set_output(struct nft_ctx *ctx, FILE *fp);
> +FILE *nft_ctx_set_error(struct nft_ctx *ctx, FILE *fp);
> +
>  int nft_ctx_add_include_path(struct nft_ctx *ctx, const char *path);
>  void nft_ctx_clear_include_paths(struct nft_ctx *ctx);
>  
> diff --git a/src/erec.c b/src/erec.c
> index 3e1b7fd108a7e..226c51f552267 100644
> --- a/src/erec.c
> +++ b/src/erec.c
> @@ -124,7 +124,7 @@ void erec_print(struct output_ctx *octx, const struct 
> error_record *erec,
>       unsigned int i, end;
>       int l;
>       off_t orig_offset = 0;
> -     FILE *f = octx->output_fp;
> +     FILE *f = octx->error_fp;
>  
>       if (!f)
>               return;
> diff --git a/src/libnftables.c b/src/libnftables.c
> index 8bf989b08cc54..d6622d51aba33 100644
> --- a/src/libnftables.c
> +++ b/src/libnftables.c
> @@ -169,6 +169,7 @@ struct nft_ctx *nft_ctx_new(uint32_t flags)
>       init_list_head(&ctx->cache.list);
>       ctx->flags = flags;
>       ctx->output.output_fp = stdout;
> +     ctx->output.error_fp = stderr;

I understand you may need this new toggle. But can we probably
reasonable defaults? I mean, if no error_fp is specified, then use the
one set by output_fp.

As said, it would be good if you can review the existing toggles and
see if we can stop exposing some of those through API if possible. I
would just expose the bare minimum and provide reasonable defaults so
we most people in the world will not need to call n+1 different setter
functions.

Thanks!
--
To unsubscribe from this list: send the line "unsubscribe netfilter-devel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to