Conversation
|
It's good to know that I've also removed any use of |
b77623f to
1249487
Compare
2d16c73 to
8361e2c
Compare
|
I think this is ready to be merged. This fixes a number of issues, the most important one being quotes around fields that must not be quoted are now disallowed. FORMAT.md has been updated to reflect that. Next to that, the secondary index is dropped (the reasoning for which can be found on #30) and the longjmp (originally added in #1) has been dropped too. Scanner performance has been improved significantly and numbers are a little better overall, so that's good. This will be a good base for incrementally improving data-type parsers (an example of which is #65) and adding thus far unsupported record types (SVCB, WKS, etc). For TLD zones, the data will be mostly glue data (NS, DS, RRSIG and NSEC(3)), so data-types used in those fields will benefit us most. Names and RRTYPEs being at the top of the list. I've also resolved the warnings on Windows and enabled the |
Drop secondary indexes to simplify tape operation and disallow placement of quotes around values other than domain names and text. Additionally, no attempt is made to parse symbols for which no symbolic constants have been specified and use of pretty TTL notation, e.g. 1m2s, is only allowed if the pretty_ttl option is enabled. Fixes NLnetLabs#30. Fixes NLnetLabs#31. Fixes NLnetLabs#38. Fixes NLnetLabs#50.
This PR drops the secondary index in favor of slightly more complicated domain name and string parsing, which are the only two data types (for now) that actually benefited from it. It also slows down RRTYPE conversion too (presumably), but there maybe a way to speed that back up again (the hash requires the length, which made sense because we had it freely available, but maybe another algorithm can be implemented that doesn't require it). Overall performance is around 5% better.
More importantly, it is now forbidden to use quotes around values other than domain names and text. The parser in NSD allows for quotes everywhere, which is why it was implemented like that before, but disallowing that is more sane and in line with BIND's behavior.
Use of
1h2m3snotation for TTLs, which is an NSD extension, is now only supported ifpretty_ttlsis enabled.There's other changes too. Note that this is still a draft because the code needs to be cleaned up a little. I focused on getting something fast because many mechanics are updated that may be important for the work done on #23.