added djbdns patch provided by Johnny Halfmoon
[packages.git] / net / djbdns / files / tinydns.init
1 #!/bin/sh /etc/rc.common
2 # Copyright (C) 2007 OpenWrt.org
3 #
4 # version 20090401 jhalfmoon
5
6 START=46
7 PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
8 DAEMON=/usr/bin/tinydns
9 NAME=tinydns
10 DESC="Authoritative nameserver"
11
12 ROOT=/tmp/tinydns
13
14 start() {
15     echo "Starting $DESC: $NAME"
16     config_load djbdns
17     config_foreach get_userids global
18     mkdir -p $ROOT
19     ln -sf /etc/tinydns/data $ROOT/data
20     cd $ROOT
21     tinydns-data
22     chown -R $UID:$GID $ROOT
23     config_foreach start_daemon tinydns
24 }
25
26 get_userids() {
27     local cfg="$1"
28     config_get UID "$cfg" runasuser
29     config_get GID "$cfg" runasgroup
30     UID=`id -u $UID`
31     GID=`id -g $GID`
32 }
33
34 start_daemon() {
35     local cfg="$1"
36     config_get logging "$cfg" logging
37     config_get iface   "$cfg" interface
38     include /lib/network
39     scan_interfaces
40 # Translate listening interfaces to ip addresses
41     config_get IP "$iface" ipaddr
42     export ROOT
43     if [ "$DEBUG" == 1 ] ; then
44         $DAEMON
45     elif [ "$logging" == '1' ] ; then
46         $DAEMON 2>&1 | logger -p local1.info -t $NAME &
47     else
48         $DAEMON > /dev/null 2>&1 &
49     fi
50 }
51
52 stop() {
53     echo -n "Stopping $DESC: $NAME"
54     kill `pidof $NAME|sed "s/$$//g"` > /dev/null 2>&1
55     echo " ."
56 }
57
58 restart() {
59     echo "Restarting $DESC: $NAME... "
60     stop
61     sleep 2
62     start
63 }
64