From: Christian Hofstaedtler Date: Fri, 27 Sep 2013 16:04:06 +0000 (+0200) Subject: expose zone DELETE in JSON webserver X-Git-Tag: rec-3.6.0-rc1~428^2 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=refs%2Fpull%2F1036%2Fhead;p=thirdparty%2Fpdns.git expose zone DELETE in JSON webserver --- diff --git a/pdns/ws.cc b/pdns/ws.cc index c576fef895..8b1daadae5 100644 --- a/pdns/ws.cc +++ b/pdns/ws.cc @@ -545,6 +545,24 @@ static string json_dispatch(const string& method, const string& post, varmap_t& sd.db->commitTransaction(); return getZone(zonename); + } else if (method == "DELETE") { + // delete + UeberBackend B; + SOAData sd; + DomainInfo di; + sd.db = (DNSBackend*)-1; + if(!B.getDomainInfo(zonename, di) || !di.backend) { + map err; + err["error"] = "Deleting domain '"+zonename+"' failed: domain does not exist"; + return returnJSONObject(err); + } + if (!di.backend->deleteDomain(zonename)) { + map err; + err["error"] = "Deleting domain '"+zonename+"' failed: backend delete failed/unsupported"; + return returnJSONObject(err); + } + map success; // empty success object + return returnJSONObject(success); } else { map err; err["error"] = "Method not allowed";