BIND 10 trac2435_2, updated. 1f6f8905d7319519c6f2ebd5864eeb4d6d700d03 [2435] Update RRsetCollectionBase::find() API doc for RRSIGs and meta types

BIND 10 source code commits bind10-changes at lists.isc.org
Wed Jan 23 15:17:34 UTC 2013


The branch, trac2435_2 has been updated
       via  1f6f8905d7319519c6f2ebd5864eeb4d6d700d03 (commit)
      from  631366a33bb06d01547c0789edfadde7a17228bd (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit 1f6f8905d7319519c6f2ebd5864eeb4d6d700d03
Author: Mukund Sivaraman <muks at isc.org>
Date:   Wed Jan 23 20:47:07 2013 +0530

    [2435] Update RRsetCollectionBase::find() API doc for RRSIGs and meta types

-----------------------------------------------------------------------

Summary of changes:
 src/lib/dns/rrset_collection_base.h |   30 ++++++++++++++++++++++++------
 1 file changed, 24 insertions(+), 6 deletions(-)

-----------------------------------------------------------------------
diff --git a/src/lib/dns/rrset_collection_base.h b/src/lib/dns/rrset_collection_base.h
index ae1f63a..64f6379 100644
--- a/src/lib/dns/rrset_collection_base.h
+++ b/src/lib/dns/rrset_collection_base.h
@@ -58,13 +58,31 @@ public:
     /// is found, \c NULL is returned.
     ///
     /// This method's implementations currently are not specified to
-    /// handle \c RRTypes such as RRSIG and NSEC3. RRSIGs are attached
-    /// to their corresponding \c RRset and it is not straightforward to
-    /// search for them. Searching for RRSIGs will return \c false
-    /// always. Support for RRSIGs may be added in the future.
+    /// handle \c RRTypes such as RRSIG and NSEC3. It's not clear
+    /// whether we want to return all RRSIGs of the given name covering
+    /// any RR types (in which case, we need to figure out how), or we
+    /// need to extend the interface so we can specify the covered
+    /// type. The libdns++ implementation (\c isc::dns::RRsetCollection)
+    /// could actually match RRSIG RRsets because its \c addRRset()
+    /// method does not reject the direct addition of RRSIGs. There are
+    /// such fundamental open questions, and a specific derived
+    /// implementation may return something if type RRSIG is specified,
+    /// but this is not specified here at the base class level, i.e.,
+    /// for RRSIGs the behavior is undefined. This interface may be
+    /// refined to clarify this point in the future, and perhaps,
+    /// provide additional API for this RRType.
     ///
-    /// Non-concrete types such as ANY and AXFR are unsupported and will
-    /// return \c false always.
+    /// Behavior with non-concrete types such as ANY and AXFR are also
+    /// undefined. A specific implementation may return something for
+    /// these (a \c RRType::AXFR() RRset can be created and passed to
+    /// \c isc::dns::RRsetCollection, for example). But, unlike the case
+    /// of RRSIGs, these types of RRsets are not expected to be added to
+    /// any implementation of collection in the first place (by the
+    /// definition of "meta types"), so querying for such types is
+    /// basically an invalid operation. The API doesn't require
+    /// implementations to check this condition and reject it, so the
+    /// behavior is undefined. This interface will not be refined in
+    /// future versions for these meta types.
     ///
     /// \throw RRsetCollectionError if find() results in some
     /// implementation-specific error.



More information about the bind10-changes mailing list