BIND 10 trac1600, updated. d5ec40dace9fddaaec9873cfca2d670e8d35650a [1600] Add reused MessageRenderer, and make some clean up.
BIND 10 source code commits
bind10-changes at lists.isc.org
Tue Mar 6 08:30:48 UTC 2012
The branch, trac1600 has been updated
via d5ec40dace9fddaaec9873cfca2d670e8d35650a (commit)
via 56824afc873d66a300f2dbde46e906c163e2d492 (commit)
from 95af6c2e54fb45fa5af1a2d3650376ccadd32c7b (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 d5ec40dace9fddaaec9873cfca2d670e8d35650a
Author: Xie Jiagui <xiejiagui at cnnic.cn>
Date: Tue Mar 6 16:27:23 2012 +0800
[1600] Add reused MessageRenderer,and make some clean up.
commit 56824afc873d66a300f2dbde46e906c163e2d492
Author: Xie Jiagui <xiejiagui at cnnic.cn>
Date: Tue Mar 6 10:00:38 2012 +0800
[1600] Change 'if else' to 'swith'.
-----------------------------------------------------------------------
Summary of changes:
src/bin/auth/auth_srv.cc | 26 +++++++-------
src/bin/auth/tests/query_unittest.cc | 1 -
src/lib/asiodns/dns_service.cc | 66 ++++++++++++++++++---------------
src/lib/asiodns/dns_service.h | 4 +-
4 files changed, 51 insertions(+), 46 deletions(-)
-----------------------------------------------------------------------
diff --git a/src/bin/auth/auth_srv.cc b/src/bin/auth/auth_srv.cc
index b533b8f..73f5592 100644
--- a/src/bin/auth/auth_srv.cc
+++ b/src/bin/auth/auth_srv.cc
@@ -99,6 +99,8 @@ public:
IOService io_service_;
+ MessageRenderer renderer_;
+
/// Currently non-configurable, but will be.
static const uint16_t DEFAULT_LOCAL_UDPSIZE = 4096;
@@ -306,7 +308,7 @@ makeErrorMessage(MessagePtr message, OutputBufferPtr buffer,
}
for_each(questions.begin(), questions.end(), QuestionInserter(message));
message->setRcode(rcode);
-
+
MessageRenderer renderer;
renderer.setBuffer(buffer.get());
if (tsig_context.get() != NULL) {
@@ -556,19 +558,18 @@ AuthSrvImpl::processNormalQuery(const IOMessage& io_message, MessagePtr message,
return (true);
}
- MessageRenderer renderer;
- renderer.setBuffer(buffer.get());
+ renderer_.setBuffer(buffer.get());
const bool udp_buffer =
(io_message.getSocket().getProtocol() == IPPROTO_UDP);
- renderer.setLengthLimit(udp_buffer ? remote_bufsize : 65535);
+ renderer_.setLengthLimit(udp_buffer ? remote_bufsize : 65535);
if (tsig_context.get() != NULL) {
- message->toWire(renderer, *tsig_context);
+ message->toWire(renderer_, *tsig_context);
} else {
- message->toWire(renderer);
+ message->toWire(renderer_);
}
- renderer.setBuffer(NULL);
+ renderer_.setBuffer(NULL);
LOG_DEBUG(auth_logger, DBG_AUTH_MESSAGES, AUTH_SEND_NORMAL_RESPONSE)
- .arg(renderer.getLength()).arg(message->toText());
+ .arg(renderer_.getLength()).arg(message->toText());
return (true);
}
@@ -687,14 +688,13 @@ AuthSrvImpl::processNotify(const IOMessage& io_message, MessagePtr message,
message->setHeaderFlag(Message::HEADERFLAG_AA);
message->setRcode(Rcode::NOERROR());
- MessageRenderer renderer;
- renderer.setBuffer(buffer.get());
+ renderer_.setBuffer(buffer.get());
if (tsig_context.get() != NULL) {
- message->toWire(renderer, *tsig_context);
+ message->toWire(renderer_, *tsig_context);
} else {
- message->toWire(renderer);
+ message->toWire(renderer_);
}
- renderer.setBuffer(NULL);
+ renderer_.setBuffer(NULL);
return (true);
}
diff --git a/src/bin/auth/tests/query_unittest.cc b/src/bin/auth/tests/query_unittest.cc
index 0c413a1..89f7d04 100644
--- a/src/bin/auth/tests/query_unittest.cc
+++ b/src/bin/auth/tests/query_unittest.cc
@@ -1117,7 +1117,6 @@ TEST_F(QueryTest, secureUnsignedDelegationWithNSEC3OptOut) {
// proof (and their RRSIGs). The closest encloser is the apex (origin),
// and with our faked hash the covering NSEC3 for the next closer
// (= child zone name) is that for www.example.com.
- cout << response << endl;
responseCheck(response, Rcode::NOERROR(), 0, 0, 5, 0,
NULL,
(string(unsigned_delegation_txt) +
diff --git a/src/lib/asiodns/dns_service.cc b/src/lib/asiodns/dns_service.cc
index 3fcfce3..0e68d7b 100644
--- a/src/lib/asiodns/dns_service.cc
+++ b/src/lib/asiodns/dns_service.cc
@@ -96,20 +96,26 @@ public:
(*tcpServer)();
servers_.push_back(tcpServer);
dlog(std::string("Initialize UDP server at ") + address.to_string() + ":" + boost::lexical_cast<std::string>(port));
-
- if(1 == param_flags) {
- SyncUDPServerPtr syncUdpServer(new SyncUDPServer(io_service_.get_io_service(),
- address, port, checkin_, lookup_, answer_));
- (*syncUdpServer)();
- servers_.push_back(syncUdpServer);
- } else if(2 == param_flags) {
- UDPServerPtr udpServer(new UDPServer(io_service_.get_io_service(),
- address, port, checkin_, lookup_, answer_));
- (*udpServer)();
- servers_.push_back(udpServer);
- } else {
- // If nerther asyn UDPServer nor sync UDNServer, it throws.
- isc_throw(IOError, "Bad UDPServer Version!");
+ // Use param_flags to generate diff UDPServers.
+ switch(param_flags) {
+ case SYNC_: {
+ SyncUDPServerPtr syncUdpServer(new SyncUDPServer(io_service_.get_io_service(),
+ address, port, checkin_, lookup_, answer_));
+ (*syncUdpServer)();
+ servers_.push_back(syncUdpServer);
+ break;
+ }
+ case ASYNC_: {
+ UDPServerPtr udpServer(new UDPServer(io_service_.get_io_service(),
+ address, port, checkin_, lookup_, answer_));
+ (*udpServer)();
+ servers_.push_back(udpServer);
+ break;
+ }
+ default:
+ // If nerther asyn UDPServer nor sync UDNServer, it throws.
+ isc_throw(IOError, "Bad UDPServer Version!");
+ break;
}
}
catch (const asio::system_error& err) {
@@ -148,7 +154,7 @@ DNSServiceImpl::DNSServiceImpl(IOService& io_service,
SimpleCallback* checkin,
DNSLookup* lookup,
DNSAnswer* answer,
- const UDPVersion para_flags):
+ const UDPVersion param_flags):
io_service_(io_service),
checkin_(checkin),
lookup_(lookup),
@@ -156,10 +162,10 @@ DNSServiceImpl::DNSServiceImpl(IOService& io_service,
{
if (v4addr) {
- addServer(port, *v4addr,para_flags);
+ addServer(port, *v4addr,param_flags);
}
if (v6addr) {
- addServer(port, *v6addr,para_flags);
+ addServer(port, *v6addr,param_flags);
}
}
@@ -168,11 +174,11 @@ DNSService::DNSService(IOService& io_service,
SimpleCallback* checkin,
DNSLookup* lookup,
DNSAnswer* answer,
- const UDPVersion para_flags) :
+ const UDPVersion param_flags) :
impl_(new DNSServiceImpl(io_service, port, NULL, NULL, checkin, lookup,
- answer,para_flags)), io_service_(io_service)
+ answer,param_flags)), io_service_(io_service)
{
- addServer(port, &address,para_flags);
+ addServer(port, &address,param_flags);
}
DNSService::DNSService(IOService& io_service,
@@ -181,7 +187,7 @@ DNSService::DNSService(IOService& io_service,
SimpleCallback* checkin,
DNSLookup* lookup,
DNSAnswer* answer,
- const UDPVersion para_flags) :
+ const UDPVersion param_flags) :
impl_(NULL), io_service_(io_service)
{
const asio::ip::address v4addr_any =
@@ -190,13 +196,13 @@ DNSService::DNSService(IOService& io_service,
const asio::ip::address v6addr_any =
asio::ip::address(asio::ip::address_v6::any());
const asio::ip::address* const v6addrp = use_ipv6 ? &v6addr_any : NULL;
- impl_ = new DNSServiceImpl(io_service, port, v4addrp, v6addrp, checkin, lookup, answer,para_flags);
+ impl_ = new DNSServiceImpl(io_service, port, v4addrp, v6addrp, checkin, lookup, answer,param_flags);
}
DNSService::DNSService(IOService& io_service, SimpleCallback* checkin,
- DNSLookup* lookup, DNSAnswer *answer,const UDPVersion para_flags) :
+ DNSLookup* lookup, DNSAnswer *answer,const UDPVersion param_flags) :
impl_(new DNSServiceImpl(io_service, *"0", NULL, NULL, checkin, lookup,
- answer,para_flags)), io_service_(io_service)
+ answer,param_flags)), io_service_(io_service)
{
}
@@ -205,13 +211,13 @@ DNSService::~DNSService() {
}
void
-DNSService::addServer(const char& port, const std::string& address,UDPVersion para_flags) {
- impl_->addServer(port, convertAddr(address),para_flags);
+DNSService::addServer(const char& port, const std::string& address,UDPVersion param_flags) {
+ impl_->addServer(port, convertAddr(address),param_flags);
}
void
-DNSService::addServer(uint16_t port, const std::string& address,UDPVersion para_flags) {
- impl_->addServer(port, convertAddr(address),para_flags);
+DNSService::addServer(uint16_t port, const std::string& address,UDPVersion param_flags) {
+ impl_->addServer(port, convertAddr(address),param_flags);
}
void DNSService::addServerTCPFromFD(int fd, int af) {
@@ -219,9 +225,9 @@ void DNSService::addServerTCPFromFD(int fd, int af) {
}
void DNSService::addServerUDPFromFD(int fd, int af,const UDPVersion param_flags) {
- if(1 == param_flags) {
+ if(SYNC_ == param_flags) {
impl_->addServerFromFD<DNSServiceImpl::SyncUDPServerPtr, SyncUDPServer>(fd, af);
- } else if(2 == param_flags) {
+ } else if(ASYNC_ == param_flags) {
impl_->addServerFromFD<DNSServiceImpl::UDPServerPtr, UDPServer>(fd, af);
}
}
diff --git a/src/lib/asiodns/dns_service.h b/src/lib/asiodns/dns_service.h
index efb68ef..66e0a11 100644
--- a/src/lib/asiodns/dns_service.h
+++ b/src/lib/asiodns/dns_service.h
@@ -32,8 +32,8 @@ class DNSServiceImpl;
///
/// Note: the codes only used in how to create the UDPServers.
enum UDPVersion {
- SYNC_=1, ///< used synchronous UDPServer
- ASYNC_=2 ///< used asynchronous UDPServer
+ SYNC_ = 1, ///< used synchronous UDPServer
+ ASYNC_ = 2 ///< used asynchronous UDPServer
};
/// \brief Handle DNS Queries
More information about the bind10-changes
mailing list