README revision 40d01ce8f3a1889f5799d9b22b26d5398fa75a1b
40d01ce8f3a1889f5799d9b22b26d5398fa75a1bBob HalleyCode Drop 2 Status Update
40d01ce8f3a1889f5799d9b22b26d5398fa75a1bBob HalleyWork since February has focused almost exclusively on the DNS library,
40d01ce8f3a1889f5799d9b22b26d5398fa75a1bBob Halleyespecially on database implementation and resolver architecture. The
40d01ce8f3a1889f5799d9b22b26d5398fa75a1bBob HalleyDNS library now contains a transactional versioned database. In zone
40d01ce8f3a1889f5799d9b22b26d5398fa75a1bBob Halleymode, the database supports multiple concurrent readers as well as a
40d01ce8f3a1889f5799d9b22b26d5398fa75a1bBob Halleysingle in-progress abortable update (e.g. dynamic DNS or IXFR). In
40d01ce8f3a1889f5799d9b22b26d5398fa75a1bBob Halleycache mode, multiple concurrent readers and writers are supported. We
40d01ce8f3a1889f5799d9b22b26d5398fa75a1bBob Halleyalso have added interfaces for iterating the database, DNS
40d01ce8f3a1889f5799d9b22b26d5398fa75a1bBob Halleycompression, parsing and writing DNS messages. Our tree code now has
40d01ce8f3a1889f5799d9b22b26d5398fa75a1bBob Halleysupport for bitstring labels (required for IPv6). DNS master file
40d01ce8f3a1889f5799d9b22b26d5398fa75a1bBob Halleyloading is more robust than in the first code drop.
40d01ce8f3a1889f5799d9b22b26d5398fa75a1bBob HalleyA significant amount of design and implementation work that we had
40d01ce8f3a1889f5799d9b22b26d5398fa75a1bBob Halleyhoped to do later in the project had to be done in the current time
40d01ce8f3a1889f5799d9b22b26d5398fa75a1bBob Halleyperiod. For example, both DNSSEC and IPv6 introduce DB and resolver
40d01ce8f3a1889f5799d9b22b26d5398fa75a1bBob Halleycomplexities that are so fundamental that they could not be deferred
40d01ce8f3a1889f5799d9b22b26d5398fa75a1bBob Halleyuntil the time when we are actually implementing DNSSEC and IPv6
40d01ce8f3a1889f5799d9b22b26d5398fa75a1bBob Halleysupport. As a result, we have less code implemented than we had
40d01ce8f3a1889f5799d9b22b26d5398fa75a1bBob Halleyhoped, but are ahead of plan on parts of the design.
40d01ce8f3a1889f5799d9b22b26d5398fa75a1bBob HalleyWe are currently finalizing the resolver design, and will start
40d01ce8f3a1889f5799d9b22b26d5398fa75a1bBob Halleyimplementing it soon. Also nearing completion, but not included in
40d01ce8f3a1889f5799d9b22b26d5398fa75a1bBob Halleythis release, are library data types representing zones, the cache,
40d01ce8f3a1889f5799d9b22b26d5398fa75a1bBob Halleyand a standard C structure form for each rdata type.
40d01ce8f3a1889f5799d9b22b26d5398fa75a1bBob HalleyA basic test framework and a set of tests are included in this
40d01ce8f3a1889f5799d9b22b26d5398fa75a1bBob Halleyrelease. The tests are in
40d01ce8f3a1889f5799d9b22b26d5398fa75a1bBob HalleyTo run a test, 'cd' into its directory and type 'make test'.
40d01ce8f3a1889f5799d9b22b26d5398fa75a1bBob HalleyResult of the tests are appended to
40d01ce8f3a1889f5799d9b22b26d5398fa75a1bBob HalleyWe expect the test suite to become richer over time.
a48fa4b49c58246b297e0fd38e5fb85b985379f1Bob HalleyWe've had successful builds and tests on the following systems
a48fa4b49c58246b297e0fd38e5fb85b985379f1Bob Halley Digital UNIX 4.0D
a48fa4b49c58246b297e0fd38e5fb85b985379f1Bob Halley Red Hat Linux 5.2
a48fa4b49c58246b297e0fd38e5fb85b985379f1Bob Halley SGI IRIX 6.5
a48fa4b49c58246b297e0fd38e5fb85b985379f1Bob HalleyTo build, just
a48fa4b49c58246b297e0fd38e5fb85b985379f1Bob HalleyDo not run 'make install'.
a48fa4b49c58246b297e0fd38e5fb85b985379f1Bob HalleyBuilding with gcc is not supported, unless gcc is the vendor's usual
40d01ce8f3a1889f5799d9b22b26d5398fa75a1bBob Halleycompiler (e.g. the various BSD systems, Linux).
a48fa4b49c58246b297e0fd38e5fb85b985379f1Bob HalleyIRIX note: you must edit lib/isc/Makefile.in changing
a48fa4b49c58246b297e0fd38e5fb85b985379f1Bob Halley @ISC_EXTRA_OBJS@
a48fa4b49c58246b297e0fd38e5fb85b985379f1Bob Halley pthreads/condition.o @ISC_EXTRA_OBJS@
a48fa4b49c58246b297e0fd38e5fb85b985379f1Bob Halleybefore you run ./configure. Many compiler warnings, etc. are currently
a48fa4b49c58246b297e0fd38e5fb85b985379f1Bob Halleygenerated on IRIX. They will be cleaned up in a future release.
40d01ce8f3a1889f5799d9b22b26d5398fa75a1bBob HalleyCode in bin/named is for testing purposes only, and is not representative of
40d01ce8f3a1889f5799d9b22b26d5398fa75a1bBob Halleythe final architecture. Currently, it can load multiple zones and also
40d01ce8f3a1889f5799d9b22b26d5398fa75a1bBob Halleya cache, and answer queries for those names. Because the server cannot
40d01ce8f3a1889f5799d9b22b26d5398fa75a1bBob Halleyrecurse, and because it does not yet implement the full DNS protocol,
40d01ce8f3a1889f5799d9b22b26d5398fa75a1bBob Halleyit runs on port 5544, not port 53.
40d01ce8f3a1889f5799d9b22b26d5398fa75a1bBob HalleyAll APIs are subject to change in future code drops. We expect the
40d01ce8f3a1889f5799d9b22b26d5398fa75a1bBob Halleyexisting library interfaces in the code drop to be quite stable,
40d01ce8f3a1889f5799d9b22b26d5398fa75a1bBob Halleyhowever, and unless we've specifically indicated that an interface is
40d01ce8f3a1889f5799d9b22b26d5398fa75a1bBob Halleytemporary, we don't expect significant changes in future releases.