From: Pieter Lexis Date: Mon, 11 Jan 2016 11:31:57 +0000 (+0100) Subject: Warn if SOA-EDIT value is bogus X-Git-Tag: dnsdist-1.0.0-alpha2~89^2 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=refs%2Fpull%2F3209%2Fhead;p=thirdparty%2Fpdns.git Warn if SOA-EDIT value is bogus --- diff --git a/pdns/dnsseckeeper.hh b/pdns/dnsseckeeper.hh index d455de2062..4cdbd81b77 100644 --- a/pdns/dnsseckeeper.hh +++ b/pdns/dnsseckeeper.hh @@ -174,7 +174,7 @@ uint32_t localtime_format_YYYYMMDDSS(time_t t, uint32_t seq); // for SOA-EDIT uint32_t calculateEditSOA(SOAData sd, const string& kind); bool editSOA(DNSSECKeeper& dk, const DNSName& qname, DNSPacket* dp); -bool editSOARecord(DNSResourceRecord& rr, const string& kind); +bool editSOARecord(DNSResourceRecord& rr, const string& kind, const DNSName& qname); // for SOA-EDIT-DNSUPDATE/API uint32_t calculateIncreaseSOA(SOAData sd, const string& increaseKind, const string& editKind); bool increaseSOARecord(DNSResourceRecord& rr, const string& increaseKind, const string& editKind); diff --git a/pdns/serialtweaker.cc b/pdns/serialtweaker.cc index 2a7f4e135e..3dd474ef45 100644 --- a/pdns/serialtweaker.cc +++ b/pdns/serialtweaker.cc @@ -46,17 +46,18 @@ bool editSOA(DNSSECKeeper& dk, const DNSName& qname, DNSPacket* dp) if(rr.qtype.getCode() == QType::SOA && rr.qname == qname) { string kind; dk.getSoaEdit(qname, kind); - return editSOARecord(rr, kind); + return editSOARecord(rr, kind, qname); } } return false; } -bool editSOARecord(DNSResourceRecord& rr, const string& kind) { +bool editSOARecord(DNSResourceRecord& rr, const string& kind, const DNSName& qname) { if(kind.empty()) return false; SOAData sd; + sd.qname = qname; fillSOAData(rr.content, sd); sd.serial = calculateEditSOA(sd, kind); rr.content = serializeSOAData(sd); @@ -94,6 +95,8 @@ uint32_t calculateEditSOA(SOAData sd, const string& kind) { uint32_t inception = getStartOfWeek(); if (sd.serial < inception) return inception; + } else if(!kind.empty()) { + L<