diff options
author | Florian Westphal <fw@strlen.de> | 2018-05-23 23:30:24 +0200 |
---|---|---|
committer | Florian Westphal <fw@strlen.de> | 2018-06-07 14:38:15 +0200 |
commit | 79fd53906d4834e64fad41cfe5ba2f14ec213fe3 (patch) | |
tree | 138405650ce41802aa6c3fe152b1bbdf044e3463 | |
parent | ccd0125b242e923fce98d9321a69695bb74fb193 (diff) |
src: netlink_delinarize: don't stop when encountering unsupported expression
The error message is still shown, but try to make sense of further
expressions (if any).
I tried to replace the expression by a textual representation.
Two variants I tested are:
1. append as comment:
ip saddr 127.0.0.2 drop comment "unknown expression 'foo'"
This allows nft -f, but it adds/alters a comment.
2. substitute in-place (i.e., add a constant expression
with the error message instead of 'unkown' message:
unknown expression "foo" ip saddr 127.0.0.2 drop
This won't allow 'nft -f' however.
I'm not sure this is a problem, in any case we lose information
if we can't find an expression (e.g. added by newer version).
Signed-off-by: Florian Westphal <fw@strlen.de>
-rw-r--r-- | src/netlink_delinearize.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/netlink_delinearize.c b/src/netlink_delinearize.c index 8da7c17c..31d62420 100644 --- a/src/netlink_delinearize.c +++ b/src/netlink_delinearize.c @@ -1399,7 +1399,7 @@ static int netlink_parse_expr(const struct nftnl_expr *nle, } netlink_error(ctx, &loc, "unknown expression type '%s'", type); - return -1; + return 0; } static int netlink_parse_rule_expr(struct nftnl_expr *nle, void *arg) |