]> git.ipfire.org Git - thirdparty/pdns.git/commitdiff
DNSName: fix nproxy
authorPieter Lexis <pieter.lexis@powerdns.com>
Fri, 10 Jul 2015 12:22:20 +0000 (14:22 +0200)
committerPieter Lexis <pieter.lexis@powerdns.com>
Wed, 15 Jul 2015 14:49:15 +0000 (16:49 +0200)
pdns/notify.cc
pdns/nproxy.cc

index 70f20f8877d9e82752571ce71ce9b3651a2dc440..97e8ffc5ccf1c1a8cdda5e8df5707616b8068de1 100644 (file)
@@ -71,7 +71,7 @@ try
   MOADNSParser mdp(packet);
 
   cerr<<"Received notification response with error: "<<RCode::to_s(mdp.d_header.rcode)<<endl;
-  cerr<<"For: '"<<mdp.d_qname<<"'"<<endl;
+  cerr<<"For: '"<<mdp.d_qname.toString()<<"'"<<endl;
 }
 catch(std::exception& e)
 {
index 7237a16b35e3de31d424f7a3066e10bf09959262..1b496df66f0568863b90e53ad717fb317347f974 100644 (file)
@@ -38,7 +38,7 @@ struct NotificationInFlight
 {
   ComboAddress source;
   time_t resentTime;
-  string domain;
+  DNSName domain;
   uint16_t origID, resentID;
   int origSocket;
 };
@@ -74,7 +74,7 @@ try
   nif.origID = mdp.d_header.id;
 
 
-  if(mdp.d_header.opcode == Opcode::Query && !mdp.d_header.qr && mdp.d_answers.empty() && mdp.d_qname == "pdns.nproxy." && 
+  if(mdp.d_header.opcode == Opcode::Query && !mdp.d_header.qr && mdp.d_answers.empty() && mdp.d_qname.toString() == "pdns.nproxy." && 
      (mdp.d_qtype == QType::TXT || mdp.d_qtype ==QType::A)) {
     vector<uint8_t> packet;
     DNSPacketWriter pw(packet, mdp.d_qname, mdp.d_qtype);
@@ -100,10 +100,10 @@ try
   }
 
   if(mdp.d_header.opcode != Opcode::Notify || mdp.d_qtype != QType::SOA) {
-    syslogFmt(boost::format("Received non-notification packet for domain '%s' from external nameserver %s") % nif.domain % nif.source.toStringWithPort());
+    syslogFmt(boost::format("Received non-notification packet for domain '%s' from external nameserver %s") % nif.domain.toString() % nif.source.toStringWithPort());
     return;
   }
-  syslogFmt(boost::format("External notification received for domain '%s' from %s") % nif.domain % nif.source.toStringWithPort());  
+  syslogFmt(boost::format("External notification received for domain '%s' from %s") % nif.domain.toString() % nif.source.toStringWithPort());  
   vector<uint8_t> outpacket;
   DNSPacketWriter pw(outpacket, mdp.d_qname, mdp.d_qtype, 1, Opcode::Notify);
 
@@ -150,8 +150,8 @@ try
   
   nif=g_nifs[mdp.d_header.id];
 
-  if(!pdns_iequals(nif.domain,mdp.d_qname)) {
-    syslogFmt(boost::format("Response from inner nameserver for different domain '%s' than original notification '%s'") % mdp.d_qname % nif.domain);
+  if(nif.domain != mdp.d_qname) {
+    syslogFmt(boost::format("Response from inner nameserver for different domain '%s' than original notification '%s'") % mdp.d_qname.toString() % nif.domain.toString());
   } else {
     struct dnsheader dh;
     memcpy(&dh, buffer, sizeof(dh));
@@ -161,7 +161,7 @@ try
       syslogFmt(boost::format("Unable to send notification response to external nameserver %s - %s") % nif.source.toStringWithPort() % stringerror());
     }
     else
-      syslogFmt(boost::format("Sent notification response to external nameserver %s for domain '%s'") % nif.source.toStringWithPort() % nif.domain);
+      syslogFmt(boost::format("Sent notification response to external nameserver %s for domain '%s'") % nif.source.toStringWithPort() % nif.domain.toString());
   }
   g_nifs.erase(mdp.d_header.id);
 
@@ -176,7 +176,7 @@ void expireOldNotifications()
   time_t limit = time(0) - 10;
   for(nifs_t::iterator iter = g_nifs.begin(); iter != g_nifs.end(); ) {
     if(iter->second.resentTime < limit) {
-      syslogFmt(boost::format("Notification for domain '%s' was sent to inner nameserver, but no response within 10 seconds") % iter->second.domain);
+      syslogFmt(boost::format("Notification for domain '%s' was sent to inner nameserver, but no response within 10 seconds") % iter->second.domain.toString());
       g_nifs.erase(iter++);
     }
     else