From: Florian Westphal <fw@strlen.de>
To: Martin Gignac <martin.gignac@gmail.com>
Cc: netfilter@vger.kernel.org,
netfilter-devel <netfilter-devel@vger.kernel.org>
Subject: Re: Unable to create a chain called "trace"
Date: Mon, 8 Feb 2021 16:49:15 +0100 [thread overview]
Message-ID: <20210208154915.GF16570@breakpoint.cc> (raw)
In-Reply-To: <CANf9dFMJN5ZsihtygUnEWB_9T=WLbEHrZY1a5mTqLgN7J39D5w@mail.gmail.com>
Martin Gignac <martin.gignac@gmail.com> wrote:
[ cc devel ]
> Out of curiosity, is there a reason why calling a chain "trace"
> results in an error?
>
> This configuration:
>
> chain trace {
> type filter hook prerouting priority -301;
> ip daddr 24.153.88.9 ip protocol icmp meta nftrace set 1
> }
>
> Results in the following error when I try loading the ruleset:
>
> /etc/firewall/rules.nft:40:9-13: Error: syntax error, unexpected
> trace, expecting string
> chain trace {
> ^^^^^
grammar bug.
Pablo, Phil, others, can you remind me why we never did:
diff --git a/src/monitor.c b/src/monitor.c
--- a/src/monitor.c
+++ b/src/monitor.c
@@ -254,7 +254,7 @@ static int netlink_events_chain_cb(const struct nlmsghdr *nlh, int type,
chain_print_plain(c, &monh->ctx->nft->output);
break;
case NFT_MSG_DELCHAIN:
- nft_mon_print(monh, "chain %s %s %s",
+ nft_mon_print(monh, "chain %s \"%s\" \"%s\"",
family2str(c->handle.family),
c->handle.table.name,
c->handle.chain.name);
diff --git a/src/parser_bison.y b/src/parser_bison.y
--- a/src/parser_bison.y
+++ b/src/parser_bison.y
@@ -2395,6 +2395,7 @@ chain_policy : ACCEPT { $$ = NF_ACCEPT; }
;
identifier : STRING
+ | QUOTED_STRING
;
string : STRING
diff --git a/src/rule.c b/src/rule.c
index e4bb6bae276a..77477e535f2e 100644
--- a/src/rule.c
+++ b/src/rule.c
@@ -1236,7 +1236,7 @@ static void chain_print_declaration(const struct chain *chain,
if (chain->flags & CHAIN_F_BINDING)
return;
- nft_print(octx, "\tchain %s {", chain->handle.chain.name);
+ nft_print(octx, "\tchain \"%s\" {", chain->handle.chain.name);
if (nft_output_handle(octx))
nft_print(octx, " # handle %" PRIu64, chain->handle.handle.id);
if (chain->comment)
@@ -1297,7 +1297,7 @@ void chain_print_plain(const struct chain *chain, struct output_ctx *octx)
char priobuf[STD_PRIO_BUFSIZE];
int policy;
- nft_print(octx, "chain %s %s %s", family2str(chain->handle.family),
+ nft_print(octx, "chain %s \"%s\" \"%s\"", family2str(chain->handle.family),
chain->handle.table.name, chain->handle.chain.name);
if (chain->flags & CHAIN_F_BASECHAIN) {
?
next prev parent reply other threads:[~2021-02-08 15:49 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-02-08 15:37 Unable to create a chain called "trace" Martin Gignac
2021-02-08 15:49 ` Florian Westphal [this message]
2021-02-08 16:47 ` Phil Sutter
2021-02-08 17:14 ` Florian Westphal
2021-02-09 13:56 ` Phil Sutter
2021-02-12 0:05 ` Florian Westphal
2021-02-12 11:40 ` Phil Sutter
2021-02-12 12:20 ` Florian Westphal
2021-02-12 17:09 ` Pablo Neira Ayuso
2021-02-12 17:32 ` Phil Sutter
2021-02-12 17:54 ` Pablo Neira Ayuso
2021-02-12 21:07 ` Phil Sutter
2021-02-12 18:02 ` Balazs Scheidler
2021-02-17 19:59 ` Phil Sutter
2021-02-17 20:16 ` Florian Westphal
2021-02-12 12:29 ` Florian Westphal
2021-02-12 12:48 ` 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=20210208154915.GF16570@breakpoint.cc \
--to=fw@strlen.de \
--cc=martin.gignac@gmail.com \
--cc=netfilter-devel@vger.kernel.org \
--cc=netfilter@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.