From 0d19bc12cba6f6d9a3545d514c22c05c24d69eef Mon Sep 17 00:00:00 2001 From: Pieter Lexis Date: Mon, 15 Jun 2015 16:47:59 +0200 Subject: [PATCH] Add SOA record to randombackend, closes #2596 --- modules/randombackend/randombackend.cc | 72 ++++++++++++-------------- 1 file changed, 33 insertions(+), 39 deletions(-) diff --git a/modules/randombackend/randombackend.cc b/modules/randombackend/randombackend.cc index e7b96b7d7a..7133ecc7f4 100644 --- a/modules/randombackend/randombackend.cc +++ b/modules/randombackend/randombackend.cc @@ -40,8 +40,8 @@ public: { setArgPrefix("random"+suffix); d_ourname=DNSName(getArg("hostname")); - d_want_A=false; - d_want_SOA=false; + d_ourdomain = d_ourname; + d_ourdomain.chopOff(); } bool list(const DNSName &target, int id, bool include_disabled) { @@ -50,55 +50,49 @@ public: void lookup(const QType &type, const DNSName &qdomain, DNSPacket *p, int zoneId) { - if(qdomain == d_ourname){ - switch (type.getCode()) { - case QType::A: - d_want_A = true; - break; - case QType::SOA: - d_want_SOA = true; - break; - case QType::ANY: - d_want_A = true; - d_want_SOA = true; - break; - } - } else { // We know nothing - d_want_A = false; - d_want_SOA = false; + if(qdomain == d_ourdomain){ + if(type.getCode() == QType::SOA || type.getCode() == QType::ANY) { + d_answer="ns1." + d_ourdomain.toString() + " hostmaster." + d_ourdomain.toString() + " 1234567890 86400 7200 604800 300"; + } else { + d_answer=""; + } + } else if (qdomain == d_ourname) { + if(type.getCode() == QType::A || type.getCode() == QType::ANY) { + ostringstream os; + os<