Update net/powerdns-recursor to 4.0.4.

PowerDNS Recursor 4.0.4
=======================

Change highlights include:

- Check TSIG signature on IXFR (Security Advisory 2016-04)
- Don't parse spurious RRs in queries when we don't need them
  (Security Advisory 2016-02)
- Add 'max-recursion-depth' to limit the number of internal recursion
- Wait until after daemonizing to start the RPZ and protobuf threads
- On RPZ customPolicy, follow the resulting CNAME
- Make the negcache forwarded zones aware
- Cache records for zones that were delegated to from a forwarded zone
- DNSSEC: don't go bogus on zero configured DSs
- DNSSEC: NSEC3 optout and Bogus insecure forward fixes
- DNSSEC: Handle CNAMEs at the apex of secure zones to other secure
  zones

PowerDNS Recursor 4.0.3
=======================

Bug fixes
- Call gettag() for TCP queries
- Fix the use of an uninitialized filtering policy
- Parse query-local-address before lua-config-file
- Fix accessing an empty policyCustom, policyName from Lua
- ComboAddress: don't allow invalid ports
- Fix RPZ default policy not being applied over IXFR
- DNSSEC: Actually follow RFC 7646 §2.1
- Add boost context ldflags so freebsd builds can find the libs
- Ignore NS records in a RPZ zone received over IXFR
- Fix build with OpenSSL 1.1.0 final
- Don't validate when a Lua hook took the query
- Fix a protobuf regression (requestor/responder mix-up)

Additions and Enhancements
- Support Boost 1.61+ fcontext
- Add Lua binding for DNSRecord::d_place

PowerDNS Recursor 4.0.2
=======================

Bug fixes
- Set dq.rcode before calling postresolve
- Honor PIE flags.
- Fix build with LibreSSL, for which OPENSSL_VERSION_NUMBER is
  irrelevant
- Don't shuffle CNAME records. (thanks to Gert van Dijk for the
  extensive bug report!)
- Fix delegation-only

Additions and enhancements
- Respect the timeout when connecting to a protobuf server
- allow newDN to take a DNSName in; document missing methods
- expose SMN toString to lua
- Anonymize the protobuf ECS value as well (thanks to Kai Storbeck of
  XS4All for finding this)
- Allow Lua access to the result of the Policy Engine decision, skip
  RPZ, finish RPZ implementation
- Remove unused DNSPacket::d_qlen
- RPZ: Use query-local-address(6) by default (thanks to Oli Schacher
  of switch.ch for the feature request)
- Move the root DNSSEC data to a header file

PowerDNS Recursor 4.0.1
=======================

Bug fixes
- Improve DNSSEC record skipping for non dnssec queries (Kees
  Monshouwer)
- Don't validate zones from the local auth store, go one level down
  while validating when there is a CNAME
- Don't go bogus on islands of security
- Check all possible chains for Insecures
- Don't go Bogus on a CNAME at the apex
- RPZ: default policy should also override local data RRs
- Fix a crash when the next name in a chained query is empty and
  rec_control current-queries is invoked

Improvements
- OpenSSL 1.1.0 support (Christian Hofstaedtler)
- Fix warnings with gcc on musl-libc (James Taylor)
- Also validate on +DO
- Fail to start when the lua-dns-script does not exist
- Add more Netmask methods for Lua (Aki Tuomi)
- Validate DNSSEC for security polling
- Turn on root-nx-trust by default and log-common-errors=off
- Allow for multiple trust anchors per zone
- Fix compilation warning when building without Protobuf

PowerDNS Recursor 4.0.0
=======================

- Moved to C++ 2011, a cleaner more powerful version of C++ that has
  allowed us to improve the quality of implementation in many places.
- Implemented dedicated infrastructure for dealing with DNS names that
  is fully "DNS Native" and needs less escaping and unescaping.
- Switched to binary storage of DNS records in all places.
- Moved ACLs to a dedicated Netmask Tree.
- Implemented a version of RCU for configuration changes
- Instrumented our use of the memory allocator, reduced number of
  malloc calls substantially.
- The Lua hook infrastructure was redone using LuaWrapper; old scripts
  will no longer work, but new scripts are easier to write under the
  new interface.
- DNSSEC processing: if you ask for DNSSEC records, you will get them.
- DNSSEC validation: if so configured, PowerDNS perform DNSSEC
  validation of your answers.
- Completely revamped Lua scripting API that is "DNSName" native and
  therefore far less error prone, and likely faster for most commonly
  used scenarios.
- New asynchronous per-domain, per-ip address, query engine.
- RPZ (from file, over AXFR or IXFR) support.
- All caches can now be wiped on suffixes, because of canonical
  ordering.
- Many, many more relevant performance metrics, including upstream
  authoritative performance measurements.
- EDNS Client Subnet support, including cache awareness of
  subnet-varying answers.
This commit is contained in:
fhajny 2017-03-09 13:43:49 +00:00
parent 8791799143
commit aa9e0f90c5
18 changed files with 43 additions and 510 deletions

View file

@ -1,7 +1,7 @@
# $NetBSD: Makefile,v 1.18 2015/06/10 14:40:07 fhajny Exp $
# $NetBSD: Makefile,v 1.19 2017/03/09 13:43:49 fhajny Exp $
#
DISTNAME= pdns-recursor-3.7.3
DISTNAME= pdns-recursor-4.0.4
CATEGORIES= net
MASTER_SITES= http://downloads.powerdns.com/releases/
EXTRACT_SUFX= .tar.bz2
@ -11,7 +11,7 @@ HOMEPAGE= http://www.powerdns.com/
COMMENT= PowerDNS resolver/recursing nameserver
LICENSE= gnu-gpl-v2
HAS_CONFIGURE= yes
GNU_CONFIGURE= yes
USE_LANGUAGES= c c++
USE_TOOLS+= gmake
@ -19,10 +19,9 @@ RCD_SCRIPTS+= pdns_recursor
EGDIR= ${PREFIX}/share/examples/pdns-recursor
BUILD_MAKE_FLAGS+= SYSCONFDIR=${PKG_SYSCONFDIR} OPTFLAGS=
PTHREAD_AUTO_VARS= yes
INSTALL_MAKE_FLAGS+= BINDIR=${PREFIX}/bin SBINDIR=${PREFIX}/sbin
INSTALL_MAKE_FLAGS+= SYSCONFDIR=${EGDIR} MANDIR=${PREFIX}/${PKGMANDIR}
INSTALL_MAKE_FLAGS+= sysconfdir=${EGDIR}
CONF_FILES+= ${EGDIR}/recursor.conf-dist \
${PKG_SYSCONFDIR}/recursor.conf
@ -34,12 +33,7 @@ CXXFLAGS+= -std=c++11 -Wno-c++11-narrowing
.include "options.mk"
post-extract:
${LN} -s FreeBSD.inc ${WRKSRC}/sysdeps/NetBSD.inc
post-build:
${CP} ${WRKSRC}/pdns_recursor.1 ${WRKSRC}/pdns_recursor.8
${CP} ${WRKSRC}/rec_control.1 ${WRKSRC}/rec_control.8
.include "../../devel/boost-headers/buildlink3.mk"
.include "../../security/openssl/buildlink3.mk"
.include "../../mk/pthread.buildlink3.mk"
.include "../../mk/bsd.pkg.mk"

View file

@ -1,6 +1,6 @@
@comment $NetBSD: PLIST,v 1.3 2014/03/11 14:05:10 jperkin Exp $
@comment $NetBSD: PLIST,v 1.4 2017/03/09 13:43:49 fhajny Exp $
bin/rec_control
man/man8/pdns_recursor.8
man/man8/rec_control.8
man/man1/pdns_recursor.1
man/man1/rec_control.1
sbin/pdns_recursor
share/examples/pdns-recursor/recursor.conf-dist

View file

@ -1,21 +1,10 @@
$NetBSD: distinfo,v 1.15 2015/11/04 00:35:28 agc Exp $
$NetBSD: distinfo,v 1.16 2017/03/09 13:43:49 fhajny Exp $
SHA1 (pdns-recursor-3.7.3.tar.bz2) = a09d960852ba67c1618dfa9258158a1145f657c1
RMD160 (pdns-recursor-3.7.3.tar.bz2) = c73738ea571b8ce4ef4c01ee02c971c990d03f42
SHA512 (pdns-recursor-3.7.3.tar.bz2) = 35b95130e46d04c91adc3c4676a6e5546ac25d21ec576734162764732993d876d34f0e8124b7b6934c8354c0d042ffa5ec30f138b83a9aeaafcefa3808adcf23
Size (pdns-recursor-3.7.3.tar.bz2) = 245192 bytes
SHA1 (patch-Makefile.in) = 4aa3fc487afab1795532cc6a09975fa6580625fe
SHA1 (pdns-recursor-4.0.4.tar.bz2) = e3d2f18e0ea929e425bc9da4256f76331797f691
RMD160 (pdns-recursor-4.0.4.tar.bz2) = 12b1b7239156d9b898199c02a1edd6875301a7b1
SHA512 (pdns-recursor-4.0.4.tar.bz2) = 9473dfe9abc509b2bb953139dd7892de2027ee1508902fa0c2cd30dd9a88878fcf44370b8372d573cbab12de32bb8c604005d3b39ea34db2ef86786e689d36ab
Size (pdns-recursor-4.0.4.tar.bz2) = 1050596 bytes
SHA1 (patch-dns.hh) = 7e9c1b10a066a605b74ebdbee2d894aed50f6c68
SHA1 (patch-dnsparser.cc) = acd60fbeaa5ad3aa09db306eeaddb1071bbedfb7
SHA1 (patch-dnsparser.hh) = 289e271629969a50b41e805ae9f092ce75a1483f
SHA1 (patch-iputils.hh) = 01134b045189653046036d7cb081a2f4d1ed27e4
SHA1 (patch-kqueuemplexer.cc) = 1e3923aec5f81400eaedffa07c50762da7bdd5c8
SHA1 (patch-namespaces.hh) = b7abe73b649569819fb070e10d3c926c95589bfb
SHA1 (patch-pdns__recursor.1) = de3c561e770558850a9f1bdf13f60570d90a5643
SHA1 (patch-pdns__recursor.cc) = b1d6ba1d1abfbd2759431caffc113bca22513abd
SHA1 (patch-rec__channel.cc) = dee9fba4bbe240ca2070cdf8a8f303bb2e3bce61
SHA1 (patch-rec__channel__rec.cc) = b0b277167fff8a080528f6a5cc75a81658f7c66f
SHA1 (patch-rec__control.1) = 6a38b768cf5ab6f91fcf6eb7e4d5f0c62824f723
SHA1 (patch-recursor__cache.cc) = c2f86bd695ed01ae6b415a61a099696c87f78d63
SHA1 (patch-reczones.cc) = f187de66d755a8e134804282ceb7723aa9bd392e
SHA1 (patch-sysdeps_SunOS.inc) = e2087d1469437c88266bc30566cf9d7415e7af69
SHA1 (patch-iputils.hh) = aaf3b913fbe26f5daa9c2b16ff24cc9a7a1d7de0
SHA1 (patch-kqueuemplexer.cc) = 87b3b6670393ee60fc96cf91c5acf575adfd06c0
SHA1 (patch-qtype.hh) = f14eb9ad7efc7dd4a0ce220c1f93044ef69e99c2

View file

@ -1,98 +0,0 @@
$NetBSD: patch-Makefile.in,v 1.1 2015/06/10 14:22:29 fhajny Exp $
Use proper locations and install scripts.
--- Makefile.in.orig 2015-04-21 13:02:57.000000000 +0000
+++ Makefile.in
@@ -1,6 +1,8 @@
# user editable stuff:
-SBINDIR=/usr/sbin/
-BINDIR=/usr/bin/
+PREFIX?=/usr
+SBINDIR=$(PREFIX)/sbin/
+BINDIR=$(PREFIX)/bin/
+MANDIR=$(PREFIX)/share/man
SYSCONFDIR=/etc/powerdns/
LOCALSTATEDIR=/var/run/
OPTFLAGS?=-O3
@@ -12,6 +14,13 @@ STRIP_BINARIES?=1
LINKCC=$(CXX)
CC?=gcc
+INSTALL?=install
+SHAREMODE?=644
+MANMODE?=444
+INSTALL_DIR?=$(INSTALL) -d
+INSTALL_DATA?=$(INSTALL) -m $(SHAREMODE)
+INSTALL_MAN?=$(INSTALL) -m $(MANMODE)
+
# Lua 5.1 settings
# static dependencies
@@ -30,7 +39,7 @@ REC_CONTROL_OBJECTS=rec_channel.o rec_co
unix_utility.o logger.o qtype.o
# what we need
-all: message version_generated.h build
+all: message version_generated.h build recursor.conf-dist
# OS specific instructions
-include sysdeps/$(shell uname).inc
@@ -71,7 +80,7 @@ CFLAGS += -DSYSCONFDIR='"$(SYSCONFDIR)"'
# Version
build_date := $(shell LC_TIME=C date '+%Y%m%d%H%M%S')
-build_host := $(shell id -u -n)@$(shell hostname -f)
+build_host := $(shell id -u -n)@$(shell hostname)
.PHONY: version_generated.h
version_generated.h:
@@ -89,6 +98,10 @@ endef
export create_version_generated_h
+recursor.conf-dist: pdns_recursor
+ @# Not cross-compile friendly :/
+ ./pdns_recursor --config > $@
+
message:
@echo
@echo PLEASE READ: If you get an error mentioning \#include '<boost/something.hpp>', please read README
@@ -107,20 +120,14 @@ basic_checks:
fi
install: build-stamp
- -mkdir -p $(DESTDIR)/$(SBINDIR)
- cp pdns_recursor $(DESTDIR)/$(SBINDIR)
-ifeq ($(STRIP_BINARIES), 1)
- strip $(DESTDIR)/$(SBINDIR)/pdns_recursor
-endif
- mkdir -p $(DESTDIR)/$(BINDIR)
- cp rec_control $(DESTDIR)/$(BINDIR)
-ifeq ($(STRIP_BINARIES), 1)
- strip $(DESTDIR)/$(BINDIR)/rec_control
-endif
- -mkdir -p $(DESTDIR)/$(SYSCONFDIR)
- $(DESTDIR)/$(SBINDIR)/pdns_recursor --config > $(DESTDIR)/$(SYSCONFDIR)/recursor.conf-dist
- -mkdir -p $(DESTDIR)/usr/share/man/man1
- cp pdns_recursor.1 rec_control.1 $(DESTDIR)/usr/share/man/man1
+ $(INSTALL_DIR) $(DESTDIR)/$(SBINDIR)
+ $(INSTALL) pdns_recursor $(DESTDIR)/$(SBINDIR)
+ $(INSTALL_DIR) $(DESTDIR)/$(BINDIR)
+ $(INSTALL) rec_control $(DESTDIR)/$(BINDIR)
+ $(INSTALL_DIR) $(DESTDIR)/$(SYSCONFDIR)
+ $(INSTALL_DATA) recursor.conf-dist $(DESTDIR)/$(SYSCONFDIR)
+ $(INSTALL_DIR) $(DESTDIR)/$(MANDIR)/man8
+ $(INSTALL_MAN) pdns_recursor.8 rec_control.8 $(DESTDIR)/$(MANDIR)/man8
$(OS_SPECIFIC_INSTALL)
clean: binclean
@@ -135,7 +142,7 @@ dep:
-include dep
optional:
- mkdir optional
+ $(INSTALL_DIR) optional
pdns_recursor: optional $(OPTIONALS) $(PDNS_RECURSOR_OBJECTS)
$(LINKCC) $(PDNS_RECURSOR_OBJECTS) $(wildcard optional/*.o) $(LDFLAGS) -o $@

View file

@ -1,24 +0,0 @@
$NetBSD: patch-dnsparser.cc,v 1.2 2015/06/10 14:22:29 fhajny Exp $
Straighten Boost namespace.
--- dnsparser.cc.orig 2015-04-21 13:02:57.000000000 +0000
+++ dnsparser.cc
@@ -109,7 +109,7 @@ static const string EncodeDNSLabel(const
}
-shared_ptr<DNSRecordContent> DNSRecordContent::unserialize(const string& qname, uint16_t qtype, const string& serialized)
+boost::shared_ptr<DNSRecordContent> DNSRecordContent::unserialize(const string& qname, uint16_t qtype, const string& serialized)
{
dnsheader dnsheader;
memset(&dnsheader, 0, sizeof(dnsheader));
@@ -143,7 +143,7 @@ shared_ptr<DNSRecordContent> DNSRecordCo
memcpy(&packet[pos], serialized.c_str(), serialized.size()); pos+=(uint16_t)serialized.size();
MOADNSParser mdp((char*)&*packet.begin(), (unsigned int)packet.size());
- shared_ptr<DNSRecordContent> ret= mdp.d_answers.begin()->first.d_content;
+ boost::shared_ptr<DNSRecordContent> ret= mdp.d_answers.begin()->first.d_content;
ret->header.d_type=ret->d_qtype;
ret->label=mdp.d_answers.begin()->first.d_label;
ret->header.d_ttl=mdp.d_answers.begin()->first.d_ttl;

View file

@ -1,27 +0,0 @@
$NetBSD: patch-dnsparser.hh,v 1.2 2015/06/10 14:22:29 fhajny Exp $
Straighten Boost namespace.
--- dnsparser.hh.orig 2015-04-21 13:02:57.000000000 +0000
+++ dnsparser.hh
@@ -183,7 +183,7 @@ public:
return record;
}
- static shared_ptr<DNSRecordContent> unserialize(const string& qname, uint16_t qtype, const string& serialized);
+ static boost::shared_ptr<DNSRecordContent> unserialize(const string& qname, uint16_t qtype, const string& serialized);
void doRecordCheck(const struct DNSRecord&){}
@@ -327,9 +327,9 @@ public:
//! All answers contained in this packet
answers_t d_answers;
- shared_ptr<PacketReader> getPacketReader(uint16_t offset)
+ boost::shared_ptr<PacketReader> getPacketReader(uint16_t offset)
{
- shared_ptr<PacketReader> pr(new PacketReader(d_content));
+ boost::shared_ptr<PacketReader> pr(new PacketReader(d_content));
pr->d_pos=offset;
return pr;
}

View file

@ -1,12 +1,12 @@
$NetBSD: patch-iputils.hh,v 1.1 2015/06/10 14:22:29 fhajny Exp $
$NetBSD: patch-iputils.hh,v 1.2 2017/03/09 13:43:49 fhajny Exp $
IP_PKTINFO structure different on NetBSD than expected.
--- iputils.hh.orig 2015-04-21 13:02:57.000000000 +0000
--- iputils.hh.orig 2017-01-13 08:55:55.000000000 +0000
+++ iputils.hh
@@ -38,6 +38,10 @@
#include <boost/tuple/tuple.hpp>
#include <boost/tuple/tuple_comparison.hpp>
#include <boost/lexical_cast.hpp>
+#if defined(IP_PKTINFO) && defined(__NetBSD__)
+#undef IP_PKTINFO
@ -14,4 +14,4 @@ IP_PKTINFO structure different on NetBSD than expected.
+
#include "namespaces.hh"
union ComboAddress {
#ifdef __APPLE__

View file

@ -1,11 +1,11 @@
$NetBSD: patch-kqueuemplexer.cc,v 1.2 2015/06/10 14:22:29 fhajny Exp $
$NetBSD: patch-kqueuemplexer.cc,v 1.3 2017/03/09 13:43:49 fhajny Exp $
kqueue systems normally have sys/event.h
--- kqueuemplexer.cc.orig 2015-04-21 13:02:57.000000000 +0000
--- kqueuemplexer.cc.orig 2017-01-13 08:55:55.000000000 +0000
+++ kqueuemplexer.cc
@@ -6,9 +6,7 @@
#include <boost/lexical_cast.hpp>
@@ -29,9 +29,7 @@
#include "misc.hh"
#include "syncres.hh"
#include <sys/types.h>
-#if defined(__FreeBSD__) || defined(__FreeBSD_kernel__)

View file

@ -1,16 +0,0 @@
$NetBSD: patch-namespaces.hh,v 1.2 2015/06/10 14:22:29 fhajny Exp $
Straighten Boost namespace.
--- namespaces.hh.orig 2015-04-21 13:02:57.000000000 +0000
+++ namespaces.hh
@@ -46,9 +46,7 @@ using boost::tie;
using boost::shared_ptr;
using boost::shared_array;
using boost::scoped_array;
-using boost::tuple;
using boost::format;
-using boost::make_tuple;
using boost::optional;
using boost::any_cast;
using boost::any;

View file

@ -1,29 +0,0 @@
$NetBSD: patch-pdns__recursor.1,v 1.2 2015/06/10 14:22:29 fhajny Exp $
Man pages belong to man8.
--- pdns_recursor.1.orig 2015-04-21 13:02:57.000000000 +0000
+++ pdns_recursor.1
@@ -1,4 +1,4 @@
-.TH PDNS_RECURSOR 1 "March 2008"
+.TH PDNS_RECURSOR 8 "March 2008"
.SH NAME
.PP
\f[B]pdns_recursor\f[] - high-performance, simple and secure recursing
@@ -8,7 +8,7 @@ nameserver
\f[B]pdns_recursor\f[] [\f[I]OPTION\f[]]...
.SH DESCRIPTION
.PP
-pdns_recursor(1) is a high performance, simple and secure recursing
+pdns_recursor(8) is a high performance, simple and secure recursing
nameserver.
It currently powers over two million internet connections.
.PP
@@ -251,6 +251,6 @@ File new ones at https://github.com/Powe
Website: http://www.powerdns.com, https://github.com/PowerDNS/pdns
.SH SEE ALSO
.PP
-rec_control(1)
+rec_control(8)
.SH AUTHORS
PowerDNS.COM BV.

View file

@ -1,126 +0,0 @@
$NetBSD: patch-pdns__recursor.cc,v 1.4 2015/06/10 14:22:29 fhajny Exp $
Straighten Boost namespace.
Cast to int so we use the correct overload.
--- pdns_recursor.cc.orig 2015-04-21 13:02:57.000000000 +0000
+++ pdns_recursor.cc
@@ -80,12 +80,12 @@ uint64_t g_latencyStatSize;
bool g_logCommonErrors;
bool g_anyToTcp;
uint16_t g_udpTruncationThreshold;
-__thread shared_ptr<RecursorLua>* t_pdl;
+__thread boost::shared_ptr<RecursorLua>* t_pdl;
__thread addrringbuf_t* t_remotes, *t_servfailremotes, *t_largeanswerremotes;
__thread boost::circular_buffer<pair<std::string, uint16_t> >* t_queryring, *t_servfailqueryring;
-__thread shared_ptr<Regex>* t_traceRegex;
+__thread boost::shared_ptr<Regex>* t_traceRegex;
RecursorControlChannel s_rcc; // only active in thread 0
@@ -169,7 +169,7 @@ struct DNSComboWriter {
ComboAddress d_remote, d_local;
bool d_tcp;
int d_socket;
- shared_ptr<TCPConnection> d_tcpConnection;
+ boost::shared_ptr<TCPConnection> d_tcpConnection;
};
@@ -661,7 +661,7 @@ void startDoResolve(void *p)
IpToU32(i->content, &ip);
pw.xfr32BitInt(htonl(ip));
} else {
- shared_ptr<DNSRecordContent> drc(DNSRecordContent::mastermake(i->qtype.getCode(), i->qclass, i->content));
+ boost::shared_ptr<DNSRecordContent> drc(DNSRecordContent::mastermake(i->qtype.getCode(), i->qclass, i->content));
drc->toPacket(pw);
}
if(pw.size() > maxanswersize) {
@@ -814,7 +814,7 @@ void makeControlChannelSocket(int proces
void handleRunningTCPQuestion(int fd, FDMultiplexer::funcparam_t& var)
{
- shared_ptr<TCPConnection> conn=any_cast<shared_ptr<TCPConnection> >(var);
+ boost::shared_ptr<TCPConnection> conn=any_cast<boost::shared_ptr<TCPConnection> >(var);
if(conn->state==TCPConnection::BYTE0) {
int bytes=recv(conn->getFD(), conn->data, 2, 0);
@@ -919,7 +919,7 @@ void handleNewTCPQuestion(int fd, FDMult
}
Utility::setNonBlocking(newsock);
- shared_ptr<TCPConnection> tc(new TCPConnection(newsock, addr));
+ boost::shared_ptr<TCPConnection> tc(new TCPConnection(newsock, addr));
tc->state=TCPConnection::BYTE0;
t_fdm->addReadFD(tc->getFD(), handleRunningTCPQuestion, tc);
@@ -1081,7 +1081,7 @@ void handleNewUDPQuestion(int fd, FDMult
}
-typedef vector<pair<int, function< void(int, any&) > > > deferredAdd_t;
+typedef vector<pair<int, boost::function< void(int, any&) > > > deferredAdd_t;
deferredAdd_t deferredAdd;
void makeTCPServerSockets()
@@ -1273,7 +1273,7 @@ void doStats(void)
time_t now = time(0);
if(lastOutputTime && lastQueryCount && now != lastOutputTime) {
- L<<Logger::Warning<<"stats: "<< (SyncRes::s_queries - lastQueryCount) / (now - lastOutputTime) <<" qps (average over "<< (now - lastOutputTime) << " seconds)"<<endl;
+ L<<Logger::Warning<<"stats: "<< (SyncRes::s_queries - lastQueryCount) / (now - lastOutputTime) <<" qps (average over "<< (int)(now - lastOutputTime) << " seconds)"<<endl;
}
lastOutputTime = now;
lastQueryCount = SyncRes::s_queries;
@@ -1734,7 +1734,7 @@ string* doReloadLuaScript()
return new string("unloaded\n");
}
else {
- *t_pdl = shared_ptr<RecursorLua>(new RecursorLua(fname));
+ *t_pdl = boost::shared_ptr<RecursorLua>(new RecursorLua(fname));
}
}
catch(std::exception& e) {
@@ -1762,7 +1762,7 @@ try
return new string("unset\n");
}
else {
- (*t_traceRegex) = shared_ptr<Regex>(new Regex(newRegex));
+ (*t_traceRegex) = boost::shared_ptr<Regex>(new Regex(newRegex));
return new string("ok\n");
}
}
@@ -2096,11 +2096,11 @@ try
L<<Logger::Warning<<"Done priming cache with root hints"<<endl;
- t_pdl = new shared_ptr<RecursorLua>();
+ t_pdl = new boost::shared_ptr<RecursorLua>();
try {
if(!::arg()["lua-dns-script"].empty()) {
- *t_pdl = shared_ptr<RecursorLua>(new RecursorLua(::arg()["lua-dns-script"]));
+ *t_pdl = boost::shared_ptr<RecursorLua>(new RecursorLua(::arg()["lua-dns-script"]));
L<<Logger::Warning<<"Loaded 'lua' script from '"<<::arg()["lua-dns-script"]<<"'"<<endl;
}
}
@@ -2109,7 +2109,7 @@ try
_exit(99);
}
- t_traceRegex = new shared_ptr<Regex>();
+ t_traceRegex = new boost::shared_ptr<Regex>();
unsigned int ringsize=::arg().asNum("stats-ringbuffer-entries") / g_numWorkerThreads;
if(ringsize) {
t_remotes = new addrringbuf_t();
@@ -2176,7 +2176,7 @@ try
expired_t expired=t_fdm->getTimeouts(g_now);
for(expired_t::iterator i=expired.begin() ; i != expired.end(); ++i) {
- shared_ptr<TCPConnection> conn=any_cast<shared_ptr<TCPConnection> >(i->second);
+ boost::shared_ptr<TCPConnection> conn=any_cast<boost::shared_ptr<TCPConnection> >(i->second);
if(g_logCommonErrors)
L<<Logger::Warning<<"Timeout from remote TCP client "<< conn->d_remote.toString() <<endl;
t_fdm->removeReadFD(i->first);

View file

@ -0,0 +1,17 @@
$NetBSD: patch-qtype.hh,v 1.1 2017/03/09 13:43:49 fhajny Exp $
Avoid symbol pollution on SunOS.
--- qtype.hh.orig 2017-01-13 08:55:55.000000000 +0000
+++ qtype.hh
@@ -26,6 +26,10 @@
#include <vector>
#include "namespaces.hh"
+#if defined(__sun) && defined(DS)
+#undef DS
+#endif
+
/** The QType class is meant to deal easily with the different kind of resource types, like 'A', 'NS',
* 'CNAME' etcetera. These types have both a name and a number. This class can seamlessly move between
* them. Use it like this:

View file

@ -1,32 +0,0 @@
$NetBSD: patch-rec__channel.cc,v 1.3 2015/06/10 14:22:29 fhajny Exp $
We need to include cstring
--- rec_channel.cc.orig 2015-04-21 13:02:57.000000000 +0000
+++ rec_channel.cc
@@ -4,6 +4,7 @@
#include "misc.hh"
#include <string.h>
#include <cstdlib>
+#include <cstring>
#include <unistd.h>
#include <sys/types.h>
#include <sys/stat.h>
@@ -46,7 +47,7 @@ int RecursorControlChannel::listen(const
if(makeUNsockaddr(fname, &d_local))
throw PDNSException("Unable to bind to controlsocket, path '"+fname+"' is not a valid UNIX socket path.");
- if(bind(d_fd, (sockaddr*)&d_local,sizeof(d_local))<0)
+ if(::bind(d_fd, (sockaddr*)&d_local,sizeof(d_local))<0)
throw PDNSException("Unable to bind to controlsocket '"+fname+"': "+stringerror());
return d_fd;
@@ -79,7 +80,7 @@ void RecursorControlChannel::connect(con
if(err < 0 && errno!=ENOENT)
throw PDNSException("Unable to remove local controlsocket: "+stringerror());
- if(bind(d_fd, (sockaddr*)&d_local,sizeof(d_local))<0)
+ if(::bind(d_fd, (sockaddr*)&d_local,sizeof(d_local))<0)
throw PDNSException("Unable to bind to local temporary file: "+stringerror());
if(chmod(d_local.sun_path,0666)<0) // make sure that pdns can reply!

View file

@ -1,33 +0,0 @@
$NetBSD: patch-rec__channel__rec.cc,v 1.2 2015/06/10 14:22:29 fhajny Exp $
Straighten Boost namespace.
--- rec_channel_rec.cc.orig 2015-04-21 13:02:57.000000000 +0000
+++ rec_channel_rec.cc
@@ -31,7 +31,7 @@ pthread_mutex_t g_carbon_config_lock=PTH
map<string, const uint32_t*> d_get32bitpointers;
map<string, const uint64_t*> d_get64bitpointers;
-map<string, function< uint32_t() > > d_get32bitmembers;
+map<string, boost::function< uint32_t() > > d_get32bitmembers;
void addGetStat(const string& name, const uint32_t* place)
{
@@ -41,7 +41,7 @@ void addGetStat(const string& name, cons
{
d_get64bitpointers[name]=place;
}
-void addGetStat(const string& name, function<uint32_t ()> f )
+void addGetStat(const string& name, boost::function<uint32_t ()> f )
{
d_get32bitmembers[name]=f;
}
@@ -66,7 +66,7 @@ map<string,string> getAllStatsMap()
pair<string, const uint32_t*> the32bits;
pair<string, const uint64_t*> the64bits;
- pair<string, function< uint32_t() > > the32bitmembers;
+ pair<string, boost::function< uint32_t() > > the32bitmembers;
BOOST_FOREACH(the32bits, d_get32bitpointers) {
ret.insert(make_pair(the32bits.first, lexical_cast<string>(*the32bits.second)));

View file

@ -1,29 +0,0 @@
$NetBSD: patch-rec__control.1,v 1.2 2015/06/10 14:22:29 fhajny Exp $
Man pages belong to man8.
--- rec_control.1.orig 2015-04-21 13:02:57.000000000 +0000
+++ rec_control.1
@@ -1,4 +1,4 @@
-.TH REC_CONTROL 1 "April 2006"
+.TH REC_CONTROL 8 "April 2006"
.SH NAME
.PP
rec_control - control pdns_recursor
@@ -8,7 +8,7 @@ rec_control - control pdns_recursor
\f[I]COMMAND\f[] [\f[I]COMMAND-OPTION\f[]]...
.SS DESCRIPTION
.PP
-rec_control(1) allows the operator to control a running instance of the
+rec_control(8) allows the operator to control a running instance of the
pdns_recursor.
.PP
The commands that can be passed to the recursor are described on
@@ -185,6 +185,6 @@ File new ones at https://github.com/Powe
Website: http://wiki.powerdns.com, http://www.powerdns.com
.SH SEE ALSO
.PP
-pdns_recursor(1)
+pdns_recursor(8)
.SH AUTHORS
PowerDNS.COM BV.

View file

@ -1,24 +0,0 @@
$NetBSD: patch-recursor__cache.cc,v 1.2 2015/06/10 14:22:29 fhajny Exp $
Straighten Boost namespace.
--- recursor_cache.cc.orig 2015-04-21 13:02:57.000000000 +0000
+++ recursor_cache.cc
@@ -53,7 +53,7 @@ DNSResourceRecord String2DNSRR(const str
rr.content=".";
}
else {
- shared_ptr<DNSRecordContent> regen=DNSRecordContent::unserialize(qname, qt.getCode(), serial);
+ boost::shared_ptr<DNSRecordContent> regen=DNSRecordContent::unserialize(qname, qt.getCode(), serial);
rr.content=regen->getZoneRepresentation();
}
rr.content.reserve(0);
@@ -79,7 +79,7 @@ string DNSRR2String(const DNSResourceRec
return simpleCompress(rr.content, rr.qname);
else {
string ret;
- shared_ptr<DNSRecordContent> drc(DNSRecordContent::mastermake(type, 1, rr.content));
+ boost::shared_ptr<DNSRecordContent> drc(DNSRecordContent::mastermake(type, 1, rr.content));
ret=drc->serialize(rr.qname);
// cerr<<"stored '"<<rr.qname<<" '"<<rr.qtype.getName()<<"' '"<<rr.content<<"' as "<<ret.size()<<" bytes"<<endl;
return ret;

View file

@ -1,15 +0,0 @@
$NetBSD: patch-reczones.cc,v 1.2 2015/06/10 14:22:29 fhajny Exp $
Straighten Boost namespace.
--- reczones.cc.orig 2015-04-21 13:02:57.000000000 +0000
+++ reczones.cc
@@ -378,7 +378,7 @@ SyncRes::domainmap_t* parseAuthAndForwar
throw PDNSException("Error opening forward-zones-file '"+::arg()["forward-zones-file"]+"': "+stringerror());
}
- shared_ptr<FILE> fp=shared_ptr<FILE>(rfp, fclose);
+ boost::shared_ptr<FILE> fp=boost::shared_ptr<FILE>(rfp, fclose);
string line;
int linenum=0;

View file

@ -1,14 +0,0 @@
$NetBSD: patch-sysdeps_SunOS.inc,v 1.1 2015/06/10 14:22:29 fhajny Exp $
Do not bother with init.d scripts on SunOS.
--- sysdeps/SunOS.inc.orig 2015-04-21 13:02:57.000000000 +0000
+++ sysdeps/SunOS.inc
@@ -3,7 +3,6 @@ ifeq ($(CC),cc)
endif
LDFLAGS+=-lresolv -lsocket -lnsl -ldl
-OS_SPECIFIC_INSTALL=mkdir -p $(DESTDIR)/etc/init.d ; cp pdns-recursor.init.d $(DESTDIR)/etc/init.d/pdns-recursor
LUA_LIBS_CONFIG ?= -llua