add packages_10.03.2 in preparation for the 10.03.2 interim release
[10.03/packages.git] / net / djbdns / files / axfrdns.init
1 #!/bin/sh /etc/rc.common
2 # Copyright (C) 2007 OpenWrt.org
3 #
4 # version 20090401 jhalfmoon
5
6 START=47
7 PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
8 DAEMON=/usr/bin/tcpserver
9 NAME=tcpserver
10 DESC="Zone transfer name server"
11
12 APP=/usr/bin/axfrdns
13 ROOT=/tmp/tinydns
14
15 if [ ! -e /etc/tinydns/data ] ; then
16     echo Error: Dependency tinydns not found.
17     exit 111
18 fi
19
20 start() {
21     echo "Starting $DESC: $NAME"
22     config_load djbdns
23     mkdir -p $ROOT
24     ln -sf /etc/tinydns/data $ROOT/data
25     cd $ROOT
26     tinydns-data
27     chown -R $UID:$GID $ROOT
28     tcprules $ROOT/tcp.cdb $ROOT/tcp.cdb.tmp < /etc/axfrdns/tcp
29     config_foreach get_userids global
30     config_foreach start_daemon axfrdns
31 }
32
33 get_userids() {
34     local cfg="$1"
35     config_get UID "$cfg" runasuser
36     config_get GID "$cfg" runasgroup
37     UID=`id -u $UID`
38     GID=`id -g $GID`
39 }
40
41 start_daemon() {
42     local cfg="$1"
43     config_get logging  "$cfg" logging
44     config_get iface    "$cfg" interface
45     config_get AXFR     "$cfg" allowedzones
46 # Unset AXFR if it is empty
47     [ -z $AXFR ] && export -n AXFR
48 # Translate listening interfaces to ip addresses
49     include /lib/network
50     scan_interfaces
51     config_get IP "$iface" ipaddr
52     export ROOT
53     if [ "$DEBUG" == 1 ] ; then
54         $DAEMON -vDRHl0 -c40 -b10 -x $ROOT/tcp.cdb -- $IP 53 $APP
55     elif [ "$logging" == '1' ] ; then
56         $DAEMON -vDRHl0 -c40 -b10 -x $ROOT/tcp.cdb -- $IP 53 $APP 2>&1 | logger -p local1.info -t $NAME &    
57     else
58         $DAEMON -DRHl0 -c40 -b10 -x $ROOT/tcp.cdb -- $IP 53 $APP > /dev/null 2>&1 &
59     fi
60 }
61
62 stop() {
63     echo -n "Stopping $DESC: $NAME"
64     kill `pidof $NAME|sed "s/$$//g"` > /dev/null 2>&1
65     echo " ."
66 }
67
68 restart() {
69     echo "Restarting $DESC: $NAME... "
70     stop
71     sleep 2
72     start
73 }
74