]> git.ipfire.org Git - thirdparty/pdns.git/commitdiff
dnsdist: Add virtual dtors for DNSRule, DNSAction and DNSResponseAction 5497/head
authorRemi Gacogne <remi.gacogne@powerdns.com>
Tue, 28 Mar 2017 07:48:54 +0000 (09:48 +0200)
committerRemi Gacogne <remi.gacogne@powerdns.com>
Wed, 5 Jul 2017 13:42:33 +0000 (15:42 +0200)
pdns/dnsdist.hh
pdns/dnsrulactions.hh

index 1b05cb47b6669a098eafa0962ea541a8eab4973d..b7e1bde7daa7b1fb8532955ed1f73158b31ba09c 100644 (file)
@@ -94,6 +94,9 @@ class DNSAction
 public:
   enum class Action { Drop, Nxdomain, Refused, Spoof, Allow, HeaderModify, Pool, Delay, Truncate, None};
   virtual Action operator()(DNSQuestion*, string* ruleresult) const =0;
+  virtual ~DNSAction()
+  {
+  }
   virtual string toString() const = 0;
   virtual std::unordered_map<string, double> getStats() const 
   {
@@ -106,6 +109,9 @@ class DNSResponseAction
 public:
   enum class Action { Allow, Delay, Drop, HeaderModify, None };
   virtual Action operator()(DNSResponse*, string* ruleresult) const =0;
+  virtual ~DNSResponseAction()
+  {
+  }
   virtual string toString() const = 0;
 };
 
@@ -598,6 +604,9 @@ extern std::string g_outputBuffer; // locking for this is ok, as locked by g_lua
 class DNSRule
 {
 public:
+  virtual ~DNSRule ()
+  {
+  }
   virtual bool matches(const DNSQuestion* dq) const =0;
   virtual string toString() const = 0;
   mutable std::atomic<uint64_t> d_matches{0};
index 4987602b40f758aa030c9ccb9a7ba1836ed7592b..33e1d7da7287beefb5bf689a3d0c5a103b506ae6 100644 (file)
@@ -830,7 +830,7 @@ class TeeAction : public DNSAction
 {
 public:
   TeeAction(const ComboAddress& ca, bool addECS=false);
-  ~TeeAction();
+  ~TeeAction() override;
   DNSAction::Action operator()(DNSQuestion* dq, string* ruleresult) const override;
   string toString() const override;
   std::unordered_map<string, double> getStats() const override;
@@ -1115,7 +1115,7 @@ public:
     if(!buffered)
       setbuf(d_fp, 0);
   }
-  ~LogAction()
+  ~LogAction() override
   {
     if(d_fp)
       fclose(d_fp);