BIND 10 #1574: Add support for loading NSEC3 RRsets to in memory data source

BIND 10 Development do-not-reply at isc.org
Tue Jan 31 10:41:38 UTC 2012


#1574: Add support for loading NSEC3 RRsets to in memory data source
-------------------------------------+-------------------------------------
                   Reporter:         |                 Owner:  jinmei
  jinmei                             |                Status:  reviewing
                       Type:  task   |             Milestone:
                   Priority:         |  Sprint-20120207
  critical                           |            Resolution:
                  Component:  data   |             Sensitive:  0
  source                             |           Sub-Project:  DNS
                   Keywords:         |  Estimated Difficulty:  7
            Defect Severity:  N/A    |           Total Hours:  0
Feature Depending on Ticket:  NSEC3  |
        Add Hours to Ticket:  0      |
                  Internal?:  0      |
-------------------------------------+-------------------------------------

Comment (by vorner):

 Hello

 I think a file is missing from git, because distcheck fails with:
 {{{
 make[4]: Entering directory
 `/home/vorner/work/bind10/src/lib/datasrc/tests'
 make[4]: *** No rule to make target `testdata/example.org.nsec3-signed',
 needed by `distdir'.  Stop.
 make[4]: Leaving directory
 `/home/vorner/work/bind10/src/lib/datasrc/tests'
 }}}

 and make check with this:
 {{{
 [ RUN      ] InMemoryZoneFinderTest.loadNSEC3Zone
 terminate called after throwing an instance of 'isc::dns::MasterLoadError'
  what():  Failed to open master file:
 /home/vorner/work/bind10/src/lib/datasrc/tests/testdata/example.org.nsec3-signed
 /bin/sh: line 5: 27193 Aborted                 (core dumped) ${dir}$tst
 FAIL: run_unittests_memory
 }}}

 Otherwise, I have just some nitpicking:

 Should this be "does request" instead of "doesn't"?
 {{{#!c++
         // NSEC3/NSEC3PARAM is not a "singleton" per protocol, but this
         // implementation doesn't request it be so at the moment.
 }}}

 Do it "now"?
 {{{#!c++
 // If we've not done any NSEC3 setup for the zone, do it know;
 }}}

 Could it happen we have empty origin? I mean, the zone file would not be
 valid, but it could happen, couldn't it? I think we should raise an
 exception instead of crash on assert in that situation. Or, should such
 case be rejected sooner than this? If so, a comment why this can't happen
 in practice would be nice:
 {{{#!c++
 // If the zone is NSEC3-signed, check if it has NSEC3PARAM
 if (tmp->nsec3_data_) {
     assert(!tmp->origin_data_->isEmpty());
     if (tmp->origin_data_->getData()->find(RRType::NSEC3PARAM()) ==
         tmp->origin_data_->getData()->end()) {
         LOG_WARN(logger, DATASRC_MEM_NO_NSEC3PARAM).
             arg(getOrigin()).arg(getClass());
     }
 }
 }}}

 The python documentation explicitly says there are no exceptions from the
 match method. It is true we don't have any special exceptions, but the
 common ones, like bad number of arguments or bad argument types can still
 happen.

 In both the C++ and python tests, the comment „Flags doesn't matter“
 should probably be „don't“.

 Thank you

-- 
Ticket URL: <http://bind10.isc.org/ticket/1574#comment:17>
BIND 10 Development <http://bind10.isc.org>
BIND 10 Development


More information about the bind10-tickets mailing list