]> git.ipfire.org Git - thirdparty/pdns.git/commitdiff
send empty SERVFAIL after a backend throws a DBException 1725/head
authorKees Monshouwer <mind04@monshouwer.org>
Tue, 23 Sep 2014 20:44:23 +0000 (22:44 +0200)
committermind04 <mind04@monshouwer.org>
Tue, 23 Sep 2014 20:46:53 +0000 (22:46 +0200)
pdns/packethandler.cc

index 5f7046d71ff951e2d2ae753e5300f3339cae8a9c..e687bc8bb0014e74e90dc5e0ad89a0e5ca9701c2 100644 (file)
@@ -1317,6 +1317,8 @@ DNSPacket *PacketHandler::questionOrRecurse(DNSPacket *p, bool *shouldRecurse)
   }
   catch(DBException &e) {
     L<<Logger::Error<<"Backend reported condition which prevented lookup ("+e.reason+") sending out servfail"<<endl;
+    delete r;
+    r=p->replyPacket(); // generate an empty reply packet
     r->setRcode(RCode::ServFail);
     S.inc("servfail-packets");
     S.ringAccount("servfail-queries",p->qdomain);
@@ -1328,7 +1330,7 @@ DNSPacket *PacketHandler::questionOrRecurse(DNSPacket *p, bool *shouldRecurse)
   catch(std::exception &e) {
     L<<Logger::Error<<"Exception building answer packet ("<<e.what()<<") sending out servfail"<<endl;
     delete r;
-    r=p->replyPacket();  // generate an empty reply packet    
+    r=p->replyPacket(); // generate an empty reply packet
     r->setRcode(RCode::ServFail);
     S.inc("servfail-packets");
     S.ringAccount("servfail-queries",p->qdomain);