summaryrefslogtreecommitdiffstats
path: root/include/parser.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/parser.h')
-rw-r--r--include/parser.h69
1 files changed, 68 insertions, 1 deletions
diff --git a/include/parser.h b/include/parser.h
index 636d1c88..f79a22f3 100644
--- a/include/parser.h
+++ b/include/parser.h
@@ -11,7 +11,7 @@
#define YYLTYPE_IS_TRIVIAL 0
#define YYENABLE_NLS 0
-#define SCOPE_NEST_MAX 3
+#define SCOPE_NEST_MAX 4
struct parser_state {
struct input_descriptor *indesc;
@@ -22,8 +22,73 @@ struct parser_state {
struct scope *scopes[SCOPE_NEST_MAX];
unsigned int scope;
+ bool scope_err;
+ unsigned int flex_state_pop;
+ unsigned int startcond_type;
struct list_head *cmds;
+ unsigned int *startcond_active;
+};
+
+enum startcond_type {
+ PARSER_SC_BEGIN,
+ PARSER_SC_ARP,
+ PARSER_SC_AT,
+ PARSER_SC_CT,
+ PARSER_SC_COUNTER,
+ PARSER_SC_ETH,
+ PARSER_SC_GRE,
+ PARSER_SC_ICMP,
+ PARSER_SC_IGMP,
+ PARSER_SC_IP,
+ PARSER_SC_IP6,
+ PARSER_SC_LAST,
+ PARSER_SC_LIMIT,
+ PARSER_SC_META,
+ PARSER_SC_POLICY,
+ PARSER_SC_QUOTA,
+ PARSER_SC_SCTP,
+ PARSER_SC_SECMARK,
+ PARSER_SC_TCP,
+ PARSER_SC_TYPE,
+ PARSER_SC_VLAN,
+ PARSER_SC_XT,
+ PARSER_SC_CMD_DESTROY,
+ PARSER_SC_CMD_EXPORT,
+ PARSER_SC_CMD_IMPORT,
+ PARSER_SC_CMD_LIST,
+ PARSER_SC_CMD_MONITOR,
+ PARSER_SC_CMD_RESET,
+ PARSER_SC_EXPR_AH,
+ PARSER_SC_EXPR_COMP,
+ PARSER_SC_EXPR_DCCP,
+ PARSER_SC_EXPR_DST,
+ PARSER_SC_EXPR_ESP,
+ PARSER_SC_EXPR_FIB,
+ PARSER_SC_EXPR_FRAG,
+ PARSER_SC_EXPR_HASH,
+ PARSER_SC_EXPR_HBH,
+ PARSER_SC_EXPR_IPSEC,
+ PARSER_SC_EXPR_MH,
+ PARSER_SC_EXPR_NUMGEN,
+ PARSER_SC_EXPR_OSF,
+ PARSER_SC_EXPR_QUEUE,
+ PARSER_SC_EXPR_RT,
+ PARSER_SC_EXPR_SCTP_CHUNK,
+ PARSER_SC_EXPR_SOCKET,
+ PARSER_SC_EXPR_TH,
+ PARSER_SC_EXPR_UDP,
+ PARSER_SC_EXPR_UDPLITE,
+
+ PARSER_SC_STMT_DUP,
+ PARSER_SC_STMT_FWD,
+ PARSER_SC_STMT_LOG,
+ PARSER_SC_STMT_NAT,
+ PARSER_SC_STMT_REJECT,
+ PARSER_SC_STMT_SYNPROXY,
+ PARSER_SC_STMT_TPROXY,
+
+ __SC_MAX
};
struct mnl_socket;
@@ -45,4 +110,6 @@ extern void scanner_push_buffer(void *scanner,
const struct input_descriptor *indesc,
const char *buffer);
+extern void scanner_pop_start_cond(void *scanner, enum startcond_type sc);
+
#endif /* NFTABLES_PARSER_H */