summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSven Wegener <swegener@gentoo.org>2006-11-12 00:00:38 +0000
committerSven Wegener <swegener@gentoo.org>2006-11-12 00:00:38 +0000
commit6bbc78c7611d80750ec785dd1b1ee4eb816b4005 (patch)
tree6322a8ad8cb43480583a05b5a27bbc3dd9cf6d5b /net-dns
parent* bump (diff)
downloadgentoo-2-6bbc78c7611d80750ec785dd1b1ee4eb816b4005.tar.gz
gentoo-2-6bbc78c7611d80750ec785dd1b1ee4eb816b4005.tar.bz2
gentoo-2-6bbc78c7611d80750ec785dd1b1ee4eb816b4005.zip
More fixes from upstream.
(Portage version: 2.1.2_rc1-r5)
Diffstat (limited to 'net-dns')
-rw-r--r--net-dns/pdns-recursor/files/pdns-recursor-3.1.3-svn-fixes.patch32
1 files changed, 32 insertions, 0 deletions
diff --git a/net-dns/pdns-recursor/files/pdns-recursor-3.1.3-svn-fixes.patch b/net-dns/pdns-recursor/files/pdns-recursor-3.1.3-svn-fixes.patch
index 0be7f2fcae1a..c4a3294d7eb6 100644
--- a/net-dns/pdns-recursor/files/pdns-recursor-3.1.3-svn-fixes.patch
+++ b/net-dns/pdns-recursor/files/pdns-recursor-3.1.3-svn-fixes.patch
@@ -33,3 +33,35 @@ Index: pdns_recursor.cc
if(!bytes || bytes < 0) {
L<<Logger::Error<<"TCP client "<< conn->remote.toString() <<" disconnected while reading question body"<<endl;
TCPConnection tmp(*conn);
+Index: syncres.cc
+===================================================================
+--- syncres.cc (revision 901)
++++ syncres.cc (revision 919)
+@@ -16,6 +16,7 @@
+ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
++#include <boost/algorithm/string.hpp>
+ #include "utility.hh"
+ #include "syncres.hh"
+ #include <iostream>
+@@ -855,9 +856,18 @@
+ return RCode::NXDomain;
+ }
+ if(!newtarget.empty()) {
++ if(iequals(newtarget,qname)) {
++ LOG<<prefix<<qname<<": status=got a CNAME referral to self, returning SERVFAIL"<<endl;
++ return RCode::ServFail;
++ }
++ if(depth > 10) {
++ LOG<<prefix<<qname<<": status=got a CNAME referral, but recursing too deep, returning SERVFAIL"<<endl;
++ return RCode::ServFail;
++ }
+ LOG<<prefix<<qname<<": status=got a CNAME referral, starting over with "<<newtarget<<endl;
++
+ set<GetBestNSAnswer>beenthere2;
+- return doResolve(newtarget, qtype, ret,0,beenthere2);
++ return doResolve(newtarget, qtype, ret, depth + 1, beenthere2);
+ }
+ if(nsset.empty() && !d_lwr.d_rcode) {
+ LOG<<prefix<<qname<<": status=noerror, other types may exist, but we are done "<<(negindic ? "(have negative SOA)" : "")<<endl;