BIND 10 #1176: RRSIG support in new data source

BIND 10 Development do-not-reply at isc.org
Tue Sep 6 07:28:09 UTC 2011


#1176: RRSIG support in new data source
-------------------------------------+-------------------------------------
                   Reporter:         |                 Owner:  vorner
  jinmei                             |                Status:  reviewing
                       Type:  task   |             Milestone:
                   Priority:  major  |  Sprint-20110830
                  Component:  data   |            Resolution:
  source                             |             Sensitive:  0
                   Keywords:         |           Sub-Project:  DNS
            Defect Severity:  N/A    |  Estimated Difficulty:  0
Feature Depending on Ticket:         |           Total Hours:  0
        Add Hours to Ticket:  0      |
                  Internal?:  0      |
-------------------------------------+-------------------------------------
Changes (by jelte):

 * owner:  jelte => vorner


Comment:

 Hmm, I understand why it is, but it seems weird at initial glance that
 some of the FindOptions are specified in the constructor, some in the
 actual
 call to findAddrs, and findAddrs then puts them together again. But I
 guess it
 would look less bad without those casts :)

 About using an enum for bitflags; there are several solutions to the
 problem, one is casting as you did, another could be to overload
 operator|() for
 it (which initially seems a bit of a hack, but looks much cleaner on the
 caller
 side, and then we can hide all the casts there (technically you are now
 implicitely casting FindOptions to int now too)). e.g. something like:

 {{{
 inline ZoneFinder::FindOptions operator|(ZoneFinder::FindOptions a,
                                          ZoneFinder::FindOptions b) {
     return (static_cast<ZoneFinder::FindOptions>(static_cast<int>(a) |
                                                  static_cast<int>(b)));
 }
 }}}

 Alternatively, we could consider std::bitflags, or maybe even plain ints
 in the
 API (which would sacrifice safety for readability)

 Regarding the RRSIG for wildcards; it is included unmodified except for
 the
 owner name, which should match the reconstructed owner name of the
 wildcard
 rrset. The validator can then see it was a wildcard because the label
 count is
 not equal to the number of labels in the name.

 Oh and about the RRset interface for RRSIG records; I agree that they
 should be
 in the RRset directly, and not handled separately. One possible
 improvement
 might be to treat them as a second set of rdata fields and not as a
 separate
 RRset within the main RRset.

 Just to make sure, do we have an explicit test to check that DNSSEC data
 is NOT
 included in the final answer when not asked for?

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


More information about the bind10-tickets mailing list