From: Bert Hubert Date: Thu, 20 Mar 2003 12:53:44 +0000 (+0000) Subject: 2.9.7 X-Git-Tag: pdns-2.9.7~1 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=016e4ae988dca99ebf5b97f69c0d0609f2e8a7b5;p=thirdparty%2Fpdns.git 2.9.7 git-svn-id: svn://svn.powerdns.com/pdns/trunk/pdns@162 d19b8d6e-7fed-0310-83ef-9ca221ded41b --- diff --git a/ChangeLog b/ChangeLog index 0d1a0a692c..54f63220cf 100644 --- a/ChangeLog +++ b/ChangeLog @@ -18,10 +18,11 @@ bug - silly wuh debugging output in zone2sql/bindbackend (Ivo van der Wijk) imp - pdns_recursor lived in the 'bin' and not the 'sbin' directory (Norbert Sendetzky) imp - chatter from master/slave backend is not 'Error'-worthy (Willem) bug - recursor neglected the difference between negative cache of NXDOMAIN and NOERROR -imp - added ipv6 AAAAditional processing (noticed by Stephane Bortzmeyer) -imp - fixed incorrect AA bit on serving NS from non-top records (noticed by Stephane Bortzmeyer) -imp - added robustness fixed to dnspacket.cc getAnswers for incoming queries - +feat - added ipv6 AAAAditional processing (noticed by Stephane Bortzmeyer) +bug - fixed incorrect AA bit on serving NS from non-top records (noticed by Stephane Bortzmeyer) +bug - added robustness fixed to dnspacket.cc getAnswers for incoming queries + +bug - freebsd webserver Changes since 2.9.5: - implemented isMaster in bindbackend (we now react to notifies) diff --git a/modules/ldapbackend/powerldap.cc b/modules/ldapbackend/powerldap.cc index d89ca5c3fa..e73fc02797 100644 --- a/modules/ldapbackend/powerldap.cc +++ b/modules/ldapbackend/powerldap.cc @@ -3,7 +3,7 @@ #include #include -#include +// #include #include #include #include diff --git a/pdns.spec b/pdns.spec index fe25074829..ada45b057f 100644 --- a/pdns.spec +++ b/pdns.spec @@ -1,6 +1,6 @@ Buildroot: /tmp/pdns Name: pdns-static -Version: 2.9.6 +Version: 2.9.7 Release: 1 Summary: extremely powerful and versatile nameserver Copyright: see /usr/doc/pdns/copyright diff --git a/pdns/backends/bind/bindbackend2.cc b/pdns/backends/bind/bindbackend2.cc index f30687b04a..62875ef11e 100644 --- a/pdns/backends/bind/bindbackend2.cc +++ b/pdns/backends/bind/bindbackend2.cc @@ -15,7 +15,7 @@ along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ -// $Id: bindbackend2.cc,v 1.1 2003/03/09 15:39:18 ahu Exp $ +// $Id: bindbackend2.cc,v 1.2 2003/03/20 12:53:44 ahu Exp $ #include #include #include @@ -131,12 +131,12 @@ bool Bind2Backend::startTransaction(const string &qname, int id) bool Bind2Backend::commitTransaction() { - delete d_of; d_of=0; if(rename(d_transaction_tmpname.c_str(),s_id_zone_map[d_transaction_id]->d_filename.c_str())<0) throw DBException("Unable to commit (rename to: '"+s_id_zone_map[d_transaction_id]->d_filename+"') AXFRed zone: "+stringerror()); + queueReload(s_id_zone_map[d_transaction_id]); s_id_zone_map[d_transaction_id]->unlock(); d_transaction_id=0; @@ -516,6 +516,7 @@ void Bind2Backend::loadConfig(string* status) catch(AhuException &ae) { ostringstream msg; msg<<" error at "+nowTime()+" parsing '"<name<<"' from file '"<filename<<"': "<d_id]->d_status=msg.str(); @@ -589,6 +590,8 @@ void Bind2Backend::nukeZoneRecords(BB2DomainInfo *bbd) void Bind2Backend::queueReload(BB2DomainInfo *bbd) { + nbbds.clear(); + // we reload *now* for the time being //cout<<"unlock domain"<unlock(); @@ -601,7 +604,11 @@ void Bind2Backend::queueReload(BB2DomainInfo *bbd) ZoneParser ZP; us=this; ZP.setCallback(&callback); + + nbbds[bbd->d_id]=s_id_zone_map[bbd->d_id]; ZP.parse(bbd->d_filename,bbd->d_name,bbd->d_id); + s_id_zone_map[bbd->d_id]=nbbds[bbd->d_id]; + bbd->setCtime(); // and raise d_loaded again! bbd->d_loaded=1; diff --git a/pdns/backends/bind/zoneparser2.cc b/pdns/backends/bind/zoneparser2.cc index 8c56b0c8cb..b94af6731f 100644 --- a/pdns/backends/bind/zoneparser2.cc +++ b/pdns/backends/bind/zoneparser2.cc @@ -67,7 +67,7 @@ void ZoneParser::parse(const string &fname, const string &origin, unsigned int d while(!fds.empty()) { - while(fgets_unlocked(cline,sizeof(cline)-1,fds.top())) { + while(fgets(cline,sizeof(cline)-1,fds.top())) { line=cline; chomp(line," \x1a\r\n"); cutOff(line,";"); @@ -127,7 +127,7 @@ void ZoneParser::parse(const string &fname, const string &origin, vector fds.push(zonein); while(!fds.empty()) { - while(fgets_unlocked(cline,sizeof(cline)-1,fds.top())) { + while(fgets(cline,sizeof(cline)-1,fds.top())) { line=cline; chomp(line," \x1a\r\n"); cutOff(line,";"); diff --git a/pdns/docs/pdns.sgml b/pdns/docs/pdns.sgml index f79933bfaf..f66899a3f6 100644 --- a/pdns/docs/pdns.sgml +++ b/pdns/docs/pdns.sgml @@ -11,7 +11,7 @@ - v2.1 $Date: 2003/03/13 12:45:30 $ + v2.1 $Date: 2003/03/20 12:53:44 $ @@ -82,17 +82,22 @@ file. Version 2.9.7 + + Released on 2003-03-20. + This is a sweeping release in the sense of cleanup. There are some new features but mostly a lot of cleanup going on. Hiding inside is the - bind2backend, the next generation of the bind backend. Very much a work in progress. Those of you with overlapping zones, - as mentioned in the changelog of 2.9.6, are invited to check it out. + bind2backend, the next generation of the bind backend. A work in progress. Those of you with overlapping zones, + as mentioned in the changelog of 2.9.6, are invited to check it out by replacing launch=bind + by launch=bind2 and renaming all bind- parameters to + bind2-. Be aware that if you run with many small zones, this backend is faster, but if you run with a few large ones, it is slower. This will improve. Features: - Mark Bergsma contributed local-query-address which allows the operator to select which source address to + Mark Bergsma contributed query-local-address which allows the operator to select which source address to use. This is useful on servers with multiple source addresses and the operating system selecting an unintended one, leading to remotes denying access. @@ -103,6 +108,17 @@ Thanks to Stephane Bortzmeyer for pointing out the need. + + + Bind2backend, which is almost in compliance with the new IETF AXFR-clarify (some would say + 'redefinition') draft. + + + This backend is not ready for primetime but you may want to try it if you currently have overlapping + zones and note problems. An overlapping zone would be having "ipv6.powerdns.com" and "powerdns.com" zones + on one server. + + @@ -196,6 +212,11 @@ bit in this case. + + + The webserver tended to fail after prolonged operation on FreeBSD, this was due to an uninitialised timeout, other platforms were lucky. Thanks to G.P. de Boer for helping debug this. + + getAnswers() in dnspacket.cc could be forced to read bytes beyond the end of the packet, leading to crashes in the @@ -5338,6 +5359,24 @@ Feb 10 14:16:03 stats: 125784 questions, 13971 cache entries, 309 negative entri + + Q: I compiled PowerDNS myself and I see weird problems, especially on SMP + + + A: There are known issues between gcc <3.2 and PowerDNS on Linux SMP systems. The exact cause is not known but + moving to our precompiled version always fixes the problems. If you compile yourself, use a recent gcc! + + + + + Q: PowerDNS does not answer queries on all my IP addresses and I've ignored the warning I got about that at startup + + + A: Please don't ignore what PowerDNS says to you. Furthermore, read about the local-address + setting, and use it to specify which IP addresses PowerDNS should listen on. + + + Q: Can I use a MySQL database with the Windows version of PowerDNS? diff --git a/pdns/dynmessenger.cc b/pdns/dynmessenger.cc index dce2f25b54..d1ef7486d5 100644 --- a/pdns/dynmessenger.cc +++ b/pdns/dynmessenger.cc @@ -92,7 +92,7 @@ string DynMessenger::receive() const { char buffer[1500]; struct sockaddr_un dontcare; - unsigned int len=sizeof(dontcare); + int retlen; string answer; for(;;) {