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)
#include <map>
#include <vector>
-#include <crypt.h>
+// #include <crypt.h>
#include <exception>
#include <stdexcept>
#include <string>
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
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 <errno.h>
#include <string>
#include <map>
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;
catch(AhuException &ae) {
ostringstream msg;
msg<<" error at "+nowTime()+" parsing '"<<i->name<<"' from file '"<<i->filename<<"': "<<ae.reason;
+
if(status)
*status+=msg.str();
nbbds[bbd->d_id]->d_status=msg.str();
void Bind2Backend::queueReload(BB2DomainInfo *bbd)
{
+ nbbds.clear();
+
// we reload *now* for the time being
//cout<<"unlock domain"<<endl;
bbd->unlock();
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;
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,";");
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,";");
</affiliation>
</author>
- <PubDate>v2.1 $Date: 2003/03/13 12:45:30 $</PubDate>
+ <PubDate>v2.1 $Date: 2003/03/20 12:53:44 $</PubDate>
<Abstract>
<para>
file.
</para>
<sect2 id="changelog-2-9-7"><title>Version 2.9.7</title>
+ <para>
+ Released on 2003-03-20.
+ </para>
<para>
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
- <filename>bind2backend</filename>, 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.
+ <filename>bind2backend</filename>, 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 <command>launch=bind</command>
+ by <command>launch=bind2</command> and renaming all <command>bind-</command> parameters to
+ <command>bind2-</command>. 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.
</para>
<para>
Features:
<itemizedlist>
<listitem>
<para>
- Mark Bergsma contributed <command>local-query-address</command> which allows the operator to select which source address to
+ Mark Bergsma contributed <command>query-local-address</command> 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.
</para>
Thanks to Stephane Bortzmeyer for pointing out the need.
</para>
</listitem>
+ <listitem>
+ <para>
+ Bind2backend, which is almost in compliance with the new IETF AXFR-clarify (some would say
+ 'redefinition') draft.
+ </para>
+ <para>
+ 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.
+ </para>
+ </listitem>
</itemizedlist>
</para>
<para>
bit in this case.
</para>
</listitem>
+ <listitem>
+ <para>
+ 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.
+ </para>
+ </listitem>
<listitem>
<para>
getAnswers() in dnspacket.cc could be forced to read bytes beyond the end of the packet, leading to crashes in the
</para>
</listitem>
</varlistentry>
+ <varlistentry>
+ <term>Q: I compiled PowerDNS myself and I see weird problems, especially on SMP</term>
+ <listitem>
+ <para>
+ 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!
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>Q: PowerDNS does not answer queries on all my IP addresses and I've ignored the warning I got about that at startup</term>
+ <listitem>
+ <para>
+ A: Please don't ignore what PowerDNS says to you. Furthermore, read <xref linkend="all-settings"> about the <command>local-address</command>
+ setting, and use it to specify which IP addresses PowerDNS should listen on.
+ </para>
+ </listitem>
+ </varlistentry>
<varlistentry>
<term>Q: Can I use a MySQL database with the Windows version of PowerDNS?</term>
<listitem>
{
char buffer[1500];
struct sockaddr_un dontcare;
- unsigned int len=sizeof(dontcare);
+
int retlen;
string answer;
for(;;) {