#!/bin/sh
#
# tor	Anonymizing overlay network for TCP
#
# chkconfig:	345 40 60
# description:	Tor is a connection-based low-latency anonymous communication system.
# processname:	tor
# pidfile:	/var/run/tor.pid
#
# $Id: tor.init,v 1.3 2006/10/19 10:35:47 glen Exp $

. /etc/rc.d/init.d/functions

. /etc/sysconfig/network

TOR_USER="tor"
TOR_GROUP="tor"
TOR_CONFIG="/etc/tor/torrc"

[ -f /etc/sysconfig/tor ] && . /etc/sysconfig/tor

if is_yes "${NETWORKING}"; then
	if [ ! -f /var/lock/subsys/network ]; then
		msg_network_down tor
		exit 1
	fi
else
	exit 0
fi

start() {
	if [ ! -f /var/lock/subsys/tor ]; then
		msg_starting tor
		daemon tor --user $TOR_USER --group $TOR_GROUP \
			--pidfile /var/run/tor.pid -f $TOR_CONFIG $TOR_OPTIONS
		RETVAL=$?
		[ $RETVAL -eq 0 ] && touch /var/lock/subsys/tor
	else
		msg_already_running tor
	fi
}

stop() {
	if [ -f /var/lock/subsys/tor ]; then
		msg_stopping tor
		killproc --pidfile /var/run/tor.pid tor
		rm -f /var/lock/subsys/tor
	else
		msg_not_running tor
	fi
}

RETVAL=0
case "$1" in
  start)
  	start
	;;
  stop)
  	stop
	;;
  restart)
	stop
	start
	;;
  reload|force-reload)
	if [ -f /var/lock/subsys/tor ]; then
		msg_reloading tor
		killproc tor -HUP
		RETVAL=$?
	else
		msg_not_running tor
		RETVAL=7
	fi
	;;
  status)
	status tor
	RETVAL=$?
	;;
  *)
	msg_usage "$0 {start|stop|restart|reload|force-reload|status}"
	exit 3
esac

exit $RETVAL
