]> granicus.if.org Git - pdns/commitdiff
Merge pull request #2560 from Habbie/more-dnsname
authorPeter van Dijk <peter.van.dijk@netherlabs.nl>
Fri, 10 Jul 2015 08:11:19 +0000 (10:11 +0200)
committerPeter van Dijk <peter.van.dijk@netherlabs.nl>
Fri, 10 Jul 2015 08:11:19 +0000 (10:11 +0200)
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)
- [ ] ...

1  2 
modules/pipebackend/pipebackend.cc
modules/pipebackend/pipebackend.hh
modules/remotebackend/remotebackend.cc
modules/remotebackend/remotebackend.hh
modules/remotebackend/test-remotebackend.cc

Simple merge
index e1b1edf31cad0f3aa05bf7b7c98f34c5dec17d23,e1b732327eafe1f7d62c8bc05b29bcb4e123d5c6..962fc4660c0bce47121337578402aa55cfb76a73
@@@ -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:
index 965186515575a366c8a5a057bfb5485525d0fa16,38f0667592899fa5938cc6cdc0990484a4bbee73..6854fb2b054213e2e4476cf853cabd7f7edd2ebd
@@@ -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<std::string, std::vector<std::string> >& meta);
-   virtual bool getDomainMetadata(const std::string& name, const std::string& kind, std::vector<std::string>& meta);
-   virtual bool getDomainKeys(const std::string& name, unsigned int kind, std::vector<DNSBackend::KeyData>& 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<std::basic_string<char> >& 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<std::string, std::vector<std::string> >& meta);
+   virtual bool getDomainMetadata(const DNSName& name, const std::string& kind, std::vector<std::string>& meta);
+   virtual bool getDomainKeys(const DNSName& name, unsigned int kind, std::vector<DNSBackend::KeyData>& 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<std::basic_string<char> >& 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<DNSResourceRecord>&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<DNSResourceRecord>& rrset);
+   virtual bool isMaster(const DNSName& name, const string &ip);
+   virtual bool superMasterBackend(const string &ip, const DNSName& domain, const vector<DNSResourceRecord>&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<DNSResourceRecord>& rrset);
    virtual bool feedRecord(const DNSResourceRecord &r, string *ordername);
-   virtual bool feedEnts(int domain_id, map<string,bool>& nonterm);
-   virtual bool feedEnts3(int domain_id, const string &domain, map<string,bool> &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<DNSName,bool>& nonterm);
+   virtual bool feedEnts3(int domain_id, const DNSName& domain, map<DNSName,bool>& 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();