]> granicus.if.org Git - pdns/commitdiff
mostly work on delegation-only, debian patches
authorBert Hubert <bert.hubert@netherlabs.nl>
Sat, 20 Sep 2003 12:20:38 +0000 (12:20 +0000)
committerBert Hubert <bert.hubert@netherlabs.nl>
Sat, 20 Sep 2003 12:20:38 +0000 (12:20 +0000)
git-svn-id: svn://svn.powerdns.com/pdns/trunk/pdns@186 d19b8d6e-7fed-0310-83ef-9ca221ded41b

ChangeLog
debian/changelog
debian/control
debian/pdns.postrm
debian/rules
pdns/arguments.cc
pdns/pdns_recursor.cc
pdns/syncres.cc

index a5f3f9f2d9fafdbc4127618136fa9259bbb75d81..25fe59bc83bdbd157d27dbcb3e81c891fe190624 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -9,6 +9,10 @@ changes since 2.9.11:
        - added --version
        - clean up some parameter descriptions
        - cleanups by Norbert (getAuth moved to chopOff, arguments 'contains' massive cleanup)
+       - improved reporting to which addresses we bind (now always mentions
+         IP addresses)
+       - added delegation-only feature
+       - some Debian fixes
 
 changes since 2.9.10:
        - pdns_recursor now cleans its cache
index bd8fb5a98fa05833c2a6dd10214817e5c7bb0fc9..f10f1157e909b2f88bf1ecc296aadbbd29553d9f 100644 (file)
@@ -1,3 +1,13 @@
+pdns (2.9.11-2) unstable; urgency=low
+
+  * Remove automake build-depends and bootstrap rule from debian/rules.
+    This makes pdns a bit more portable across Debian releases.
+    Closes: Bug#205990
+  * Try to remove the /etc/powerdns directory on purge. Closes: Bug#209051
+  * Use libmysqlclient-dev instead of libmysqlclient10-dev
+
+ -- Wichert Akkerman <wakkerma@debian.org>  Tue,  9 Sep 2003 14:59:46 +0200
+
 pdns (2.9.11-1) unstable; urgency=low
 
   * New upstream release
index bb4514b0bbfca6078a936d25e2a65b1f51b2a4da..f4605a6d429e10fe7e4ccdc6c0fd7bd42e51bc40 100644 (file)
@@ -3,7 +3,7 @@ Section: net
 Priority: extra
 Standards-Version: 3.5.8
 Maintainer: Wichert Akkerman <wakkerma@debian.org>
-Build-Depends: automake1.5, autoconf, libtool, flex, bison, docbook-utils, libmysqlclient10-dev, postgresql-dev, tdb-dev, libgdbm-dev, libpqpp-dev, libldap2-dev
+Build-Depends: autoconf, libtool, flex, bison, docbook-utils, libmysqlclient-dev, postgresql-dev, tdb-dev, libgdbm-dev, libpqpp-dev, libldap2-dev
 
 Package: pdns
 Architecture: any
index 962934a63f1e91c4425fcc3055d58d7c6f264e38..91b80e86feb40d49cd6e790b7b59823b2a9f3294 100755 (executable)
@@ -9,5 +9,6 @@ update_init() {
 
 if [ "$1" = "purge" ] ; then
        update_init
+       rmdir /etc/powerdns || true
 fi
 
index 4a983f348c3e5918aaa60af5539b73a8a7ea1911..e8a7ac883d50616417d55bdbb986b095bb51ef56 100755 (executable)
@@ -5,9 +5,6 @@ be_tmpdir       := $(shell pwd)/debian/tmp-backend
 backends       := ldap mysql pipe xdb gmysql gpgsql
 debs           := ldap mysql pipe xdb pgsql
 
-configure:
-       ./bootstrap
-
 binary-doc:
        -make -C pdns/docs html/index.html
 
@@ -120,11 +117,11 @@ binary-main-prepare:
 
 
 binary-main: stamp-build binary-main-prepare
-       dpkg-gencontrol -isp -ppdns -P"$(tmpdir)"
-       dpkg --build "$(tmpdir)" ..
        dpkg-shlibdeps "$(tmpdir)"/usr/bin/zone2sql \
                "$(tmpdir)"/usr/sbin/pdns_server \
                "$(tmpdir)"/usr/bin/pdns_control
+       dpkg-gencontrol -isp -ppdns -P"$(tmpdir)"
+       dpkg --build "$(tmpdir)" ..
 
 
 binary-static: stamp-build-static binary-main-prepare
index 789e4732fdb1e4e6e2270db7ee7c032604b88d35..ba4c4b11f71fcd4cdbbc3e634db7563b57c9450d 100644 (file)
@@ -83,19 +83,17 @@ string & ArgvMap::setSwitch(const string &var, const string &help)
 
 bool ArgvMap::contains(const string &var, const string &val)
 {
-       vector<string> parts;
-       vector<string>::const_iterator i;
-
-
-       stringtok( parts, params[var], ", \t" );
-       for( i = parts.begin(); i != parts.end(); i++ )
-       {
-               if( *i == val ) {
-                       return true;
-               }
-       }
+  vector<string> parts;
+  vector<string>::const_iterator i;
+  
+  stringtok( parts, params[var], ", \t" );
+  for( i = parts.begin(); i != parts.end(); i++ ) {
+    if( *i == val ) {
+      return true;
+    }
+  }
 
-       return false;
+  return false;
 }
 
 
index 4b7661c0a782fa9f65c49719e0d42049ddd37d2b..3604535b2214ff15f155fb27bd5af9b590289588 100644 (file)
@@ -171,7 +171,7 @@ static void writePid(void)
   if(of)
     of<<getpid()<<endl;
   else
-    L<<Logger::Error<<"Requested to write pid for "<<getpid()<<" to "<<fname<<"failed: "<<strerror(errno)<<endl;
+    L<<Logger::Error<<"Requested to write pid for "<<getpid()<<" to "<<fname<<" failed: "<<strerror(errno)<<endl;
 }
 
 void init(void)
@@ -446,6 +446,7 @@ int main(int argc, char **argv)
     arg().set("quiet","Suppress logging of questions and answers")="off";
     arg().set("config-dir","Location of configuration directory (recursor.conf)")=SYSCONFDIR;
     arg().set("socket-dir","Where the controlsocket will live")=LOCALSTATEDIR;
+    arg().set("delegation-only","Which domains we only accept delegations from")="";
     arg().setCmd("help","Provide a helpful message");
     L.toConsole(Logger::Warning);
     arg().laxParse(argc,argv); // do a lax parse
@@ -458,6 +459,8 @@ int main(int argc, char **argv)
 
     arg().parse(argc,argv);
 
+    arg().set("delegation-only")=toLower(arg()["delegation-only"]);
+
     if(arg().mustDo("help")) {
       cerr<<"syntax:"<<endl<<endl;
       cerr<<arg().helpstring(arg()["help"])<<endl;
@@ -473,6 +476,8 @@ int main(int argc, char **argv)
     makeServerSocket();
     makeTCPServerSocket();
         
+
+
     char data[1500];
     struct sockaddr_in fromaddr;
     
index fef8715045b9309a3fe9d00170d4b86cf2f05689..f827f74916110edbf18a7086c4140e67597b792e 100644 (file)
@@ -361,15 +361,22 @@ int SyncRes::doResolveAt(set<string> nameservers, string auth, const string &qna
       for(LWRes::res_t::const_iterator i=result.begin();i!=result.end();++i) {
        LOG<<prefix<<qname<<": accept answer '"<<i->qname<<"|"<<i->qtype.getName()<<"|"<<i->content<<"' from '"<<auth<<"' nameservers? ";
 
-       if(endsOn(i->qname, auth)) {
-         LOG<<"YES!"<<endl;
 
-         DNSResourceRecord rr=*i;
-         rr.d_place=DNSResourceRecord::ANSWER;
-         rr.ttl+=time(0);
-         //      rr.ttl=time(0)+10+10*rr.qtype.getCode();
-         tcache[toLower(i->qname)+"|"+i->qtype.getName()].insert(rr);
-       }
+       if(endsOn(i->qname, auth)) {
+         if(aabit && d_lwr.d_rcode==RCode::NoError && i->d_place==DNSResourceRecord::ANSWER && arg().contains("delegation-only",auth)) {
+           LOG<<"NO! Is from delegation-only zone"<<endl;
+           return RCode::NXDomain;
+         }
+         else {
+           LOG<<"YES!"<<endl;
+           
+           DNSResourceRecord rr=*i;
+           rr.d_place=DNSResourceRecord::ANSWER;
+           rr.ttl+=time(0);
+           //    rr.ttl=time(0)+10+10*rr.qtype.getCode();
+           tcache[toLower(i->qname)+"|"+i->qtype.getName()].insert(rr);
+         }
+       }         
        else
          LOG<<"NO!"<<endl;
       }