]> git.ipfire.org Git - thirdparty/pdns.git/commitdiff
Remove Lua Policy Engine calls from code
authorAki Tuomi <cmouse@cmouse.fi>
Tue, 27 Jun 2017 04:42:46 +0000 (07:42 +0300)
committerAki Tuomi <cmouse@cmouse.fi>
Fri, 7 Jul 2017 07:23:34 +0000 (10:23 +0300)
pdns/common_startup.cc
pdns/common_startup.hh
pdns/dnspacket.cc
pdns/dynhandler.cc
pdns/dynhandler.hh
pdns/packethandler.cc
pdns/receiver.cc
pdns/tcpreceiver.cc

index f3e690da102556953e29f5702853773b3ec7f627..64f04de14786b0d98445cb4d4badf701012c827c 100644 (file)
@@ -49,7 +49,6 @@ int avg_latency;
 TCPNameserver *TN;
 static vector<DNSDistributor*> g_distributors;
 vector<std::shared_ptr<UDPNameserver> > g_udpReceivers;
-AuthLua *LPE;
 
 ArgvMap &arg()
 {
@@ -181,7 +180,6 @@ void declareArguments()
 
   ::arg().set("lua-prequery-script", "Lua script with prequery handler (DO NOT USE)")="";
   ::arg().set("lua-dnsupdate-policy-script", "Lua script with DNS update policy handler")="";
-  ::arg().set("experimental-lua-policy-script", "Lua script for the policy engine")="";
 
   ::arg().setSwitch("traceback-handler","Enable the traceback handler (Linux only)")="yes";
   ::arg().setSwitch("direct-dnskey","Fetch DNSKEY RRs from backend during DNSKEY synthesis")="no";
@@ -420,22 +418,9 @@ try
         cached.d.rd=P->d.rd; // copy in recursion desired bit
         cached.d.id=P->d.id;
         cached.commitD(); // commit d to the packet                        inlined
-
-        int policyres = PolicyDecision::PASS;
-        if(LPE)
-        {
-          // FIXME: cached does not have qdomainwild/qdomainzone because packetcache entries
-          // go through tostring/noparse
-          policyres = LPE->police(&question, &cached);
-        }
-
-        if (policyres == PolicyDecision::PASS) {
-          NS->send(&cached);   // answer it then                              inlined
-          diff=P->d_dt.udiff();
-          avg_latency=(int)(0.999*avg_latency+0.001*diff); // 'EWMA'
-        }
-        // FIXME implement truncate
-
+        NS->send(&cached); // answer it then                              inlined
+        diff=P->d_dt.udiff();
+        avg_latency=(int)(0.999*avg_latency+0.001*diff); // 'EWMA'
         continue;
       }
     }
@@ -550,11 +535,6 @@ void mainthread()
   if(::arg().mustDo("slave") || ::arg().mustDo("master") || !::arg()["forward-notify"].empty())
     Communicator.go(); 
 
-  if(!::arg()["experimental-lua-policy-script"].empty()){
-    LPE=new AuthLua(::arg()["experimental-lua-policy-script"]);
-    L<<Logger::Warning<<"Loaded Lua policy script "<<::arg()["experimental-lua-policy-script"]<<endl;
-  }
-
   if(TN)
     TN->go(); // tcp nameserver launch
 
index 2bcff68a5aadf3ea512c0e87e9e91dd3c9f06e67..25e98a49375516a659fed21556f712244f66a23c 100644 (file)
@@ -46,7 +46,6 @@ extern std::shared_ptr<UDPNameserver> N;
 extern vector<std::shared_ptr<UDPNameserver> > g_udpReceivers;
 extern int avg_latency;
 extern TCPNameserver *TN;
-extern AuthLua *LPE;
 extern ArgvMap & arg( void );
 extern void declareArguments();
 extern void declareStats();
index 6af20a75e61637e98825cc875dd6df44c9f94efb..e40f88114fab580c7007cb469eef5e9ec50f500a 100644 (file)
@@ -361,7 +361,7 @@ void DNSPacket::wrapup()
   
   d_rawpacket.assign((char*)&packet[0], packet.size()); // XXX we could do this natively on a vector..
 
-  // copy RR counts so LPE can read them
+  // copy RR counts so they can be read later
   d.qdcount = pw.getHeader()->qdcount;
   d.ancount = pw.getHeader()->ancount;
   d.nscount = pw.getHeader()->nscount;
index 1f465054e2287283897de440294b58eebad59898..3d681cd2a09da2846d2116af874a2cc49f8b8c45 100644 (file)
@@ -380,16 +380,6 @@ string DLListZones(const vector<string>&parts, Utility::pid_t ppid)
   return ret.str();
 }
 
-string DLPolicy(const vector<string>&parts, Utility::pid_t ppid)
-{
-  if(LPE) {
-    return LPE->policycmd(parts);
-  }
-  else {
-    return "no policy script loaded";
-  }
-}
-
 #ifdef HAVE_P11KIT1
 extern bool PKCS11ModuleSlotLogin(const std::string& module, const string& tokenId, const std::string& pin);
 #endif
index 432d7290787152656476dcc798fb3f64c7399ea9..6a7ab6e694e331586ebc385f6256fe71d7adda8e 100644 (file)
@@ -55,7 +55,6 @@ string DLPurgeHandler(const vector<string>&parts, Utility::pid_t ppid);
 string DLNotifyRetrieveHandler(const vector<string>&parts, Utility::pid_t ppid);
 string DLCurrentConfigHandler(const vector<string>&parts, Utility::pid_t ppid);
 string DLListZones(const vector<string>&parts, Utility::pid_t ppid);
-string DLPolicy(const vector<string>&parts, Utility::pid_t ppid);
 string DLTokenLogin(const vector<string>&parts, Utility::pid_t ppid);
 uint64_t udpErrorStats(const std::string& str);
 #endif /* PDNS_DYNHANDLER_HH */
index 01036d29d15360ec2246034d58435588a49cd41a..894c29f1e863ef68a6ba820ed96657ec14aa61ea 100644 (file)
@@ -922,7 +922,6 @@ bool validDNSName(const DNSName &name)
 DNSPacket *PacketHandler::question(DNSPacket *p)
 {
   DNSPacket *ret;
-  int policyres = PolicyDecision::PASS;
 
   if(d_pdl)
   {
@@ -936,38 +935,7 @@ DNSPacket *PacketHandler::question(DNSPacket *p)
     rdqueries++;
   }
 
-  if(LPE)
-  {
-    policyres = LPE->police(p, NULL);
-  }
-
-  if (policyres == PolicyDecision::DROP)
-    return NULL;
-
-  if (policyres == PolicyDecision::TRUNCATE) {
-    ret=p->replyPacket();  // generate an empty reply packet
-    ret->d.tc = 1;
-    ret->commitD();
-    return ret;
-  }
-
-  ret=doQuestion(p);
-
-  if(LPE) {
-    policyres = LPE->police(p, ret);
-    if(policyres == PolicyDecision::DROP) {
-      delete ret;
-      return NULL;
-    }
-    if (policyres == PolicyDecision::TRUNCATE) {
-      delete ret;
-      ret=p->replyPacket();  // generate an empty reply packet
-      ret->d.tc = 1;
-      ret->commitD();
-    }
-
-  }
-  return ret;
+  return doQuestion(p);
 }
 
 
index a4d223fbdecaa66f9535b16c211be1925db008f5..aa2d439509d18771f2507b5fd493081ea8ce3346 100644 (file)
@@ -585,7 +585,6 @@ int main(int argc, char **argv)
     DynListener::registerFunc("RETRIEVE",&DLNotifyRetrieveHandler, "retrieve slave domain", "<domain>");
     DynListener::registerFunc("CURRENT-CONFIG",&DLCurrentConfigHandler, "retrieve the current configuration");
     DynListener::registerFunc("LIST-ZONES",&DLListZones, "show list of zones", "[master|slave|native]");
-    DynListener::registerFunc("POLICY",&DLPolicy, "interact with policy engine", "[policy command]");
     DynListener::registerFunc("TOKEN-LOGIN", &DLTokenLogin, "Login to a PKCS#11 token", "<module> <slot> <pin>");
 
     if(!::arg()["tcp-control-address"].empty()) {
index 10c0bfdd4706374ebe35569e524bd91398d2b2ba..184b4993058f28ca8245908ce550c44334c00d32 100644 (file)
@@ -365,8 +365,6 @@ void *TCPNameserver::doConnection(void *data)
         cached->d.rd=packet->d.rd; // copy in recursion desired bit 
         cached->commitD(); // commit d to the packet                        inlined
 
-        if(LPE) LPE->police(&(*packet), &(*cached), true);
-
         sendPacket(cached, fd); // presigned, don't do it again
         continue;
       }
@@ -380,8 +378,6 @@ void *TCPNameserver::doConnection(void *data)
         }
 
         reply=shared_ptr<DNSPacket>(s_P->doQuestion(packet.get())); // we really need to ask the backend :-)
-
-        if(LPE) LPE->police(&(*packet), &(*reply), true);
       }
 
       if(!reply)  // unable to write an answer?