BIND 10 #2309: define ZoneFinder::findAtOrigin()

BIND 10 Development do-not-reply at isc.org
Fri Jan 18 07:13:26 UTC 2013


#2309: define ZoneFinder::findAtOrigin()
------------------------------------+-----------------------------------
            Reporter:  jinmei       |                        Owner:
                Type:  task         |                       Status:  new
            Priority:  medium       |                    Milestone:
           Component:  data source  |                   Resolution:
            Keywords:               |                 CVSS Scoring:
           Sensitive:  0            |              Defect Severity:  N/A
         Sub-Project:  DNS          |  Feature Depending on Ticket:
Estimated Difficulty:  5            |          Add Hours to Ticket:  0
         Total Hours:  0            |                    Internal?:  0
------------------------------------+-----------------------------------
Description changed by jinmei:

Old description:

> While working on #2284 I realized the proposed
> `ZoneFinder::Context::getAtOrigin()` doesn't work for the originally
> intended purpose.  `Query::addAuthAdditional()` needs another
> finder context so it can retrieve additional records, so what I
> actually needed an extension to `ZoneFinder` itself:
>
> {{{#!cpp
> // Work like find(), but search at the zone's origin.
> boost::shared_ptr<ZoneFinder::Context>
> ZoneFinder::findAtOrigin(const isc::dns::RRType& type,
>                          const FindOptions options);
> }}}
>
> Like the `Context` methods, I propose providing the default version
> that works for any data source (that would be a straightforward
> wrapper of `find(finder.getOrigin(), ..)`.
>
> In this ticket, we define the general interface, implement the default
> version, and actually use it in auth `Query` class.

New description:

 While working on #2284 I realized the proposed
 `ZoneFinder::Context::getAtOrigin()` doesn't work for the originally
 intended purpose.  `Query::addAuthAdditional()` needs another
 finder context so it can retrieve additional records, so what I
 actually needed an extension to `ZoneFinder` itself:

 {{{#!cpp
 // Work like find(), but search at the zone's origin.
 boost::shared_ptr<ZoneFinder::Context>
 ZoneFinder::findAtOrigin(const isc::dns::RRType& type,
                          const FindOptions options);
 }}}

 Like the `Context` methods, I propose providing the default version
 that works for any data source (that would be a straightforward
 wrapper of `find(finder.getOrigin(), ..)`.

 In this ticket, we define the general interface, implement the default
 version, and actually use it in auth `Query` class.

 Addition: to handle the issue described in #2635, I propose making one
 small extension: introduce a new find option (say, USE_MIN_TTL), which
 specifies the returned RRset(s) have TTL of
 min(actual TTL, zone's SOA MIN TTL). (In practice this will be only
 used to get SOA for negative answers, but API-wise it's a generic
 option).  The auth `Query` class sets this option when it needs to
 get SOA for negative answers.  At this point #2635 would also be resolved.

--

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


More information about the bind10-tickets mailing list