BIND 10 #2751: add "subtract RDATA" interface to RdataSet

BIND 10 Development do-not-reply at isc.org
Thu Sep 5 12:38:25 UTC 2013


#2751: add "subtract RDATA" interface to RdataSet
-------------------------------------+-------------------------------------
            Reporter:  jinmei        |                        Owner:
                Type:  task          |  vorner
            Priority:  medium        |                       Status:
           Component:  data source   |  reviewing
            Keywords:                |                    Milestone:
           Sensitive:  0             |  Sprint-20130917
         Sub-Project:  DNS           |                   Resolution:
Estimated Difficulty:  5             |                 CVSS Scoring:
         Total Hours:  0             |              Defect Severity:  N/A
                                     |  Feature Depending on Ticket:
                                     |  shared memory data source
                                     |          Add Hours to Ticket:  0
                                     |                    Internal?:  0
-------------------------------------+-------------------------------------
Changes (by muks):

 * owner:  UnAssigned => vorner


Comment:

 Hi Michal

 Here are my review comments:

 * In the `RdataSetTest.subtract` unittest, why are TTLs of 1076895760
   used? I see the rest of the files use that TTL too. It's a distraction
   (we wonder why that TTL was picked), and something simple like 3600
   would be better.

 * The following cases need tests at the `subtract()` interface:
 {{{
     if (rrset && rrset->getRdataCount() == 0) {
         isc_throw(BadValue, "Empty RRset");
     }
     if (sig_rrset && sig_rrset->getRdataCount() == 0) {
         isc_throw(BadValue, "Empty SIG RRset");
     }
     if (rrset && sig_rrset && rrset->getClass() != sig_rrset->getClass())
 {
         isc_throw(BadValue, "RR class doesn't match between RRset and
 RRSIG");
     }
 }}}

 and:

 {{{
     if (old_rdataset && old_rdataset->type != rrtype) {
         isc_throw(BadValue, "RR type doesn't match for merging RdataSet");
     }
 }}}

 * Can you somehow unify the common code in the result generation at the
   end of `subtract()` with the code at the end of `create()`?

 * We check that the RRsets are of the same class, same
   RRtype, etc. Where are the names checked?

 * It's a shame that `subtractIterate()'ion` is an n^2 operation as for
   each RDATA to subtract, we have to go through the entire list of RDATA
   for the other rrset. It's not this branch's fault, but just an
   observation.

 * I have pushed some minor commits to the branch. Please check them.

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


More information about the bind10-tickets mailing list