dnrd: Add new recipe

dnrd is a proxying nameserver. It forwards DNS queries to the appropriate
nameserver, but can also act as the primary nameserver for a subnet behind
a firewall. It also has features such as caching DNS requests, support for
DNS servers, cache poisoning prevention, TCP support, etc.

Signed-off-by: Qian Lei <qianl.fnst@cn.fujitsu.com>
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Joe MacDonald <joe_macdonald@mentor.com>
This commit is contained in:
Qian Lei
2014-12-18 16:09:21 +08:00
committed by Joe MacDonald
parent 47ceb2e94f
commit e805464634
4 changed files with 166 additions and 0 deletions
@@ -0,0 +1,21 @@
# options to dnrd
# example: two default dns servers and dns servers for exampledomain.com. The
# latter are load balanced (-b)
#
#
# DNRD_OPTS="
# -s XXX.XXX.XX.XXX
# -s XXX.XXX.XX.XXX
# -b
# -s XXX.XXX.XX.XXX:exampledomain.com
# -s XXX.XXX.XX.XXX:exampledomain.com"
# example: dnrd user
#
# DNRD_USER="user"
#
@@ -0,0 +1,94 @@
#!/bin/sh
#
# Startup script for dnrd
#
# Copyright 2008, Rakesh Pandit <rakesh.pandit@gmail.com>
#
# This source 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, or (at your option)
# any later version.
# This source 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., 675 Mass Ave, Cambridge, MA 02139, USA.
#
# chkconfig: - 85 15
# description: dnrd is a proxying nameserver. It forwards DNS queries to the
# appropriate nameserver, but can also act as the primary nameserver for
# a subnet behind a firewall. It also has features such as caching DNS
# requests, support for DNS servers, cache poisoning prevention, TCP
# support, etc..
# processname: dnrd
# pidfile: /var/run/dnrd.pid
# config: /etc/dnrd/dnrd.conf
# Provides: dnrd
# Required-Start:
# Should-Start:
# Required-Stop:
# Default-Stop: 0 1 2 6
# Short-Description: Start dnrd daemon
# Description: Domain Name Relay Daemon
# END INIT INFO
exe=/usr/sbin/dnrd
pfile=/etc/passwd
# Source function library.
. /etc/init.d/functions
# Source conf file
. /etc/dnrd/dnrd.conf
[ -x $exe ] || exit 1
[ -r "/etc/dnrd/dnrd.conf" ] || exit 1
if [ $DNRD_USER ]
then
grep "^${LOGIN}:" $pfile >/dev/null 2>&1
if [ $? -eq 0 ];then
echo "$DNRD_USER specified in /etc/dnrd/dnrd.conf does not exist!"
fi
else
echo "DNRD_USER not set at /etc/dnrd/dnrd.conf!"
exit 1
fi
case "$1" in
start)
echo -n "Starting dnrd: "
daemon dnrd $DNRD_OPTS -u $DNRD_USER
echo
touch /var/lock/subsys/dnrd
;;
stop)
echo -n "Shutting down dnrd: "
killproc dnrd
echo
rm -f /var/lock/subsys/dnrd
rm -f /var/run/dnrd.pid
;;
status)
status dnrd
;;
restart)
$0 stop
$0 start
;;
reload)
echo -n "Reloading dnrd: "
killproc dnrd -HUP
echo
;;
*)
echo "Usage: $0 {start|stop|restart|reload|status}"
exit 1
esac
exit 0
@@ -0,0 +1,12 @@
[Unit]
Description=Domain Name Relay Daemon
After=network.target
[Service]
Type=forking
PIDFile=/var/run/dnrd.pid
EnvironmentFile=/etc/dnrd/dnrd.conf
ExecStart=/usr/sbin/dnrd $DNRD_OPTS -u $DNRD_USER
[Install]
WantedBy=multi-user.target
@@ -0,0 +1,39 @@
SUMMARY = "A caching, forwarding DNS proxy server"
DESCRIPTION = "\
dnrd is a proxying nameserver. It forwards DNS queries to the appropriate \
nameserver, but can also act as the primary nameserver for a subnet behind \
a firewall. It also has features such as caching DNS requests, support for \
DNS servers, cache poisoning prevention, TCP support, etc.."
HOMEPAGE = "http://dnrd.sourceforge.net/"
SECTION = "System Environment/Daemons"
LICENSE = "GPLv2"
LIC_FILES_CHKSUM = "file://COPYING;md5=0be67017f1c770313ad7b40e18d568f1"
SRC_URI = "http://ncu.dl.sourceforge.net/project/${BPN}/${BPN}/${PV}/${BP}.tar.gz \
file://dnrd.service \
file://dnrd.conf.sample \
file://dnrd.init"
SRC_URI[md5sum] = "41c9b070aae8ed403fc8c2aac7ab157c"
SRC_URI[sha256sum] = "aa46e7f8736b88c1d752cf606b3990041221ce91d014e955c6b02eb2167db015"
SYSTEMD_SERVICE_${PN} = "dnrd.service"
SYSTEMD_AUTO_ENABLE = "disable"
inherit autotools
inherit ${@base_contains('VIRTUAL-RUNTIME_init_manager','systemd','systemd','', d)}
do_install() {
oe_runmake install DESTDIR=${D} INSTALL="install -p"
sed -i -e 's:/etc/rc.d/init.d/functions:/etc/init.d/functions:g' \
${WORKDIR}/dnrd.init
install -d -m 0755 ${D}${sysconfdir}/init.d
install -d -m 0755 ${D}${sysconfdir}/dnrd
install -p -m 0644 ${WORKDIR}/dnrd.conf.sample ${D}${sysconfdir}/dnrd/dnrd.conf
install -p -m 0755 ${WORKDIR}/dnrd.init ${D}${sysconfdir}/init.d/dnrd
if ${@base_contains('DISTRO_FEATURES','systemd','true','false',d)}; then
install -d -m 0755 ${D}${systemd_unitdir}/system
install -m 644 ${WORKDIR}/dnrd.service ${D}${systemd_unitdir}/system
fi
}