diff options
author | Tomasz Bursztyka <tomasz.bursztyka@linux.intel.com> | 2013-09-04 12:50:20 +0300 |
---|---|---|
committer | Pablo Neira Ayuso <pablo@netfilter.org> | 2013-09-05 11:01:40 +0200 |
commit | f314b4500848d90836cb3d936333bba5a0357ed7 (patch) | |
tree | 287dae4aa539e31800dfa56630372a5e3a440e54 /src/rule.c | |
parent | 78c4b630124ee09dff17026b3e2cd5820942093b (diff) |
src: Better error reporting if chain type is invalid
This patch verifies at command line parsing that given chain type
is valid. Possibilities are: filter, nat, and route.
nft add chain test test { type cheese hook input priority 0 };
<cmdline>:1:28-33: Error: unknown chain type cheese
add chain test test { type cheese hook input priority 0 };
^^^^^^
Signed-off-by: Tomasz Bursztyka <tomasz.bursztyka@linux.intel.com>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
Diffstat (limited to 'src/rule.c')
-rw-r--r-- | src/rule.c | 19 |
1 files changed, 19 insertions, 0 deletions
@@ -190,6 +190,25 @@ struct symbol *symbol_lookup(const struct scope *scope, const char *identifier) return NULL; } +static const char *chain_type_str_array[] = { + "filter", + "nat", + "route", + NULL, +}; + +const char *chain_type_name_lookup(const char *name) +{ + int i; + + for (i = 0; chain_type_str_array[i]; i++) { + if (!strcmp(name, chain_type_str_array[i])) + return chain_type_str_array[i]; + } + + return NULL; +} + static const char *chain_hookname_str_array[] = { "prerouting", "input", |