]> granicus.if.org Git - pdns/commitdiff
also allow A record checks on pdns.nproxy
authorBert Hubert <bert.hubert@netherlabs.nl>
Wed, 5 Dec 2007 19:40:38 +0000 (19:40 +0000)
committerBert Hubert <bert.hubert@netherlabs.nl>
Wed, 5 Dec 2007 19:40:38 +0000 (19:40 +0000)
git-svn-id: svn://svn.powerdns.com/pdns/trunk/pdns@1111 d19b8d6e-7fed-0310-83ef-9ca221ded41b

pdns/nproxy.cc

index 351a88f29a53f2771ec4f91999d97b11de733868..ad249657c90d1e977302303e208c34e769158cff 100644 (file)
@@ -67,16 +67,23 @@ try
   nif.origID = mdp.d_header.id;
 
 
-  if(mdp.d_header.opcode == Opcode::Query && !mdp.d_header.qr && mdp.d_answers.empty() && mdp.d_qname == "pdns.nproxy." && mdp.d_qtype == QType::TXT) {
+  if(mdp.d_header.opcode == Opcode::Query && !mdp.d_header.qr && mdp.d_answers.empty() && mdp.d_qname == "pdns.nproxy." && 
+     (mdp.d_qtype == QType::TXT || mdp.d_qtype ==QType::A)) {
     vector<uint8_t> packet;
     DNSPacketWriter pw(packet, mdp.d_qname, mdp.d_qtype);
     pw.getHeader()->id = mdp.d_header.id;
     pw.getHeader()->rd = mdp.d_header.rd;
     pw.getHeader()->qr = 1;
 
-    pw.startRecord(mdp.d_qname, QType::TXT);
-    TXTRecordContent trc("\"OK\"");
-    trc.toPacket(pw);
+    pw.startRecord(mdp.d_qname, mdp.d_qtype);
+    if(mdp.d_qtype == QType::TXT) {
+      TXTRecordContent trc("\"OK\"");
+      trc.toPacket(pw);
+    }
+    else if(mdp.d_qtype == QType::A) {
+      ARecordContent arc("1.2.3.4");
+      arc.toPacket(pw);
+    }
     pw.commit();
     sendto(fd, &packet[0], packet.size(), 0, (struct sockaddr*)&nif.source, sizeof(nif.source));
     return;