From 81b39e4b9aa5a8b2cd694e828cbac71b40bfddaf Mon Sep 17 00:00:00 2001 From: Bert Hubert Date: Sat, 8 May 2010 22:13:13 +0000 Subject: [PATCH] add in-place reordering infrastructure git-svn-id: svn://svn.powerdns.com/pdns/trunk/pdns@1604 d19b8d6e-7fed-0310-83ef-9ca221ded41b --- pdns/backends/gsql/gsqlbackend.cc | 14 ++++++++++++++ pdns/backends/gsql/gsqlbackend.hh | 2 ++ pdns/dnsbackend.hh | 5 +++++ pdns/pdnssec.cc | 30 ++++++++++++++++++++---------- 4 files changed, 41 insertions(+), 10 deletions(-) diff --git a/pdns/backends/gsql/gsqlbackend.cc b/pdns/backends/gsql/gsqlbackend.cc index d672d000f..350532228 100644 --- a/pdns/backends/gsql/gsqlbackend.cc +++ b/pdns/backends/gsql/gsqlbackend.cc @@ -243,6 +243,20 @@ GSQLBackend::GSQLBackend(const string &mode, const string &suffix) d_setOrderAuthQuery = getArg("set-order-and-auth-query"); } +bool GSQLBackend::updateDNSSECOrderAndAuth(uint32_t domain_id, const std::string& zonename, const std::string& qname, bool auth) +{ + char output[1024]; + // ordername='%s',auth=%d where name='%s' and domain_id='%d' + + string ins=toLower(labelReverse(makeRelative(qname, zonename))); + snprintf(output, sizeof(output)-1, d_setOrderAuthQuery.c_str(), sqlEscape(ins).c_str(), auth, sqlEscape(qname).c_str(), domain_id); + cerr<<"sql: '"<doCommand(output); + + return true; +} + bool GSQLBackend::getBeforeAndAfterNames(uint32_t id, const std::string& zonename, const std::string& qname, std::string& before, std::string& after) { cerr<<"gsql before/after called for id="<getSOA("powerdnssec.org", sd)) { + + if(!B->getSOA(zone, sd)) { cerr<<"No SOA!"<list("powerdnssec.org", sd.domain_id); + sd.db->list(zone, sd.domain_id); DNSResourceRecord rr; + + set qnames; while(sd.db->get(rr)) { - cerr<updateDNSSECOrderAndAuth(sd.domain_id, zone, qname, true); } cerr<<"Done listing"<()); - if(cmds[0] == "list-zones") { - listZones(); + if(cmds[0] == "order-zone") { + if(cmds.size() != 2) { + cerr << "Error: "<