]> granicus.if.org Git - pdns/commitdiff
use DNSName for tsig keyname
authorAki Tuomi <cmouse@cmouse.fi>
Tue, 4 Aug 2015 11:51:01 +0000 (14:51 +0300)
committerAki Tuomi <cmouse@cmouse.fi>
Wed, 20 Jan 2016 11:16:59 +0000 (13:16 +0200)
pdns/dnspacket.cc
pdns/dnspacket.hh
pdns/mastercommunicator.cc
pdns/packethandler.cc
pdns/packethandler.hh

index 949da4b04aaf7862c0e9201c076719c28860a7b1..5b144e6c0d0f2063dc0c72d54b4c0cf971d7f91e 100644 (file)
@@ -697,6 +697,6 @@ bool checkForCorrectTSIG(const DNSPacket* q, UeberBackend* B, DNSName* keyname,
   return result;
 }
 
-const string& DNSPacket::getTSIGKeyname() const {
+const DNSName& DNSPacket::getTSIGKeyname() const {
   return d_tsigkeyname;
 }
index 0755851e757fab1a5b2000d388d8873f37bdcef7..efa030c6b2bdfa86c172c28be641e37a1c1bf863 100644 (file)
@@ -146,11 +146,9 @@ public:
   string d_peer_principal;
   const DNSName& getTSIGKeyname() const;
 
-  ComboAddress d_remote;
   uint16_t qclass;  //!< class of the question - should always be INternet 2
   struct dnsheader d; //!< dnsheader at the start of the databuffer 12
 
-  uint16_t qclass;  //!< class of the question - should always be INternet 2
   QType qtype;  //!< type of the question 2
 
   TSIGRecordContent d_trc; //72
index 7b4183b69523af09a92caa8e05b9fb4f92c0a237..f726ffb7e16c0f96be67ad02dbf7e70dc126b2f8 100644 (file)
@@ -220,13 +220,13 @@ void CommunicatorClass::sendNotification(int sock, const DNSName& domain, const
 {
   UeberBackend B;
   vector<string> meta;
-  string tsigkeyname;
-  string tsigalgorithm;
+  DNSName tsigkeyname;
+  DNSName tsigalgorithm;
   string tsigsecret64;
   string tsigsecret;
 
   if (B.getDomainMetadata(domain, "TSIG-ALLOW-AXFR", meta) && meta.size() > 0) {
-    tsigkeyname = meta[0];
+    tsigkeyname.toStringNoDot() = meta[0];
   }
 
   vector<uint8_t> packet;
index 6e8e45692cf561251de1c24904049d31199f7451..49da72777967a9bdf8c84a8c149a7f9ec83c505f 100644 (file)
@@ -765,7 +765,7 @@ How MySQLBackend would implement this:
    
 */     
 
-int PacketHandler::trySuperMaster(DNSPacket *p, const string& tsigkeyname)
+int PacketHandler::trySuperMaster(DNSPacket *p, const DNSName& tsigkeyname)
 {
   if(p->d_tcp)
   {
@@ -781,7 +781,7 @@ int PacketHandler::trySuperMaster(DNSPacket *p, const string& tsigkeyname)
   }
 }
 
-int PacketHandler::trySuperMasterSynchronous(DNSPacket *p, const string& tsigkeyname)
+int PacketHandler::trySuperMasterSynchronous(DNSPacket *p, const DNSName& tsigkeyname)
 {
   Resolver::res_t nsset;
   try {
@@ -821,7 +821,7 @@ int PacketHandler::trySuperMasterSynchronous(DNSPacket *p, const string& tsigkey
     db->createSlaveDomain(p->getRemote(), p->qdomain, nameserver, account);
     if (tsigkeyname.empty() == false) {
       vector<string> meta;
-      meta.push_back(tsigkeyname);
+      meta.push_back(tsigkeyname.toStringNoDot());
       db->setDomainMetadata(p->qdomain, "AXFR-MASTER-TSIG", meta);
     }
   }
@@ -868,7 +868,7 @@ int PacketHandler::processNotify(DNSPacket *p)
 
   meta.clear();
   if (B.getDomainMetadata(p->qdomain,"AXFR-MASTER-TSIG",meta) && meta.size() > 0) {
-    if (!p->d_havetsig || meta[0] != p->getTSIGKeyname()) {
+    if (!p->d_havetsig || meta[0] != p->getTSIGKeyname().toStringNoDot()) {
       L<<Logger::Notice<<"Received NOTIFY for "<<p->qdomain<<" from "<<p->getRemote()<<": expected TSIG key '"<<meta[0]<<", got '"<<p->getTSIGKeyname()<<"'"<<endl;
       return RCode::Refused;
     }
index b06db35d0b5841bcfc12b8c86f30fd765ec6fc62..c9611e81ef2a1842c2bd5addefb051dabea0a928 100644 (file)
@@ -63,11 +63,11 @@ public:
  
   UeberBackend *getBackend();
 
-  int trySuperMasterSynchronous(DNSPacket *p, const string& tsigkeyname);
+  int trySuperMasterSynchronous(DNSPacket *p, const DNSName& tsigkeyname);
   static NetmaskGroup s_allowNotifyFrom;
 
 private:
-  int trySuperMaster(DNSPacket *p, const string& tsigkeyname);
+  int trySuperMaster(DNSPacket *p, const DNSName& tsigkeyname);
   int processNotify(DNSPacket *);
   void addRootReferral(DNSPacket *r);
   int doChaosRequest(DNSPacket *p, DNSPacket *r, DNSName &target);