Sisyphus repository
Last update: 1 october 2023 | SRPMs: 18631 | Visits: 37533802
en ru br
ALT Linux repos
S:2.89-alt2
5.0: 2.45-alt2
4.1: 2.41-alt4.M41.1
4.0: 2.38-alt1
3.0: 2.22-alt2

Group :: System/Servers
RPM: dnsmasq

 Main   Changelog   Spec   Patches   Sources   Download   Gear   Bugs and FR  Repocop 

#!/bin/sh
# Startup script for the DNS caching server under ALTLinux
#
# chkconfig: - 20 55
# description: This script starts your DNS caching server
# processname: dnsmasq
# config: /etc/dnsmasq.conf
# pidfile: /var/run/dnsmasq.pid

# Do not load RH compatibility interface.
WITHOUT_RC_COMPAT=1

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

if [ "$1" = "--trace-script" ]; then
shift
set -x
fi

# Source networking configuration and check that networking is up.
SourceIfNotEmpty /etc/sysconfig/network
is_yes "${NETWORKING}" || exit 0

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

# Internal variables
PIDFILE=/var/run/dnsmasq.pid
LOCKFILE=/var/lock/subsys/dnsmasq
RETVAL=0

#---------------------------------------------------------------
#
# Status helpers
#

function print_all_ifaces()
{
local linenum=0
netstat -vai | while read iface moredata; do
[ $[++linenum] -le 2 ] && continue
case "$iface" in
lo ) ;; # skip loopback
# *:* ) ;; # skip aliases?
* ) echo $iface ;;
esac
done
}

function print_listening_ifaces()
{
local line words dev
netstat -ltnp | egrep '[0-9]*/dnsmasq' | egrep ':53 ' | while read line; do
words=($line)
dev="${words[3]%:*}"
if [ "$dev" = "0.0.0.0" ]; then
print_all_ifaces
break
fi
echo "$dev"
done | uniq
}

#---------------------------------------------------------------
#
# Main routines
#

function start()
{
start_daemon --pidfile "$PIDFILE" --lockfile "$LOCKFILE" --displayname dnsmasq --expect-user nobody -- /usr/sbin/dnsmasq-helper start
RETVAL=$?
return $RETVAL
}

function start_debug()
{
"$RESOLVCONF" -u
# don't adds/removes routing!
$dnsmasq -d -q $OPTIONS
}

function stop()
{
stop_daemon --pidfile "$PIDFILE" --lockfile "$LOCKFILE" --expect-user nobody -- $dnsmasq
RETVAL=$?
return $RETVAL
}

function my_status() {
status --pidfile "$PIDFILE" --expect-user nobody -- $dnsmasq
RETVAL=$?
if [ $RETVAL = 0 ]; then
echo "Listening interfaces:"
print_listening_ifaces
fi
return $RETVAL
}

function restart() {
stop
start
RETVAL=$?
return $RETVAL
}

function reload() {
msg_reloading dnsmasq
stop_daemon --pidfile "$PIDFILE" --expect-user nobody -HUP -- $dnsmasq
RETVAL=$?
return $RETVAL
}

function clean() {
stop
$RM -f $LOCKFILE $PID_FILE
/usr/sbin/dnsmasq-helper cleanup_routing
RETVAL=0
}

case "$1" in
start)
/usr/sbin/dnsmasq-helper prestart
start
/usr/sbin/dnsmasq-helper poststart "$?"
;;
stop)
stop
/usr/sbin/dnsmasq-helper poststop
;;
status) my_status ;;
restart) restart ;;
reload) reload ;;
clean) clean ;;
startdebug) start_debug ;;
condrestart) [ -e "$LOCKFILE" ] && restart ;;
condreload) [ -e "$LOCKFILE" ] && reload ;;
condstop) [ -e "$LOCKFILE" ] && stop ;;
*)
echo "Usage: ${0##*/} {start|stop|restart|reload|condrestart|condreload|condstop|clean|status}"
exit 1
esac

exit $RETVAL

## EOF ##
 
design & coding: Vladimir Lettiev aka crux © 2004-2005, Andrew Avramenko aka liks © 2007-2008
current maintainer: Michael Shigorin