close_scope_secmark : { scanner_pop_start_cond(nft->scanner, PARSER_SC_SECMARK); };
close_scope_socket : { scanner_pop_start_cond(nft->scanner, PARSER_SC_EXPR_SOCKET); }
+close_scope_log : { scanner_pop_start_cond(nft->scanner, PARSER_SC_STMT_LOG); }
+
common_block : INCLUDE QUOTED_STRING stmt_separator
{
if (scanner_include_file(nft, scanner, $2, &@$) < 0) {
| payload_stmt
| stateful_stmt
| meta_stmt
- | log_stmt
+ | log_stmt close_scope_log
| reject_stmt
| nat_stmt
| tproxy_stmt
%s SCANSTATE_EXPR_RT
%s SCANSTATE_EXPR_SOCKET
+%s SCANSTATE_STMT_LOG
+
%%
"==" { return EQ; }
"limits" { return LIMITS; }
"synproxys" { return SYNPROXYS; }
-"log" { return LOG; }
+"log" { scanner_push_start_cond(yyscanner, SCANSTATE_STMT_LOG); return LOG; }
"prefix" { return PREFIX; }
"group" { return GROUP; }
-"snaplen" { return SNAPLEN; }
-"queue-threshold" { return QUEUE_THRESHOLD; }
-"level" { return LEVEL; }
+<SCANSTATE_STMT_LOG>{
+ "snaplen" { return SNAPLEN; }
+ "queue-threshold" { return QUEUE_THRESHOLD; }
+ "level" { return LEVEL; }
+}
"queue" { scanner_push_start_cond(yyscanner, SCANSTATE_EXPR_QUEUE); return QUEUE;}
<SCANSTATE_EXPR_QUEUE>{