]> granicus.if.org Git - pdns/commitdiff
auth: do not use the remote port for SOA and NS queries in trySuperMaster()
authorKees Monshouwer <mind04@monshouwer.org>
Fri, 1 Dec 2017 10:36:30 +0000 (11:36 +0100)
committermind04 <mind04@monshouwer.org>
Sat, 31 Mar 2018 21:40:22 +0000 (23:40 +0200)
and some cleanup

pdns/dnsbackend.hh
pdns/iputils.hh
pdns/packethandler.cc

index e09e993068edae7ed0fc395af7a045e728c2bb3d..2ff9d146242f0526e7589c97e808109cdf204e2d 100644 (file)
@@ -90,8 +90,7 @@ struct DomainInfo
   const bool isMaster(const ComboAddress& ip)
   {
     for( const auto& master: masters) {
-      const ComboAddress caMaster(master);
-      if(ComboAddress::addressOnlyEqual()(ip, caMaster))
+      if(ComboAddress::addressOnlyEqual()(ip, master))
         return true;
     }
     return false;
index 6b265aca02174075bb279c8d1739138beddb740a..aae4902a1062734b69880c6c53a95d19a165a4e0 100644 (file)
@@ -302,6 +302,13 @@ union ComboAddress {
     return ntohs(sin4.sin_port);
   }
 
+  ComboAddress setPort(uint16_t port) const
+  {
+    ComboAddress ret(*this);
+    ret.sin4.sin_port=htons(port);
+    return ret;
+  }
+
 };
 
 /** This exception is thrown by the Netmask class and by extension by the NetmaskGroup class */
index d82744983c0bee6c32118eb58fd919257ddc6a06..b63f32c77db6d0ac10ef472453ca007054bffa27 100644 (file)
@@ -731,7 +731,7 @@ int PacketHandler::trySuperMaster(DNSPacket *p, const DNSName& tsigkeyname)
 
 int PacketHandler::trySuperMasterSynchronous(const DNSPacket *p, const DNSName& tsigkeyname)
 {
-  ComboAddress remote = p->getRemote();
+  ComboAddress remote = p->getRemote().setPort(53);
   if(p->hasEDNSSubnet() && ::arg().contains("trusted-notification-proxy", remote.toString())) {
     remote = p->getRealRemote().getNetwork();
   }