BIND 10 #2163: [meta] use signed RRset "as is" in Message

BIND 10 Development do-not-reply at isc.org
Fri Jul 27 23:38:47 UTC 2012


#2163: [meta] use signed RRset "as is" in Message
-------------------------------------+-------------------------------------
                   Reporter:         |                 Owner:  UnAssigned
  jinmei                             |                Status:  new
                       Type:  task   |             Milestone:  New Tasks
                   Priority:         |            Resolution:
  medium                             |             Sensitive:  0
                  Component:         |           Sub-Project:  DNS
  libdns++                           |  Estimated Difficulty:  0
                   Keywords:         |           Total Hours:  0
            Defect Severity:  N/A    |
Feature Depending on Ticket:         |
  scalable inmemory                  |
        Add Hours to Ticket:  0      |
                  Internal?:  0      |
-------------------------------------+-------------------------------------
Description changed by jinmei:

Old description:

> I propose changing the way of handling "signed `RRset`s", ie.,
> `RRset`s that are associate with RRSIG `RRsets` in the libdns++
> `Message`, especially in the toWire() rendering.
>
> Right now, we add a signed `RRset` by `Message::addRRset()` with
> the `sign` argument being true, and the `addRRset` method
> extracts the RRSIG by `getRRsig()` and inserts it into the internal
> vector.
>
> This behavior is suboptimal for the revised in-memory data source
> architecture, because `ZoneFinder::find()` would have to dynamically
> create two `RRset`s every time.  Also, as we introduced the abstract
> concept of "signed `RRset`", I personally believe it's cleaner if the
> user of that concept (such as `Message`) can be agnostic about it as
> much as possible, and let the `RRset` itself decide what to do
> depending on whether it's signed or not.
>
> Based on this observation and opinion I'm going to create a few
> development tickets to change the behavior.  In essence it shouldn't
> be very complicated updates, but we'll need to update a certain amount
> of code because it will probably affect many test cases.
>
> This work is related to the "one non trivial open issue" mentioned
> in #2098.

New description:

 I propose changing the way of handling "signed `RRset`s", ie.,
 `RRset`s that are associate with RRSIG `RRsets` in the libdns++
 `Message`, especially in the toWire() rendering.

 Right now, we add a signed `RRset` by `Message::addRRset()` with
 the `sign` argument being true, and the `addRRset` method
 extracts the RRSIG by `getRRsig()` and inserts it into the internal
 vector.

 This behavior is suboptimal for the revised in-memory data source
 architecture, because `ZoneFinder::find()` would have to dynamically
 create two `RRset`s every time.  Also, as we introduced the abstract
 concept of "signed `RRset`", I personally believe it's cleaner if the
 user of that concept (such as `Message`) can be agnostic about it as
 much as possible, and let the `RRset` itself decide what to do
 depending on whether it's signed or not.

 Based on this observation and opinion I'm going to create a few
 development tickets to change the behavior.  In essence it shouldn't
 be very complicated updates, but we'll need to update a certain amount
 of code because it will probably affect many test cases.

 The development tickets are:
 - #2164 introduce `RRset::getSIGRdataCount`()
 - #2165 update `Message::addRRset()` to be unaware of signedness
 - #2166 update `RRset::toWire()` so it will render RRSIGs, too

 This work is related to the "one non trivial open issue" mentioned
 in #2098.

--

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


More information about the bind10-tickets mailing list