Skip to content

Commit

Permalink
add simple stubquery tool for testing the stubresolver
Browse files Browse the repository at this point in the history
  • Loading branch information
Habbie committed May 13, 2016
1 parent 676ddce commit 6ee22c5
Show file tree
Hide file tree
Showing 3 changed files with 95 additions and 0 deletions.
1 change: 1 addition & 0 deletions pdns/.gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -59,3 +59,4 @@ effective_tld_names.dat
/dnsmessage.pb.h
/pdns.service
/pdns.conf-dist
/stubquery
26 changes: 26 additions & 0 deletions pdns/Makefile.am
Original file line number Diff line number Diff line change
Expand Up @@ -90,6 +90,7 @@ bin_PROGRAMS += \
nproxy \
nsec3dig \
saxfr \
stubquery \
ixplore \
sdig

Expand Down Expand Up @@ -117,6 +118,7 @@ EXTRA_PROGRAMS = \
nproxy \
nsec3dig \
saxfr \
stubquery \
sdig \
speedtest \
testrunner \
Expand Down Expand Up @@ -493,6 +495,30 @@ kvresp_SOURCES = \
unix_utility.cc \
qtype.cc

stubquery_SOURCES = \
arguments.cc arguments.hh \
base32.cc \
base64.cc \
dns_random.cc \
dnslabeltext.cc \
dnsname.cc \
dnsparser.cc \
dnsrecords.cc \
dnswriter.cc \
logger.cc \
misc.cc \
nsecrecords.cc \
qtype.cc \
rcpgenerator.cc \
sillyrecords.cc \
statbag.cc \
stubresolver.cc stubresolver.hh \
stubquery.cc \
unix_utility.cc

stubquery_LDADD = $(OPENSSL_LIBS)
stubquery_LDFLAGS = $(AM_LDFLAGS) $(OPENSSL_LDFLAGS)

saxfr_SOURCES = \
base32.cc \
base64.cc base64.hh \
Expand Down
68 changes: 68 additions & 0 deletions pdns/stubquery.cc
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
#ifdef HAVE_CONFIG_H
#include "config.h"
#endif
#include "arguments.hh"
#include "dnsrecords.hh"
#include "dns_random.hh"
#include "stubresolver.hh"
#include "statbag.hh"

StatBag S;

ArgvMap &arg()
{
static ArgvMap theArg;
return theArg;
}

void usage() {
cerr<<"stubquery"<<endl;
cerr<<"Syntax: stubquery QUESTION [QUESTION-TYPE]"<<endl;
}

int main(int argc, char** argv)
try
{
DNSName qname;
QType qtype;

for(int i=1; i<argc; i++) {
if ((string) argv[i] == "--help") {
usage();
exit(EXIT_SUCCESS);
}

if ((string) argv[i] == "--version") {
cerr<<"stubquery "<<VERSION<<endl;
exit(EXIT_SUCCESS);
}
}

if(argc < 2) {
usage();
exit(EXIT_FAILURE);
}

::arg().set("recursor","If recursion is desired, IP address of a recursing nameserver")="no";

reportAllTypes();
dns_random_init("0123456789abcdef");
stubParseResolveConf();

vector<DNSResourceRecord> ret;

int res=stubDoResolve(argv[1], DNSRecordContent::TypeToNumber(argv[2]), ret);

cout<<"res: "<<res<<endl;
for(const auto& r : ret) {
cout<<r.getZoneRepresentation()<<endl;
}
}
catch(std::exception &e)
{
cerr<<"Fatal: "<<e.what()<<endl;
}
catch(PDNSException &e)
{
cerr<<"Fatal: "<<e.reason<<endl;
}

0 comments on commit 6ee22c5

Please sign in to comment.