summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorPatrick McHardy <kaber@trash.net>2010-07-06 05:57:22 +0200
committerPatrick McHardy <kaber@trash.net>2010-07-06 05:57:22 +0200
commitd4aea11c6a7674e4290dc71a4ac93c1d5be7240d (patch)
tree252eb3d12a9ee4b8910ce911919ca7141e042924 /src
parentb20ba656ba7de066d4dcf5ebeef605e6acc7e01d (diff)
netlink: fix creation of base chains with hooknum and priority 0
Base chains with both a hook number and priority of zero are created as regular chains. Fix by adding a BASECHAIN flag indicating that the chain should be created as a base chain. Signed-off-by: Patrick McHardy <kaber@trash.net>
Diffstat (limited to 'src')
-rw-r--r--src/netlink.c2
-rw-r--r--src/parser.y2
2 files changed, 3 insertions, 1 deletions
diff --git a/src/netlink.c b/src/netlink.c
index 54d92c42..0427f4ac 100644
--- a/src/netlink.c
+++ b/src/netlink.c
@@ -422,7 +422,7 @@ int netlink_add_chain(struct netlink_ctx *ctx, const struct handle *h,
int err;
nlc = alloc_nft_chain(h);
- if (chain != NULL && (chain->hooknum || chain->priority)) {
+ if (chain != NULL && chain->flags & CHAIN_F_BASECHAIN) {
nfnl_nft_chain_set_hooknum(nlc, chain->hooknum);
nfnl_nft_chain_set_priority(nlc, chain->priority);
}
diff --git a/src/parser.y b/src/parser.y
index f70b505d..8e3d3639 100644
--- a/src/parser.y
+++ b/src/parser.y
@@ -740,11 +740,13 @@ hook_spec : HOOK HOOKNUM NUM
{
$<chain>0->hooknum = $2;
$<chain>0->priority = $3;
+ $<chain>0->flags |= CHAIN_F_BASECHAIN;
}
| HOOK HOOKNUM DASH NUM
{
$<chain>0->hooknum = $2;
$<chain>0->priority = -$4;
+ $<chain>0->flags |= CHAIN_F_BASECHAIN;
}
;