[svn] commit: r1341 - /trunk/src/bin/auth/auth_srv.cc
BIND 10 source code commits
bind10-changes at lists.isc.org
Thu Mar 11 23:40:04 UTC 2010
Author: jinmei
Date: Thu Mar 11 23:40:04 2010
New Revision: 1341
Log:
make sure error responses are built from the scratch
Modified:
trunk/src/bin/auth/auth_srv.cc
Modified: trunk/src/bin/auth/auth_srv.cc
==============================================================================
--- trunk/src/bin/auth/auth_srv.cc (original)
+++ trunk/src/bin/auth/auth_srv.cc Thu Mar 11 23:40:04 2010
@@ -93,14 +93,32 @@
delete impl_;
}
-static void
+namespace {
+void
makeErrorMessage(Message& message, MessageRenderer& renderer,
const Rcode& rcode)
{
- message.makeResponse();
+ // extract the parameters that should be kept.
+ // XXX: with the current implementation, it's not easy to set EDNS0
+ // depending on whether the query had it. So we'll simply omit it.
+ const qid_t qid = message.getQid();
+ const bool rd = message.getHeaderFlag(MessageFlag::RD());
+ const bool cd = message.getHeaderFlag(MessageFlag::CD());
+ const Opcode& opcode = message.getOpcode();
+
+ message.clear(Message::RENDER);
+ message.setQid(qid);
+ message.setOpcode(opcode);
+ message.setHeaderFlag(MessageFlag::QR());
+ if (rd) {
+ message.setHeaderFlag(MessageFlag::RD());
+ }
+ if (cd) {
+ message.setHeaderFlag(MessageFlag::CD());
+ }
message.setRcode(rcode);
- message.setUDPSize(4096); // XXX: hardcoding
message.toWire(renderer);
+}
}
int
More information about the bind10-changes
mailing list