[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