[svn] commit: r3430 - in /branches/trac404/src/lib/dns: ./ rdata/ rdata/ch_3/ rdata/generic/ rdata/hs_4/ rdata/in_1/ tests/ tests/testdata/

BIND 10 source code commits bind10-changes at lists.isc.org
Wed Nov 3 14:38:07 UTC 2010


Author: jinmei
Date: Wed Nov  3 14:38:06 2010
New Revision: 3430

Log:
initial implementation of trac#404: in-memory serialized representation of RDATA

Added:
    branches/trac404/src/lib/dns/rdatafields.cc
    branches/trac404/src/lib/dns/rdatafields.h
    branches/trac404/src/lib/dns/tests/rdatafields_unittest.cc
    branches/trac404/src/lib/dns/tests/testdata/rdatafields1.spec
    branches/trac404/src/lib/dns/tests/testdata/rdatafields2.spec
    branches/trac404/src/lib/dns/tests/testdata/rdatafields3.spec
    branches/trac404/src/lib/dns/tests/testdata/rdatafields4.spec
    branches/trac404/src/lib/dns/tests/testdata/rdatafields5.spec
    branches/trac404/src/lib/dns/tests/testdata/rdatafields6.spec
Modified:
    branches/trac404/src/lib/dns/Makefile.am
    branches/trac404/src/lib/dns/gen-rdatacode.py.in
    branches/trac404/src/lib/dns/messagerenderer.h
    branches/trac404/src/lib/dns/name.cc
    branches/trac404/src/lib/dns/name.h
    branches/trac404/src/lib/dns/rdata.cc
    branches/trac404/src/lib/dns/rdata.h
    branches/trac404/src/lib/dns/rdata/ch_3/a_1.cc
    branches/trac404/src/lib/dns/rdata/generic/cname_5.cc
    branches/trac404/src/lib/dns/rdata/generic/dname_39.cc
    branches/trac404/src/lib/dns/rdata/generic/dnskey_48.cc
    branches/trac404/src/lib/dns/rdata/generic/ds_43.cc
    branches/trac404/src/lib/dns/rdata/generic/mx_15.cc
    branches/trac404/src/lib/dns/rdata/generic/ns_2.cc
    branches/trac404/src/lib/dns/rdata/generic/nsec3_50.cc
    branches/trac404/src/lib/dns/rdata/generic/nsec3param_51.cc
    branches/trac404/src/lib/dns/rdata/generic/nsec_47.cc
    branches/trac404/src/lib/dns/rdata/generic/opt_41.cc
    branches/trac404/src/lib/dns/rdata/generic/ptr_12.cc
    branches/trac404/src/lib/dns/rdata/generic/rrsig_46.cc
    branches/trac404/src/lib/dns/rdata/generic/soa_6.cc
    branches/trac404/src/lib/dns/rdata/generic/txt_16.cc
    branches/trac404/src/lib/dns/rdata/hs_4/a_1.cc
    branches/trac404/src/lib/dns/rdata/in_1/a_1.cc
    branches/trac404/src/lib/dns/rdata/in_1/aaaa_28.cc
    branches/trac404/src/lib/dns/rdata/template.cc
    branches/trac404/src/lib/dns/rrtype-placeholder.h
    branches/trac404/src/lib/dns/rrtype.cc
    branches/trac404/src/lib/dns/tests/Makefile.am
    branches/trac404/src/lib/dns/tests/testdata/Makefile.am

Modified: branches/trac404/src/lib/dns/Makefile.am
==============================================================================
--- branches/trac404/src/lib/dns/Makefile.am (original)
+++ branches/trac404/src/lib/dns/Makefile.am Wed Nov  3 14:38:06 2010
@@ -73,6 +73,7 @@
 libdns___la_SOURCES += opcode.h opcode.cc
 libdns___la_SOURCES += rcode.h rcode.cc
 libdns___la_SOURCES += rdata.h rdata.cc
+libdns___la_SOURCES += rdatafields.h rdatafields.cc
 libdns___la_SOURCES += rrclass.cc
 libdns___la_SOURCES += rrparamregistry.h
 libdns___la_SOURCES += rrset.h rrset.cc

Modified: branches/trac404/src/lib/dns/gen-rdatacode.py.in
==============================================================================
--- branches/trac404/src/lib/dns/gen-rdatacode.py.in (original)
+++ branches/trac404/src/lib/dns/gen-rdatacode.py.in Wed Nov  3 14:38:06 2010
@@ -109,7 +109,7 @@
             content += '''
 class InputBuffer;
 class OutputBuffer;
-class MessageRenderer;\n\n'''
+class AbstractMessageRenderer;\n\n'''
         if re.match('\s+// BEGIN_COMMON_MEMBERS$', line):
             content += '''
     explicit ''' + type_utxt + '''(const std::string& type_str);
@@ -117,7 +117,7 @@
     ''' + type_utxt + '''(const ''' + type_utxt + '''& other);
     virtual std::string toText() const;
     virtual void toWire(OutputBuffer& buffer) const;
-    virtual void toWire(MessageRenderer& renderer) const;
+    virtual void toWire(AbstractMessageRenderer& renderer) const;
     virtual int compare(const Rdata& other) const;\n\n'''
     rdata_header.close()
     return content

Modified: branches/trac404/src/lib/dns/messagerenderer.h
==============================================================================
--- branches/trac404/src/lib/dns/messagerenderer.h (original)
+++ branches/trac404/src/lib/dns/messagerenderer.h Wed Nov  3 14:38:06 2010
@@ -23,58 +23,46 @@
 class OutputBuffer;
 class Name;
 
-///
-/// \brief The \c MessageRenderer class encapsulates implementation details
-/// of rendering a DNS message into a buffer in wire format.
-///
-/// In effect, it's simply responsible for name compression at least in the
-/// current implementation.  A \c MessageRenderer class object manages the
-/// positions of names rendered in a buffer and uses that information to render
-/// subsequent names with compression.
-///
-/// This class is mainly intended to be used as a helper for a more
+/// \brief The \c AbstractMessageRenderer class is an abstract base class
+/// that provides common interfaces for rendering a DNS message into a buffer
+/// in wire format.
+///
+/// A specific derived class of \c AbstractMessageRenderer (we call it
+/// a renderer class hereafter) is simply responsible for name compression at
+/// least in the current design.  A renderer class object (conceptually)
+/// manages the positions of names rendered in some sort of buffer and uses
+/// that information to render subsequent names with compression.
+///
+/// A renderer class is mainly intended to be used as a helper for a more
 /// comprehensive \c Message class internally; normal applications won't have
-/// to care about this class.
-///
-/// A \c MessageRenderer class object is constructed with a \c OutputBuffer
-/// object, which is the buffer into which the rendered %data will be written.
-/// Normally the buffer is expected to be empty on construction, but it doesn't
-/// have to be so; the \c MessageRenderer object will start rendering from the
-/// end of the buffer at the time of construction.  However, if the
-/// pre-existing portion of the buffer contains DNS names, these names won't
-/// be considered for name compression.
-///
-/// Once a \c MessageRenderer object is constructed with a buffer, it is
-/// generally expected that all rendering operations are performed via the
-/// \c MessageRenderer object.  If the application modifies the buffer in
-/// parallel with the \c MessageRenderer, the result will be undefined.
+/// to care about details of this class.
+///
+/// Once a renderer class object is constructed with a buffer, it is
+/// generally expected that all rendering operations are performed via that
+/// object.  If the application modifies the buffer in
+/// parallel with the renderer, the result will be undefined.
 ///
 /// Note to developers: we introduced a separate class for name compression
 /// because previous benchmark with BIND9 showed compression affects overall
 /// response performance very much.  By having a separate class dedicated for
 /// this purpose, we'll be able to change the internal implementation of name
 /// compression in the future without affecting other part of the API and
-/// implementation.  For the same reason, we adopt the "pimpl" idiom in the
-/// class definition (i.e., using a pointer to a \c MessageRendererImpl class,
-/// which is defined with the class implementation, not in the header file):
-/// we may want to modify the compression implementation without modifying the
-/// header file thereby requesting rebuild the package.
-///
-/// Furthermore, we may eventually want to allow other developers to develop
-/// and use their own compression implementation.  Should such a case become
-/// realistic, we may want to make the \c MessageRendererImpl class an abstract
-/// base class and let concrete derived classes have their own implementations.
-/// At the moment we don't the strong need for it, so we rather avoid over
-/// abstraction and keep the definition simpler.
-class MessageRenderer {
+/// implementation.
+///
+/// In addition, by introducing a class hierarchy from
+/// \c AbstractMessageRenderer, we allow an application to use a customized
+/// renderer class for specific purposes.  For example, a high performance
+/// DNS server may want to use an optimized renderer class assuming some
+/// specific underlying data representation.
+class AbstractMessageRenderer {
 public:
     /// \brief Compression mode constants.
     ///
     /// The \c CompressMode enum type represents the name compression mode
-    /// for the \c MessageRenderer.
+    /// for renderer classes.
     /// \c CASE_INSENSITIVE means compress names in case-insensitive manner;
     /// \c CASE_SENSITIVE means compress names in case-sensitive manner.
-    /// By default, \c MessageRenderer compresses names in case-insensitive
+    /// By default, a renderer compresses names in case-insensitive
     /// manner.
     /// Compression mode can be dynamically modified by the
     /// \c setCompressMode() method.
@@ -82,7 +70,7 @@
     /// is not an intended usage.  In this case the names already compressed
     /// are intact; only names being compressed after the mode change are
     /// affected by the change.
-    /// If the internal \c MessageRenderer is reinitialized by the \c clear()
+    /// If a renderer class object is reinitialized by the \c clear()
     /// method, the compression mode will be reset to the default, which is
     /// \c CASE_INSENSITIVE
     ///
@@ -95,23 +83,18 @@
         CASE_INSENSITIVE,  //!< Compress names case-insensitive manner (default)
         CASE_SENSITIVE     //!< Compress names case-sensitive manner
     };
-public:
+protected:
     ///
     /// \name Constructors and Destructor
     //@{
-    /// \brief Constructor from an output buffer.
-    ///
-    /// \param buffer An \c OutputBuffer object to which wire format data is
-    /// written.
-    MessageRenderer(OutputBuffer& buffer);
+    /// \brief The default constructor.
+    ///
+    /// This is intentionally defined as \c protected as this base class should
+    /// never be instantiated (except as part of a derived class).
+    AbstractMessageRenderer() {}
+public:
     /// \brief The destructor.
-    ///
-    /// The destructor does nothing on the given \c buffer on construction;
-    /// in fact, it is expected that the user will use the resulting buffer
-    /// for some post rendering purposes (e.g., send the data to the network).
-    /// It's the user's responsibility to do any necessary cleanup for the
-    /// \c buffer.
-    ~MessageRenderer();
+    virtual ~AbstractMessageRenderer() {}
     //@}
 
     ///
@@ -123,9 +106,11 @@
     ///
     /// This method works exactly same as the same method of the \c OutputBuffer
     /// class; all notes for \c OutputBuffer apply.
-    const void* getData() const;
+    virtual const void* getData() const = 0;
+
     /// \brief Return the length of data written in the internal buffer.
-    size_t getLength() const;
+    virtual size_t getLength() const = 0;
+
     /// \brief Return whether truncation has occurred while rendering.
     ///
     /// Once the return value of this method is \c true, it doesn't make sense
@@ -135,20 +120,22 @@
     /// This method never throws an exception.
     ///
     /// \return true if truncation has occurred; otherwise \c false.
-    bool isTruncated() const;
+    virtual bool isTruncated() const = 0;
+
     /// \brief Return the maximum length of rendered data that can fit in the
     /// corresponding DNS message without truncation.
     ///
     /// This method never throws an exception.
     ///
     /// \return The maximum length in bytes.
-    size_t getLengthLimit() const;
-    /// \brief Return the compression mode of the \c MessageRenderer.
+    virtual size_t getLengthLimit() const = 0;
+
+    /// \brief Return the compression mode of the renderer class object.
     ///
     /// This method never throws an exception.
     ///
     /// \return The current compression mode.
-    CompressMode getCompressMode() const;
+    virtual CompressMode getCompressMode() const = 0;
     //@}
 
     ///
@@ -159,20 +146,22 @@
     /// rendering.
     ///
     /// This method never throws an exception.
-    void setTruncated();
+    virtual void setTruncated() = 0;
+
     /// \brief Set the maximum length of rendered data that can fit in the
     /// corresponding DNS message without truncation.
     ///
     /// This method never throws an exception.
     ///
     /// \param len The maximum length in bytes.
-    void setLengthLimit(size_t len);
-    /// \brief Set the compression mode of the \c MessageRenderer.
+    virtual void setLengthLimit(size_t len) = 0;
+
+    /// \brief Set the compression mode of the renderer class object.
     ///
     /// This method never throws an exception.
     ///
     /// \param mode A \c CompressMode value representing the compression mode.
-    void setCompressMode(CompressMode mode);
+    virtual void setCompressMode(CompressMode mode) = 0;
     //@}
 
     ///
@@ -186,7 +175,8 @@
     /// that is to be filled in later, e.g, by \ref writeUint16At().
     ///
     /// \param len The length of the gap to be inserted in bytes.
-    void skip(size_t len);
+    virtual void skip(size_t len) = 0;
+
     /// \brief Trim the specified length of data from the end of the internal
     /// buffer.
     ///
@@ -197,21 +187,25 @@
     /// be thrown.
     ///
     /// \param len The length of data that should be trimmed.
-    void trim(size_t len);
+    virtual void trim(size_t len) = 0;
+
     /// \brief Clear the internal buffer and other internal resources.
     ///
     /// This method can be used to re-initialize and reuse the renderer
     /// without constructing a new one.
-    void clear();
+    virtual void clear() = 0;
+
     /// \brief Write an unsigned 8-bit integer into the internal buffer.
     ///
     /// \param data The 8-bit integer to be written into the internal buffer.
-    void writeUint8(uint8_t data);
+    virtual void writeUint8(uint8_t data) = 0;
+
     /// \brief Write an unsigned 16-bit integer in host byte order into the
     /// internal buffer in network byte order.
     ///
     /// \param data The 16-bit integer to be written into the buffer.
-    void writeUint16(uint16_t data);
+    virtual void writeUint16(uint16_t data) = 0;
+
     /// \brief Write an unsigned 16-bit integer in host byte order at the
     /// specified position of the internal buffer in network byte order.
     ///
@@ -223,26 +217,23 @@
     ///
     /// \param data The 16-bit integer to be written into the internal buffer.
     /// \param pos The beginning position in the buffer to write the data.
-    void writeUint16At(uint16_t data, size_t pos);
+    virtual void writeUint16At(uint16_t data, size_t pos) = 0;
+
     /// \brief Write an unsigned 32-bit integer in host byte order into the
     /// internal buffer in network byte order.
     ///
     /// \param data The 32-bit integer to be written into the buffer.
-    void writeUint32(uint32_t data);
+    virtual void writeUint32(uint32_t data) = 0;
+
     /// \brief Copy an arbitrary length of data into the internal buffer
-    /// of the \c MessageRenderer.
+    /// of the renderer object.
     ///
     /// No conversion on the copied data is performed.
     ///
     /// \param data A pointer to the data to be copied into the internal buffer.
     /// \param len The length of the data in bytes.
-    void writeData(const void *data, size_t len);
-    //@}
-
-    ///
-    /// \name Rendering Methods
-    ///
-    //@{
+    virtual void writeData(const void *data, size_t len) = 0;
+
     /// \brief Write a \c Name object into the internal buffer in wire format,
     /// with or without name compression.
     ///
@@ -257,7 +248,50 @@
     ///
     /// \param name A \c Name object to be written.
     /// \param compress A boolean indicating whether to enable name compression.
-    void writeName(const Name& name, bool compress = true);
+    virtual void writeName(const Name& name, bool compress = true) = 0;
+    //@}
+};
+
+/// The \c MessageRenderer is a concrete derived class of
+/// \c AbstractMessageRenderer as a general purpose implementation of the
+/// renderer interfaces.
+///
+/// A \c MessageRenderer object is constructed with a \c OutputBuffer
+/// object, which is the buffer into which the rendered %data will be written.
+/// Normally the buffer is expected to be empty on construction, but it doesn't
+/// have to be so; the renderer object will start rendering from the
+/// end of the buffer at the time of construction.  However, if the
+/// pre-existing portion of the buffer contains DNS names, these names won't
+/// be considered for name compression.
+class MessageRenderer : public AbstractMessageRenderer {
+public:
+    using AbstractMessageRenderer::CASE_INSENSITIVE;
+    using AbstractMessageRenderer::CASE_SENSITIVE;
+
+    /// \brief Constructor from an output buffer.
+    ///
+    /// \param buffer An \c OutputBuffer object to which wire format data is
+    /// written.
+    MessageRenderer(OutputBuffer& buffer);
+
+    virtual ~MessageRenderer();
+    virtual const void* getData() const;
+    virtual size_t getLength() const;
+    virtual bool isTruncated() const;
+    virtual size_t getLengthLimit() const;
+    virtual CompressMode getCompressMode() const;
+    virtual void setTruncated();
+    virtual void setLengthLimit(size_t len);
+    virtual void setCompressMode(CompressMode mode);
+    virtual void skip(size_t len);
+    virtual void trim(size_t len);
+    virtual void clear();
+    virtual void writeUint8(uint8_t data);
+    virtual void writeUint16(uint16_t data);
+    virtual void writeUint16At(uint16_t data, size_t pos);
+    virtual void writeUint32(uint32_t data);
+    virtual void writeData(const void *data, size_t len);
+    virtual void writeName(const Name& name, bool compress = true);
 private:
     struct MessageRendererImpl;
     MessageRendererImpl* impl_;

Modified: branches/trac404/src/lib/dns/name.cc
==============================================================================
--- branches/trac404/src/lib/dns/name.cc (original)
+++ branches/trac404/src/lib/dns/name.cc Wed Nov  3 14:38:06 2010
@@ -29,7 +29,6 @@
 
 using namespace std;
 using isc::dns::NameComparisonResult;
-using isc::dns::MessageRenderer;
 
 namespace isc {
 namespace dns {
@@ -405,7 +404,7 @@
 }
 
 void
-Name::toWire(MessageRenderer& renderer) const {
+Name::toWire(AbstractMessageRenderer& renderer) const {
     renderer.writeName(*this);
 }
 

Modified: branches/trac404/src/lib/dns/name.h
==============================================================================
--- branches/trac404/src/lib/dns/name.h (original)
+++ branches/trac404/src/lib/dns/name.h Wed Nov  3 14:38:06 2010
@@ -28,7 +28,7 @@
 namespace dns {
 class InputBuffer;
 class OutputBuffer;
-class MessageRenderer;
+class AbstractMessageRenderer;
 
 ///
 /// \brief A standard DNS module exception that is thrown if the name parser
@@ -349,7 +349,7 @@
     ///
     /// \param renderer DNS message rendering context that encapsulates the
     /// output buffer and name compression information.
-    void toWire(MessageRenderer& renderer) const;
+    void toWire(AbstractMessageRenderer& renderer) const;
 
     /// \brief Render the <code>Name</code> in the wire format without
     /// compression.

Modified: branches/trac404/src/lib/dns/rdata.cc
==============================================================================
--- branches/trac404/src/lib/dns/rdata.cc (original)
+++ branches/trac404/src/lib/dns/rdata.cc Wed Nov  3 14:38:06 2010
@@ -230,7 +230,7 @@
 }
 
 void
-Generic::toWire(MessageRenderer& renderer) const {
+Generic::toWire(AbstractMessageRenderer& renderer) const {
     renderer.writeData(&impl_->data_[0], impl_->data_.size());
 }
 

Modified: branches/trac404/src/lib/dns/rdata.h
==============================================================================
--- branches/trac404/src/lib/dns/rdata.h (original)
+++ branches/trac404/src/lib/dns/rdata.h Wed Nov  3 14:38:06 2010
@@ -27,7 +27,7 @@
 namespace dns {
 class InputBuffer;
 class OutputBuffer;
-class MessageRenderer;
+class AbstractMessageRenderer;
 class RRType;
 class RRClass;
 class Name;
@@ -180,7 +180,7 @@
     ///
     /// \param renderer DNS message rendering context that encapsulates the
     /// output buffer in which the \c Rdata is to be stored.
-    virtual void toWire(MessageRenderer& renderer) const = 0;
+    virtual void toWire(AbstractMessageRenderer& renderer) const = 0;
     //@}
 
     ///
@@ -329,7 +329,7 @@
     ///
     /// \param renderer DNS message rendering context that encapsulates the
     /// output buffer in which the \c Generic object is to be stored.
-    virtual void toWire(MessageRenderer& renderer) const;
+    virtual void toWire(AbstractMessageRenderer& renderer) const;
     //@}
     ///
     /// \name Comparison method

Modified: branches/trac404/src/lib/dns/rdata/ch_3/a_1.cc
==============================================================================
--- branches/trac404/src/lib/dns/rdata/ch_3/a_1.cc (original)
+++ branches/trac404/src/lib/dns/rdata/ch_3/a_1.cc Wed Nov  3 14:38:06 2010
@@ -48,7 +48,7 @@
 }
 
 void
-A::toWire(MessageRenderer& renderer UNUSED_PARAM) const {
+A::toWire(AbstractMessageRenderer& renderer UNUSED_PARAM) const {
     // TBD
 }
 

Modified: branches/trac404/src/lib/dns/rdata/generic/cname_5.cc
==============================================================================
--- branches/trac404/src/lib/dns/rdata/generic/cname_5.cc (original)
+++ branches/trac404/src/lib/dns/rdata/generic/cname_5.cc Wed Nov  3 14:38:06 2010
@@ -54,7 +54,7 @@
 }
 
 void
-CNAME::toWire(MessageRenderer& renderer) const {
+CNAME::toWire(AbstractMessageRenderer& renderer) const {
     renderer.writeName(cname_);
 }
 

Modified: branches/trac404/src/lib/dns/rdata/generic/dname_39.cc
==============================================================================
--- branches/trac404/src/lib/dns/rdata/generic/dname_39.cc (original)
+++ branches/trac404/src/lib/dns/rdata/generic/dname_39.cc Wed Nov  3 14:38:06 2010
@@ -54,7 +54,7 @@
 }
 
 void
-DNAME::toWire(MessageRenderer& renderer) const {
+DNAME::toWire(AbstractMessageRenderer& renderer) const {
     renderer.writeName(dname_);
 }
 

Modified: branches/trac404/src/lib/dns/rdata/generic/dnskey_48.cc
==============================================================================
--- branches/trac404/src/lib/dns/rdata/generic/dnskey_48.cc (original)
+++ branches/trac404/src/lib/dns/rdata/generic/dnskey_48.cc Wed Nov  3 14:38:06 2010
@@ -136,7 +136,7 @@
 }
 
 void
-DNSKEY::toWire(MessageRenderer& renderer) const {
+DNSKEY::toWire(AbstractMessageRenderer& renderer) const {
     renderer.writeUint16(impl_->flags_);
     renderer.writeUint8(impl_->protocol_);
     renderer.writeUint8(impl_->algorithm_);

Modified: branches/trac404/src/lib/dns/rdata/generic/ds_43.cc
==============================================================================
--- branches/trac404/src/lib/dns/rdata/generic/ds_43.cc (original)
+++ branches/trac404/src/lib/dns/rdata/generic/ds_43.cc Wed Nov  3 14:38:06 2010
@@ -132,7 +132,7 @@
 }
 
 void
-DS::toWire(MessageRenderer& renderer) const {
+DS::toWire(AbstractMessageRenderer& renderer) const {
     renderer.writeUint16(impl_->tag_);
     renderer.writeUint8(impl_->algorithm_);
     renderer.writeUint8(impl_->digest_type_);

Modified: branches/trac404/src/lib/dns/rdata/generic/mx_15.cc
==============================================================================
--- branches/trac404/src/lib/dns/rdata/generic/mx_15.cc (original)
+++ branches/trac404/src/lib/dns/rdata/generic/mx_15.cc Wed Nov  3 14:38:06 2010
@@ -73,7 +73,7 @@
 }
 
 void
-MX::toWire(MessageRenderer& renderer) const {
+MX::toWire(AbstractMessageRenderer& renderer) const {
     renderer.writeUint16(preference_);
     renderer.writeName(mxname_);
 }

Modified: branches/trac404/src/lib/dns/rdata/generic/ns_2.cc
==============================================================================
--- branches/trac404/src/lib/dns/rdata/generic/ns_2.cc (original)
+++ branches/trac404/src/lib/dns/rdata/generic/ns_2.cc Wed Nov  3 14:38:06 2010
@@ -50,7 +50,7 @@
 }
 
 void
-NS::toWire(MessageRenderer& renderer) const {
+NS::toWire(AbstractMessageRenderer& renderer) const {
     renderer.writeName(nsname_);
 }
 

Modified: branches/trac404/src/lib/dns/rdata/generic/nsec3_50.cc
==============================================================================
--- branches/trac404/src/lib/dns/rdata/generic/nsec3_50.cc (original)
+++ branches/trac404/src/lib/dns/rdata/generic/nsec3_50.cc Wed Nov  3 14:38:06 2010
@@ -249,7 +249,7 @@
 }
 
 void
-NSEC3::toWire(MessageRenderer& renderer) const {
+NSEC3::toWire(AbstractMessageRenderer& renderer) const {
     renderer.writeUint8(impl_->hashalg_);
     renderer.writeUint8(impl_->flags_);
     renderer.writeUint16(impl_->iterations_);

Modified: branches/trac404/src/lib/dns/rdata/generic/nsec3param_51.cc
==============================================================================
--- branches/trac404/src/lib/dns/rdata/generic/nsec3param_51.cc (original)
+++ branches/trac404/src/lib/dns/rdata/generic/nsec3param_51.cc Wed Nov  3 14:38:06 2010
@@ -136,7 +136,7 @@
 }
 
 void
-NSEC3PARAM::toWire(MessageRenderer& renderer) const {
+NSEC3PARAM::toWire(AbstractMessageRenderer& renderer) const {
     renderer.writeUint8(impl_->hashalg_);
     renderer.writeUint8(impl_->flags_);
     renderer.writeUint16(impl_->iterations_);

Modified: branches/trac404/src/lib/dns/rdata/generic/nsec_47.cc
==============================================================================
--- branches/trac404/src/lib/dns/rdata/generic/nsec_47.cc (original)
+++ branches/trac404/src/lib/dns/rdata/generic/nsec_47.cc Wed Nov  3 14:38:06 2010
@@ -208,7 +208,7 @@
 }
 
 void
-NSEC::toWire(MessageRenderer& renderer) const {
+NSEC::toWire(AbstractMessageRenderer& renderer) const {
     impl_->nextname_.toWire(renderer);
     renderer.writeData(&impl_->typebits_[0], impl_->typebits_.size());
 }

Modified: branches/trac404/src/lib/dns/rdata/generic/opt_41.cc
==============================================================================
--- branches/trac404/src/lib/dns/rdata/generic/opt_41.cc (original)
+++ branches/trac404/src/lib/dns/rdata/generic/opt_41.cc Wed Nov  3 14:38:06 2010
@@ -58,7 +58,7 @@
 }
 
 void
-OPT::toWire(MessageRenderer& renderer UNUSED_PARAM) const {
+OPT::toWire(AbstractMessageRenderer& renderer UNUSED_PARAM) const {
     // nothing to do, as this simple version doesn't support any options.
 }
 

Modified: branches/trac404/src/lib/dns/rdata/generic/ptr_12.cc
==============================================================================
--- branches/trac404/src/lib/dns/rdata/generic/ptr_12.cc (original)
+++ branches/trac404/src/lib/dns/rdata/generic/ptr_12.cc Wed Nov  3 14:38:06 2010
@@ -55,7 +55,7 @@
 }
 
 void
-PTR::toWire(MessageRenderer& renderer) const {
+PTR::toWire(AbstractMessageRenderer& renderer) const {
     renderer.writeName(ptr_name_);
 }
 

Modified: branches/trac404/src/lib/dns/rdata/generic/rrsig_46.cc
==============================================================================
--- branches/trac404/src/lib/dns/rdata/generic/rrsig_46.cc (original)
+++ branches/trac404/src/lib/dns/rdata/generic/rrsig_46.cc Wed Nov  3 14:38:06 2010
@@ -187,7 +187,7 @@
 }
 
 void
-RRSIG::toWire(MessageRenderer& renderer) const {
+RRSIG::toWire(AbstractMessageRenderer& renderer) const {
     impl_->covered_.toWire(renderer);
     renderer.writeUint8(impl_->algorithm_);
     renderer.writeUint8(impl_->labels_);

Modified: branches/trac404/src/lib/dns/rdata/generic/soa_6.cc
==============================================================================
--- branches/trac404/src/lib/dns/rdata/generic/soa_6.cc (original)
+++ branches/trac404/src/lib/dns/rdata/generic/soa_6.cc Wed Nov  3 14:38:06 2010
@@ -101,7 +101,7 @@
 }
 
 void
-SOA::toWire(MessageRenderer& renderer) const {
+SOA::toWire(AbstractMessageRenderer& renderer) const {
     renderer.writeName(mname_);
     renderer.writeName(rname_);
     renderer.writeData(numdata_, sizeof(numdata_));

Modified: branches/trac404/src/lib/dns/rdata/generic/txt_16.cc
==============================================================================
--- branches/trac404/src/lib/dns/rdata/generic/txt_16.cc (original)
+++ branches/trac404/src/lib/dns/rdata/generic/txt_16.cc Wed Nov  3 14:38:06 2010
@@ -103,7 +103,7 @@
 }
 
 void
-TXT::toWire(MessageRenderer& renderer) const {
+TXT::toWire(AbstractMessageRenderer& renderer) const {
     for (vector<vector<uint8_t> >::const_iterator it = string_list_.begin();
          it != string_list_.end();
          ++it)

Modified: branches/trac404/src/lib/dns/rdata/hs_4/a_1.cc
==============================================================================
--- branches/trac404/src/lib/dns/rdata/hs_4/a_1.cc (original)
+++ branches/trac404/src/lib/dns/rdata/hs_4/a_1.cc Wed Nov  3 14:38:06 2010
@@ -48,7 +48,7 @@
 }
 
 void
-A::toWire(MessageRenderer& renderer UNUSED_PARAM) const {
+A::toWire(AbstractMessageRenderer& renderer UNUSED_PARAM) const {
     // TBD
 }
 

Modified: branches/trac404/src/lib/dns/rdata/in_1/a_1.cc
==============================================================================
--- branches/trac404/src/lib/dns/rdata/in_1/a_1.cc (original)
+++ branches/trac404/src/lib/dns/rdata/in_1/a_1.cc Wed Nov  3 14:38:06 2010
@@ -71,7 +71,7 @@
 }
 
 void
-A::toWire(MessageRenderer& renderer) const {
+A::toWire(AbstractMessageRenderer& renderer) const {
     renderer.writeData(&addr_, sizeof(addr_));
 }
 

Modified: branches/trac404/src/lib/dns/rdata/in_1/aaaa_28.cc
==============================================================================
--- branches/trac404/src/lib/dns/rdata/in_1/aaaa_28.cc (original)
+++ branches/trac404/src/lib/dns/rdata/in_1/aaaa_28.cc Wed Nov  3 14:38:06 2010
@@ -68,7 +68,7 @@
 }
 
 void
-AAAA::toWire(MessageRenderer& renderer) const {
+AAAA::toWire(AbstractMessageRenderer& renderer) const {
     renderer.writeData(&addr_, sizeof(addr_));
 }
 

Modified: branches/trac404/src/lib/dns/rdata/template.cc
==============================================================================
--- branches/trac404/src/lib/dns/rdata/template.cc (original)
+++ branches/trac404/src/lib/dns/rdata/template.cc Wed Nov  3 14:38:06 2010
@@ -52,7 +52,7 @@
 }
 
 void
-MyType::toWire(MessageRenderer& renderer) const {
+MyType::toWire(AbstractMessageRenderer& renderer) const {
 }
 
 int

Modified: branches/trac404/src/lib/dns/rrtype-placeholder.h
==============================================================================
--- branches/trac404/src/lib/dns/rrtype-placeholder.h (original)
+++ branches/trac404/src/lib/dns/rrtype-placeholder.h Wed Nov  3 14:38:06 2010
@@ -30,7 +30,7 @@
 // forward declarations
 class InputBuffer;
 class OutputBuffer;
-class MessageRenderer;
+class AbstractMessageRenderer;
 
 ///
 /// \brief A standard DNS module exception that is thrown if an RRType object
@@ -180,7 +180,7 @@
     /// standard exception will be thrown.
     ///
     /// \param buffer An output buffer to store the wire data.
-    void toWire(MessageRenderer& renderer) const;
+    void toWire(AbstractMessageRenderer& renderer) const;
     /// \brief Render the \c RRType in the wire format.
     ///
     /// This method renders the type code in network byte order into the

Modified: branches/trac404/src/lib/dns/rrtype.cc
==============================================================================
--- branches/trac404/src/lib/dns/rrtype.cc (original)
+++ branches/trac404/src/lib/dns/rrtype.cc Wed Nov  3 14:38:06 2010
@@ -55,7 +55,7 @@
 }
 
 void
-RRType::toWire(MessageRenderer& renderer) const {
+RRType::toWire(AbstractMessageRenderer& renderer) const {
     renderer.writeUint16(typecode_);
 }
 

Modified: branches/trac404/src/lib/dns/tests/Makefile.am
==============================================================================
--- branches/trac404/src/lib/dns/tests/Makefile.am (original)
+++ branches/trac404/src/lib/dns/tests/Makefile.am Wed Nov  3 14:38:06 2010
@@ -26,6 +26,7 @@
 run_unittests_SOURCES += opcode_unittest.cc
 run_unittests_SOURCES += rcode_unittest.cc
 run_unittests_SOURCES += rdata_unittest.h rdata_unittest.cc
+run_unittests_SOURCES += rdatafields_unittest.cc
 run_unittests_SOURCES += rdata_in_a_unittest.cc rdata_in_aaaa_unittest.cc
 run_unittests_SOURCES += rdata_ns_unittest.cc rdata_soa_unittest.cc
 run_unittests_SOURCES += rdata_txt_unittest.cc rdata_mx_unittest.cc

Modified: branches/trac404/src/lib/dns/tests/testdata/Makefile.am
==============================================================================
--- branches/trac404/src/lib/dns/tests/testdata/Makefile.am (original)
+++ branches/trac404/src/lib/dns/tests/testdata/Makefile.am Wed Nov  3 14:38:06 2010
@@ -4,6 +4,8 @@
 BUILT_SOURCES += edns_toWire4.wire
 BUILT_SOURCES += message_fromWire10.wire message_fromWire11.wire
 BUILT_SOURCES += name_toWire5.wire name_toWire6.wire
+BUILT_SOURCES += rdatafields1.wire rdatafields2.wire rdatafields3.wire
+BUILT_SOURCES += rdatafields4.wire rdatafields5.wire rdatafields6.wire
 BUILT_SOURCES += rdata_nsec_fromWire4.wire rdata_nsec_fromWire5.wire
 BUILT_SOURCES += rdata_nsec_fromWire6.wire rdata_nsec_fromWire7.wire
 BUILT_SOURCES += rdata_nsec_fromWire8.wire rdata_nsec_fromWire9.wire
@@ -32,6 +34,8 @@
 EXTRA_DIST += name_toWire1 name_toWire2 name_toWire3 name_toWire4
 EXTRA_DIST += name_toWire5.spec name_toWire6.spec
 EXTRA_DIST += question_fromWire question_toWire1 question_toWire2
+EXTRA_DIST += rdatafields1.spec rdatafields2.spec rdatafields3.spec
+EXTRA_DIST += rdatafields4.spec rdatafields5.spec rdatafields6.spec
 EXTRA_DIST += rdata_cname_fromWire rdata_dname_fromWire rdata_dnskey_fromWire
 EXTRA_DIST += rdata_ds_fromWire rdata_in_a_fromWire rdata_in_aaaa_fromWire
 EXTRA_DIST += rdata_mx_fromWire rdata_mx_toWire1 rdata_ns_fromWire




More information about the bind10-changes mailing list