Munch lines full comment lines, regular expression matches lines that start by space or tab, then # follows, finally anything including one single line break. Closes: https://bugzilla.netfilter.org/show_bug.cgi?id=1196 Signed-off-by: Pablo Neira Ayuso <pablo@xxxxxxxxxxxxx> --- src/scanner.l | 2 ++ tests/shell/testcases/comments/comments_0 | 20 +++++++++++++++++++ .../testcases/comments/dumps/comments_0.nft | 6 ++++++ 3 files changed, 28 insertions(+) create mode 100755 tests/shell/testcases/comments/comments_0 create mode 100644 tests/shell/testcases/comments/dumps/comments_0.nft diff --git a/src/scanner.l b/src/scanner.l index 1371cd044b65..ec9df5c2af9f 100644 --- a/src/scanner.l +++ b/src/scanner.l @@ -124,6 +124,7 @@ string ({letter}|[_.])({letter}|{digit}|[/\-_\.])* quotedstring \"[^"]*\" asteriskstring ({string}\*|{string}\\\*|\\\*|{string}\\\*{string}) comment #.*$ +comment_line ^[ \t]*#.*\n slash \/ timestring ([0-9]+d)?([0-9]+h)?([0-9]+m)?([0-9]+s)?([0-9]+ms)? @@ -858,6 +859,7 @@ addrstring ({macaddr}|{ip4addr}|{ip6addr}) {tab}+ {space}+ {comment} +{comment_line} <<EOF>> { update_pos(yyget_extra(yyscanner), yylloc, 1); diff --git a/tests/shell/testcases/comments/comments_0 b/tests/shell/testcases/comments/comments_0 new file mode 100755 index 000000000000..843927f18232 --- /dev/null +++ b/tests/shell/testcases/comments/comments_0 @@ -0,0 +1,20 @@ +#!/bin/bash + +RULESET="table ip x { # comment + # comment 1 + # comment 2 + set y { # comment here + type ipv4_addr # comment + elements = { + # 1.1.1.1 + 2.2.2.2, # comment + # more comments + 3.3.3.3, # comment + } + # comment + } +} +" + +$NFT -f - <<< "$RULESET" + diff --git a/tests/shell/testcases/comments/dumps/comments_0.nft b/tests/shell/testcases/comments/dumps/comments_0.nft new file mode 100644 index 000000000000..3507e0b1d198 --- /dev/null +++ b/tests/shell/testcases/comments/dumps/comments_0.nft @@ -0,0 +1,6 @@ +table ip x { + set y { + type ipv4_addr + elements = { 2.2.2.2, 3.3.3.3 } + } +} -- 2.30.2