BIND 10 #1431: NSEC3: closest provable encloser proof

BIND 10 Development do-not-reply at isc.org
Mon Jan 23 15:49:46 UTC 2012


#1431: NSEC3: closest provable encloser proof
-------------------------------------+-------------------------------------
                   Reporter:         |                 Owner:  jinmei
  stephen                            |                Status:  reviewing
                       Type:         |             Milestone:
  enhancement                        |  Sprint-20120124
                   Priority:  major  |            Resolution:
                  Component:         |             Sensitive:  0
  Unclassified                       |           Sub-Project:  DNS
                   Keywords:         |  Estimated Difficulty:  6
            Defect Severity:  N/A    |           Total Hours:  0
Feature Depending on Ticket:  NSEC3  |
        Add Hours to Ticket:  0      |
                  Internal?:  0      |
-------------------------------------+-------------------------------------
Changes (by vorner):

 * owner:  vorner => jinmei


Comment:

 Hello

 Replying to [comment:17 jinmei]:
 > As for the explicit Hints class, on thinking about it further, I guess
 > we might (eventually) do something like this:
 >
 > [...]
 >
 > This way we can also avoid the need for down cast (dynamic_cast) and
 > can make the interface type-safer.

 This would indeed make the code slightly cleaner design-wise. However, I
 fear that it would be harder to use (as the caller would need to
 distinguish if a NULL was returned and if not, call the method on hints
 instead of the data source). Also, the code inside the data source would
 get duplicated and we would need to unify it, adding another layer the
 reader would need to get through. I'm not sure if avoiding one dynamic
 cast is worth this much.

 > Would something like this make sense?  If so, what I'd propose for
 > this ticket is:
 >
 > - introduce the flag field to FindResult and update the find()
 >   interface so that if the zone is signed with NSEC/NSEC3 the
 >   corresponding flags are set, and same for wildcard.
 > - deprecate WILDCARD_xxx and have the caller refer to this flag
 > - remove the idea of returning NSEC3 RRset from find() and allowing
 >   the caller to use it for findNSEC3() for now.  The idea of
 >   FindContext will be big enough (and non urgent), so it's probably
 >   better to postpone it.

 ACK, this direction looks good, no matter if we do it the context or hints
 way.

 > > Also, I'd have few code-level details:
 > >
 > > Indentation:
 > > {{{
 > > +        /// TBD
 > > +       virtual FindNSEC3Result
 > > +        findNSEC3(const isc::dns::Name& name, bool recursive,
 > > +                  const isc::dns::ConstRRsetPtr known_encloser);
 > > +
 > > }}}

 Actually, one indentation problem was left (there were tabs for some
 reason), and I fixed it.

 Replying to [comment:19 jinmei]:
 > Replying to [comment:17 jinmei]:
 >
 > > Would something like this make sense?  If so, what I'd propose for
 > > this ticket is:
 > >
 > > - introduce the flag field to FindResult and update the find()
 > >   interface so that if the zone is signed with NSEC/NSEC3 the
 > >   corresponding flags are set, and same for wildcard.
 > > - deprecate WILDCARD_xxx and have the caller refer to this flag
 > > - remove the idea of returning NSEC3 RRset from find() and allowing
 > >   the caller to use it for findNSEC3() for now.  The idea of
 > >   FindContext will be big enough (and non urgent), so it's probably
 > >   better to postpone it.
 >
 > I've updated the branch toward this direction, but not completely
 > deprecated WILDCARD_xxx as it would require rather big changes to the
 > existing database data source implementation.  For now, I introduced a
 > quick hack wrapper in the auth Query code to convert the old format to
 > the new one.
 >
 > If this approach is okay I'll create a separate ticket for the
 > subsequent refactoring.

 The wrapper looks kludge to me, but provided the ticket is handled soon
 enough (possibly in the next sprint), I think it is OK. The ticket should
 be relatively small, the only place that used WILDCARD_xxx is the database
 datasource and the compiler should be able to find all the occurrences if
 the definitions are removed.

 The code itself looks good enough to merge, so please do. We can discuss
 the inclusion of hints or whatever in the result later and outside of this
 ticket, possibly on the next non-planning call? Or the mailing list?

 Thank you

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


More information about the bind10-tickets mailing list