From f314b4500848d90836cb3d936333bba5a0357ed7 Mon Sep 17 00:00:00 2001 From: Tomasz Bursztyka Date: Wed, 4 Sep 2013 12:50:20 +0300 Subject: 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 }; :1:28-33: Error: unknown chain type cheese add chain test test { type cheese hook input priority 0 }; ^^^^^^ Signed-off-by: Tomasz Bursztyka Signed-off-by: Pablo Neira Ayuso --- src/rule.c | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) (limited to 'src/rule.c') diff --git a/src/rule.c b/src/rule.c index 42ba37f4..2cf024a4 100644 --- a/src/rule.c +++ b/src/rule.c @@ -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", -- cgit v1.2.3