]> granicus.if.org Git - pdns/commitdiff
pipe: Correctly initialize the abi-version var
authorPieter Lexis <pieter.lexis@powerdns.com>
Mon, 23 Nov 2015 11:06:49 +0000 (12:06 +0100)
committerPieter Lexis <pieter.lexis@powerdns.com>
Mon, 23 Nov 2015 14:48:47 +0000 (15:48 +0100)
Closes #2921 (thanks @paddg)!

modules/pipebackend/pipebackend.cc
modules/pipebackend/pipebackend.hh
pdns/pdnssec.cc

index e08a4592bd1b41ec009eb8b926774b560d1019f3..6405e9cb7c3888d2c0dadf12e10815e287698d97 100644 (file)
 
 static const char *kBackendId = "[PIPEBackend]";
 
-CoWrapper::CoWrapper(const string &command, int timeout)
+CoWrapper::CoWrapper(const string &command, int timeout, int abiVersion)
 {
    d_cp=0;
    d_command=command;
    d_timeout=timeout;
-   d_abiVersion = ::arg().asNum("pipebackend-abi-version");
+   d_abiVersion = abiVersion;
    launch(); // let exceptions fall through - if initial launch fails, we want to die
    // I think
 }
@@ -96,7 +96,7 @@ PipeBackend::PipeBackend(const string &suffix)
    signal(SIGCHLD, SIG_IGN);
    setArgPrefix("pipe"+suffix);
    try {
-     d_coproc=shared_ptr<CoWrapper>(new CoWrapper(getArg("command"), getArgAsNum("timeout")));
+     d_coproc=shared_ptr<CoWrapper>(new CoWrapper(getArg("command"), getArgAsNum("timeout"), getArgAsNum("abi-version")));
      d_regex=getArg("regex").empty() ? 0 : new Regex(getArg("regex"));
      d_regexstr=getArg("regex");
      d_abiVersion = getArgAsNum("abi-version");
@@ -128,11 +128,11 @@ void PipeBackend::lookup(const QType& qtype,const DNSName& qname, DNSPacket *pkt
             realRemote = pkt_p->getRealRemote();
             remoteIP = pkt_p->getRemote();
          }
-         // pipebackend-abi-version = 1
+         // abi-version = 1
          // type    qname           qclass  qtype   id      remote-ip-address
          query<<"Q\t"<<qname.toStringNoDot()<<"\tIN\t"<<qtype.getName()<<"\t"<<zoneId<<"\t"<<remoteIP;
 
-         // add the local-ip-address if pipebackend-abi-version is set to 2
+         // add the local-ip-address if abi-version is set to 2
          if (d_abiVersion >= 2)
             query<<"\t"<<localIP;
          if(d_abiVersion >= 3)
index 962fc4660c0bce47121337578402aa55cfb76a73..f3053b8c81e89a94176a98f2ba1bd04a082d51c1 100644 (file)
@@ -20,7 +20,7 @@
 class CoWrapper
 {
 public:
-  CoWrapper(const string &command, int timeout=0);
+  CoWrapper(const string &command, int timeout, int abiVersion);
   ~CoWrapper();
   void send(const string &line);
   void receive(string &line);
index bbd22c6683b55b34599a3fc9d10845f99f80593b..a4c7748dc2f1b79febdd3a5842098fcd8cc5c329 100644 (file)
@@ -117,7 +117,6 @@ static int shorthand2algorithm(const string &algorithm)
 void loadMainConfig(const std::string& configdir)
 {
   ::arg().set("config-dir","Location of configuration directory (pdns.conf)")=configdir;
-  ::arg().set("pipebackend-abi-version","Version of the pipe backend ABI")="1";
   ::arg().set("default-ttl","Seconds a result is valid if not set otherwise")="3600";
   ::arg().set("launch","Which backends to launch");
   ::arg().set("dnssec","if we should do dnssec")="true";