Browse Source

new package: pdnsd 1.1.8b1par8 (Proxy DNS Daemon)

Ralf S. Engelschall 22 years ago
parent
commit
328c4a0d5b
5 changed files with 249 additions and 0 deletions
  1. 16 0
      pdnsd/fsl.pdnsd
  2. 58 0
      pdnsd/pdnsd.conf
  3. 12 0
      pdnsd/pdnsd.patch
  4. 108 0
      pdnsd/pdnsd.spec
  5. 55 0
      pdnsd/rc.pdnsd

+ 16 - 0
pdnsd/fsl.pdnsd

@@ -0,0 +1,16 @@
+##
+##  fsl.pdnsd -- OSSP fsl configuration
+##
+
+ident (pdnsd)/.+ q{
+    prefix(
+        prefix="%b %d %H:%M:%S %N <%L> $1[%P]: "
+    )
+    -> {
+        debug: file(
+            path="@l_prefix@/var/pdnsd/pdnsd.log",
+            perm=0664
+        )
+    }
+};
+

+ 58 - 0
pdnsd/pdnsd.conf

@@ -0,0 +1,58 @@
+//
+//  pdnsd.conf -- Proxy DNS Daemon Configuration
+//
+
+global {
+    perm_cache=512;
+    cache_dir="@l_prefix@/var/pdnsd";
+    max_ttl=604800;
+    run_as="@l_rusr@";
+    paranoid=on;
+    server_port=53;
+    server_ip="127.0.0.1";
+}
+
+server {
+    ip="192.168.0.1";
+    timeout=30;
+    interval=30;
+    uptest=ping;
+    ping_timeout=50;
+    purge_cache=off;
+}
+
+source {
+    ttl=86400;
+    owner="localhost.";
+    serve_aliases=on;
+    file="/etc/hosts";
+}
+
+neg {
+    ttl=86400;
+    name="foo.example.com.";
+    types=domain;
+}
+
+neg {
+    ttl=86400;
+    name="bar.example.com.";
+    types=A,AAAA,MX;
+}
+
+rr {
+    ttl=86400;
+    owner="localhost.";
+    name="localhost.";
+    a="127.0.0.1";
+    soa="localhost.","root.localhost.",42,86400,900,86400,86400;
+}
+
+rr {
+    ttl=86400;
+    owner="localhost.";
+    name="1.0.0.127.in-addr.arpa.";
+    ptr="localhost.";
+    soa="localhost.","root.localhost.",42,86400,900,86400,86400;
+}
+

+ 12 - 0
pdnsd/pdnsd.patch

@@ -0,0 +1,12 @@
+Index: src/dns_query.c
+--- src/dns_query.c.orig	2003-10-05 10:11:21.000000000 +0200
++++ src/dns_query.c	2004-01-08 13:41:43.000000000 +0100
+@@ -56,6 +56,8 @@
+ /* The method we use for querying other servers */
+ int query_method=M_PRESET;
+ 
++#undef SIN_ADDR
++#undef SIN_LEN
+ #ifdef ENABLE_IPV4
+ # ifdef ENABLE_IPV6
+ #  define SIN_ADDR(p) (run_ipv6?((struct sockaddr *) &(p)->a.sin6):((struct sockaddr *) &(p)->a.sin4))

+ 108 - 0
pdnsd/pdnsd.spec

@@ -0,0 +1,108 @@
+##
+##  pdnsd.spec -- OpenPKG RPM Specification
+##  Copyright (c) 2000-2004 The OpenPKG Project <http://www.openpkg.org/>
+##  Copyright (c) 2000-2004 Ralf S. Engelschall <rse@engelschall.com>
+##  Copyright (c) 2000-2004 Cable & Wireless <http://www.cw.com/>
+##
+##  Permission to use, copy, modify, and distribute this software for
+##  any purpose with or without fee is hereby granted, provided that
+##  the above copyright notice and this permission notice appear in all
+##  copies.
+##
+##  THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
+##  WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+##  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+##  IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR
+##  CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+##  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+##  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
+##  USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+##  ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+##  OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+##  OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+##  SUCH DAMAGE.
+##
+
+#   package version
+%define       V_major 1.1.8b1
+%define       V_minor par8
+
+#   package information
+Name:         pdnsd
+Summary:      Proxy DNS Daemon
+URL:          http://www.phys.uu.nl/~rombouts/pdnsd/
+Vendor:       Thomas Moestl
+Packager:     The OpenPKG Project
+Distribution: OpenPKG [EVAL]
+Group:        DNS
+License:      GPL
+Version:      %{V_major}%{V_minor}
+Release:      20040108
+
+#   list of sources
+Source0:      http://www.phys.uu.nl/~rombouts/pdnsd/pdnsd-%{V_major}-%{V_minor}.tar.gz
+Source1:      rc.pdnsd
+Source2:      fsl.pdnsd
+Source3:      pdnsd.conf
+Patch0:       pdnsd.patch
+
+#   build information
+Prefix:       %{l_prefix}
+BuildRoot:    %{l_buildroot}
+BuildPreReq:  OpenPKG, openpkg >= 20030103
+PreReq:       OpenPKG, openpkg >= 20030103
+AutoReq:      no
+AutoReqProv:  no
+
+%description
+    PDNSD is a proxy DNS server with permanent caching (the cache
+    contents are written to hard disk on exit) that is designed to
+    cope with unreachable or down DNS servers (for example in dial-in
+    networking).
+
+%prep
+    %setup -q -n pdnsd-%{V_major}
+    %patch -p0
+
+%build
+    CC="%{l_cc}" \
+    CFLAGS="%{l_cflags -O}" \
+    CPPFLAGS="%{l_cppflags}" \
+    LDFLAGS="%{l_ldflags}" \
+    ./configure \
+        --prefix=%{l_prefix} \
+        --sysconfdir=%{l_prefix}/etc/pdnsd \
+        --with-cachedir=%{l_prefix}/var/pdnsd \
+        --with-default-id=%{l_ruid}
+    %{l_make} %{l_mflags -O}
+
+%install
+    rm -rf $RPM_BUILD_ROOT
+    %{l_make} %{l_mflags} install AM_MAKEFLAGS="DESTDIR=$RPM_BUILD_ROOT"
+    strip $RPM_BUILD_ROOT%{l_prefix}/sbin/* >/dev/null 2>&1 || true
+    rm -f $RPM_BUILD_ROOT%{l_prefix}/etc/pdnsd/pdnsd.conf.sample
+    %{l_shtool} mkdir -f -p -m 755 \
+        $RPM_BUILD_ROOT%{l_prefix}/etc/rc.d \
+        $RPM_BUILD_ROOT%{l_prefix}/etc/fsl \
+        $RPM_BUILD_ROOT%{l_prefix}/share/pdnsd
+    %{l_shtool} install -c -m 755 %{l_value -s -a} \
+        %{SOURCE rc.pdnsd} $RPM_BUILD_ROOT%{l_prefix}/etc/rc.d/
+    %{l_shtool} install -c -m 755 %{l_value -s -a} \
+        %{SOURCE fsl.pdnsd} $RPM_BUILD_ROOT%{l_prefix}/etc/fsl/
+    %{l_shtool} install -c -m 644 %{l_value -s -a} \
+        %{SOURCE pdnsd.conf} $RPM_BUILD_ROOT%{l_prefix}/etc/pdnsd/
+    %{l_shtool} install -c -m 644 \
+        doc/txt/*.txt $RPM_BUILD_ROOT%{l_prefix}/share/pdnsd/
+    %{l_rpmtool} files -v -ofiles -r$RPM_BUILD_ROOT \
+        %{l_files_std} \
+        '%not %dir %{l_prefix}/etc/fsl' \
+        '%config %{l_prefix}/etc/fsl/fsl.pdnsd' \
+        '%config %attr(644,%{l_susr},%{l_mgrp}) %{l_prefix}/etc/pdnsd/*' \
+        '%doc %{l_prefix}/share/pdnsd/*' \
+        '%attr(-,%{l_rusr},%{l_rgrp}) %{l_prefix}/var/pdnsd'
+
+%files -f files
+
+%clean
+    rm -rf $RPM_BUILD_ROOT
+

+ 55 - 0
pdnsd/rc.pdnsd

@@ -0,0 +1,55 @@
+#!@l_prefix@/lib/openpkg/bash @l_prefix@/etc/rc
+##
+##  rc.pdnsd -- Run-Commands
+##
+
+%config
+    pdnsd_enable="$openpkg_rc_def"
+    pdnsd_flags="-s"
+    pdnsd_log_prolog="true"
+    pdnsd_log_epilog="true"
+    pdnsd_log_numfiles="10"
+    pdnsd_log_minsize="1M"
+    pdnsd_log_complevel="9"
+
+%common
+    pdnsd_pidfile="@l_prefix@/var/pdnsd/pdnsd.pid"
+    pdnsd_signal () {
+        [ -f $pdnsd_pidfile ] && kill -$1 `cat $pdnsd_pidfile`
+    }
+
+%status -u @l_susr@ -o
+    pdnsd_usable="unknown"
+    pdnsd_active="no"
+    rcService pdnsd enable yes && \
+        pdnsd_signal 0 && pdnsd_active="yes"
+    echo "pdnsd_enable=\"$pdnsd_enable\""
+    echo "pdnsd_usable=\"$pdnsd_usable\""
+    echo "pdnsd_active=\"$pdnsd_active\""
+
+%start -u @l_susr@
+    rcService pdnsd enable yes || exit 0
+    rcService pdnsd active yes && exit 0
+    @l_prefix@/sbin/pdnsd --daemon --status -p $pdnsd_pidfile $pdnsd_flags
+
+%stop -u @l_susr@
+    rcService pdnsd enable yes || exit 0
+    rcService pdnsd active no  && exit 0
+    pdnsd_signal TERM
+    sleep 2
+    rm -f $pdnsd_pidfile >/dev/null 2>&1 || true
+
+%restart -u @l_susr@
+    rcService pdnsd enable yes || exit 0
+    rcService pdnsd active no  && exit 0
+    rc pdnsd stop start
+
+%daily -u @l_susr@
+    rcService pdnsd enable yes || exit 0
+    shtool rotate -f \
+        -n ${pdnsd_log_numfiles} -s ${pdnsd_log_minsize} -d \
+        -z ${pdnsd_log_complevel} -m 664 -o @l_rusr@ -g @l_rgrp@ \
+        -P "${pdnsd_log_prolog}" \
+        -E "${pdnsd_log_epilog} && rc pdnsd restart" \
+        @l_prefix@/var/pdnsd/pdnsd.log
+