All of lore.kernel.org
 help / color / mirror / Atom feed
From: Amos Jeffries <squid3@treenet.co.nz>
To: Jan Engelhardt <jengelh@medozas.de>
Cc: kaber@trash.net, netfilter-devel@vger.kernel.org
Subject: Re: [PATCH 11/11] netfilter: xtables: print hook name instead of mask
Date: Sat, 09 May 2009 14:06:06 +1200	[thread overview]
Message-ID: <4A04E50E.60705@treenet.co.nz> (raw)
In-Reply-To: <1241774801-2315-12-git-send-email-jengelh@medozas.de>

Jan Engelhardt wrote:
> Users cannot make anything of these numbers. Let's just tell them
> directly.

Yay!
Thank you very, very much.

> 
> Signed-off-by: Jan Engelhardt <jengelh@medozas.de>
> ---
>  net/netfilter/x_tables.c |   42 ++++++++++++++++++++++++++++++++++++++----
>  1 files changed, 38 insertions(+), 4 deletions(-)
> 
> diff --git a/net/netfilter/x_tables.c b/net/netfilter/x_tables.c
> index 150e5cf..46dba5f 100644
> --- a/net/netfilter/x_tables.c
> +++ b/net/netfilter/x_tables.c
> @@ -329,6 +329,32 @@ int xt_find_revision(u8 af, const char *name, u8 revision, int target,
>  }
>  EXPORT_SYMBOL_GPL(xt_find_revision);
>  
> +static char *textify_hooks(char *buf, size_t size, unsigned int mask)
> +{
> +	static const char *const names[] = {
> +		"PREROUTING", "INPUT", "FORWARD",
> +		"OUTPUT", "POSTROUTING", "BROUTING",
> +	};
> +	unsigned int i;
> +	char *p = buf;
> +	bool np = false;
> +	int res;
> +
> +	*p = '\0';
> +	for (i = 0; i < ARRAY_SIZE(names); ++i) {
> +		if (!(mask & (1 << i)))
> +			continue;
> +		res = snprintf(p, size, "%s%s", np ? "/" : "", names[i]);
> +		if (res > 0) {
> +			size -= res;
> +			p += res;
> +		}
> +		np = true;
> +	}
> +
> +	return buf;
> +}
> +
>  int xt_check_match(struct xt_mtchk_param *par,
>  		   unsigned int size, u_int8_t proto, bool inv_proto)
>  {
> @@ -351,9 +377,13 @@ int xt_check_match(struct xt_mtchk_param *par,
>  		return -EINVAL;
>  	}
>  	if (par->match->hooks && (par->hook_mask & ~par->match->hooks) != 0) {
> -		printk("%s_tables: %s match: bad hook_mask %#x/%#x\n",
> +		char used[64], allow[64];
> +
> +		printk("%s_tables: %s match: used from hooks %s, but only "
> +		       "valid from %s\n",
>  		       xt_prefix[par->family], par->match->name,
> -		       par->hook_mask, par->match->hooks);
> +		       textify_hooks(used, sizeof(used), par->hook_mask),
> +		       textify_hooks(allow, sizeof(allow), par->match->hooks));
>  		return -EINVAL;
>  	}
>  	if (par->match->proto && (par->match->proto != proto || inv_proto)) {
> @@ -497,9 +527,13 @@ int xt_check_target(struct xt_tgchk_param *par,
>  		return -EINVAL;
>  	}
>  	if (par->target->hooks && (par->hook_mask & ~par->target->hooks) != 0) {
> -		printk("%s_tables: %s target: bad hook_mask %#x/%#x\n",
> +		char used[64], allow[64];
> +
> +		printk("%s_tables: %s target: used from hooks %s, but only "
> +		       "usable from %s\n",
>  		       xt_prefix[par->family], par->target->name,
> -		       par->hook_mask, par->target->hooks);
> +		       textify_hooks(used, sizeof(used), par->hook_mask),
> +		       textify_hooks(allow, sizeof(allow), par->target->hooks));
>  		return -EINVAL;
>  	}
>  	if (par->target->proto && (par->target->proto != proto || inv_proto)) {

  reply	other threads:[~2009-05-09  2:06 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-05-08  9:26 kernel/iptables patches Jan Engelhardt
2009-05-08  9:26 ` [PATCH 01/11] netfilter: xtables: use NFPROTO_ for xt_proto_init callsites Jan Engelhardt
2009-05-08  9:26 ` [PATCH 02/11] netfilter: queue: use NFPROTO_ for queue callsites Jan Engelhardt
2009-05-08  9:26 ` [PATCH 03/11] netfilter: xtables: use NFPROTO_ in standard targets Jan Engelhardt
2009-05-08  9:26 ` [PATCH 04/11] netfilter: xtables: remove redundant casts Jan Engelhardt
2009-05-08  9:26 ` [PATCH 05/11] netfilter: xtables: fix const inconsistency Jan Engelhardt
2009-05-08  9:26 ` [PATCH 06/11] netfilter: xtables: consolidate open-coded logic Jan Engelhardt
2009-05-08  9:26 ` [PATCH 07/11] netfilter: xtables: reduce indent level by one Jan Engelhardt
2009-05-09  2:08   ` Amos Jeffries
2009-05-09  4:00     ` Jan Engelhardt
2009-05-10 13:39       ` Amos Jeffries
2009-05-08  9:26 ` [PATCH 08/11] netfilter: xtables: remove some goto Jan Engelhardt
2009-05-08  9:26 ` [PATCH 09/11] netfilter: xtables: remove another level of indent Jan Engelhardt
2009-05-08  9:26 ` [PATCH 10/11] netfilter: xtables: consolidate comefrom debug cast access Jan Engelhardt
2009-05-08  9:26 ` [PATCH 11/11] netfilter: xtables: print hook name instead of mask Jan Engelhardt
2009-05-09  2:06   ` Amos Jeffries [this message]
2009-06-01 11:00 ` kernel/iptables patches Jan Engelhardt
2009-06-02 11:53   ` Patrick McHardy

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=4A04E50E.60705@treenet.co.nz \
    --to=squid3@treenet.co.nz \
    --cc=jengelh@medozas.de \
    --cc=kaber@trash.net \
    --cc=netfilter-devel@vger.kernel.org \
    /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.