From: Peter van Dijk Date: Fri, 10 Jul 2015 08:11:19 +0000 (+0200) Subject: Merge pull request #2560 from Habbie/more-dnsname X-Git-Tag: dnsdist-1.0.0-alpha1~248^2~58^2~21 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=0fc82812d762666b7787d1a254bee9c1f3cceb58;p=thirdparty%2Fpdns.git Merge pull request #2560 from Habbie/more-dnsname This is the first round of DNSName work for all products. Some things are broken now but many things work. The notes below will go into a new ticket to track the next round. Early on this branch are a few 'yolo' and 'snap' commits. Those have not been squashed because they are not specific units of work, just ongoing refactoring. Status update below written by @mind04, thanks! Current status: - dnsdist disabled in travis - lmdb disabled in travis (current lmdb keys are useless with dnsname, postpone lmdb fixes to dnsname round 2) - api tests disabled in travis, for now Auth: - [ ] lmdb - [ ] api - [x] remote backend *-dnssec - [ ] tools Tests: - [ ] make check (test-dnsrecords_cc) - [ ] regressiontests.nobackend (lua policy) Recursor: - [ ] api - [ ] freezes after the first parse failure in DNSName (runtime_error Unable to parse DNS name) Other areas of interest: - [ ] mixed case queries - [ ] use dnsname for before and afternames (dnssec) - [ ] ... --- 0fc82812d762666b7787d1a254bee9c1f3cceb58 diff --cc modules/pipebackend/pipebackend.hh index e1b1edf31c,e1b732327e..962fc4660c --- a/modules/pipebackend/pipebackend.hh +++ b/modules/pipebackend/pipebackend.hh @@@ -37,10 -37,10 +37,10 @@@ class PipeBackend : public DNSBacken public: PipeBackend(const string &suffix=""); ~PipeBackend(); - void lookup(const QType &, const string &qdomain, DNSPacket *p=0, int zoneId=-1); - bool list(const string &target, int domain_id, bool include_disabled=false); + void lookup(const QType&, const DNSName& qdomain, DNSPacket *p=0, int zoneId=-1); + bool list(const DNSName& target, int domain_id, bool include_disabled=false); bool get(DNSResourceRecord &r); - + string directBackendCmd(const string &query); static DNSBackend *maker(); private: diff --cc modules/remotebackend/remotebackend.hh index 9651865155,38f0667592..6854fb2b05 --- a/modules/remotebackend/remotebackend.hh +++ b/modules/remotebackend/remotebackend.hh @@@ -131,38 -133,37 +133,38 @@@ class RemoteBackend : public DNSBacken RemoteBackend(const std::string &suffix=""); ~RemoteBackend(); - void lookup(const QType &qtype, const std::string &qdomain, DNSPacket *pkt_p=0, int zoneId=-1); + void lookup(const QType &qtype, const DNSName& qdomain, DNSPacket *pkt_p=0, int zoneId=-1); bool get(DNSResourceRecord &rr); - bool list(const std::string &target, int domain_id, bool include_disabled=false); - - virtual bool getAllDomainMetadata(const string& name, std::map >& meta); - virtual bool getDomainMetadata(const std::string& name, const std::string& kind, std::vector& meta); - virtual bool getDomainKeys(const std::string& name, unsigned int kind, std::vector& keys); - virtual bool getTSIGKey(const std::string& name, std::string* algorithm, std::string* content); - virtual bool getBeforeAndAfterNamesAbsolute(uint32_t id, const std::string& qname, std::string& unhashed, std::string& before, std::string& after); - virtual bool setDomainMetadata(const string& name, const string& kind, const std::vector >& meta); - virtual bool removeDomainKey(const string& name, unsigned int id); - virtual int addDomainKey(const string& name, const KeyData& key); - virtual bool activateDomainKey(const string& name, unsigned int id); - virtual bool deactivateDomainKey(const string& name, unsigned int id); - virtual bool getDomainInfo(const string&, DomainInfo&); + bool list(const DNSName& target, int domain_id, bool include_disabled=false); + + virtual bool getAllDomainMetadata(const DNSName& name, std::map >& meta); + virtual bool getDomainMetadata(const DNSName& name, const std::string& kind, std::vector& meta); + virtual bool getDomainKeys(const DNSName& name, unsigned int kind, std::vector& keys); + virtual bool getTSIGKey(const DNSName& name, DNSName* algorithm, std::string* content); + virtual bool getBeforeAndAfterNamesAbsolute(uint32_t id, const string& qname, DNSName& unhashed, string& before, string& after); + virtual bool setDomainMetadata(const DNSName& name, const string& kind, const std::vector >& meta); + virtual bool removeDomainKey(const DNSName& name, unsigned int id); + virtual int addDomainKey(const DNSName& name, const KeyData& key); + virtual bool activateDomainKey(const DNSName& name, unsigned int id); + virtual bool deactivateDomainKey(const DNSName& name, unsigned int id); + virtual bool getDomainInfo(const DNSName& domain, DomainInfo& di); virtual void setNotified(uint32_t id, uint32_t serial); virtual bool doesDNSSEC(); - virtual bool isMaster(const string &name, const string &ip); - virtual bool superMasterBackend(const string &ip, const string &domain, const vector&nsset, string *nameserver, string *account, DNSBackend **ddb); - virtual bool createSlaveDomain(const string &ip, const string &domain, const string &nameserver, const string &account); - virtual bool replaceRRSet(uint32_t domain_id, const string& qname, const QType& qt, const vector& rrset); + virtual bool isMaster(const DNSName& name, const string &ip); + virtual bool superMasterBackend(const string &ip, const DNSName& domain, const vector&nsset, string *nameserver, string *account, DNSBackend **ddb); + virtual bool createSlaveDomain(const string &ip, const DNSName& domain, const string& nameserver, const string &account); + virtual bool replaceRRSet(uint32_t domain_id, const DNSName& qname, const QType& qt, const vector& rrset); virtual bool feedRecord(const DNSResourceRecord &r, string *ordername); - virtual bool feedEnts(int domain_id, map& nonterm); - virtual bool feedEnts3(int domain_id, const string &domain, map &nonterm, unsigned int times, const string &salt, bool narrow); - virtual bool startTransaction(const string &domain, int domain_id); + virtual bool feedEnts(int domain_id, map& nonterm); + virtual bool feedEnts3(int domain_id, const DNSName& domain, map& nonterm, unsigned int times, const string &salt, bool narrow); + virtual bool startTransaction(const DNSName& domain, int domain_id); virtual bool commitTransaction(); virtual bool abortTransaction(); - virtual bool calculateSOASerial(const string& domain, const SOAData& sd, time_t& serial); - virtual bool setTSIGKey(const string& name, const string& algorithm, const string& content); - virtual bool deleteTSIGKey(const string& name); + virtual bool calculateSOASerial(const DNSName& domain, const SOAData& sd, time_t& serial); + virtual bool setTSIGKey(const DNSName& name, const DNSName& algorithm, const string& content); + virtual bool deleteTSIGKey(const DNSName& name); virtual bool getTSIGKeys(std::vector< struct TSIGKey > &keys); + virtual string directBackendCmd(const string& querystr); static DNSBackend *maker();