#include <dns/edns.h>
#include <dns/exceptions.h>
-#include <dns/messagerendererhandle.h>
+#include <dns/messagerenderer.h>
#include <dns/name.h>
#include <dns/question.h>
#include <dns/opcode.h>
IOService io_service_;
- MessageRendererHandle renderer_handle_;
+ MessageRenderer renderer_;
/// Currently non-configurable, but will be.
static const uint16_t DEFAULT_LOCAL_UDPSIZE = 4096;
return (true);
}
- renderer_handle_.setBuffer(buffer.get());
+ renderer_.clear();
+ renderer_.setBuffer(buffer.get());
const bool udp_buffer =
(io_message.getSocket().getProtocol() == IPPROTO_UDP);
- renderer_handle_.setLengthLimit(udp_buffer ? remote_bufsize : 65535);
+ renderer_.setLengthLimit(udp_buffer ? remote_bufsize : 65535);
if (tsig_context.get() != NULL) {
- message->toWire(renderer_handle_.getRenderer(), *tsig_context);
+ message->toWire(renderer_, *tsig_context);
} else {
- message->toWire(renderer_handle_.getRenderer());
+ message->toWire(renderer_);
}
- renderer_handle_.setBuffer(NULL);
LOG_DEBUG(auth_logger, DBG_AUTH_MESSAGES, AUTH_SEND_NORMAL_RESPONSE)
- .arg(renderer_handle_.getLength()).arg(message->toText());
+ .arg(renderer_.getLength()).arg(message->toText());
return (true);
}
message->setHeaderFlag(Message::HEADERFLAG_AA);
message->setRcode(Rcode::NOERROR());
- renderer_handle_.setBuffer(buffer.get());
+ renderer_.clear();
+ renderer_.setBuffer(buffer.get());
if (tsig_context.get() != NULL) {
- message->toWire(renderer_handle_.getRenderer(), *tsig_context);
+ message->toWire(renderer_, *tsig_context);
} else {
- message->toWire(renderer_handle_.getRenderer());
+ message->toWire(renderer_);
}
- renderer_handle_.setBuffer(NULL);
return (true);
}
+++ /dev/null
-// Copyright (C) 2009 Internet Systems Consortium, Inc. ("ISC")
-//
-// Permission to use, copy, modify, and/or distribute this software for any
-// purpose with or without fee is hereby granted, provided that the above
-// copyright notice and this permission notice appear in all copies.
-//
-// THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH
-// REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
-// AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT,
-// INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
-// LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
-// OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
-// PERFORMANCE OF THIS SOFTWARE.
-
-#ifndef __MESSAGERENDERERHANDLE_H
-#define __MESSAGERENDERERHANDLE_H 1
-
-#include <dns/messagerenderer.h>
-
-namespace isc {
-
-namespace dns {
-
-/// The \c MessageRendererHandle is a handle class for
-/// \c MessageRendere.
-///
-/// A \c MessageRendererHandle object is constructed with a \c MessageRenderer
-/// object.
-class MessageRendererHandle {
- ///
- /// \name Constructors, Assignment Operator and Destructor.
- ///
- /// Note: The copy constructor and the assignment operator are
- /// intentionally defined as private.
- //@{
-private:
- MessageRendererHandle(const MessageRendererHandle& renderer);
- MessageRendererHandle& operator=(const MessageRendererHandle& renderer);
-public:
- /// The constructor.
- ///
- /// \param use_cache Whether to enable hot spot cache for lookup results.
- /// \param xfrout_client Communication interface with a separate xfrout
- /// process. It's normally a reference to an xfr::XfroutClient object,
- /// but can refer to a local mock object for te
- explicit MessageRendererHandle():renderer_(NULL){
- renderer_ = new MessageRenderer();
- }
- ~MessageRendererHandle() {
- if(NULL != renderer_) {
- delete renderer_;
- renderer_ = NULL;
- }
- }
- //@}
-public:
- /// \brief Return the length of data written in the internal buffer.
- size_t getLength() const {
- return (renderer_->getLength());
- }
- /// \brief Set the buffer.
- void setBuffer(isc::util::OutputBuffer* buffer) {
- renderer_->setBuffer(buffer);
- }
- MessageRenderer& getRenderer() const {
- return *renderer_;
- }
- /// \brief Set the maximum length of rendered data that can fit in the
- /// corresponding DNS message without truncation.
- ///
- /// \param len The maximum length in bytes.
- void setLengthLimit(size_t len) {
- renderer_->setLengthLimit(len);
- }
-private:
- MessageRenderer * renderer_;
-};
-}
-}
-#endif // __MESSAGERENDERERHANDLE_H
-
-// Local Variables:
-// mode: c++
-// End: