BIND 10 #423: simple master file loader
BIND 10 Development
do-not-reply at isc.org
Wed Dec 8 14:38:26 UTC 2010
#423: simple master file loader
----------------------------+-----------------------------------------------
Reporter: jinmei | Owner: jinmei
Type: task | Status: new
Priority: major | Milestone: y2 12 month milestone
Component: DNSPacket API | Keywords:
Sensitive: 0 | Estimatedhours: 0
Hours: 0 | Billable: 1
Totalhours: 0 | Internal: 0
----------------------------+-----------------------------------------------
This is a task for the A team sprint, but is a relatively generic feature
that can be used for other purposes.
It parses a "normalized" zone file, where "normalized" mean:
- no directives ($xxx, @, etc)
- TTLs are numbers
- no multiline RR
- no omission (owner name for RRs of the same owner name, TTL, RR Class)
- no relative owner names
- RRs of a single RRset are not interleaved with RRs of a different
RRset. That is, the following sequence shouldn't happen:
- example.com. 3600 IN A 192.0.2.1
- example.com. 3600 IN AAAA 2001:db8::1
- example.com. 3600 IN A 192.0.2.2
- no mixed ordering of RR parameters; only accept the form of <owner
name> <TTL> <RR class> <RR type> <Rdata (single line)>
note: BIND 9's named-compilezone (from text to text) can convert an
arbitrary zone file in the "normalized" form:
{{{
% named-compilezone -f text -F text -o example.com.norm example.com
example.com.zone
}}}
This can be a simple free function (not a class), which takes a path to
the zone file, the origin name, and RR class, and a callback functor. It
calls the functor for every RRset built from the zone file. Some level of
validation against origin/RR class should better be performed, but if it
takes time it can be skipped at this time. In either case it should be
documented.
--
Ticket URL: <http://bind10.isc.org/ticket/423>
BIND 10 Development <http://bind10.isc.org>
BIND 10 Development
More information about the bind10-tickets
mailing list