Subversion Repositories ALCASAR

Rev

Blame | Last modification | View Log

#!/bin/sh
#
# Startup script for the DNS caching server

### BEGIN INIT INFO
# Provides: dnsmasq $named
# Required-Start: $network
# Required-Stop: $network
# Default-Start: 3 4 5
# Short-Description: a dhcp/dns server.
# Description: dnsmasq is a dhcp and dns server.
#              It aims to be used on small networks where people do not need the complexity of bind.
### END INIT INFO

#
# chkconfig: 2345 99 40
# description: This script starts your DNS caching server
# processname: dnsmasq
# pidfile: /var/run/dnsmasq.pid
#

# Source function library.
. /etc/rc.d/init.d/functions

# Source networking configuration.
. /etc/sysconfig/network

# Check that networking is up.
[ ${NETWORKING} = "no" ] && exit 0

dnsmasq=/usr/sbin/dnsmasq
[ -f $dnsmasq ] || exit 0

# change this line if you want dnsmasq to serve an MX record for 
# the host it is running on. 
MAILHOSTNAME=""
# change this line if you want dns to get its upstream servers from
# somewhere other that /etc/resolv.conf 
RESOLV_CONF=""
# change this if you want dnsmasq to cache any "hostname" or "client-hostname" from
# a dhcpd's lease file
DHCP_LEASE="/var/lib/dhcp/dhcpd.leases"
DOMAIN_SUFFIX=`dnsdomainname`
alcasar_conf_file="/usr/local/etc/alcasar.conf"
DNS_FILTERING=`grep DNS_FILTERING= $alcasar_conf_file|cut -d"=" -f2`            # DNS and URLs filter (on/off)
DNS_FILTERING=${DNS_FILTERING:=off}

DAEMON_NAME=dnsmasq
[ -f /etc/sysconfig/$DAEMON_NAME ] && . /etc/sysconfig/$DAEMON_NAME


if [ ! -z "${MAILHOSTNAME}" ]; then
  OPTIONS="$OPTIONS -m $MAILHOSTNAME"
fi

if [ ! -z "${RESOLV_CONF}" ]; then
  OPTIONS="$OPTIONS -r $RESOLV_CONF"
fi

if [ ! -z "${DHCP_LEASE}" ]; then
  OPTIONS="$OPTIONS -l $DHCP_LEASE"
fi

if [ ! -z "${DOMAIN_SUFFIX}" ]; then
  OPTIONS="$OPTIONS -s $DOMAIN_SUFFIX"
fi


case "$1" in
  start)
        gprintf "Starting %s: " $DAEMON_NAME
        daemon $dnsmasq $OPTIONS
        if [ $DNS_FILTERING = on ]; then
                $dnsmasq -C /etc/dnsmasq-blackhole.conf $OPTIONS
        fi
        echo
        touch /var/lock/subsys/$DAEMON_NAME
        ;;
  stop)
        gprintf "Shutting down %s: " $DAEMON_NAME
        killproc $DAEMON_NAME
killproc $DAEMON_NAME
        echo
        rm -f /var/lock/subsys/$DAEMON_NAME
        ;;
  status)
        status dnsmasq
        ;;
  restart|reload)
        $0 stop
        $0 start
        ;;
  *)
        gprintf "Usage: %s {start|stop|restart|reload|condrestart|status}\n" "$0"
        exit 1
esac