2
0
mirror of https://gitlab.isc.org/isc-projects/bind9 synced 2025-08-30 05:57:52 +00:00

fix: nil: Extend named-rrchecker multi-line parsing support

named-rrchecker now parses the braces which support multi-line input 
from the beginning of the input rather than only when reading the 
data fields of the record.

Closes #5336

Merge branch '5336-extend-named-rrchecker-multiline-support' into 'main'

See merge request isc-projects/bind9!10521
This commit is contained in:
Mark Andrews 2025-06-03 02:27:03 +00:00
commit 4d5aa1b907
2 changed files with 14 additions and 2 deletions

View File

@ -136,7 +136,10 @@ def run_rrchecker(option, rr_class, rr_type, rr_rest):
return rrchecker_output.split()
@pytest.mark.parametrize("option", ["-p", "-u"])
@pytest.mark.parametrize(
"option",
["-p", "-u", "multi-line at class", " multi-line at type", "multi-line at data"],
)
def test_rrchecker_conversions(option):
tempzone_file = "tempzone"
with open(tempzone_file, "w", encoding="utf-8") as file:
@ -175,6 +178,15 @@ def test_rrchecker_conversions(option):
"-u", rr_class_orig, rr_type_orig, rr_rest_orig
)
rr_rest = " ".join(rr_rest)
elif option == "multi-line at class":
rr_class = "(" + rr_class
rr_rest = rr_rest + ")"
elif option == "multi-line at type":
rr_type = "(" + rr_type
rr_rest = rr_rest + ")"
elif option == "multi-line at data":
rr_rest = "(" + rr_rest
rr_rest = rr_rest + ")"
rr_class, rr_type, *rr_rest = run_rrchecker("-p", rr_class, rr_type, rr_rest)

View File

@ -181,7 +181,7 @@ main(int argc, char *argv[]) {
specials[')'] = 1;
specials['"'] = 1;
isc_lex_setspecials(lex, specials);
options = ISC_LEXOPT_EOL;
options = ISC_LEXOPT_EOL | ISC_LEXOPT_DNSMULTILINE;
isc_lex_setcomments(lex, ISC_LEXCOMMENT_DNSMASTERFILE);
isc_lex_openstream(lex, stdin);