diff options
Diffstat (limited to 'include/parser.h')
-rw-r--r-- | include/parser.h | 69 |
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 */ |