--- /dev/null
+See /usr/share/doc/quilt/README.source
--- /dev/null
+# Autogenerated configuration file template
+#################################
+# aaaa-additional-processing turn on to do AAAA additional processing (slow)
+#
+# aaaa-additional-processing=off
+
+#################################
+# allow-from If set, only allow these comma separated netmasks to recurse
+#
+# allow-from=127.0.0.0/8, 10.0.0.0/8, 192.168.0.0/16, 172.16.0.0/12, ::1/128, fe80::/10
+
+#################################
+# allow-from-file If set, load allowed netmasks from this file
+#
+# allow-from-file=
+
+#################################
+# auth-can-lower-ttl If we follow RFC 2181 to the letter, an authoritative server can lower the TTL of NS records
+#
+# auth-can-lower-ttl=off
+
+#################################
+# auth-zones Zones for which we have authoritative data, comma separated domain=file pairs
+#
+# auth-zones=
+
+#################################
+# chroot switch to chroot jail
+#
+# chroot=
+
+#################################
+# client-tcp-timeout Timeout in seconds when talking to TCP clients
+#
+# client-tcp-timeout=2
+
+#################################
+# config-dir Location of configuration directory (recursor.conf)
+#
+# config-dir=/etc/powerdns/
+
+#################################
+# daemon Operate as a daemon
+#
+# daemon=yes
+
+#################################
+# delegation-only Which domains we only accept delegations from
+#
+# delegation-only=
+
+#################################
+# disable-edns Disable EDNS
+#
+# disable-edns=
+
+#################################
+# disable-edns-ping Disable EDNSPing
+#
+# disable-edns-ping=no
+
+#################################
+# disable-packetcache Disable packetcache
+#
+# disable-packetcache=no
+
+#################################
+# dont-query If set, do not query these netmasks for DNS data
+#
+# dont-query=127.0.0.0/8, 10.0.0.0/8, 192.168.0.0/16, 172.16.0.0/12, ::1/128, fe80::/10
+
+#################################
+# entropy-source If set, read entropy from this file
+#
+# entropy-source=/dev/urandom
+
+#################################
+# etc-hosts-file Path to 'hosts' file
+#
+# etc-hosts-file=/etc/hosts
+
+#################################
+# export-etc-hosts If we should serve up contents from /etc/hosts
+#
+# export-etc-hosts=off
+
+#################################
+# forward-zones Zones for which we forward queries, comma separated domain=ip pairs
+#
+# forward-zones=
+
+#################################
+# forward-zones-file File with (+)domain=ip pairs for forwarding
+#
+# forward-zones-file=
+
+#################################
+# forward-zones-recurse Zones for which we forward queries with recursion bit, comma separated domain=ip pairs
+#
+# forward-zones-recurse=
+
+#################################
+# hint-file If set, load root hints from this file
+#
+# hint-file=
+
+#################################
+# ignore-rd-bit Assume each packet requires recursion, for compatability
+#
+# ignore-rd-bit=off
+
+#################################
+# local-address IP addresses to listen on, separated by spaces or commas. Also accepts ports.
+#
+local-address=127.0.0.1
+
+#################################
+# local-port port to listen on
+#
+local-port=53
+
+#################################
+# log-common-errors If we should log rather common errors
+#
+# log-common-errors=yes
+
+#################################
+# logging-facility Facility to log messages as. 0 corresponds to local0
+#
+# logging-facility=
+
+#################################
+# lua-dns-script Filename containing an optional 'lua' script that will be used to modify dns answers
+#
+# lua-dns-script=
+
+#################################
+# max-cache-entries If set, maximum number of entries in the main cache
+#
+# max-cache-entries=1000000
+
+#################################
+# max-cache-ttl maximum number of seconds to keep a cached entry in memory
+#
+# max-cache-ttl=86400
+
+#################################
+# max-mthreads Maximum number of simultaneous Mtasker threads
+#
+# max-mthreads=2048
+
+#################################
+# max-negative-ttl maximum number of seconds to keep a negative cached entry in memory
+#
+# max-negative-ttl=3600
+
+#################################
+# max-packetcache-entries maximum number of entries to keep in the packetcache
+#
+# max-packetcache-entries=500000
+
+#################################
+# max-tcp-clients Maximum number of simultaneous TCP clients
+#
+# max-tcp-clients=128
+
+#################################
+# max-tcp-per-client If set, maximum number of TCP sessions per client (IP address)
+#
+# max-tcp-per-client=0
+
+#################################
+# network-timeout Wait this nummer of milliseconds for network i/o
+#
+# network-timeout=1500
+
+#################################
+# no-shuffle Don't change
+#
+# no-shuffle=off
+
+#################################
+# packetcache-servfail-ttl maximum number of seconds to keep a cached servfail entry in packetcache
+#
+# packetcache-servfail-ttl=60
+
+#################################
+# packetcache-ttl maximum number of seconds to keep a cached entry in packetcache
+#
+# packetcache-ttl=3600
+
+#################################
+# pdns-distributes-queries If PowerDNS itself should distribute queries over threads (EXPERIMENTAL)
+#
+# pdns-distributes-queries=no
+
+#################################
+# processes Launch this number of processes (EXPERIMENTAL, DO NOT CHANGE)
+#
+# processes=1
+
+#################################
+# query-local-address Source IP address for sending queries
+#
+# query-local-address=0.0.0.0
+
+#################################
+# query-local-address6 Source IPv6 address for sending queries
+#
+# query-local-address6=
+
+#################################
+# quiet Suppress logging of questions and answers
+#
+quiet=yes
+
+#################################
+# remotes-ringbuffer-entries maximum number of packets to store statistics for
+#
+# remotes-ringbuffer-entries=0
+
+#################################
+# serve-rfc1918 If we should be authoritative for RFC 1918 private IP space
+#
+# serve-rfc1918=
+
+#################################
+# server-id Returned when queried for 'server.id' TXT or NSID, defaults to hostname
+#
+# server-id=
+
+#################################
+# setgid If set, change group id to this gid for more security
+#
+setgid=pdns
+
+#################################
+# setuid If set, change user id to this uid for more security
+#
+setuid=pdns
+
+#################################
+# single-socket If set, only use a single socket for outgoing queries
+#
+# single-socket=off
+
+#################################
+# soa-minimum-ttl Don't change
+#
+# soa-minimum-ttl=0
+
+#################################
+# soa-serial-offset Don't change
+#
+# soa-serial-offset=0
+
+#################################
+# socket-dir Where the controlsocket will live
+#
+# socket-dir=/var/run/
+
+#################################
+# socket-group Group of socket
+#
+# socket-group=
+
+#################################
+# socket-mode Permissions for socket
+#
+# socket-mode=
+
+#################################
+# socket-owner Owner of socket
+#
+# socket-owner=
+
+#################################
+# spoof-nearmiss-max If non-zero, assume spoofing after this many near misses
+#
+# spoof-nearmiss-max=20
+
+#################################
+# stack-size stack size per mthread
+#
+# stack-size=200000
+
+#################################
+# threads Launch this number of threads
+#
+# threads=2
+
+#################################
+# trace if we should output heaps of logging
+#
+# trace=off
+
+#################################
+# version-string string reported on version.pdns or version.bind
+#
+# version-string=PowerDNS Recursor 3.3 $Id: pdns_recursor.cc 1712 2010-09-11 13:40:03Z ahu $
+
+
--- /dev/null
+Source: pdns-recursor
+Section: net
+Priority: extra
+Standards-Version: 3.9.6
+Maintainer: PowerDNS Autobuilder <powerdns.support@powerdns.com>
+Origin: PowerDNS
+Build-Depends: debhelper (>= 9~), dh-systemd, quilt, dpkg-dev (>= 1.17.0~), libboost-dev, libboost-serialization-dev, liblua5.2-dev, pkg-config
+Homepage: http://www.powerdns.com/
+
+Package: pdns-recursor
+Architecture: any
+Depends: ${shlibs:Depends}, ${misc:Depends}, lsb-base (>= 3.0-6), adduser
+Replaces: pdns
+Recommends: pdns-doc
+Description: PowerDNS recursor
+ PowerDNS is a versatile nameserver which supports a large number
+ of different backends ranging from simple zonefiles to relational
+ databases and load balancing/failover algorithms.
+ PowerDNS tries to emphasize speed and security.
+ .
+ This is the recursive nameserver that goes out to the internet and
+ resolve queries about other domains.
+
+Package: pdns-recursor-dbg
+Section: debug
+Architecture: any
+Depends: pdns-recursor (= ${binary:Version}), ${misc:Depends}
+Description: debugging symbols for PowerDNS recursor
+ PowerDNS is a versatile nameserver which supports a large number
+ of different backends ranging from simple zonefiles to relational
+ databases and load balancing/failover algorithms.
+ PowerDNS tries to emphasize speed and security.
+ .
+ This package contains debugging symbols for PowerDNS to assist in
+ debugging, such as with gdb. It is not required for normal operation.
--- /dev/null
+Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
+Upstream-Name: PowerDNS
+Source: https://www.powerdns.com/downloads.html
+
+Files: *
+Copyright: 2002 - 2014 PowerDNS.COM BV and contributors
+License: GPL-2 with OpenSSL Exception
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License version 2
+ as published by the Free Software Foundation
+ .
+ In addition, for the avoidance of any doubt, permission is granted to
+ link this program with OpenSSL and to (re)distribute the binaries
+ produced as the result of such linking.
+ .
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+ .
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ .
+ On Debian systems, the full text of the GNU General Public
+ License version 2 can be found in the file
+ `/usr/share/common-licenses/GPL-2'.
+
+Files: debian/*
+Copyright: 2002 - 2004 Wichert Akkermann <wichert@wiggy.net>
+ 2004 - 2013 Matthijs Möhlmann <matthijs@cacholong.nl>
+ 2012 - 2013 Marc Haber <mh+debian-packages@zugschlus.de>
+ 2014 Christian Hofstaedtler <zeha@debian.org>
+License: GPL-2
+
+Files: pdns/ext/rapidjson/*
+Copyright: 2011 Milo Yip
+License: Expat
+
+Files: pdns/ext/polarssl*
+Copyright: 2006-2010, Brainspark B.V.
+License: GPL-2+
+
+Files: pdns/ext/yahttp*
+Copyright: 2014 Aki Tuomi
+License: LGPL-2.1+
+
+License: Expat
+ Permission is hereby granted, free of charge, to any person obtaining a copy
+ of this software and associated documentation files (the "Software"), to deal
+ in the Software without restriction, including without limitation the rights
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ copies of the Software, and to permit persons to whom the Software is
+ furnished to do so, subject to the following conditions:
+ .
+ The above copyright notice and this permission notice shall be included in
+ all copies or substantial portions of the Software.
+ .
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ THE SOFTWARE.
+
+License: GPL-2
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License.
+ .
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+ .
+ You should have received a copy of the GNU General Public License along
+ with this program; if not, write to the Free Software Foundation, Inc.,
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ .
+ On Debian systems, the full text of the GNU General Public
+ License version 2 can be found in the file
+ `/usr/share/common-licenses/GPL-2'.
+
+License: GPL-2+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+ .
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+ .
+ You should have received a copy of the GNU General Public License along
+ with this program; if not, write to the Free Software Foundation, Inc.,
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ .
+ On Debian systems, the full text of the GNU General Public
+ License version 2 can be found in the file
+ `/usr/share/common-licenses/GPL-2'.
+
+License: LGPL-2.1+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+ .
+ This library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+ .
+ You should have received a copy of the GNU Lesser General Public
+ License along with this library; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ .
+ On Debian systems, the full text of the GNU Lesser General Public
+ License version 2.1 can be found in the file
+ `/usr/share/common-licenses/LGPL-2.1'.
--- /dev/null
+# Variables for PowerDNS recursor
+#
+# Set START to yes to start the pdns-recursor
+START=yes
+# Run resolvconf?
+RESOLVCONF=yes
--- /dev/null
+etc/powerdns
+etc/init.d
+etc/default
+usr/bin
+usr/sbin
+usr/share/doc/pdns-recursor
--- /dev/null
+#!/bin/sh
+### BEGIN INIT INFO
+# Provides: pdns-recursor
+# Required-Start: $network $remote_fs $syslog
+# Required-Stop: $network $remote_fs $syslog
+# Default-Start: 2 3 4 5
+# Default-Stop: 0 1 6
+# Short-Description: PowerDNS Recursor - Recursive DNS Server
+# Description: PowerDNS Recursor - Recursive DNS Server
+### END INIT INFO
+
+#
+# Authors: Matthijs Möhlmann <matthijs@cacholong.nl>
+# Christoph Haas <haas@debian.org>
+#
+# Thanks to:
+# Thomas Hood <jdthood@aglu.demon.nl>
+#
+# initscript for PowerDNS recursor
+
+. /lib/lsb/init-functions
+
+PATH=/sbin:/bin:/usr/sbin:/usr/bin
+DESC="PowerDNS recursor"
+NAME=pdns_recursor
+DAEMON=/usr/sbin/$NAME
+# Derive the socket-dir setting from /etc/powerdns/recursor.conf
+# or fall back to the default /var/run if not specified there.
+PIDDIR=$(awk -F= '/^socket-dir=/ {print $2}' /etc/powerdns/recursor.conf)
+if [ -z "$PIDDIR" ]; then PIDDIR=/var/run; fi
+PIDFILE=$PIDDIR/$NAME.pid
+
+# Gracefully exit if the package has been removed.
+test -x $DAEMON || exit 0
+
+# Read config file if it is present.
+if [ -r /etc/default/pdns-recursor ]; then
+ . /etc/default/pdns-recursor
+fi
+
+start() {
+# Return
+# 0 if daemon has been started / was already running
+# >0 if daemon could not be started
+ start-stop-daemon --start --oknodo --quiet --pidfile $PIDFILE --exec $DAEMON --test > /dev/null || return 0
+ start-stop-daemon --start --oknodo --quiet --pidfile $PIDFILE --exec $DAEMON || return 2
+}
+
+start_resolvconf() {
+ if [ "X$RESOLVCONF" = "Xyes" ] && [ -x /sbin/resolvconf ]; then
+ echo "nameserver 127.0.0.1" | /sbin/resolvconf -a lo.pdns-recursor
+ fi
+ return 0
+}
+
+stop() {
+# Return
+# 0 if daemon has been stopped
+# 1 if daemon was already stopped
+# 2 if daemon could not be stopped
+# other if a failure occured
+ start-stop-daemon --stop --quiet --retry=HUP/30/TERM/5/KILL/5 --pidfile $PIDFILE --name $NAME
+ RETVAL="$?"
+ [ "$RETVAL" = 2 ] && return 2
+ rm -f $PIDFILE
+ return "$RETVAL"
+}
+
+stop_resolvconf() {
+ if [ "X$RESOLVCONF" = "Xyes" ] && [ -x /sbin/resolvconf ]; then
+ /sbin/resolvconf -d lo.pdns-recursor
+ fi
+ return 0
+}
+
+case "$1" in
+ start)
+ if [ "$START" != "yes" ]; then
+ log_begin_msg "Not starting $DESC -- disabled."
+ log_end_msg 0
+ exit 0
+ fi
+ log_daemon_msg "Starting $DESC" "pdns-recursor"
+ start
+ case "$?" in
+ 0)
+ start_resolvconf
+ break
+ ;;
+ 1)
+ log_progress_msg "(already running)"
+ break
+ ;;
+ *)
+ log_progress_msg " (failed)."
+ log_end_msg 1
+ exit 1
+ ;;
+ esac
+ log_end_msg 0
+ ;;
+ stop)
+ stop_resolvconf
+ log_daemon_msg "Stopping $DESC" "pdns-recursor"
+ stop
+ case "$?" in
+ 0)
+ break
+ ;;
+ 1)
+ log_progress_msg "(not running)"
+ break
+ ;;
+ *)
+ log_progress_msg "(failed)"
+ log_end_msg 1
+ exit 1
+ ;;
+ esac
+ log_end_msg 0
+ ;;
+ restart|force-reload)
+ if [ "$START" != "yes" ]; then
+ $0 stop
+ exit 0
+ fi
+ log_daemon_msg "Restarting $DESC" "pdns-recursor"
+ stop
+ case "$?" in
+ 0|1)
+ start
+ case "$?" in
+ 0)
+ log_end_msg 0
+ exit 0
+ ;;
+ 1)
+ log_progress_msg "(failed -- old process still running)"
+ log_end_msg 1
+ exit 1
+ ;;
+ *)
+ log_progress_msg "(failed to start)"
+ log_end_msg 1
+ exit 1
+ ;;
+ esac
+ ;;
+ *)
+ log_progress_msg "(failed to stop)"
+ log_end_msg 1
+ exit 1
+ ;;
+ esac
+ ;;
+ force-stop)
+ killall -v -9 pdns_recursor
+ echo "killed"
+ ;;
+ status)
+ status_of_proc -p $PIDFILE $DAEMON $NAME && exit 0 || exit $?
+ ;;
+ *)
+ echo "Usage: $0 {start|stop|restart|force-reload|force-stop|status}" >&2
+ exit 3
+ ;;
+esac
+
+exit 0
+
--- /dev/null
+debian/tmp/usr/sbin/pdns_recursor usr/sbin/
+debian/tmp/usr/bin/rec_control usr/bin/
+debian/config/recursor.conf etc/powerdns/
--- /dev/null
+^\w{3} [ :0-9]{11} [._[:alnum:]-]+ pdns_recursor\[[0-9]+\]: stats: .*
--- /dev/null
+pdns_recursor.1
+rec_control.1
--- /dev/null
+#!/bin/sh
+#
+#
+
+set -e
+
+case "$1" in
+ configure)
+ if [ -z "`getent group pdns`" ]; then
+ addgroup --quiet --system pdns
+ fi
+ if [ -z "`getent passwd pdns`" ]; then
+ echo -n "Creating user and group pdns..."
+ adduser --quiet --system --home /var/spool/powerdns --shell /bin/false --ingroup pdns --disabled-password --disabled-login --gecos "PowerDNS" pdns
+ echo "done"
+ fi
+ ;;
+
+ *)
+ echo "postinst called with unknown argument \`$1'" >&2
+ exit 1
+ ;;
+esac
+
+# Those using dependency based boot sequencing with sysv-rc and
+# installing pdns-recursor version 3.1.7.1-2 or earlier would have wrong
+# runlevel symlinks. Recover from this.
+if [ "$1" = "configure" ] && dpkg --compare-versions "$2" le "3.1.7.1-2" \
+ && [ -f /etc/rc2.d/S[0-9][0-9]pdns-recursor ] && [ ! -f /etc/rc1.d/K[0-9][0-9]pdns-recursor ]
+then
+ update-rc.d -f pdns-recursor remove
+fi
+
+# Init script has errors in previous versions. Postinst script should just
+# return the exit status of this script
+initscript_error() {
+ return $1
+}
+
+#DEBHELPER#
+
+exit 0
+
--- /dev/null
+#!/bin/sh
+#
+# Add an error handler to catch up with a fault in the pdns-recursor script.
+
+set -e
+
+# Set the old version.
+MODE=$1
+OLDVERSION=$2
+
+# Init script has errors in previous versions.
+initscript_error() {
+
+ # Versions older then 3.2-4 have a bug in the initscript.
+ if dpkg --compare-versions "$OLDVERSION" lt-nl "3.2-4" &&
+ [ "$MODE" = "failed-upgrade" ]; then
+
+ return 0
+ fi
+
+ return $1
+}
+
+#DEBHELPER#
+
+exit 0
+
--- /dev/null
+[Unit]
+Description=PowerDNS Recursor
+Wants=network-online.target
+After=network-online.target
+
+[Service]
+Type=simple
+ExecStart=/usr/sbin/pdns_recursor --daemon=no
+PrivateTmp=true
+
+[Install]
+WantedBy=multi-user.target
--- /dev/null
+#!/usr/bin/make -f
+
+# Enable lua
+export LUA := 1
+export LUA_CPPFLAGS_CONFIG := $(shell pkg-config lua5.2 --cflags)
+export LUA_LIBS_CONFIG := $(shell pkg-config lua5.2 --libs)
+
+# Enable hardening features for daemons
+# Note: blhc (build log hardening check) will find these false positivies: CPPFLAGS 2 missing, LDFLAGS 1 missing
+export DEB_BUILD_MAINT_OPTIONS=hardening=+bindnow,+pie
+DPKG_EXPORT_BUILDFLAGS = 1
+# Include buildflags.mk so we can append to the vars it sets.
+include /usr/share/dpkg/buildflags.mk
+
+# Vendor and version (after buildflags.mk so we don't overwrite CXXFLAGS)
+version := $(shell dpkg-parsechangelog -SVersion).$(shell dpkg-vendor --query Vendor)
+CXXFLAGS += -DPACKAGEVERSION='"$(version)"'
+
+# Use new build system
+%:
+ dh $@ --with systemd --parallel
+
+override_dh_auto_install:
+ dh_auto_install -- STRIP_BINARIES=0
+
+override_dh_strip:
+ dh_strip --dbg-package=pdns-recursor-dbg
+
+override_dh_installinit:
+ dh_installinit --error-handler=initscript_error -- defaults 19 85
+
--- /dev/null
+3.0 (quilt)
--- /dev/null
+Tests: smoke
+Depends: @, dnsutils
+Restrictions: needs-root
--- /dev/null
+#!/bin/bash
+exec 2>&1
+set -ex
+
+cat <<EOF >>/etc/powerdns/recursor.conf
+auth-zones=example.org=/etc/powerdns/example.org.zone
+EOF
+
+cat <<EOF >/etc/powerdns/example.org.zone
+example.org. 172800 IN SOA ns1.example.org. dns.example.org. 1 10800 3600 604800 3600
+example.org. 172800 IN NS ns1.example.org.
+smoke.example.org. 172800 IN A 127.0.0.123
+EOF
+
+service pdns-recursor restart
+
+TMPFILE=$(mktemp)
+cleanup() {
+ rm -f "$TMPFILE"
+}
+trap cleanup EXIT
+
+dig @127.0.0.1 smoke.example.org 2>&1 | tee "$TMPFILE"
+
+if grep -c '127\.0\.0\.123' "$TMPFILE"; then
+ echo success
+else
+ echo smoke could not be resolved
+ exit 1
+fi
+
--- /dev/null
+# Site Directory Pattern Version Script
+version=3
+http://downloads.powerdns.com/releases/ pdns-recursor-(.*)\.tar\.bz2 debian uupdate