From: Bert Hubert Date: Sat, 8 May 2010 22:13:13 +0000 (+0000) Subject: add in-place reordering infrastructure X-Git-Tag: rec-3.3~98 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=81b39e4b9aa5a8b2cd694e828cbac71b40bfddaf;p=pdns add in-place reordering infrastructure git-svn-id: svn://svn.powerdns.com/pdns/trunk/pdns@1604 d19b8d6e-7fed-0310-83ef-9ca221ded41b --- 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: "<