From 205f2081a9a74260301331526741a6b9c127ac3d Mon Sep 17 00:00:00 2001 From: Remi Gacogne Date: Tue, 28 Mar 2017 09:48:54 +0200 Subject: [PATCH] dnsdist: Add virtual dtors for DNSRule, DNSAction and DNSResponseAction --- pdns/dnsdist.hh | 9 +++++++++ pdns/dnsrulactions.hh | 4 ++-- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/pdns/dnsdist.hh b/pdns/dnsdist.hh index 1b05cb47b6..b7e1bde7da 100644 --- a/pdns/dnsdist.hh +++ b/pdns/dnsdist.hh @@ -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 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 d_matches{0}; diff --git a/pdns/dnsrulactions.hh b/pdns/dnsrulactions.hh index 4987602b40..33e1d7da72 100644 --- a/pdns/dnsrulactions.hh +++ b/pdns/dnsrulactions.hh @@ -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 getStats() const override; @@ -1115,7 +1115,7 @@ public: if(!buffered) setbuf(d_fp, 0); } - ~LogAction() + ~LogAction() override { if(d_fp) fclose(d_fp); -- 2.47.2