From: Remi Gacogne Date: Mon, 16 Jan 2017 16:48:49 +0000 (+0100) Subject: Fix `DSRecordContent::operator==` hiding virtual `DNSRecordContent::operator==` X-Git-Tag: rec-4.1.0-alpha1~306^2~3 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=0b06247833dbb329984946383e30e4076d9a663b;p=thirdparty%2Fpdns.git Fix `DSRecordContent::operator==` hiding virtual `DNSRecordContent::operator==` Hopefully we should be able to enable `-Woverloaded-virtual` soon. --- diff --git a/pdns/dnsrecords.hh b/pdns/dnsrecords.hh index 97c66d0052..e3eed1ef27 100644 --- a/pdns/dnsrecords.hh +++ b/pdns/dnsrecords.hh @@ -340,10 +340,13 @@ class DSRecordContent : public DNSRecordContent { public: DSRecordContent(); - bool operator==(const DSRecordContent& rhs) const + bool operator==(const DNSRecordContent& rhs) const override { + if(typeid(*this) != typeid(rhs)) + return false; + auto rrhs =dynamic_cast(&rhs); return tie(d_tag, d_algorithm, d_digesttype, d_digest) == - tie(rhs.d_tag, rhs.d_algorithm, rhs.d_digesttype, rhs.d_digest); + tie(rrhs->d_tag, rrhs->d_algorithm, rrhs->d_digesttype, rrhs->d_digest); } bool operator<(const DSRecordContent& rhs) const {