]> granicus.if.org Git - pdns/commitdiff
add support to sdig
authorPeter van Dijk <peter.van.dijk@powerdns.com>
Tue, 25 Jul 2017 14:29:10 +0000 (16:29 +0200)
committerPieter Lexis <pieter.lexis@powerdns.com>
Mon, 22 Jan 2018 21:57:35 +0000 (22:57 +0100)
pdns/sdig.cc

index cd7a64d326bd867d9fed75bae30467e974b7836c..c743427b8ad3e45325abd9d4f01b01b7fdcdb277 100644 (file)
@@ -24,7 +24,7 @@ string ttl(uint32_t ttl)
 
 void usage() {
   cerr<<"sdig"<<endl;
-  cerr<<"Syntax: sdig IP-ADDRESS PORT QUESTION QUESTION-TYPE [dnssec] [recurse] [showflags] [hidesoadetails] [hidettl] [tcp] [ednssubnet SUBNET/MASK]"<<endl;
+  cerr<<"Syntax: sdig IP-ADDRESS PORT QUESTION QUESTION-TYPE [dnssec] [recurse] [showflags] [hidesoadetails] [hidettl] [tcp] [ednssubnet SUBNET/MASK] [xpf XPFDATA]"<<endl;
 }
 
 int main(int argc, char** argv)
@@ -36,7 +36,7 @@ try
   bool showflags=false;
   bool hidesoadetails=false;
   boost::optional<Netmask> ednsnm;
-
+  std::shared_ptr<DNSRecordContent> xpf;
 
   for(int i=1; i<argc; i++) {
     if ((string) argv[i] == "--help") {
@@ -79,6 +79,8 @@ try
         }
         ednsnm=Netmask(argv[i]);
       }
+      if (strcmp(argv[i], "xpf") == 0)
+        xpf=DNSRecordContent::mastermake(QType::XPF, 1, argv[++i]);
     }
   }
 
@@ -105,6 +107,13 @@ try
     pw.commit();
   }
 
+  if(xpf.get())
+  {
+    pw.startRecord(DNSName("."), QType::XPF, 0, 1, DNSResourceRecord::ADDITIONAL);
+    xpf->toPacket(pw);
+    pw.commit();
+  }
+
   if(recurse)
   {
     pw.getHeader()->rd=true;