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
{
public:
enum class Action { Allow, Delay, Drop, HeaderModify, None };
virtual Action operator()(DNSResponse*, string* ruleresult) const =0;
+ virtual ~DNSResponseAction()
+ {
+ }
virtual string toString() const = 0;
};
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};
{
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;
if(!buffered)
setbuf(d_fp, 0);
}
- ~LogAction()
+ ~LogAction() override
{
if(d_fp)
fclose(d_fp);